Quellcode durchsuchen

Remove node modules from git

Jay Salvat vor 11 Jahren
Ursprung
Commit
23bb98c489
100 geänderte Dateien mit 0 neuen und 6035 gelöschten Zeilen
  1. 0 72
      node_modules/.bin/semver
  2. 0 14
      node_modules/grunt-contrib-clean/.jshintrc
  3. 0 3
      node_modules/grunt-contrib-clean/.npmignore
  4. 0 6
      node_modules/grunt-contrib-clean/.travis.yml
  5. 0 6
      node_modules/grunt-contrib-clean/AUTHORS
  6. 0 32
      node_modules/grunt-contrib-clean/CHANGELOG
  7. 0 1
      node_modules/grunt-contrib-clean/CONTRIBUTING.md
  8. 0 60
      node_modules/grunt-contrib-clean/Gruntfile.js
  9. 0 22
      node_modules/grunt-contrib-clean/LICENSE-MIT
  10. 0 83
      node_modules/grunt-contrib-clean/README.md
  11. 0 28
      node_modules/grunt-contrib-clean/docs/clean-examples.md
  12. 0 7
      node_modules/grunt-contrib-clean/docs/clean-options.md
  13. 0 3
      node_modules/grunt-contrib-clean/docs/clean-overview.md
  14. 0 1
      node_modules/grunt-contrib-clean/docs/overview.md
  15. 0 67
      node_modules/grunt-contrib-clean/package.json
  16. 0 37
      node_modules/grunt-contrib-clean/tasks/clean.js
  17. 0 22
      node_modules/grunt-contrib-clean/test/clean_test.js
  18. 0 1
      node_modules/grunt-contrib-clean/test/fixtures/sample_long/long.txt
  19. 0 1
      node_modules/grunt-contrib-clean/test/fixtures/sample_short/short.txt
  20. 0 14
      node_modules/grunt-contrib-cssmin/.jshintrc
  21. 0 3
      node_modules/grunt-contrib-cssmin/.npmignore
  22. 0 6
      node_modules/grunt-contrib-cssmin/.travis.yml
  23. 0 6
      node_modules/grunt-contrib-cssmin/AUTHORS
  24. 0 51
      node_modules/grunt-contrib-cssmin/CHANGELOG
  25. 0 1
      node_modules/grunt-contrib-cssmin/CONTRIBUTING.md
  26. 0 88
      node_modules/grunt-contrib-cssmin/Gruntfile.js
  27. 0 22
      node_modules/grunt-contrib-cssmin/LICENSE-MIT
  28. 0 123
      node_modules/grunt-contrib-cssmin/README.md
  29. 0 40
      node_modules/grunt-contrib-cssmin/docs/cssmin-examples.md
  30. 0 30
      node_modules/grunt-contrib-cssmin/docs/cssmin-options.md
  31. 0 3
      node_modules/grunt-contrib-cssmin/docs/cssmin-overview.md
  32. 0 1
      node_modules/grunt-contrib-cssmin/docs/overview.md
  33. 0 1
      node_modules/grunt-contrib-cssmin/node_modules/.bin/cleancss
  34. 0 5
      node_modules/grunt-contrib-cssmin/node_modules/clean-css/.npmignore
  35. 0 262
      node_modules/grunt-contrib-cssmin/node_modules/clean-css/History.md
  36. 0 19
      node_modules/grunt-contrib-cssmin/node_modules/clean-css/LICENSE
  37. 0 131
      node_modules/grunt-contrib-cssmin/node_modules/clean-css/README.md
  38. 0 101
      node_modules/grunt-contrib-cssmin/node_modules/clean-css/bin/cleancss
  39. 0 1
      node_modules/grunt-contrib-cssmin/node_modules/clean-css/index.js
  40. 0 601
      node_modules/grunt-contrib-cssmin/node_modules/clean-css/lib/clean.js
  41. 0 174
      node_modules/grunt-contrib-cssmin/node_modules/clean-css/node_modules/commander/History.md
  42. 0 276
      node_modules/grunt-contrib-cssmin/node_modules/clean-css/node_modules/commander/Readme.md
  43. 0 1160
      node_modules/grunt-contrib-cssmin/node_modules/clean-css/node_modules/commander/index.js
  44. 0 101
      node_modules/grunt-contrib-cssmin/node_modules/clean-css/node_modules/commander/node_modules/keypress/README.md
  45. 0 346
      node_modules/grunt-contrib-cssmin/node_modules/clean-css/node_modules/commander/node_modules/keypress/index.js
  46. 0 23
      node_modules/grunt-contrib-cssmin/node_modules/clean-css/node_modules/commander/node_modules/keypress/package.json
  47. 0 28
      node_modules/grunt-contrib-cssmin/node_modules/clean-css/node_modules/commander/node_modules/keypress/test.js
  48. 0 32
      node_modules/grunt-contrib-cssmin/node_modules/clean-css/node_modules/commander/package.json
  49. 0 43
      node_modules/grunt-contrib-cssmin/node_modules/clean-css/package.json
  50. 0 1
      node_modules/grunt-contrib-cssmin/node_modules/grunt-lib-contrib/.gitattributes
  51. 0 14
      node_modules/grunt-contrib-cssmin/node_modules/grunt-lib-contrib/.jshintrc
  52. 0 3
      node_modules/grunt-contrib-cssmin/node_modules/grunt-lib-contrib/.npmignore
  53. 0 6
      node_modules/grunt-contrib-cssmin/node_modules/grunt-lib-contrib/.travis.yml
  54. 0 4
      node_modules/grunt-contrib-cssmin/node_modules/grunt-lib-contrib/AUTHORS
  55. 0 47
      node_modules/grunt-contrib-cssmin/node_modules/grunt-lib-contrib/CHANGELOG
  56. 0 60
      node_modules/grunt-contrib-cssmin/node_modules/grunt-lib-contrib/Gruntfile.js
  57. 0 22
      node_modules/grunt-contrib-cssmin/node_modules/grunt-lib-contrib/LICENSE-MIT
  58. 0 65
      node_modules/grunt-contrib-cssmin/node_modules/grunt-lib-contrib/README.md
  59. 0 111
      node_modules/grunt-contrib-cssmin/node_modules/grunt-lib-contrib/lib/contrib.js
  60. 0 1
      node_modules/grunt-contrib-cssmin/node_modules/grunt-lib-contrib/node_modules/zlib-browserify/.npmignore
  61. 0 43
      node_modules/grunt-contrib-cssmin/node_modules/grunt-lib-contrib/node_modules/zlib-browserify/index.js
  62. 0 33
      node_modules/grunt-contrib-cssmin/node_modules/grunt-lib-contrib/node_modules/zlib-browserify/package.json
  63. 0 1
      node_modules/grunt-contrib-cssmin/node_modules/grunt-lib-contrib/node_modules/zlib-browserify/readme.md
  64. 0 65
      node_modules/grunt-contrib-cssmin/node_modules/grunt-lib-contrib/node_modules/zlib-browserify/test/zlib.test.js
  65. 0 55
      node_modules/grunt-contrib-cssmin/node_modules/grunt-lib-contrib/node_modules/zlib-browserify/zlib.js
  66. 0 55
      node_modules/grunt-contrib-cssmin/node_modules/grunt-lib-contrib/package.json
  67. 0 233
      node_modules/grunt-contrib-cssmin/node_modules/grunt-lib-contrib/test/lib_test.js
  68. 0 72
      node_modules/grunt-contrib-cssmin/package.json
  69. 0 61
      node_modules/grunt-contrib-cssmin/tasks/cssmin.js
  70. 0 49
      node_modules/grunt-contrib-cssmin/test/cssmin_test.js
  71. 0 1
      node_modules/grunt-contrib-cssmin/test/expected/inline_import.css
  72. 0 2
      node_modules/grunt-contrib-cssmin/test/expected/input_bannered.css
  73. 0 1
      node_modules/grunt-contrib-cssmin/test/expected/style.css
  74. 0 2
      node_modules/grunt-contrib-cssmin/test/expected/with-banner.css
  75. 0 4
      node_modules/grunt-contrib-cssmin/test/fixtures/inner/input_inline_import.css
  76. 0 3
      node_modules/grunt-contrib-cssmin/test/fixtures/inner/input_inline_import2.css
  77. 0 4
      node_modules/grunt-contrib-cssmin/test/fixtures/input_bannered.css
  78. 0 4
      node_modules/grunt-contrib-cssmin/test/fixtures/input_inline_import.css
  79. 0 3
      node_modules/grunt-contrib-cssmin/test/fixtures/input_inline_import2.css
  80. 0 5
      node_modules/grunt-contrib-cssmin/test/fixtures/input_one.css
  81. 0 4
      node_modules/grunt-contrib-cssmin/test/fixtures/input_two.css
  82. 0 14
      node_modules/grunt-contrib-jshint/.jshintrc
  83. 0 3
      node_modules/grunt-contrib-jshint/.npmignore
  84. 0 3
      node_modules/grunt-contrib-jshint/.travis.yml
  85. 0 2
      node_modules/grunt-contrib-jshint/AUTHORS
  86. 0 18
      node_modules/grunt-contrib-jshint/CHANGELOG
  87. 0 1
      node_modules/grunt-contrib-jshint/CONTRIBUTING.md
  88. 0 52
      node_modules/grunt-contrib-jshint/Gruntfile.js
  89. 0 22
      node_modules/grunt-contrib-jshint/LICENSE-MIT
  90. 0 140
      node_modules/grunt-contrib-jshint/README.md
  91. 0 65
      node_modules/grunt-contrib-jshint/docs/jshint-examples.md
  92. 0 32
      node_modules/grunt-contrib-jshint/docs/jshint-options.md
  93. 0 1
      node_modules/grunt-contrib-jshint/docs/jshint-overview.md
  94. 0 2
      node_modules/grunt-contrib-jshint/node_modules/.bin/jshint
  95. 0 4
      node_modules/grunt-contrib-jshint/node_modules/jshint/LICENSE
  96. 0 91
      node_modules/grunt-contrib-jshint/node_modules/jshint/README.md
  97. 0 2
      node_modules/grunt-contrib-jshint/node_modules/jshint/bin/hint
  98. 0 159
      node_modules/grunt-contrib-jshint/node_modules/jshint/lib/cli.js
  99. 0 125
      node_modules/grunt-contrib-jshint/node_modules/jshint/lib/hint.js
  100. 0 107
      node_modules/grunt-contrib-jshint/node_modules/jshint/lib/reporters/checkstyle.js

+ 0 - 72
node_modules/.bin/semver

@@ -1,72 +0,0 @@
-#!/usr/bin/env node
-// Standalone semver comparison program.
-// Exits successfully and prints matching version(s) if
-// any supplied version is valid and passes all tests.
-
-var argv = process.argv.slice(2)
-  , versions = []
-  , range = []
-  , gt = []
-  , lt = []
-  , eq = []
-  , semver = require("../semver")
-
-main()
-
-function main () {
-  if (!argv.length) return help()
-  while (argv.length) {
-    var a
-    switch (a = argv.shift()) {
-      case "-v": case "--version":
-        versions.push(argv.shift())
-        break
-      case "-r": case "--range":
-        range.push(argv.shift())
-        break
-      case "-h": case "--help": case "-?":
-        return help()
-      default:
-        versions.push(a)
-        break
-    }
-  }
-
-  versions = versions.filter(semver.valid)
-  if (!versions.length) return fail()
-  for (var i = 0, l = range.length; i < l ; i ++) {
-    versions = versions.filter(function (v) {
-      return semver.satisfies(v, range[i])
-    })
-    if (!versions.length) return fail()
-  }
-  return success(versions)
-}
-
-function fail () { process.exit(1) }
-
-function success () {
-  versions.sort(semver.compare)
-    .map(semver.clean)
-    .forEach(function (v,i,_) { console.log(v) })
-}
-
-function help () {
-  console.log(["Usage: semver -v <version> [-r <range>]"
-              ,"Test if version(s) satisfy the supplied range(s),"
-              ,"and sort them."
-              ,""
-              ,"Multiple versions or ranges may be supplied."
-              ,""
-              ,"Program exits successfully if any valid version satisfies"
-              ,"all supplied ranges, and prints all satisfying versions."
-              ,""
-              ,"If no versions are valid, or ranges are not satisfied,"
-              ,"then exits failure."
-              ,""
-              ,"Versions are printed in ascending order, so supplying"
-              ,"multiple versions to the utility will just sort them."
-              ].join("\n"))
-}
-
-

+ 0 - 14
node_modules/grunt-contrib-clean/.jshintrc

@@ -1,14 +0,0 @@
-{
-  "curly": true,
-  "eqeqeq": true,
-  "immed": true,
-  "latedef": true,
-  "newcap": true,
-  "noarg": true,
-  "sub": true,
-  "undef": true,
-  "boss": true,
-  "eqnull": true,
-  "node": true,
-  "es5": true
-}

+ 0 - 3
node_modules/grunt-contrib-clean/.npmignore

@@ -1,3 +0,0 @@
-node_modules
-npm-debug.log
-tmp

+ 0 - 6
node_modules/grunt-contrib-clean/.travis.yml

@@ -1,6 +0,0 @@
-language: node_js
-node_js:
-  - "0.8"
-  - "0.10"
-before_script:
-  - npm install -g grunt-cli

+ 0 - 6
node_modules/grunt-contrib-clean/AUTHORS

