{
  "_args": [
    [
      "grunt-contrib-uglify",
      "/Users/saurabh/via-ui"
    ]
  ],
  "_from": "grunt-contrib-uglify@*",
  "_id": "grunt-contrib-uglify@1.0.1",
  "_inCache": true,
  "_installable": true,
  "_location": "/grunt-contrib-uglify",
  "_nodeVersion": "4.2.3",
  "_npmOperationalInternal": {
    "host": "packages-12-west.internal.npmjs.com",
    "tmp": "tmp/grunt-contrib-uglify-1.0.1.tgz_1458139915523_0.8747020068112761"
  },
  "_npmUser": {
    "email": "vlad@vladikoff.com",
    "name": "vladikoff"
  },
  "_npmVersion": "2.14.17",
  "_phantomChildren": {
    "source-map": "0.5.3",
    "uglify-to-browserify": "1.0.2",
    "yargs": "3.10.0"
  },
  "_requested": {
    "name": "grunt-contrib-uglify",
    "raw": "grunt-contrib-uglify",
    "rawSpec": "",
    "scope": null,
    "spec": "*",
    "type": "range"
  },
  "_requiredBy": [
    "#USER"
  ],
  "_resolved": "https://registry.npmjs.org/grunt-contrib-uglify/-/grunt-contrib-uglify-1.0.1.tgz",
  "_shasum": "ad68411b963b99661211f76f466bdeded4fb07ac",
  "_shrinkwrap": null,
  "_spec": "grunt-contrib-uglify",
  "_where": "/Users/saurabh/via-ui",
  "appveyor_id": "ybtf5vbvtenii561",
  "author": {
    "name": "Grunt Team",
    "url": "http://gruntjs.com/"
  },
  "bugs": {
    "url": "https://github.com/gruntjs/grunt-contrib-uglify/issues"
  },
  "contributors": [
    {
      "name": "\"Cowboy\" Ben Alman",
      "url": "http://benalman.com"
    },
    {
      "name": "Tyler Kellen",
      "url": "http://goingslowly.com"
    },
    {
      "name": "Jarrod Overson",
      "url": "http://jarrodoverson.com"
    }
  ],
  "dependencies": {
    "chalk": "^1.0.0",
    "lodash": "^4.0.1",
    "maxmin": "^1.1.0",
    "uglify-js": "~2.6.2",
    "uri-path": "^1.0.0"
  },
  "description": "Minify javascript files with UglifyJS",
  "devDependencies": {
    "grunt": "^0.4.2",
    "grunt-cli": "^0.1.13",
    "grunt-contrib-clean": "^0.7.0",
    "grunt-contrib-internal": "^0.4.12",
    "grunt-contrib-jshint": "^0.12.0",
    "grunt-contrib-nodeunit": "^0.4.0"
  },
  "directories": {},
  "dist": {
    "shasum": "ad68411b963b99661211f76f466bdeded4fb07ac",
    "tarball": "https://registry.npmjs.org/grunt-contrib-uglify/-/grunt-contrib-uglify-1.0.1.tgz"
  },
  "engines": {
    "node": ">=0.10.0"
  },
  "files": [
    "tasks"
  ],
  "gitHead": "fe967c8e2235a0efd1d682459ce33940b92a0e6a",
  "homepage": "https://github.com/gruntjs/grunt-contrib-uglify#readme",
  "keywords": [
    "gruntplugin"
  ],
  "license": "MIT",
  "main": "tasks/uglify.js",
  "maintainers": [
    {
      "email": "tyler@sleekcode.net",
      "name": "tkellen"
    },
    {
      "email": "cowboy@rj3.net",
      "name": "cowboy"
    },
    {
      "email": "kyle@dontkry.com",
      "name": "shama"
    },
    {
      "email": "jsoverson@gmail.com",
      "name": "jsoverson"
    },
    {
      "email": "jellyes2@gmail.com",
      "name": "jmeas"
    },
    {
      "email": "vlad@vladikoff.com",
      "name": "vladikoff"
    },
    {
      "email": "sindresorhus@gmail.com",
      "name": "sindresorhus"
    }
  ],
  "name": "grunt-contrib-uglify",
  "optionalDependencies": {},
  "readme": "# grunt-contrib-uglify v1.0.1 [![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)\n\n> Minify javascript files with UglifyJS\n\n\n\n## Getting Started\n\nIf you haven't used [Grunt](http://gruntjs.com/) before, be sure to check out the [Getting Started](http://gruntjs.com/getting-started) guide, as it explains how to create a [Gruntfile](http://gruntjs.com/sample-gruntfile) as well as install and use Grunt plugins. Once you're familiar with that process, you may install this plugin with this command:\n\n```shell\nnpm install grunt-contrib-uglify --save-dev\n```\n\nOnce the plugin has been installed, it may be enabled inside your Gruntfile with this line of JavaScript:\n\n```js\ngrunt.loadNpmTasks('grunt-contrib-uglify');\n```\n\n\n\n\n## Uglify task\n_Run this task with the `grunt uglify` command._\n\nTask targets, files and options may be specified according to the grunt [Configuring tasks](http://gruntjs.com/configuring-tasks) guide.\n\n### Migrating from 2.x to 3.x\n\nVersion `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.\n\n#### Removed options\n\n`sourceMappingURL` - This is calculated automatically now\n`sourceMapPrefix` - No longer necessary for the above reason\n\n#### Changed options\n\n`sourceMap` - Only accepts a `Boolean` value. Generates a map with a default name for you\n`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\n\n#### New options\n\n`sourceMapName` - Accepts a string or function to change the location or name of your map\n`sourceMapIncludeSources` - Embed the content of your source files directly into the map\n`expression` - Accepts a `Boolean` value. Parse a single expression (JSON or single functions)\n`quoteStyle` - Accepts integers `0` (default), `1`, `2`, `3`. Enforce or preserve quotation mark style.\n\n### Options\n\nThis task primarily delegates to [UglifyJS2][], so please consider the [UglifyJS documentation][] as required reading for advanced configuration.\n\n[UglifyJS2]: https://github.com/mishoo/UglifyJS2\n[UglifyJS documentation]: http://lisperator.net/uglifyjs/\n\n\n#### mangle\nType: `Boolean` `Object`  \nDefault: `{}`\n\nTurn on or off mangling with default options. If an `Object` is specified, it is passed directly to `ast.mangle_names()` *and* `ast.compute_char_frequency()` (mimicking command line behavior). [View all options here](https://github.com/mishoo/UglifyJS2#mangler-options).\n\n#### compress\nType: `Boolean` `Object`  \nDefault: `{}`\n\nTurn on or off source compression with default options. If an `Object` is specified, it is passed as options to `UglifyJS.Compressor()`. [View all options here](https://github.com/mishoo/UglifyJS2#compressor-options).\n\n#### beautify\nType: `Boolean` `Object`  \nDefault: `false`\n\nTurns 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)\n\n###### expression\nType: `Boolean`  \nDefault: `false`\n\nParse a single expression, rather than a program (for parsing JSON)\n\n#### report\nChoices: `false, 'none', 'min'`, `'gzip'`\nDefault: `'min'`\n\nEither report only minification result or report minification and gzip results.\nThis is useful to see exactly how well clean-css is performing but using `'gzip'` will make the task take 5-10x longer to complete. [Example output](https://github.com/sindresorhus/maxmin#readme).\nIf false or 'none' is used the report will be generated on the verbose output.\n\n#### sourceMap\nType: `Boolean`  \nDefault: `false`\n\nIf `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.\n\n#### sourceMapName\nType: `String`  `Function`  \nDefault: `undefined`\n\nTo 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.\n\n#### sourceMapIn\nType: `String`  `Function`  \nDefault: `undefined`\n\nThe location of an input source map from an earlier compilation, e.g. from CoffeeScript. If a function is provided, the\nuglify source is passed as the argument and the return value will be used as the sourceMap name. This only makes sense\nwhen there's one source file.\n\n#### sourceMapIncludeSources\nType: `Boolean`  \nDefault: `false`\n\nPass this flag if you want to include the content of source files in the source map as sourcesContent property.\n\n###### sourceMapRoot\nType: `String`  \nDefault: `undefined`\n\nWith this option you can customize root URL that browser will use when looking for sources.\n\nIf the sources are not absolute URLs after prepending of the `sourceMapRoot`, the sources are resolved relative to the source map.\n\n#### sourceMapUrl\nType: `String`  \nDefault: `undefined`\n\nOverride 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\n\n###### enclose\nType: `Object`  \nDefault: `undefined`\n\nWrap all of the code in a closure with a configurable arguments/parameters list.\nEach key-value pair in the `enclose` object is effectively an argument-parameter pair.\n\n#### wrap\nType: `String`  \nDefault: `undefined`\n\nWrap all of the code in a closure, an easy way to make sure nothing is leaking.\nFor variables that need to be public `exports` and `global` variables are made available.\nThe value of wrap is the global variable exports will be available as.\n\n#### maxLineLen\nType: `Number`  \nDefault: `32000`\n\nLimit the line length in symbols. Pass maxLineLen = 0 to disable this safety feature.\n\n#### ASCIIOnly\nType: `Boolean`  \nDefault: `false`\n\nEnables to encode non-ASCII characters as \\uXXXX.\n\n#### exportAll\nType: `Boolean`  \nDefault: `false`\n\nWhen using `wrap` this will make all global functions and variables available via the export variable.\n\n#### preserveComments\nType: `Boolean` `String` `Function`  \nDefault: `undefined`  \nOptions: `false` `'all'` `'some'`\n\nTurn on preservation of comments.\n\n- `false` will strip all comments\n- `'all'` will preserve all comments in code blocks that have not been squashed or dropped\n- `'some'` will preserve all comments that start with a bang (`!`) or include a closure compiler style directive (`@preserve` `@license` `@cc_on`)\n- `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`\n\n#### banner\nType: `String`  \nDefault: `''`\n\nThis string will be prepended to the minified output.  Template strings (e.g. `<%= config.value %>` will be expanded automatically.\n\n#### footer\nType: `String`  \nDefault: `''`\n\nThis string will be appended to the minified output.  Template strings (e.g. `<%= config.value %>` will be expanded automatically.\n\n#### screwIE8\nType: `Boolean`  \nDefault: `false`\n\nPass this flag if you don't care about full compliance with Internet Explorer 6-8 quirks.\n\n#### mangleProperties\nType: `Boolean` `Object`\nDefault: `false`\n\nTurn 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).\n\n#### reserveDOMProperties\nType: `Boolean`  \nDefault: `false`\n\nUse this flag in conjunction with `mangleProperties` to prevent built-in browser object properties from being mangled.\n\n#### exceptionsFiles\nType: `Array`  \nDefault: `[]`\n\nUse this with `mangleProperties` to pass one or more JSON files containing a list of variables and object properties\nthat should not be mangled. See the [UglifyJS docs](https://www.npmjs.com/package/uglify-js) for more info on the file syntax.\n\n#### nameCache\nType: `String`  \nDefault: `''`\n\nA string that is a path to a JSON cache file that uglify will create and use to coordinate symbol mangling between\nmultiple runs of uglify. Note: this generated file uses the same JSON format as the `exceptionsFiles` files.\n\n#### quoteStyle\nType: `Integer`  \nDefault: `0`\n\nPreserve or enforce quotation mark style.\n\n* `0` will use single or double quotes such as to minimize the number of bytes (prefers double quotes when both will do)\n* `1` will always use single quotes\n* `2` will always use double quotes\n* `3` will preserve original quotation marks\n\n### Usage examples\n\n#### Basic compression\n\nThis configuration will compress and mangle the input files using the default options.\n\n```js\n// Project configuration.\ngrunt.initConfig({\n  uglify: {\n    my_target: {\n      files: {\n        'dest/output.min.js': ['src/input1.js', 'src/input2.js']\n      }\n    }\n  }\n});\n```\n\n#### No mangling\n\nSpecify `mangle: false` to prevent changes to your variable and function names.\n\n```js\n// Project configuration.\ngrunt.initConfig({\n  uglify: {\n    options: {\n      mangle: false\n    },\n    my_target: {\n      files: {\n        'dest/output.min.js': ['src/input.js']\n      }\n    }\n  }\n});\n```\n\n#### Reserved identifiers\n\nYou can specify identifiers to leave untouched with an `except` array in the `mangle` options.\n\n```js\n// Project configuration.\ngrunt.initConfig({\n  uglify: {\n    options: {\n      mangle: {\n        except: ['jQuery', 'Backbone']\n      }\n    },\n    my_target: {\n      files: {\n        'dest/output.min.js': ['src/input.js']\n      }\n    }\n  }\n});\n```\n\n#### Source maps\n\nGenerate a source map by setting the `sourceMap` option to `true`. The generated\nsource map will be in the same directory as the destination file. Its name will be the\nbasename of the destination file with a `.map` extension. Override these\ndefaults with the `sourceMapName` attribute.\n\n```js\n// Project configuration.\ngrunt.initConfig({\n  uglify: {\n    my_target: {\n      options: {\n        sourceMap: true,\n        sourceMapName: 'path/to/sourcemap.map'\n      },\n      files: {\n        'dest/output.min.js': ['src/input.js']\n      }\n    }\n  }\n});\n```\n\n#### Advanced source maps\n\nSet the `sourceMapIncludeSources` option to `true` to embed your sources directly into the map. To include\na source map from a previous compilation pass it as the value of the `sourceMapIn` option.\n\n```js\n// Project configuration.\ngrunt.initConfig({\n  uglify: {\n    my_target: {\n      options: {\n        sourceMap: true,\n        sourceMapIncludeSources: true,\n        sourceMapIn: 'example/coffeescript-sourcemap.js', // input sourcemap from a previous compilation\n      },\n      files: {\n        'dest/output.min.js': ['src/input.js'],\n      },\n    },\n  },\n});\n```\n\nRefer to the [UglifyJS SourceMap Documentation](http://lisperator.net/uglifyjs/codegen#source-map) for more information.\n\n#### Turn off console warnings\n\nSpecify `drop_console: true` as part of the `compress` options to discard calls to `console.*` functions.\nThis will suppress warning messages in the console.\n\n```js\n// Project configuration.\ngrunt.initConfig({\n  uglify: {\n    options: {\n      compress: {\n        drop_console: true\n      }\n    },\n    my_target: {\n      files: {\n        'dest/output.min.js': ['src/input.js']\n      }\n    }\n  }\n});\n```\n\n#### Beautify\n\nSpecify `beautify: true` to beautify your code for debugging/troubleshooting purposes.\nPass an object to manually configure any other output options passed directly to `UglifyJS.OutputStream()`.\n\nSee [UglifyJS Codegen documentation](http://lisperator.net/uglifyjs/codegen) for more information.\n\n_Note that manual configuration will require you to explicitly set `beautify: true` if you want traditional, beautified output._\n\n```js\n// Project configuration.\ngrunt.initConfig({\n  uglify: {\n    my_target: {\n      options: {\n        beautify: true\n      },\n      files: {\n        'dest/output.min.js': ['src/input.js']\n      }\n    },\n    my_advanced_target: {\n      options: {\n        beautify: {\n          width: 80,\n          beautify: true\n        }\n      },\n      files: {\n        'dest/output.min.js': ['src/input.js']\n      }\n    }\n  }\n});\n```\n\n#### Banner comments\n\nIn this example, running `grunt uglify:my_target` will prepend a banner created by interpolating the `banner` template string with the config object. Here, those properties are the values imported from the `package.json` file (which are available via the `pkg` config property) plus today's date.\n\n_Note: you don't have to use an external JSON file. It's also valid to create the `pkg` object inline in the config. That being said, if you already have a JSON file, you might as well reference it._\n\n```js\n// Project configuration.\ngrunt.initConfig({\n  pkg: grunt.file.readJSON('package.json'),\n  uglify: {\n    options: {\n      banner: '/*! <%= pkg.name %> - v<%= pkg.version %> - ' +\n        '<%= grunt.template.today(\"yyyy-mm-dd\") %> */'\n    },\n    my_target: {\n      files: {\n        'dest/output.min.js': ['src/input.js']\n      }\n    }\n  }\n});\n```\n\n#### Conditional compilation\n\nYou 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).\n\nSee [UglifyJS global definitions documentation](http://lisperator.net/uglifyjs/compress#global-defs) for more information.\n\n```js\n// Project configuration.\ngrunt.initConfig({\n  uglify: {\n    options: {\n      compress: {\n        global_defs: {\n          \"DEBUG\": false\n        },\n        dead_code: true\n      }\n    },\n    my_target: {\n      files: {\n        'dest/output.min.js': ['src/input.js']\n      }\n    }\n  }\n});\n```\n\n#### Compiling all files in a folder dynamically\n\nThis configuration will compress and mangle the files dynamically.\n\n```js\n// Project configuration.\ngrunt.initConfig({\n  uglify: {\n    my_target: {\n      files: [{\n          expand: true,\n          cwd: 'src/js',\n          src: '**/*.js',\n          dest: 'dest/js'\n      }]\n    }\n  }\n});\n```\n\n#### Turn on object property name mangling\n\nThis configuration will turn on object property name mangling, but not mangle built-in browser object properties.\nAdditionally, variables and object properties listed in the `myExceptionsFile.json` will be mangled. For more info,\non the format of the exception file format please see the [UglifyJS docs](https://www.npmjs.com/package/uglify-js).\n\n```js\n// Project configuration.\ngrunt.initConfig({\n  uglify: {\n    options: {\n      mangleProperties: true,\n      reserveDOMCache: true,\n      exceptionsFiles: [ 'myExceptionsFile.json' ]\n    },\n    my_target: {\n      files: {\n        'dest/output.min.js': ['src/input.js']\n      }\n    }\n  }\n});\n```\n\n#### Turn on use of name mangling cache\n\nTurn on use of name mangling cache to coordinate mangled symbols between outputted uglify files. uglify will the\ngenerate a JSON cache file with the name provided in the options. Note: this generated file uses the same JSON format\nas the `exceptionsFiles` files.\n\n```js\n// Project configuration.\ngrunt.initConfig({\n  uglify: {\n    options: {\n      nameCache: '.tmp/grunt-uglify-cache.json',\n    },\n    my_target: {\n      files: {\n        'dest/output1.min.js': ['src/input1.js'],\n        'dest/output2.min.js': ['src/input2.js']\n      }\n    }\n  }\n});\n```\n\n\n## Release History\n\n * 2016-03-16   v1.0.1   downgrade maxmin for node 0.10\n * 2016-03-04   v1.0.0   Use uglify-js ~2.6.2 to fix sourcemap issue. Improving docs for global-defs and --define options. Add 'sourceMapUrl' option. add bare_returns option. Optionally set report verbosity level using report option.\n * 2016-01-29   v0.11.1   switch to lodash ^4.0.1 switch to grunt-contrib-clean ^0.7.0 switch to grunt-contrib-jshint ^0.12.0\n * 2015-11-20   v0.11.0   switch to uglify ~2.6.0\n * 2015-11-12   v0.10.1   switch to uglify ~2.5\n * 2015-10-27   v0.10.0   bump to uglify ^2.5\n * 2015-08-24   v0.9.2   bump to uglify ^2.4.24\n * 2015-04-07   v0.9.1   more fixes for mangle options\n * 2015-04-07   v0.9.0   added hook into uglify's mangling functionality\n * 2015-03-30   v0.8.1   lock uglify to 2.4.17 due to breaking changes\n * 2015-02-19   v0.8.0   Add `screwIE8` option. Fix issue with explicit `compress` in node 0.12.0.\n * 2014-12-23   v0.7.0   Adds sourceMapRoot options. Updates readme descriptions. Removes reference to cleancss.\n * 2014-09-17   v0.6.0   Output fixes. ASCIIOnly option. Other fixes.\n * 2014-07-25   v0.5.1   Chalk updates. Output updates.\n * 2014-03-01   v0.4.0   remove grunt-lib-contrib dependency and add more colors\n * 2014-02-27   v0.3.3   remove unnecessary calls to `grunt.template.process`\n * 2014-01-22   v0.3.2   fix handling of `sourceMapIncludeSources` option.\n * 2014-01-20   v0.3.1   fix relative path issue in sourcemaps\n * 2014-01-16   v0.3.0   refactor sourcemap support\n * 2013-11-09   v0.2.7   prepending banner if sourceMap option not set, addresses\n * 2013-11-08   v0.2.6   merged 45, 53, 85 (105 by way of duping 53) Added support for banners in uglified files with sourcemaps Updated docs\n * 2013-10-28   v0.2.5   Added warning for banners when using sourcemaps\n * 2013-09-02   v0.2.4   updated sourcemap format via /83\n * 2013-06-10   v0.2.3   added footer option\n * 2013-05-31   v0.2.2   Reverted /56 due to /58 until [chrome/239660](https://code.google.com/p/chromium/issues/detail?id=239660&q=sourcemappingurl&colspec=ID%20Pri%20M%20Iteration%20ReleaseBlock%20Cr%20Status%20Owner%20Summary%20OS%20Modified) [firefox/870361](https://bugzilla.mozilla.org/show_bug.cgi?id=870361) drop\n * 2013-05-22   v0.2.1   Bumped uglify to ~2.3.5 /55 /40 Changed sourcemappingUrl syntax /56 Disabled sorting of names for consistent mangling /44 Updated docs for sourceMapRoot /47 /25\n * 2013-03-14   v0.2.0   No longer report gzip results by default. Support `report` option.\n * 2013-01-30   v0.1.2   Added better error reporting Support for dynamic names of multiple sourcemaps\n * 2013-02-15   v0.1.1   First official release for Grunt 0.4.0.\n * 2013-01-18   v0.1.1rc6   Updating grunt/gruntplugin dependencies to rc6. Changing in-development grunt/gruntplugin dependency versions from tilde version ranges to specific versions.\n * 2013-01-09   v0.1.1rc5   Updating to work with grunt v0.4.0rc5. Switching back to this.files api.\n * 2012-11-28   v0.1.0   Work in progress, not yet officially released.\n\n---\n\nTask submitted by [\"Cowboy\" Ben Alman](http://benalman.com)\n\n*This file was generated on Wed Mar 16 2016 10:51:38.*\n",
  "readmeFilename": "README.md",
  "repository": {
    "type": "git",
    "url": "git+https://github.com/gruntjs/grunt-contrib-uglify.git"
  },
  "scripts": {
    "test": "grunt test"
  },
  "version": "1.0.1"
}
