diff -Nru node-grunt-contrib-uglify-2.0.0+dfsg/appveyor.yml node-grunt-contrib-uglify-3.4.0+dfsg/appveyor.yml --- node-grunt-contrib-uglify-2.0.0+dfsg/appveyor.yml 2016-07-19 14:11:18.000000000 +0000 +++ node-grunt-contrib-uglify-3.4.0+dfsg/appveyor.yml 2018-07-28 18:28:51.000000000 +0000 @@ -7,16 +7,16 @@ matrix: - nodejs_version: "0.10" platform: x86 - - nodejs_version: "0.12" - platform: x86 - nodejs_version: "4" platform: x64 - nodejs_version: "4" platform: x86 - - nodejs_version: "5" - platform: x86 - nodejs_version: "6" platform: x86 + - nodejs_version: "8" + platform: x86 + - nodejs_version: "10" + platform: x86 install: - ps: Install-Product node $env:nodejs_version $env:platform diff -Nru node-grunt-contrib-uglify-2.0.0+dfsg/CHANGELOG node-grunt-contrib-uglify-3.4.0+dfsg/CHANGELOG --- node-grunt-contrib-uglify-2.0.0+dfsg/CHANGELOG 2016-07-19 14:11:18.000000000 +0000 +++ node-grunt-contrib-uglify-3.4.0+dfsg/CHANGELOG 2018-07-28 18:28:51.000000000 +0000 @@ -1,3 +1,43 @@ +v3.4.0: + date: 2018-07-29 + changes: + - Update uglify-js to v3.4.0. +v3.3.0: + date: 2017-12-24 + changes: + - Update uglify-js to v3.3.0. +v3.2.1: + date: 2017-11-26 + changes: + - Update uglify-js to v3.2.0. +v3.1.0: + date: 2017-09-11 + changes: + - Update uglify-js to v3.1.0. +v3.0.1: + date: 2017-05-20 + changes: + - Fix toplevel option. +v3.0.0: + date: 2017-05-12 + changes: + - Update uglify-js to v3.0.4. +v2.3.0: + date: 2017-04-05 + changes: + - Make CLI output less verbose. +v2.2.1: + date: 2017-03-31 + changes: + - Fix banner option. +v2.2.0: + date: 2017-03-01 + changes: + - Update uglify-js to v2.8.3. +v2.1.0: + date: 2017-02-08 + changes: + - Show size changes in output. Switch to `object.assign`. v2.0.0: date: 2016-07-19 changes: diff -Nru node-grunt-contrib-uglify-2.0.0+dfsg/debian/changelog node-grunt-contrib-uglify-3.4.0+dfsg/debian/changelog --- node-grunt-contrib-uglify-2.0.0+dfsg/debian/changelog 2016-12-22 21:41:10.000000000 +0000 +++ node-grunt-contrib-uglify-3.4.0+dfsg/debian/changelog 2019-07-07 14:33:27.000000000 +0000 @@ -1,3 +1,25 @@ +node-grunt-contrib-uglify (3.4.0+dfsg-2) unstable; urgency=medium + + * Team upload + * Reupload to unstable + * Switch to node-uglify-js from node-uglify + * Bump Standards-Version to 4.3.0 (no changes needed) + + -- Pirate Praveen Sun, 07 Jul 2019 20:03:27 +0530 + +node-grunt-contrib-uglify (3.4.0+dfsg-1) experimental; urgency=medium + + [ Paolo Greppi ] + * Update Vcs fields for migration to https://salsa.debian.org/ + + [ Pirate Praveen ] + * New upstream version 3.4.0+dfsg + * Bump Standards-Version to 4.2.0 (no changes needed) + * Bump debhelper compatibility level to 11 + * Change section web -> javascript + + -- Pirate Praveen Sat, 04 Aug 2018 20:37:05 +0530 + node-grunt-contrib-uglify (2.0.0+dfsg-1) unstable; urgency=low * Initial release (Closes: #848853) diff -Nru node-grunt-contrib-uglify-2.0.0+dfsg/debian/compat node-grunt-contrib-uglify-3.4.0+dfsg/debian/compat --- node-grunt-contrib-uglify-2.0.0+dfsg/debian/compat 2016-12-22 21:41:10.000000000 +0000 +++ node-grunt-contrib-uglify-3.4.0+dfsg/debian/compat 2019-07-07 14:33:27.000000000 +0000 @@ -1 +1 @@ -9 +11 diff -Nru node-grunt-contrib-uglify-2.0.0+dfsg/debian/control node-grunt-contrib-uglify-3.4.0+dfsg/debian/control --- node-grunt-contrib-uglify-2.0.0+dfsg/debian/control 2016-12-22 21:41:10.000000000 +0000 +++ node-grunt-contrib-uglify-3.4.0+dfsg/debian/control 2019-07-07 14:33:27.000000000 +0000 @@ -1,26 +1,32 @@ Source: node-grunt-contrib-uglify -Section: web +Section: javascript Priority: optional Maintainer: Debian Javascript Maintainers Uploaders: Paolo Greppi Build-Depends: - debhelper (>= 9) - , dh-buildinfo + debhelper (>= 11~) , nodejs -Standards-Version: 3.9.8 + , grunt + , node-bytes + , node-uri-path (>= 1.0~) + , node-uglify-js (>= 3.3~) + , node-grunt-contrib-clean + , node-grunt-contrib-nodeunit + , node-grunt-contrib-internal +Standards-Version: 4.3.0 Homepage: https://github.com/gruntjs/grunt-contrib-uglify#readme -Vcs-Git: https://anonscm.debian.org/git/pkg-javascript/node-grunt-contrib-uglify.git -Vcs-Browser: https://anonscm.debian.org/cgit/pkg-javascript/node-grunt-contrib-uglify.git +Vcs-Git: https://salsa.debian.org/js-team/node-grunt-contrib-uglify.git +Vcs-Browser: https://salsa.debian.org/js-team/node-grunt-contrib-uglify Package: node-grunt-contrib-uglify Architecture: all Depends: ${misc:Depends} , nodejs - , node-chalk (>= 1.0.0) + , node-chalk (>= 1.0~) , node-lodash-packages - , node-uglify (>= 2.7.0) - , node-uri-path (>= 1.0.0) + , node-uglify-js (>= 3.3~) + , node-uri-path (>= 1.0~) , node-bytes Description: Minify JavaScript files with UglifyJS Node.js module that provides a grunt plugin to minify JavaScript diff -Nru node-grunt-contrib-uglify-2.0.0+dfsg/debian/patches/00-maxmin.diff node-grunt-contrib-uglify-3.4.0+dfsg/debian/patches/00-maxmin.diff --- node-grunt-contrib-uglify-2.0.0+dfsg/debian/patches/00-maxmin.diff 2016-12-22 21:41:10.000000000 +0000 +++ node-grunt-contrib-uglify-3.4.0+dfsg/debian/patches/00-maxmin.diff 2019-07-07 14:33:27.000000000 +0000 @@ -3,16 +3,15 @@ Forwarded: not-needed Author: Paolo Greppi -Index: node-grunt-contrib-uglify/tasks/uglify.js -=================================================================== ---- node-grunt-contrib-uglify.orig/tasks/uglify.js -+++ node-grunt-contrib-uglify/tasks/uglify.js -@@ -10,9 +10,21 @@ +--- a/tasks/uglify.js ++++ b/tasks/uglify.js +@@ -10,10 +10,22 @@ var path = require('path'); var chalk = require('chalk'); -var maxmin = require('maxmin'); +var bytes = require('bytes'); + var uriPath = require('uri-path'); var err; +// replacement for maxmin diff -Nru node-grunt-contrib-uglify-2.0.0+dfsg/debian/patches/01-remove-jshint.patch node-grunt-contrib-uglify-3.4.0+dfsg/debian/patches/01-remove-jshint.patch --- node-grunt-contrib-uglify-2.0.0+dfsg/debian/patches/01-remove-jshint.patch 1970-01-01 00:00:00.000000000 +0000 +++ node-grunt-contrib-uglify-3.4.0+dfsg/debian/patches/01-remove-jshint.patch 2019-07-07 14:33:27.000000000 +0000 @@ -0,0 +1,28 @@ +--- a/package.json ++++ b/package.json +@@ -25,7 +25,6 @@ + "grunt": "1.0.2", + "grunt-contrib-clean": "^1.0.0", + "grunt-contrib-internal": "~1.3.0", +- "grunt-contrib-jshint": "^1.0.0", + "grunt-contrib-nodeunit": "^1.0.0" + }, + "keywords": [ +--- a/Gruntfile.js ++++ b/Gruntfile.js +@@ -443,7 +443,6 @@ + grunt.loadTasks('tasks'); + + // These plugins provide necessary tasks. +- grunt.loadNpmTasks('grunt-contrib-jshint'); + grunt.loadNpmTasks('grunt-contrib-clean'); + grunt.loadNpmTasks('grunt-contrib-nodeunit'); + grunt.loadNpmTasks('grunt-contrib-internal'); +@@ -451,7 +450,6 @@ + // Whenever the "test" task is run, first clean the "tmp" dir, then run this + // plugin's task(s), then test the result. + grunt.registerTask('test', [ +- 'jshint', + 'clean', + 'uglify', + 'nodeunit' diff -Nru node-grunt-contrib-uglify-2.0.0+dfsg/debian/patches/02-skip-preuglified-tests.patch node-grunt-contrib-uglify-3.4.0+dfsg/debian/patches/02-skip-preuglified-tests.patch --- node-grunt-contrib-uglify-2.0.0+dfsg/debian/patches/02-skip-preuglified-tests.patch 1970-01-01 00:00:00.000000000 +0000 +++ node-grunt-contrib-uglify-3.4.0+dfsg/debian/patches/02-skip-preuglified-tests.patch 2019-07-07 14:33:27.000000000 +0000 @@ -0,0 +1,11 @@ +--- a/Gruntfile.js ++++ b/Gruntfile.js +@@ -417,7 +417,7 @@ + + // Unit tests. + nodeunit: { +- tests: ['test/*_test.js'] ++ tests: ['test/*_test.js' - 'test/uglify_test.js'] + } + }); + diff -Nru node-grunt-contrib-uglify-2.0.0+dfsg/debian/patches/series node-grunt-contrib-uglify-3.4.0+dfsg/debian/patches/series --- node-grunt-contrib-uglify-2.0.0+dfsg/debian/patches/series 2016-12-22 21:41:10.000000000 +0000 +++ node-grunt-contrib-uglify-3.4.0+dfsg/debian/patches/series 2019-07-07 14:33:27.000000000 +0000 @@ -1 +1,3 @@ 00-maxmin.diff +01-remove-jshint.patch +02-skip-preuglified-tests.patch diff -Nru node-grunt-contrib-uglify-2.0.0+dfsg/debian/rules node-grunt-contrib-uglify-3.4.0+dfsg/debian/rules --- node-grunt-contrib-uglify-2.0.0+dfsg/debian/rules 2016-12-22 21:41:10.000000000 +0000 +++ node-grunt-contrib-uglify-3.4.0+dfsg/debian/rules 2019-07-07 14:33:27.000000000 +0000 @@ -9,7 +9,10 @@ #override_dh_auto_build: -#override_dh_auto_test: - - +override_dh_auto_test: +ifeq ($(filter nocheck,$(DEB_BUILD_PROFILES)),) +# Using --force for 'Warning: UglifyJS.push_uniq is not a function' +# Likely caused by UglifyJS being 3.3 instead of 3.4 + grunt --force test +endif diff -Nru node-grunt-contrib-uglify-2.0.0+dfsg/docs/uglify-examples.md node-grunt-contrib-uglify-3.4.0+dfsg/docs/uglify-examples.md --- node-grunt-contrib-uglify-2.0.0+dfsg/docs/uglify-examples.md 2016-07-19 14:11:18.000000000 +0000 +++ node-grunt-contrib-uglify-3.4.0+dfsg/docs/uglify-examples.md 2018-07-28 18:28:51.000000000 +0000 @@ -39,7 +39,7 @@ ## Reserved identifiers -You can specify identifiers to leave untouched with an `except` array in the `mangle` options. +You can specify identifiers to leave untouched with an `reserved` array in the `mangle` options. ```js // Project configuration. @@ -47,7 +47,7 @@ uglify: { options: { mangle: { - except: ['jQuery', 'Backbone'] + reserved: ['jQuery', 'Backbone'] } }, my_target: { @@ -62,8 +62,8 @@ ## Source maps Generate a source map by setting the `sourceMap` option to `true`. The generated -source map will be in the same directory as the destination file. Its name will be the -basename of the destination file with a `.map` extension. Override these +source map will be in the same directory as the destination file. Its name will be +the basename of the destination file with a `.map` extension. Override these defaults with the `sourceMapName` attribute. ```js @@ -85,7 +85,7 @@ ## Advanced source maps -Set the `sourceMapIncludeSources` option to `true` to embed your sources directly into the map. To include +Set the `sourceMap.includeSources` option to `true` to embed your sources directly into the map. To include a source map from a previous compilation pass it as the value of the `sourceMapIn` option. ```js @@ -94,8 +94,9 @@ uglify: { my_target: { options: { - sourceMap: true, - sourceMapIncludeSources: true, + sourceMap: { + includeSources: true + }, sourceMapIn: 'example/coffeescript-sourcemap.js', // input sourcemap from a previous compilation }, files: { @@ -106,7 +107,7 @@ }); ``` -Refer to the [UglifyJS SourceMap Documentation](http://lisperator.net/uglifyjs/codegen#source-map) for more information. +Refer to the [UglifyJS SourceMap Documentation](https://github.com/mishoo/UglifyJS2#source-map-options) for more information. ## Turn off console warnings @@ -134,11 +135,9 @@ ## Beautify Specify `beautify: true` to beautify your code for debugging/troubleshooting purposes. -Pass an object to manually configure any other output options passed directly to `UglifyJS.OutputStream()`. - -See [UglifyJS Codegen documentation](http://lisperator.net/uglifyjs/codegen) for more information. +Pass an object to manually configure any other output options. -_Note that manual configuration will require you to explicitly set `beautify: true` if you want traditional, beautified output._ +See [UglifyJS documentation](https://github.com/mishoo/UglifyJS2#beautifier-options) for more information. ```js // Project configuration. @@ -155,8 +154,7 @@ my_advanced_target: { options: { beautify: { - width: 80, - beautify: true + width: 80 } }, files: { @@ -193,9 +191,9 @@ ## Conditional compilation -You can also enable UglifyJS conditional compilation. This is commonly used to remove debug code blocks for production builds. This is equivalent to the command line [`--define` option](https://github.com/mishoo/UglifyJS#use-as-a-code-pre-processor). +You can also enable UglifyJS conditional compilation. This is commonly used to remove debug code blocks for production builds. This is equivalent to the command line `--define` option. -See [UglifyJS global definitions documentation](http://lisperator.net/uglifyjs/compress#global-defs) for more information. +See [UglifyJS global definitions documentation](https://github.com/mishoo/UglifyJS2#conditional-compilation) for more information. ```js // Project configuration. @@ -228,16 +226,47 @@ uglify: { my_target: { files: [{ - expand: true, - cwd: 'src/js', - src: '**/*.js', - dest: 'dest/js' + expand: true, + cwd: 'src/js', + src: '**/*.js', + dest: 'dest/js' }] } } }); ``` +## Compiling all files separately on the each their path + +This configuration will compress and mangle all js files separately in each folder. + +Also exclude jQuery for mangling and ignore all `*.min.js` files. + +```js +// Project configuration. +uglify: { + dev: { + options: { + mangle: { + reserved: ['jQuery'] + } + }, + files: [{ + expand: true, + src: ['dist/assets/js/*.js', '!dist/assets/js/*.min.js'], + dest: 'dist/assets', + cwd: '.', + rename: function (dst, src) { + // To keep the source js files and make new files as `*.min.js`: + // return dst + '/' + src.replace('.js', '.min.js'); + // Or to override to src: + return src; + } + }] + } +}, +``` + ## Turn on object property name mangling This configuration will turn on object property name mangling, but not mangle built-in browser object properties. @@ -249,7 +278,9 @@ grunt.initConfig({ uglify: { options: { - mangleProperties: true, + mangle: { + properties: true + }, reserveDOMCache: true, exceptionsFiles: [ 'myExceptionsFile.json' ] }, diff -Nru node-grunt-contrib-uglify-2.0.0+dfsg/docs/uglify-options.md node-grunt-contrib-uglify-3.4.0+dfsg/docs/uglify-options.md --- node-grunt-contrib-uglify-2.0.0+dfsg/docs/uglify-options.md 2016-07-19 14:11:18.000000000 +0000 +++ node-grunt-contrib-uglify-3.4.0+dfsg/docs/uglify-options.md 2018-07-28 18:28:51.000000000 +0000 @@ -1,9 +1,25 @@ # Options -This task primarily delegates to [UglifyJS2][], so please consider the [UglifyJS documentation][] as required reading for advanced configuration. +This task primarily delegates to [UglifyJS](https://github.com/mishoo/UglifyJS2), so please consider their documentation as required reading for advanced configuration. -[UglifyJS2]: https://github.com/mishoo/UglifyJS2 -[UglifyJS documentation]: http://lisperator.net/uglifyjs/ + +#### Deprecated options from `2.x` + +Option | Replacement +----------------------- | ----------- +ASCIIOnly | output.ascii_only +enclose | — +exportAll | — +expression | parse.expression +indentLevel | output.indent_level +mangleProperties | mangle.properties +maxLineLen | output.max\_line_len +preserveComments | output.comments +quoteStyle | output.quote_style +screwIE8 | !ie8 +sourceMapIncludeSources | sourceMap.includeSources +sourceMapRoot | sourceMap.root +sourceMapUrl | sourceMap.url ## mangle @@ -22,21 +38,21 @@ Type: `Boolean` `Object` Default: `false` -Turns on beautification of the generated source code. An `Object` will be merged and passed with the options sent to `UglifyJS.OutputStream()`. [View all options here](https://github.com/mishoo/UglifyJS2#beautifier-options) +Turns on beautification of the generated source code. [View all options here](https://github.com/mishoo/UglifyJS2#beautifier-options) -#### expression +#### parse.expression Type: `Boolean` Default: `false` Parse a single expression, rather than a program (for parsing JSON) ## report -Choices: `'none'`, `'min'`, `'gzip'` +Type: `string` +Choices: `'min'`, `'gzip'` Default: `'min'` -Either report only minification result or report minification and gzip results. -This is useful to see exactly how well UglifyJS is performing but using `'gzip'` will make the task take 5-10x longer to complete. [Example output](https://github.com/sindresorhus/maxmin#readme). -If `'none'` is used the report will be generated on the verbose output. +Report minification result or both minification and gzip results. +This is useful to see exactly how well uglify-js is performing but using `'gzip'` will make the task take 5-10x longer to complete. [Example output](https://github.com/sindresorhus/maxmin#readme). ## sourceMap Type: `Boolean` @@ -45,46 +61,39 @@ If `true`, a source map file will be generated in the same directory as the `dest` file. By default it will have the same basename as the `dest` file, but with a `.map` extension. ## sourceMapName -Type: `String` `Function` +Type: `String` `Function` Default: `undefined` To customize the name or location of the generated source map, pass a string to indicate where to write the source map to. If a function is provided, the uglify destination is passed as the argument and the return value will be used as the file name. ## sourceMapIn -Type: `String` `Function` +Type: `String` `Function` Default: `undefined` The location of an input source map from an earlier compilation, e.g. from CoffeeScript. If a function is provided, the uglify source is passed as the argument and the return value will be used as the sourceMap name. This only makes sense when there's one source file. -## sourceMapIncludeSources +## sourceMap.includeSources Type: `Boolean` Default: `false` Pass this flag if you want to include the content of source files in the source map as sourcesContent property. -#### sourceMapRoot +#### sourceMap.root Type: `String` Default: `undefined` With this option you can customize root URL that browser will use when looking for sources. -If the sources are not absolute URLs after prepending of the `sourceMapRoot`, the sources are resolved relative to the source map. +If the sources are not absolute URLs after prepending of the `sourceMap.root`, the sources are resolved relative to the source map. -## sourceMapUrl +## sourceMap.url Type: `String` Default: `undefined` Override the calculated value for `sourceMappingURL` in the source map. This is useful if the source map location is not relative to the base path of the minified file, i.e. when using a CDN -#### enclose -Type: `Object` -Default: `undefined` - -Wrap all of the code in a closure with a configurable arguments/parameters list. -Each key-value pair in the `enclose` object is effectively an argument-parameter pair. - ## wrap Type: `String` Default: `undefined` @@ -93,25 +102,13 @@ For variables that need to be public `exports` and `global` variables are made available. The value of wrap is the global variable exports will be available as. -## maxLineLen -Type: `Number` -Default: `32000` - -Limit the line length in symbols. Pass maxLineLen = 0 to disable this safety feature. - -## ASCIIOnly +## output.ascii_only Type: `Boolean` Default: `false` Enables to encode non-ASCII characters as \uXXXX. -## exportAll -Type: `Boolean` -Default: `false` - -When using `wrap` this will make all global functions and variables available via the export variable. - -## preserveComments +## output.comments Type: `Boolean` `String` `Function` Default: `undefined` Options: `false` `'all'` `'some'` @@ -120,29 +117,30 @@ - `false` will strip all comments - `'all'` will preserve all comments in code blocks that have not been squashed or dropped -- `'some'` will preserve all comments that start with a bang (`!`) or include a closure compiler style directive (`@preserve` `@license` `@cc_on`) +- `'some'` will preserve all comments that include a closure compiler style directive (`@preserve` `@license` `@cc_on`) - `Function` specify your own comment preservation function. You will be passed the current node and the current comment and are expected to return either `true` or `false` +- `RegExp` `'/[RegExp]/'` will preserve comments matching given RegExp or stringified RegExp ## banner Type: `String` Default: `''` -This string will be prepended to the minified output. Template strings (e.g. `<%= config.value %>` will be expanded automatically. +This string will be prepended to the minified output. Template strings (e.g. `<%= config.value %>`) will be expanded automatically. ## footer Type: `String` Default: `''` -This string will be appended to the minified output. Template strings (e.g. `<%= config.value %>` will be expanded automatically. +This string will be appended to the minified output. Template strings (e.g. `<%= config.value %>`) will be expanded automatically. -## screwIE8 +## ie8 Type: `Boolean` -Default: `true` +Default: `false` -Set this to `false` if you still care about full compliance with Internet Explorer 6-8 quirks. +Set this to `true` if you still care about full compliance with Internet Explorer 6-8 quirks. -## mangleProperties -Type: `Boolean` `Object` +## mangle.properties +Type: `Boolean` `Object` Default: `false` Turn on or off property mangling with default options. If an `Object` is specified, it is passed directly to `ast.mangle_properties()` (mimicking command line behavior). [View all options here](https://github.com/mishoo/UglifyJS2#mangler-options). @@ -151,13 +149,13 @@ Type: `Boolean` Default: `false` -Use this flag in conjunction with `mangleProperties` to prevent built-in browser object properties from being mangled. +Use this flag in conjunction with `mangle.properties` to prevent built-in browser object properties from being mangled. ## exceptionsFiles Type: `Array` Default: `[]` -Use this with `mangleProperties` to pass one or more JSON files containing a list of variables and object properties +Use this with `mangle.properties` to pass one or more JSON files containing a list of variables and object properties that should not be mangled. See the [UglifyJS docs](https://www.npmjs.com/package/uglify-js) for more info on the file syntax. ## nameCache @@ -167,7 +165,7 @@ A string that is a path to a JSON cache file that uglify will create and use to coordinate symbol mangling between multiple runs of uglify. Note: this generated file uses the same JSON format as the `exceptionsFiles` files. -## quoteStyle +## output.quote_style Type: `Integer` Default: `0` diff -Nru node-grunt-contrib-uglify-2.0.0+dfsg/docs/uglify-overview.md node-grunt-contrib-uglify-3.4.0+dfsg/docs/uglify-overview.md --- node-grunt-contrib-uglify-2.0.0+dfsg/docs/uglify-overview.md 2016-07-19 14:11:18.000000000 +0000 +++ node-grunt-contrib-uglify-3.4.0+dfsg/docs/uglify-overview.md 2018-07-28 18:28:51.000000000 +0000 @@ -1,22 +1 @@ Task targets, files and options may be specified according to the grunt [Configuring tasks](http://gruntjs.com/configuring-tasks) guide. - -# Migrating from 2.x to 3.x - -Version `3.x` introduced changes to configuring source maps. Accordingly, if you don't use the source map options you should be able to upgrade seamlessly. If you do use source maps, see below. - -## Removed options - -`sourceMappingURL` - This is calculated automatically now -`sourceMapPrefix` - No longer necessary for the above reason - -## Changed options - -`sourceMap` - Only accepts a `Boolean` value. Generates a map with a default name for you -`sourceMapRoot` - The location of your sources is now calculated for you when `sourceMap` is set to `true` but you can set manual source root if needed - -## New options - -`sourceMapName` - Accepts a string or function to change the location or name of your map -`sourceMapIncludeSources` - Embed the content of your source files directly into the map -`expression` - Accepts a `Boolean` value. Parse a single expression (JSON or single functions) -`quoteStyle` - Accepts integers `0` (default), `1`, `2`, `3`. Enforce or preserve quotation mark style. diff -Nru node-grunt-contrib-uglify-2.0.0+dfsg/Gruntfile.js node-grunt-contrib-uglify-3.4.0+dfsg/Gruntfile.js --- node-grunt-contrib-uglify-2.0.0+dfsg/Gruntfile.js 2016-07-19 14:11:18.000000000 +0000 +++ node-grunt-contrib-uglify-3.4.0+dfsg/Gruntfile.js 2018-07-28 18:28:51.000000000 +0000 @@ -70,7 +70,7 @@ }, options: { mangle: { - except: ['argumentC'] + reserved: ['argumentC'] } } }, @@ -83,20 +83,6 @@ footer: '\n// This is a footer.' } }, - enclose: { - files: { - 'tmp/enclose.js': ['test/fixtures/src/simple.js'] - }, - options: { - beautify: true, - compress: false, - enclose: { - 'window.argA': 'paramA', - 'window.argB': 'paramB' - }, - mangle: false - } - }, multifile: { files: { 'tmp/multifile.js': ['test/fixtures/src/simple.js', 'test/fixtures/src/comments.js'] @@ -110,7 +96,19 @@ dest: 'tmp/comments.js', options: { mangle: false, - preserveComments: 'some' + output: { + comments: 'some' + } + } + }, + commentsWithImportant: { + src: 'test/fixtures/src/comments.js', + dest: 'tmp/commentsWithImportant.js', + options: { + mangle: false, + output: { + comments: /^!|@preserve|@license|@cc_on/i + } } }, wrap: { @@ -126,7 +124,9 @@ dest: 'tmp/maxLineLen.js', options: { mangle: false, - maxLineLen: 100 + output: { + max_line_len: 100 + } } }, ASCIIOnly: { @@ -134,23 +134,16 @@ dest: 'tmp/asciionly.js', options: { mangle: false, - ASCIIOnly: true + output: { + ascii_only: true + } } }, screwIE8: { src: 'test/fixtures/src/screwIE8.js', dest: 'tmp/screwIE8.js', options: { - screwIE8: false - } - }, - exportAll: { - src: 'test/fixtures/src/simple.js', - dest: 'tmp/exportAll.js', - options: { - mangle: false, - wrap: 'testExport', - exportAll: true + ie8: true } }, sourcemap_basic: { @@ -180,16 +173,18 @@ src: 'test/fixtures/src/simple.js', dest: 'tmp/sourcemap_customRoot.js', options: { - sourceMap: true, - sourceMapRoot: 'https://github.com/RReverser/grunt-contrib-uglify/tree/master/tmp' + sourceMap: { + root: 'https://github.com/RReverser/grunt-contrib-uglify/tree/master/tmp' + } } }, sourcemap_customUrl: { src: 'test/fixtures/src/simple.js', dest: 'tmp/sourcemap_customUrl.js', options: { - sourceMap: true, - sourceMapUrl: 'http://www.test.com/test/sourcemap_customUrl.js.map' + sourceMap: { + url: 'http://www.test.com/test/sourcemap_customUrl.js.map' + } } }, sourcemap_functionName: { @@ -219,7 +214,7 @@ options: { sourceMap: true, sourceMapName: function(dest) { - return dest+'.fn.map'; + return dest + '.fn.map'; } } }, @@ -230,11 +225,12 @@ options: { mangle: false, banner: '// Hello World\n', - sourceMap: true, + sourceMap: { + includeSources: false + }, sourceMapIn: function() { return 'test/fixtures/src/simple2.map'; - }, - sourceMapIncludeSources: false + } } }, sourcemap_sources: { @@ -242,8 +238,9 @@ 'tmp/sourcemap_sources.js': ['test/fixtures/src/simple.js'] }, options: { - sourceMap: true, - sourceMapIncludeSources: true + sourceMap: { + includeSources: true + } } }, sourcemapin_sources: { @@ -251,11 +248,26 @@ 'tmp/sourcemapin_sources.js': ['test/fixtures/src/simple2.js'] }, options: { - sourceMap: true, + sourceMap: { + includeSources: true + }, sourceMapIn: function() { return 'test/fixtures/src/simple2.map'; + } + } + }, + sourcemapin_customUrl: { + files: { + 'tmp/sourcemapin_customUrl.js': ['test/fixtures/src/simple2.js'] + }, + options: { + sourceMap: { + includeSources: true, + url: 'sourcemapin_customUrl.js.map' }, - sourceMapIncludeSources: true + sourceMapIn: function() { + return 'test/fixtures/src/simple2.map'; + } } }, expression_json: { @@ -263,7 +275,9 @@ 'tmp/expression.json': ['test/fixtures/src/simple.json'] }, options: { - expression: true, + parse: { + expression: true + }, mangle: false, compress: false } @@ -273,7 +287,9 @@ 'tmp/expression.js': ['test/fixtures/src/expression.js'] }, options: { - expression: true, + parse: { + expression: true + }, mangle: false, compress: false } @@ -283,7 +299,9 @@ 'tmp/mangleprops.js': ['test/fixtures/src/mangleprops.js'] }, options: { - mangleProperties: true + mangle: { + properties: true + } } }, mangleprops_withExcept: { @@ -292,9 +310,9 @@ }, options: { mangle: { - except: ['dontMangleMeVariable'] - }, - mangleProperties: true + reserved: ['dontMangleMeVariable'], + properties: true + } } }, mangleprops_withExceptionsFiles: { @@ -303,9 +321,9 @@ }, options: { mangle: { - toplevel: true + toplevel: true, + properties: true }, - mangleProperties: true, exceptionsFiles: ['test/fixtures/src/exceptionsfile1.json', 'test/fixtures/src/exceptionsfile2.json'] } }, @@ -316,9 +334,9 @@ options: { mangle: { toplevel: true, - except: ['dontMangleMeVariable'] + reserved: ['dontMangleMeVariable'], + properties: true }, - mangleProperties: true, exceptionsFiles: ['test/fixtures/src/exceptionsfile1.json', 'test/fixtures/src/exceptionsfile2.json'] } }, @@ -329,9 +347,9 @@ }, options: { mangle: { - toplevel: true + toplevel: true, + properties: true }, - mangleProperties: true, nameCache: 'tmp/uglify_name_cache.json' } }, @@ -340,8 +358,10 @@ 'tmp/mangleprops_withRegex.js': ['test/fixtures/src/mangleprops_withRegex.js'] }, options: { - mangleProperties: { - regex: /^[^#].*/ + mangle: { + properties: { + regex: /^[^#].*/ + } } } }, @@ -350,7 +370,9 @@ 'tmp/quotes_single.js': ['test/fixtures/src/quotes.js'] }, options: { - quoteStyle: 1 + output: { + quote_style: 1 + } } }, quotes_double: { @@ -358,7 +380,9 @@ 'tmp/quotes_double.js': ['test/fixtures/src/quotes.js'] }, options: { - quoteStyle: 2 + output: { + quote_style: 2 + } } }, quotes_original: { @@ -366,7 +390,9 @@ 'tmp/quotes_original.js': ['test/fixtures/src/quotes.js'] }, options: { - quoteStyle: 3 + output: { + quote_style: 3 + } } }, mangle_isNotObject: { @@ -377,13 +403,13 @@ }, beautify_Object: { files: { - 'tmp/beautify.js': ['test/fixtures/src/localization.js', 'test/fixtures/src/simple.js'] + 'tmp/beautify.js': ['test/fixtures/src/simple.js'] }, options: { beautify: { - 'ascii_only': true, - 'indent_start': 2, - 'max_line_len': 40 + ascii_only: true, + indent_start: 2, + max_line_len: 55 } } } @@ -432,6 +458,6 @@ ]); // By default, lint and run all tests. - grunt.registerTask('default', ['test', 'build-contrib']); + grunt.registerTask('default', ['test', 'contrib-ci:skipIfExists', 'contrib-core']); }; diff -Nru node-grunt-contrib-uglify-2.0.0+dfsg/.mailmap node-grunt-contrib-uglify-3.4.0+dfsg/.mailmap --- node-grunt-contrib-uglify-2.0.0+dfsg/.mailmap 1970-01-01 00:00:00.000000000 +0000 +++ node-grunt-contrib-uglify-3.4.0+dfsg/.mailmap 2018-07-28 18:28:51.000000000 +0000 @@ -0,0 +1 @@ +Michał Gołębiowski-Owczarek diff -Nru node-grunt-contrib-uglify-2.0.0+dfsg/package.json node-grunt-contrib-uglify-3.4.0+dfsg/package.json --- node-grunt-contrib-uglify-2.0.0+dfsg/package.json 2016-07-19 14:11:18.000000000 +0000 +++ node-grunt-contrib-uglify-3.4.0+dfsg/package.json 2018-07-28 18:28:51.000000000 +0000 @@ -1,7 +1,7 @@ { "name": "grunt-contrib-uglify", "description": "Minify JavaScript files with UglifyJS", - "version": "2.0.0", + "version": "3.4.0", "author": { "name": "Grunt Team", "url": "http://gruntjs.com/" @@ -17,15 +17,14 @@ }, "dependencies": { "chalk": "^1.0.0", - "lodash.assign": "^4.0.9", - "maxmin": "^1.1.0", - "uglify-js": "~2.7.0", + "maxmin": "^2.1.0", + "uglify-js": "~3.4.0", "uri-path": "^1.0.0" }, "devDependencies": { - "grunt": "^1.0.0", + "grunt": "1.0.2", "grunt-contrib-clean": "^1.0.0", - "grunt-contrib-internal": "^1.1.0", + "grunt-contrib-internal": "~1.3.0", "grunt-contrib-jshint": "^1.0.0", "grunt-contrib-nodeunit": "^1.0.0" }, diff -Nru node-grunt-contrib-uglify-2.0.0+dfsg/package-lock.json node-grunt-contrib-uglify-3.4.0+dfsg/package-lock.json --- node-grunt-contrib-uglify-2.0.0+dfsg/package-lock.json 1970-01-01 00:00:00.000000000 +0000 +++ node-grunt-contrib-uglify-3.4.0+dfsg/package-lock.json 2018-07-28 18:28:51.000000000 +0000 @@ -0,0 +1,3513 @@ +{ + "name": "grunt-contrib-uglify", + "version": "3.4.0", + "lockfileVersion": 1, + "requires": true, + "dependencies": { + "abbrev": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", + "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==", + "dev": true + }, + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" + }, + "ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=" + }, + "argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dev": true, + "requires": { + "sprintf-js": "~1.0.2" + } + }, + "array-find-index": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-find-index/-/array-find-index-1.0.2.tgz", + "integrity": "sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E=", + "dev": true + }, + "asn1": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.3.tgz", + "integrity": "sha1-2sh4dxPJlmhJ/IGAd36+nB3fO4Y=", + "dev": true + }, + "assert-plus": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-0.2.0.tgz", + "integrity": "sha1-104bh+ev/A24qttwIfP+SBAasjQ=", + "dev": true + }, + "async": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", + "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=", + "dev": true + }, + "asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=", + "dev": true + }, + "aws-sign2": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.6.0.tgz", + "integrity": "sha1-FDQt0428yU0OW4fXY81jYSwOeU8=", + "dev": true + }, + "aws4": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.7.0.tgz", + "integrity": "sha512-32NDda82rhwD9/JBCCkB+MRYDp0oSvlo2IL6rQWA10PQi7tDUM3eqMSltXmY+Oyl/7N3P3qNtAlv7X0d9bI28w==", + "dev": true + }, + "balanced-match": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", + "dev": true + }, + "bcrypt-pbkdf": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", + "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", + "dev": true, + "optional": true, + "requires": { + "tweetnacl": "^0.14.3" + } + }, + "bluebird": { + "version": "3.5.1", + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.5.1.tgz", + "integrity": "sha512-MKiLiV+I1AA596t9w1sQJ8jkiSr5+ZKi0WKrYGUn6d1Fx+Ij4tIj+m2WMQSGczs5jZVxV339chE8iwk6F64wjA==", + "dev": true + }, + "boom": { + "version": "2.10.1", + "resolved": "https://registry.npmjs.org/boom/-/boom-2.10.1.tgz", + "integrity": "sha1-OciRjO/1eZ+D+UkqhI9iWt0Mdm8=", + "dev": true, + "requires": { + "hoek": "2.x.x" + } + }, + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "builtin-modules": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz", + "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=", + "dev": true + }, + "camelcase": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz", + "integrity": "sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8=", + "dev": true + }, + "camelcase-keys": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-2.1.0.tgz", + "integrity": "sha1-MIvur/3ygRkFHvodkyITyRuPkuc=", + "dev": true, + "requires": { + "camelcase": "^2.0.0", + "map-obj": "^1.0.0" + } + }, + "caseless": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.11.0.tgz", + "integrity": "sha1-cVuW6phBWTzDMGeSP17GDr2k99c=", + "dev": true + }, + "chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "requires": { + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" + } + }, + "clean-yaml-object": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/clean-yaml-object/-/clean-yaml-object-0.1.0.tgz", + "integrity": "sha1-Y/sRDcLOGoTcIfbZM0h20BCui2g=", + "dev": true + }, + "cli": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/cli/-/cli-1.0.1.tgz", + "integrity": "sha1-IoF1NPJL+klQw01TLUjsvGIbjBQ=", + "dev": true, + "requires": { + "exit": "0.1.2", + "glob": "^7.1.1" + }, + "dependencies": { + "glob": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", + "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + } + } + }, + "coffeescript": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/coffeescript/-/coffeescript-1.10.0.tgz", + "integrity": "sha1-56qDAZF+9iGzXYo580jc3R234z4=", + "dev": true + }, + "color-support": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-support/-/color-support-1.1.3.tgz", + "integrity": "sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==", + "dev": true + }, + "colors": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/colors/-/colors-1.1.2.tgz", + "integrity": "sha1-FopHAXVran9RoSzgyXv6KMCE7WM=", + "dev": true + }, + "combined-stream": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.6.tgz", + "integrity": "sha1-cj599ugBrFYTETp+RFqbactjKBg=", + "dev": true, + "requires": { + "delayed-stream": "~1.0.0" + } + }, + "commander": { + "version": "2.16.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.16.0.tgz", + "integrity": "sha512-sVXqklSaotK9at437sFlFpyOcJonxe0yST/AG9DkQKUdIE6IqGIMv4SfAQSKaJbSdVEJYItASCrBiVQHq1HQew==" + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", + "dev": true + }, + "console-browserify": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.1.0.tgz", + "integrity": "sha1-8CQcRXMKn8YyOyBtvzjtx0HQuxA=", + "dev": true, + "requires": { + "date-now": "^0.1.4" + } + }, + "core-util-is": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", + "dev": true + }, + "coveralls": { + "version": "2.13.3", + "resolved": "https://registry.npmjs.org/coveralls/-/coveralls-2.13.3.tgz", + "integrity": "sha512-iiAmn+l1XqRwNLXhW8Rs5qHZRFMYp9ZIPjEOVRpC/c4so6Y/f4/lFi0FfR5B9cCqgyhkJ5cZmbvcVRfP8MHchw==", + "dev": true, + "requires": { + "js-yaml": "3.6.1", + "lcov-parse": "0.0.10", + "log-driver": "1.2.5", + "minimist": "1.2.0", + "request": "2.79.0" + }, + "dependencies": { + "js-yaml": { + "version": "3.6.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.6.1.tgz", + "integrity": "sha1-bl/mfYsgXOTSL60Ft3geja3MSzA=", + "dev": true, + "requires": { + "argparse": "^1.0.7", + "esprima": "^2.6.0" + } + } + } + }, + "cross-spawn": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-4.0.2.tgz", + "integrity": "sha1-e5JHYhwjrf3ThWAEqCPL45dCTUE=", + "dev": true, + "requires": { + "lru-cache": "^4.0.1", + "which": "^1.2.9" + } + }, + "cryptiles": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-2.0.5.tgz", + "integrity": "sha1-O9/s3GCBR8HGcgL6KR59ylnqo7g=", + "dev": true, + "requires": { + "boom": "2.x.x" + } + }, + "currently-unhandled": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/currently-unhandled/-/currently-unhandled-0.4.1.tgz", + "integrity": "sha1-mI3zP+qxke95mmE2nddsF635V+o=", + "dev": true, + "requires": { + "array-find-index": "^1.0.1" + } + }, + "dashdash": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", + "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", + "dev": true, + "requires": { + "assert-plus": "^1.0.0" + }, + "dependencies": { + "assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", + "dev": true + } + } + }, + "date-now": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/date-now/-/date-now-0.1.4.tgz", + "integrity": "sha1-6vQ5/U1ISK105cx9vvIAZyueNFs=", + "dev": true + }, + "dateformat": { + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-1.0.12.tgz", + "integrity": "sha1-nxJLZ1lMk3/3BpMuSmQsyo27/uk=", + "dev": true, + "requires": { + "get-stdin": "^4.0.1", + "meow": "^3.3.0" + } + }, + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", + "dev": true + }, + "deeper": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/deeper/-/deeper-2.1.0.tgz", + "integrity": "sha1-vFZOX3MXT98gHgiwADDooU2nQ2g=", + "dev": true + }, + "delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", + "dev": true + }, + "diff": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/diff/-/diff-1.4.0.tgz", + "integrity": "sha1-fyjS657nsVqX79ic5j3P2qPMur8=", + "dev": true + }, + "dom-serializer": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.1.0.tgz", + "integrity": "sha1-BzxpdUbOB4DOI75KKOKT5AvDDII=", + "dev": true, + "requires": { + "domelementtype": "~1.1.1", + "entities": "~1.1.1" + }, + "dependencies": { + "domelementtype": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.1.3.tgz", + "integrity": "sha1-vSh3PiZCiBrsUVRJJCmcXNgiGFs=", + "dev": true + }, + "entities": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/entities/-/entities-1.1.1.tgz", + "integrity": "sha1-blwtClYhtdra7O+AuQ7ftc13cvA=", + "dev": true + } + } + }, + "domelementtype": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.0.tgz", + "integrity": "sha1-sXrtguirWeUt2cGbF1bg/BhyBMI=", + "dev": true + }, + "domhandler": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-2.3.0.tgz", + "integrity": "sha1-LeWaCCLVAn+r/28DLCsloqir5zg=", + "dev": true, + "requires": { + "domelementtype": "1" + } + }, + "domutils": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.5.1.tgz", + "integrity": "sha1-3NhIiib1Y9YQeeSMn3t+Mjc2gs8=", + "dev": true, + "requires": { + "dom-serializer": "0", + "domelementtype": "1" + } + }, + "duplexer": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.1.tgz", + "integrity": "sha1-rOb/gIwc5mtX0ev5eXessCM0z8E=" + }, + "ecc-jsbn": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz", + "integrity": "sha1-D8c6ntXw1Tw4GTOYUj735UN3dQU=", + "dev": true, + "optional": true, + "requires": { + "jsbn": "~0.1.0" + } + }, + "entities": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-1.0.0.tgz", + "integrity": "sha1-sph6o4ITR/zeZCsk/fyeT7cSvyY=", + "dev": true + }, + "error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "dev": true, + "requires": { + "is-arrayish": "^0.2.1" + } + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" + }, + "esprima": { + "version": "2.7.3", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-2.7.3.tgz", + "integrity": "sha1-luO3DVd59q1JzQMmc9HDEnZ7pYE=", + "dev": true + }, + "eventemitter2": { + "version": "0.4.14", + "resolved": "https://registry.npmjs.org/eventemitter2/-/eventemitter2-0.4.14.tgz", + "integrity": "sha1-j2G3XN4BKy6esoTUVFWDtWQ7Yas=", + "dev": true + }, + "events-to-array": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/events-to-array/-/events-to-array-1.1.2.tgz", + "integrity": "sha1-LUH1Y+H+QA7Uli/hpNXGp1Od9/Y=", + "dev": true + }, + "exit": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", + "integrity": "sha1-BjJjj42HfMghB9MKD/8aF8uhzQw=", + "dev": true + }, + "extend": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", + "dev": true + }, + "extsprintf": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", + "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=", + "dev": true + }, + "figures": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-1.7.0.tgz", + "integrity": "sha1-y+Hjr/zxzUS4DK3+0o3Hk6lwHS4=", + "requires": { + "escape-string-regexp": "^1.0.5", + "object-assign": "^4.1.0" + } + }, + "find-up": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", + "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", + "dev": true, + "requires": { + "path-exists": "^2.0.0", + "pinkie-promise": "^2.0.0" + } + }, + "findup-sync": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-0.3.0.tgz", + "integrity": "sha1-N5MKpdgWt3fANEXhlmzGeQpMCxY=", + "dev": true, + "requires": { + "glob": "~5.0.0" + }, + "dependencies": { + "glob": { + "version": "5.0.15", + "resolved": "https://registry.npmjs.org/glob/-/glob-5.0.15.tgz", + "integrity": "sha1-G8k2ueAvSmA/zCIuz3Yz0wuLk7E=", + "dev": true, + "requires": { + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "2 || 3", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + } + } + }, + "foreground-child": { + "version": "1.5.6", + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-1.5.6.tgz", + "integrity": "sha1-T9ca0t/elnibmApcCilZN8svXOk=", + "dev": true, + "requires": { + "cross-spawn": "^4", + "signal-exit": "^3.0.0" + } + }, + "forever-agent": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", + "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=", + "dev": true + }, + "form-data": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.1.4.tgz", + "integrity": "sha1-M8GDrPGTJ27KqYFDpp6Uv+4XUNE=", + "dev": true, + "requires": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.5", + "mime-types": "^2.1.12" + } + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", + "dev": true + }, + "generate-function": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/generate-function/-/generate-function-2.0.0.tgz", + "integrity": "sha1-aFj+fAlpt9TpCTM3ZHrHn2DfvnQ=", + "dev": true + }, + "generate-object-property": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/generate-object-property/-/generate-object-property-1.2.0.tgz", + "integrity": "sha1-nA4cQDCM6AT0eDYYuTf6iPmdUNA=", + "dev": true, + "requires": { + "is-property": "^1.0.0" + } + }, + "get-stdin": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz", + "integrity": "sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4=", + "dev": true + }, + "getobject": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/getobject/-/getobject-0.1.0.tgz", + "integrity": "sha1-BHpEl4n6Fg0Bj1SG7ZEyC27HiFw=", + "dev": true + }, + "getpass": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", + "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", + "dev": true, + "requires": { + "assert-plus": "^1.0.0" + }, + "dependencies": { + "assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", + "dev": true + } + } + }, + "glob": { + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.0.6.tgz", + "integrity": "sha1-IRuvr0nlJbjNkyYNFKsTYVKz9Xo=", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.2", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "graceful-fs": { + "version": "4.1.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", + "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=", + "dev": true + }, + "grunt": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/grunt/-/grunt-1.0.2.tgz", + "integrity": "sha1-TmpeaVtwRy/VME9fqeNCNoNqc7w=", + "dev": true, + "requires": { + "coffeescript": "~1.10.0", + "dateformat": "~1.0.12", + "eventemitter2": "~0.4.13", + "exit": "~0.1.1", + "findup-sync": "~0.3.0", + "glob": "~7.0.0", + "grunt-cli": "~1.2.0", + "grunt-known-options": "~1.1.0", + "grunt-legacy-log": "~1.0.0", + "grunt-legacy-util": "~1.0.0", + "iconv-lite": "~0.4.13", + "js-yaml": "~3.5.2", + "minimatch": "~3.0.2", + "nopt": "~3.0.6", + "path-is-absolute": "~1.0.0", + "rimraf": "~2.2.8" + }, + "dependencies": { + "grunt-cli": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/grunt-cli/-/grunt-cli-1.2.0.tgz", + "integrity": "sha1-VisRnrsGndtGSs4oRVAb6Xs1tqg=", + "dev": true, + "requires": { + "findup-sync": "~0.3.0", + "grunt-known-options": "~1.1.0", + "nopt": "~3.0.6", + "resolve": "~1.1.0" + } + } + } + }, + "grunt-contrib-clean": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/grunt-contrib-clean/-/grunt-contrib-clean-1.1.0.tgz", + "integrity": "sha1-Vkq/LQN4qYOhW54/MO51tzjEBjg=", + "dev": true, + "requires": { + "async": "^1.5.2", + "rimraf": "^2.5.1" + }, + "dependencies": { + "rimraf": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.2.tgz", + "integrity": "sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==", + "dev": true, + "requires": { + "glob": "^7.0.5" + } + } + } + }, + "grunt-contrib-internal": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/grunt-contrib-internal/-/grunt-contrib-internal-1.3.0.tgz", + "integrity": "sha1-5djAM6FFAp/6LM0MM/DT/hoTV0I=", + "dev": true, + "requires": { + "read-package-json": "^2.0.0" + } + }, + "grunt-contrib-jshint": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/grunt-contrib-jshint/-/grunt-contrib-jshint-1.1.0.tgz", + "integrity": "sha1-Np2QmyWTxA6L55lAshNAhQx5Oaw=", + "dev": true, + "requires": { + "chalk": "^1.1.1", + "hooker": "^0.2.3", + "jshint": "~2.9.4" + } + }, + "grunt-contrib-nodeunit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/grunt-contrib-nodeunit/-/grunt-contrib-nodeunit-1.0.0.tgz", + "integrity": "sha1-b0iFVe2cDIR4hUEDxx7bH8RoXwU=", + "dev": true, + "requires": { + "nodeunit": "^0.9.0" + } + }, + "grunt-known-options": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/grunt-known-options/-/grunt-known-options-1.1.0.tgz", + "integrity": "sha1-pCdO6zL6dl2lp6OxcSYXzjsUQUk=", + "dev": true + }, + "grunt-legacy-log": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/grunt-legacy-log/-/grunt-legacy-log-1.0.2.tgz", + "integrity": "sha512-WdedTJ/6zCXnI/coaouzqvkI19uwqbcPkdsXiDRKJyB5rOUlOxnCnTVbpeUdEckKVir2uHF3rDBYppj2p6N3+g==", + "dev": true, + "requires": { + "colors": "~1.1.2", + "grunt-legacy-log-utils": "~1.0.0", + "hooker": "~0.2.3", + "lodash": "~4.17.5" + } + }, + "grunt-legacy-log-utils": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/grunt-legacy-log-utils/-/grunt-legacy-log-utils-1.0.0.tgz", + "integrity": "sha1-p7ji0Ps1taUPSvmG/BEnSevJbz0=", + "dev": true, + "requires": { + "chalk": "~1.1.1", + "lodash": "~4.3.0" + }, + "dependencies": { + "lodash": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.3.0.tgz", + "integrity": "sha1-79nEpuxT87BUEkKZFcPkgk5NJaQ=", + "dev": true + } + } + }, + "grunt-legacy-util": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/grunt-legacy-util/-/grunt-legacy-util-1.0.0.tgz", + "integrity": "sha1-OGqnjcbtUJhsKxiVcmWxtIq7m4Y=", + "dev": true, + "requires": { + "async": "~1.5.2", + "exit": "~0.1.1", + "getobject": "~0.1.0", + "hooker": "~0.2.3", + "lodash": "~4.3.0", + "underscore.string": "~3.2.3", + "which": "~1.2.1" + }, + "dependencies": { + "lodash": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.3.0.tgz", + "integrity": "sha1-79nEpuxT87BUEkKZFcPkgk5NJaQ=", + "dev": true + } + } + }, + "gzip-size": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/gzip-size/-/gzip-size-3.0.0.tgz", + "integrity": "sha1-VGGI6b3DN/Zzdy+BZgRks4nc5SA=", + "requires": { + "duplexer": "^0.1.1" + } + }, + "har-validator": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-2.0.6.tgz", + "integrity": "sha1-zcvAgYgmWtEZtqWnyKtw7s+10n0=", + "dev": true, + "requires": { + "chalk": "^1.1.1", + "commander": "^2.9.0", + "is-my-json-valid": "^2.12.4", + "pinkie-promise": "^2.0.0" + } + }, + "has-ansi": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", + "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", + "requires": { + "ansi-regex": "^2.0.0" + } + }, + "hawk": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/hawk/-/hawk-3.1.3.tgz", + "integrity": "sha1-B4REvXwWQLD+VA0sm3PVlnjo4cQ=", + "dev": true, + "requires": { + "boom": "2.x.x", + "cryptiles": "2.x.x", + "hoek": "2.x.x", + "sntp": "1.x.x" + } + }, + "hoek": { + "version": "2.16.3", + "resolved": "https://registry.npmjs.org/hoek/-/hoek-2.16.3.tgz", + "integrity": "sha1-ILt0A9POo5jpHcRxCo/xuCdKJe0=", + "dev": true + }, + "hooker": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/hooker/-/hooker-0.2.3.tgz", + "integrity": "sha1-uDT3I8xKJCqmWWNFnfbZhMXT2Vk=", + "dev": true + }, + "hosted-git-info": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.7.1.tgz", + "integrity": "sha512-7T/BxH19zbcCTa8XkMlbK5lTo1WtgkFi3GvdWEyNuc4Vex7/9Dqbnpsf4JMydcfj9HCg4zUWFTL3Za6lapg5/w==", + "dev": true + }, + "htmlparser2": { + "version": "3.8.3", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.8.3.tgz", + "integrity": "sha1-mWwosZFRaovoZQGn15dX5ccMEGg=", + "dev": true, + "requires": { + "domelementtype": "1", + "domhandler": "2.3", + "domutils": "1.5", + "entities": "1.0", + "readable-stream": "1.1" + } + }, + "http-signature": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.1.1.tgz", + "integrity": "sha1-33LiZwZs0Kxn+3at+OE0qPvPkb8=", + "dev": true, + "requires": { + "assert-plus": "^0.2.0", + "jsprim": "^1.2.2", + "sshpk": "^1.7.0" + } + }, + "iconv-lite": { + "version": "0.4.23", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.23.tgz", + "integrity": "sha512-neyTUVFtahjf0mB3dZT77u+8O0QB89jFdnBkd5P1JgYPbPaia3gXXOVL2fq8VyU2gMMD7SaN7QukTB/pmXYvDA==", + "dev": true, + "requires": { + "safer-buffer": ">= 2.1.2 < 3" + } + }, + "indent-string": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-2.1.0.tgz", + "integrity": "sha1-ji1INIdCEhtKghi3oTfppSBJ3IA=", + "dev": true, + "requires": { + "repeating": "^2.0.0" + } + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "dev": true, + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", + "dev": true + }, + "is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", + "dev": true + }, + "is-builtin-module": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-1.0.0.tgz", + "integrity": "sha1-VAVy0096wxGfj3bDDLwbHgN6/74=", + "dev": true, + "requires": { + "builtin-modules": "^1.0.0" + } + }, + "is-finite": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz", + "integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=", + "dev": true, + "requires": { + "number-is-nan": "^1.0.0" + } + }, + "is-my-ip-valid": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-my-ip-valid/-/is-my-ip-valid-1.0.0.tgz", + "integrity": "sha512-gmh/eWXROncUzRnIa1Ubrt5b8ep/MGSnfAUI3aRp+sqTCs1tv1Isl8d8F6JmkN3dXKc3ehZMrtiPN9eL03NuaQ==", + "dev": true + }, + "is-my-json-valid": { + "version": "2.17.2", + "resolved": "https://registry.npmjs.org/is-my-json-valid/-/is-my-json-valid-2.17.2.tgz", + "integrity": "sha512-IBhBslgngMQN8DDSppmgDv7RNrlFotuuDsKcrCP3+HbFaVivIBU7u9oiiErw8sH4ynx3+gOGQ3q2otkgiSi6kg==", + "dev": true, + "requires": { + "generate-function": "^2.0.0", + "generate-object-property": "^1.1.0", + "is-my-ip-valid": "^1.0.0", + "jsonpointer": "^4.0.0", + "xtend": "^4.0.0" + } + }, + "is-property": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-property/-/is-property-1.0.2.tgz", + "integrity": "sha1-V/4cTkhHTt1lsJkR8msc1Ald2oQ=", + "dev": true + }, + "is-typedarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", + "dev": true + }, + "is-utf8": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", + "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=", + "dev": true + }, + "isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", + "dev": true + }, + "isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", + "dev": true + }, + "isstream": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", + "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=", + "dev": true + }, + "js-yaml": { + "version": "3.5.5", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.5.5.tgz", + "integrity": "sha1-A3fDgBfKvHMisNH7zSWkkWQfL74=", + "dev": true, + "requires": { + "argparse": "^1.0.2", + "esprima": "^2.6.0" + } + }, + "jsbn": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", + "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", + "dev": true, + "optional": true + }, + "jshint": { + "version": "2.9.5", + "resolved": "https://registry.npmjs.org/jshint/-/jshint-2.9.5.tgz", + "integrity": "sha1-HnJSkVzmgbQIJ+4UJIxG006apiw=", + "dev": true, + "requires": { + "cli": "~1.0.0", + "console-browserify": "1.1.x", + "exit": "0.1.x", + "htmlparser2": "3.8.x", + "lodash": "3.7.x", + "minimatch": "~3.0.2", + "shelljs": "0.3.x", + "strip-json-comments": "1.0.x" + }, + "dependencies": { + "lodash": { + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-3.7.0.tgz", + "integrity": "sha1-Nni9irmVBXwHreg27S7wh9qBHUU=", + "dev": true + } + } + }, + "json-parse-better-errors": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", + "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==", + "dev": true + }, + "json-schema": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", + "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=", + "dev": true + }, + "json-stringify-safe": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", + "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=", + "dev": true + }, + "jsonpointer": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/jsonpointer/-/jsonpointer-4.0.1.tgz", + "integrity": "sha1-T9kss04OnbPInIYi7PUfm5eMbLk=", + "dev": true + }, + "jsprim": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", + "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", + "dev": true, + "requires": { + "assert-plus": "1.0.0", + "extsprintf": "1.3.0", + "json-schema": "0.2.3", + "verror": "1.10.0" + }, + "dependencies": { + "assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", + "dev": true + } + } + }, + "lcov-parse": { + "version": "0.0.10", + "resolved": "https://registry.npmjs.org/lcov-parse/-/lcov-parse-0.0.10.tgz", + "integrity": "sha1-GwuP+ayceIklBYK3C3ExXZ2m2aM=", + "dev": true + }, + "load-json-file": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", + "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "parse-json": "^2.2.0", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0", + "strip-bom": "^2.0.0" + } + }, + "lodash": { + "version": "4.17.10", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.10.tgz", + "integrity": "sha512-UejweD1pDoXu+AD825lWwp4ZGtSwgnpZxb3JDViD7StjQz+Nb/6l093lx4OQ0foGWNRoc19mWy7BzL+UAK2iVg==", + "dev": true + }, + "log-driver": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/log-driver/-/log-driver-1.2.5.tgz", + "integrity": "sha1-euTsJXMC/XkNVXyxDJcQDYV7AFY=", + "dev": true + }, + "loud-rejection": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/loud-rejection/-/loud-rejection-1.6.0.tgz", + "integrity": "sha1-W0b4AUft7leIcPCG0Eghz5mOVR8=", + "dev": true, + "requires": { + "currently-unhandled": "^0.4.1", + "signal-exit": "^3.0.0" + } + }, + "lru-cache": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.3.tgz", + "integrity": "sha512-fFEhvcgzuIoJVUF8fYr5KR0YqxD238zgObTps31YdADwPPAp82a4M8TrckkWyx7ekNlf9aBcVn81cFwwXngrJA==", + "dev": true, + "requires": { + "pseudomap": "^1.0.2", + "yallist": "^2.1.2" + } + }, + "map-obj": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", + "integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=", + "dev": true + }, + "maxmin": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/maxmin/-/maxmin-2.1.0.tgz", + "integrity": "sha1-TTsiCQPZXu5+t6x/qGTnLcCaMWY=", + "requires": { + "chalk": "^1.0.0", + "figures": "^1.0.1", + "gzip-size": "^3.0.0", + "pretty-bytes": "^3.0.0" + } + }, + "meow": { + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/meow/-/meow-3.7.0.tgz", + "integrity": "sha1-cstmi0JSKCkKu/qFaJJYcwioAfs=", + "dev": true, + "requires": { + "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": { + "version": "1.35.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.35.0.tgz", + "integrity": "sha512-JWT/IcCTsB0Io3AhWUMjRqucrHSPsSf2xKLaRldJVULioggvkJvggZ3VXNNSRkCddE6D+BUI4HEIZIA2OjwIvg==", + "dev": true + }, + "mime-types": { + "version": "2.1.19", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.19.tgz", + "integrity": "sha512-P1tKYHVSZ6uFo26mtnve4HQFE3koh1UWVkp8YUC+ESBHe945xWSoXuHHiGarDqcEZ+whpCDnlNw5LON0kLo+sw==", + "dev": true, + "requires": { + "mime-db": "~1.35.0" + } + }, + "minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "dev": true, + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "minimist": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", + "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", + "dev": true + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, + "nodeunit": { + "version": "0.9.5", + "resolved": "https://registry.npmjs.org/nodeunit/-/nodeunit-0.9.5.tgz", + "integrity": "sha1-C2MjaAB9lGUczwoYmZgHmC8HOGY=", + "dev": true, + "requires": { + "tap": "^7.0.0" + } + }, + "nopt": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz", + "integrity": "sha1-xkZdvwirzU2zWTF/eaxopkayj/k=", + "dev": true, + "requires": { + "abbrev": "1" + } + }, + "normalize-package-data": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.4.0.tgz", + "integrity": "sha512-9jjUFbTPfEy3R/ad/2oNbKtW9Hgovl5O1FvFWKkKblNXoN/Oou6+9+KKohPK13Yc3/TyunyWhJp6gvRNR/PPAw==", + "dev": true, + "requires": { + "hosted-git-info": "^2.1.4", + "is-builtin-module": "^1.0.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" + } + }, + "number-is-nan": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", + "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=" + }, + "nyc": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/nyc/-/nyc-7.1.0.tgz", + "integrity": "sha1-jhSXHzoV0au+x6xhDvVMuInp/7Q=", + "dev": true, + "requires": { + "arrify": "^1.0.1", + "caching-transform": "^1.0.0", + "convert-source-map": "^1.3.0", + "default-require-extensions": "^1.0.0", + "find-cache-dir": "^0.1.1", + "find-up": "^1.1.2", + "foreground-child": "^1.5.3", + "glob": "^7.0.3", + "istanbul-lib-coverage": "^1.0.0-alpha.4", + "istanbul-lib-hook": "^1.0.0-alpha.4", + "istanbul-lib-instrument": "^1.1.0-alpha.3", + "istanbul-lib-report": "^1.0.0-alpha.3", + "istanbul-lib-source-maps": "^1.0.0-alpha.10", + "istanbul-reports": "^1.0.0-alpha.8", + "md5-hex": "^1.2.0", + "micromatch": "^2.3.11", + "mkdirp": "^0.5.0", + "pkg-up": "^1.0.0", + "resolve-from": "^2.0.0", + "rimraf": "^2.5.4", + "signal-exit": "^3.0.0", + "spawn-wrap": "^1.2.4", + "test-exclude": "^1.1.0", + "yargs": "^4.8.1", + "yargs-parser": "^2.4.1" + }, + "dependencies": { + "align-text": { + "version": "0.1.4", + "resolved": false, + "integrity": "sha1-DNkKVhCT810KmSVsIrcGlDP60Rc=", + "dev": true, + "requires": { + "kind-of": "^3.0.2", + "longest": "^1.0.1", + "repeat-string": "^1.5.2" + } + }, + "amdefine": { + "version": "1.0.0", + "resolved": false, + "integrity": "sha1-/RdHRwDLXMnCtwnwvp0jzjwZjDM=", + "dev": true + }, + "ansi-regex": { + "version": "2.0.0", + "resolved": false, + "integrity": "sha1-xQYbbg74qBd15Q9dZhUb9r83EQc=", + "dev": true + }, + "ansi-styles": { + "version": "2.2.1", + "resolved": false, + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", + "dev": true + }, + "append-transform": { + "version": "0.3.0", + "resolved": false, + "integrity": "sha1-1pM85KhfCURdnMxMwRkFG3OBqBM=", + "dev": true + }, + "arr-diff": { + "version": "2.0.0", + "resolved": false, + "integrity": "sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8=", + "dev": true, + "requires": { + "arr-flatten": "^1.0.1" + } + }, + "arr-flatten": { + "version": "1.0.1", + "resolved": false, + "integrity": "sha1-5f/lTUXhnzLyFukeuZyM6JK7YEs=", + "dev": true + }, + "array-unique": { + "version": "0.2.1", + "resolved": false, + "integrity": "sha1-odl8yvy8JiXMcPrc6zalDFiwGlM=", + "dev": true + }, + "arrify": { + "version": "1.0.1", + "resolved": false, + "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=", + "dev": true + }, + "async": { + "version": "1.5.2", + "resolved": false, + "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=", + "dev": true + }, + "babel-code-frame": { + "version": "6.11.0", + "resolved": false, + "integrity": "sha1-kHLdI1P7D4W2tX0sl/DRNNGIrtg=", + "dev": true, + "requires": { + "babel-runtime": "^6.0.0", + "chalk": "^1.1.0", + "esutils": "^2.0.2", + "js-tokens": "^2.0.0" + } + }, + "babel-generator": { + "version": "6.11.4", + "resolved": false, + "integrity": "sha1-FPaTOrsgxiZm0n47e59bncBxKpo=", + "dev": true, + "requires": { + "babel-messages": "^6.8.0", + "babel-runtime": "^6.9.0", + "babel-types": "^6.10.2", + "detect-indent": "^3.0.1", + "lodash": "^4.2.0", + "source-map": "^0.5.0" + } + }, + "babel-messages": { + "version": "6.8.0", + "resolved": false, + "integrity": "sha1-v1BHNsqWfm1l7wrbWipflHyODrk=", + "dev": true, + "requires": { + "babel-runtime": "^6.0.0" + } + }, + "babel-runtime": { + "version": "6.9.2", + "resolved": false, + "integrity": "sha1-1/45G8LMKbgIfB2bOYeJEun8/Vk=", + "dev": true, + "requires": { + "core-js": "^2.4.0", + "regenerator-runtime": "^0.9.5" + } + }, + "babel-template": { + "version": "6.9.0", + "resolved": false, + "integrity": "sha1-lwkPz2vBVoW08FvmXAqUOKp+I+M=", + "dev": true, + "requires": { + "babel-runtime": "^6.9.0", + "babel-traverse": "^6.9.0", + "babel-types": "^6.9.0", + "babylon": "^6.7.0", + "lodash": "^4.2.0" + } + }, + "babel-traverse": { + "version": "6.11.4", + "resolved": false, + "integrity": "sha1-On3vakwf6fWLWcmiK+gfYZ+Cl2w=", + "dev": true, + "requires": { + "babel-code-frame": "^6.8.0", + "babel-messages": "^6.8.0", + "babel-runtime": "^6.9.0", + "babel-types": "^6.9.0", + "babylon": "^6.7.0", + "debug": "^2.2.0", + "globals": "^8.3.0", + "invariant": "^2.2.0", + "lodash": "^4.2.0" + } + }, + "babel-types": { + "version": "6.11.1", + "resolved": false, + "integrity": "sha1-o981W6uQ3c9mMYZAcXzywVTmZIo=", + "dev": true, + "requires": { + "babel-runtime": "^6.9.1", + "babel-traverse": "^6.9.0", + "esutils": "^2.0.2", + "lodash": "^4.2.0", + "to-fast-properties": "^1.0.1" + } + }, + "babylon": { + "version": "6.8.4", + "resolved": false, + "integrity": "sha1-CXMGuNq66VFZIlzymz6lWRIFMYA=", + "dev": true, + "requires": { + "babel-runtime": "^6.0.0" + } + }, + "balanced-match": { + "version": "0.4.2", + "resolved": false, + "integrity": "sha1-yz8+PHMtwPAe5wtAPzAuYddwmDg=", + "dev": true + }, + "brace-expansion": { + "version": "1.1.6", + "resolved": false, + "integrity": "sha1-cZfX6qm4fmSDkOph/GbIRCdCDfk=", + "dev": true, + "requires": { + "balanced-match": "^0.4.1", + "concat-map": "0.0.1" + } + }, + "braces": { + "version": "1.8.5", + "resolved": false, + "integrity": "sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=", + "dev": true, + "requires": { + "expand-range": "^1.8.1", + "preserve": "^0.2.0", + "repeat-element": "^1.1.2" + } + }, + "builtin-modules": { + "version": "1.1.1", + "resolved": false, + "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=", + "dev": true + }, + "caching-transform": { + "version": "1.0.1", + "resolved": false, + "integrity": "sha1-bb2y8g+Nj7znnz6U6dF0Lc31wKE=", + "dev": true, + "requires": { + "md5-hex": "^1.2.0", + "mkdirp": "^0.5.1", + "write-file-atomic": "^1.1.4" + } + }, + "camelcase": { + "version": "1.2.1", + "resolved": false, + "integrity": "sha1-m7UwTS4LVmmLLHWLCKPqqdqlijk=", + "dev": true, + "optional": true + }, + "center-align": { + "version": "0.1.3", + "resolved": false, + "integrity": "sha1-qg0yYptu6XIgBBHL1EYckHvCt60=", + "dev": true, + "optional": true, + "requires": { + "align-text": "^0.1.3", + "lazy-cache": "^1.0.3" + } + }, + "chalk": { + "version": "1.1.3", + "resolved": false, + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "dev": true, + "requires": { + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" + } + }, + "cliui": { + "version": "2.1.0", + "resolved": false, + "integrity": "sha1-S0dXYP+AJkx2LDoXGQMukcf+oNE=", + "dev": true, + "optional": true, + "requires": { + "center-align": "^0.1.1", + "right-align": "^0.1.1", + "wordwrap": "0.0.2" + }, + "dependencies": { + "wordwrap": { + "version": "0.0.2", + "resolved": false, + "integrity": "sha1-t5Zpu0LstAn4PVg8rVLKF+qhZD8=", + "dev": true, + "optional": true + } + } + }, + "code-point-at": { + "version": "1.0.0", + "resolved": false, + "integrity": "sha1-9psZLT99keOC5Lcb3bd4eGGasMY=", + "dev": true, + "requires": { + "number-is-nan": "^1.0.0" + } + }, + "commondir": { + "version": "1.0.1", + "resolved": false, + "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=", + "dev": true + }, + "concat-map": { + "version": "0.0.1", + "resolved": false, + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", + "dev": true + }, + "convert-source-map": { + "version": "1.3.0", + "resolved": false, + "integrity": "sha1-6fPpxuJyjvwmdmlqcOs4L3MQamc=", + "dev": true + }, + "core-js": { + "version": "2.4.1", + "resolved": false, + "integrity": "sha1-TekR5mew6ukSTjQlS1OupvxhjT4=", + "dev": true + }, + "cross-spawn": { + "version": "4.0.0", + "resolved": false, + "integrity": "sha1-glR3SrR4a4xbPPTfumbOVjkywlI=", + "dev": true, + "requires": { + "lru-cache": "^4.0.1", + "which": "^1.2.9" + } + }, + "debug": { + "version": "2.2.0", + "resolved": false, + "integrity": "sha1-+HBX6ZWxofauaklgZkE3vFbwOdo=", + "dev": true, + "requires": { + "ms": "0.7.1" + } + }, + "decamelize": { + "version": "1.2.0", + "resolved": false, + "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", + "dev": true + }, + "default-require-extensions": { + "version": "1.0.0", + "resolved": false, + "integrity": "sha1-836hXT4T/9m0N9M+GnW1+5eHTLg=", + "dev": true, + "requires": { + "strip-bom": "^2.0.0" + } + }, + "detect-indent": { + "version": "3.0.1", + "resolved": false, + "integrity": "sha1-ncXl3bzu+DJXZLlFGwK8bVQIT3U=", + "dev": true, + "requires": { + "get-stdin": "^4.0.1", + "minimist": "^1.1.0", + "repeating": "^1.1.0" + }, + "dependencies": { + "minimist": { + "version": "1.2.0", + "resolved": false, + "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", + "dev": true + } + } + }, + "error-ex": { + "version": "1.3.0", + "resolved": false, + "integrity": "sha1-5ntD8+gsluo6WE/+4Ln8MyXYAtk=", + "dev": true, + "requires": { + "is-arrayish": "^0.2.1" + } + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": false, + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "dev": true + }, + "esutils": { + "version": "2.0.2", + "resolved": false, + "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=", + "dev": true + }, + "expand-brackets": { + "version": "0.1.5", + "resolved": false, + "integrity": "sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s=", + "dev": true, + "requires": { + "is-posix-bracket": "^0.1.0" + } + }, + "expand-range": { + "version": "1.8.2", + "resolved": false, + "integrity": "sha1-opnv/TNf4nIeuujiV+x5ZE/IUzc=", + "dev": true, + "requires": { + "fill-range": "^2.1.0" + } + }, + "extglob": { + "version": "0.3.2", + "resolved": false, + "integrity": "sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=", + "dev": true, + "requires": { + "is-extglob": "^1.0.0" + } + }, + "filename-regex": { + "version": "2.0.0", + "resolved": false, + "integrity": "sha1-mW4+gEebmLmJfxWopYs9CE6SZ3U=", + "dev": true + }, + "fill-range": { + "version": "2.2.3", + "resolved": false, + "integrity": "sha1-ULd9/X5Gm8dJJHCWNpn+eoSFpyM=", + "dev": true, + "requires": { + "is-number": "^2.1.0", + "isobject": "^2.0.0", + "randomatic": "^1.1.3", + "repeat-element": "^1.1.2", + "repeat-string": "^1.5.2" + } + }, + "find-cache-dir": { + "version": "0.1.1", + "resolved": false, + "integrity": "sha1-yN765XyKUqinhPnjHFfHQumToLk=", + "dev": true, + "requires": { + "commondir": "^1.0.1", + "mkdirp": "^0.5.1", + "pkg-dir": "^1.0.0" + } + }, + "find-up": { + "version": "1.1.2", + "resolved": false, + "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", + "dev": true, + "requires": { + "path-exists": "^2.0.0", + "pinkie-promise": "^2.0.0" + } + }, + "for-in": { + "version": "0.1.5", + "resolved": false, + "integrity": "sha1-AHN04rbVxnQgoUeb23WgSHK3OMQ=", + "dev": true + }, + "for-own": { + "version": "0.1.4", + "resolved": false, + "integrity": "sha1-AUm0GjkIjHUV9R6+HBOG1F+TUHI=", + "dev": true, + "requires": { + "for-in": "^0.1.5" + } + }, + "foreground-child": { + "version": "1.5.3", + "resolved": false, + "integrity": "sha1-lN1qumcTiYZ96OV+mfHC7PsVwBo=", + "dev": true, + "requires": { + "cross-spawn": "^4", + "signal-exit": "^3.0.0" + } + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": false, + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", + "dev": true + }, + "get-caller-file": { + "version": "1.0.1", + "resolved": false, + "integrity": "sha1-qm/3uYobItwMizuQX6sytVL1rEE=", + "dev": true + }, + "get-stdin": { + "version": "4.0.1", + "resolved": false, + "integrity": "sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4=", + "dev": true + }, + "glob": { + "version": "7.0.5", + "resolved": false, + "integrity": "sha1-tCAqaQmbu00pKnwblbZoK2fr3JU=", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.2", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "glob-base": { + "version": "0.3.0", + "resolved": false, + "integrity": "sha1-27Fk9iIbHAscz4Kuoyi0l98Oo8Q=", + "dev": true, + "requires": { + "glob-parent": "^2.0.0", + "is-glob": "^2.0.0" + } + }, + "glob-parent": { + "version": "2.0.0", + "resolved": false, + "integrity": "sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg=", + "dev": true, + "requires": { + "is-glob": "^2.0.0" + } + }, + "globals": { + "version": "8.18.0", + "resolved": false, + "integrity": "sha1-k9SmK9ysOM+vr8R9awNHaMsP/LQ=", + "dev": true + }, + "graceful-fs": { + "version": "4.1.4", + "resolved": false, + "integrity": "sha1-7widKIDwM7ARgjzlyPrnmNp3Xb0=", + "dev": true + }, + "handlebars": { + "version": "4.0.5", + "resolved": false, + "integrity": "sha1-ksbta7FkEQxQ1NjQ+93HCAbG+Oc=", + "dev": true, + "requires": { + "async": "^1.4.0", + "optimist": "^0.6.1", + "source-map": "^0.4.4", + "uglify-js": "^2.6" + }, + "dependencies": { + "source-map": { + "version": "0.4.4", + "resolved": false, + "integrity": "sha1-66T12pwNyZneaAMti092FzZSA2s=", + "dev": true, + "requires": { + "amdefine": ">=0.0.4" + } + } + } + }, + "has-ansi": { + "version": "2.0.0", + "resolved": false, + "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", + "dev": true, + "requires": { + "ansi-regex": "^2.0.0" + } + }, + "has-flag": { + "version": "1.0.0", + "resolved": false, + "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", + "dev": true + }, + "hosted-git-info": { + "version": "2.1.5", + "resolved": false, + "integrity": "sha1-C6gdkNouJas0ozLm7HeTbhWYEYs=", + "dev": true + }, + "imurmurhash": { + "version": "0.1.4", + "resolved": false, + "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", + "dev": true + }, + "inflight": { + "version": "1.0.5", + "resolved": false, + "integrity": "sha1-2zIEzVqd4ubNiQuFxuL2a89PYgo=", + "dev": true, + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "inherits": { + "version": "2.0.1", + "resolved": false, + "integrity": "sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE=", + "dev": true + }, + "invariant": { + "version": "2.2.1", + "resolved": false, + "integrity": "sha1-sJcBBUdmjH4zcCjr6Bbr42yKjVQ=", + "dev": true, + "requires": { + "loose-envify": "^1.0.0" + } + }, + "invert-kv": { + "version": "1.0.0", + "resolved": false, + "integrity": "sha1-EEqOSqym09jNFXqO+L+rLXo//bY=", + "dev": true + }, + "is-arrayish": { + "version": "0.2.1", + "resolved": false, + "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", + "dev": true + }, + "is-buffer": { + "version": "1.1.3", + "resolved": false, + "integrity": "sha1-24l/w/esotUN6UtsjCiWpHcWJ68=", + "dev": true + }, + "is-builtin-module": { + "version": "1.0.0", + "resolved": false, + "integrity": "sha1-VAVy0096wxGfj3bDDLwbHgN6/74=", + "dev": true, + "requires": { + "builtin-modules": "^1.0.0" + } + }, + "is-dotfile": { + "version": "1.0.2", + "resolved": false, + "integrity": "sha1-LBMjg/ORmfjtwmjKAbmwB9IFzE0=", + "dev": true + }, + "is-equal-shallow": { + "version": "0.1.3", + "resolved": false, + "integrity": "sha1-IjgJj8Ih3gvPpdnqxMRdY4qhxTQ=", + "dev": true, + "requires": { + "is-primitive": "^2.0.0" + } + }, + "is-extendable": { + "version": "0.1.1", + "resolved": false, + "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", + "dev": true + }, + "is-extglob": { + "version": "1.0.0", + "resolved": false, + "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=", + "dev": true + }, + "is-finite": { + "version": "1.0.1", + "resolved": false, + "integrity": "sha1-ZDhgPq6+J5OUj/SkJi7I2z1iWXs=", + "dev": true, + "requires": { + "number-is-nan": "^1.0.0" + } + }, + "is-fullwidth-code-point": { + "version": "1.0.0", + "resolved": false, + "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", + "dev": true, + "requires": { + "number-is-nan": "^1.0.0" + } + }, + "is-glob": { + "version": "2.0.1", + "resolved": false, + "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", + "dev": true, + "requires": { + "is-extglob": "^1.0.0" + } + }, + "is-number": { + "version": "2.1.0", + "resolved": false, + "integrity": "sha1-Afy7s5NGOlSPL0ZszhbezknbkI8=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + } + }, + "is-posix-bracket": { + "version": "0.1.1", + "resolved": false, + "integrity": "sha1-MzTceXdDaOkvAW5vvAqI9c1ua8Q=", + "dev": true + }, + "is-primitive": { + "version": "2.0.0", + "resolved": false, + "integrity": "sha1-IHurkWOEmcB7Kt8kCkGochADRXU=", + "dev": true + }, + "is-utf8": { + "version": "0.2.1", + "resolved": false, + "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=", + "dev": true + }, + "isarray": { + "version": "1.0.0", + "resolved": false, + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "dev": true + }, + "isexe": { + "version": "1.1.2", + "resolved": false, + "integrity": "sha1-NvPiLmB1CSD15yQaR2qMakInWtA=", + "dev": true + }, + "isobject": { + "version": "2.1.0", + "resolved": false, + "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", + "dev": true, + "requires": { + "isarray": "1.0.0" + } + }, + "istanbul-lib-coverage": { + "version": "1.0.0-alpha.4", + "resolved": false, + "integrity": "sha1-Ym9/2c+Am2479+1CqAn44LZK6XY=", + "dev": true + }, + "istanbul-lib-hook": { + "version": "1.0.0-alpha.4", + "resolved": false, + "integrity": "sha1-jFu59vvYUm4K5s9jmvKCZpBrk48=", + "dev": true, + "requires": { + "append-transform": "^0.3.0" + } + }, + "istanbul-lib-instrument": { + "version": "1.1.0-alpha.4", + "resolved": false, + "integrity": "sha1-d9mxE+n3YaqEmIM5ATpyA6zJitw=", + "dev": true, + "requires": { + "babel-generator": "^6.11.3", + "babel-template": "^6.9.0", + "babel-traverse": "^6.9.0", + "babel-types": "^6.10.2", + "babylon": "^6.8.1", + "istanbul-lib-coverage": "^1.0.0-alpha.4" + } + }, + "istanbul-lib-report": { + "version": "1.0.0-alpha.3", + "resolved": false, + "integrity": "sha1-MtX27H8zyjpgIgnieLLm/xQ0mK8=", + "dev": true, + "requires": { + "async": "^1.4.2", + "istanbul-lib-coverage": "^1.0.0-alpha", + "mkdirp": "^0.5.1", + "path-parse": "^1.0.5", + "rimraf": "^2.4.3", + "supports-color": "^3.1.2" + }, + "dependencies": { + "supports-color": { + "version": "3.1.2", + "resolved": false, + "integrity": "sha1-cqJiiU2dQIuVbKBf83su2KbiotU=", + "dev": true, + "requires": { + "has-flag": "^1.0.0" + } + } + } + }, + "istanbul-lib-source-maps": { + "version": "1.0.0-alpha.10", + "resolved": false, + "integrity": "sha1-mxWlyLWdG5EBviy33VTHA9hq3vE=", + "dev": true, + "requires": { + "istanbul-lib-coverage": "^1.0.0-alpha.0", + "mkdirp": "^0.5.1", + "rimraf": "^2.4.4", + "source-map": "^0.5.3" + } + }, + "istanbul-reports": { + "version": "1.0.0-alpha.8", + "resolved": false, + "integrity": "sha1-CUgw9Mfz1ILkZqrIq9oklfmuRok=", + "dev": true, + "requires": { + "handlebars": "^4.0.3" + } + }, + "js-tokens": { + "version": "2.0.0", + "resolved": false, + "integrity": "sha1-eZA/VWPud4zBFi5tzxoAJ8l/nLU=", + "dev": true + }, + "kind-of": { + "version": "3.0.3", + "resolved": false, + "integrity": "sha1-xhYIdH2BWwNiVW2zJ2Nip6OK3tM=", + "dev": true, + "requires": { + "is-buffer": "^1.0.2" + } + }, + "lazy-cache": { + "version": "1.0.4", + "resolved": false, + "integrity": "sha1-odePw6UEdMuAhF07O24dpJpEbo4=", + "dev": true, + "optional": true + }, + "lcid": { + "version": "1.0.0", + "resolved": false, + "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=", + "dev": true, + "requires": { + "invert-kv": "^1.0.0" + } + }, + "load-json-file": { + "version": "1.1.0", + "resolved": false, + "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "parse-json": "^2.2.0", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0", + "strip-bom": "^2.0.0" + } + }, + "lodash": { + "version": "4.13.1", + "resolved": false, + "integrity": "sha1-g+SxCRP0hJbU0W/sSlYK8u50S2g=", + "dev": true + }, + "lodash.assign": { + "version": "4.0.9", + "resolved": false, + "integrity": "sha1-Cgcx2TWQ3dm6RYn61lqvbuCSF+M=", + "dev": true, + "requires": { + "lodash.keys": "^4.0.0", + "lodash.rest": "^4.0.0" + } + }, + "lodash.keys": { + "version": "4.0.7", + "resolved": false, + "integrity": "sha1-MOGzvZjlTWoGEZkYEmhba8R8tjs=", + "dev": true + }, + "lodash.rest": { + "version": "4.0.3", + "resolved": false, + "integrity": "sha1-TBwyxAAoCHJQ+r9w1C4BUVSPSMU=", + "dev": true + }, + "longest": { + "version": "1.0.1", + "resolved": false, + "integrity": "sha1-MKCy2jj3N3DoKUoNIuZiXtd9AJc=", + "dev": true + }, + "loose-envify": { + "version": "1.2.0", + "resolved": false, + "integrity": "sha1-aaZarT3lQs9O4PT+dOjjPHCcyw8=", + "dev": true, + "requires": { + "js-tokens": "^1.0.1" + }, + "dependencies": { + "js-tokens": { + "version": "1.0.3", + "resolved": false, + "integrity": "sha1-FOVutoyPGpLEPVn1AU7CncIPKuE=", + "dev": true + } + } + }, + "lru-cache": { + "version": "4.0.1", + "resolved": false, + "integrity": "sha1-E0OVXtry432bnn7nJB4nxLn7cr4=", + "dev": true, + "requires": { + "pseudomap": "^1.0.1", + "yallist": "^2.0.0" + } + }, + "md5-hex": { + "version": "1.3.0", + "resolved": false, + "integrity": "sha1-0sSv6YPENwZiF5uMrRRSGRNQRsQ=", + "dev": true, + "requires": { + "md5-o-matic": "^0.1.1" + } + }, + "md5-o-matic": { + "version": "0.1.1", + "resolved": false, + "integrity": "sha1-givM1l4RfFFPqxdrJZRdVBAKA8M=", + "dev": true + }, + "micromatch": { + "version": "2.3.11", + "resolved": false, + "integrity": "sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=", + "dev": true, + "requires": { + "arr-diff": "^2.0.0", + "array-unique": "^0.2.1", + "braces": "^1.8.2", + "expand-brackets": "^0.1.4", + "extglob": "^0.3.1", + "filename-regex": "^2.0.0", + "is-extglob": "^1.0.0", + "is-glob": "^2.0.1", + "kind-of": "^3.0.2", + "normalize-path": "^2.0.1", + "object.omit": "^2.0.0", + "parse-glob": "^3.0.4", + "regex-cache": "^0.4.2" + } + }, + "minimatch": { + "version": "3.0.2", + "resolved": false, + "integrity": "sha1-DzmKcwDqRB6cNIyD2Yq4ydv5xAo=", + "dev": true, + "requires": { + "brace-expansion": "^1.0.0" + } + }, + "minimist": { + "version": "0.0.8", + "resolved": false, + "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", + "dev": true + }, + "mkdirp": { + "version": "0.5.1", + "resolved": false, + "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", + "dev": true, + "requires": { + "minimist": "0.0.8" + } + }, + "ms": { + "version": "0.7.1", + "resolved": false, + "integrity": "sha1-nNE8A62/8ltl7/3nzoZO6VIBcJg=", + "dev": true + }, + "normalize-package-data": { + "version": "2.3.5", + "resolved": false, + "integrity": "sha1-jZJPFClg4Xd+f/4XBUNjHMfLAt8=", + "dev": true, + "requires": { + "hosted-git-info": "^2.1.4", + "is-builtin-module": "^1.0.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" + } + }, + "normalize-path": { + "version": "2.0.1", + "resolved": false, + "integrity": "sha1-R4hqwWYnYNQmG32XnSQXCdPOP3o=", + "dev": true + }, + "number-is-nan": { + "version": "1.0.0", + "resolved": false, + "integrity": "sha1-wCD1KcUoKt/dIz2R1LGBw9aG3Es=", + "dev": true + }, + "object.omit": { + "version": "2.0.0", + "resolved": false, + "integrity": "sha1-hoWXMz1U5gZilAu0WGBd1q4S/pQ=", + "dev": true, + "requires": { + "for-own": "^0.1.3", + "is-extendable": "^0.1.1" + } + }, + "once": { + "version": "1.3.3", + "resolved": false, + "integrity": "sha1-suJhVXzkwxTsgwTz+oJmPkKXyiA=", + "dev": true, + "requires": { + "wrappy": "1" + } + }, + "optimist": { + "version": "0.6.1", + "resolved": false, + "integrity": "sha1-2j6nRob6IaGaERwybpDrFaAZZoY=", + "dev": true, + "requires": { + "minimist": "~0.0.1", + "wordwrap": "~0.0.2" + } + }, + "os-homedir": { + "version": "1.0.1", + "resolved": false, + "integrity": "sha1-DWK99EuRb9O73PLKsZGUj7CU8Ac=", + "dev": true + }, + "os-locale": { + "version": "1.4.0", + "resolved": false, + "integrity": "sha1-IPnxeuKe00XoveWDsT0gCYA8FNk=", + "dev": true, + "requires": { + "lcid": "^1.0.0" + } + }, + "parse-glob": { + "version": "3.0.4", + "resolved": false, + "integrity": "sha1-ssN2z7EfNVE7rdFz7wu246OIORw=", + "dev": true, + "requires": { + "glob-base": "^0.3.0", + "is-dotfile": "^1.0.0", + "is-extglob": "^1.0.0", + "is-glob": "^2.0.0" + } + }, + "parse-json": { + "version": "2.2.0", + "resolved": false, + "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", + "dev": true, + "requires": { + "error-ex": "^1.2.0" + } + }, + "path-exists": { + "version": "2.1.0", + "resolved": false, + "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", + "dev": true, + "requires": { + "pinkie-promise": "^2.0.0" + } + }, + "path-is-absolute": { + "version": "1.0.0", + "resolved": false, + "integrity": "sha1-Jj2tpmqz8vsQv3+dJN2PPlcO+RI=", + "dev": true + }, + "path-parse": { + "version": "1.0.5", + "resolved": false, + "integrity": "sha1-PBrfhx6pzWyUMbbqK9dKD/BVxME=", + "dev": true + }, + "path-type": { + "version": "1.1.0", + "resolved": false, + "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" + } + }, + "pify": { + "version": "2.3.0", + "resolved": false, + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", + "dev": true + }, + "pinkie": { + "version": "2.0.4", + "resolved": false, + "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=", + "dev": true + }, + "pinkie-promise": { + "version": "2.0.1", + "resolved": false, + "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", + "dev": true, + "requires": { + "pinkie": "^2.0.0" + } + }, + "pkg-dir": { + "version": "1.0.0", + "resolved": false, + "integrity": "sha1-ektQio1bstYp1EcFb/TpyTFM89Q=", + "dev": true, + "requires": { + "find-up": "^1.0.0" + } + }, + "pkg-up": { + "version": "1.0.0", + "resolved": false, + "integrity": "sha1-Pgj7RhUlxEIWJKM7n35tCvWwWiY=", + "dev": true, + "requires": { + "find-up": "^1.0.0" + } + }, + "preserve": { + "version": "0.2.0", + "resolved": false, + "integrity": "sha1-gV7R9uvGWSb4ZbMQwHE7yzMVzks=", + "dev": true + }, + "pseudomap": { + "version": "1.0.2", + "resolved": false, + "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=", + "dev": true + }, + "randomatic": { + "version": "1.1.5", + "resolved": false, + "integrity": "sha1-Xp718tVzxnvSuBJK6QtRVuRXhAs=", + "dev": true, + "requires": { + "is-number": "^2.0.2", + "kind-of": "^3.0.2" + } + }, + "read-pkg": { + "version": "1.1.0", + "resolved": false, + "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=", + "dev": true, + "requires": { + "load-json-file": "^1.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^1.0.0" + } + }, + "read-pkg-up": { + "version": "1.0.1", + "resolved": false, + "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=", + "dev": true, + "requires": { + "find-up": "^1.0.0", + "read-pkg": "^1.0.0" + } + }, + "regenerator-runtime": { + "version": "0.9.5", + "resolved": false, + "integrity": "sha1-QD1tQKS9/5wzDdk5Lcuy2ai7ofw=", + "dev": true + }, + "regex-cache": { + "version": "0.4.3", + "resolved": false, + "integrity": "sha1-mxpsNdTQ3871cRrmUejp09cRQUU=", + "dev": true, + "requires": { + "is-equal-shallow": "^0.1.3", + "is-primitive": "^2.0.0" + } + }, + "repeat-element": { + "version": "1.1.2", + "resolved": false, + "integrity": "sha1-7wiaF40Ug7quTZPrmLT55OEdmQo=", + "dev": true + }, + "repeat-string": { + "version": "1.5.4", + "resolved": false, + "integrity": "sha1-ZOwMkeD0tHX5DVtkNlHj5uW2wtU=", + "dev": true + }, + "repeating": { + "version": "1.1.3", + "resolved": false, + "integrity": "sha1-PUEUIYh3U3SU+X93+Xhfq4EPpKw=", + "dev": true, + "requires": { + "is-finite": "^1.0.0" + } + }, + "require-directory": { + "version": "2.1.1", + "resolved": false, + "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", + "dev": true + }, + "require-main-filename": { + "version": "1.0.1", + "resolved": false, + "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=", + "dev": true + }, + "resolve-from": { + "version": "2.0.0", + "resolved": false, + "integrity": "sha1-lICrIOlP+h2egKgEx+oUdhGWa1c=", + "dev": true + }, + "right-align": { + "version": "0.1.3", + "resolved": false, + "integrity": "sha1-YTObci/mo1FWiSENJOFMlhSGE+8=", + "dev": true, + "optional": true, + "requires": { + "align-text": "^0.1.1" + } + }, + "rimraf": { + "version": "2.5.4", + "resolved": false, + "integrity": "sha1-loAAk8vxoMhr2VtGJUZ1NcKd+gQ=", + "dev": true, + "requires": { + "glob": "^7.0.5" + } + }, + "semver": { + "version": "5.3.0", + "resolved": false, + "integrity": "sha1-myzl094C0XxgEq0yaqa00M9U+U8=", + "dev": true + }, + "set-blocking": { + "version": "2.0.0", + "resolved": false, + "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", + "dev": true + }, + "signal-exit": { + "version": "3.0.0", + "resolved": false, + "integrity": "sha1-PAVDtl17T7xgts2UWT2b9DZzm+g=", + "dev": true + }, + "slide": { + "version": "1.1.6", + "resolved": false, + "integrity": "sha1-VusCfWW00tzmyy4tMsTUr8nh1wc=", + "dev": true + }, + "source-map": { + "version": "0.5.6", + "resolved": false, + "integrity": "sha1-dc449SvwczxafwwRjYEzSiu19BI=", + "dev": true + }, + "spawn-wrap": { + "version": "1.2.4", + "resolved": false, + "integrity": "sha1-kg6yEadpwJPuv71bDnpdLmirLkA=", + "dev": true, + "requires": { + "foreground-child": "^1.3.3", + "mkdirp": "^0.5.0", + "os-homedir": "^1.0.1", + "rimraf": "^2.3.3", + "signal-exit": "^2.0.0", + "which": "^1.2.4" + }, + "dependencies": { + "signal-exit": { + "version": "2.1.2", + "resolved": false, + "integrity": "sha1-N1h5sfkuvDszRIDQONxUam1VhWQ=", + "dev": true + } + } + }, + "spdx-correct": { + "version": "1.0.2", + "resolved": false, + "integrity": "sha1-SzBz2TP/UfORLwOsVRlJikFQ20A=", + "dev": true, + "requires": { + "spdx-license-ids": "^1.0.2" + } + }, + "spdx-exceptions": { + "version": "1.0.5", + "resolved": false, + "integrity": "sha1-nSGsTaS9tx0GD7dOWmdTHQMsu6Y=", + "dev": true + }, + "spdx-expression-parse": { + "version": "1.0.2", + "resolved": false, + "integrity": "sha1-1SsUtelnB3FECvIlvLVjEirEUvY=", + "dev": true, + "requires": { + "spdx-exceptions": "^1.0.4", + "spdx-license-ids": "^1.0.0" + } + }, + "spdx-license-ids": { + "version": "1.2.1", + "resolved": false, + "integrity": "sha1-0H6hek0v2TUfnZTi/5zsdBgP6PM=", + "dev": true + }, + "string-width": { + "version": "1.0.1", + "resolved": false, + "integrity": "sha1-ySEptvHX9SrPmvQkom44ZKBc6wo=", + "dev": true, + "requires": { + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + } + }, + "strip-ansi": { + "version": "3.0.1", + "resolved": false, + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "dev": true, + "requires": { + "ansi-regex": "^2.0.0" + } + }, + "strip-bom": { + "version": "2.0.0", + "resolved": false, + "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", + "dev": true, + "requires": { + "is-utf8": "^0.2.0" + } + }, + "supports-color": { + "version": "2.0.0", + "resolved": false, + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", + "dev": true + }, + "test-exclude": { + "version": "1.1.0", + "resolved": false, + "integrity": "sha1-9d3XGJJ7Ev0C8nCgqpOc627qQVE=", + "dev": true, + "requires": { + "arrify": "^1.0.1", + "lodash.assign": "^4.0.9", + "micromatch": "^2.3.8", + "read-pkg-up": "^1.0.1", + "require-main-filename": "^1.0.1" + } + }, + "to-fast-properties": { + "version": "1.0.2", + "resolved": false, + "integrity": "sha1-8/XAw7pymafvmUJ+RGMyV63kMyA=", + "dev": true + }, + "uglify-js": { + "version": "2.7.0", + "resolved": false, + "integrity": "sha1-8CHji6LKdAhg9b1caVwqgXNF8Ow=", + "dev": true, + "optional": true, + "requires": { + "async": "~0.2.6", + "source-map": "~0.5.1", + "uglify-to-browserify": "~1.0.0", + "yargs": "~3.10.0" + }, + "dependencies": { + "async": { + "version": "0.2.10", + "resolved": false, + "integrity": "sha1-trvgsGdLnXGXCMo43owjfLUmw9E=", + "dev": true, + "optional": true + }, + "yargs": { + "version": "3.10.0", + "resolved": false, + "integrity": "sha1-9+572FfdfB0tOMDnTvvWgdFDH9E=", + "dev": true, + "optional": true, + "requires": { + "camelcase": "^1.0.2", + "cliui": "^2.1.0", + "decamelize": "^1.0.0", + "window-size": "0.1.0" + } + } + } + }, + "uglify-to-browserify": { + "version": "1.0.2", + "resolved": false, + "integrity": "sha1-bgkk1r2mta/jSeOabWMoUKD4grc=", + "dev": true, + "optional": true + }, + "validate-npm-package-license": { + "version": "3.0.1", + "resolved": false, + "integrity": "sha1-KAS6vnEq0zeUWaz74kdGqywwP7w=", + "dev": true, + "requires": { + "spdx-correct": "~1.0.0", + "spdx-expression-parse": "~1.0.0" + } + }, + "which": { + "version": "1.2.10", + "resolved": false, + "integrity": "sha1-kc2b0HUTIkEbZZtA8FSyHelXqy0=", + "dev": true, + "requires": { + "isexe": "^1.1.1" + } + }, + "which-module": { + "version": "1.0.0", + "resolved": false, + "integrity": "sha1-u6Y8qGGUiZT/MHc2CJ47lgJsKk8=", + "dev": true + }, + "window-size": { + "version": "0.1.0", + "resolved": false, + "integrity": "sha1-VDjNLqk7IC76Ohn+iIeu58lPnJ0=", + "dev": true, + "optional": true + }, + "wordwrap": { + "version": "0.0.3", + "resolved": false, + "integrity": "sha1-o9XabNXAvAAI03I0u68b7WMFkQc=", + "dev": true + }, + "wrap-ansi": { + "version": "2.0.0", + "resolved": false, + "integrity": "sha1-fTD4+HP5pbvDpk2ryNF34HGuQm8=", + "dev": true, + "requires": { + "string-width": "^1.0.1" + } + }, + "wrappy": { + "version": "1.0.2", + "resolved": false, + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", + "dev": true + }, + "write-file-atomic": { + "version": "1.1.4", + "resolved": false, + "integrity": "sha1-sfUtwujcDjywTRh6JfdYo4qQyjs=", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "imurmurhash": "^0.1.4", + "slide": "^1.1.5" + } + }, + "y18n": { + "version": "3.2.1", + "resolved": false, + "integrity": "sha1-bRX7qITAhnnA136I53WegR4H+kE=", + "dev": true + }, + "yallist": { + "version": "2.0.0", + "resolved": false, + "integrity": "sha1-MGxUODXwnuGkyyO3vOmrNByRzdQ=", + "dev": true + }, + "yargs": { + "version": "4.8.1", + "resolved": false, + "integrity": "sha1-wMQpJMpKqmsObaFznfshZDn53cA=", + "dev": true, + "requires": { + "cliui": "^3.2.0", + "decamelize": "^1.1.1", + "get-caller-file": "^1.0.1", + "lodash.assign": "^4.0.3", + "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.1", + "which-module": "^1.0.0", + "window-size": "^0.2.0", + "y18n": "^3.2.1", + "yargs-parser": "^2.4.1" + }, + "dependencies": { + "cliui": { + "version": "3.2.0", + "resolved": false, + "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=", + "dev": true, + "requires": { + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1", + "wrap-ansi": "^2.0.0" + } + }, + "window-size": { + "version": "0.2.0", + "resolved": false, + "integrity": "sha1-tDFbtCFKPXBY6+7okuE/ok2YsHU=", + "dev": true + } + } + }, + "yargs-parser": { + "version": "2.4.1", + "resolved": false, + "integrity": "sha1-hVaN488VD/SfpRgl8DqMiA3cxcQ=", + "dev": true, + "requires": { + "camelcase": "^3.0.0", + "lodash.assign": "^4.0.6" + }, + "dependencies": { + "camelcase": { + "version": "3.0.0", + "resolved": false, + "integrity": "sha1-MvxLn82vhF/N9+c7uXysImHwqwo=", + "dev": true + } + } + } + } + }, + "oauth-sign": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.8.2.tgz", + "integrity": "sha1-Rqarfwrq2N6unsBWV4C31O/rnUM=", + "dev": true + }, + "object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "dev": true, + "requires": { + "wrappy": "1" + } + }, + "only-shallow": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/only-shallow/-/only-shallow-1.2.0.tgz", + "integrity": "sha1-cc7O26kyS8BRiu8Q7AgNMkncJGU=", + "dev": true + }, + "opener": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/opener/-/opener-1.4.3.tgz", + "integrity": "sha1-XG2ixdflgx6P+jlklQ+NZnSskLg=", + "dev": true + }, + "os-homedir": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.1.tgz", + "integrity": "sha1-DWK99EuRb9O73PLKsZGUj7CU8Ac=", + "dev": true + }, + "parse-json": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", + "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", + "dev": true, + "requires": { + "error-ex": "^1.2.0" + } + }, + "path-exists": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", + "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", + "dev": true, + "requires": { + "pinkie-promise": "^2.0.0" + } + }, + "path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", + "dev": true + }, + "path-type": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", + "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" + } + }, + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", + "dev": true + }, + "pinkie": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", + "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=", + "dev": true + }, + "pinkie-promise": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", + "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", + "dev": true, + "requires": { + "pinkie": "^2.0.0" + } + }, + "pretty-bytes": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-3.0.1.tgz", + "integrity": "sha1-J9AAjXeAY6C0gRuzXHnxvV1fvM8=", + "requires": { + "number-is-nan": "^1.0.0" + } + }, + "process-nextick-args": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.0.tgz", + "integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw==", + "dev": true + }, + "pseudomap": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", + "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=", + "dev": true + }, + "punycode": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", + "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", + "dev": true + }, + "qs": { + "version": "6.3.2", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.3.2.tgz", + "integrity": "sha1-51vV9uJoEioqDgvaYwslUMFmUCw=", + "dev": true + }, + "read-package-json": { + "version": "2.0.13", + "resolved": "https://registry.npmjs.org/read-package-json/-/read-package-json-2.0.13.tgz", + "integrity": "sha512-/1dZ7TRZvGrYqE0UAfN6qQb5GYBsNcqS1C0tNK601CFOJmtHI7NIGXwetEPU/OtoFHZL3hDxm4rolFFVE9Bnmg==", + "dev": true, + "requires": { + "glob": "^7.1.1", + "graceful-fs": "^4.1.2", + "json-parse-better-errors": "^1.0.1", + "normalize-package-data": "^2.0.0", + "slash": "^1.0.0" + }, + "dependencies": { + "glob": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", + "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + } + } + }, + "read-pkg": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", + "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=", + "dev": true, + "requires": { + "load-json-file": "^1.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^1.0.0" + } + }, + "read-pkg-up": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz", + "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=", + "dev": true, + "requires": { + "find-up": "^1.0.0", + "read-pkg": "^1.0.0" + } + }, + "readable-stream": { + "version": "1.1.14", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", + "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=", + "dev": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", + "isarray": "0.0.1", + "string_decoder": "~0.10.x" + } + }, + "redent": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/redent/-/redent-1.0.0.tgz", + "integrity": "sha1-z5Fqsf1fHxbfsggi3W7H9zDCr94=", + "dev": true, + "requires": { + "indent-string": "^2.1.0", + "strip-indent": "^1.0.1" + } + }, + "repeating": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz", + "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=", + "dev": true, + "requires": { + "is-finite": "^1.0.0" + } + }, + "request": { + "version": "2.79.0", + "resolved": "https://registry.npmjs.org/request/-/request-2.79.0.tgz", + "integrity": "sha1-Tf5b9r6LjNw3/Pk+BLZVd3InEN4=", + "dev": true, + "requires": { + "aws-sign2": "~0.6.0", + "aws4": "^1.2.1", + "caseless": "~0.11.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", + "hawk": "~3.1.3", + "http-signature": "~1.1.0", + "is-typedarray": "~1.0.0", + "isstream": "~0.1.2", + "json-stringify-safe": "~5.0.1", + "mime-types": "~2.1.7", + "oauth-sign": "~0.8.1", + "qs": "~6.3.0", + "stringstream": "~0.0.4", + "tough-cookie": "~2.3.0", + "tunnel-agent": "~0.4.1", + "uuid": "^3.0.0" + } + }, + "resolve": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.1.7.tgz", + "integrity": "sha1-IDEU2CrSxe2ejgQRs5ModeiJ6Xs=", + "dev": true + }, + "rimraf": { + "version": "2.2.8", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.2.8.tgz", + "integrity": "sha1-5Dm+Kq7jJzIZUnMPmaiSnk/FBYI=", + "dev": true + }, + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + }, + "safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "dev": true + }, + "semver": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.5.0.tgz", + "integrity": "sha512-4SJ3dm0WAwWy/NVeioZh5AntkdJoWKxHxcmyP622fOkgHa4z3R0TdBJICINyaSDE6uNwVc8gZr+ZinwZAH4xIA==", + "dev": true + }, + "shelljs": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.3.0.tgz", + "integrity": "sha1-NZbmMHp4FUT1kfN9phg2DzHbV7E=", + "dev": true + }, + "signal-exit": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", + "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=", + "dev": true + }, + "slash": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz", + "integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=", + "dev": true + }, + "sntp": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/sntp/-/sntp-1.0.9.tgz", + "integrity": "sha1-ZUEYTMkK7qbG57NeJlkIJEPGYZg=", + "dev": true, + "requires": { + "hoek": "2.x.x" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + }, + "spdx-correct": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.0.0.tgz", + "integrity": "sha512-N19o9z5cEyc8yQQPukRCZ9EUmb4HUpnrmaL/fxS2pBo2jbfcFRVuFZ/oFC+vZz0MNNk0h80iMn5/S6qGZOL5+g==", + "dev": true, + "requires": { + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" + } + }, + "spdx-exceptions": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.1.0.tgz", + "integrity": "sha512-4K1NsmrlCU1JJgUrtgEeTVyfx8VaYea9J9LvARxhbHtVtohPs/gFGG5yy49beySjlIMhhXZ4QqujIZEfS4l6Cg==", + "dev": true + }, + "spdx-expression-parse": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz", + "integrity": "sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg==", + "dev": true, + "requires": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, + "spdx-license-ids": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.0.tgz", + "integrity": "sha512-2+EPwgbnmOIl8HjGBXXMd9NAu02vLjOO1nWw4kmeRDFyHn+M/ETfHxQUK0oXg8ctgVnl9t3rosNVsZ1jG61nDA==", + "dev": true + }, + "sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", + "dev": true + }, + "sshpk": { + "version": "1.14.2", + "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.14.2.tgz", + "integrity": "sha1-xvxhZIo9nE52T9P8306hBeSSupg=", + "dev": true, + "requires": { + "asn1": "~0.2.3", + "assert-plus": "^1.0.0", + "bcrypt-pbkdf": "^1.0.0", + "dashdash": "^1.12.0", + "ecc-jsbn": "~0.1.1", + "getpass": "^0.1.1", + "jsbn": "~0.1.0", + "safer-buffer": "^2.0.2", + "tweetnacl": "~0.14.0" + }, + "dependencies": { + "assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", + "dev": true + } + } + }, + "stack-utils": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-0.4.0.tgz", + "integrity": "sha1-lAy4L8z6hOj/Lz/fKT/ngBa+zNE=", + "dev": true + }, + "string_decoder": { + "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", + "dev": true + }, + "stringstream": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/stringstream/-/stringstream-0.0.6.tgz", + "integrity": "sha512-87GEBAkegbBcweToUrdzf3eLhWNg06FJTebl4BVJz/JgWy8CvEr9dRtX5qWphiynMSQlxxi+QqN0z5T32SLlhA==", + "dev": true + }, + "strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "requires": { + "ansi-regex": "^2.0.0" + } + }, + "strip-bom": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", + "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", + "dev": true, + "requires": { + "is-utf8": "^0.2.0" + } + }, + "strip-indent": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-1.0.1.tgz", + "integrity": "sha1-DHlipq3vp7vUrDZkYKY4VSrhoKI=", + "dev": true, + "requires": { + "get-stdin": "^4.0.1" + } + }, + "strip-json-comments": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-1.0.4.tgz", + "integrity": "sha1-HhX7ysl9Pumb8tc7TGVrCCu6+5E=", + "dev": true + }, + "supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=" + }, + "tap": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/tap/-/tap-7.1.2.tgz", + "integrity": "sha1-36w+zxSshUe7rSW70Wzyw3Q/Zc8=", + "dev": true, + "requires": { + "bluebird": "^3.3.1", + "clean-yaml-object": "^0.1.0", + "color-support": "^1.1.0", + "coveralls": "^2.11.2", + "deeper": "^2.1.0", + "foreground-child": "^1.3.3", + "glob": "^7.0.0", + "isexe": "^1.0.0", + "js-yaml": "^3.3.1", + "nyc": "^7.1.0", + "only-shallow": "^1.0.2", + "opener": "^1.4.1", + "os-homedir": "1.0.1", + "readable-stream": "^2.0.2", + "signal-exit": "^3.0.0", + "stack-utils": "^0.4.0", + "tap-mocha-reporter": "^2.0.0", + "tap-parser": "^2.2.0", + "tmatch": "^2.0.1" + }, + "dependencies": { + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "dev": true + }, + "isexe": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-1.1.2.tgz", + "integrity": "sha1-NvPiLmB1CSD15yQaR2qMakInWtA=", + "dev": true + }, + "readable-stream": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", + "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", + "dev": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "requires": { + "safe-buffer": "~5.1.0" + } + } + } + }, + "tap-mocha-reporter": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/tap-mocha-reporter/-/tap-mocha-reporter-2.0.1.tgz", + "integrity": "sha1-xwMWFz1uOhbFjhupLV1s2N5YoS4=", + "dev": true, + "requires": { + "color-support": "^1.1.0", + "debug": "^2.1.3", + "diff": "^1.3.2", + "escape-string-regexp": "^1.0.3", + "glob": "^7.0.5", + "js-yaml": "^3.3.1", + "readable-stream": "^2.1.5", + "tap-parser": "^2.0.0", + "unicode-length": "^1.0.0" + }, + "dependencies": { + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "dev": true, + "optional": true + }, + "readable-stream": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", + "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", + "dev": true, + "optional": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "optional": true, + "requires": { + "safe-buffer": "~5.1.0" + } + } + } + }, + "tap-parser": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/tap-parser/-/tap-parser-2.2.3.tgz", + "integrity": "sha1-rebpbje/04zg8WLaBn80A08GiwE=", + "dev": true, + "requires": { + "events-to-array": "^1.0.1", + "js-yaml": "^3.2.7", + "readable-stream": "^2" + }, + "dependencies": { + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "dev": true, + "optional": true + }, + "readable-stream": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", + "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", + "dev": true, + "optional": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "optional": true, + "requires": { + "safe-buffer": "~5.1.0" + } + } + } + }, + "tmatch": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/tmatch/-/tmatch-2.0.1.tgz", + "integrity": "sha1-DFYkbzPzDaG409colauvFmYPOM8=", + "dev": true + }, + "tough-cookie": { + "version": "2.3.4", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.4.tgz", + "integrity": "sha512-TZ6TTfI5NtZnuyy/Kecv+CnoROnyXn2DN97LontgQpCwsX2XyLYCC0ENhYkehSOwAp8rTQKc/NUIF7BkQ5rKLA==", + "dev": true, + "requires": { + "punycode": "^1.4.1" + } + }, + "trim-newlines": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-1.0.0.tgz", + "integrity": "sha1-WIeWa7WCpFA6QetST301ARgVphM=", + "dev": true + }, + "tunnel-agent": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.4.3.tgz", + "integrity": "sha1-Y3PbdpCf5XDgjXNYM2Xtgop07us=", + "dev": true + }, + "tweetnacl": { + "version": "0.14.5", + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", + "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", + "dev": true, + "optional": true + }, + "uglify-js": { + "version": "3.4.5", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.4.5.tgz", + "integrity": "sha512-Fm52gLqJqFBnT+Sn411NPDnsgaWiYeRLw42x7Va/mS8TKgaepwoGY7JLXHSEef3d3PmdFXSz1Zx7KMLL89E2QA==", + "requires": { + "commander": "~2.16.0", + "source-map": "~0.6.1" + } + }, + "underscore.string": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/underscore.string/-/underscore.string-3.2.3.tgz", + "integrity": "sha1-gGmSYzZl1eX8tNsfs6hi62jp5to=", + "dev": true + }, + "unicode-length": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/unicode-length/-/unicode-length-1.0.3.tgz", + "integrity": "sha1-Wtp6f+1RhBpBijKM8UlHisg1irs=", + "dev": true, + "requires": { + "punycode": "^1.3.2", + "strip-ansi": "^3.0.1" + } + }, + "uri-path": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/uri-path/-/uri-path-1.0.0.tgz", + "integrity": "sha1-l0fwGDWJM8Md4PzP2C0TjmcmLjI=" + }, + "util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", + "dev": true + }, + "uuid": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz", + "integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==", + "dev": true + }, + "validate-npm-package-license": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.3.tgz", + "integrity": "sha512-63ZOUnL4SIXj4L0NixR3L1lcjO38crAbgrTpl28t8jjrfuiOBL5Iygm+60qPs/KsZGzPNg6Smnc/oY16QTjF0g==", + "dev": true, + "requires": { + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" + } + }, + "verror": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", + "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", + "dev": true, + "requires": { + "assert-plus": "^1.0.0", + "core-util-is": "1.0.2", + "extsprintf": "^1.2.0" + }, + "dependencies": { + "assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", + "dev": true + } + } + }, + "which": { + "version": "1.2.14", + "resolved": "https://registry.npmjs.org/which/-/which-1.2.14.tgz", + "integrity": "sha1-mofEN48D6CfOyvGs31bHNsAcFOU=", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", + "dev": true + }, + "xtend": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz", + "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68=", + "dev": true + }, + "yallist": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", + "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=", + "dev": true + } + } +} diff -Nru node-grunt-contrib-uglify-2.0.0+dfsg/README.md node-grunt-contrib-uglify-3.4.0+dfsg/README.md --- node-grunt-contrib-uglify-2.0.0+dfsg/README.md 2016-07-19 14:11:18.000000000 +0000 +++ node-grunt-contrib-uglify-3.4.0+dfsg/README.md 2018-07-28 18:28:51.000000000 +0000 @@ -1,4 +1,4 @@ -# grunt-contrib-uglify v2.0.0 [![Build Status: Linux](https://travis-ci.org/gruntjs/grunt-contrib-uglify.svg?branch=master)](https://travis-ci.org/gruntjs/grunt-contrib-uglify) [![Build Status: Windows](https://ci.appveyor.com/api/projects/status/ybtf5vbvtenii561/branch/master?svg=true)](https://ci.appveyor.com/project/gruntjs/grunt-contrib-uglify/branch/master) +# grunt-contrib-uglify v3.4.0 [![Build Status: Linux](https://travis-ci.org/gruntjs/grunt-contrib-uglify.svg?branch=master)](https://travis-ci.org/gruntjs/grunt-contrib-uglify) [![Build Status: Windows](https://ci.appveyor.com/api/projects/status/ybtf5vbvtenii561/branch/master?svg=true)](https://ci.appveyor.com/project/gruntjs/grunt-contrib-uglify/branch/master) > Minify JavaScript files with UglifyJS @@ -26,33 +26,28 @@ Task targets, files and options may be specified according to the grunt [Configuring tasks](http://gruntjs.com/configuring-tasks) guide. -### Migrating from 2.x to 3.x - -Version `3.x` introduced changes to configuring source maps. Accordingly, if you don't use the source map options you should be able to upgrade seamlessly. If you do use source maps, see below. - -#### Removed options - -`sourceMappingURL` - This is calculated automatically now -`sourceMapPrefix` - No longer necessary for the above reason - -#### Changed options - -`sourceMap` - Only accepts a `Boolean` value. Generates a map with a default name for you -`sourceMapRoot` - The location of your sources is now calculated for you when `sourceMap` is set to `true` but you can set manual source root if needed - -#### New options +### Options -`sourceMapName` - Accepts a string or function to change the location or name of your map -`sourceMapIncludeSources` - Embed the content of your source files directly into the map -`expression` - Accepts a `Boolean` value. Parse a single expression (JSON or single functions) -`quoteStyle` - Accepts integers `0` (default), `1`, `2`, `3`. Enforce or preserve quotation mark style. +This task primarily delegates to [UglifyJS](https://github.com/mishoo/UglifyJS2), so please consider their documentation as required reading for advanced configuration. -### Options -This task primarily delegates to [UglifyJS2][], so please consider the [UglifyJS documentation][] as required reading for advanced configuration. +###### Deprecated options from `2.x` -[UglifyJS2]: https://github.com/mishoo/UglifyJS2 -[UglifyJS documentation]: http://lisperator.net/uglifyjs/ +Option | Replacement +----------------------- | ----------- +ASCIIOnly | output.ascii_only +enclose | — +exportAll | — +expression | parse.expression +indentLevel | output.indent_level +mangleProperties | mangle.properties +maxLineLen | output.max\_line_len +preserveComments | output.comments +quoteStyle | output.quote_style +screwIE8 | !ie8 +sourceMapIncludeSources | sourceMap.includeSources +sourceMapRoot | sourceMap.root +sourceMapUrl | sourceMap.url #### mangle @@ -71,21 +66,21 @@ Type: `Boolean` `Object` Default: `false` -Turns on beautification of the generated source code. An `Object` will be merged and passed with the options sent to `UglifyJS.OutputStream()`. [View all options here](https://github.com/mishoo/UglifyJS2#beautifier-options) +Turns on beautification of the generated source code. [View all options here](https://github.com/mishoo/UglifyJS2#beautifier-options) -###### expression +###### parse.expression Type: `Boolean` Default: `false` Parse a single expression, rather than a program (for parsing JSON) #### report -Choices: `'none'`, `'min'`, `'gzip'` +Type: `string` +Choices: `'min'`, `'gzip'` Default: `'min'` -Either report only minification result or report minification and gzip results. -This is useful to see exactly how well UglifyJS is performing but using `'gzip'` will make the task take 5-10x longer to complete. [Example output](https://github.com/sindresorhus/maxmin#readme). -If `'none'` is used the report will be generated on the verbose output. +Report minification result or both minification and gzip results. +This is useful to see exactly how well uglify-js is performing but using `'gzip'` will make the task take 5-10x longer to complete. [Example output](https://github.com/sindresorhus/maxmin#readme). #### sourceMap Type: `Boolean` @@ -94,46 +89,39 @@ If `true`, a source map file will be generated in the same directory as the `dest` file. By default it will have the same basename as the `dest` file, but with a `.map` extension. #### sourceMapName -Type: `String` `Function` +Type: `String` `Function` Default: `undefined` To customize the name or location of the generated source map, pass a string to indicate where to write the source map to. If a function is provided, the uglify destination is passed as the argument and the return value will be used as the file name. #### sourceMapIn -Type: `String` `Function` +Type: `String` `Function` Default: `undefined` The location of an input source map from an earlier compilation, e.g. from CoffeeScript. If a function is provided, the uglify source is passed as the argument and the return value will be used as the sourceMap name. This only makes sense when there's one source file. -#### sourceMapIncludeSources +#### sourceMap.includeSources Type: `Boolean` Default: `false` Pass this flag if you want to include the content of source files in the source map as sourcesContent property. -###### sourceMapRoot +###### sourceMap.root Type: `String` Default: `undefined` With this option you can customize root URL that browser will use when looking for sources. -If the sources are not absolute URLs after prepending of the `sourceMapRoot`, the sources are resolved relative to the source map. +If the sources are not absolute URLs after prepending of the `sourceMap.root`, the sources are resolved relative to the source map. -#### sourceMapUrl +#### sourceMap.url Type: `String` Default: `undefined` Override the calculated value for `sourceMappingURL` in the source map. This is useful if the source map location is not relative to the base path of the minified file, i.e. when using a CDN -###### enclose -Type: `Object` -Default: `undefined` - -Wrap all of the code in a closure with a configurable arguments/parameters list. -Each key-value pair in the `enclose` object is effectively an argument-parameter pair. - #### wrap Type: `String` Default: `undefined` @@ -142,25 +130,13 @@ For variables that need to be public `exports` and `global` variables are made available. The value of wrap is the global variable exports will be available as. -#### maxLineLen -Type: `Number` -Default: `32000` - -Limit the line length in symbols. Pass maxLineLen = 0 to disable this safety feature. - -#### ASCIIOnly +#### output.ascii_only Type: `Boolean` Default: `false` Enables to encode non-ASCII characters as \uXXXX. -#### exportAll -Type: `Boolean` -Default: `false` - -When using `wrap` this will make all global functions and variables available via the export variable. - -#### preserveComments +#### output.comments Type: `Boolean` `String` `Function` Default: `undefined` Options: `false` `'all'` `'some'` @@ -169,29 +145,30 @@ - `false` will strip all comments - `'all'` will preserve all comments in code blocks that have not been squashed or dropped -- `'some'` will preserve all comments that start with a bang (`!`) or include a closure compiler style directive (`@preserve` `@license` `@cc_on`) +- `'some'` will preserve all comments that include a closure compiler style directive (`@preserve` `@license` `@cc_on`) - `Function` specify your own comment preservation function. You will be passed the current node and the current comment and are expected to return either `true` or `false` +- `RegExp` `'/[RegExp]/'` will preserve comments matching given RegExp or stringified RegExp #### banner Type: `String` Default: `''` -This string will be prepended to the minified output. Template strings (e.g. `<%= config.value %>` will be expanded automatically. +This string will be prepended to the minified output. Template strings (e.g. `<%= config.value %>`) will be expanded automatically. #### footer Type: `String` Default: `''` -This string will be appended to the minified output. Template strings (e.g. `<%= config.value %>` will be expanded automatically. +This string will be appended to the minified output. Template strings (e.g. `<%= config.value %>`) will be expanded automatically. -#### screwIE8 +#### ie8 Type: `Boolean` -Default: `true` +Default: `false` -Set this to `false` if you still care about full compliance with Internet Explorer 6-8 quirks. +Set this to `true` if you still care about full compliance with Internet Explorer 6-8 quirks. -#### mangleProperties -Type: `Boolean` `Object` +#### mangle.properties +Type: `Boolean` `Object` Default: `false` Turn on or off property mangling with default options. If an `Object` is specified, it is passed directly to `ast.mangle_properties()` (mimicking command line behavior). [View all options here](https://github.com/mishoo/UglifyJS2#mangler-options). @@ -200,13 +177,13 @@ Type: `Boolean` Default: `false` -Use this flag in conjunction with `mangleProperties` to prevent built-in browser object properties from being mangled. +Use this flag in conjunction with `mangle.properties` to prevent built-in browser object properties from being mangled. #### exceptionsFiles Type: `Array` Default: `[]` -Use this with `mangleProperties` to pass one or more JSON files containing a list of variables and object properties +Use this with `mangle.properties` to pass one or more JSON files containing a list of variables and object properties that should not be mangled. See the [UglifyJS docs](https://www.npmjs.com/package/uglify-js) for more info on the file syntax. #### nameCache @@ -216,7 +193,7 @@ A string that is a path to a JSON cache file that uglify will create and use to coordinate symbol mangling between multiple runs of uglify. Note: this generated file uses the same JSON format as the `exceptionsFiles` files. -#### quoteStyle +#### output.quote_style Type: `Integer` Default: `0` @@ -268,7 +245,7 @@ #### Reserved identifiers -You can specify identifiers to leave untouched with an `except` array in the `mangle` options. +You can specify identifiers to leave untouched with an `reserved` array in the `mangle` options. ```js // Project configuration. @@ -276,7 +253,7 @@ uglify: { options: { mangle: { - except: ['jQuery', 'Backbone'] + reserved: ['jQuery', 'Backbone'] } }, my_target: { @@ -291,8 +268,8 @@ #### Source maps Generate a source map by setting the `sourceMap` option to `true`. The generated -source map will be in the same directory as the destination file. Its name will be the -basename of the destination file with a `.map` extension. Override these +source map will be in the same directory as the destination file. Its name will be +the basename of the destination file with a `.map` extension. Override these defaults with the `sourceMapName` attribute. ```js @@ -314,7 +291,7 @@ #### Advanced source maps -Set the `sourceMapIncludeSources` option to `true` to embed your sources directly into the map. To include +Set the `sourceMap.includeSources` option to `true` to embed your sources directly into the map. To include a source map from a previous compilation pass it as the value of the `sourceMapIn` option. ```js @@ -323,8 +300,9 @@ uglify: { my_target: { options: { - sourceMap: true, - sourceMapIncludeSources: true, + sourceMap: { + includeSources: true + }, sourceMapIn: 'example/coffeescript-sourcemap.js', // input sourcemap from a previous compilation }, files: { @@ -335,7 +313,7 @@ }); ``` -Refer to the [UglifyJS SourceMap Documentation](http://lisperator.net/uglifyjs/codegen#source-map) for more information. +Refer to the [UglifyJS SourceMap Documentation](https://github.com/mishoo/UglifyJS2#source-map-options) for more information. #### Turn off console warnings @@ -363,11 +341,9 @@ #### Beautify Specify `beautify: true` to beautify your code for debugging/troubleshooting purposes. -Pass an object to manually configure any other output options passed directly to `UglifyJS.OutputStream()`. - -See [UglifyJS Codegen documentation](http://lisperator.net/uglifyjs/codegen) for more information. +Pass an object to manually configure any other output options. -_Note that manual configuration will require you to explicitly set `beautify: true` if you want traditional, beautified output._ +See [UglifyJS documentation](https://github.com/mishoo/UglifyJS2#beautifier-options) for more information. ```js // Project configuration. @@ -384,8 +360,7 @@ my_advanced_target: { options: { beautify: { - width: 80, - beautify: true + width: 80 } }, files: { @@ -422,9 +397,9 @@ #### Conditional compilation -You can also enable UglifyJS conditional compilation. This is commonly used to remove debug code blocks for production builds. This is equivalent to the command line [`--define` option](https://github.com/mishoo/UglifyJS#use-as-a-code-pre-processor). +You can also enable UglifyJS conditional compilation. This is commonly used to remove debug code blocks for production builds. This is equivalent to the command line `--define` option. -See [UglifyJS global definitions documentation](http://lisperator.net/uglifyjs/compress#global-defs) for more information. +See [UglifyJS global definitions documentation](https://github.com/mishoo/UglifyJS2#conditional-compilation) for more information. ```js // Project configuration. @@ -457,16 +432,47 @@ uglify: { my_target: { files: [{ - expand: true, - cwd: 'src/js', - src: '**/*.js', - dest: 'dest/js' + expand: true, + cwd: 'src/js', + src: '**/*.js', + dest: 'dest/js' }] } } }); ``` +#### Compiling all files separately on the each their path + +This configuration will compress and mangle all js files separately in each folder. + +Also exclude jQuery for mangling and ignore all `*.min.js` files. + +```js +// Project configuration. +uglify: { + dev: { + options: { + mangle: { + reserved: ['jQuery'] + } + }, + files: [{ + expand: true, + src: ['dist/assets/js/*.js', '!dist/assets/js/*.min.js'], + dest: 'dist/assets', + cwd: '.', + rename: function (dst, src) { + // To keep the source js files and make new files as `*.min.js`: + // return dst + '/' + src.replace('.js', '.min.js'); + // Or to override to src: + return src; + } + }] + } +}, +``` + #### Turn on object property name mangling This configuration will turn on object property name mangling, but not mangle built-in browser object properties. @@ -478,7 +484,9 @@ grunt.initConfig({ uglify: { options: { - mangleProperties: true, + mangle: { + properties: true + }, reserveDOMCache: true, exceptionsFiles: [ 'myExceptionsFile.json' ] }, @@ -517,6 +525,16 @@ ## Release History + * 2018-07-29   v3.4.0   Update uglify-js to v3.4.0. + * 2017-12-24   v3.3.0   Update uglify-js to v3.3.0. + * 2017-11-26   v3.2.1   Update uglify-js to v3.2.0. + * 2017-09-11   v3.1.0   Update uglify-js to v3.1.0. + * 2017-05-20   v3.0.1   Fix toplevel option. + * 2017-05-12   v3.0.0   Update uglify-js to v3.0.4. + * 2017-04-05   v2.3.0   Make CLI output less verbose. + * 2017-03-31   v2.2.1   Fix banner option. + * 2017-03-01   v2.2.0   Update uglify-js to v2.8.3. + * 2017-02-08   v2.1.0   Show size changes in output. Switch to `object.assign`. * 2016-07-19   v2.0.0   Update uglify-js to v2.7.0. `screwIE8` is enabled by default. * 2016-07-19   v1.0.2   Update grunt to ^1.0.0. Fix `beautify` when passed as an object. Fix docs about `report` values. * 2016-03-16   v1.0.1   Downgrade maxmin for Node.js 0.10. @@ -556,4 +574,4 @@ Task submitted by ["Cowboy" Ben Alman](http://benalman.com) -*This file was generated on Tue Jul 19 2016 16:46:21.* +*This file was generated on Sun Jul 29 2018 01:52:18.* diff -Nru node-grunt-contrib-uglify-2.0.0+dfsg/tasks/lib/uglify.js node-grunt-contrib-uglify-3.4.0+dfsg/tasks/lib/uglify.js --- node-grunt-contrib-uglify-2.0.0+dfsg/tasks/lib/uglify.js 2016-07-19 14:11:18.000000000 +0000 +++ node-grunt-contrib-uglify-3.4.0+dfsg/tasks/lib/uglify.js 2018-07-28 18:28:51.000000000 +0000 @@ -2,7 +2,7 @@ * grunt-contrib-uglify * https://gruntjs.com/ * - * Copyright (c) 2016 "Cowboy" Ben Alman, contributors + * Copyright (c) 2017 "Cowboy" Ben Alman, contributors * Licensed under the MIT license. */ @@ -11,283 +11,148 @@ // External libs. var path = require('path'); var UglifyJS = require('uglify-js'); -var assign = require('lodash.assign'); var uriPath = require('uri-path'); -var getOutputOptions; +var domprops = require('uglify-js/tools/domprops'); + +// Converts \r\n to \n +function normalizeLf(string) { + return string.replace(/\r\n/g, '\n'); +} + +function toCache(cache, key) { + if (cache[key]) { + cache[key].props = UglifyJS.Dictionary.fromObject(cache[key].props); + } else { + cache[key] = { + cname: -1, + props: new UglifyJS.Dictionary() + }; + } + return cache[key]; +} exports.init = function(grunt) { var exports = {}; // Minify with UglifyJS. // From https://github.com/mishoo/UglifyJS2 - // API docs at http://lisperator.net/uglifyjs/ exports.minify = function(files, dest, options) { options = options || {}; grunt.verbose.write('Minifying with UglifyJS...'); - var topLevel = null; var totalCode = ''; - var sourcesContent = {}; - - var outputOptions = getOutputOptions(options, dest); - var output = UglifyJS.OutputStream(outputOptions); - - // Grab and parse all source files - files.forEach(function(file) { - - var code = grunt.file.read(file); - totalCode += code; - - // The src file name must be relative to the source map for things to work - var basename = path.basename(file); - var fileDir = path.dirname(file); - var sourceMapDir = path.dirname(options.generatedSourceMapName); - var relativePath = path.relative(sourceMapDir, fileDir); - var pathPrefix = relativePath ? relativePath + path.sep : ''; - var bare_returns = options.bare_returns || undefined; - - // Convert paths to use forward slashes for sourcemap use in the browser - file = uriPath(pathPrefix + basename); - - sourcesContent[file] = code; - topLevel = UglifyJS.parse(code, { - filename: file, - toplevel: topLevel, - expression: options.expression, - bare_returns: bare_returns - }); - }); - - // Wrap code in a common js wrapper. - if (options.wrap) { - topLevel = topLevel.wrap_commonjs(options.wrap, options.exportAll); - } - - // Wrap code in closure with configurable arguments/parameters list. - if (options.enclose) { - var argParamList = Object.keys(options.enclose).map(function(key) { - return key + ':' + options.enclose[key]; - }); - - topLevel = topLevel.wrap_enclose(argParamList); - } - - var topLevelCache = null; - if (options.nameCache) { - topLevelCache = UglifyJS.readNameCache(options.nameCache, 'vars'); - } + var minifyOptions = { + compress: options.compress, + ie8: options.ie8, + keep_fnames: options.keep_fnames, + mangle: options.mangle, + output: options.output || {}, + parse: options.parse || {}, + sourceMap: options.sourceMap, + toplevel: options.toplevel, + wrap: options.wrap + }; - // Need to call this before we mangle or compress, - // and call after any compression or ast altering - if (options.expression === false) { - topLevel.figure_out_scope({ - screw_ie8: options.screwIE8, - cache: topLevelCache - }); + if (options.banner) { + minifyOptions.output.preamble = normalizeLf(options.banner); } - if (options.compress !== false) { - if (options.compress === true) { - options.compress = {}; - } - if (options.compress.warnings !== true) { - options.compress.warnings = false; - } - if (options.screwIE8 === false) { - options.compress.screw_ie8 = false; - } - var compressor = UglifyJS.Compressor(options.compress); - topLevel = topLevel.transform(compressor); - - // Need to figure out scope again after source being altered - if (options.expression === false) { - topLevel.figure_out_scope({ - screw_ie8: options.screwIE8, - cache: topLevelCache - }); + if (options.beautify) { + minifyOptions.output.beautify = true; + for (var key in options.beautify) { + minifyOptions.output[key] = options.beautify[key]; } } - var mangleExclusions = { - vars: [], - props: [] - }; - if (options.reserveDOMProperties) { - mangleExclusions = UglifyJS.readDefaultReservedFile(); - } - - if (options.exceptionsFiles) { + var cache; + if (options.nameCache) { try { - options.exceptionsFiles.forEach(function(filename) { - mangleExclusions = UglifyJS.readReservedFile(filename, mangleExclusions); - }); + cache = JSON.parse(grunt.file.read(options.nameCache)); } catch (ex) { - grunt.warn(ex); - } - } - - var cache = null; - if (options.nameCache) { - cache = UglifyJS.readNameCache(options.nameCache, 'props'); - } - - if (typeof options.mangleProperties !== 'undefined' && options.mangleProperties !== false) { - // if options.mangleProperties is a boolean (true) convert it into an object - if (typeof options.mangleProperties !== 'object') { - options.mangleProperties = {}; - } - - options.mangleProperties.reserved = mangleExclusions ? mangleExclusions.props : null; - options.mangleProperties.cache = cache; - - topLevel = UglifyJS.mangle_properties(topLevel, options.mangleProperties); - - if (options.nameCache) { - UglifyJS.writeNameCache(options.nameCache, 'props', cache); - } - - // Need to figure out scope again since topLevel has been altered - if (options.expression === false) { - topLevel.figure_out_scope({ - screw_ie8: options.screwIE8, - cache: topLevelCache - }); + cache = {}; } } - if (options.mangle !== false) { - if (options.mangle === true) { - options.mangle = {}; + if (minifyOptions.mangle) { + if (typeof minifyOptions.mangle !== 'object') { + minifyOptions.mangle = {}; } - if (options.screwIE8 === false) { - options.mangle.screw_ie8 = false; + if (cache) { + minifyOptions.mangle.cache = toCache(cache, 'vars'); } - // disabled due to: - // 1) preserve stable name mangling - // 2) it increases gzipped file size, see https://github.com/mishoo/UglifyJS2#mangler-options - // // compute_char_frequency optimizes names for compression - // topLevel.compute_char_frequency(options.mangle); - - // if options.mangle is a boolean (true) convert it into an object - if (typeof options.mangle !== 'object') { - options.mangle = {}; + if (!Array.isArray(minifyOptions.mangle.reserved)) { + minifyOptions.mangle.reserved = []; } - - options.mangle.cache = topLevelCache; - - options.mangle.except = options.mangle.except ? options.mangle.except : []; - if (mangleExclusions.vars) { - mangleExclusions.vars.forEach(function(name) { - UglifyJS.push_uniq(options.mangle.except, name); - }); - } - - // Requires previous call to figure_out_scope - // and should always be called after compressor transform - topLevel.mangle_names(options.mangle); - - UglifyJS.writeNameCache(options.nameCache, 'vars', options.mangle.cache); - } - - if (options.sourceMap && options.sourceMapIncludeSources) { - for (var file in sourcesContent) { - if (sourcesContent.hasOwnProperty(file)) { - outputOptions.source_map.get().setSourceContent(file, sourcesContent[file]); + if (minifyOptions.mangle.properties) { + if (typeof minifyOptions.mangle.properties !== 'object') { + minifyOptions.mangle.properties = {}; + } + if (cache) { + minifyOptions.mangle.properties.cache = toCache(cache, 'props'); + } + if (!Array.isArray(minifyOptions.mangle.properties.reserved)) { + minifyOptions.mangle.properties.reserved = []; + } + if (options.reserveDOMProperties) { + domprops.forEach(function(name) { + UglifyJS.push_uniq(minifyOptions.mangle.properties.reserved, name); + }); } } - } - - // Print the ast to OutputStream - topLevel.print(output); - - var min = output.get(); - - // Add the source map reference to the end of the file - if (options.sourceMap) { - // Set all paths to forward slashes for use in the browser - var sourceMappingURL; - sourceMappingURL = options.destToSourceMap.match(/^http[s]?:\/\//) === null ? uriPath(options.destToSourceMap) : options.destToSourceMap; - min += '\n//# sourceMappingURL=' + sourceMappingURL; - } - - var result = { - max: totalCode, - min: min, - sourceMap: outputOptions.source_map - }; - - grunt.verbose.ok(); - - return result; - }; - - getOutputOptions = function(options, dest) { - var outputOptions = { - beautify: false, - source_map: null - }; - - if (options.banner && options.sourceMap) { - outputOptions.preamble = options.banner; - } - - if (options.screwIE8 === false) { - outputOptions.screw_ie8 = false; - } - - if (options.sourceMap) { - - var destBasename = path.basename(dest); - var sourceMapIn; - if (options.sourceMapIn) { - sourceMapIn = grunt.file.readJSON(options.sourceMapIn); - } - outputOptions.source_map = UglifyJS.SourceMap({ - file: destBasename, - root: options.sourceMapRoot, - orig: sourceMapIn - }); - if (options.sourceMapIncludeSources && sourceMapIn && sourceMapIn.sourcesContent) { - sourceMapIn.sourcesContent.forEach(function(content, idx) { - outputOptions.source_map.get().setSourceContent(sourceMapIn.sources[idx], content); + if (options.exceptionsFiles) { + options.exceptionsFiles.forEach(function(file) { + try { + var obj = JSON.parse(grunt.file.read(file)); + if (minifyOptions.mangle && obj.vars) { + obj.vars.forEach(function(name) { + UglifyJS.push_uniq(minifyOptions.mangle.reserved, name); + }); + } + if (minifyOptions.mangle.properties && obj.props) { + obj.props.forEach(function(name) { + UglifyJS.push_uniq(minifyOptions.mangle.properties.reserved, name); + }); + } + } catch (ex) { + grunt.warn(ex); + } }); } - - if (options.sourceMapIn) { - outputOptions.source_map.get()._file = destBasename; - } - } - - if (typeof options.indentLevel !== 'undefined') { - outputOptions.indent_level = options.indentLevel; } - if (typeof options.maxLineLen !== 'undefined') { - outputOptions.max_line_len = options.maxLineLen; - } + var result = UglifyJS.minify(files.reduce(function(o, file) { + var code = grunt.file.read(file); + totalCode += code; - if (typeof options.ASCIIOnly !== 'undefined') { - outputOptions.ascii_only = options.ASCIIOnly; - } + // The src file name must be relative to the source map for things to work + var basename = path.basename(file); + var fileDir = path.dirname(file); + var sourceMapDir = path.dirname(options.generatedSourceMapName); + var relativePath = path.relative(sourceMapDir, fileDir); + var pathPrefix = relativePath ? relativePath + path.sep : ''; - if (typeof options.quoteStyle !== 'undefined') { - outputOptions.quote_style = options.quoteStyle; + // Convert paths to use forward slashes for sourcemap use in the browser + o[uriPath(pathPrefix + basename)] = code; + return o; + }, {}), minifyOptions); + if (result.error) { + throw result.error; } - if (typeof options.preserveComments !== 'undefined') { - outputOptions.comments = options.preserveComments; + if (options.nameCache) { + grunt.file.write(options.nameCache, JSON.stringify(cache, function(key, value) { + return value instanceof UglifyJS.Dictionary ? value.toObject() : value; + })); } - if (options.beautify) { - if (typeof options.beautify === 'object') { - assign(outputOptions, options.beautify); - } else { - outputOptions.beautify = true; - } - } + grunt.verbose.ok(); - return outputOptions; + return { + max: totalCode, + min: result.code, + sourceMap: result.map + }; }; return exports; diff -Nru node-grunt-contrib-uglify-2.0.0+dfsg/tasks/uglify.js node-grunt-contrib-uglify-3.4.0+dfsg/tasks/uglify.js --- node-grunt-contrib-uglify-2.0.0+dfsg/tasks/uglify.js 2016-07-19 14:11:18.000000000 +0000 +++ node-grunt-contrib-uglify-3.4.0+dfsg/tasks/uglify.js 2018-07-28 18:28:51.000000000 +0000 @@ -11,6 +11,7 @@ var path = require('path'); var chalk = require('chalk'); var maxmin = require('maxmin'); +var uriPath = require('uri-path'); var err; // Return the relative path from file1 => file2 @@ -19,7 +20,7 @@ var file2Dirname = path.dirname(file2); if (file1Dirname !== file2Dirname) { - return path.relative(file1Dirname, file2Dirname) + path.sep; + return path.relative(file1Dirname, file2Dirname); } return ''; } @@ -33,62 +34,58 @@ // Internal lib. var uglify = require('./lib/uglify').init(grunt); + var getAvailableFiles = function (filesArray) { + return filesArray.filter(function (filepath) { + if (!grunt.file.exists(filepath)) { + grunt.log.warn('Source file ' + chalk.cyan(filepath) + ' not found'); + return false; + } + return true; + }); + }; + grunt.registerMultiTask('uglify', 'Minify files with UglifyJS.', function() { // Merge task-specific and/or target-specific options with these defaults. var options = this.options({ banner: '', footer: '', - compress: { - warnings: false - }, + compress: {}, mangle: {}, beautify: false, report: 'min', - expression: false, - maxLineLen: 32000, - ASCIIOnly: false, - screwIE8: true, - quoteStyle: 0 + ie8: false }); - // Process banner. - var banner = normalizeLf(options.banner); var footer = normalizeLf(options.footer); var mapNameGenerator, mapInNameGenerator; - var createdFiles = 0; - var createdMaps = 0; + var created = { + maps: 0, + files: 0 + }; + var size = { + before: 0, + after: 0 + }; + var generateSourceMapURL = options.sourceMap && !options.sourceMap.url; + var generateSourceMapFilename = options.sourceMap && !options.sourceMap.filename; + + // function to get the name of the sourceMap + if (typeof options.sourceMapName === 'function') { + mapNameGenerator = options.sourceMapName; + } // Iterate over all src-dest file pairs. this.files.forEach(function (f) { - var src = f.src.filter(function (filepath) { - // Warn on and remove invalid source files (if nonull was set). - if (!grunt.file.exists(filepath)) { - grunt.log.warn('Source file ' + chalk.cyan(filepath) + ' not found.'); - return false; - } - return true; - }); + var availableFiles = getAvailableFiles(f.src); - if (src.length === 0) { + if (availableFiles.length === 0) { grunt.log.warn('Destination ' + chalk.cyan(f.dest) + ' not written because src files were empty.'); return; } - // Warn on incompatible options - if (options.expression && (options.compress || options.mangle)) { - grunt.log.warn('Option ' + chalk.cyan('expression') + ' not compatible with ' + chalk.cyan('compress and mangle')); - options.compress = false; - options.mangle = false; - } - - // function to get the name of the sourceMap - if (typeof options.sourceMapName === 'function') { - mapNameGenerator = options.sourceMapName; - } - // function to get the name of the sourceMapIn file if (typeof options.sourceMapIn === 'function') { - if (src.length !== 1) { + if (availableFiles.length !== 1) { grunt.fail.warn('Cannot generate `sourceMapIn` for multiple source files.'); } mapInNameGenerator = options.sourceMapIn; @@ -113,7 +110,7 @@ // Dynamically create incoming sourcemap names if (mapInNameGenerator) { try { - options.sourceMapIn = mapInNameGenerator(src[0]); + options.sourceMapIn = mapInNameGenerator(availableFiles[0]); } catch (e) { err = new Error('SourceMapInName failed.'); err.origError = e; @@ -121,68 +118,74 @@ } } - // Calculate the path from the dest file to the sourcemap for the - // sourceMappingURL reference - // If sourceMapUrl is defined, use this instead if (options.sourceMap) { - var destToSourceMapPath, sourceMapBasename; - if (!options.sourceMapUrl) { - destToSourceMapPath = relativePath(f.dest, options.generatedSourceMapName); - sourceMapBasename = path.basename(options.generatedSourceMapName); - options.destToSourceMap = destToSourceMapPath + sourceMapBasename; - } else { - options.destToSourceMap = options.sourceMapUrl; + if (typeof options.sourceMap !== 'object') { + options.sourceMap = {}; + } + if (options.sourceMapIn) { + options.sourceMap.content = grunt.file.read(options.sourceMapIn); + } + // Calculate the path from the dest file to the sourcemap for sourceMap.url + if (generateSourceMapURL) { + if (generateSourceMapFilename) { + options.sourceMap.filename = path.basename(f.dest); + } + var destToSourceMapPath = relativePath(f.dest, options.generatedSourceMapName); + var sourceMapBasename = path.basename(options.generatedSourceMapName); + options.sourceMap.url = uriPath(path.join(destToSourceMapPath, sourceMapBasename)); } } // Minify files, warn and fail on error. var result; try { - result = uglify.minify(src, f.dest, options); + result = uglify.minify(availableFiles, f.dest, options); } catch (e) { console.log(e); err = new Error('Uglification failed.'); if (e.message) { err.message += '\n' + e.message + '. \n'; if (e.line) { - err.message += 'Line ' + e.line + ' in ' + src + '\n'; + err.message += 'Line ' + e.line + ' in ' + availableFiles + '\n'; } } err.origError = e; - grunt.log.warn('Uglifying source ' + chalk.cyan(src) + ' failed.'); + grunt.log.warn('Uglifying source ' + chalk.cyan(availableFiles) + ' failed.'); grunt.fail.warn(err); } // Concat minified source + footer var output = result.min + footer; - // Only prepend banner if uglify hasn't taken care of it as part of the preamble - if (!options.sourceMap) { - output = banner + output; - } + var unCompiledJSString = availableFiles.map(function (file) { + return grunt.file.read(file); + }).join(''); // Write the destination file. grunt.file.write(f.dest, output); + size.before += unCompiledJSString.length; + // Write source map if (options.sourceMap) { grunt.file.write(options.generatedSourceMapName, result.sourceMap); grunt.verbose.writeln('File ' + chalk.cyan(options.generatedSourceMapName) + ' created (source map).'); - createdMaps++; + created.maps++; } var outputSize = maxmin(result.max, output, options.report === 'gzip'); - grunt.verbose.writeln('File ' + chalk.cyan(f.dest) + ' created: ' + outputSize); + grunt.verbose.writeln('File ' + chalk.cyan(f.dest) + ' created: ' + chalk.dim(outputSize)); - createdFiles++; + created.files++; + size.after += output.length; }); - if (createdMaps > 0) { - grunt.log.ok(createdMaps + ' source' + grunt.util.pluralize(createdMaps, 'map/maps') + ' created.'); + if (created.maps > 0) { + grunt.log.ok(created.maps + ' source' + grunt.util.pluralize(created.maps, 'map/maps') + ' created.'); } - if (createdFiles > 0) { - grunt.log.ok(createdFiles + ' ' + grunt.util.pluralize(this.files.length, 'file/files') + ' created.'); + if (created.files > 0) { + grunt.log.ok(created.files + ' ' + grunt.util.pluralize(this.files.length, 'file/files') + ' created ' + chalk.dim(maxmin(size.before, size.after))); } else { grunt.log.warn('No files created.'); } diff -Nru node-grunt-contrib-uglify-2.0.0+dfsg/test/uglify_test.js node-grunt-contrib-uglify-3.4.0+dfsg/test/uglify_test.js --- node-grunt-contrib-uglify-2.0.0+dfsg/test/uglify_test.js 2016-07-19 14:11:18.000000000 +0000 +++ node-grunt-contrib-uglify-3.4.0+dfsg/test/uglify_test.js 2018-07-28 18:28:51.000000000 +0000 @@ -14,32 +14,35 @@ var files = [ 'beautify.js', 'comments.js', + 'commentsWithImportant.js', 'compress.js', 'compress_explicit.js', 'compress_mangle.js', 'compress_mangle_banner.js', 'compress_mangle_beautify.js', 'compress_mangle_except.js', - 'enclose.js', 'multifile.js', 'wrap.js', 'maxLineLen.js', 'asciionly.js', - 'exportAll.js', 'screwIE8.js', 'sourcemap_basic.js', 'sourcemap_basic.js.map', 'sourcemap_customDir.js', 'sourcemap_customName.js', + 'source_map_custom_name', 'sourcemap_customRoot.js', 'sourcemap_customRoot.js.map', 'sourcemap_customUrl.js', + 'sourcemap_customUrl.js.map', 'sourcemap_functionName.js', 'sourcemap_functionName.js.fn.map', path.join('deep', 'directory', 'location', 'source_map.js.map'), 'sourcemapin.js', 'sourcemapin.js.map', 'sourcemap_sources.js.map', + 'sourcemapin_customUrl.js', + 'sourcemapin_customUrl.js.map', 'sourcemapin_sources.js', 'sourcemapin_sources.js.map', 'sourcemaps_multiple1.js', diff -Nru node-grunt-contrib-uglify-2.0.0+dfsg/.travis.yml node-grunt-contrib-uglify-3.4.0+dfsg/.travis.yml --- node-grunt-contrib-uglify-2.0.0+dfsg/.travis.yml 2016-07-19 14:11:18.000000000 +0000 +++ node-grunt-contrib-uglify-3.4.0+dfsg/.travis.yml 2018-07-28 18:28:51.000000000 +0000 @@ -4,11 +4,10 @@ node_js: - "0.10" - - "0.12" - "4" - - "5" - "6" - - "iojs" + - "8" + - "10" matrix: fast_finish: true