@@ -1,6 +0,0 @@
-Tim Branyen (http://tbranyen.com/)
-Tyler Kellen (http://goingslowly.com/)
-Chris Talkington (http://christalkington.com/)
-Sebastian Golasch (http://www.asciidisco.com/)
-Vlad Filippov (http://vf.io)
-"Cowboy" Ben Alman (http://benalman.com/)

+ 0 - 32
node_modules/grunt-contrib-clean/CHANGELOG

@@ -1,32 +0,0 @@
-v0.4.1:
-  date: 2013-04-16
-  changes:
-    - Check if file exists to avoid trying to delete a non-existent file.
-v0.4.0:
-  date: 2013-02-15
-  changes:
-    - First official release for Grunt 0.4.0.
-v0.4.0rc6:
-  date: 2013-01-18
-  changes:
-    - Updating grunt/gruntplugin dependencies to rc6.
-    - Changing in-development grunt/gruntplugin dependency versions from tilde version ranges to specific versions.
-v0.4.0rc5:
-  date: 2013-01-09
-  changes:
-    - Updating to work with grunt v0.4.0rc5.
-    - Switching to this.filesSrc api.
-v0.4.0a:
-  date: 2012-12-07
-  changes:
-    - Conversion to grunt v0.4 conventions.
-    - Remove node v0.6 and grunt v0.3 support.
-    - Add force option to bypass CWD check.
-v0.3.0:
-  date: 2012-09-23
-  changes:
-    - Options no longer accepted from global config key.
-v0.2.0:
- date: 2012-09-10
- changes:
-   - Refactored from grunt-contrib into individual repo.

+ 0 - 1
node_modules/grunt-contrib-clean/CONTRIBUTING.md

@@ -1 +0,0 @@
-Please see the [Contributing to grunt](http://gruntjs.com/contributing) guide for information on contributing to this project.

+ 0 - 60
node_modules/grunt-contrib-clean/Gruntfile.js

@@ -1,60 +0,0 @@
-/*
- * grunt-contrib-clean
- * http://gruntjs.com/
- *
- * Copyright (c) 2012 Tim Branyen, contributors
- * Licensed under the MIT license.
- */
-
-'use strict';
-
-module.exports = function(grunt) {
-
-  // Project configuration.
-  grunt.initConfig({
-    jshint: {
-      all: [
-        'Gruntfile.js',
-        'tasks/*.js',
-        '<%= nodeunit.tests %>'
-      ],
-      options: {
-        jshintrc: '.jshintrc'
-      },
-    },
-
-    // Configuration to be run (and then tested).
-    clean: {
-      short: ['tmp/sample_short'],
-      long: {
-        src: ['tmp/sample_long'],
-      },
-    },
-
-    // Unit tests.
-    nodeunit: {
-      tests: ['test/*_test.js'],
-    },
-  });
-
-  // Actually load this plugin's task(s).
-  grunt.loadTasks('tasks');
-
-  // These plugins provide necessary tasks.
-  grunt.loadNpmTasks('grunt-contrib-jshint');
-  grunt.loadNpmTasks('grunt-contrib-nodeunit');
-  grunt.loadNpmTasks('grunt-contrib-internal');
-
-  // Setup a test helper to create some folders to clean.
-  grunt.registerTask('copy', 'Copy fixtures to a temp location.', function() {
-    grunt.file.copy('test/fixtures/sample_long/long.txt', 'tmp/sample_long/long.txt');
-    grunt.file.copy('test/fixtures/sample_short/short.txt', 'tmp/sample_short/short.txt');
-  });
-
-  // Whenever the 'test' task is run, first create some files to be cleaned,
-  // then run this plugin's task(s), then test the result.
-  grunt.registerTask('test', ['copy', 'clean', 'nodeunit']);
-
-  // By default, lint and run all tests.
-  grunt.registerTask('default', ['jshint', 'test', 'build-contrib']);
-};

+ 0 - 22
node_modules/grunt-contrib-clean/LICENSE-MIT

@@ -1,22 +0,0 @@
-Copyright (c) 2012 Tim Branyen, contributors
-
-Permission is hereby granted, free of charge, to any person
-obtaining a copy of this software and associated documentation
-files (the "Software"), to deal in the Software without
-restriction, including without limitation the rights to use,
-copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the
-Software is furnished to do so, subject to the following
-conditions:
-
-The above copyright notice and this permission notice shall be
-included in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
-OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
-HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
-WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
-FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
-OTHER DEALINGS IN THE SOFTWARE.

+ 0 - 83
node_modules/grunt-contrib-clean/README.md

@@ -1,83 +0,0 @@
-# grunt-contrib-clean [![Build Status](https://secure.travis-ci.org/gruntjs/grunt-contrib-clean.png?branch=master)](http://travis-ci.org/gruntjs/grunt-contrib-clean)
-
-> Clean files and folders.
-
-
-
-## Getting Started
-This plugin requires Grunt `~0.4.0`
-
-If 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:
-
-```shell
-npm install grunt-contrib-clean --save-dev
-```
-
-Once the plugin has been installed, it may be enabled inside your Gruntfile with this line of JavaScript:
-
-```js
-grunt.loadNpmTasks('grunt-contrib-clean');
-```
-
-*This plugin was designed to work with Grunt 0.4.x. If you're still using grunt v0.3.x it's strongly recommended that [you upgrade](http://gruntjs.com/upgrading-from-0.3-to-0.4), but in case you can't please use [v0.3.2](https://github.com/gruntjs/grunt-contrib-clean/tree/grunt-0.3-stable).*
-
-
-
-## Clean task
-_Run this task with the `grunt clean` command._
-
-Task targets, files and options may be specified according to the grunt [Configuring tasks](http://gruntjs.com/configuring-tasks) guide.
-
-*Due to the destructive nature of this task, always be cautious of the paths you clean.*
-### Options
-
-#### force
-Type: `Boolean`  
-Default: false
-
-This overrides `grunt.file.delete` from blocking deletion of folders outside current working dir (CWD). Use with caution.
-
-### Usage Examples
-
-There are three formats you can use to run this task.
-
-#### Short
-
-```js
-clean: ["path/to/dir/one", "path/to/dir/two"]
-```
-
-#### Medium (specific targets with global options)
-
-```js
-clean: {
-  build: ["path/to/dir/one", "path/to/dir/two"],
-  release: ["path/to/another/dir/one", "path/to/another/dir/two"]
-},
-```
-
-#### Long (specific targets with per target options)
-
-```js
-clean: {
-  build: {
-    src: ["path/to/dir/one", "path/to/dir/two"]
-  }
-}
-```
-
-## Release History
-
- * 2013-04-16   v0.4.1   Check if file exists to avoid trying to delete a non-existent file.
- * 2013-02-15   v0.4.0   First official release for Grunt 0.4.0.
- * 2013-01-18   v0.4.0rc6   Updating grunt/gruntplugin dependencies to rc6. Changing in-development grunt/gruntplugin dependency versions from tilde version ranges to specific versions.
- * 2013-01-09   v0.4.0rc5   Updating to work with grunt v0.4.0rc5. Switching to this.filesSrc api.
- * 2012-12-07   v0.4.0a   Conversion to grunt v0.4 conventions. Remove node v0.6 and grunt v0.3 support. Add force option to bypass CWD check.
- * 2012-09-23   v0.3.0   Options no longer accepted from global config key.
- * 2012-09-10   v0.2.0   Refactored from grunt-contrib into individual repo.
-
----
-
-Task submitted by [Tim Branyen](http://tbranyen.com/)
-
-*This file was generated on Tue Apr 16 2013 13:28:15.*

+ 0 - 28
node_modules/grunt-contrib-clean/docs/clean-examples.md

@@ -1,28 +0,0 @@
-# Usage Examples
-
-There are three formats you can use to run this task.
-
-## Short
-
-```js
-clean: ["path/to/dir/one", "path/to/dir/two"]
-```
-
-## Medium (specific targets with global options)
-
-```js
-clean: {
-  build: ["path/to/dir/one", "path/to/dir/two"],
-  release: ["path/to/another/dir/one", "path/to/another/dir/two"]
-},
-```
-
-## Long (specific targets with per target options)
-
-```js
-clean: {
-  build: {
-    src: ["path/to/dir/one", "path/to/dir/two"]
-  }
-}
-```

+ 0 - 7
node_modules/grunt-contrib-clean/docs/clean-options.md

@@ -1,7 +0,0 @@
-# Options
-
-## force
-Type: `Boolean`  
-Default: false
-
-This overrides `grunt.file.delete` from blocking deletion of folders outside current working dir (CWD). Use with caution.

+ 0 - 3
node_modules/grunt-contrib-clean/docs/clean-overview.md

@@ -1,3 +0,0 @@
-Task targets, files and options may be specified according to the grunt [Configuring tasks](http://gruntjs.com/configuring-tasks) guide.
-
-*Due to the destructive nature of this task, always be cautious of the paths you clean.*

+ 0 - 1
node_modules/grunt-contrib-clean/docs/overview.md

@@ -1 +0,0 @@
-*This plugin was designed to work with Grunt 0.4.x. If you're still using grunt v0.3.x it's strongly recommended that [you upgrade](http://gruntjs.com/upgrading-from-0.3-to-0.4), but in case you can't please use [v0.3.2](https://github.com/gruntjs/grunt-contrib-clean/tree/grunt-0.3-stable).*

Datei-Diff unterdrückt, da er zu groß ist
+ 0 - 67
node_modules/grunt-contrib-clean/package.json


+ 0 - 37
node_modules/grunt-contrib-clean/tasks/clean.js

@@ -1,37 +0,0 @@
-/*
- * grunt-contrib-clean
- * http://gruntjs.com/
- *
- * Copyright (c) 2012 Tim Branyen, contributors
- * Licensed under the MIT license.
- */
-
-'use strict';
-
-module.exports = function(grunt) {
-
-  grunt.registerMultiTask('clean', 'Clean files and folders.', function() {
-    // Merge task-specific and/or target-specific options with these defaults.
-    var options = this.options({
-      force: false
-    });
-
-    grunt.verbose.writeflags(options, 'Options');
-
-    // Clean specified files / dirs.
-    this.filesSrc.forEach(function(filepath) {
-      if (!grunt.file.exists(filepath)) { return; }
-      grunt.log.write('Cleaning "' + filepath + '"...');
-
-      try {
-        grunt.file.delete(filepath, options);
-        grunt.log.ok();
-      } catch (e) {
-        grunt.log.error();
-        grunt.verbose.error(e);
-        grunt.fail.warn('Clean operation failed.');
-      }
-    });
-  });
-
-};

+ 0 - 22
node_modules/grunt-contrib-clean/test/clean_test.js

@@ -1,22 +0,0 @@
-'use strict';
-
-var grunt = require('grunt');
-
-exports.clean = {
-  short: function(test) {
-    test.expect(1);
-
-    var expected = grunt.file.exists('tmp/sample_short');
-    test.equal(expected, false, 'should remove the short directory using clean');
-
-    test.done();
-  },
-  long: function(test) {
-    test.expect(1);
-
-    var expected = grunt.file.exists('tmp/sample_long');
-    test.equal(expected, false, 'should remove the long directory using clean');
-
-    test.done();
-  }
-};

+ 0 - 1
node_modules/grunt-contrib-clean/test/fixtures/sample_long/long.txt

@@ -1 +0,0 @@
-txt

+ 0 - 1
node_modules/grunt-contrib-clean/test/fixtures/sample_short/short.txt

@@ -1 +0,0 @@
-txt

+ 0 - 14
node_modules/grunt-contrib-cssmin/.jshintrc

@@ -1,14 +0,0 @@
-{
-  "curly": true,
-  "eqeqeq": true,
-  "immed": true,
-  "latedef": true,
-  "newcap": true,
-  "noarg": true,
-  "sub": true,
-  "undef": true,
-  "boss": true,
-  "eqnull": true,
-  "node": true,
-  "es5": true
-}

+ 0 - 3
node_modules/grunt-contrib-cssmin/.npmignore

@@ -1,3 +0,0 @@
-node_modules
-npm-debug.log
-tmp

+ 0 - 6
node_modules/grunt-contrib-cssmin/.travis.yml

@@ -1,6 +0,0 @@
-language: node_js
-node_js:
-  - "0.8"
-  - "0.10"
-before_script:
-  - npm install -g grunt-cli

+ 0 - 6
node_modules/grunt-contrib-cssmin/AUTHORS

@@ -1,6 +0,0 @@
-Tim Branyen (http://goingslowly.com/)
-Chris Talkington (http://christalkington.com/)
-Thomas Boyt (http://www.thomasboyt.com/)
-Liam Kaufman (http://liamkaufman.com/)
-Jörn Zaefferer (http://bassistance.de)
-Braden Anderson (http://google.com/profiles/bluej100)

+ 0 - 51
node_modules/grunt-contrib-cssmin/CHANGELOG

@@ -1,51 +0,0 @@
-v0.6.1:
-  date: 2013-05-25
-  changes:
-    - Support import in-lining vis clean-css ~1.0.4.
-v0.6.0:
-  date: 2013-04-05
-  changes:
-    - Update clean-css dependency to ~1.0.0
-v0.5.0:
-  date: 2013-03-14
-  changes:
-   - Support for 'report' option (false by default)
-v0.4.2:
-  date: 2013-03-10
-  changes:
-    - Add banner option
-    - Support clean-css keepSpecialComments
-v0.4.1:
-  date: 2013-02-17
-  changes:
-    - Update clean-css dependency to ~0.10.0
-v0.4.0:
-  date: 2013-02-15
-  changes:
-    - First official release for Grunt 0.4.0.
-v0.4.0rc7:
-  date: 2013-01-23
-  changes:
-    - Updating grunt/gruntplugin dependencies to rc7.
-    - Changing in-development grunt/gruntplugin dependency versions from tilde version ranges to specific versions.
-v0.4.0rc5:
-  date: 2013-01-09
-  changes:
-    - Updating to work with grunt v0.4.0rc5.
-    - Switching to this.files api.
-v0.3.2:
-  date: 2012-11-01
-  changes:
-    - Update clean-css dep.
-v0.3.1:
-  date: 2012-10-12
-  changes:
-    - Rename grunt-contrib-lib dep to grunt-lib-contrib.
-v0.3.0:
-  date: 2012-09-23
-  changes:
-    - Options no longer accepted from global config key.
-v0.2.0:
-  date: 2012-09-10
-  changes:
-    - Refactored from grunt-contrib into individual repo.

+ 0 - 1
node_modules/grunt-contrib-cssmin/CONTRIBUTING.md

@@ -1 +0,0 @@
-Please see the [Contributing to grunt](http://gruntjs.com/contributing) guide for information on contributing to this project.

+ 0 - 88
node_modules/grunt-contrib-cssmin/Gruntfile.js

@@ -1,88 +0,0 @@
-/*
- * grunt-contrib-cssmin
- * http://gruntjs.com/
- *
- * Copyright (c) 2012 Tim Branyen, contributors
- * Licensed under the MIT license.
- */
-
-'use strict';
-
-module.exports = function(grunt) {
-
-  // Project configuration.
-  grunt.initConfig({
-    jshint: {
-      all: [
-        'Gruntfile.js',
-        'tasks/*.js',
-        '<%= nodeunit.tests %>'
-      ],
-      options: {
-        jshintrc: '.jshintrc'
-      }
-    },
-    // Before generating any new files, remove any previously-created files.
-    clean: {
-      test: ['tmp']
-    },
-
-    // Configuration to be run (and then tested).
-    cssmin: {
-      compress: {
-        files: {
-          'tmp/style.css': ['test/fixtures/input_one.css', 'test/fixtures/input_two.css']
-        }
-      },
-      empty: {
-        files: {
-          'tmp/idontexist.css': ['test/fixtures/idontexist.css']
-        }
-      },
-      with_banner: {
-        options: {
-          banner: '/* module name - my awesome css banner */'
-        },
-        files: {
-          'tmp/with-banner.css': ['test/fixtures/input_one.css', 'test/fixtures/input_two.css']
-        }
-      },
-      remove_first_comment: {
-        options: {
-          banner: '/* custom banner */',
-          keepSpecialComments: 0
-        },
-        files: {
-          'tmp/remove_first_comment.css': ['test/fixtures/input_bannered.css']
-        }
-      },
-      inline_import: {
-        files: {
-          'tmp/inline_import.css': ['test/fixtures/input_inline_import.css', 'test/fixtures/inner/input_inline_import.css']
-        }
-      }
-    },
-
-    // Unit tests.
-    nodeunit: {
-      tests: ['test/*_test.js']
-    }
-  });
-
-  // Actually load this plugin's task(s).
-  grunt.loadTasks('tasks');
-
-  // These plugins provide necessary tasks.
-  grunt.loadNpmTasks('grunt-contrib-clean');
-  grunt.loadNpmTasks('grunt-contrib-jshint');
-  grunt.loadNpmTasks('grunt-contrib-nodeunit');
-  grunt.loadNpmTasks('grunt-contrib-internal');
-
-  // 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', ['clean', 'cssmin', 'nodeunit']);
-
-  // By default, lint and run all tests.
-  grunt.registerTask('default', ['jshint', 'test', 'build-contrib']);
-
-};

+ 0 - 22
node_modules/grunt-contrib-cssmin/LICENSE-MIT

@@ -1,22 +0,0 @@
-Copyright (c) 2012 Tim Branyen, contributors
-
-Permission is hereby granted, free of charge, to any person
-obtaining a copy of this software and associated documentation
-files (the "Software"), to deal in the Software without
-restriction, including without limitation the rights to use,
-copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the
-Software is furnished to do so, subject to the following
-conditions:
-
-The above copyright notice and this permission notice shall be
-included in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
-OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
-HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
-WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
-FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
-OTHER DEALINGS IN THE SOFTWARE.

+ 0 - 123
node_modules/grunt-contrib-cssmin/README.md

@@ -1,123 +0,0 @@
-# grunt-contrib-cssmin [![Build Status](https://secure.travis-ci.org/gruntjs/grunt-contrib-cssmin.png?branch=master)](http://travis-ci.org/gruntjs/grunt-contrib-cssmin)
-
-> Compress CSS files.
-
-
-
-## Getting Started
-This plugin requires Grunt `~0.4.0`
-
-If 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:
-
-```shell
-npm install grunt-contrib-cssmin --save-dev
-```
-
-Once the plugin has been installed, it may be enabled inside your Gruntfile with this line of JavaScript:
-
-```js
-grunt.loadNpmTasks('grunt-contrib-cssmin');
-```
-
-*This plugin was designed to work with Grunt 0.4.x. If you're still using grunt v0.3.x it's strongly recommended that [you upgrade](http://gruntjs.com/upgrading-from-0.3-to-0.4), but in case you can't please use [v0.3.2](https://github.com/gruntjs/grunt-contrib-cssmin/tree/grunt-0.3-stable).*
-
-
-
-## Cssmin task
-_Run this task with the `grunt cssmin` command._
-
-Task targets, files and options may be specified according to the grunt [Configuring tasks](http://gruntjs.com/configuring-tasks) guide.
-
-Files are compressed with [clean-css](https://github.com/GoalSmashers/clean-css).
-### Options
-
-#### banner
-
-Type: `String`
-Default: `null`
-
-Prefix the compressed source with the given banner, with a linebreak inbetween.
-
-#### keepSpecialComments
-
-Type: `String` `Number`
-Default: `'*'`
-
-To keep or remove special comments, exposing the underlying option from [clean-css](https://github.com/GoalSmashers/clean-css).. `'*'` for keeping all (default), `1` for keeping first one, `0` for removing all.
-
-#### report
-Choices: `false`, `'min'`, `'gzip'`
-Default: `false`
-
-Either do not report anything, report only minification result, or report minification and gzip results.
-This 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 ouput using `'gzip'`:
-
-```
-Original: 198444 bytes.
-Minified: 101615 bytes.
-Gzipped:  20084 bytes.
-```
-### Usage Examples
-
-#### Combine two files into one output file
-
-```js
-cssmin: {
-  combine: {
-    files: {
-      'path/to/output.css': ['path/to/input_one.css', 'path/to/input_two.css']
-    }
-  }
-}
-```
-
-#### Add a banner
-```js
-cssmin: {
-  add_banner: {
-    options: {
-      banner: '/* My minified css file */'
-    },
-    files: {
-      'path/to/output.css': ['path/to/**/*.css']
-    }
-  }
-}
-```
-
-#### Minify all contents of a release directory and add a `.min.css` extension
-```js
-cssmin: {
-  minify: {
-    expand: true,
-    cwd: 'release/css/',
-    src: ['*.css', '!*.min.css'],
-    dest: 'release/css/',
-    ext: '.min.css'
-  }
-}
-```
-
-
-## Release History
-
- * 2013-05-25   v0.6.1   Support import in-lining vis clean-css ~1.0.4.
- * 2013-04-05   v0.6.0   Update clean-css dependency to ~1.0.0
- * 2013-03-14   v0.5.0   Support for 'report' option (false by default)
- * 2013-03-10   v0.4.2   Add banner option Support clean-css keepSpecialComments
- * 2013-02-17   v0.4.1   Update clean-css dependency to ~0.10.0
- * 2013-02-15   v0.4.0   First official release for Grunt 0.4.0.
- * 2013-01-23   v0.4.0rc7   Updating grunt/gruntplugin dependencies to rc7. Changing in-development grunt/gruntplugin dependency versions from tilde version ranges to specific versions.
- * 2013-01-09   v0.4.0rc5   Updating to work with grunt v0.4.0rc5. Switching to this.files api.
- * 2012-11-01   v0.3.2   Update clean-css dep.
- * 2012-10-12   v0.3.1   Rename grunt-contrib-lib dep to grunt-lib-contrib.
- * 2012-09-23   v0.3.0   Options no longer accepted from global config key.
- * 2012-09-10   v0.2.0   Refactored from grunt-contrib into individual repo.
-
----
-
-Task submitted by [Tim Branyen](http://goingslowly.com/)
-
-*This file was generated on Sat May 25 2013 18:52:13.*

+ 0 - 40
node_modules/grunt-contrib-cssmin/docs/cssmin-examples.md

@@ -1,40 +0,0 @@
-# Usage Examples
-
-## Combine two files into one output file
-
-```js
-cssmin: {
-  combine: {
-    files: {
-      'path/to/output.css': ['path/to/input_one.css', 'path/to/input_two.css']
-    }
-  }
-}
-```
-
-## Add a banner
-```js
-cssmin: {
-  add_banner: {
-    options: {
-      banner: '/* My minified css file */'
-    },
-    files: {
-      'path/to/output.css': ['path/to/**/*.css']
-    }
-  }
-}
-```
-
-## Minify all contents of a release directory and add a `.min.css` extension
-```js
-cssmin: {
-  minify: {
-    expand: true,
-    cwd: 'release/css/',
-    src: ['*.css', '!*.min.css'],
-    dest: 'release/css/',
-    ext: '.min.css'
-  }
-}
-```

+ 0 - 30
node_modules/grunt-contrib-cssmin/docs/cssmin-options.md

@@ -1,30 +0,0 @@
-# Options
-
-## banner
-
-Type: `String`
-Default: `null`
-
-Prefix the compressed source with the given banner, with a linebreak inbetween.
-
-## keepSpecialComments
-
-Type: `String` `Number`
-Default: `'*'`
-
-To keep or remove special comments, exposing the underlying option from [clean-css](https://github.com/GoalSmashers/clean-css).. `'*'` for keeping all (default), `1` for keeping first one, `0` for removing all.
-
-## report
-Choices: `false`, `'min'`, `'gzip'`
-Default: `false`
-
-Either do not report anything, report only minification result, or report minification and gzip results.
-This 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 ouput using `'gzip'`:
-
-```
-Original: 198444 bytes.
-Minified: 101615 bytes.
-Gzipped:  20084 bytes.
-```

+ 0 - 3
node_modules/grunt-contrib-cssmin/docs/cssmin-overview.md

@@ -1,3 +0,0 @@
-Task targets, files and options may be specified according to the grunt [Configuring tasks](http://gruntjs.com/configuring-tasks) guide.
-
-Files are compressed with [clean-css](https://github.com/GoalSmashers/clean-css).

+ 0 - 1
node_modules/grunt-contrib-cssmin/docs/overview.md

@@ -1 +0,0 @@
-*This plugin was designed to work with Grunt 0.4.x. If you're still using grunt v0.3.x it's strongly recommended that [you upgrade](http://gruntjs.com/upgrading-from-0.3-to-0.4), but in case you can't please use [v0.3.2](https://github.com/gruntjs/grunt-contrib-cssmin/tree/grunt-0.3-stable).*

+ 0 - 1
node_modules/grunt-contrib-cssmin/node_modules/.bin/cleancss

@@ -1 +0,0 @@
-../clean-css/bin/cleancss

+ 0 - 5
node_modules/grunt-contrib-cssmin/node_modules/clean-css/.npmignore

@@ -1,5 +0,0 @@
-.jshintignore
-.jshintrc
-.travis.yml
-bench
-test

+ 0 - 262
node_modules/grunt-contrib-cssmin/node_modules/clean-css/History.md

@@ -1,262 +0,0 @@
-1.0.12 / 2013-07-19
-==================
-
-* Fixed issue [#121](https://github.com/GoalSmashers/clean-css/issues/121) - ability to skip `@import` processing.
-
-1.0.11 / 2013-07-08
-==================
-
-* Fixed issue [#117](https://github.com/GoalSmashers/clean-css/issues/117) - line break escaping in comments.
-
-1.0.10 / 2013-06-13
-==================
-
-* Fixed issue [#114](https://github.com/GoalSmashers/clean-css/issues/114) - comments in imported stylesheets.
-
-1.0.9 / 2013-06-11
-==================
-
-* Fixed issue [#113](https://github.com/GoalSmashers/clean-css/issues/113) - `@import` in comments.
-
-1.0.8 / 2013-06-10
-==================
-
-* Fixed issue [#112](https://github.com/GoalSmashers/clean-css/issues/112) - reducing `box-shadow` zeros.
-
-1.0.7 / 2013-06-05
-==================
-
-* Support for `@import` URLs starting with `//`.
-  By [@petetak](https://github.com/petetak).
-
-1.0.6 / 2013-06-04
-==================
-
-* Fixed issue [#110](https://github.com/GoalSmashers/clean-css/issues/110) - data URIs in URLs.
-
-1.0.5 / 2013-05-26
-==================
-
-* Fixed issue [#107](https://github.com/GoalSmashers/clean-css/issues/107) - data URIs in imported stylesheets.
-
-1.0.4 / 2013-05-23
-==================
-
-* Rewrite relative URLs in imported stylesheets.
-  By [@bluej100](https://github.com/bluej100).
-
-1.0.3 / 2013-05-20
-==================
-
-* Support alternative `@import` syntax with file name not wrapped inside `url()` statement.
-  By [@bluej100](https://github.com/bluej100).
-
-1.0.2 / 2013-04-29
-==================
-
-* Fixed issue [#97](https://github.com/GoalSmashers/clean-css/issues/97) - `--remove-empty` & FontAwesome.
-
-1.0.1 / 2013-04-08
-==================
-
-* Do not pick up `bench` and `test` while building `npm` package.
-  By [@sindresorhus](https://https://github.com/sindresorhus).
-
-1.0.0 / 2013-03-30
-==================
-
-* Fixed issue [#2](https://github.com/GoalSmashers/clean-css/issues/2) - resolving `@import` rules.
-* Fixed issue [#44](https://github.com/GoalSmashers/clean-css/issues/44) - examples in `--help`.
-* Fixed issue [#46](https://github.com/GoalSmashers/clean-css/issues/46) - preserving special characters in URLs and attributes.
-* Fixed issue [#80](https://github.com/GoalSmashers/clean-css/issues/80) - quotation in multi line strings.
-* Fixed issue [#83](https://github.com/GoalSmashers/clean-css/issues/83) - HSL to hex color conversions.
-* Fixed issue [#86](https://github.com/GoalSmashers/clean-css/issues/86) - broken `@charset` replacing.
-* Fixed issue [#88](https://github.com/GoalSmashers/clean-css/issues/88) - removes space in `! important`.
-* Fixed issue [#92](https://github.com/GoalSmashers/clean-css/issues/92) - uppercase hex to short versions.
-
-0.10.2 / 2013-03-19
-===================
-
-* Fixed issue [#79](https://github.com/GoalSmashers/clean-css/issues/79) - node.js 0.10.x compatibility.
-
-0.10.1 / 2013-02-14
-===================
-
-* Fixed issue [#66](https://github.com/GoalSmashers/clean-css/issues/66) - line breaks without extra spaces should
-  be handled correctly.
-
-0.10.0 / 2013-02-09
-===================
-
-* Switched from [optimist](https://github.com/substack/node-optimist) to
-  [commander](https://github.com/visionmedia/commander.js) for CLI processing.
-* Changed long options from `--removeempty` to `--remove-empty` and from `--keeplinebreaks` to `--keep-line-breaks`.
-* Fixed issue [#47](https://github.com/GoalSmashers/clean-css/issues/47) - commandline issues on Windows.
-* Fixed issue [#49](https://github.com/GoalSmashers/clean-css/issues/49) - remove empty selectors from media query.
-* Fixed issue [#52](https://github.com/GoalSmashers/clean-css/issues/52) - strip fraction zeros if not needed.
-* Fixed issue [#58](https://github.com/GoalSmashers/clean-css/issues/58) - remove colon where possible.
-* Fixed issue [#59](https://github.com/GoalSmashers/clean-css/issues/59) - content property handling.
-* Fixed performance issue with replacing multiple `@charset` declarations and issue
-  with line break after `@charset` when using `keepLineBreaks` option. By [@rrjaime](https://github.com/rrjamie).
-* Removed Makefile in favor to `npm run` commands (e.g. `make check` -> `npm run check`).
-
-0.9.1 / 2012-12-19
-==================
-
-* Fixed issue [#37](https://github.com/GoalSmashers/clean-css/issues/37) - converting
-  `white` and other colors in class names (reported by [@malgorithms](https://github.com/malgorithms)).
-
-0.9.0 / 2012-12-15
-==================
-
-* Added stripping quotation from font names (if possible).
-* Added stripping quotation from `@keyframes` declaration, `animation` and
-  `animation-name` property.
-* Added stripping quotations from attributes' value (e.g. `[data-target='x']`).
-* Added better hex->name and name->hex color shortening.
-* Added `font: normal` and `font: bold` shortening the same way as `font-weight` is.
-* Refactored shorthand selectors and added `border-radius`, `border-style`
-  and `border-color` shortening.
-* Added `margin`, `padding` and `border-width` shortening.
-* Added removing line break after commas.
-* Fixed removing whitespace inside media query definition.
-* Added removing line breaks after a comma, so all declarations are one-liners now.
-* Speed optimizations (~10% despite many new features).
-* Added [JSHint](https://github.com/jshint/jshint/) validation rules via `make check`.
-
-0.8.3 / 2012-11-29
-==================
-
-* Fixed HSL/HSLA colors processing.
-
-0.8.2 / 2012-10-31
-==================
-
-* Fixed shortening hex colors and their relation to hashes in URLs.
-* Cleanup by [@XhmikosR](https://github.com/XhmikosR).
-
-0.8.1 / 2012-10-28
-==================
-
-* Added better zeros processing for `rect(...)` syntax (clip property).
-
-0.8.0 / 2012-10-21
-==================
-
-* Added removing URLs quotation if possible.
-* Rewrote breaks processing.
-* Added `keepBreaks`/`-b` option to keep line breaks in the minimized file.
-* Reformatted [lib/clean.js](/lib/clean.js) so it's easier to follow the rules.
-* Minimized test data is now minimized with line breaks so it's easier to
-  compare the changes line by line.
-
-0.7.0 / 2012-10-14
-==================
-
-* Added stripping special comments to CLI (`--s0` and `--s1` options).
-* Added stripping special comments to programmatic interface
-  (`keepSpecialComments` option).
-
-0.6.0 / 2012-08-05
-==================
-
-* Full Windows support with tests (./test.bat).
-
-0.5.0 / 2012-08-02
-==================
-
-* Made path to vows local.
-* Explicit node.js 0.6 requirement.
-
-0.4.2 / 2012-06-28
-==================
-
-* Updated binary `-v` option (version).
-* Updated binary to output help when no options given (but not in piped mode).
-* Added binary tests.
-
-0.4.1 / 2012-06-10
-==================
-
-* Fixed stateless mode where calling `CleanCSS#process` directly was giving
-  errors (reported by [@facelessuser](https://github.com/facelessuser)).
-
-0.4.0 / 2012-06-04
-==================
-
-* Speed improvements up to 4x thanks to the rewrite of comments and CSS' content
-  processing.
-* Stripping empty CSS tags is now optional (see [bin/cleancss](/bin/cleancss) for details).
-* Improved debugging mode (see [test/bench.js](/test/bench.js))
-* Added `make bench` for a one-pass benchmark.
-
-0.3.3 / 2012-05-27
-==================
-
-* Fixed tests, [package.json](/package.json) for development, and regex
-  for removing empty declarations (thanks to [@vvo](https://github.com/vvo)).
-
-0.3.2 / 2012-01-17
-==================
-
-* Fixed output method under node.js 0.6 which incorrectly tried to close
-  `process.stdout`.
-
-0.3.1 / 2011-12-16
-==================
-
-* Fixed cleaning up `0 0 0 0` expressions.
-
-0.3.0 / 2011-11-29
-==================
-
-* Clean-css requires node.js 0.4.0+ to run.
-* Removed node.js's 0.2.x 'sys' package dependency
-  (thanks to [@jmalonzo](https://github.com/jmalonzo) for a patch).
-
-0.2.6 / 2011-11-27
-==================
-
-* Fixed expanding `+` signs in `calc()` when mixed up with adjacent `+` selector.
-
-0.2.5 / 2011-11-27
-==================
-
-* Fixed issue with cleaning up spaces inside `calc`/`-moz-calc` declarations
-  (thanks to [@cvan](https://github.com/cvan) for reporting it).
-* Fixed converting `#f00` to `red` in borders and gradients.
-
-0.2.4 / 2011-05-25
-==================
-
-* Fixed problem with expanding `none` to `0` in partial/full background
-  declarations.
-* Fixed including clean-css library from binary (global to local).
-
-0.2.3 / 2011-04-18
-==================
-
-* Fixed problem with optimizing IE filters.
-
-0.2.2 / 2011-04-17
-==================
-
-* Fixed problem with space before color in `border` property.
-
-0.2.1 / 2011-03-19
-==================
-
-* Added stripping space before `!important` keyword.
-* Updated repository location and author information in [package.json](/package.json).
-
-0.2.0 / 2011-03-02
-==================
-
-* Added options parsing via optimist.
-* Changed code inclusion (thus the version bump).
-
-0.1.0 / 2011-02-27
-==================
-
-* First version of clean-css library.
-* Implemented all basic CSS transformations.

+ 0 - 19
node_modules/grunt-contrib-cssmin/node_modules/clean-css/LICENSE

@@ -1,19 +0,0 @@
-Copyright (C) 2011-2013 GoalSmashers.com
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is furnished
-to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
-OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
-IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
-DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
-ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
-DEALINGS IN THE SOFTWARE.

+ 0 - 131
node_modules/grunt-contrib-cssmin/node_modules/clean-css/README.md

@@ -1,131 +0,0 @@
-[![NPM version](https://badge.fury.io/js/clean-css.png)](http://badge.fury.io/js/clean-css)
-[![Build Status](https://secure.travis-ci.org/GoalSmashers/clean-css.png)](http://travis-ci.org/GoalSmashers/clean-css)
-[![Dependency Status](https://gemnasium.com/GoalSmashers/clean-css.png)](https://gemnasium.com/GoalSmashers/clean-css)
-
-## What is clean-css?
-
-Clean-css is a [node.js](http://nodejs.org/) library for minifying CSS files.
-It does the same job as YUI Compressor's CSS minifier, but much faster thanks
-to many speed optimizations and node.js' V8 engine.
-
-
-## Usage
-
-### What are the requirements?
-
-```
-node.js 0.6.0+ on UN*X (fully tested on OS X 10.6+ and CentOS)
-node.js 0.8.0+ on Windows
-```
-
-### How to install clean-css?
-
-```
-npm install clean-css
-```
-
-### How to use clean-css CLI?
-
-Clean-css accepts the following command line arguments (please make sure
-you use `<source-file>` as the very last argument to avoid potential issues):
-
-```
-cleancss [options] <source-file>
-
--h, --help                  Output usage information
--v, --version               Output the version number
--e, --remove-empty          Remove empty declarations (e.g. a{})
--b, --keep-line-breaks      Keep line breaks
---s0                        Remove all special comments (i.e. /*! special comment */)
---s1                        Remove all special comments but the first one
--r, --root [root-path]      Set a root path to which resolve absolute @import rules
--o, --output [output-file]  Use [output-file] as output instead of STDOUT
-```
-
-#### Examples:
-
-To minify a **public.css** file into **public-min.css** do:
-
-```
-cleancss -o public-min.css public.css
-```
-
-To minify the same **public.css** into the standard output skip the `-o` parameter:
-
-```
-cleancss public.css
-```
-
-More likely you would like to concatenate a couple of files.
-If you are on a Unix-like system:
-
-```bash
-cat one.css two.css three.css | cleancss -o merged-and-minified.css
-```
-
-On Windows:
-
-```bat
-type one.css two.css three.css | cleancss -o merged-and-minified.css
-```
-
-Or even gzip the result at once:
-
-```bash
-cat one.css two.css three.css | cleancss | gzip -9 -c > merged-minified-and-gzipped.css.gz
-```
-
-### How to use clean-css programmatically?
-
-```js
-var cleanCSS = require('clean-css');
-var source = "a{font-weight:bold;}";
-var minimized = cleanCSS.process(source);
-```
-
-Process method accepts a hash as a second parameter, i.e.,
-`cleanCSS.process(source, options)` with the following options available:
-
-* `keepSpecialComments` - `*` for keeping all (default), `1` for keeping first one, `0` for removing all
-* `keepBreaks` - whether to keep line breaks (default is false)
-* `removeEmpty` - whether to remove empty elements (default is false)
-* `debug` - turns on debug mode measuring time spent on cleaning up
-  (run `npm run bench` to see example)
-* `root` - path with which to resolve absolute `@import` rules
-* `relativeTo` - path with which to resolve relative `@import` rules
-
-### What are the clean-css' dev commands?
-
-First clone the source, then run:
-
-* `npm run bench` for clean-css benchmarks (see [test/bench.js](/test/bench.js) for details)
-* `npm run check` to check JS sources with [JSHint](https://github.com/jshint/jshint/)
-* `npm test` for the test suite
-
-### How do you preserve a comment block?
-
-Use the `/*!` notation instead of the standard one `/*`:
-
-```css
-/*!
-  Important comments included in minified output.
-*/
-```
-
-
-## Acknowledgments
-
-* Vincent Voyer ([@vvo](https://github.com/vvo)) for a patch with better
-  empty element regex and for inspiring us to do many performance improvements
-  in 0.4 release.
-* Isaac ([@facelessuser](https://github.com/facelessuser)) for pointing out
-  a flaw in clean-css' stateless mode.
-* Jan Michael Alonzo ([@jmalonzo](https://github.com/jmalonzo)) for a patch
-  removing node.js's old 'sys' package.
-* [@XhmikosR](https://github.com/XhmikosR) for suggesting new features
-  (option to remove special comments and strip out URLs quotation) and pointing
-  out numerous improvements (JSHint, media queries).
-
-## License
-
-Clean-css is released under the [MIT License](/LICENSE).

+ 0 - 101
node_modules/grunt-contrib-cssmin/node_modules/clean-css/bin/cleancss

@@ -1,101 +0,0 @@
-#!/usr/bin/env node
-
-var util = require('util');
-var fs = require('fs');
-var path = require('path');
-var CleanCSS = require('../index');
-
-var commands = require('commander');
-
-var packageConfig = fs.readFileSync(path.join(path.dirname(fs.realpathSync(process.argv[1])), '../package.json'));
-var buildVersion = JSON.parse(packageConfig).version;
-
-var isWindows = process.platform == 'win32';
-
-// Specify commander options to parse command line params correctly
-commands
-  .version(buildVersion, '-v, --version')
-  .usage('[options] <source-file>')
-  .option('-e, --remove-empty', 'Remove empty declarations (e.g. a{})')
-  .option('-b, --keep-line-breaks', 'Keep line breaks')
-  .option('--s0', 'Remove all special comments (i.e. /*! special comment */)')
-  .option('--s1', 'Remove all special comments but the first one')
-  .option('-r, --root [root-path]', 'Set a root path to which resolve absolute @import rules')
-  .option('-o, --output [output-file]', 'Use [output-file] as output instead of stdout')
-  .option('-s, --skip-import', 'Disable the @import processing');
-
-commands.on('--help', function() {
-  util.puts('  Examples:\n');
-  util.puts('    %> cleancss one.css');
-  util.puts('    %> cleancss -o one-min.css one.css');
-  if (isWindows) {
-    util.puts('    %> type one.css two.css three.css | cleancss -o merged-and-minified.css');
-  } else {
-    util.puts('    %> cat one.css two.css three.css | cleancss -o merged-and-minified.css');
-    util.puts('    %> cat one.css two.css three.css | cleancss | gzip -9 -c > merged-minified-and-gzipped.css.gz');
-  }
-  util.puts('');
-  process.exit();
-});
-
-commands.parse(process.argv);
-
-var options = {
-  source: null,
-  target: null
-};
-var cleanOptions = {};
-var fromStdin = !process.env['__DIRECT__'] && !process.stdin.isTTY;
-
-// If no sensible data passed in just print help and exit
-if (!fromStdin && commands.args.length == 0) {
-  commands.outputHelp();
-  return 0;
-}
-
-// Now coerce commands into CleanCSS configuration...
-if (commands.output)
-  options.target = commands.output;
-if (commands.removeEmpty)
-  cleanOptions.removeEmpty = true;
-if (commands.keepLineBreaks)
-  cleanOptions.keepBreaks = true;
-if (commands.s1)
-  cleanOptions.keepSpecialComments = 1;
-if (commands.s0)
-  cleanOptions.keepSpecialComments = 0;
-if (commands.root)
-  cleanOptions.root = commands.root;
-if (commands.skipImport)
-  cleanOptions.processImport = false;
-if (commands.args.length > 0) {
-  var source = commands.args[0];
-  options.source = source;
-  cleanOptions.relativeTo = path.dirname(path.resolve(source));
-}
-
-// ... and do the magic!
-if (options.source) {
-  fs.readFile(options.source, 'utf8', function(error, text) {
-    if (error)
-      throw error;
-    output(CleanCSS.process(text, cleanOptions));
-  });
-} else {
-  var stdin = process.openStdin();
-  stdin.setEncoding('utf-8');
-  var text = '';
-  stdin.on('data', function(chunk) {
-    text += chunk;
-  });
-  stdin.on('end', function() {
-    output(CleanCSS.process(text, cleanOptions));
-  });
-}
-
-function output(cleaned) {
-  if (options.target)
-    fs.writeFileSync(options.target, cleaned, 'utf8');
-  else
-    process.stdout.write(cleaned);
-};

+ 0 - 1
node_modules/grunt-contrib-cssmin/node_modules/clean-css/index.js

@@ -1 +0,0 @@
-module.exports = require('./lib/clean');

+ 0 - 601
node_modules/grunt-contrib-cssmin/node_modules/clean-css/lib/clean.js

@@ -1,601 +0,0 @@
-/**
- * Clean-css - https://github.com/GoalSmashers/clean-css
- * Released under the terms of MIT license
- *
- * Copyright (C) 2011-2013 GoalSmashers.com
- */
-
-var fs = require('fs');
-var path = require('path');
-var existsSync = fs.existsSync || path.existsSync;
-
-var CleanCSS = {
-  colors: {
-    toHex: {
-      aqua: '#0ff',
-      black: '#000',
-      blue: '#00f',
-      fuchsia: '#f0f',
-      white: '#fff',
-      yellow: '#ff0'
-    },
-    toName: {
-      '#000080': 'navy',
-      '#008000': 'green',
-      '#008080': 'teal',
-      '#800000': 'maroon',
-      '#800080': 'purple',
-      '#808000': 'olive',
-      '#808080': 'gray',
-      '#c0c0c0': 'silver',
-      '#f00': 'red'
-    }
-  },
-
-  process: function(data, options) {
-    var context = {
-      specialComments: [],
-      freeTextBlocks: [],
-      urlBlocks: []
-    };
-    var replace = function() {
-      if (typeof arguments[0] == 'function')
-        arguments[0]();
-      else
-        data = data.replace.apply(data, arguments);
-    };
-    var lineBreak = process.platform == 'win32' ? '\r\n' : '\n';
-    this.lineBreak = lineBreak;
-
-    options = options || {};
-
-    // * - leave all important comments
-    // 1 - leave first important comment only
-    // 0 - strip all important comments
-    options.keepSpecialComments = 'keepSpecialComments' in options ?
-      options.keepSpecialComments :
-      '*';
-
-    options.keepBreaks = options.keepBreaks || false;
-
-    //active by default
-    if (options.processImport === undefined) {
-      options.processImport = true;
-    }
-
-    // replace function
-    if (options.debug) {
-      var originalReplace = replace;
-      replace = function(pattern, replacement) {
-        var name = typeof pattern == 'function' ?
-          /function (\w+)\(/.exec(pattern.toString())[1] :
-          pattern;
-
-        var start = process.hrtime();
-        originalReplace(pattern, replacement);
-
-        var itTook = process.hrtime(start);
-        console.log('%d ms: ' + name, 1000 * itTook[0] + itTook[1] / 1000000.0);
-      };
-    }
-
-    var removeComments = function() {
-      replace(function stripComments() {
-        data = CleanCSS._stripComments(context, data);
-      });
-    };
-
-    removeComments();
-
-    // replace all escaped line breaks
-    replace(/\\(\r\n|\n)/mg, '');
-
-    if (options.processImport) {
-      // inline all imports
-      replace(function inlineImports() {
-        data = CleanCSS._inlineImports(data, {
-          root: options.root || process.cwd(),
-          relativeTo: options.relativeTo
-        });
-      });
-
-      // strip comments with inlined imports
-      if (data.indexOf('/*') > -1) {
-        removeComments();
-      }
-    }
-
-    // strip parentheses in urls if possible (no spaces inside)
-    replace(/url\((['"])([^\)]+)['"]\)/g, function(match, quote, url) {
-      if (url.match(/[ \t]/g) !== null || url.indexOf('data:') === 0)
-        return 'url(' + quote + url + quote + ')';
-      else
-        return 'url(' + url + ')';
-    });
-
-    // strip parentheses in animation & font names
-    replace(/(animation|animation\-name|font|font\-family):([^;}]+)/g, function(match, propertyName, fontDef) {
-      return propertyName + ':' + fontDef.replace(/['"]([\w\-]+)['"]/g, '$1');
-    });
-
-    // strip parentheses in @keyframes
-    replace(/@(\-moz\-|\-o\-|\-webkit\-)?keyframes ([^{]+)/g, function(match, prefix, name) {
-      prefix = prefix || '';
-      return '@' + prefix + 'keyframes ' + (name.indexOf(' ') > -1 ? name : name.replace(/['"]/g, ''));
-    });
-
-    // IE shorter filters, but only if single (IE 7 issue)
-    replace(/progid:DXImageTransform\.Microsoft\.(Alpha|Chroma)(\([^\)]+\))([;}'"])/g, function(match, filter, args, suffix) {
-      return filter.toLowerCase() + args + suffix;
-    });
-
-    // strip parentheses in attribute values
-    replace(/\[([^\]]+)\]/g, function(match, content) {
-      var eqIndex = content.indexOf('=');
-      if (eqIndex < 0 && content.indexOf('\'') < 0 && content.indexOf('"') < 0)
-        return match;
-
-      var key = content.substring(0, eqIndex);
-      var value = content.substring(eqIndex + 1, content.length);
-
-      if (/^['"](?:[a-zA-Z][a-zA-Z\d\-_]+)['"]$/.test(value))
-        return '[' + key + '=' + value.substring(1, value.length - 1) + ']';
-      else
-        return match;
-    });
-
-    // replace all free text content with a placeholder
-    replace(function stripFreeText() {
-      data = CleanCSS._stripFreeText(context, data);
-    });
-
-    // replace url(...) with a placeholder
-    replace(function stripUrls() {
-      data = CleanCSS._stripUrls(context, data);
-    });
-
-    // line breaks
-    if (!options.keepBreaks)
-      replace(/[\r]?\n/g, ' ');
-
-    // multiple whitespace
-    replace(/[\t ]+/g, ' ');
-
-    // multiple semicolons (with optional whitespace)
-    replace(/;[ ]?;+/g, ';');
-
-    // multiple line breaks to one
-    replace(/ (?:\r\n|\n)/g, lineBreak);
-    replace(/(?:\r\n|\n)+/g, lineBreak);
-
-    // remove spaces around selectors
-    replace(/ ([+~>]) /g, '$1');
-
-    // remove extra spaces inside content
-    replace(/([!\(\{\}:;=,\n]) /g, '$1');
-    replace(/ ([!\)\{\};=,\n])/g, '$1');
-    replace(/(?:\r\n|\n)\}/g, '}');
-    replace(/([\{;,])(?:\r\n|\n)/g, '$1');
-    replace(/ :([^\{\};]+)([;}])/g, ':$1$2');
-
-    // restore spaces inside IE filters (IE 7 issue)
-    replace(/progid:[^(]+\(([^\)]+)/g, function(match) {
-      return match.replace(/,/g, ', ');
-    });
-
-    // trailing semicolons
-    replace(/;\}/g, '}');
-
-    // hsl to hex colors
-    replace(/hsl\((\d+),(\d+)%?,(\d+)%?\)/g, function(match, hue, saturation, lightness) {
-      var asRgb = CleanCSS._hslToRgb(hue, saturation, lightness);
-      var redAsHex = asRgb[0].toString(16);
-      var greenAsHex = asRgb[1].toString(16);
-      var blueAsHex = asRgb[2].toString(16);
-
-      return '#' +
-        ((redAsHex.length == 1 ? '0' : '') + redAsHex) +
-        ((greenAsHex.length == 1 ? '0' : '') + greenAsHex) +
-        ((blueAsHex.length == 1 ? '0' : '') + blueAsHex);
-    });
-
-    // rgb to hex colors
-    replace(/rgb\((\d+),(\d+),(\d+)\)/g, function(match, red, green, blue) {
-      var redAsHex = parseInt(red, 10).toString(16);
-      var greenAsHex = parseInt(green, 10).toString(16);
-      var blueAsHex = parseInt(blue, 10).toString(16);
-
-      return '#' +
-        ((redAsHex.length == 1 ? '0' : '') + redAsHex) +
-        ((greenAsHex.length == 1 ? '0' : '') + greenAsHex) +
-        ((blueAsHex.length == 1 ? '0' : '') + blueAsHex);
-    });
-
-    // long hex to short hex colors
-    replace(/([,: \(])#([0-9a-f]{6})/gi, function(match, prefix, color) {
-      if (color[0] == color[1] && color[2] == color[3] && color[4] == color[5])
-        return prefix + '#' + color[0] + color[2] + color[4];
-      else
-        return prefix + '#' + color;
-    });
-
-    // replace color name with hex values if shorter (or the other way around)
-    ['toHex', 'toName'].forEach(function(type) {
-      var pattern = '(' + Object.keys(CleanCSS.colors[type]).join('|') + ')';
-      var colorSwitcher = function(match, prefix, colorValue, suffix) {
-        return prefix + CleanCSS.colors[type][colorValue.toLowerCase()] + suffix;
-      };
-      replace(new RegExp('([ :,\\(])' + pattern + '([;\\}!\\) ])', 'ig'), colorSwitcher);
-      replace(new RegExp('(,)' + pattern + '(,)', 'ig'), colorSwitcher);
-    });
-
-    // replace font weight with numerical value
-    replace(/(font|font\-weight):(normal|bold)([ ;\}!])/g, function(match, property, weight, suffix) {
-      if (weight == 'normal')
-        return property + ':400' + suffix;
-      else if (weight == 'bold')
-        return property + ':700' + suffix;
-      else
-        return match;
-    });
-
-    // zero + unit to zero
-    replace(/(\s|:|,)0(?:px|em|ex|cm|mm|in|pt|pc|%)/g, '$1' + '0');
-    replace(/rect\(0(?:px|em|ex|cm|mm|in|pt|pc|%)/g, 'rect(0');
-
-    // fraction zeros removal
-    replace(/\.([1-9]*)0+(\D)/g, function(match, nonZeroPart, suffix) {
-      return (nonZeroPart ? '.' : '') + nonZeroPart + suffix;
-    });
-
-    // restore 0% in hsl/hsla
-    replace(/(hsl|hsla)\(([^\)]+)\)/g, function(match, colorFunction, colorDef) {
-      var tokens = colorDef.split(',');
-      if (tokens[1] == '0')
-        tokens[1] = '0%';
-      if (tokens[2] == '0')
-        tokens[2] = '0%';
-      return colorFunction + '(' + tokens.join(',') + ')';
-    });
-
-    // none to 0
-    replace(/(border|border-top|border-right|border-bottom|border-left|outline):none/g, '$1:0');
-
-    // background:none to 0
-    replace(/(background):none([;}])/g, '$1:0$2');
-
-    // multiple zeros into one
-    replace(/box-shadow:0 0 0 0([^\.])/g, 'box-shadow:0 0$1');
-    replace(/:0 0 0 0([^\.])/g, ':0$1');
-    replace(/([: ,=\-])0\.(\d)/g, '$1.$2');
-
-    // shorthand notations
-    var shorthandRegex = function(repeats, hasSuffix) {
-      var pattern = '(padding|margin|border\\-width|border\\-color|border\\-style|border\\-radius):';
-      for (var i = 0; i < repeats; i++) {
-        pattern += '([\\d\\w\\.%#\\(\\),]+)' + (i < repeats - 1 ? ' ' : '');
-      }
-      return new RegExp(pattern + (hasSuffix ? '([;}])' : ''), 'g');
-    };
-
-    // 4 size values into less
-    replace(shorthandRegex(4), function(match, property, size1, size2, size3, size4) {
-      if (size1 === size2 && size1 === size3 && size1 === size4)
-        return property + ':' + size1;
-      else if (size1 === size3 && size2 === size4)
-        return property + ':' + size1 + ' ' + size2;
-      else if (size2 === size4)
-        return property + ':' + size1 + ' ' + size2 + ' ' + size3;
-      else
-        return match;
-    });
-
-    // 3 size values into less
-    replace(shorthandRegex(3, true), function(match, property, size1, size2, size3, suffix) {
-      if (size1 === size2 && size1 === size3)
-        return property + ':' + size1 + suffix;
-      else if (size1 === size3)
-        return property + ':' + size1 + ' ' + size2 + suffix;
-      else
-        return match;
-    });
-
-    // same 2 values into one
-    replace(shorthandRegex(2, true), function(match, property, size1, size2, suffix) {
-      if (size1 === size2)
-        return property + ':' + size1 + suffix;
-      else
-        return match;
-    });
-
-    // restore rect(...) zeros syntax for 4 zeros
-    replace(/rect\(\s?0(\s|,)0[ ,]0[ ,]0\s?\)/g, 'rect(0$10$10$10)');
-
-    // remove universal selector when not needed (*#id, *.class etc)
-    replace(/\*([\.#:\[])/g, '$1');
-
-    // Restore spaces inside calc back
-    replace(/calc\([^\}]+\}/g, function(match) {
-      return match.replace(/\+/g, ' + ');
-    });
-
-    // Restore urls, content content, and special comments (in that order)
-    replace(/__URL__/g, function() {
-      return context.urlBlocks.shift();
-    });
-
-    replace(/__CSSFREETEXT__/g, function() {
-      return context.freeTextBlocks.shift();
-    });
-
-    var specialCommentsCount = context.specialComments.length;
-    var breakSuffix = options.keepBreaks ? lineBreak : '';
-    replace(new RegExp('__CSSCOMMENT__(' + lineBreak + '| )?', 'g'), function() {
-      switch (options.keepSpecialComments) {
-        case '*':
-          return context.specialComments.shift() + breakSuffix;
-        case 1:
-          return context.specialComments.length == specialCommentsCount ?
-            context.specialComments.shift() + breakSuffix :
-            '';
-        case 0:
-          return '';
-      }
-    });
-
-    // move first charset to the beginning
-    replace(function moveCharset() {
-      // get first charset in stylesheet
-      var match = data.match(/@charset [^;]+;/);
-      var firstCharset = match ? match[0] : null;
-      if (!firstCharset)
-        return;
-
-      // reattach first charset and remove all subsequent
-      data = firstCharset +
-        (options.keepBreaks ? lineBreak : '') +
-        data.replace(new RegExp('@charset [^;]+;(' + lineBreak + ')?', 'g'), '');
-    });
-
-    if (options.removeEmpty) {
-      // empty elements
-      replace(/[^\{\}]+\{\}/g, '');
-
-      // empty @media declarations
-      replace(/@media [^\{]+\{\}/g, '');
-    }
-
-    // trim spaces at beginning and end
-    return data.trim();
-  },
-
-  // Inlines all imports taking care of repetitions, unknown files, and cilcular dependencies
-  _inlineImports: function(data, options) {
-    var tempData = [];
-    var nextStart = 0;
-    var nextEnd = 0;
-    var cursor = 0;
-
-    options.relativeTo = options.relativeTo || options.root;
-    options._baseRelativeTo = options._baseRelativeTo || options.relativeTo;
-    options.visited = options.visited || [];
-
-    var inlinedFile = function() {
-      var importedFile = data
-        .substring(data.indexOf(' ', nextStart) + 1, nextEnd)
-        .replace(/^url\(/, '')
-        .replace(/\)$/, '')
-        .replace(/['"]/g, '');
-
-      if (/^(http|https):\/\//.test(importedFile) || /^\/\//.test(importedFile))
-        return '@import url(' + importedFile + ');';
-
-      var relativeTo = importedFile[0] == '/' ?
-        options.root :
-        options.relativeTo;
-
-      var fullPath = path.resolve(path.join(relativeTo, importedFile));
-
-      if (existsSync(fullPath) && fs.statSync(fullPath).isFile() && options.visited.indexOf(fullPath) == -1) {
-        options.visited.push(fullPath);
-
-        var importedData = fs.readFileSync(fullPath, 'utf8');
-        var importRelativeTo = path.dirname(fullPath);
-        importedData = CleanCSS._rebaseRelativeURLs(importedData, importRelativeTo, options._baseRelativeTo);
-        return CleanCSS._inlineImports(importedData, {
-          root: options.root,
-          relativeTo: importRelativeTo,
-          _baseRelativeTo: options.baseRelativeTo,
-          visited: options.visited
-        });
-      } else {
-        return '';
-      }
-    };
-
-    for (; nextEnd < data.length; ) {
-      nextStart = data.indexOf('@import', cursor);
-      if (nextStart == -1)
-        break;
-
-      nextEnd = data.indexOf(';', nextStart);
-      if (nextEnd == -1)
-        break;
-
-      tempData.push(data.substring(cursor, nextStart));
-      tempData.push(inlinedFile());
-      cursor = nextEnd + 1;
-    }
-
-    return tempData.length > 0 ?
-      tempData.join('') + data.substring(cursor, data.length) :
-      data;
-  },
-
-  _rebaseRelativeURLs: function(data, fromBase, toBase) {
-    var tempData = [];
-    var nextStart = 0;
-    var nextEnd = 0;
-    var cursor = 0;
-
-    for (; nextEnd < data.length; ) {
-      nextStart = data.indexOf('url(', nextEnd);
-      if (nextStart == -1)
-        break;
-      nextEnd = data.indexOf(')', nextStart + 4);
-      if (nextEnd == -1)
-        break;
-
-      tempData.push(data.substring(cursor, nextStart));
-      var url = data.substring(nextStart + 4, nextEnd).replace(/['"]/g, '');
-      if (url[0] != '/' && url.indexOf('data:') !== 0 && url.substring(url.length - 4) != '.css') {
-        url = path.relative(toBase, path.join(fromBase, url)).replace(/\\/g, '/');
-      }
-      tempData.push('url(' + url + ')');
-      cursor = nextEnd + 1;
-    }
-
-    return tempData.length > 0 ?
-      tempData.join('') + data.substring(cursor, data.length) :
-      data;
-  },
-
-  // Strip special comments (/*! ... */) by replacing them by __CSSCOMMENT__ marker
-  // for further restoring. Plain comments are removed. It's done by scanning datq using
-  // String#indexOf scanning instead of regexps to speed up the process.
-  _stripComments: function(context, data) {
-    var tempData = [];
-    var nextStart = 0;
-    var nextEnd = 0;
-    var cursor = 0;
-
-    for (; nextEnd < data.length; ) {
-      nextStart = data.indexOf('/*', nextEnd);
-      nextEnd = data.indexOf('*/', nextStart + 2);
-      if (nextStart == -1 || nextEnd == -1)
-        break;
-
-      tempData.push(data.substring(cursor, nextStart));
-      if (data[nextStart + 2] == '!') {
-        // in case of special comments, replace them with a placeholder
-        context.specialComments.push(data.substring(nextStart, nextEnd + 2));
-        tempData.push('__CSSCOMMENT__');
-      }
-      cursor = nextEnd + 2;
-    }
-
-    return tempData.length > 0 ?
-      tempData.join('') + data.substring(cursor, data.length) :
-      data;
-  },
-
-  // Strip content tags by replacing them by the __CSSFREETEXT__
-  // marker for further restoring. It's done via string scanning
-  // instead of regexps to speed up the process.
-  _stripFreeText: function(context, data) {
-    var tempData = [];
-    var nextStart = 0;
-    var nextEnd = 0;
-    var cursor = 0;
-    var matchedParenthesis = null;
-    var singleParenthesis = "'";
-    var doubleParenthesis = '"';
-    var dataLength = data.length;
-
-    for (; nextEnd < data.length; ) {
-      var nextStartSingle = data.indexOf(singleParenthesis, nextEnd + 1);
-      var nextStartDouble = data.indexOf(doubleParenthesis, nextEnd + 1);
-
-      if (nextStartSingle == -1)
-        nextStartSingle = dataLength;
-      if (nextStartDouble == -1)
-        nextStartDouble = dataLength;
-
-      if (nextStartSingle < nextStartDouble) {
-        nextStart = nextStartSingle;
-        matchedParenthesis = singleParenthesis;
-      } else {
-        nextStart = nextStartDouble;
-        matchedParenthesis = doubleParenthesis;
-      }
-
-      if (nextStart == -1)
-        break;
-
-      nextEnd = data.indexOf(matchedParenthesis, nextStart + 1);
-      if (nextStart == -1 || nextEnd == -1)
-        break;
-
-      tempData.push(data.substring(cursor, nextStart));
-      tempData.push('__CSSFREETEXT__');
-      context.freeTextBlocks.push(data.substring(nextStart, nextEnd + 1));
-      cursor = nextEnd + 1;
-    }
-
-    return tempData.length > 0 ?
-      tempData.join('') + data.substring(cursor, data.length) :
-      data;
-  },
-
-  // Strip urls by replacing them by the __URL__
-  // marker for further restoring. It's done via string scanning
-  // instead of regexps to speed up the process.
-  _stripUrls: function(context, data) {
-    var nextStart = 0;
-    var nextEnd = 0;
-    var cursor = 0;
-    var tempData = [];
-
-    for (; nextEnd < data.length; ) {
-      nextStart = data.indexOf('url(', nextEnd);
-      if (nextStart == -1)
-        break;
-
-      nextEnd = data.indexOf(')', nextStart);
-
-      tempData.push(data.substring(cursor, nextStart));
-      tempData.push('__URL__');
-      context.urlBlocks.push(data.substring(nextStart, nextEnd + 1));
-      cursor = nextEnd + 1;
-    }
-
-    return tempData.length > 0 ?
-      tempData.join('') + data.substring(cursor, data.length) :
-      data;
-  },
-
-  // HSL to RGB converter. Both methods taken and adapted from:
-  // http://mjijackson.com/2008/02/rgb-to-hsl-and-rgb-to-hsv-color-model-conversion-algorithms-in-javascript
-  _hslToRgb: function(h, s, l) {
-    var r, g, b;
-
-    h = ~~h / 360;
-    s = ~~s / 100;
-    l = ~~l / 100;
-
-    if (s === 0) {
-      r = g = b = l; // achromatic
-    } else {
-      var q = l < 0.5 ?
-        l * (1 + s) :
-        l + s - l * s;
-      var p = 2 * l - q;
-      r = this._hueToRgb(p, q, h + 1/3);
-      g = this._hueToRgb(p, q, h);
-      b = this._hueToRgb(p, q, h - 1/3);
-    }
-
-    return [~~(r * 255), ~~(g * 255), ~~(b * 255)];
-  },
-
-  _hueToRgb: function(p, q, t) {
-    if (t < 0) t += 1;
-    if (t > 1) t -= 1;
-    if (t < 1/6) return p + (q - p) * 6 * t;
-    if (t < 1/2) return q;
-    if (t < 2/3) return p + (q - p) * (2/3 - t) * 6;
-    return p;
-  }
-};
-
-module.exports = CleanCSS;

+ 0 - 174
node_modules/grunt-contrib-cssmin/node_modules/clean-css/node_modules/commander/History.md

@@ -1,174 +0,0 @@
-
-1.3.2 / 2013-07-18 
-==================
-
- * add support for sub-commands to co-exist with the original command
-
-1.3.1 / 2013-07-18 
-==================
-
- * add quick .runningCommand hack so you can opt-out of other logic when running a sub command
-
-1.3.0 / 2013-07-09 
-==================
-
- * add EACCES error handling
- * fix sub-command --help
-
-1.2.0 / 2013-06-13 
-==================
-
- * allow "-" hyphen as an option argument
- * support for RegExp coercion
-
-1.1.1 / 2012-11-20 
-==================
-
-  * add more sub-command padding
-  * fix .usage() when args are present. Closes #106
-
-1.1.0 / 2012-11-16 
-==================
-
-  * add git-style executable subcommand support. Closes #94
-
-1.0.5 / 2012-10-09 
-==================
-
-  * fix `--name` clobbering. Closes #92
-  * fix examples/help. Closes #89
-
-1.0.4 / 2012-09-03 
-==================
-
-  * add `outputHelp()` method.
-
-1.0.3 / 2012-08-30 
-==================
-
-  * remove invalid .version() defaulting
-
-1.0.2 / 2012-08-24 
-==================
-
-  * add `--foo=bar` support [arv]
-  * fix password on node 0.8.8. Make backward compatible with 0.6 [focusaurus]
-
-1.0.1 / 2012-08-03 
-==================
-
-  * fix issue #56
-  * fix tty.setRawMode(mode) was moved to tty.ReadStream#setRawMode() (i.e. process.stdin.setRawMode())
-
-1.0.0 / 2012-07-05 
-==================
-
-  * add support for optional option descriptions
-  * add defaulting of `.version()` to package.json's version
-
-0.6.1 / 2012-06-01 
-==================
-
-  * Added: append (yes or no) on confirmation
-  * Added: allow node.js v0.7.x
-
-0.6.0 / 2012-04-10 
-==================
-
-  * Added `.prompt(obj, callback)` support. Closes #49
-  * Added default support to .choose(). Closes #41
-  * Fixed the choice example
-
-0.5.1 / 2011-12-20 
-==================
-
-  * Fixed `password()` for recent nodes. Closes #36
-
-0.5.0 / 2011-12-04 
-==================
-
-  * Added sub-command option support [itay]
-
-0.4.3 / 2011-12-04 
-==================
-
-  * Fixed custom help ordering. Closes #32
-
-0.4.2 / 2011-11-24 
-==================
-
-  * Added travis support
-  * Fixed: line-buffered input automatically trimmed. Closes #31
-
-0.4.1 / 2011-11-18 
-==================
-
-  * Removed listening for "close" on --help
-
-0.4.0 / 2011-11-15 
-==================
-
-  * Added support for `--`. Closes #24
-
-0.3.3 / 2011-11-14 
-==================
-
-  * Fixed: wait for close event when writing help info [Jerry Hamlet]
-
-0.3.2 / 2011-11-01 
-==================
-
-  * Fixed long flag definitions with values [felixge]
-
-0.3.1 / 2011-10-31 
-==================
-
-  * Changed `--version` short flag to `-V` from `-v`
-  * Changed `.version()` so it's configurable [felixge]
-
-0.3.0 / 2011-10-31 
-==================
-
-  * Added support for long flags only. Closes #18
-
-0.2.1 / 2011-10-24 
-==================
-
-  * "node": ">= 0.4.x < 0.7.0". Closes #20
-
-0.2.0 / 2011-09-26 
-==================
-
-  * Allow for defaults that are not just boolean. Default peassignment only occurs for --no-*, optional, and required arguments. [Jim Isaacs]
-
-0.1.0 / 2011-08-24 
-==================
-
-  * Added support for custom `--help` output
-
-0.0.5 / 2011-08-18 
-==================
-
-  * Changed: when the user enters nothing prompt for password again
-  * Fixed issue with passwords beginning with numbers [NuckChorris]
-
-0.0.4 / 2011-08-15 
-==================
-
-  * Fixed `Commander#args`
-
-0.0.3 / 2011-08-15 
-==================
-
-  * Added default option value support
-
-0.0.2 / 2011-08-15 
-==================
-
-  * Added mask support to `Command#password(str[, mask], fn)`
-  * Added `Command#password(str, fn)`
-
-0.0.1 / 2010-01-03
-==================
-
-  * Initial release

+ 0 - 276
node_modules/grunt-contrib-cssmin/node_modules/clean-css/node_modules/commander/Readme.md

@@ -1,276 +0,0 @@
-# Commander.js
-
-  The complete solution for [node.js](http://nodejs.org) command-line interfaces, inspired by Ruby's [commander](https://github.com/visionmedia/commander).
-
- [![Build Status](https://secure.travis-ci.org/visionmedia/commander.js.png)](http://travis-ci.org/visionmedia/commander.js)
-
-## Installation
-
-    $ npm install commander
-
-## Option parsing
-
- Options with commander are defined with the `.option()` method, also serving as documentation for the options. The example below parses args and options from `process.argv`, leaving remaining args as the `program.args` array which were not consumed by options.
-
-```js
-#!/usr/bin/env node
-
-/**
- * Module dependencies.
- */
-
-var program = require('commander');
-
-program
-  .version('0.0.1')
-  .option('-p, --peppers', 'Add peppers')
-  .option('-P, --pineapple', 'Add pineapple')
-  .option('-b, --bbq', 'Add bbq sauce')
-  .option('-c, --cheese [type]', 'Add the specified type of cheese [marble]', 'marble')
-  .parse(process.argv);
-
-console.log('you ordered a pizza with:');
-if (program.peppers) console.log('  - peppers');
-if (program.pineapple) console.log('  - pineapple');
-if (program.bbq) console.log('  - bbq');
-console.log('  - %s cheese', program.cheese);
-```
-
- Short flags may be passed as a single arg, for example `-abc` is equivalent to `-a -b -c`. Multi-word options such as "--template-engine" are camel-cased, becoming `program.templateEngine` etc.
-
-## Automated --help
-
- The help information is auto-generated based on the information commander already knows about your program, so the following `--help` info is for free:
-
-```  
- $ ./examples/pizza --help
-
-   Usage: pizza [options]
-
-   Options:
-
-     -V, --version        output the version number
-     -p, --peppers        Add peppers
-     -P, --pineapple      Add pineapple
-     -b, --bbq            Add bbq sauce
-     -c, --cheese <type>  Add the specified type of cheese [marble]
-     -h, --help           output usage information
-
-```
-
-## Coercion
-
-```js
-function range(val) {
-  return val.split('..').map(Number);
-}
-
-function list(val) {
-  return val.split(',');
-}
-
-program
-  .version('0.0.1')
-  .usage('[options] <file ...>')
-  .option('-i, --integer <n>', 'An integer argument', parseInt)
-  .option('-f, --float <n>', 'A float argument', parseFloat)
-  .option('-r, --range <a>..<b>', 'A range', range)
-  .option('-l, --list <items>', 'A list', list)
-  .option('-o, --optional [value]', 'An optional value')
-  .parse(process.argv);
-
-console.log(' int: %j', program.integer);
-console.log(' float: %j', program.float);
-console.log(' optional: %j', program.optional);
-program.range = program.range || [];
-console.log(' range: %j..%j', program.range[0], program.range[1]);
-console.log(' list: %j', program.list);
-console.log(' args: %j', program.args);
-```
-
-## Custom help
-
- You can display arbitrary `-h, --help` information
- by listening for "--help". Commander will automatically
- exit once you are done so that the remainder of your program
- does not execute causing undesired behaviours, for example
- in the following executable "stuff" will not output when
- `--help` is used.
-
-```js
-#!/usr/bin/env node
-
-/**
- * Module dependencies.
- */
-
-var program = require('../');
-
-function list(val) {
-  return val.split(',').map(Number);
-}
-
-program
-  .version('0.0.1')
-  .option('-f, --foo', 'enable some foo')
-  .option('-b, --bar', 'enable some bar')
-  .option('-B, --baz', 'enable some baz');
-
-// must be before .parse() since
-// node's emit() is immediate
-
-program.on('--help', function(){
-  console.log('  Examples:');
-  console.log('');
-  console.log('    $ custom-help --help');
-  console.log('    $ custom-help -h');
-  console.log('');
-});
-
-program.parse(process.argv);
-
-console.log('stuff');
-```
-
-yielding the following help output:
-
-```
-
-Usage: custom-help [options]
-
-Options:
-
-  -h, --help     output usage information
-  -V, --version  output the version number
-  -f, --foo      enable some foo
-  -b, --bar      enable some bar
-  -B, --baz      enable some baz
-
-Examples:
-
-  $ custom-help --help
-  $ custom-help -h
-
-```
-
-## .prompt(msg, fn)
-
- Single-line prompt:
-
-```js
-program.prompt('name: ', function(name){
-  console.log('hi %s', name);
-});
-```
-
- Multi-line prompt:
-
-```js
-program.prompt('description:', function(name){
-  console.log('hi %s', name);
-});
-```
-
- Coercion:
-
-```js
-program.prompt('Age: ', Number, function(age){
-  console.log('age: %j', age);
-});
-```
-
-```js
-program.prompt('Birthdate: ', Date, function(date){
-  console.log('date: %s', date);
-});
-```
-
-```js
-program.prompt('Email: ', /^.+@.+\..+$/, function(email){
-  console.log('email: %j', email);
-});
-```
-
-## .password(msg[, mask], fn)
-
-Prompt for password without echoing:
-
-```js
-program.password('Password: ', function(pass){
-  console.log('got "%s"', pass);
-  process.stdin.destroy();
-});
-```
-
-Prompt for password with mask char "*":
-
-```js
-program.password('Password: ', '*', function(pass){
-  console.log('got "%s"', pass);
-  process.stdin.destroy();
-});
-```
-
-## .confirm(msg, fn)
-
- Confirm with the given `msg`:
-
-```js
-program.confirm('continue? ', function(ok){
-  console.log(' got %j', ok);
-});
-```
-
-## .choose(list, fn)
-
- Let the user choose from a `list`:
-
-```js
-var list = ['tobi', 'loki', 'jane', 'manny', 'luna'];
-
-console.log('Choose the coolest pet:');
-program.choose(list, function(i){
-  console.log('you chose %d "%s"', i, list[i]);
-});
-```
-
-## .outputHelp()
-
-  Output help information without exiting.
-
-## .help()
-
-  Output help information and exit immediately.
-
-## Links
-
- - [API documentation](http://visionmedia.github.com/commander.js/)
- - [ascii tables](https://github.com/LearnBoost/cli-table)
- - [progress bars](https://github.com/visionmedia/node-progress)
- - [more progress bars](https://github.com/substack/node-multimeter)
- - [examples](https://github.com/visionmedia/commander.js/tree/master/examples)
-
-## License 
-
-(The MIT License)
-
-Copyright (c) 2011 TJ Holowaychuk &lt;[email protected]&gt;
-
-Permission is hereby granted, free of charge, to any person obtaining
-a copy of this software and associated documentation files (the
-'Software'), to deal in the Software without restriction, including
-without limitation the rights to use, copy, modify, merge, publish,
-distribute, sublicense, and/or sell copies of the Software, and to
-permit persons to whom the Software is furnished to do so, subject to
-the following conditions:
-
-The above copyright notice and this permission notice shall be
-included in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,
-EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
-IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
-CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
-TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
-SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

+ 0 - 1160
node_modules/grunt-contrib-cssmin/node_modules/clean-css/node_modules/commander/index.js

@@ -1,1160 +0,0 @@
-/*!
- * commander
- * Copyright(c) 2011 TJ Holowaychuk <[email protected]>
- * MIT Licensed
- */
-
-/**
- * Module dependencies.
- */
-
-var EventEmitter = require('events').EventEmitter
-  , spawn = require('child_process').spawn
-  , keypress = require('keypress')
-  , fs = require('fs')
-  , exists = fs.existsSync
-  , path = require('path')
-  , tty = require('tty')
-  , dirname = path.dirname
-  , basename = path.basename;
-
-/**
- * Expose the root command.
- */
-
-exports = module.exports = new Command;
-
-/**
- * Expose `Command`.
- */
-
-exports.Command = Command;
-
-/**
- * Expose `Option`.
- */
-
-exports.Option = Option;
-
-/**
- * Initialize a new `Option` with the given `flags` and `description`.
- *
- * @param {String} flags
- * @param {String} description
- * @api public
- */
-
-function Option(flags, description) {
-  this.flags = flags;
-  this.required = ~flags.indexOf('<');
-  this.optional = ~flags.indexOf('[');
-  this.bool = !~flags.indexOf('-no-');
-  flags = flags.split(/[ ,|]+/);
-  if (flags.length > 1 && !/^[[<]/.test(flags[1])) this.short = flags.shift();
-  this.long = flags.shift();
-  this.description = description || '';
-}
-
-/**
- * Return option name.
- *
- * @return {String}
- * @api private
- */
-
-Option.prototype.name = function(){
-  return this.long
-    .replace('--', '')
-    .replace('no-', '');
-};
-
-/**
- * Check if `arg` matches the short or long flag.
- *
- * @param {String} arg
- * @return {Boolean}
- * @api private
- */
-
-Option.prototype.is = function(arg){
-  return arg == this.short
-    || arg == this.long;
-};
-
-/**
- * Initialize a new `Command`.
- *
- * @param {String} name
- * @api public
- */
-
-function Command(name) {
-  this.commands = [];
-  this.options = [];
-  this._execs = [];
-  this._args = [];
-  this._name = name;
-}
-
-/**
- * Inherit from `EventEmitter.prototype`.
- */
-
-Command.prototype.__proto__ = EventEmitter.prototype;
-
-/**
- * Add command `name`.
- *
- * The `.action()` callback is invoked when the
- * command `name` is specified via __ARGV__,
- * and the remaining arguments are applied to the
- * function for access.
- *
- * When the `name` is "*" an un-matched command
- * will be passed as the first arg, followed by
- * the rest of __ARGV__ remaining.
- *
- * Examples:
- *
- *      program
- *        .version('0.0.1')
- *        .option('-C, --chdir <path>', 'change the working directory')
- *        .option('-c, --config <path>', 'set config path. defaults to ./deploy.conf')
- *        .option('-T, --no-tests', 'ignore test hook')
- *     
- *      program
- *        .command('setup')
- *        .description('run remote setup commands')
- *        .action(function(){
- *          console.log('setup');
- *        });
- *     
- *      program
- *        .command('exec <cmd>')
- *        .description('run the given remote command')
- *        .action(function(cmd){
- *          console.log('exec "%s"', cmd);
- *        });
- *     
- *      program
- *        .command('*')
- *        .description('deploy the given env')
- *        .action(function(env){
- *          console.log('deploying "%s"', env);
- *        });
- *     
- *      program.parse(process.argv);
-  *
- * @param {String} name
- * @param {String} [desc]
- * @return {Command} the new command
- * @api public
- */
-
-Command.prototype.command = function(name, desc){
-  var args = name.split(/ +/);
-  var cmd = new Command(args.shift());
-  if (desc) cmd.description(desc);
-  if (desc) this.executables = true;
-  if (desc) this._execs[cmd._name] = true;
-  this.commands.push(cmd);
-  cmd.parseExpectedArgs(args);
-  cmd.parent = this;
-  if (desc) return this;
-  return cmd;
-};
-
-/**
- * Add an implicit `help [cmd]` subcommand
- * which invokes `--help` for the given command.
- *
- * @api private
- */
-
-Command.prototype.addImplicitHelpCommand = function() {
-  this.command('help [cmd]', 'display help for [cmd]');
-};
-
-/**
- * Parse expected `args`.
- *
- * For example `["[type]"]` becomes `[{ required: false, name: 'type' }]`.
- *
- * @param {Array} args
- * @return {Command} for chaining
- * @api public
- */
-
-Command.prototype.parseExpectedArgs = function(args){
-  if (!args.length) return;
-  var self = this;
-  args.forEach(function(arg){
-    switch (arg[0]) {
-      case '<':
-        self._args.push({ required: true, name: arg.slice(1, -1) });
-        break;
-      case '[':
-        self._args.push({ required: false, name: arg.slice(1, -1) });
-        break;
-    }
-  });
-  return this;
-};
-
-/**
- * Register callback `fn` for the command.
- *
- * Examples:
- *
- *      program
- *        .command('help')
- *        .description('display verbose help')
- *        .action(function(){
- *           // output help here
- *        });
- *
- * @param {Function} fn
- * @return {Command} for chaining
- * @api public
- */
-
-Command.prototype.action = function(fn){
-  var self = this;
-  this.parent.on(this._name, function(args, unknown){    
-    // Parse any so-far unknown options
-    unknown = unknown || [];
-    var parsed = self.parseOptions(unknown);
-    
-    // Output help if necessary
-    outputHelpIfNecessary(self, parsed.unknown);
-    
-    // If there are still any unknown options, then we simply 
-    // die, unless someone asked for help, in which case we give it
-    // to them, and then we die.
-    if (parsed.unknown.length > 0) {      
-      self.unknownOption(parsed.unknown[0]);
-    }
-    
-    // Leftover arguments need to be pushed back. Fixes issue #56
-    if (parsed.args.length) args = parsed.args.concat(args);
-    
-    self._args.forEach(function(arg, i){
-      if (arg.required && null == args[i]) {
-        self.missingArgument(arg.name);
-      }
-    });
-    
-    // Always append ourselves to the end of the arguments,
-    // to make sure we match the number of arguments the user
-    // expects
-    if (self._args.length) {
-      args[self._args.length] = self;
-    } else {
-      args.push(self);
-    }
-    
-    fn.apply(this, args);
-  });
-  return this;
-};
-
-/**
- * Define option with `flags`, `description` and optional
- * coercion `fn`. 
- *
- * The `flags` string should contain both the short and long flags,
- * separated by comma, a pipe or space. The following are all valid
- * all will output this way when `--help` is used.
- *
- *    "-p, --pepper"
- *    "-p|--pepper"
- *    "-p --pepper"
- *
- * Examples:
- *
- *     // simple boolean defaulting to false
- *     program.option('-p, --pepper', 'add pepper');
- *
- *     --pepper
- *     program.pepper
- *     // => Boolean
- *
- *     // simple boolean defaulting to false
- *     program.option('-C, --no-cheese', 'remove cheese');
- *
- *     program.cheese
- *     // => true
- *
- *     --no-cheese
- *     program.cheese
- *     // => true
- *
- *     // required argument
- *     program.option('-C, --chdir <path>', 'change the working directory');
- *
- *     --chdir /tmp
- *     program.chdir
- *     // => "/tmp"
- *
- *     // optional argument
- *     program.option('-c, --cheese [type]', 'add cheese [marble]');
- *
- * @param {String} flags
- * @param {String} description
- * @param {Function|Mixed} fn or default
- * @param {Mixed} defaultValue
- * @return {Command} for chaining
- * @api public
- */
-
-Command.prototype.option = function(flags, description, fn, defaultValue){
-  var self = this
-    , option = new Option(flags, description)
-    , oname = option.name()
-    , name = camelcase(oname);
-
-  // default as 3rd arg
-  if ('function' != typeof fn) defaultValue = fn, fn = null;
-
-  // preassign default value only for --no-*, [optional], or <required>
-  if (false == option.bool || option.optional || option.required) {
-    // when --no-* we make sure default is true
-    if (false == option.bool) defaultValue = true;
-    // preassign only if we have a default
-    if (undefined !== defaultValue) self[name] = defaultValue;
-  }
-
-  // register the option
-  this.options.push(option);
-
-  // when it's passed assign the value
-  // and conditionally invoke the callback
-  this.on(oname, function(val){
-    // coercion
-    if (null != val && fn) val = fn(val);
-
-    // unassigned or bool
-    if ('boolean' == typeof self[name] || 'undefined' == typeof self[name]) {
-      // if no value, bool true, and we have a default, then use it!
-      if (null == val) {
-        self[name] = option.bool
-          ? defaultValue || true
-          : false;
-      } else {
-        self[name] = val;
-      }
-    } else if (null !== val) {
-      // reassign
-      self[name] = val;
-    }
-  });
-
-  return this;
-};
-
-/**
- * Parse `argv`, settings options and invoking commands when defined.
- *
- * @param {Array} argv
- * @return {Command} for chaining
- * @api public
- */
-
-Command.prototype.parse = function(argv){
-  // implicit help
-  if (this.executables) this.addImplicitHelpCommand();
-
-  // store raw args
-  this.rawArgs = argv;
-
-  // guess name
-  this._name = this._name || basename(argv[1]);
-
-  // process argv
-  var parsed = this.parseOptions(this.normalize(argv.slice(2)));
-  var args = this.args = parsed.args;
- 
-  var result = this.parseArgs(this.args, parsed.unknown);
-
-  // executable sub-commands
-  var name = result.args[0];
-  if (this._execs[name]) return this.executeSubCommand(argv, args, parsed.unknown);
-
-  return result;
-};
-
-/**
- * Execute a sub-command executable.
- *
- * @param {Array} argv
- * @param {Array} args
- * @param {Array} unknown
- * @api private
- */
-
-Command.prototype.executeSubCommand = function(argv, args, unknown) {
-  args = args.concat(unknown);
-
-  if (!args.length) this.help();
-  if ('help' == args[0] && 1 == args.length) this.help();
-
-  // <cmd> --help
-  if ('help' == args[0]) {
-    args[0] = args[1];
-    args[1] = '--help';
-  }
-
-  // executable
-  var dir = dirname(argv[1]);
-  var bin = basename(argv[1]) + '-' + args[0];
-
-  // check for ./<bin> first
-  var local = path.join(dir, bin);
-
-  // run it
-  args = args.slice(1);
-  var proc = spawn(local, args, { stdio: 'inherit', customFds: [0, 1, 2] });
-  proc.on('error', function(err){
-    if (err.code == "ENOENT") {
-      console.error('\n  %s(1) does not exist, try --help\n', bin);
-    } else if (err.code == "EACCES") {
-      console.error('\n  %s(1) not executable. try chmod or run with root\n', bin);
-    }
-  });
-
-  this.runningCommand = proc;
-};
-
-/**
- * Normalize `args`, splitting joined short flags. For example
- * the arg "-abc" is equivalent to "-a -b -c".
- * This also normalizes equal sign and splits "--abc=def" into "--abc def".
- *
- * @param {Array} args
- * @return {Array}
- * @api private
- */
-
-Command.prototype.normalize = function(args){
-  var ret = []
-    , arg
-    , index;
-
-  for (var i = 0, len = args.length; i < len; ++i) {
-    arg = args[i];
-    if (arg.length > 1 && '-' == arg[0] && '-' != arg[1]) {
-      arg.slice(1).split('').forEach(function(c){
-        ret.push('-' + c);
-      });
-    } else if (/^--/.test(arg) && ~(index = arg.indexOf('='))) {
-      ret.push(arg.slice(0, index), arg.slice(index + 1));
-    } else {
-      ret.push(arg);
-    }
-  }
-
-  return ret;
-};
-
-/**
- * Parse command `args`.
- *
- * When listener(s) are available those
- * callbacks are invoked, otherwise the "*"
- * event is emitted and those actions are invoked.
- *
- * @param {Array} args
- * @return {Command} for chaining
- * @api private
- */
-
-Command.prototype.parseArgs = function(args, unknown){
-  var cmds = this.commands
-    , len = cmds.length
-    , name;
-
-  if (args.length) {
-    name = args[0];
-    if (this.listeners(name).length) {
-      this.emit(args.shift(), args, unknown);
-    } else {
-      this.emit('*', args);
-    }
-  } else {
-    outputHelpIfNecessary(this, unknown);
-    
-    // If there were no args and we have unknown options,
-    // then they are extraneous and we need to error.
-    if (unknown.length > 0) {      
-      this.unknownOption(unknown[0]);
-    }
-  }
-
-  return this;
-};
-
-/**
- * Return an option matching `arg` if any.
- *
- * @param {String} arg
- * @return {Option}
- * @api private
- */
-
-Command.prototype.optionFor = function(arg){
-  for (var i = 0, len = this.options.length; i < len; ++i) {
-    if (this.options[i].is(arg)) {
-      return this.options[i];
-    }
-  }
-};
-
-/**
- * Parse options from `argv` returning `argv`
- * void of these options.
- *
- * @param {Array} argv
- * @return {Array}
- * @api public
- */
-
-Command.prototype.parseOptions = function(argv){
-  var args = []
-    , len = argv.length
-    , literal
-    , option
-    , arg;
-
-  var unknownOptions = [];
-
-  // parse options
-  for (var i = 0; i < len; ++i) {
-    arg = argv[i];
-
-    // literal args after --
-    if ('--' == arg) {
-      literal = true;
-      continue;
-    }
-
-    if (literal) {
-      args.push(arg);
-      continue;
-    }
-
-    // find matching Option
-    option = this.optionFor(arg);
-
-    // option is defined
-    if (option) {
-      // requires arg
-      if (option.required) {
-        arg = argv[++i];
-        if (null == arg) return this.optionMissingArgument(option);
-        if ('-' == arg[0] && '-' != arg) return this.optionMissingArgument(option, arg);
-        this.emit(option.name(), arg);
-      // optional arg
-      } else if (option.optional) {
-        arg = argv[i+1];
-        if (null == arg || ('-' == arg[0] && '-' != arg)) {
-          arg = null;
-        } else {
-          ++i;
-        }
-        this.emit(option.name(), arg);
-      // bool
-      } else {
-        this.emit(option.name());
-      }
-      continue;
-    }
-    
-    // looks like an option
-    if (arg.length > 1 && '-' == arg[0]) {
-      unknownOptions.push(arg);
-      
-      // If the next argument looks like it might be
-      // an argument for this option, we pass it on.
-      // If it isn't, then it'll simply be ignored
-      if (argv[i+1] && '-' != argv[i+1][0]) {
-        unknownOptions.push(argv[++i]);
-      }
-      continue;
-    }
-    
-    // arg
-    args.push(arg);
-  }
-  
-  return { args: args, unknown: unknownOptions };
-};
-
-/**
- * Argument `name` is missing.
- *
- * @param {String} name
- * @api private
- */
-
-Command.prototype.missingArgument = function(name){
-  console.error();
-  console.error("  error: missing required argument `%s'", name);
-  console.error();
-  process.exit(1);
-};
-
-/**
- * `Option` is missing an argument, but received `flag` or nothing.
- *
- * @param {String} option
- * @param {String} flag
- * @api private
- */
-
-Command.prototype.optionMissingArgument = function(option, flag){
-  console.error();
-  if (flag) {
-    console.error("  error: option `%s' argument missing, got `%s'", option.flags, flag);
-  } else {
-    console.error("  error: option `%s' argument missing", option.flags);
-  }
-  console.error();
-  process.exit(1);
-};
-
-/**
- * Unknown option `flag`.
- *
- * @param {String} flag
- * @api private
- */
-
-Command.prototype.unknownOption = function(flag){
-  console.error();
-  console.error("  error: unknown option `%s'", flag);
-  console.error();
-  process.exit(1);
-};
-
-
-/**
- * Set the program version to `str`.
- *
- * This method auto-registers the "-V, --version" flag
- * which will print the version number when passed.
- *
- * @param {String} str
- * @param {String} flags
- * @return {Command} for chaining
- * @api public
- */
-
-Command.prototype.version = function(str, flags){
-  if (0 == arguments.length) return this._version;
-  this._version = str;
-  flags = flags || '-V, --version';
-  this.option(flags, 'output the version number');
-  this.on('version', function(){
-    console.log(str);
-    process.exit(0);
-  });
-  return this;
-};
-
-/**
- * Set the description `str`.
- *
- * @param {String} str
- * @return {String|Command}
- * @api public
- */
-
-Command.prototype.description = function(str){
-  if (0 == arguments.length) return this._description;
-  this._description = str;
-  return this;
-};
-
-/**
- * Set / get the command usage `str`.
- *
- * @param {String} str
- * @return {String|Command}
- * @api public
- */
-
-Command.prototype.usage = function(str){
-  var args = this._args.map(function(arg){
-    return arg.required
-      ? '<' + arg.name + '>'
-      : '[' + arg.name + ']';
-  });
-
-  var usage = '[options'
-    + (this.commands.length ? '] [command' : '')
-    + ']'
-    + (this._args.length ? ' ' + args : '');
-
-  if (0 == arguments.length) return this._usage || usage;
-  this._usage = str;
-
-  return this;
-};
-
-/**
- * Return the largest option length.
- *
- * @return {Number}
- * @api private
- */
-
-Command.prototype.largestOptionLength = function(){
-  return this.options.reduce(function(max, option){
-    return Math.max(max, option.flags.length);
-  }, 0);
-};
-
-/**
- * Return help for options.
- *
- * @return {String}
- * @api private
- */
-
-Command.prototype.optionHelp = function(){
-  var width = this.largestOptionLength();
-  
-  // Prepend the help information
-  return [pad('-h, --help', width) + '  ' + 'output usage information']
-    .concat(this.options.map(function(option){
-      return pad(option.flags, width)
-        + '  ' + option.description;
-      }))
-    .join('\n');
-};
-
-/**
- * Return command help documentation.
- *
- * @return {String}
- * @api private
- */
-
-Command.prototype.commandHelp = function(){
-  if (!this.commands.length) return '';
-  return [
-      ''
-    , '  Commands:'
-    , ''
-    , this.commands.map(function(cmd){
-      var args = cmd._args.map(function(arg){
-        return arg.required
-          ? '<' + arg.name + '>'
-          : '[' + arg.name + ']';
-      }).join(' ');
-
-      return pad(cmd._name
-        + (cmd.options.length 
-          ? ' [options]'
-          : '') + ' ' + args, 22)
-        + (cmd.description()
-          ? ' ' + cmd.description()
-          : '');
-    }).join('\n').replace(/^/gm, '    ')
-    , ''
-  ].join('\n');
-};
-
-/**
- * Return program help documentation.
- *
- * @return {String}
- * @api private
- */
-
-Command.prototype.helpInformation = function(){
-  return [
-      ''
-    , '  Usage: ' + this._name + ' ' + this.usage()
-    , '' + this.commandHelp()
-    , '  Options:'
-    , ''
-    , '' + this.optionHelp().replace(/^/gm, '    ')
-    , ''
-    , ''
-  ].join('\n');
-};
-
-/**
- * Prompt for a `Number`.
- *
- * @param {String} str
- * @param {Function} fn
- * @api private
- */
-
-Command.prototype.promptForNumber = function(str, fn){
-  var self = this;
-  this.promptSingleLine(str, function parseNumber(val){
-    val = Number(val);
-    if (isNaN(val)) return self.promptSingleLine(str + '(must be a number) ', parseNumber);
-    fn(val);
-  });
-};
-
-/**
- * Prompt for a `Date`.
- *
- * @param {String} str
- * @param {Function} fn
- * @api private
- */
-
-Command.prototype.promptForDate = function(str, fn){
-  var self = this;
-  this.promptSingleLine(str, function parseDate(val){
-    val = new Date(val);
-    if (isNaN(val.getTime())) return self.promptSingleLine(str + '(must be a date) ', parseDate);
-    fn(val);
-  });
-};
-
-
-/**
- * Prompt for a `Regular Expression`.
- *
- * @param {String} str
- * @param {Object} pattern regular expression object to test
- * @param {Function} fn
- * @api private
- */
-
-Command.prototype.promptForRegexp = function(str, pattern, fn){
-  var self = this;
-  this.promptSingleLine(str, function parseRegexp(val){
-    if(!pattern.test(val)) return self.promptSingleLine(str + '(regular expression mismatch) ', parseRegexp);
-    fn(val);
-  });
-};
-
-
-/**
- * Single-line prompt.
- *
- * @param {String} str
- * @param {Function} fn
- * @api private
- */
-
-Command.prototype.promptSingleLine = function(str, fn){
-  // determine if the 2nd argument is a regular expression
-  if (arguments[1].global !== undefined && arguments[1].multiline !== undefined) {
-    return this.promptForRegexp(str, arguments[1], arguments[2]);
-  } else if ('function' == typeof arguments[2]) {
-    return this['promptFor' + (fn.name || fn)](str, arguments[2]);
-  }
-
-  process.stdout.write(str);
-  process.stdin.setEncoding('utf8');
-  process.stdin.once('data', function(val){
-    fn(val.trim());
-  }).resume();
-};
-
-/**
- * Multi-line prompt.
- *
- * @param {String} str
- * @param {Function} fn
- * @api private
- */
-
-Command.prototype.promptMultiLine = function(str, fn){
-  var buf = [];
-  console.log(str);
-  process.stdin.setEncoding('utf8');
-  process.stdin.on('data', function(val){
-    if ('\n' == val || '\r\n' == val) {
-      process.stdin.removeAllListeners('data');
-      fn(buf.join('\n'));
-    } else {
-      buf.push(val.trimRight());
-    }
-  }).resume();
-};
-
-/**
- * Prompt `str` and callback `fn(val)`
- *
- * Commander supports single-line and multi-line prompts.
- * To issue a single-line prompt simply add white-space
- * to the end of `str`, something like "name: ", whereas
- * for a multi-line prompt omit this "description:".
- *
- *
- * Examples:
- *
- *     program.prompt('Username: ', function(name){
- *       console.log('hi %s', name);
- *     });
- *     
- *     program.prompt('Description:', function(desc){
- *       console.log('description was "%s"', desc.trim());
- *     });
- *
- * @param {String|Object} str
- * @param {Function} fn
- * @api public
- */
-
-Command.prototype.prompt = function(str, fn){
-  var self = this;
-  if ('string' == typeof str) {
-    if (/ $/.test(str)) return this.promptSingleLine.apply(this, arguments);
-    this.promptMultiLine(str, fn);
-  } else {
-    var keys = Object.keys(str)
-      , obj = {};
-
-    function next() {
-      var key = keys.shift()
-        , label = str[key];
-
-      if (!key) return fn(obj);
-      self.prompt(label, function(val){
-        obj[key] = val;
-        next();
-      });
-    }
-
-    next();
-  }
-};
-
-/**
- * Prompt for password with `str`, `mask` char and callback `fn(val)`.
- *
- * The mask string defaults to '', aka no output is
- * written while typing, you may want to use "*" etc.
- *
- * Examples:
- *
- *     program.password('Password: ', function(pass){
- *       console.log('got "%s"', pass);
- *       process.stdin.destroy();
- *     });
- *
- *     program.password('Password: ', '*', function(pass){
- *       console.log('got "%s"', pass);
- *       process.stdin.destroy();
- *     });
- *
- * @param {String} str
- * @param {String} mask
- * @param {Function} fn
- * @api public
- */
-
-Command.prototype.password = function(str, mask, fn){
-  var self = this
-    , buf = '';
-
-  // default mask
-  if ('function' == typeof mask) {
-    fn = mask;
-    mask = '';
-  }
-
-  keypress(process.stdin);
-
-  function setRawMode(mode) {
-    if (process.stdin.setRawMode) {
-      process.stdin.setRawMode(mode);
-    } else {
-      tty.setRawMode(mode);
-    }
-  };
-  setRawMode(true);
-  process.stdout.write(str);
-
-  // keypress
-  process.stdin.on('keypress', function(c, key){
-    if (key && 'enter' == key.name) {
-      console.log();
-      process.stdin.pause();
-      process.stdin.removeAllListeners('keypress');
-      setRawMode(false);
-      if (!buf.trim().length) return self.password(str, mask, fn);
-      fn(buf);
-      return;
-    }
-
-    if (key && key.ctrl && 'c' == key.name) {
-      console.log('%s', buf);
-      process.exit();
-    }
-
-    process.stdout.write(mask);
-    buf += c;
-  }).resume();
-};
-
-/**
- * Confirmation prompt with `str` and callback `fn(bool)`
- *
- * Examples:
- *
- *      program.confirm('continue? ', function(ok){
- *        console.log(' got %j', ok);
- *        process.stdin.destroy();
- *      });
- *
- * @param {String} str
- * @param {Function} fn
- * @api public
- */
-
-
-Command.prototype.confirm = function(str, fn, verbose){
-  var self = this;
-  this.prompt(str, function(ok){
-    if (!ok.trim()) {
-      if (!verbose) str += '(yes or no) ';
-      return self.confirm(str, fn, true);
-    }
-    fn(parseBool(ok));
-  });
-};
-
-/**
- * Choice prompt with `list` of items and callback `fn(index, item)`
- *
- * Examples:
- *
- *      var list = ['tobi', 'loki', 'jane', 'manny', 'luna'];
- *      
- *      console.log('Choose the coolest pet:');
- *      program.choose(list, function(i){
- *        console.log('you chose %d "%s"', i, list[i]);
- *        process.stdin.destroy();
- *      });
- *
- * @param {Array} list
- * @param {Number|Function} index or fn
- * @param {Function} fn
- * @api public
- */
-
-Command.prototype.choose = function(list, index, fn){
-  var self = this
-    , hasDefault = 'number' == typeof index;
-
-  if (!hasDefault) {
-    fn = index;
-    index = null;
-  }
-
-  list.forEach(function(item, i){
-    if (hasDefault && i == index) {
-      console.log('* %d) %s', i + 1, item);
-    } else {
-      console.log('  %d) %s', i + 1, item);
-    }
-  });
-
-  function again() {
-    self.prompt('  : ', function(val){
-      val = parseInt(val, 10) - 1;
-      if (hasDefault && isNaN(val)) val = index;
-
-      if (null == list[val]) {
-        again();
-      } else {
-        fn(val, list[val]);
-      }
-    });
-  }
-
-  again();
-};
-
-
-/**
- * Output help information for this command
- *
- * @api public
- */
-
-Command.prototype.outputHelp = function(){
-  process.stdout.write(this.helpInformation());
-  this.emit('--help');
-};
-
-/**
- * Output help information and exit.
- *
- * @api public
- */
-
-Command.prototype.help = function(){
-  this.outputHelp();
-  process.exit();
-};
-
-/**
- * Camel-case the given `flag`
- *
- * @param {String} flag
- * @return {String}
- * @api private
- */
-
-function camelcase(flag) {
-  return flag.split('-').reduce(function(str, word){
-    return str + word[0].toUpperCase() + word.slice(1);
-  });
-}
-
-/**
- * Parse a boolean `str`.
- *
- * @param {String} str
- * @return {Boolean}
- * @api private
- */
-
-function parseBool(str) {
-  return /^y|yes|ok|true$/i.test(str);
-}
-
-/**
- * Pad `str` to `width`.
- *
- * @param {String} str
- * @param {Number} width
- * @return {String}
- * @api private
- */
-
-function pad(str, width) {
-  var len = Math.max(0, width - str.length);
-  return str + Array(len + 1).join(' ');
-}
-
-/**
- * Output help information if necessary
- *
- * @param {Command} command to output help for
- * @param {Array} array of options to search for -h or --help
- * @api private
- */
-
-function outputHelpIfNecessary(cmd, options) {
-  options = options || [];
-  for (var i = 0; i < options.length; i++) {
-    if (options[i] == '--help' || options[i] == '-h') {
-      cmd.outputHelp();
-      process.exit(0);
-    }
-  }
-}

+ 0 - 101
node_modules/grunt-contrib-cssmin/node_modules/clean-css/node_modules/commander/node_modules/keypress/README.md

@@ -1,101 +0,0 @@
-keypress
-========
-### Make any Node ReadableStream emit "keypress" events
-
-
-Previous to Node `v0.8.x`, there was an undocumented `"keypress"` event that
-`process.stdin` would emit when it was a TTY. Some people discovered this hidden
-gem, and started using it in their own code.
-
-Now in Node `v0.8.x`, this `"keypress"` event does not get emitted by default,
-but rather only when it is being used in conjuction with the `readline` (or by
-extension, the `repl`) module.
-
-This module is the exact logic from the node `v0.8.x` releases ripped out into its
-own module.
-
-__Bonus:__ Now with mouse support!
-
-Installation
-------------
-
-Install with `npm`:
-
-``` bash
-$ npm install keypress
-```
-
-Or add it to the `"dependencies"` section of your _package.json_ file.
-
-
-Example
--------
-
-#### Listening for "keypress" events
-
-``` js
-var keypress = require('keypress');
-
-// make `process.stdin` begin emitting "keypress" events
-keypress(process.stdin);
-
-// listen for the "keypress" event
-process.stdin.on('keypress', function (ch, key) {
-  console.log('got "keypress"', key);
-  if (key && key.ctrl && key.name == 'c') {
-    process.stdin.pause();
-  }
-});
-
-process.stdin.setRawMode(true);
-process.stdin.resume();
-```
-
-#### Listening for "mousepress" events
-
-``` js
-var keypress = require('keypress');
-
-// make `process.stdin` begin emitting "mousepress" (and "keypress") events
-keypress(process.stdin);
-
-// you must enable the mouse events before they will begin firing
-keypress.enableMouse(process.stdout);
-
-process.stdin.on('mousepress', function (info) {
-  console.log('got "mousepress" event at %d x %d', info.x, info.y);
-});
-
-process.on('exit', function () {
-  // disable mouse on exit, so that the state
-  // is back to normal for the terminal
-  keypress.disableMouse(process.stdout);
-});
-```
-
-
-License
--------
-
-(The MIT License)
-
-Copyright (c) 2012 Nathan Rajlich &lt;[email protected]&gt;
-
-Permission is hereby granted, free of charge, to any person obtaining
-a copy of this software and associated documentation files (the
-'Software'), to deal in the Software without restriction, including
-without limitation the rights to use, copy, modify, merge, publish,
-distribute, sublicense, and/or sell copies of the Software, and to
-permit persons to whom the Software is furnished to do so, subject to
-the following conditions:
-
-The above copyright notice and this permission notice shall be
-included in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,
-EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
-IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
-CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
-TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
-SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

+ 0 - 346
node_modules/grunt-contrib-cssmin/node_modules/clean-css/node_modules/commander/node_modules/keypress/index.js

@@ -1,346 +0,0 @@
-
-/**
- * This module offers the internal "keypress" functionality from node-core's
- * `readline` module, for your own programs and modules to use.
- *
- * Usage:
- *
- *   require('keypress')(process.stdin);
- *
- *   process.stdin.on('keypress', function (ch, key) {
- *     console.log(ch, key);
- *     if (key.ctrl && key.name == 'c') {
- *       process.stdin.pause();
- *     }
- *   });
- *   proces.stdin.resume();
- */
-var exports = module.exports = keypress;
-
-exports.enableMouse = function (stream) {
-  stream.write('\x1b' +'[?1000h')
-}
-
-exports.disableMouse = function (stream) {
-  stream.write('\x1b' +'[?1000l')
-}
-
-
-/**
- * accepts a readable Stream instance and makes it emit "keypress" events
- */
-
-function keypress(stream) {
-  if (isEmittingKeypress(stream)) return;
-  stream._emitKeypress = true;
-
-  function onData(b) {
-    if (stream.listeners('keypress').length > 0) {
-      emitKey(stream, b);
-    } else {
-      // Nobody's watching anyway
-      stream.removeListener('data', onData);
-      stream.on('newListener', onNewListener);
-    }
-  }
-
-  function onNewListener(event) {
-    if (event == 'keypress') {
-      stream.on('data', onData);
-      stream.removeListener('newListener', onNewListener);
-    }
-  }
-
-  if (stream.listeners('keypress').length > 0) {
-    stream.on('data', onData);
-  } else {
-    stream.on('newListener', onNewListener);
-  }
-}
-
-/**
- * Returns `true` if the stream is already emitting "keypress" events.
- * `false` otherwise.
- */
-
-function isEmittingKeypress(stream) {
-  var rtn = stream._emitKeypress;
-  if (!rtn) {
-    // hack: check for the v0.6.x "data" event
-    stream.listeners('data').forEach(function (l) {
-      if (l.name == 'onData' && /emitKey/.test(l.toString())) {
-        rtn = true;
-        stream._emitKeypress = true;
-      }
-    });
-  }
-  if (!rtn) {
-    // hack: check for the v0.6.x "newListener" event
-    stream.listeners('newListener').forEach(function (l) {
-      if (l.name == 'onNewListener' && /keypress/.test(l.toString())) {
-        rtn = true;
-        stream._emitKeypress = true;
-      }
-    });
-  }
-  return rtn;
-}
-
-
-/*
-  Some patterns seen in terminal key escape codes, derived from combos seen
-  at http://www.midnight-commander.org/browser/lib/tty/key.c
-
-  ESC letter
-  ESC [ letter
-  ESC [ modifier letter
-  ESC [ 1 ; modifier letter
-  ESC [ num char
-  ESC [ num ; modifier char
-  ESC O letter
-  ESC O modifier letter
-  ESC O 1 ; modifier letter
-  ESC N letter
-  ESC [ [ num ; modifier char
-  ESC [ [ 1 ; modifier letter
-  ESC ESC [ num char
-  ESC ESC O letter
-
-  - char is usually ~ but $ and ^ also happen with rxvt
-  - modifier is 1 +
-                (shift     * 1) +
-                (left_alt  * 2) +
-                (ctrl      * 4) +
-                (right_alt * 8)
-  - two leading ESCs apparently mean the same as one leading ESC
-*/
-
-// Regexes used for ansi escape code splitting
-var metaKeyCodeRe = /^(?:\x1b)([a-zA-Z0-9])$/;
-var functionKeyCodeRe =
-    /^(?:\x1b+)(O|N|\[|\[\[)(?:(\d+)(?:;(\d+))?([~^$])|(?:1;)?(\d+)?([a-zA-Z]))/;
-
-function emitKey(stream, s) {
-  var ch,
-      key = {
-        name: undefined,
-        ctrl: false,
-        meta: false,
-        shift: false
-      },
-      parts;
-
-  if (Buffer.isBuffer(s)) {
-    if (s[0] > 127 && s[1] === undefined) {
-      s[0] -= 128;
-      s = '\x1b' + s.toString(stream.encoding || 'utf-8');
-    } else {
-      s = s.toString(stream.encoding || 'utf-8');
-    }
-  }
-
-  key.sequence = s;
-
-  if (s === '\r' || s === '\n') {
-    // enter
-    key.name = 'enter';
-
-  } else if (s === '\t') {
-    // tab
-    key.name = 'tab';
-
-  } else if (s === '\b' || s === '\x7f' ||
-             s === '\x1b\x7f' || s === '\x1b\b') {
-    // backspace or ctrl+h
-    key.name = 'backspace';
-    key.meta = (s.charAt(0) === '\x1b');
-
-  } else if (s === '\x1b' || s === '\x1b\x1b') {
-    // escape key
-    key.name = 'escape';
-    key.meta = (s.length === 2);
-
-  } else if (s === ' ' || s === '\x1b ') {
-    key.name = 'space';
-    key.meta = (s.length === 2);
-
-  } else if (s <= '\x1a') {
-    // ctrl+letter
-    key.name = String.fromCharCode(s.charCodeAt(0) + 'a'.charCodeAt(0) - 1);
-    key.ctrl = true;
-
-  } else if (s.length === 1 && s >= 'a' && s <= 'z') {
-    // lowercase letter
-    key.name = s;
-
-  } else if (s.length === 1 && s >= 'A' && s <= 'Z') {
-    // shift+letter
-    key.name = s.toLowerCase();
-    key.shift = true;
-
-  } else if (parts = metaKeyCodeRe.exec(s)) {
-    // meta+character key
-    key.name = parts[1].toLowerCase();
-    key.meta = true;
-    key.shift = /^[A-Z]$/.test(parts[1]);
-
-  } else if (parts = functionKeyCodeRe.exec(s)) {
-    // ansi escape sequence
-
-    // reassemble the key code leaving out leading \x1b's,
-    // the modifier key bitflag and any meaningless "1;" sequence
-    var code = (parts[1] || '') + (parts[2] || '') +
-               (parts[4] || '') + (parts[6] || ''),
-        modifier = (parts[3] || parts[5] || 1) - 1;
-
-    // Parse the key modifier
-    key.ctrl = !!(modifier & 4);
-    key.meta = !!(modifier & 10);
-    key.shift = !!(modifier & 1);
-    key.code = code;
-
-    // Parse the key itself
-    switch (code) {
-      /* xterm/gnome ESC O letter */
-      case 'OP': key.name = 'f1'; break;
-      case 'OQ': key.name = 'f2'; break;
-      case 'OR': key.name = 'f3'; break;
-      case 'OS': key.name = 'f4'; break;
-
-      /* xterm/rxvt ESC [ number ~ */
-      case '[11~': key.name = 'f1'; break;
-      case '[12~': key.name = 'f2'; break;
-      case '[13~': key.name = 'f3'; break;
-      case '[14~': key.name = 'f4'; break;
-
-      /* from Cygwin and used in libuv */
-      case '[[A': key.name = 'f1'; break;
-      case '[[B': key.name = 'f2'; break;
-      case '[[C': key.name = 'f3'; break;
-      case '[[D': key.name = 'f4'; break;
-      case '[[E': key.name = 'f5'; break;
-
-      /* common */
-      case '[15~': key.name = 'f5'; break;
-      case '[17~': key.name = 'f6'; break;
-      case '[18~': key.name = 'f7'; break;
-      case '[19~': key.name = 'f8'; break;
-      case '[20~': key.name = 'f9'; break;
-      case '[21~': key.name = 'f10'; break;
-      case '[23~': key.name = 'f11'; break;
-      case '[24~': key.name = 'f12'; break;
-
-      /* xterm ESC [ letter */
-      case '[A': key.name = 'up'; break;
-      case '[B': key.name = 'down'; break;
-      case '[C': key.name = 'right'; break;
-      case '[D': key.name = 'left'; break;
-      case '[E': key.name = 'clear'; break;
-      case '[F': key.name = 'end'; break;
-      case '[H': key.name = 'home'; break;
-
-      /* xterm/gnome ESC O letter */
-      case 'OA': key.name = 'up'; break;
-      case 'OB': key.name = 'down'; break;
-      case 'OC': key.name = 'right'; break;
-      case 'OD': key.name = 'left'; break;
-      case 'OE': key.name = 'clear'; break;
-      case 'OF': key.name = 'end'; break;
-      case 'OH': key.name = 'home'; break;
-
-      /* xterm/rxvt ESC [ number ~ */
-      case '[1~': key.name = 'home'; break;
-      case '[2~': key.name = 'insert'; break;
-      case '[3~': key.name = 'delete'; break;
-      case '[4~': key.name = 'end'; break;
-      case '[5~': key.name = 'pageup'; break;
-      case '[6~': key.name = 'pagedown'; break;
-
-      /* putty */
-      case '[[5~': key.name = 'pageup'; break;
-      case '[[6~': key.name = 'pagedown'; break;
-
-      /* rxvt */
-      case '[7~': key.name = 'home'; break;
-      case '[8~': key.name = 'end'; break;
-
-      /* rxvt keys with modifiers */
-      case '[a': key.name = 'up'; key.shift = true; break;
-      case '[b': key.name = 'down'; key.shift = true; break;
-      case '[c': key.name = 'right'; key.shift = true; break;
-      case '[d': key.name = 'left'; key.shift = true; break;
-      case '[e': key.name = 'clear'; key.shift = true; break;
-
-      case '[2$': key.name = 'insert'; key.shift = true; break;
-      case '[3$': key.name = 'delete'; key.shift = true; break;
-      case '[5$': key.name = 'pageup'; key.shift = true; break;
-      case '[6$': key.name = 'pagedown'; key.shift = true; break;
-      case '[7$': key.name = 'home'; key.shift = true; break;
-      case '[8$': key.name = 'end'; key.shift = true; break;
-
-      case 'Oa': key.name = 'up'; key.ctrl = true; break;
-      case 'Ob': key.name = 'down'; key.ctrl = true; break;
-      case 'Oc': key.name = 'right'; key.ctrl = true; break;
-      case 'Od': key.name = 'left'; key.ctrl = true; break;
-      case 'Oe': key.name = 'clear'; key.ctrl = true; break;
-
-      case '[2^': key.name = 'insert'; key.ctrl = true; break;
-      case '[3^': key.name = 'delete'; key.ctrl = true; break;
-      case '[5^': key.name = 'pageup'; key.ctrl = true; break;
-      case '[6^': key.name = 'pagedown'; key.ctrl = true; break;
-      case '[7^': key.name = 'home'; key.ctrl = true; break;
-      case '[8^': key.name = 'end'; key.ctrl = true; break;
-
-      /* misc. */
-      case '[Z': key.name = 'tab'; key.shift = true; break;
-      default: key.name = 'undefined'; break;
-
-    }
-  } else if (s.length > 1 && s[0] !== '\x1b') {
-    // Got a longer-than-one string of characters.
-    // Probably a paste, since it wasn't a control sequence.
-    Array.prototype.forEach.call(s, function(c) {
-      emitKey(stream, c);
-    });
-    return;
-  }
-
-  if (key.code == '[M') {
-    key.name = 'mouse';
-    var s = key.sequence;
-    var b = s.charCodeAt(3);
-    key.x = s.charCodeAt(4) - 040;
-    key.y = s.charCodeAt(5) - 040;
-
-    key.scroll = 0;
-
-    key.ctrl  = !!(1<<4 & b);
-    key.meta  = !!(1<<3 & b);
-    key.shift = !!(1<<2 & b);
-
-    key.release = (3 & b) === 3;
-
-    if (1<<6 & b) { //scroll
-      key.scroll = 1 & b ? 1 : -1;
-    }
-
-    if (!key.release && !key.scroll) {
-      key.button = b & 3;
-    }
-  }
-
-  // Don't emit a key if no name was found
-  if (key.name === undefined) {
-    key = undefined;
-  }
-
-  if (s.length === 1) {
-    ch = s;
-  }
-
-  if (key && key.name == 'mouse') {
-    stream.emit('mousepress', key)
-  } else if (key || ch) {
-    stream.emit('keypress', ch, key);
-  }
-}

Datei-Diff unterdrückt, da er zu groß ist
+ 0 - 23
node_modules/grunt-contrib-cssmin/node_modules/clean-css/node_modules/commander/node_modules/keypress/package.json


+ 0 - 28
node_modules/grunt-contrib-cssmin/node_modules/clean-css/node_modules/commander/node_modules/keypress/test.js

@@ -1,28 +0,0 @@
-
-var keypress = require('./')
-keypress(process.stdin)
-
-if (process.stdin.setRawMode)
-  process.stdin.setRawMode(true)
-else
-  require('tty').setRawMode(true)
-
-process.stdin.on('keypress', function (c, key) {
-  console.log(0, c, key)
-  if (key && key.ctrl && key.name == 'c') {
-    process.stdin.pause()
-  }
-})
-process.stdin.on('mousepress', function (mouse) {
-  console.log(mouse)
-})
-
-keypress.enableMouse(process.stdout)
-process.on('exit', function () {
-  //disable mouse on exit, so that the state is back to normal
-  //for the terminal.
-  keypress.disableMouse(process.stdout)
-})
-
-process.stdin.resume()
-

Datei-Diff unterdrückt, da er zu groß ist
+ 0 - 32
node_modules/grunt-contrib-cssmin/node_modules/clean-css/node_modules/commander/package.json


Datei-Diff unterdrückt, da er zu groß ist
+ 0 - 43
node_modules/grunt-contrib-cssmin/node_modules/clean-css/package.json


+ 0 - 1
node_modules/grunt-contrib-cssmin/node_modules/grunt-lib-contrib/.gitattributes

@@ -1 +0,0 @@
-* text=auto

+ 0 - 14
node_modules/grunt-contrib-cssmin/node_modules/grunt-lib-contrib/.jshintrc

@@ -1,14 +0,0 @@
-{
-  "curly": true,
-  "eqeqeq": true,
-  "immed": true,
-  "latedef": true,
-  "newcap": true,
-  "noarg": true,
-  "sub": true,
-  "undef": true,
-  "boss": true,
-  "eqnull": true,
-  "node": true,
-  "es5": true
-}

+ 0 - 3
node_modules/grunt-contrib-cssmin/node_modules/grunt-lib-contrib/.npmignore

@@ -1,3 +0,0 @@
-node_modules
-npm-debug.log
-tmp

+ 0 - 6
node_modules/grunt-contrib-cssmin/node_modules/grunt-lib-contrib/.travis.yml

@@ -1,6 +0,0 @@
-language: node_js
-node_js:
-  - "0.8"
-  - "0.10"
-before_install:
-  - npm install -g grunt-cli

+ 0 - 4
node_modules/grunt-contrib-cssmin/node_modules/grunt-lib-contrib/AUTHORS

@@ -1,4 +0,0 @@
-Tyler Kellen (http://goingslowly.com/)
-Chris Talkington (http://christalkington.com/)
-Larry Davis (http://lazd.net/)
-Sindre Sorhus (http://sindresorhus.com)

+ 0 - 47
node_modules/grunt-contrib-cssmin/node_modules/grunt-lib-contrib/CHANGELOG

@@ -1,47 +0,0 @@
-v0.6.1:
-  date: 2013-03-24
-  changes:
-    - Add formatForType option
-v0.6.0:
-  date: 2013-03-14
-  changes:
-    - Change API/reportying style for minMaxInfo
-v0.5.3:
-  date: 2013-02-23
-  changes:
-    - use MIT licensed zlib-browserify instead of unlicensed gzip-js
-v0.5.2:
-  date: 2013-01-24
-  changes:
-    - add minMaxGzip & minMaxInfo.
-v0.5.0:
-  date: 2012-12-05
-  changes:
-    - remove findBasePath, buildIndividualDest and isIndividualDest.
-    - remove options and normalizeMultiTaskFiles.
-    - remove node v0.6 and grunt v0.3 support.
-v0.4.0:
-  date: 2012-11-20
-  changes:
-    - findBasePath returns '' if passed false.
-    - Added stripPath.
-v0.3.1:
-  date: 2012-10-29
-  changes:
-    - Tweaked findBasePath to handle single dot differently.
-    - Start testing with Travis.
-    - Docs cleanup.
-v0.3.0:
-  date: 2012-09-24
-  changes:
-    - Added findBasePath, buildIndividualDest, isIndividualDest, optsToArgs.
-    - Refactored tests.
-    - Automatically parse templates in options.
-v0.2.1:
-  date: 2012-09-14
-  changes:
-    - Added non-destuctive namespace declarations.
-v0.2.0:
-  date: 2012-09-10
-  changes:
-    - Refactored from grunt-contrib into individual repo.

+ 0 - 60
node_modules/grunt-contrib-cssmin/node_modules/grunt-lib-contrib/Gruntfile.js

@@ -1,60 +0,0 @@
-/*
- * grunt-lib-contrib
- * http://gruntjs.com/
- *
- * Copyright (c) 2012 Tyler Kellen, contributors
- * Licensed under the MIT license.
- */
-
-module.exports = function(grunt) {
-  'use strict';
-
-  // Project configuration.
-  grunt.initConfig({
-    jshint: {
-      all: [
-        'Gruntfile.js',
-        'lib/*.js',
-        '<%= nodeunit.tests %>'
-      ],
-      options: {
-        jshintrc: '.jshintrc'
-      }
-    },
-
-    test_vars: {
-      source: 'source/'
-    },
-
-    test_task: {
-      options: {
-        param: 'task',
-        param2: 'task',
-        template: '<%= test_vars.source %>',
-        data: {
-          template: ['<%= test_vars.source %>']
-        }
-      },
-      target: {
-        options: {
-          param: 'target'
-        }
-      }
-    },
-
-    // Unit tests.
-    nodeunit: {
-      tests: ['test/*_test.js']
-    }
-  });
-
-  // These plugins provide necessary tasks.
-  grunt.loadNpmTasks('grunt-contrib-jshint');
-  grunt.loadNpmTasks('grunt-contrib-nodeunit');
-
-  // Whenever the "test" task is run, then test the result.
-  grunt.registerTask('test', ['nodeunit']);
-
-  // By default, lint and run all tests.
-  grunt.registerTask('default', ['jshint', 'test']);
-};

+ 0 - 22
node_modules/grunt-contrib-cssmin/node_modules/grunt-lib-contrib/LICENSE-MIT

@@ -1,22 +0,0 @@
-Copyright (c) 2012 Tyler Kellen, contributors
-
-Permission is hereby granted, free of charge, to any person
-obtaining a copy of this software and associated documentation
-files (the "Software"), to deal in the Software without
-restriction, including without limitation the rights to use,
-copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the
-Software is furnished to do so, subject to the following
-conditions:
-
-The above copyright notice and this permission notice shall be
-included in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
-OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
-HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
-WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
-FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
-OTHER DEALINGS IN THE SOFTWARE.

+ 0 - 65
node_modules/grunt-contrib-cssmin/node_modules/grunt-lib-contrib/README.md

@@ -1,65 +0,0 @@
-# grunt-lib-contrib [![Build Status](https://secure.travis-ci.org/gruntjs/grunt-lib-contrib.png?branch=master)](http://travis-ci.org/gruntjs/grunt-lib-contrib)
-
-> Common functionality shared across grunt-contrib tasks.
-
-The purpose of grunt-lib-contrib is to explore solutions to common problems task writers encounter, and to ease the upgrade path for contrib tasks.
-
-**These APIs should be considered highly unstable. Depend on them at your own risk!**
-
-_Over time, some of the functionality provided here may be incorporated directly into grunt for mainstream use. Until then, you may require `grunt-lib-contrib` as a dependency in your projects, but be very careful to specify an exact version number instead of a range, as backwards-incompatible changes are likely to be introduced._
-
-### Helper Functions
-
-#### getNamespaceDeclaration(ns)
-
-This helper is used to build JS namespace declarations.
-
-#### optsToArgs(options)
-
-Convert an object to an array of CLI arguments, which can be used with `child_process.spawn()`.
-
-```js
-// Example
-{
-  fooBar: 'a',        // ['--foo-bar', 'a']
-  fooBar: 1,          // ['--foo-bar', '1']
-  fooBar: true,       // ['--foo-bar']
-  fooBar: false,      //
-  fooBar: ['a', 'b']  // ['--foo-bar', 'a', '--foo-bar', 'b']
-}
-```
-
-#### stripPath(pth, strip)
-
-Strip a path from a path. normalize both paths for best results.
-
-#### minMaxInfo(min, max, report)
-
-Helper for logging compressed, uncompressed and gzipped sizes of strings.
-
-#### report
-Choices: `false`, `'min'`, `'gzip'`
-Default: `false`
-
-Either do not report anything, report only minification result, or report minification and gzip results.
-
-**Important** Including `'gzip'` results can make this task 5-10x slower depending on the size of the file.
-
-
-```js
-var max = grunt.file.read('max.js');
-var min = minify(max);
-minMaxInfo(min, max, 'gzip');
-```
-
-Would print:
-
-```
-Original: 495 bytes.
-Minified: 396 bytes.
-Gzipped: 36 bytes.
-```
-
---
-
-*Lib submitted by [Tyler Kellen](https://goingslowly.com/).*

+ 0 - 111
node_modules/grunt-contrib-cssmin/node_modules/grunt-lib-contrib/lib/contrib.js

@@ -1,111 +0,0 @@
-/*
- * grunt-lib-contrib
- * http://gruntjs.com/
- *
- * Copyright (c) 2012 Tyler Kellen, contributors
- * Licensed under the MIT license.
- */
-
-exports.init = function(grunt) {
-  'use strict';
-
-  var exports = {};
-
-  var path = require('path');
-
-  exports.getNamespaceDeclaration = function(ns) {
-    var output = [];
-    var curPath = 'this';
-    if (ns !== 'this') {
-      var nsParts = ns.split('.');
-      nsParts.forEach(function(curPart, index) {
-        if (curPart !== 'this') {
-          curPath += '[' + JSON.stringify(curPart) + ']';
-          output.push(curPath + ' = ' + curPath + ' || {};');
-        }
-      });
-    }
-
-    return {
-      namespace: curPath,
-      declaration: output.join('\n')
-    };
-  };
-
-  // Convert an object to an array of CLI arguments
-  exports.optsToArgs = function(options) {
-    var args = [];
-
-    Object.keys(options).forEach(function(flag) {
-      var val = options[flag];
-
-      flag = flag.replace(/[A-Z]/g, function(match) {
-        return '-' + match.toLowerCase();
-      });
-
-      if (val === true) {
-        args.push('--' + flag);
-      }
-
-      if (grunt.util._.isString(val)) {
-        args.push('--' + flag, val);
-      }
-
-      if (grunt.util._.isNumber(val)) {
-        args.push('--' + flag, '' + val);
-      }
-
-      if (grunt.util._.isArray(val)) {
-        val.forEach(function(arrVal) {
-          args.push('--' + flag, arrVal);
-        });
-      }
-    });
-
-    return args;
-  };
-
-  // Strip a path from a path. normalize both paths for best results.
-  exports.stripPath = function(pth, strip) {
-    if (strip && strip.length >= 1) {
-      strip = path.normalize(strip);
-      pth = path.normalize(pth);
-      pth = grunt.util._(pth).strRight(strip);
-      pth = grunt.util._(pth).ltrim(path.sep);
-    }
-
-    return pth;
-  };
-
-  // Log min and max info
-  function gzipSize(src) {
-    return src ? require('zlib-browserify').gzipSync(src).length : 0;
-  }
-  exports.minMaxInfo = function(min, max, report) {
-    if (report === 'min' || report === 'gzip') {
-      grunt.log.writeln('Original: ' + String(max.length).green + ' bytes.');
-      grunt.log.writeln('Minified: ' + String(min.length).green + ' bytes.');
-    }
-    if (report === 'gzip') {
-      // Note this option is pretty slow so it is not enabled by default
-      grunt.log.write('Gzipped:  ');
-      grunt.log.writeln(String(gzipSize(min)).green + ' bytes.');
-    }
-  };
-
-  exports.formatForType = function(string, type, namespace, filename) {
-    namespace = namespace || false;
-
-    if (type === 'amd' && namespace === false) {
-      string = 'return ' + string;
-    } else if (type === 'commonjs' && namespace === false) {
-      string = 'module.exports = ' + string;
-    } else if (type === 'amd' && namespace !== false || type === 'commonjs' && namespace !== false || type === 'js' && namespace !== false) {
-      string = namespace+'['+JSON.stringify(filename)+'] = '+string+';';
-    }
-
-    return string;
-  };
-
-  return exports;
-};

+ 0 - 1
node_modules/grunt-contrib-cssmin/node_modules/grunt-lib-contrib/node_modules/zlib-browserify/.npmignore

@@ -1 +0,0 @@
-node_modules

+ 0 - 43
node_modules/grunt-contrib-cssmin/node_modules/grunt-lib-contrib/node_modules/zlib-browserify/index.js

@@ -1,43 +0,0 @@
-const Zlib = module.exports = require('./zlib');
-
-// the least I can do is make error messages for the rest of the node.js/zlib api.
-// (thanks, dominictarr)
-function error () {
-  var m = [].slice.call(arguments).join(' ')
-  throw new Error([
-    m,
-    'we accept pull requests',
-    'http://github.com/brianloveswords/zlib-browserify'
-    ].join('\n'))
-}
-
-;['createGzip'
-, 'createGunzip'
-, 'createDeflate'
-, 'createDeflateRaw'
-, 'createInflate'
-, 'createInflateRaw'
-, 'createUnzip'
-, 'Gzip'
-, 'Gunzip'
-, 'Inflate'
-, 'InflateRaw'
-, 'Deflate'
-, 'DeflateRaw'
-, 'Unzip'
-, 'inflateRaw'
-, 'deflateRaw'].forEach(function (name) {
-  Zlib[name] = function () {
-    error('sorry,', name, 'is not implemented yet')
-  }
-});
-
-const _deflate = Zlib.deflate;
-const _gzip = Zlib.gzip;
-
-Zlib.deflate = function deflate(stringOrBuffer, callback) {
-  return _deflate(Buffer(stringOrBuffer), callback);
-};
-Zlib.gzip = function gzip(stringOrBuffer, callback) {
-  return _gzip(Buffer(stringOrBuffer), callback);
-};

+ 0 - 33
node_modules/grunt-contrib-cssmin/node_modules/grunt-lib-contrib/node_modules/zlib-browserify/package.json

@@ -1,33 +0,0 @@
-{
-  "name": "zlib-browserify",
-  "version": "0.0.1",
-  "description": "Wrapper for zlib.js to allow for browserifyication",
-  "main": "index.js",
-  "directories": {
-    "test": "test"
-  },
-  "dependencies": {},
-  "devDependencies": {
-    "tap": "~0.3.3"
-  },
-  "scripts": {
-    "test": "./node_modules/tap test/*.test.js"
-  },
-  "repository": {
-    "type": "git",
-    "url": "git://github.com/brianloveswords/zlib-browserify.git"
-  },
-  "keywords": [
-    "zlib",
-    "browserify"
-  ],
-  "author": {
-    "name": "Brian J. Brennan"
-  },
-  "license": "MIT",
-  "gitHead": "4be9419f0e8e9dec9629c8a538b33a4efd7df17b",
-  "readmeFilename": "readme.md",
-  "readme": "Zlib in yo' browser.\n",
-  "_id": "[email protected]",
-  "_from": "[email protected]"
-}

+ 0 - 1
node_modules/grunt-contrib-cssmin/node_modules/grunt-lib-contrib/node_modules/zlib-browserify/readme.md

@@ -1 +0,0 @@
-Zlib in yo' browser.

+ 0 - 65
node_modules/grunt-contrib-cssmin/node_modules/grunt-lib-contrib/node_modules/zlib-browserify/test/zlib.test.js

@@ -1,65 +0,0 @@
-const test = require('tap').test;
-const zlibA = require('zlib');
-const zlibB = require('..');
-const crypto = require('crypto');
-
-test('zlibA.deflate -> zlibB.inflate', function (t) {
-  const expect = crypto.randomBytes(1024);
-  zlibA.deflate(expect, function (err, cmpA) {
-    zlibB.inflate(cmpA, function (err, result) {
-      t.same(result, expect, 'should match');
-      t.end();
-    });
-  });
-});
-
-test('zlibB.deflate -> zlibA.inflate', function (t) {
-  const expect = crypto.randomBytes(1024);
-  zlibB.deflate(expect, function (err, cmpA) {
-    zlibA.inflate(cmpA, function (err, result) {
-      t.same(result, expect, 'should match');
-      t.end();
-    });
-  });
-});
-
-test('zlibB.deflate -> zlibA.inflate (string)', function (t) {
-  const expect = 'ohaihihihihihihihihihihihihihihihi';
-  zlibB.deflate(expect, function (err, cmpA) {
-    zlibA.inflate(cmpA, function (err, result) {
-      t.same(result.toString(), expect, 'should match');
-      t.end();
-    });
-  });
-});
-
-test('zlibA.gzip -> zlibB.gunzip', function (t) {
-  const expect = crypto.randomBytes(1024);
-  zlibA.gzip(expect, function (err, cmpA) {
-    zlibB.gunzip(cmpA, function (err, result) {
-      t.same(result, expect, 'should match');
-      t.end();
-    });
-  });
-});
-
-test('zlibB.gzip -> zlibA.gunzip', function (t) {
-  const expect = crypto.randomBytes(1024);
-  zlibB.gzip(expect, function (err, cmpA) {
-    zlibA.gunzip(cmpA, function (err, result) {
-      t.same(result, expect, 'should match');
-      t.end();
-    });
-  });
-});
-
-test('zlibB.gzip -> zlibA.gunzip', function (t) {
-  const expect = 'lololololoollolololoololololololololololololololololololololol';
-  zlibB.gzip(expect, function (err, cmpA) {
-    zlibA.gunzip(cmpA, function (err, result) {
-      t.same(result.toString(), expect, 'should match');
-      t.end();
-    });
-  });
-});
-

+ 0 - 55
node_modules/grunt-contrib-cssmin/node_modules/grunt-lib-contrib/node_modules/zlib-browserify/zlib.js

@@ -1,55 +0,0 @@
-/** @license zlib.js 2012 - imaya [ https://github.com/imaya/zlib.js ] The MIT License */
-(function() {'use strict';function m(c){throw c;}var r=void 0,u=!0;var B="undefined"!==typeof Uint8Array&&"undefined"!==typeof Uint16Array&&"undefined"!==typeof Uint32Array;function aa(c){if("string"===typeof c){var a=c.split(""),b,e;b=0;for(e=a.length;b<e;b++)a[b]=(a[b].charCodeAt(0)&255)>>>0;c=a}for(var f=1,d=0,g=c.length,h,j=0;0<g;){h=1024<g?1024:g;g-=h;do f+=c[j++],d+=f;while(--h);f%=65521;d%=65521}return(d<<16|f)>>>0};function I(c,a){this.index="number"===typeof a?a:0;this.n=0;this.buffer=c instanceof(B?Uint8Array:Array)?c:new (B?Uint8Array:Array)(32768);2*this.buffer.length<=this.index&&m(Error("invalid index"));this.buffer.length<=this.index&&this.f()}I.prototype.f=function(){var c=this.buffer,a,b=c.length,e=new (B?Uint8Array:Array)(b<<1);if(B)e.set(c);else for(a=0;a<b;++a)e[a]=c[a];return this.buffer=e};
-I.prototype.d=function(c,a,b){var e=this.buffer,f=this.index,d=this.n,g=e[f],h;b&&1<a&&(c=8<a?(K[c&255]<<24|K[c>>>8&255]<<16|K[c>>>16&255]<<8|K[c>>>24&255])>>32-a:K[c]>>8-a);if(8>a+d)g=g<<a|c,d+=a;else for(h=0;h<a;++h)g=g<<1|c>>a-h-1&1,8===++d&&(d=0,e[f++]=K[g],g=0,f===e.length&&(e=this.f()));e[f]=g;this.buffer=e;this.n=d;this.index=f};I.prototype.finish=function(){var c=this.buffer,a=this.index,b;0<this.n&&(c[a]<<=8-this.n,c[a]=K[c[a]],a++);B?b=c.subarray(0,a):(c.length=a,b=c);return b};
-var ba=new (B?Uint8Array:Array)(256),Q;for(Q=0;256>Q;++Q){for(var R=Q,ga=R,ha=7,R=R>>>1;R;R>>>=1)ga<<=1,ga|=R&1,--ha;ba[Q]=(ga<<ha&255)>>>0}var K=ba;var S={k:function(c,a,b){return S.update(c,0,a,b)},update:function(c,a,b,e){for(var f=S.L,d="number"===typeof b?b:b=0,g="number"===typeof e?e:c.length,a=a^4294967295,d=g&7;d--;++b)a=a>>>8^f[(a^c[b])&255];for(d=g>>3;d--;b+=8)a=a>>>8^f[(a^c[b])&255],a=a>>>8^f[(a^c[b+1])&255],a=a>>>8^f[(a^c[b+2])&255],a=a>>>8^f[(a^c[b+3])&255],a=a>>>8^f[(a^c[b+4])&255],a=a>>>8^f[(a^c[b+5])&255],a=a>>>8^f[(a^c[b+6])&255],a=a>>>8^f[(a^c[b+7])&255];return(a^4294967295)>>>0}},ia=S,ja,ka=[0,1996959894,3993919788,2567524794,
-124634137,1886057615,3915621685,2657392035,249268274,2044508324,3772115230,2547177864,162941995,2125561021,3887607047,2428444049,498536548,1789927666,4089016648,2227061214,450548861,1843258603,4107580753,2211677639,325883990,1684777152,4251122042,2321926636,335633487,1661365465,4195302755,2366115317,997073096,1281953886,3579855332,2724688242,1006888145,1258607687,3524101629,2768942443,901097722,1119000684,3686517206,2898065728,853044451,1172266101,3705015759,2882616665,651767980,1373503546,3369554304,
-3218104598,565507253,1454621731,3485111705,3099436303,671266974,1594198024,3322730930,2970347812,795835527,1483230225,3244367275,3060149565,1994146192,31158534,2563907772,4023717930,1907459465,112637215,2680153253,3904427059,2013776290,251722036,2517215374,3775830040,2137656763,141376813,2439277719,3865271297,1802195444,476864866,2238001368,4066508878,1812370925,453092731,2181625025,4111451223,1706088902,314042704,2344532202,4240017532,1658658271,366619977,2362670323,4224994405,1303535960,984961486,
-2747007092,3569037538,1256170817,1037604311,2765210733,3554079995,1131014506,879679996,2909243462,3663771856,1141124467,855842277,2852801631,3708648649,1342533948,654459306,3188396048,3373015174,1466479909,544179635,3110523913,3462522015,1591671054,702138776,2966460450,3352799412,1504918807,783551873,3082640443,3233442989,3988292384,2596254646,62317068,1957810842,3939845945,2647816111,81470997,1943803523,3814918930,2489596804,225274430,2053790376,3826175755,2466906013,167816743,2097651377,4027552580,
-2265490386,503444072,1762050814,4150417245,2154129355,426522225,1852507879,4275313526,2312317920,282753626,1742555852,4189708143,2394877945,397917763,1622183637,3604390888,2714866558,953729732,1340076626,3518719985,2797360999,1068828381,1219638859,3624741850,2936675148,906185462,1090812512,3747672003,2825379669,829329135,1181335161,3412177804,3160834842,628085408,1382605366,3423369109,3138078467,570562233,1426400815,3317316542,2998733608,733239954,1555261956,3268935591,3050360625,752459403,1541320221,
-2607071920,3965973030,1969922972,40735498,2617837225,3943577151,1913087877,83908371,2512341634,3803740692,2075208622,213261112,2463272603,3855990285,2094854071,198958881,2262029012,4057260610,1759359992,534414190,2176718541,4139329115,1873836001,414664567,2282248934,4279200368,1711684554,285281116,2405801727,4167216745,1634467795,376229701,2685067896,3608007406,1308918612,956543938,2808555105,3495958263,1231636301,1047427035,2932959818,3654703836,1088359270,936918E3,2847714899,3736837829,1202900863,
-817233897,3183342108,3401237130,1404277552,615818150,3134207493,3453421203,1423857449,601450431,3009837614,3294710456,1567103746,711928724,3020668471,3272380065,1510334235,755167117];ja=B?new Uint32Array(ka):ka;ia.L=ja;function na(){};function oa(c){this.buffer=new (B?Uint16Array:Array)(2*c);this.length=0}oa.prototype.getParent=function(c){return 2*((c-2)/4|0)};oa.prototype.push=function(c,a){var b,e,f=this.buffer,d;b=this.length;f[this.length++]=a;for(f[this.length++]=c;0<b;)if(e=this.getParent(b),f[b]>f[e])d=f[b],f[b]=f[e],f[e]=d,d=f[b+1],f[b+1]=f[e+1],f[e+1]=d,b=e;else break;return this.length};
-oa.prototype.pop=function(){var c,a,b=this.buffer,e,f,d;a=b[0];c=b[1];this.length-=2;b[0]=b[this.length];b[1]=b[this.length+1];for(d=0;;){f=2*d+2;if(f>=this.length)break;f+2<this.length&&b[f+2]>b[f]&&(f+=2);if(b[f]>b[d])e=b[d],b[d]=b[f],b[f]=e,e=b[d+1],b[d+1]=b[f+1],b[f+1]=e;else break;d=f}return{index:c,value:a,length:this.length}};function T(c){var a=c.length,b=0,e=Number.POSITIVE_INFINITY,f,d,g,h,j,i,q,l,k;for(l=0;l<a;++l)c[l]>b&&(b=c[l]),c[l]<e&&(e=c[l]);f=1<<b;d=new (B?Uint32Array:Array)(f);g=1;h=0;for(j=2;g<=b;){for(l=0;l<a;++l)if(c[l]===g){i=0;q=h;for(k=0;k<g;++k)i=i<<1|q&1,q>>=1;for(k=i;k<f;k+=j)d[k]=g<<16|l;++h}++g;h<<=1;j<<=1}return[d,b,e]};function pa(c,a){this.l=qa;this.F=0;this.input=c;this.b=0;a&&(a.lazy&&(this.F=a.lazy),"number"===typeof a.compressionType&&(this.l=a.compressionType),a.outputBuffer&&(this.a=B&&a.outputBuffer instanceof Array?new Uint8Array(a.outputBuffer):a.outputBuffer),"number"===typeof a.outputIndex&&(this.b=a.outputIndex));this.a||(this.a=new (B?Uint8Array:Array)(32768))}var qa=2,ra={NONE:0,K:1,u:qa,W:3},sa=[],U;
-for(U=0;288>U;U++)switch(u){case 143>=U:sa.push([U+48,8]);break;case 255>=U:sa.push([U-144+400,9]);break;case 279>=U:sa.push([U-256+0,7]);break;case 287>=U:sa.push([U-280+192,8]);break;default:m("invalid literal: "+U)}
-pa.prototype.h=function(){var c,a,b,e,f=this.input;switch(this.l){case 0:b=0;for(e=f.length;b<e;){a=B?f.subarray(b,b+65535):f.slice(b,b+65535);b+=a.length;var d=a,g=b===e,h=r,j=r,i=r,q=r,l=r,k=this.a,p=this.b;if(B){for(k=new Uint8Array(this.a.buffer);k.length<=p+d.length+5;)k=new Uint8Array(k.length<<1);k.set(this.a)}h=g?1:0;k[p++]=h|0;j=d.length;i=~j+65536&65535;k[p++]=j&255;k[p++]=j>>>8&255;k[p++]=i&255;k[p++]=i>>>8&255;if(B)k.set(d,p),p+=d.length,k=k.subarray(0,p);else{q=0;for(l=d.length;q<l;++q)k[p++]=
-d[q];k.length=p}this.b=p;this.a=k}break;case 1:var t=new I(new Uint8Array(this.a.buffer),this.b);t.d(1,1,u);t.d(1,2,u);var v=ta(this,f),x,F,w;x=0;for(F=v.length;x<F;x++)if(w=v[x],I.prototype.d.apply(t,sa[w]),256<w)t.d(v[++x],v[++x],u),t.d(v[++x],5),t.d(v[++x],v[++x],u);else if(256===w)break;this.a=t.finish();this.b=this.a.length;break;case qa:var A=new I(new Uint8Array(this.a),this.b),C,n,s,E,D,ca=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15],V,La,da,Ma,la,va=Array(19),Na,Z,ma,G,Oa;C=qa;A.d(1,
-1,u);A.d(C,2,u);n=ta(this,f);V=ua(this.T,15);La=wa(V);da=ua(this.S,7);Ma=wa(da);for(s=286;257<s&&0===V[s-1];s--);for(E=30;1<E&&0===da[E-1];E--);var Pa=s,Qa=E,M=new (B?Uint32Array:Array)(Pa+Qa),y,N,z,ea,L=new (B?Uint32Array:Array)(316),J,H,O=new (B?Uint8Array:Array)(19);for(y=N=0;y<Pa;y++)M[N++]=V[y];for(y=0;y<Qa;y++)M[N++]=da[y];if(!B){y=0;for(ea=O.length;y<ea;++y)O[y]=0}y=J=0;for(ea=M.length;y<ea;y+=N){for(N=1;y+N<ea&&M[y+N]===M[y];++N);z=N;if(0===M[y])if(3>z)for(;0<z--;)L[J++]=0,O[0]++;else for(;0<
-z;)H=138>z?z:138,H>z-3&&H<z&&(H=z-3),10>=H?(L[J++]=17,L[J++]=H-3,O[17]++):(L[J++]=18,L[J++]=H-11,O[18]++),z-=H;else if(L[J++]=M[y],O[M[y]]++,z--,3>z)for(;0<z--;)L[J++]=M[y],O[M[y]]++;else for(;0<z;)H=6>z?z:6,H>z-3&&H<z&&(H=z-3),L[J++]=16,L[J++]=H-3,O[16]++,z-=H}c=B?L.subarray(0,J):L.slice(0,J);la=ua(O,7);for(G=0;19>G;G++)va[G]=la[ca[G]];for(D=19;4<D&&0===va[D-1];D--);Na=wa(la);A.d(s-257,5,u);A.d(E-1,5,u);A.d(D-4,4,u);for(G=0;G<D;G++)A.d(va[G],3,u);G=0;for(Oa=c.length;G<Oa;G++)if(Z=c[G],A.d(Na[Z],
-la[Z],u),16<=Z){G++;switch(Z){case 16:ma=2;break;case 17:ma=3;break;case 18:ma=7;break;default:m("invalid code: "+Z)}A.d(c[G],ma,u)}var Ra=[La,V],Sa=[Ma,da],P,Ta,fa,ya,Ua,Va,Wa,Xa;Ua=Ra[0];Va=Ra[1];Wa=Sa[0];Xa=Sa[1];P=0;for(Ta=n.length;P<Ta;++P)if(fa=n[P],A.d(Ua[fa],Va[fa],u),256<fa)A.d(n[++P],n[++P],u),ya=n[++P],A.d(Wa[ya],Xa[ya],u),A.d(n[++P],n[++P],u);else if(256===fa)break;this.a=A.finish();this.b=this.a.length;break;default:m("invalid compression type")}return this.a};
-function xa(c,a){this.length=c;this.N=a}
-function za(){var c=Aa;switch(u){case 3===c:return[257,c-3,0];case 4===c:return[258,c-4,0];case 5===c:return[259,c-5,0];case 6===c:return[260,c-6,0];case 7===c:return[261,c-7,0];case 8===c:return[262,c-8,0];case 9===c:return[263,c-9,0];case 10===c:return[264,c-10,0];case 12>=c:return[265,c-11,1];case 14>=c:return[266,c-13,1];case 16>=c:return[267,c-15,1];case 18>=c:return[268,c-17,1];case 22>=c:return[269,c-19,2];case 26>=c:return[270,c-23,2];case 30>=c:return[271,c-27,2];case 34>=c:return[272,c-
-31,2];case 42>=c:return[273,c-35,3];case 50>=c:return[274,c-43,3];case 58>=c:return[275,c-51,3];case 66>=c:return[276,c-59,3];case 82>=c:return[277,c-67,4];case 98>=c:return[278,c-83,4];case 114>=c:return[279,c-99,4];case 130>=c:return[280,c-115,4];case 162>=c:return[281,c-131,5];case 194>=c:return[282,c-163,5];case 226>=c:return[283,c-195,5];case 257>=c:return[284,c-227,5];case 258===c:return[285,c-258,0];default:m("invalid length: "+c)}}var Ba=[],Aa,Ca;
-for(Aa=3;258>=Aa;Aa++)Ca=za(),Ba[Aa]=Ca[2]<<24|Ca[1]<<16|Ca[0];var Da=B?new Uint32Array(Ba):Ba;
-function ta(c,a){function b(a,c){var b=a.N,d=[],e=0,f;f=Da[a.length];d[e++]=f&65535;d[e++]=f>>16&255;d[e++]=f>>24;var g;switch(u){case 1===b:g=[0,b-1,0];break;case 2===b:g=[1,b-2,0];break;case 3===b:g=[2,b-3,0];break;case 4===b:g=[3,b-4,0];break;case 6>=b:g=[4,b-5,1];break;case 8>=b:g=[5,b-7,1];break;case 12>=b:g=[6,b-9,2];break;case 16>=b:g=[7,b-13,2];break;case 24>=b:g=[8,b-17,3];break;case 32>=b:g=[9,b-25,3];break;case 48>=b:g=[10,b-33,4];break;case 64>=b:g=[11,b-49,4];break;case 96>=b:g=[12,b-
-65,5];break;case 128>=b:g=[13,b-97,5];break;case 192>=b:g=[14,b-129,6];break;case 256>=b:g=[15,b-193,6];break;case 384>=b:g=[16,b-257,7];break;case 512>=b:g=[17,b-385,7];break;case 768>=b:g=[18,b-513,8];break;case 1024>=b:g=[19,b-769,8];break;case 1536>=b:g=[20,b-1025,9];break;case 2048>=b:g=[21,b-1537,9];break;case 3072>=b:g=[22,b-2049,10];break;case 4096>=b:g=[23,b-3073,10];break;case 6144>=b:g=[24,b-4097,11];break;case 8192>=b:g=[25,b-6145,11];break;case 12288>=b:g=[26,b-8193,12];break;case 16384>=
-b:g=[27,b-12289,12];break;case 24576>=b:g=[28,b-16385,13];break;case 32768>=b:g=[29,b-24577,13];break;default:m("invalid distance")}f=g;d[e++]=f[0];d[e++]=f[1];d[e++]=f[2];var h,i;h=0;for(i=d.length;h<i;++h)k[p++]=d[h];v[d[0]]++;x[d[3]]++;t=a.length+c-1;l=null}var e,f,d,g,h,j={},i,q,l,k=B?new Uint16Array(2*a.length):[],p=0,t=0,v=new (B?Uint32Array:Array)(286),x=new (B?Uint32Array:Array)(30),F=c.F,w;if(!B){for(d=0;285>=d;)v[d++]=0;for(d=0;29>=d;)x[d++]=0}v[256]=1;e=0;for(f=a.length;e<f;++e){d=h=0;
-for(g=3;d<g&&e+d!==f;++d)h=h<<8|a[e+d];j[h]===r&&(j[h]=[]);i=j[h];if(!(0<t--)){for(;0<i.length&&32768<e-i[0];)i.shift();if(e+3>=f){l&&b(l,-1);d=0;for(g=f-e;d<g;++d)w=a[e+d],k[p++]=w,++v[w];break}if(0<i.length){var A=r,C=r,n=0,s=r,E=r,D=r,ca=r,V=a.length,E=0,ca=i.length;a:for(;E<ca;E++){A=i[ca-E-1];s=3;if(3<n){for(D=n;3<D;D--)if(a[A+D-1]!==a[e+D-1])continue a;s=n}for(;258>s&&e+s<V&&a[A+s]===a[e+s];)++s;s>n&&(C=A,n=s);if(258===s)break}q=new xa(n,e-C);l?l.length<q.length?(w=a[e-1],k[p++]=w,++v[w],b(q,
-0)):b(l,-1):q.length<F?l=q:b(q,0)}else l?b(l,-1):(w=a[e],k[p++]=w,++v[w])}i.push(e)}k[p++]=256;v[256]++;c.T=v;c.S=x;return B?k.subarray(0,p):k}
-function ua(c,a){function b(a){var c=x[a][F[a]];c===l?(b(a+1),b(a+1)):--t[c];++F[a]}var e=c.length,f=new oa(572),d=new (B?Uint8Array:Array)(e),g,h,j,i,q;if(!B)for(i=0;i<e;i++)d[i]=0;for(i=0;i<e;++i)0<c[i]&&f.push(i,c[i]);g=Array(f.length/2);h=new (B?Uint32Array:Array)(f.length/2);if(1===g.length)return d[f.pop().index]=1,d;i=0;for(q=f.length/2;i<q;++i)g[i]=f.pop(),h[i]=g[i].value;var l=h.length,k=new (B?Uint16Array:Array)(a),p=new (B?Uint8Array:Array)(a),t=new (B?Uint8Array:Array)(l),v=Array(a),x=
-Array(a),F=Array(a),w=(1<<a)-l,A=1<<a-1,C,n,s,E,D;k[a-1]=l;for(n=0;n<a;++n)w<A?p[n]=0:(p[n]=1,w-=A),w<<=1,k[a-2-n]=(k[a-1-n]/2|0)+l;k[0]=p[0];v[0]=Array(k[0]);x[0]=Array(k[0]);for(n=1;n<a;++n)k[n]>2*k[n-1]+p[n]&&(k[n]=2*k[n-1]+p[n]),v[n]=Array(k[n]),x[n]=Array(k[n]);for(C=0;C<l;++C)t[C]=a;for(s=0;s<k[a-1];++s)v[a-1][s]=h[s],x[a-1][s]=s;for(C=0;C<a;++C)F[C]=0;1===p[a-1]&&(--t[0],++F[a-1]);for(n=a-2;0<=n;--n){E=C=0;D=F[n+1];for(s=0;s<k[n];s++)E=v[n+1][D]+v[n+1][D+1],E>h[C]?(v[n][s]=E,x[n][s]=l,D+=2):
-(v[n][s]=h[C],x[n][s]=C,++C);F[n]=0;1===p[n]&&b(n)}j=t;i=0;for(q=g.length;i<q;++i)d[g[i].index]=j[i];return d}function wa(c){var a=new (B?Uint16Array:Array)(c.length),b=[],e=[],f=0,d,g,h,j;d=0;for(g=c.length;d<g;d++)b[c[d]]=(b[c[d]]|0)+1;d=1;for(g=16;d<=g;d++)e[d]=f,f+=b[d]|0,f<<=1;d=0;for(g=c.length;d<g;d++){f=e[c[d]];e[c[d]]+=1;h=a[d]=0;for(j=c[d];h<j;h++)a[d]=a[d]<<1|f&1,f>>>=1}return a};function Ea(c,a){this.input=c;this.a=new (B?Uint8Array:Array)(32768);this.l=Fa.u;var b={},e;if((a||!(a={}))&&"number"===typeof a.compressionType)this.l=a.compressionType;for(e in a)b[e]=a[e];b.outputBuffer=this.a;this.H=new pa(this.input,b)}var Fa=ra;
-Ea.prototype.h=function(){var c,a,b,e,f,d,g,h=0;g=this.a;c=Ga;switch(c){case Ga:a=Math.LOG2E*Math.log(32768)-8;break;default:m(Error("invalid compression method"))}b=a<<4|c;g[h++]=b;switch(c){case Ga:switch(this.l){case Fa.NONE:f=0;break;case Fa.K:f=1;break;case Fa.u:f=2;break;default:m(Error("unsupported compression type"))}break;default:m(Error("invalid compression method"))}e=f<<6|0;g[h++]=e|31-(256*b+e)%31;d=aa(this.input);this.H.b=h;g=this.H.h();h=g.length;B&&(g=new Uint8Array(g.buffer),g.length<=
-h+4&&(this.a=new Uint8Array(g.length+4),this.a.set(g),g=this.a),g=g.subarray(0,h+4));g[h++]=d>>24&255;g[h++]=d>>16&255;g[h++]=d>>8&255;g[h++]=d&255;return g};function Ha(c,a){this.input=c;this.b=this.c=0;this.g={};a&&(a.flags&&(this.g=a.flags),"string"===typeof a.filename&&(this.filename=a.filename),"string"===typeof a.comment&&(this.comment=a.comment),a.deflateOptions&&(this.m=a.deflateOptions));this.m||(this.m={})}
-Ha.prototype.h=function(){var c,a,b,e,f,d,g,h,j=new (B?Uint8Array:Array)(32768),i=0,q=this.input,l=this.c,k=this.filename,p=this.comment;j[i++]=31;j[i++]=139;j[i++]=8;c=0;this.g.fname&&(c|=Ia);this.g.fcomment&&(c|=Ja);this.g.fhcrc&&(c|=Ka);j[i++]=c;a=(Date.now?Date.now():+new Date)/1E3|0;j[i++]=a&255;j[i++]=a>>>8&255;j[i++]=a>>>16&255;j[i++]=a>>>24&255;j[i++]=0;j[i++]=Ya;if(this.g.fname!==r){g=0;for(h=k.length;g<h;++g)d=k.charCodeAt(g),255<d&&(j[i++]=d>>>8&255),j[i++]=d&255;j[i++]=0}if(this.g.comment){g=
-0;for(h=p.length;g<h;++g)d=p.charCodeAt(g),255<d&&(j[i++]=d>>>8&255),j[i++]=d&255;j[i++]=0}this.g.fhcrc&&(b=S.k(j,0,i)&65535,j[i++]=b&255,j[i++]=b>>>8&255);this.m.outputBuffer=j;this.m.outputIndex=i;f=new pa(q,this.m);j=f.h();i=f.b;B&&(i+8>j.buffer.byteLength?(this.a=new Uint8Array(i+8),this.a.set(new Uint8Array(j.buffer)),j=this.a):j=new Uint8Array(j.buffer));e=S.k(q);j[i++]=e&255;j[i++]=e>>>8&255;j[i++]=e>>>16&255;j[i++]=e>>>24&255;h=q.length;j[i++]=h&255;j[i++]=h>>>8&255;j[i++]=h>>>16&255;j[i++]=
-h>>>24&255;this.c=l;B&&i<j.length&&(this.a=j=j.subarray(0,i));return j};var Ya=255,Ka=2,Ia=8,Ja=16;function W(c,a){this.p=[];this.q=32768;this.e=this.j=this.c=this.t=0;this.input=B?new Uint8Array(c):c;this.v=!1;this.r=Za;this.J=!1;if(a||!(a={}))a.index&&(this.c=a.index),a.bufferSize&&(this.q=a.bufferSize),a.bufferType&&(this.r=a.bufferType),a.resize&&(this.J=a.resize);switch(this.r){case $a:this.b=32768;this.a=new (B?Uint8Array:Array)(32768+this.q+258);break;case Za:this.b=0;this.a=new (B?Uint8Array:Array)(this.q);this.f=this.R;this.z=this.O;this.s=this.Q;break;default:m(Error("invalid inflate mode"))}}
-var $a=0,Za=1;
-W.prototype.i=function(){for(;!this.v;){var c=X(this,3);c&1&&(this.v=u);c>>>=1;switch(c){case 0:var a=this.input,b=this.c,e=this.a,f=this.b,d=r,g=r,h=r,j=e.length,i=r;this.e=this.j=0;d=a[b++];d===r&&m(Error("invalid uncompressed block header: LEN (first byte)"));g=d;d=a[b++];d===r&&m(Error("invalid uncompressed block header: LEN (second byte)"));g|=d<<8;d=a[b++];d===r&&m(Error("invalid uncompressed block header: NLEN (first byte)"));h=d;d=a[b++];d===r&&m(Error("invalid uncompressed block header: NLEN (second byte)"));h|=
-d<<8;g===~h&&m(Error("invalid uncompressed block header: length verify"));b+g>a.length&&m(Error("input buffer is broken"));switch(this.r){case $a:for(;f+g>e.length;){i=j-f;g-=i;if(B)e.set(a.subarray(b,b+i),f),f+=i,b+=i;else for(;i--;)e[f++]=a[b++];this.b=f;e=this.f();f=this.b}break;case Za:for(;f+g>e.length;)e=this.f({B:2});break;default:m(Error("invalid inflate mode"))}if(B)e.set(a.subarray(b,b+g),f),f+=g,b+=g;else for(;g--;)e[f++]=a[b++];this.c=b;this.b=f;this.a=e;break;case 1:this.s(ab,bb);break;
-case 2:cb(this);break;default:m(Error("unknown BTYPE: "+c))}}return this.z()};
-var db=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15],eb=B?new Uint16Array(db):db,fb=[3,4,5,6,7,8,9,10,11,13,15,17,19,23,27,31,35,43,51,59,67,83,99,115,131,163,195,227,258,258,258],gb=B?new Uint16Array(fb):fb,hb=[0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0,0,0],ib=B?new Uint8Array(hb):hb,jb=[1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193,257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577],kb=B?new Uint16Array(jb):jb,lb=[0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,
-10,11,11,12,12,13,13],mb=B?new Uint8Array(lb):lb,nb=new (B?Uint8Array:Array)(288),Y,ob;Y=0;for(ob=nb.length;Y<ob;++Y)nb[Y]=143>=Y?8:255>=Y?9:279>=Y?7:8;var ab=T(nb),pb=new (B?Uint8Array:Array)(30),qb,rb;qb=0;for(rb=pb.length;qb<rb;++qb)pb[qb]=5;var bb=T(pb);function X(c,a){for(var b=c.j,e=c.e,f=c.input,d=c.c,g;e<a;)g=f[d++],g===r&&m(Error("input buffer is broken")),b|=g<<e,e+=8;g=b&(1<<a)-1;c.j=b>>>a;c.e=e-a;c.c=d;return g}
-function sb(c,a){for(var b=c.j,e=c.e,f=c.input,d=c.c,g=a[0],h=a[1],j,i,q;e<h;)j=f[d++],j===r&&m(Error("input buffer is broken")),b|=j<<e,e+=8;i=g[b&(1<<h)-1];q=i>>>16;c.j=b>>q;c.e=e-q;c.c=d;return i&65535}
-function cb(c){function a(a,b,c){var d,f,e,g;for(g=0;g<a;)switch(d=sb(this,b),d){case 16:for(e=3+X(this,2);e--;)c[g++]=f;break;case 17:for(e=3+X(this,3);e--;)c[g++]=0;f=0;break;case 18:for(e=11+X(this,7);e--;)c[g++]=0;f=0;break;default:f=c[g++]=d}return c}var b=X(c,5)+257,e=X(c,5)+1,f=X(c,4)+4,d=new (B?Uint8Array:Array)(eb.length),g,h,j,i;for(i=0;i<f;++i)d[eb[i]]=X(c,3);g=T(d);h=new (B?Uint8Array:Array)(b);j=new (B?Uint8Array:Array)(e);c.s(T(a.call(c,b,g,h)),T(a.call(c,e,g,j)))}
-W.prototype.s=function(c,a){var b=this.a,e=this.b;this.A=c;for(var f=b.length-258,d,g,h,j;256!==(d=sb(this,c));)if(256>d)e>=f&&(this.b=e,b=this.f(),e=this.b),b[e++]=d;else{g=d-257;j=gb[g];0<ib[g]&&(j+=X(this,ib[g]));d=sb(this,a);h=kb[d];0<mb[d]&&(h+=X(this,mb[d]));e>=f&&(this.b=e,b=this.f(),e=this.b);for(;j--;)b[e]=b[e++-h]}for(;8<=this.e;)this.e-=8,this.c--;this.b=e};
-W.prototype.Q=function(c,a){var b=this.a,e=this.b;this.A=c;for(var f=b.length,d,g,h,j;256!==(d=sb(this,c));)if(256>d)e>=f&&(b=this.f(),f=b.length),b[e++]=d;else{g=d-257;j=gb[g];0<ib[g]&&(j+=X(this,ib[g]));d=sb(this,a);h=kb[d];0<mb[d]&&(h+=X(this,mb[d]));e+j>f&&(b=this.f(),f=b.length);for(;j--;)b[e]=b[e++-h]}for(;8<=this.e;)this.e-=8,this.c--;this.b=e};
-W.prototype.f=function(){var c=new (B?Uint8Array:Array)(this.b-32768),a=this.b-32768,b,e,f=this.a;if(B)c.set(f.subarray(32768,c.length));else{b=0;for(e=c.length;b<e;++b)c[b]=f[b+32768]}this.p.push(c);this.t+=c.length;if(B)f.set(f.subarray(a,a+32768));else for(b=0;32768>b;++b)f[b]=f[a+b];this.b=32768;return f};
-W.prototype.R=function(c){var a,b=this.input.length/this.c+1|0,e,f,d,g=this.input,h=this.a;c&&("number"===typeof c.B&&(b=c.B),"number"===typeof c.M&&(b+=c.M));2>b?(e=(g.length-this.c)/this.A[2],d=258*(e/2)|0,f=d<h.length?h.length+d:h.length<<1):f=h.length*b;B?(a=new Uint8Array(f),a.set(h)):a=h;return this.a=a};
-W.prototype.z=function(){var c=0,a=this.a,b=this.p,e,f=new (B?Uint8Array:Array)(this.t+(this.b-32768)),d,g,h,j;if(0===b.length)return B?this.a.subarray(32768,this.b):this.a.slice(32768,this.b);d=0;for(g=b.length;d<g;++d){e=b[d];h=0;for(j=e.length;h<j;++h)f[c++]=e[h]}d=32768;for(g=this.b;d<g;++d)f[c++]=a[d];this.p=[];return this.buffer=f};
-W.prototype.O=function(){var c,a=this.b;B?this.J?(c=new Uint8Array(a),c.set(this.a.subarray(0,a))):c=this.a.subarray(0,a):(this.a.length>a&&(this.a.length=a),c=this.a);return this.buffer=c};function tb(c){this.input=c;this.c=0;this.member=[]}
-tb.prototype.i=function(){for(var c=this.input.length;this.c<c;){var a=new na,b=r,e=r,f=r,d=r,g=r,h=r,j=r,i=r,q=r,l=this.input,k=this.c;a.C=l[k++];a.D=l[k++];(31!==a.C||139!==a.D)&&m(Error("invalid file signature:",a.C,a.D));a.w=l[k++];switch(a.w){case 8:break;default:m(Error("unknown compression method: "+a.w))}a.o=l[k++];i=l[k++]|l[k++]<<8|l[k++]<<16|l[k++]<<24;a.Z=new Date(1E3*i);a.aa=l[k++];a.$=l[k++];0<(a.o&4)&&(a.V=l[k++]|l[k++]<<8,k+=a.V);if(0<(a.o&Ia)){j=[];for(h=0;0<(g=l[k++]);)j[h++]=String.fromCharCode(g);
-a.name=j.join("")}if(0<(a.o&Ja)){j=[];for(h=0;0<(g=l[k++]);)j[h++]=String.fromCharCode(g);a.comment=j.join("")}0<(a.o&Ka)&&(a.P=S.k(l,0,k)&65535,a.P!==(l[k++]|l[k++]<<8)&&m(Error("invalid header crc16")));b=l[l.length-4]|l[l.length-3]<<8|l[l.length-2]<<16|l[l.length-1]<<24;l.length-k-4-4<512*b&&(d=b);e=new W(l,{index:k,bufferSize:d});a.data=f=e.i();k=e.c;a.X=q=(l[k++]|l[k++]<<8|l[k++]<<16|l[k++]<<24)>>>0;S.k(f)!==q&&m(Error("invalid CRC-32 checksum: 0x"+S.k(f).toString(16)+" / 0x"+q.toString(16)));
-a.Y=b=(l[k++]|l[k++]<<8|l[k++]<<16|l[k++]<<24)>>>0;(f.length&4294967295)!==b&&m(Error("invalid input size: "+(f.length&4294967295)+" / "+b));this.member.push(a);this.c=k}var p=this.member,t,v,x=0,F=0,w;t=0;for(v=p.length;t<v;++t)F+=p[t].data.length;if(B){w=new Uint8Array(F);for(t=0;t<v;++t)w.set(p[t].data,x),x+=p[t].data.length}else{w=[];for(t=0;t<v;++t)w[t]=p[t].data;w=Array.prototype.concat.apply([],w)}return w};function ub(c,a){var b,e;this.input=c;this.c=0;if(a||!(a={}))a.index&&(this.c=a.index),a.verify&&(this.U=a.verify);b=c[this.c++];e=c[this.c++];switch(b&15){case Ga:this.method=Ga;break;default:m(Error("unsupported compression method"))}0!==((b<<8)+e)%31&&m(Error("invalid fcheck flag:"+((b<<8)+e)%31));e&32&&m(Error("fdict flag is not supported"));this.I=new W(c,{index:this.c,bufferSize:a.bufferSize,bufferType:a.bufferType,resize:a.resize})}
-ub.prototype.i=function(){var c=this.input,a,b;a=this.I.i();this.c=this.I.c;this.U&&(b=(c[this.c++]<<24|c[this.c++]<<16|c[this.c++]<<8|c[this.c++])>>>0,b!==aa(a)&&m(Error("invalid adler-32 checksum")));return a};exports.deflate=vb;exports.deflateSync=wb;exports.inflate=xb;exports.inflateSync=yb;exports.gzip=zb;exports.gzipSync=Ab;exports.gunzip=Bb;exports.gunzipSync=Cb;function vb(c,a,b){process.nextTick(function(){var e,f;try{f=wb(c,b)}catch(d){e=d}a(e,f)})}function wb(c,a){var b;b=(new Ea(c)).h();a||(a={});return a.G?b:Db(b)}function xb(c,a,b){process.nextTick(function(){var e,f;try{f=yb(c,b)}catch(d){e=d}a(e,f)})}
-function yb(c,a){var b;c.subarray=c.slice;b=(new ub(c)).i();a||(a={});return a.noBuffer?b:Db(b)}function zb(c,a,b){process.nextTick(function(){var e,f;try{f=Ab(c,b)}catch(d){e=d}a(e,f)})}function Ab(c,a){var b;c.subarray=c.slice;b=(new Ha(c)).h();a||(a={});return a.G?b:Db(b)}function Bb(c,a,b){process.nextTick(function(){var e,f;try{f=Cb(c,b)}catch(d){e=d}a(e,f)})}function Cb(c,a){var b;c.subarray=c.slice;b=(new tb(c)).i();a||(a={});return a.G?b:Db(b)}
-function Db(c){var a=new Buffer(c.length),b,e;b=0;for(e=c.length;b<e;++b)a[b]=c[b];return a};var Eb=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15];B&&new Uint16Array(Eb);var Fb=[3,4,5,6,7,8,9,10,11,13,15,17,19,23,27,31,35,43,51,59,67,83,99,115,131,163,195,227,258,258,258];B&&new Uint16Array(Fb);var Gb=[0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0,0,0];B&&new Uint8Array(Gb);var Hb=[1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193,257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577];B&&new Uint16Array(Hb);
-var Ib=[0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13];B&&new Uint8Array(Ib);var Jb=new (B?Uint8Array:Array)(288),$,Kb;$=0;for(Kb=Jb.length;$<Kb;++$)Jb[$]=143>=$?8:255>=$?9:279>=$?7:8;T(Jb);var Lb=new (B?Uint8Array:Array)(30),Mb,Nb;Mb=0;for(Nb=Lb.length;Mb<Nb;++Mb)Lb[Mb]=5;T(Lb);var Ga=8;}).call(this);

Datei-Diff unterdrückt, da er zu groß ist
+ 0 - 55
node_modules/grunt-contrib-cssmin/node_modules/grunt-lib-contrib/package.json


+ 0 - 233
node_modules/grunt-contrib-cssmin/node_modules/grunt-lib-contrib/test/lib_test.js

@@ -1,233 +0,0 @@
-var grunt = require('grunt');
-var helper = require('../lib/contrib.js').init(grunt);
-
-exports.lib = {
-  getNamespaceDeclaration: function(test) {
-    'use strict';
-
-    test.expect(10);
-
-    // Both test should result in this[JST]
-    var expected = {
-      namespace: 'this["JST"]',
-      declaration: 'this["JST"] = this["JST"] || {};'
-    };
-
-    var actual = helper.getNamespaceDeclaration("this.JST");
-    test.equal(expected.namespace, actual.namespace, 'namespace with square brackets incorrect');
-    test.equal(expected.declaration, actual.declaration, 'namespace declaration with square brackets incorrect');
-
-    actual = helper.getNamespaceDeclaration("JST");
-    test.equal(expected.namespace, actual.namespace, 'namespace with square brackets incorrect');
-    test.equal(expected.declaration, actual.declaration, 'namespace declaration with square brackets incorrect');
-
-    // Templates should be declared globally if this provided
-    expected = {
-      namespace: "this",
-      declaration: ""
-    };
-
-    actual = helper.getNamespaceDeclaration("this");
-    test.equal(expected.namespace, actual.namespace, 'namespace with square brackets incorrect');
-    test.equal(expected.declaration, actual.declaration, 'namespace declaration with square brackets incorrect');
-
-    // Nested namespace declaration
-    expected = {
-      namespace: 'this["GUI"]["Templates"]["Main"]',
-      declaration:  'this["GUI"] = this["GUI"] || {};\n' +
-                    'this["GUI"]["Templates"] = this["GUI"]["Templates"] || {};\n' +
-                    'this["GUI"]["Templates"]["Main"] = this["GUI"]["Templates"]["Main"] || {};'
-    };
-
-    actual = helper.getNamespaceDeclaration("GUI.Templates.Main");
-    test.equal(expected.namespace, actual.namespace, 'namespace incorrect');
-    test.equal(expected.declaration, actual.declaration, 'namespace declaration incorrect');
-
-    // Namespace that contains square brackets
-    expected = {
-      namespace: 'this["main"]["[test]"]["[test2]"]',
-      declaration: 'this["main"] = this["main"] || {};\n' +
-                   'this["main"]["[test]"] = this["main"]["[test]"] || {};\n' +
-                   'this["main"]["[test]"]["[test2]"] = this["main"]["[test]"]["[test2]"] || {};'
-    };
-
-    actual = helper.getNamespaceDeclaration("main.[test].[test2]");
-    test.equal(expected.namespace, actual.namespace, 'namespace with square brackets incorrect');
-    test.equal(expected.declaration, actual.declaration, 'namespace declaration with square brackets incorrect');
-
-    test.done();
-  },
-  optsToArgs: function(test) {
-    'use strict';
-
-    test.expect(1);
-
-    var fixture = {
-      key: 'a',
-      key2: 1,
-      key3: true,
-      key4: false,
-      key5: ['a', 'b']
-    };
-    var expected = ['--key', 'a', '--key2', '1', '--key3', '--key5', 'a', '--key5', 'b' ].toString();
-    var actual = helper.optsToArgs(fixture).toString();
-    test.equal(expected, actual, 'should convert object to array of CLI arguments');
-
-    test.done();
-  },
-  stripPath: function(test) {
-    'use strict';
-    var path = require('path');
-
-    test.expect(4);
-
-    var actual = helper.stripPath('path1/path2', 'path1');
-    var expected = 'path2';
-    test.equal(expected, actual, 'should strip path from a directory path and trim it.');
-
-    actual = helper.stripPath('path1/path2/path3/path4', 'path1/path2');
-    expected = path.normalize('path3/path4');
-    test.equal(expected, actual, 'should strip path from a directory path and trim it. (deep)');
-
-    actual = helper.stripPath('path1/file.ext', 'path1');
-    expected = 'file.ext';
-    test.equal(expected, actual, 'should strip path from a file path and trim it.');
-
-    actual = helper.stripPath('path1/path2/path3/path4/file.ext', 'path1/path2');
-    expected = path.normalize('path3/path4/file.ext');
-    test.equal(expected, actual, 'should strip path from a file path and trim it. (deep)');
-
-    test.done();
-  },
-  minMaxInfo: function(test) {
-    'use strict';
-    test.expect(3);
-
-    var max = new Array(100).join('blah ');
-    var min = max.replace(/\s+/g, '');
-
-    var actual;
-    var expected;
-
-    grunt.util.hooker.hook(grunt.log, 'writeln', {
-      pre: function(result) {
-        actual += grunt.log.uncolor(result) + grunt.util.linefeed;
-        return grunt.util.hooker.preempt();
-      }
-    });
-
-    grunt.util.hooker.hook(grunt.log, 'write', {
-      pre: function(result) {
-        actual += grunt.log.uncolor(result);
-        return grunt.util.hooker.preempt();
-      }
-    });
-
-
-    // No reporting option
-    actual = '';
-    expected = '';
-
-    helper.minMaxInfo(min, max);
-    test.equal(expected, actual, 'should not have reported min and max info.');
-
-    // Report minification results
-    actual = '';
-    expected = [
-      'Original: 495 bytes.',
-      'Minified: 396 bytes.'
-    ].join(grunt.util.linefeed) + grunt.util.linefeed;
-
-    helper.minMaxInfo(min, max, 'min');
-    test.equal(expected, actual, 'should have logged min and max info.');
-
-    // Report minification and gzip results
-    actual = '';
-    expected = [
-      'Original: 495 bytes.',
-      'Minified: 396 bytes.',
-      'Gzipped:  36 bytes.'
-    ].join(grunt.util.linefeed) + grunt.util.linefeed;
-
-    helper.minMaxInfo(min, max, 'gzip');
-    test.equal(expected, actual, 'should have logged min, max, gzip info.');
-
-    grunt.util.hooker.unhook(grunt.log, 'writeln');
-    grunt.util.hooker.unhook(grunt.log, 'write');
-    test.done();
-  },
-  formatToType: {
-    amd: function(test) {
-
-      'use strict';
-
-      test.expect(2);
-
-      var string = function () { };
-
-      var actual = helper.formatForType(string, 'amd', 'JST', 'test');
-      var expected = 'JST["test"] = function () { };';
-      test.equal(expected, actual, 'should format string to amd with namespace');
-
-      actual = helper.formatForType(string, 'amd');
-      expected = "return function () { }";
-      test.equal(expected, actual, 'should format string to amd');
-
-      test.done();
-    },
-    commonjs: function(test) {
-
-      'use strict';
-
-      test.expect(2);
-
-      var string = function () { };
-
-      var actual = helper.formatForType(string, 'commonjs', 'JST', 'test');
-      var expected = 'JST["test"] = function () { };';
-      test.equal(expected, actual, 'should format string to commonjs with namespace');
-
-      actual = helper.formatForType(string, 'commonjs');
-      expected = "module.exports = function () { }";
-      test.equal(expected, actual, 'should format string to commonjs');
-
-      test.done();
-    },
-    js: function(test) {
-
-      'use strict';
-
-      test.expect(2);
-
-      var string = function () { };
-
-      var actual = helper.formatForType(string, 'js', 'JST', 'test');
-      var expected = 'JST["test"] = function () { };';
-      test.equal(expected, actual, 'should format string to js with namespace');
-
-      actual = helper.formatForType(string, 'js');
-      expected = 'function () { }';
-      test.equal(expected, actual, 'should format string to js');
-
-      test.done();
-    },
-    html: function(test) {
-
-      'use strict';
-
-      test.expect(2);
-
-      var string = function () { };
-
-      var actual = helper.formatForType(string, 'html', 'JST', 'test');
-      var expected = 'function () { }';
-      test.equal(expected, actual, 'should format string to html with namespace');
-
-      actual = helper.formatForType(string, 'html');
-      expected = 'function () { }';
-      test.equal(expected, actual, 'should format string to html');
-
-      test.done();
-    }
-  }
-};

Datei-Diff unterdrückt, da er zu groß ist
+ 0 - 72
node_modules/grunt-contrib-cssmin/package.json


+ 0 - 61
node_modules/grunt-contrib-cssmin/tasks/cssmin.js

@@ -1,61 +0,0 @@
-/*
- * grunt-contrib-cssmin
- * http://gruntjs.com/
- *
- * Copyright (c) 2012 Tim Branyen, contributors
- * Licensed under the MIT license.
- */
-
-'use strict';
-
-module.exports = function(grunt) {
-  var helper = require('grunt-lib-contrib').init(grunt);
-  var path = require('path');
-
-  grunt.registerMultiTask('cssmin', 'Minify CSS files', function() {
-    var options = this.options({
-      report: false
-    });
-    this.files.forEach(function(f) {
-      var valid = 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 "' + filepath + '" not found.');
-          return false;
-        } else {
-          return true;
-        }
-      });
-      var max = valid
-      .map(grunt.file.read)
-      .join(grunt.util.normalizelf(grunt.util.linefeed));
-      var min = valid.map(function(f) {
-        options.relativeTo = path.dirname(f);
-        return minifyCSS(grunt.file.read(f), options);
-      })
-      .join('');
-
-      if (min.length < 1) {
-        grunt.log.warn('Destination not written because minified CSS was empty.');
-      } else {
-        if ( options.banner ) {
-          min = options.banner + grunt.util.linefeed + min;
-        }
-        grunt.file.write(f.dest, min);
-        grunt.log.writeln('File ' + f.dest + ' created.');
-        if(options.report) {
-          helper.minMaxInfo(min, max, options.report);
-        }
-      }
-    });
-  });
-
-  var minifyCSS = function(source, options) {
-    try {
-      return require('clean-css').process(source, options);
-    } catch (e) {
-      grunt.log.error(e);
-      grunt.fail.warn('css minification failed.');
-    }
-  };
-};

+ 0 - 49
node_modules/grunt-contrib-cssmin/test/cssmin_test.js

@@ -1,49 +0,0 @@
-'use strict';
-
-var grunt = require('grunt');
-
-exports.cssmin = {
-  main: function(test) {
-    test.expect(1);
-
-    var expect = grunt.file.read('test/expected/style.css');
-    var result = grunt.file.read('tmp/style.css');
-    test.equal(expect, result, 'should concat and minify an array of css files in order using clean-css');
-
-    test.done();
-  },
-  with_banner: function(test) {
-    test.expect(1);
-
-    var expect = grunt.file.read('test/expected/with-banner.css');
-    var result = grunt.file.read('tmp/with-banner.css');
-    test.equal(expect, result, 'should concat, minify and prefix banner');
-
-    test.done();
-  },
-  empty: function(test) {
-    test.expect(1);
-
-    test.ok(!grunt.file.exists('tmp/idontexist.css'), 'Empty minified file should not exist');
-
-    test.done();
-  },
-  remove_first_comment: function(test) {
-    test.expect(1);
-
-    var expect = grunt.file.read('test/expected/input_bannered.css');
-    var result = grunt.file.read('tmp/remove_first_comment.css');
-    test.equal(expect, result, 'should minify and replace banner');
-
-    test.done();
-  },
-  imports: function(test) {
-    test.expect(1);
-
-    var expect = grunt.file.read('test/expected/inline_import.css');
-    var result = grunt.file.read('tmp/inline_import.css');
-    test.equal(expect, result, 'should inline @import');
-
-    test.done();
-  }
-};

+ 0 - 1
node_modules/grunt-contrib-cssmin/test/expected/inline_import.css

@@ -1 +0,0 @@
-body{color:#00f}body{background-color:red}p{color:#0f0}p{background-color:#f0f}

+ 0 - 2
node_modules/grunt-contrib-cssmin/test/expected/input_bannered.css

@@ -1,2 +0,0 @@
-/* custom banner */
-body{border:1px solid gold}

+ 0 - 1
node_modules/grunt-contrib-cssmin/test/expected/style.css

@@ -1 +0,0 @@
-body{margin:0;font-size:18px}a{color:#00f}h1{font-size:48px;font-weight:700}

+ 0 - 2
node_modules/grunt-contrib-cssmin/test/expected/with-banner.css

@@ -1,2 +0,0 @@
-/* module name - my awesome css banner */
-body{margin:0;font-size:18px}a{color:#00f}h1{font-size:48px;font-weight:700}

+ 0 - 4
node_modules/grunt-contrib-cssmin/test/fixtures/inner/input_inline_import.css

@@ -1,4 +0,0 @@
-@import url(input_inline_import2.css);
-p {
-    background-color: #f0f;
-}

+ 0 - 3
node_modules/grunt-contrib-cssmin/test/fixtures/inner/input_inline_import2.css

@@ -1,3 +0,0 @@
-p {
-    color: #0f0;
-}

+ 0 - 4
node_modules/grunt-contrib-cssmin/test/fixtures/input_bannered.css

@@ -1,4 +0,0 @@
-/*! special banner comment */
-body {
-        border: 1px solid gold;
-}

+ 0 - 4
node_modules/grunt-contrib-cssmin/test/fixtures/input_inline_import.css

@@ -1,4 +0,0 @@
-@import url(input_inline_import2.css);
-body {
-    background-color: #f00;
-}

+ 0 - 3
node_modules/grunt-contrib-cssmin/test/fixtures/input_inline_import2.css

@@ -1,3 +0,0 @@
-body {
-    color: #00f;
-}

+ 0 - 5
node_modules/grunt-contrib-cssmin/test/fixtures/input_one.css

@@ -1,5 +0,0 @@
-body {
-  margin: 0;
-  font-size: 18px;
-}
-a { color: #00f; }

+ 0 - 4
node_modules/grunt-contrib-cssmin/test/fixtures/input_two.css

@@ -1,4 +0,0 @@
-h1 {
-  font-size: 48px;
-  font-weight: bold;
-}

+ 0 - 14
node_modules/grunt-contrib-jshint/.jshintrc

@@ -1,14 +0,0 @@
-{
-  "curly": true,
-  "eqeqeq": true,
-  "immed": true,
-  "latedef": true,
-  "newcap": true,
-  "noarg": true,
-  "sub": true,
-  "undef": true,
-  "boss": true,
-  "eqnull": true,
-  "node": true,
-  "es5": true
-}

+ 0 - 3
node_modules/grunt-contrib-jshint/.npmignore

@@ -1,3 +0,0 @@
-node_modules
-npm-debug.log
-tmp

+ 0 - 3
node_modules/grunt-contrib-jshint/.travis.yml

@@ -1,3 +0,0 @@
-language: node_js
-node_js:
-  - 0.8

+ 0 - 2
node_modules/grunt-contrib-jshint/AUTHORS

@@ -1,2 +0,0 @@
-"Cowboy" Ben Alman (http://benalman.com/)
-Tyler Kellen (http://goingslowly.com/)

+ 0 - 18
node_modules/grunt-contrib-jshint/CHANGELOG

@@ -1,18 +0,0 @@
-v0.1.1:
-  date: 2013-02-15
-  changes:
-    - First official release for Grunt 0.4.0.
-v0.1.1rc6:
-  date: 2013-01-18
-  changes:
-    - Updating grunt/gruntplugin dependencies to rc6.
-    - Changing in-development grunt/gruntplugin dependency versions from tilde version ranges to specific versions.
-v0.1.1rc5:
-  date: 2013-01-09
-  changes:
-    - Updating to work with grunt v0.4.0rc5.
-    - Switching to this.filesSrc api.
-v0.1.0:
-  date: 2012-10-18
-  changes:
-    - Work in progress, not yet officially released.

+ 0 - 1
node_modules/grunt-contrib-jshint/CONTRIBUTING.md

@@ -1 +0,0 @@
-Please see the [Contributing to grunt](http://gruntjs.com/contributing) guide for information on contributing to this project.

+ 0 - 52
node_modules/grunt-contrib-jshint/Gruntfile.js

@@ -1,52 +0,0 @@
-/*
- * grunt-contrib-jshint
- * http://gruntjs.com/
- *
- * Copyright (c) 2012 "Cowboy" Ben Alman, contributors
- * Licensed under the MIT license.
- */
-
-'use strict';
-
-module.exports = function(grunt) {
-
-  // Project configuration.
-  grunt.initConfig({
-    jshint: {
-      all_files: [
-        'Gruntfile.js',
-        'tasks/*.js',
-        '<%= nodeunit.tests %>'
-      ],
-      individual_files: {
-        files: [
-          {src: 'Gruntfile.js'},
-          {src: 'tasks/*.js'},
-          {src: '<%= nodeunit.tests %>'},
-        ]
-      },
-      options: {
-        jshintrc: '.jshintrc',
-      }
-    },
-
-    // Unit tests.
-    nodeunit: {
-      tests: ['test/*_test.js']
-    }
-  });
-
-  // Actually load this plugin's task(s).
-  grunt.loadTasks('tasks');
-
-  // These plugins provide necessary tasks.
-  grunt.loadNpmTasks('grunt-contrib-nodeunit');
-  grunt.loadNpmTasks('grunt-contrib-internal');
-
-  // Whenever the "test" task is run, run the "nodeunit" task.
-  grunt.registerTask('test', ['nodeunit']);
-
-  // By default, lint and run all tests.
-  grunt.registerTask('default', ['jshint', 'test', 'build-contrib']);
-
-};

+ 0 - 22
node_modules/grunt-contrib-jshint/LICENSE-MIT

@@ -1,22 +0,0 @@
-Copyright (c) 2012 "Cowboy" Ben Alman, contributors
-
-Permission is hereby granted, free of charge, to any person
-obtaining a copy of this software and associated documentation
-files (the "Software"), to deal in the Software without
-restriction, including without limitation the rights to use,
-copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the
-Software is furnished to do so, subject to the following
-conditions:
-
-The above copyright notice and this permission notice shall be
-included in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
-OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
-HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
-WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
-FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
-OTHER DEALINGS IN THE SOFTWARE.

+ 0 - 140
node_modules/grunt-contrib-jshint/README.md

@@ -1,140 +0,0 @@
-# grunt-contrib-jshint [![Build Status](https://secure.travis-ci.org/gruntjs/grunt-contrib-jshint.png?branch=master)](http://travis-ci.org/gruntjs/grunt-contrib-jshint)
-
-> Validate files with JSHint.
-
-
-
-## Getting Started
-This plugin requires Grunt `~0.4.0`
-
-If 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:
-
-```shell
-npm install grunt-contrib-jshint --save-dev
-```
-
-One the plugin has been installed, it may be enabled inside your Gruntfile with this line of JavaScript:
-
-```js
-grunt.loadNpmTasks('grunt-contrib-jshint');
-```
-
-
-
-
-## Jshint task
-_Run this task with the `grunt jshint` command._
-
-Task targets, files and options may be specified according to the grunt [Configuring tasks](http://gruntjs.com/configuring-tasks) guide.
-### Options
-
-Any specified option will be passed through directly to [JSHint][], thus you can specify any option that JSHint supports. See the [JSHint documentation][] for a list of supported options.
-
-[JSHint]: http://www.jshint.com/
-[JSHint documentation]: http://www.jshint.com/docs/
-
-A few additional options are supported:
-
-#### globals
-Type: `Object`
-Default value: `null`
-
-A map of global variables, with keys as names and a boolean value to determine if they are assignable. This is not a standard JSHint option, but is passed into the `JSHINT` function as its third argument. See the [JSHint documentation][] for more information.
-
-#### jshintrc
-Type: `String`
-Default value: `null`
-
-If this filename is specified, options and globals defined therein will be used. The `jshintrc` file must be valid JSON and looks something like this:
-
-```json
-{
-  "curly": true,
-  "eqnull": true,
-  "eqeqeq": true,
-  "undef": true,
-  "globals": {
-    "jQuery": true
-  }
-}
-```
-
-### Usage examples
-
-#### Wildcards
-In this example, running `grunt jshint:all` (or `grunt jshint` because `jshint` is a [multi task][]) will lint the project's Gruntfile as well as all JavaScript files in the `lib` and `test` directories and their subdirectores, using the default JSHint options.
-
-```js
-// Project configuration.
-grunt.initConfig({
-  jshint: {
-    all: ['Gruntfile.js', 'lib/**/*.js', 'test/**/*.js']
-  }
-});
-```
-
-#### Linting before and after concatenating
-In this example, running `grunt jshint` will lint both the "beforeconcat" set and "afterconcat" sets of files. This is not ideal, because `dist/output.js` may get linted before it gets created via the [grunt-contrib-concat plugin](https://github.com/gruntjs/grunt-contrib-concat) `concat` task.
-
-In this case, you should lint the "beforeconcat" files first, then concat, then lint the "afterconcat" files, by running `grunt jshint:beforeconcat concat jshint:afterconcat`.
-
-```js
-// Project configuration.
-grunt.initConfig({
-  concat: {
-    dist: {
-      src: ['src/foo.js', 'src/bar.js'],
-      dest: 'dist/output.js'
-    }
-  },
-  jshint: {
-    beforeconcat: ['src/foo.js', 'src/bar.js'],
-    afterconcat: ['dist/output.js']
-  }
-});
-```
-
-#### Specifying JSHint options and globals
-
-In this example, custom JSHint options are specified. Note that when `grunt jshint:uses_defaults` is run, those files are linted using the default options, but when `grunt jshint:with_overrides` is run, those files are linted using _merged_ task/target options.
-
-```js
-// Project configuration.
-grunt.initConfig({
-  jshint: {
-    options: {
-      curly: true,
-      eqeqeq: true,
-      eqnull: true,
-      browser: true,
-      globals: {
-        jQuery: true
-      },
-    },
-    uses_defaults: ['dir1/**/*.js', 'dir2/**/*.js'],
-    with_overrides: {
-      options: {
-        curly: false,
-        undef: true,
-      },
-      files: {
-        src: ['dir3/**/*.js', 'dir4/**/*.js']
-      },
-    }
-  },
-});
-```
-
-
-## Release History
-
- * 2013-02-14   v0.1.1   First official release for Grunt 0.4.0.
- * 2013-01-17   v0.1.1rc6   Updating grunt/gruntplugin dependencies to rc6. Changing in-development grunt/gruntplugin dependency versions from tilde version ranges to specific versions.
- * 2013-01-08   v0.1.1rc5   Updating to work with grunt v0.4.0rc5. Switching to this.filesSrc api.
- * 2012-10-17   v0.1.0   Work in progress, not yet officially released.
-
----
-
-Task submitted by ["Cowboy" Ben Alman](http://benalman.com/)
-
-*This file was generated on Mon Feb 18 2013 08:53:58.*

+ 0 - 65
node_modules/grunt-contrib-jshint/docs/jshint-examples.md

@@ -1,65 +0,0 @@
-# Usage examples
-
-## Wildcards
-In this example, running `grunt jshint:all` (or `grunt jshint` because `jshint` is a [multi task][]) will lint the project's Gruntfile as well as all JavaScript files in the `lib` and `test` directories and their subdirectores, using the default JSHint options.
-
-```js
-// Project configuration.
-grunt.initConfig({
-  jshint: {
-    all: ['Gruntfile.js', 'lib/**/*.js', 'test/**/*.js']
-  }
-});
-```
-
-## Linting before and after concatenating
-In this example, running `grunt jshint` will lint both the "beforeconcat" set and "afterconcat" sets of files. This is not ideal, because `dist/output.js` may get linted before it gets created via the [grunt-contrib-concat plugin](https://github.com/gruntjs/grunt-contrib-concat) `concat` task.
-
-In this case, you should lint the "beforeconcat" files first, then concat, then lint the "afterconcat" files, by running `grunt jshint:beforeconcat concat jshint:afterconcat`.
-
-```js
-// Project configuration.
-grunt.initConfig({
-  concat: {
-    dist: {
-      src: ['src/foo.js', 'src/bar.js'],
-      dest: 'dist/output.js'
-    }
-  },
-  jshint: {
-    beforeconcat: ['src/foo.js', 'src/bar.js'],
-    afterconcat: ['dist/output.js']
-  }
-});
-```
-
-## Specifying JSHint options and globals
-
-In this example, custom JSHint options are specified. Note that when `grunt jshint:uses_defaults` is run, those files are linted using the default options, but when `grunt jshint:with_overrides` is run, those files are linted using _merged_ task/target options.
-
-```js
-// Project configuration.
-grunt.initConfig({
-  jshint: {
-    options: {
-      curly: true,
-      eqeqeq: true,
-      eqnull: true,
-      browser: true,
-      globals: {
-        jQuery: true
-      },
-    },
-    uses_defaults: ['dir1/**/*.js', 'dir2/**/*.js'],
-    with_overrides: {
-      options: {
-        curly: false,
-        undef: true,
-      },
-      files: {
-        src: ['dir3/**/*.js', 'dir4/**/*.js']
-      },
-    }
-  },
-});
-```

+ 0 - 32
node_modules/grunt-contrib-jshint/docs/jshint-options.md

@@ -1,32 +0,0 @@
-# Options
-
-Any specified option will be passed through directly to [JSHint][], thus you can specify any option that JSHint supports. See the [JSHint documentation][] for a list of supported options.
-
-[JSHint]: http://www.jshint.com/
-[JSHint documentation]: http://www.jshint.com/docs/
-
-A few additional options are supported:
-
-## globals
-Type: `Object`
-Default value: `null`
-
-A map of global variables, with keys as names and a boolean value to determine if they are assignable. This is not a standard JSHint option, but is passed into the `JSHINT` function as its third argument. See the [JSHint documentation][] for more information.
-
-## jshintrc
-Type: `String`
-Default value: `null`
-
-If this filename is specified, options and globals defined therein will be used. The `jshintrc` file must be valid JSON and looks something like this:
-
-```json
-{
-  "curly": true,
-  "eqnull": true,
-  "eqeqeq": true,
-  "undef": true,
-  "globals": {
-    "jQuery": true
-  }
-}
-```

+ 0 - 1
node_modules/grunt-contrib-jshint/docs/jshint-overview.md

@@ -1 +0,0 @@
-Task targets, files and options may be specified according to the grunt [Configuring tasks](http://gruntjs.com/configuring-tasks) guide.

+ 0 - 2
node_modules/grunt-contrib-jshint/node_modules/.bin/jshint

@@ -1,2 +0,0 @@
-#!/usr/bin/env node
-require('./../lib/cli').interpret(process.argv);

+ 0 - 4
node_modules/grunt-contrib-jshint/node_modules/jshint/LICENSE

@@ -1,4 +0,0 @@
-** Licensed Under **
-
-  The MIT License
-  http://www.opensource.org/licenses/mit-license.php

+ 0 - 91
node_modules/grunt-contrib-jshint/node_modules/jshint/README.md

@@ -1,91 +0,0 @@
-# node-jshint
-
-A command line interface and npm package for jshint.
-
-## Install
-
-To use jshint from any location (for npm v1.x) you need to install using the global (-g) flag.
-
-    npm install -g jshint
-
-## Usage
-
-    jshint -h
-
-You can also require JSHint itself as a module.
-
-    var jshint = require('jshint');
-
-Note: If you are using npm v1.x be sure to install jshint locally (without the -g flag) or link it globally.
-
-## Text Editor Plugins
-
-* [gedit-node-jshint](https://github.com/niftylettuce/gedit-node-jshint) - Simply use CTRL+J in gedit to run JSHint using `node-jshint`.
-* [vim syntastic](https://github.com/scrooloose/syntastic) - Run node-jshint at each file save.
-* [sublime-jshint](https://github.com/uipoet/sublime-jshint) - `F7` or `command-B` on any .js file. `F4` next error line,column. `shift-F4` previous error line,column.
-
-## Custom Reporters
-
-Specify a custom reporter module (see example/reporter.js).
-
-    --reporter path/to/reporter.js
-
-Use a jslint compatible xml reporter.
-
-    --jslint-reporter
-
-Show additional non-error data generated by jshint (unused globals etc).
-
-    --show-non-errors
-
-## Configuration Options
-
-**Note:** This behavior described below is very different from versions prior to `0.6`.
-
-The CLI uses the default options that come with JSHint. 
-
-Only one extra option is unique to node-jshint: `globals` 
-allows you to define an object of globals that get ignored for every file.
-To see an example you can look at how whitelisted globals are defined
-in the [jshint code](https://github.com/jshint/jshint/blob/c047ea1b01097fcc220fcd1a55c41f67ae2e6e81/jshint.js#L556)
-
-To have your own configuration apply, there are several methods you can use:
-
-### Specify Manually
-
-Setting the `--config=/path/to/your/config` command line option to specify your own configuration file outside of the directory tree for your project.
-
-### Within your Project's Directory Tree
-
-When the CLI is called, and a configuration file isn't specified already, `node-jshint` will attempt to locate one for you starting in `pwd`. (or "present working directory") If this does not yield a `.jshintrc` file, it will move one level up (`..`) the directory tree all the way up to the filesystem root. If a file is found, it stops immediately and uses that set of configuration.
-
-This setup allows you to set up **one** configuration file for your entire project. (place it in the root folder) As long as you run `jshint` from anywhere within your project directory tree, the same configuration file will be used.
-
-### Home Directory
-
-If all the methods above do not yield a `.jshintrc` to use, the last place that will be checked is your user's `$HOME` directory.
-
-## File Extensions
-
-Default extension for files is ".js". If you want to use JSHint with other file extensions (.json), you need to pass this extra extension as an option :
-
-    --extra-ext .json
-
-## Ignoring Files and Directories
-
-If there is a .jshintignore file in your project's directory tree, (also provided you run `jshint` from within your project's directory) then any directories or files specified will be skipped over. (behaves just like a `.gitignore` file)
-
-**Note:** Pattern matching uses minimatch, with the nocase [option](https://github.com/isaacs/minimatch). When there is no match, it performs a left side match (when no forward slashes present and path is a directory).
-
-## Installing dependencies for development
-
-    ./configure
-
-## Build Commands
-
-    jake -T
-
-## Project Guidelines
-
-* All tests are passing.
-* No (new) JSHint errors are introduced.

+ 0 - 2
node_modules/grunt-contrib-jshint/node_modules/jshint/bin/hint

@@ -1,2 +0,0 @@
-#!/usr/bin/env node
-require('./../lib/cli').interpret(process.argv);

+ 0 - 159
node_modules/grunt-contrib-jshint/node_modules/jshint/lib/cli.js

@@ -1,159 +0,0 @@
-var fs = require('fs'),
-    path = require('path'),
-    cli = require('cli').enable('glob', 'help'),
-    hint = require('./hint');
-
-function existsSync() {
-    var obj = fs.existsSync ? fs : path;
-    return obj.existsSync.apply(obj, arguments);
-}
-
-function _removeJsComments(str) {
-    str = str || '';
-
-    // replace everything between "/* */" in a non-greedy way
-    // The English version of the regex is:
-    //   match '/*'
-    //   then match 0 or more instances of any character (including newlines)
-    //     except for instances of '*/'
-    //   then match '*/'
-    str = str.replace(/\/\*(?:(?!\*\/)[\s\S])*\*\//g, '');
-
-    str = str.replace(/\/\/[^\n\r]*/g, ''); //everything after "//"
-    return str;
-}
-
-function _loadAndParseConfig(filePath) {
-    return filePath && existsSync(filePath) ?
-            JSON.parse(_removeJsComments(fs.readFileSync(filePath, "utf-8"))) : {};
-}
-
-/**
- * This function searches for a file with a specified name, it starts
- * with the dir passed, and traverses up the filesystem until it either
- * finds the file, or hits the root
- *
- * @param {String} name  Filename to search for (.jshintrc, .jshintignore)
- * @param {String} dir   Defaults to process.cwd()
- */
-function _searchFile(name, dir) {
-    dir = dir || process.cwd();
-
-    var filename = path.normalize(path.join(dir, name)),
-        parent = path.resolve(dir, "..");
-
-    if (existsSync(filename)) {
-        return filename;
-    }
-
-    return dir === parent ? null : _searchFile(name, parent);
-}
-
-function _findConfig() {
-    var name = ".jshintrc",
-        projectConfig = _searchFile(name),
-        homeConfig = path.normalize(path.join(process.env.HOME, name));
-
-    if (projectConfig) {
-        return projectConfig;
-    }
-
-    // if no project config, check $HOME
-    if (existsSync(homeConfig)) {
-        return homeConfig;
-    }
-
-    return false;
-}
-
-function _print(results) {
-    function exit() {
-        process.exit(results.length > 0 ? 1 : 0);
-    }
-
-    // avoid stdout cutoff in node 0.4.x, also supports 0.5.x
-    // see https://github.com/joyent/node/issues/1669
-    try {
-        if (!process.stdout.flush()) {
-            process.stdout.once("drain", exit);
-        } else {
-            exit();
-        }
-    } catch (e) {
-        exit();
-    }
-}
-
-module.exports = {
-    interpret: function (args) {
-        var config, reporter, options,
-            customConfig, customReporter,
-            ignoreFile, ignores, extraExtensionList;
-
-        cli.setArgv(args);
-        cli.options = {};
-        options = cli.parse({
-            'version':  ['v', 'display package version', 'boolean', false],
-            'config':   ['config', 'custom config file', 'string', false],
-            'reporter': ['reporter', 'custom reporter', 'string', undefined],
-            'jslint-reporter': ['jslint-reporter', 'use a jslint compatible xml reporter'],
-            'checkstyle-reporter': ['checkstyle-reporter', 'use a CheckStyle compatible xml reporter'],
-            'show-non-errors': ['show-non-errors', 'show additional data generated by jshint'],
-            'extra-ext': ['extra-ext', 'comma-separated list of file extensions to use (.js is default)', 'string', '']
-        });
-
-        customConfig = options.config;
-        customReporter = options.reporter ? path.resolve(process.cwd(), options.reporter) : null;
-        extraExtensionList = options["extra-ext"];
-
-        if (options.version) {
-            cli.setApp(path.resolve(__dirname + "/../package.json"));
-            process.stdout.write(cli.version + "\n");
-            return;
-        }
-
-        if (options.help || !cli.args.length) {
-            cli.getUsage();
-            process.exit();
-            return;
-        }
-
-        if (options['jslint-reporter']) {
-            customReporter = "./reporters/jslint_xml.js";
-        }
-
-        if (options['checkstyle-reporter']) {
-            customReporter = "./reporters/checkstyle.js";
-        }
-
-        if (options['show-non-errors']) {
-            customReporter = "./reporters/non_error.js";
-        }
-
-        config = _loadAndParseConfig(customConfig ? customConfig : _findConfig());
-
-        if (customReporter) {
-            try {
-                reporter = require(customReporter).reporter;
-            } catch (r) {
-                process.stdout.write("Error opening reporter file: " + customReporter);
-                process.stdout.write(r + "\n");
-                process.exit(1);
-            }
-        }
-
-        ignoreFile = _searchFile(".jshintignore");
-
-        if (ignoreFile) {
-            ignores = fs.readFileSync(ignoreFile, "utf8").split("\n")
-                .filter(function (line) {
-                    return !!line.trim();
-                })
-                .map(function (line) {
-                    return path.resolve(path.dirname(ignoreFile), line.trim());
-                });
-        }
-
-        _print(hint.hint(cli.args, config, reporter, ignores, extraExtensionList));
-    }
-};

+ 0 - 125
node_modules/grunt-contrib-jshint/node_modules/jshint/lib/hint.js

@@ -1,125 +0,0 @@
-var fs = require('fs'),
-    minimatch = require('minimatch'),
-    path = require('path'),
-    jshint = require('./../packages/jshint/jshint.js'),
-    _reporter = require('./reporters/default').reporter,
-    _cache = {
-        directories: {}
-    };
-
-function _lint(file, results, config, data) {
-    var buffer,
-        globals,
-        lintdata;
-
-    // config may be a pointer, but we modify it below, which changes it the next time it is used.
-    config = !config ? {} : Object.keys(config).reduce(function (obj, key) {
-        obj[key] = config[key];
-        return obj;
-    }, {});
-
-    try {
-        buffer = fs.readFileSync(file, 'utf-8');
-    } catch (e) {
-        process.stdout.write("Error: Cant open: " + file);
-        process.stdout.write(e + '\n');
-    }
-
-    // Remove potential Unicode Byte Order Mark.
-    buffer = buffer.replace(/^\uFEFF/, '');
-
-    // remove custom node-jshint option
-    if (config.globals) {
-        globals = config.globals;
-        delete config.globals;
-    }
-
-    if (!jshint.JSHINT(buffer, config, globals)) {
-        jshint.JSHINT.errors.forEach(function (error) {
-            if (error) {
-                results.push({file: file, error: error});
-            }
-        });
-    }
-
-    lintdata = jshint.JSHINT.data();
-
-    if (lintdata) {
-        lintdata.file = file;
-        data.push(lintdata);
-    }
-}
-
-function isDirectory(aPath) {
-    var isDir;
-
-    try {
-        if (_cache.directories.hasOwnProperty(aPath)) {
-            isDir = _cache.directories[aPath];
-        } else {
-            isDir = fs.statSync(aPath).isDirectory();
-            _cache.directories[aPath] = isDir;
-        }
-    } catch (e) {
-        isDir = false;
-    }
-
-    return isDir;
-}
-
-
-function _shouldIgnore(somePath, ignore) {
-    function isIgnored(p) {
-        var fnmatch = minimatch(somePath, p, {nocase: true}),
-            absmatch = path.resolve(somePath) === p,
-            lsmatch = isDirectory(p) && p.match(/^[^\/]*\/?$/) &&
-                somePath.match(new RegExp("^" + p + ".*"));
-
-        return !!(fnmatch || lsmatch || absmatch);
-    }
-
-    return ignore.some(function (ignorePath) {
-        return isIgnored(ignorePath);
-    });
-}
-
-function _collect(filePath, files, ignore, regExtension) {
-    if (ignore && _shouldIgnore(filePath, ignore)) {
-        return;
-    }
-    if (fs.statSync(filePath).isDirectory()) {
-        fs.readdirSync(filePath).forEach(function (item) {
-            _collect(path.join(filePath, item), files, ignore, regExtension);
-        });
-    } else if (filePath.match(regExtension)) {
-        files.push(filePath);
-    }
-}
-
-module.exports = {
-    hint: function (targets, config, reporter, ignore, extraExtensionList) {
-        var files = [],
-            results = [],
-            data = [],
-            regExtension;
-
-        extraExtensionList = extraExtensionList || "";
-        regExtension = new RegExp('\\.(js' + (extraExtensionList === "" ? "" : "|" + extraExtensionList.replace(/,/g, "|").replace(/[\. ]/g, "")) + ")$");
-
-        targets.forEach(function (target) {
-            _collect(target, files, ignore, regExtension);
-        });
-
-        files.forEach(function (file) {
-            _lint(file, results, config, data);
-        });
-
-        _cache = {
-            directories: {}
-        };
-
-        (reporter || _reporter)(results, data);
-
-        return results;
-    }
-};

+ 0 - 107
node_modules/grunt-contrib-jshint/node_modules/jshint/lib/reporters/checkstyle.js

@@ -1,107 +0,0 @@
-// Author: Boy Baukema
-// http://github.com/relaxnow
-module.exports =
-{
-    reporter: function (results, data)
-    {
-        "use strict";
-
-        var files = {},
-            out = [],
-            pairs = {
-                "&": "&amp;",
-                '"': "&quot;",
-                "'": "&apos;",
-                "<": "&lt;",
-                ">": "&gt;"
-            },
-            file, fileName, i, issue, globals, unuseds;
-
-        function encode(s) {
-            for (var r in pairs) {
-                if (typeof(s) !== "undefined") {
-                    s = s.replace(new RegExp(r, "g"), pairs[r]);
-                }
-            }
-            return s || "";
-        }
-
-        results.forEach(function (result) {
-            // Register the file
-            result.file = result.file.replace(/^\.\//, '');
-            if (!files[result.file]) {
-                files[result.file] = [];
-            }
-
-            // Add the error
-            files[result.file].push({
-                severity: 'error',
-                line: result.error.line,
-                column: result.error.character,
-                message: result.error.reason,
-                source: result.error.raw
-            });
-        });
-
-        data.forEach(function (result) {
-            file = data.file;
-            globals = result.implieds;
-            unuseds = result.unused;
-
-            // Register the file
-            result.file = result.file.replace(/^\.\//, '');
-            if (!files[result.file]) {
-                files[result.file] = [];
-            }
-
-            if (globals) {
-                globals.forEach(function (global) {
-                    files[result.file].push({
-                        severity: 'warning',
-                        line: global.line,
-                        column: 0,
-                        message: "Implied global '" + global.name + "'",
-                        source: 'jshint.implied-globals'
-                    });
-                });
-            }
-            if (unuseds) {
-                unuseds.forEach(function (unused) {
-                    files[result.file].push({
-                        severity: 'warning',
-                        line: unused.line,
-                        column: 0,
-                        message: "Unused variable: '" + unused.name + "'",
-                        source: 'jshint.implied-unuseds'
-                    });
-                });
-            }
-        });
-
-        out.push("<?xml version=\"1.0\" encoding=\"utf-8\"?>");
-        out.push("<checkstyle version=\"4.3\">");
-
-        for (fileName in files) {
-            if (files.hasOwnProperty(fileName)) {
-                out.push("\t<file name=\"" + fileName + "\">");
-                for (i = 0; i < files[fileName].length; i++) {
-                    issue = files[fileName][i];
-                    out.push(
-                        "\t\t<error " +
-                            "line=\"" + issue.line + "\" " +
-                            "column=\"" + issue.column + "\" " +
-                            "severity=\"" + issue.severity + "\" " +
-                            "message=\"" + encode(issue.message) + "\" " +
-                            "source=\"" + encode(issue.source) + "\" " +
-                            "/>"
-                    );
-                }
-                out.push("\t</file>");
-            }
-        }
-
-        out.push("</checkstyle>");
-
-        process.stdout.write(out.join("\n") + "\n");
-    }
-};

Einige Dateien werden nicht angezeigt, da zu viele Dateien in diesem Diff geändert wurden.