You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ignite.apache.org by an...@apache.org on 2015/05/08 13:36:38 UTC

[13/52] [partial] incubator-ignite git commit: # ignite-843 WIP.

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/0ef79031/modules/webconfig/nodejs/node_modules/jade/node_modules/transformers/lib/transformers.js
----------------------------------------------------------------------
diff --git a/modules/webconfig/nodejs/node_modules/jade/node_modules/transformers/lib/transformers.js b/modules/webconfig/nodejs/node_modules/jade/node_modules/transformers/lib/transformers.js
new file mode 100644
index 0000000..27b765e
--- /dev/null
+++ b/modules/webconfig/nodejs/node_modules/jade/node_modules/transformers/lib/transformers.js
@@ -0,0 +1,604 @@
+var dirname = require('path').dirname;
+var Transformer = require('./shared');
+
+/**
+ * minifiers must be first in order to be incorporated inside instances of respective output formats
+ */
+var uglifyJS = require('uglify-js');
+exports.uglify = exports.uglifyJS = exports['uglify-js'] = new Transformer({
+  name: 'uglify-js',
+  engines: ['.'],
+  outputFormat: 'js',
+  isMinifier: true,
+  sync: function (str, options) {
+    options.fromString = true;
+    return this.cache(options) || this.cache(options, uglifyJS.minify(str, options).code);
+  }
+});
+var uglifyCSS = require('css');
+exports.uglifyCSS = exports['uglify-css'] = new Transformer({
+  name: 'uglify-css',
+  engines: ['.'],
+  outputFormat: 'css',
+  isMinifier: true,
+  sync: function (str, options) {
+    options.compress = options.compress != false && options.beautify != true;
+    return this.cache(options) || this.cache(options, uglifyCSS.stringify(uglifyCSS.parse(str), options));
+  }
+});
+
+exports.uglifyJSON = exports['uglify-json'] = new Transformer({
+  name: 'uglify-json',
+  engines: ['.'],
+  outputFormat: 'json',
+  isMinifier: true,
+  sync: function (str, options) {
+    return JSON.stringify(JSON.parse(str), null, options.beautify);
+  }
+});
+
+
+/**
+ * Syncronous Templating Languages
+ */
+
+function sync(str, options) {
+  var tmpl = this.cache(options) || this.cache(options, this.engine.compile(str, options));
+  return tmpl(options);
+}
+
+exports.swig = new Transformer({
+  name: 'swig',
+  engines: ['swig'],
+  outputFormat: 'xml',
+  sync: sync
+});
+
+exports.atpl = new Transformer({
+  name: 'atpl',
+  engines: ['atpl'],
+  outputFormat: 'xml',
+  sync: function sync(str, options) {
+    var tmpl = this.cache(options);
+    if (!tmpl) {
+      var cInfo = {cache: options.cache, filename: options.filename};
+      if (options.filename) {
+        delete options.filename; //atpl can't handle absolute windows file paths properly
+      }
+      tmpl = this.cache(cInfo, this.engine.compile(str, options));
+    }
+    return tmpl(options);
+  }
+});
+
+exports.dot = new Transformer({
+  name: 'dot',
+  engines: ['dot'],
+  outputFormat: 'xml',
+  sync: function sync(str, options) {
+    var tmpl = this.cache(options) || this.cache(options, this.engine.template(str));
+    return tmpl(options);
+  }
+});
+
+exports.liquor = new Transformer({
+  name: 'liquor',
+  engines: ['liquor'],
+  outputFormat: 'xml',
+  sync: sync
+});
+
+exports.ejs = new Transformer({
+  name: 'ejs',
+  engines: ['ejs'],
+  outputFormat: 'xml',
+  sync: sync
+});
+
+exports.eco = new Transformer({
+  name: 'eco',
+  engines: ['eco'],
+  outputFormat: 'xml',
+  sync: sync//N.B. eco's internal this.cache isn't quite right but this bypasses it
+});
+
+exports.jqtpl = new Transformer({
+  name: 'jqtpl',
+  engines: ['jqtpl'],
+  outputFormat: 'xml',
+  sync: function (str, options) {
+    var engine = this.engine;
+    var key = (options.cache && options.filename) ? options.filename : '@';
+    engine.compile(str, key);
+    var res = this.engine.render(key, options);
+    if (!(options.cache && options.filename)) {
+      delete engine.cache[key];
+    }
+    this.cache(options, true); // caching handled internally
+    return res;
+  }
+});
+
+exports.haml = new Transformer({
+  name: 'haml',
+  engines: ['hamljs'],
+  outputFormat: 'xml',
+  sync: sync
+});
+
+exports['haml-coffee'] = new Transformer({
+  name: 'haml-coffee',
+  engines: ['haml-coffee'],
+  outputFormat: 'xml',
+  sync: sync
+});
+
+exports.whiskers = new Transformer({
+  name: 'whiskers',
+  engines: ['whiskers'],
+  outputFormat: 'xml',
+  sync: sync
+});
+
+exports.hogan = new Transformer({
+  name: 'hogan',
+  engines: ['hogan.js'],
+  outputFormat: 'xml',
+  sync: function(str, options){
+    var tmpl = this.cache(options) || this.cache(options, this.engine.compile(str, options));
+    return tmpl.render(options, options.partials);
+  }
+});
+
+exports.handlebars = new Transformer({
+  name: 'handlebars',
+  engines: ['handlebars'],
+  outputFormat: 'xml',
+  sync: function(str, options){
+    for (var partial in options.partials) {
+      this.engine.registerPartial(partial, options.partials[partial]);
+    }
+    var tmpl = this.cache(options) || this.cache(options, this.engine.compile(str, options));
+    return tmpl(options);
+  }
+});
+
+exports.underscore = new Transformer({
+  name: 'underscore',
+  engines: ['underscore'],
+  outputFormat: 'xml',
+  sync: function(str, options){
+    var tmpl = this.cache(options) || this.cache(options, this.engine.template(str));
+    return tmpl(options);
+  }
+});
+
+exports.walrus = new Transformer({
+  name: 'walrus',
+  engines: ['walrus'],
+  outputFormat: 'xml',
+  sync: function(str, options){
+    var tmpl = this.cache(options) || this.cache(options, this.engine.parse(str));
+    return tmpl.compile(options);
+  }
+});
+
+exports.mustache = new Transformer({
+  name: 'mustache',
+  engines: ['mustache'],
+  outputFormat: 'xml',
+  sync: function(str, options){
+    var tmpl = this.cache(options) || this.cache(options, this.engine.compile(str));
+    return tmpl(options, options.partials);
+  }
+});
+
+exports.templayed = new Transformer({
+  name: 'templayed',
+  engines: ['templayed'],
+  outputFormat: 'xml',
+  sync: function(str, options){
+    var tmpl = this.cache(options) || this.cache(options, this.engine(str));
+    return tmpl(options);
+  }
+});
+
+exports.plates = new Transformer({
+  name: 'plates',
+  engines: ['plates'],
+  outputFormat: 'xml',
+  sync: function(str, options){
+    str = this.cache(options) || this.cache(options, str);
+    return this.engine.bind(str, options, options.map);
+  }
+});
+
+exports.mote = new Transformer({
+  name: 'mote',
+  engines: ['mote'],
+  outputFormat: 'xml',
+  sync: sync
+});
+
+exports.toffee = new Transformer({
+  name: 'toffee',
+  engines: ['toffee'],
+  outputFormat: 'xml',
+  sync: function (str, options) {
+    var View = this.engine.view;
+    var v = this.cache(options) || this.cache(options, new View(str, options));
+    var res = v.run(options, require('vm').createContext({}));
+    if (res[0]) throw res[0];
+    else return res[1];
+  }
+});
+
+exports.coffeekup = exports.coffeecup = new Transformer({
+  name: 'coffeecup',
+  engines: ['coffeecup', 'coffeekup'],
+  outputFormat: 'xml',
+  sync: function (str, options) {
+    var compiled = this.cache(options) || this.cache(options, this.engine.compile(str, options));
+    return compiled(options);
+  }
+});
+
+/**
+ * Asyncronous Templating Languages
+ */
+
+exports.just = new Transformer({
+  name: 'just',
+  engines: ['just'],
+  outputFormat: 'xml',
+  sudoSync: true,
+  async: function (str, options, cb) {
+    var JUST = this.engine;
+    var tmpl = this.cache(options) || this.cache(options, new JUST({ root: { page: str }}));
+    tmpl.render('page', options, cb);
+  }
+});
+
+exports.ect = new Transformer({
+  name: 'ect',
+  engines: ['ect'],
+  outputFormat: 'xml',
+  sudoSync: true, // Always runs syncronously
+  async: function (str, options, cb) {
+    var ECT = this.engine;
+    var tmpl = this.cache(options) || this.cache(options, new ECT({ root: { page: str }}));
+    tmpl.render('page', options, cb);
+  }
+});
+
+exports.jade = new Transformer({
+  name: 'jade',
+  engines: ['jade', 'then-jade'],
+  outputFormat: 'xml',
+  sudoSync: 'The jade file FILENAME could not be rendered syncronously.  N.B. then-jade does not support syncronous rendering.',
+  async: function (str, options, cb) {
+    this.cache(options, true);//jade handles this.cache internally
+    this.engine.render(str, options, cb);
+  }
+})
+
+exports.dust = new Transformer({
+  name: 'dust',
+  engines: ['dust', 'dustjs-linkedin'],
+  outputFormat: 'xml',
+  sudoSync: false,
+  async: function (str, options, cb) {
+    var ext = 'dust'
+      , views = '.';
+
+    if (options) {
+      if (options.ext) ext = options.ext;
+      if (options.views) views = options.views;
+      if (options.settings && options.settings.views) views = options.settings.views;
+    }
+
+    this.engine.onLoad = function(path, callback){
+      if ('' == extname(path)) path += '.' + ext;
+      if ('/' !== path[0]) path = views + '/' + path;
+      read(path, options, callback);
+    };
+
+    var tmpl = this.cache(options) || this.cache(options, this.engine.compileFn(str));
+    if (options && !options.cache) this.engine.cache = {};//invalidate dust's internal cache
+    tmpl(options, cb);
+  }
+});
+
+exports.jazz = new Transformer({
+  name: 'jazz',
+  engines: ['jazz'],
+  outputFormat: 'xml',
+  sudoSync: true, // except when an async function is passed to locals
+  async: function (str, options, cb) {
+    var tmpl = this.cache(options) || this.cache(options, this.engine.compile(str, options));
+    tmpl.eval(options, function(str){
+      cb(null, str);
+    });
+  }
+});
+
+exports.qejs = new Transformer({
+  name: 'qejs',
+  engines: ['qejs'],
+  outputFormat: 'xml',
+  sudoSync: false,
+  async: function (str, options, cb) {
+    var tmpl = this.cache(options) || this.cache(options, this.engine.compile(str, options));
+    tmpl(options).done(function (result) {
+        cb(null, result);
+    }, function (err) {
+        cb(err);
+    });
+  }
+});
+
+/**
+ * Stylsheet Languages
+ */
+
+exports.less = new Transformer({
+  name: 'less',
+  engines: ['less'],
+  outputFormat: 'css',
+  sudoSync: 'The less file FILENAME could not be rendered syncronously.  This is usually because the file contains `@import url` statements.',
+  async: function (str, options, cb) {
+    var self = this;
+    if (self.cache(options)) return cb(null, self.cache(options));
+    if (options.filename) {
+      options.paths = options.paths || [dirname(options.filename)];
+    }
+    //If this.cache is enabled, compress by default
+    if (options.compress !== true && options.compress !== false) {
+      options.compress = options.cache || false;
+    }
+    if (options.sudoSync) {
+      options.syncImport = true;
+    }
+    var parser = new(this.engine.Parser)(options);
+    parser.parse(str, function (err, tree) {
+      try {
+        if (err) throw err;
+        var res = tree.toCSS(options);
+        self.cache(options, res);
+        cb(null, res);
+      } catch (ex) {
+        if (ex.constructor.name === 'LessError' && typeof ex === 'object') {
+          ex.filename = ex.filename || '"Unkown Source"';
+          var err = new Error(self.engine.formatError(ex, options).replace(/^[^:]+:/, ''), ex.filename, ex.line);
+          err.name = ex.type;
+          ex = err;
+        }
+        return cb(ex);
+      }
+    });
+  }
+});
+
+exports.styl = exports.stylus = new Transformer({
+  name: 'stylus',
+  engines: ['stylus'],
+  outputFormat: 'css',
+  sudoSync: true,// always runs syncronously
+  async: function (str, options, cb) {
+    var self = this;
+    if (self.cache(options)) return cb(null, self.cache(options));
+    if (options.filename) {
+      options.paths = options.paths || [dirname(options.filename)];
+    }
+    //If this.cache is enabled, compress by default
+    if (options.compress !== true && options.compress !== false) {
+      options.compress = options.cache || false;
+    }
+    this.engine.render(str, options, function (err, res) {
+      if (err) return cb(err);
+      self.cache(options, res);
+      cb(null, res);
+    });
+  }
+})
+
+exports.sass = new Transformer({
+  name: 'sass',
+  engines: ['sass'],
+  outputFormat: 'css',
+  sync: function (str, options) {
+    try {
+      return this.cache(options) || this.cache(options, this.engine.render(str));
+    } catch (ex) {
+      if (options.filename) ex.message += ' in ' + options.filename;
+      throw ex;
+    }
+  }
+});
+
+/**
+ * Miscelaneous
+ */
+
+exports.md = exports.markdown = new Transformer({
+  name: 'markdown',
+  engines: ['marked', 'supermarked', 'markdown-js', 'markdown'],
+  outputFormat: 'html',
+  sync: function (str, options) {
+    var arg = options;
+    if (this.engineName === 'markdown') arg = options.dialect; //even if undefined
+    return this.cache(options) || this.cache(options, this.engine.parse(str, arg));
+  }
+});
+
+
+exports.coffee = exports['coffee-script'] = exports.coffeescript = exports.coffeeScript = new Transformer({
+  name: 'coffee-script',
+  engines: ['coffee-script'],
+  outputFormat: 'js',
+  sync: function (str, options) {
+    return this.cache(options) || this.cache(options, this.engine.compile(str, options));
+  }
+});
+
+exports.cson = new Transformer({
+  name: 'cson',
+  engines: ['cson'],
+  outputFormat: 'json',
+  sync: function (str, options) {
+    //todo: remove once https://github.com/rstacruz/js2coffee/pull/174 accepted & released
+    if (global.Narcissus) delete global.Narcissus; //prevent global leak
+    return this.cache(options) || this.cache(options, JSON.stringify(this.engine.parseSync(str)));
+  }
+});
+
+exports.cdata = new Transformer({
+  name: 'cdata',
+  engines: ['.'],// `.` means "no dependency"
+  outputFormat: 'xml',
+  sync: function (str, options) {
+    var escaped = str.replace(/\]\]>/g, "]]]]><![CDATA[>");
+    return this.cache(options) || this.cache(options, '<![CDATA[' + escaped + ']]>');
+  }
+});
+
+exports["cdata-js"] = new Transformer({
+  name: 'cdata-js',
+  engines: ['.'],// `.` means "no dependency"
+  outputFormat: 'xml',
+  sync: function (str, options) {
+    var escaped = str.replace(/\]\]>/g, "]]]]><![CDATA[>");
+    return this.cache(options) || this.cache(options, '//<![CDATA[\n' + escaped + '\n//]]>');
+  }
+});
+
+exports["cdata-css"] = new Transformer({
+  name: 'cdata-css',
+  engines: ['.'],// `.` means "no dependency"
+  outputFormat: 'xml',
+  sync: function (str, options) {
+    var escaped = str.replace(/\]\]>/g, "]]]]><![CDATA[>");
+    return this.cache(options) || this.cache(options, '/*<![CDATA[*/\n' + escaped + '\n/*]]>*/');
+  }
+});
+
+exports.verbatim = new Transformer({
+  name: 'verbatim',
+  engines: ['.'],// `.` means "no dependency"
+  outputFormat: 'xml',
+  sync: function (str, options) {
+    return this.cache(options) || this.cache(options, str);
+  }
+});
+
+exports.component = exports['component-js'] = new Transformer({
+  name: 'component-js',
+  engines: ['component-builder'],
+  outputFormat: 'js',
+  async: function (str, options, cb) {
+    if (this.cache(options)) return this.cache(options);
+    var self = this;
+    var builder = new this.engine(dirname(options.filename));
+    if (options.development) {
+      builder.development();
+    }
+    if (options.sourceURLs === true || (options.sourceURLs !== false && options.development)) {
+      builder.addSourceURLs();
+    }
+    var path = require('path');
+    builder.paths = (options.paths || ['components']).map(function (p) {
+      if (path.resolve(p) === p) {
+        return p;
+      } else {
+        return path.join(dirname(options.filename), p);
+      }
+    });
+    builder.build(function (err, obj) {
+      if (err) return cb(err);
+      else return cb(null, self.cache(options, obj.require + obj.js));
+    });
+  }
+});
+
+exports['component-css'] = new Transformer({
+  name: 'component-css',
+  engines: ['component-builder'],
+  outputFormat: 'css',
+  async: function (str, options, cb) {
+    if (this.cache(options)) return this.cache(options);
+    var self = this;
+    var builder = new this.engine(dirname(options.filename));
+    if (options.development) {
+      builder.development();
+    }
+    if (options.sourceURLs === true || (options.sourceURLs !== false && options.development)) {
+      builder.addSourceURLs();
+    }
+    var path = require('path');
+    builder.paths = (options.paths || ['components']).map(function (p) {
+      if (path.resolve(p) === p) {
+        return p;
+      } else {
+        return path.join(dirname(options.filename), p);
+      }
+    });
+    builder.build(function (err, obj) {
+      if (err) return cb(err);
+      else return cb(null, self.cache(options, obj.css));
+    });
+  }
+});
+
+exports['html2jade'] = new Transformer({
+  name: 'html2jade',
+  engines: ['html2jade'],
+  outputFormat: 'jade',
+  async: function (str, options, cb) {
+    return this.cache(options) || this.cache(options, this.engine.convertHtml(str, options, cb));
+  }
+});
+
+exports['highlight'] = new Transformer({
+  name: 'highlight',
+  engines: ['highlight.js'],
+  outputFormat: 'xml',
+  sync: function (str, options, cb) {
+    if (this.cache(options)) return this.cache(options);
+    if (options.lang) {
+      try {
+        return this.cache(options, this.engine.highlight(options.lang, str).value);
+      } catch (ex) {}
+    }
+    if (options.auto || !options.lang) {
+      try {
+        return this.cache(options, this.engine.highlightAuto(str).value);
+      } catch (ex) {}
+    }
+    return this.cache(options, str);
+  }
+});
+
+
+/**
+ * Marker transformers (they don't actually apply a transformation, but let you declare the 'outputFormat')
+ */
+
+exports.css = new Transformer({
+  name: 'css',
+  engines: ['.'],// `.` means "no dependency"
+  outputFormat: 'css',
+  sync: function (str, options) {
+    return this.cache(options) || this.cache(options, str);
+  }
+});
+
+exports.js = new Transformer({
+  name: 'js',
+  engines: ['.'],// `.` means "no dependency"
+  outputFormat: 'js',
+  sync: function (str, options) {
+    return this.cache(options) || this.cache(options, str);
+  }
+});
+
+

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/0ef79031/modules/webconfig/nodejs/node_modules/jade/node_modules/transformers/node_modules/.bin/uglifyjs
----------------------------------------------------------------------
diff --git a/modules/webconfig/nodejs/node_modules/jade/node_modules/transformers/node_modules/.bin/uglifyjs b/modules/webconfig/nodejs/node_modules/jade/node_modules/transformers/node_modules/.bin/uglifyjs
new file mode 120000
index 0000000..fef3468
--- /dev/null
+++ b/modules/webconfig/nodejs/node_modules/jade/node_modules/transformers/node_modules/.bin/uglifyjs
@@ -0,0 +1 @@
+../uglify-js/bin/uglifyjs
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/0ef79031/modules/webconfig/nodejs/node_modules/jade/node_modules/transformers/node_modules/css/.npmignore
----------------------------------------------------------------------
diff --git a/modules/webconfig/nodejs/node_modules/jade/node_modules/transformers/node_modules/css/.npmignore b/modules/webconfig/nodejs/node_modules/jade/node_modules/transformers/node_modules/css/.npmignore
new file mode 100644
index 0000000..f1250e5
--- /dev/null
+++ b/modules/webconfig/nodejs/node_modules/jade/node_modules/transformers/node_modules/css/.npmignore
@@ -0,0 +1,4 @@
+support
+test
+examples
+*.sock

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/0ef79031/modules/webconfig/nodejs/node_modules/jade/node_modules/transformers/node_modules/css/History.md
----------------------------------------------------------------------
diff --git a/modules/webconfig/nodejs/node_modules/jade/node_modules/transformers/node_modules/css/History.md b/modules/webconfig/nodejs/node_modules/jade/node_modules/transformers/node_modules/css/History.md
new file mode 100644
index 0000000..93b15c2
--- /dev/null
+++ b/modules/webconfig/nodejs/node_modules/jade/node_modules/transformers/node_modules/css/History.md
@@ -0,0 +1,20 @@
+
+1.0.7 / 2012-11-21 
+==================
+
+  * fix component.json
+
+1.0.4 / 2012-11-15 
+==================
+
+  * update css-stringify
+
+1.0.3 / 2012-09-01 
+==================
+
+  * add component support
+
+0.0.1 / 2010-01-03
+==================
+
+  * Initial release

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/0ef79031/modules/webconfig/nodejs/node_modules/jade/node_modules/transformers/node_modules/css/Makefile
----------------------------------------------------------------------
diff --git a/modules/webconfig/nodejs/node_modules/jade/node_modules/transformers/node_modules/css/Makefile b/modules/webconfig/nodejs/node_modules/jade/node_modules/transformers/node_modules/css/Makefile
new file mode 100644
index 0000000..f13b4a7
--- /dev/null
+++ b/modules/webconfig/nodejs/node_modules/jade/node_modules/transformers/node_modules/css/Makefile
@@ -0,0 +1,8 @@
+
+test:
+	@node test
+
+benchmark:
+	@node benchmark
+
+.PHONY: test benchmark
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/0ef79031/modules/webconfig/nodejs/node_modules/jade/node_modules/transformers/node_modules/css/Readme.md
----------------------------------------------------------------------
diff --git a/modules/webconfig/nodejs/node_modules/jade/node_modules/transformers/node_modules/css/Readme.md b/modules/webconfig/nodejs/node_modules/jade/node_modules/transformers/node_modules/css/Readme.md
new file mode 100644
index 0000000..cf578df
--- /dev/null
+++ b/modules/webconfig/nodejs/node_modules/jade/node_modules/transformers/node_modules/css/Readme.md
@@ -0,0 +1,77 @@
+
+# css
+
+  CSS parser / stringifier using [css-parse](https://github.com/visionmedia/css-parse) and [css-stringify](https://github.com/visionmedia/css-stringify).
+
+## Installation
+
+    $ npm install css
+
+## Example
+
+js:
+
+```js
+var css = require('css')
+var obj = css.parse('tobi { name: "tobi" }')
+css.stringify(obj);
+```
+
+object returned by `.parse()`:
+
+```json
+{
+  "stylesheet": {
+    "rules": [
+      {
+        "selector": "tobi",
+        "declarations": [
+          {
+            "property": "name",
+            "value": "tobi"
+          }
+        ]
+      }
+    ]
+  }
+}
+```
+
+string returned by `.stringify(ast)`:
+
+```css
+tobi {
+  name: tobi;
+}
+```
+
+string returned by `.stringify(ast, { compress: true })`:
+
+```css
+tobi{name:tobi}
+```
+
+## License 
+
+(The MIT License)
+
+Copyright (c) 2012 TJ Holowaychuk &lt;tj@vision-media.ca&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.
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/0ef79031/modules/webconfig/nodejs/node_modules/jade/node_modules/transformers/node_modules/css/benchmark.js
----------------------------------------------------------------------
diff --git a/modules/webconfig/nodejs/node_modules/jade/node_modules/transformers/node_modules/css/benchmark.js b/modules/webconfig/nodejs/node_modules/jade/node_modules/transformers/node_modules/css/benchmark.js
new file mode 100644
index 0000000..dec711d
--- /dev/null
+++ b/modules/webconfig/nodejs/node_modules/jade/node_modules/transformers/node_modules/css/benchmark.js
@@ -0,0 +1,36 @@
+
+var css = require('./')
+  , fs = require('fs')
+  , read = fs.readFileSync
+  , str = read('examples/ui.css', 'utf8');
+
+var n = 5000;
+var ops = 200;
+var t = process.hrtime(t);
+var results = [];
+
+while (n--) {
+  css.stringify(css.parse(str));
+  if (n % ops == 0) {
+    t = process.hrtime(t);
+    var ms = t[1] / 1000 / 1000;
+    var persec = (ops * (1000 / ms) | 0);
+    results.push(persec);
+    process.stdout.write('\r  [' + persec + ' ops/s] [' + n + ']');
+    t = process.hrtime();
+  }
+}
+
+function sum(arr) {
+  return arr.reduce(function(sum, n){
+    return sum + n;
+  });
+}
+
+function mean(arr) {
+  return sum(arr) / arr.length | 0;
+}
+
+console.log();
+console.log('   avg: %d ops/s', mean(results));
+console.log('  size: %d kb', (str.length / 1024).toFixed(2));
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/0ef79031/modules/webconfig/nodejs/node_modules/jade/node_modules/transformers/node_modules/css/component.json
----------------------------------------------------------------------
diff --git a/modules/webconfig/nodejs/node_modules/jade/node_modules/transformers/node_modules/css/component.json b/modules/webconfig/nodejs/node_modules/jade/node_modules/transformers/node_modules/css/component.json
new file mode 100644
index 0000000..2769165
--- /dev/null
+++ b/modules/webconfig/nodejs/node_modules/jade/node_modules/transformers/node_modules/css/component.json
@@ -0,0 +1,13 @@
+{
+  "name": "css",
+  "version": "1.0.8",
+  "description": "CSS parser / stringifier using css-parse and css-stringify",
+  "keywords": ["css", "parser", "stylesheet"],
+  "dependencies": {
+    "visionmedia/css-parse": "*",
+    "visionmedia/css-stringify": "*"
+  },
+  "scripts": [
+    "index.js"
+  ]
+}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/0ef79031/modules/webconfig/nodejs/node_modules/jade/node_modules/transformers/node_modules/css/index.js
----------------------------------------------------------------------
diff --git a/modules/webconfig/nodejs/node_modules/jade/node_modules/transformers/node_modules/css/index.js b/modules/webconfig/nodejs/node_modules/jade/node_modules/transformers/node_modules/css/index.js
new file mode 100644
index 0000000..19ec91a
--- /dev/null
+++ b/modules/webconfig/nodejs/node_modules/jade/node_modules/transformers/node_modules/css/index.js
@@ -0,0 +1,3 @@
+
+exports.parse = require('css-parse');
+exports.stringify = require('css-stringify');

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/0ef79031/modules/webconfig/nodejs/node_modules/jade/node_modules/transformers/node_modules/css/node_modules/css-parse/.npmignore
----------------------------------------------------------------------
diff --git a/modules/webconfig/nodejs/node_modules/jade/node_modules/transformers/node_modules/css/node_modules/css-parse/.npmignore b/modules/webconfig/nodejs/node_modules/jade/node_modules/transformers/node_modules/css/node_modules/css-parse/.npmignore
new file mode 100644
index 0000000..4a3c398
--- /dev/null
+++ b/modules/webconfig/nodejs/node_modules/jade/node_modules/transformers/node_modules/css/node_modules/css-parse/.npmignore
@@ -0,0 +1,6 @@
+support
+test
+examples
+*.sock
+test.css
+test.js

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/0ef79031/modules/webconfig/nodejs/node_modules/jade/node_modules/transformers/node_modules/css/node_modules/css-parse/History.md
----------------------------------------------------------------------
diff --git a/modules/webconfig/nodejs/node_modules/jade/node_modules/transformers/node_modules/css/node_modules/css-parse/History.md b/modules/webconfig/nodejs/node_modules/jade/node_modules/transformers/node_modules/css/node_modules/css-parse/History.md
new file mode 100644
index 0000000..5276aab
--- /dev/null
+++ b/modules/webconfig/nodejs/node_modules/jade/node_modules/transformers/node_modules/css/node_modules/css-parse/History.md
@@ -0,0 +1,30 @@
+
+1.0.4 / 2012-09-17 
+==================
+
+  * fix keyframes float percentages
+  * fix an issue with comments containing slashes.
+
+1.0.3 / 2012-09-01 
+==================
+
+  * add component support
+  * fix unquoted data uris [rstacruz]
+  * fix keyframe names with no whitespace [rstacruz]
+  * fix excess semicolon support [rstacruz]
+
+1.0.2 / 2012-09-01 
+==================
+
+  * fix IE property hack support [rstacruz]
+  * fix quoted strings in declarations [rstacruz]
+
+1.0.1 / 2012-07-26 
+==================
+
+  * change "selector" to "selectors" array
+
+1.0.0 / 2010-01-03
+==================
+
+  * Initial release

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/0ef79031/modules/webconfig/nodejs/node_modules/jade/node_modules/transformers/node_modules/css/node_modules/css-parse/Makefile
----------------------------------------------------------------------
diff --git a/modules/webconfig/nodejs/node_modules/jade/node_modules/transformers/node_modules/css/node_modules/css-parse/Makefile b/modules/webconfig/nodejs/node_modules/jade/node_modules/transformers/node_modules/css/node_modules/css-parse/Makefile
new file mode 100644
index 0000000..4e9c8d3
--- /dev/null
+++ b/modules/webconfig/nodejs/node_modules/jade/node_modules/transformers/node_modules/css/node_modules/css-parse/Makefile
@@ -0,0 +1,7 @@
+
+test:
+	@./node_modules/.bin/mocha \
+		--require should \
+		--reporter spec
+
+.PHONY: test
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/0ef79031/modules/webconfig/nodejs/node_modules/jade/node_modules/transformers/node_modules/css/node_modules/css-parse/Readme.md
----------------------------------------------------------------------
diff --git a/modules/webconfig/nodejs/node_modules/jade/node_modules/transformers/node_modules/css/node_modules/css-parse/Readme.md b/modules/webconfig/nodejs/node_modules/jade/node_modules/transformers/node_modules/css/node_modules/css-parse/Readme.md
new file mode 100644
index 0000000..fde74a5
--- /dev/null
+++ b/modules/webconfig/nodejs/node_modules/jade/node_modules/transformers/node_modules/css/node_modules/css-parse/Readme.md
@@ -0,0 +1,62 @@
+
+# css-parse
+
+  CSS parser.
+
+## Example
+
+js:
+
+```js
+var parse = require('css-parse')
+parse('tobi { name: "tobi" }')
+```
+
+object returned:
+
+```json
+{
+  "stylesheet": {
+    "rules": [
+      {
+        "selectors": ["tobi"],
+        "declarations": [
+          {
+            "property": "name",
+            "value": "tobi"
+          }
+        ]
+      }
+    ]
+  }
+}
+```
+
+## Performance
+
+  Parsed 15,000 lines of CSS (2mb) in 40ms on my macbook air.
+
+## License 
+
+(The MIT License)
+
+Copyright (c) 2012 TJ Holowaychuk &lt;tj@vision-media.ca&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.
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/0ef79031/modules/webconfig/nodejs/node_modules/jade/node_modules/transformers/node_modules/css/node_modules/css-parse/component.json
----------------------------------------------------------------------
diff --git a/modules/webconfig/nodejs/node_modules/jade/node_modules/transformers/node_modules/css/node_modules/css-parse/component.json b/modules/webconfig/nodejs/node_modules/jade/node_modules/transformers/node_modules/css/node_modules/css-parse/component.json
new file mode 100644
index 0000000..234ebbe
--- /dev/null
+++ b/modules/webconfig/nodejs/node_modules/jade/node_modules/transformers/node_modules/css/node_modules/css-parse/component.json
@@ -0,0 +1,8 @@
+{
+  "name": "css-parse",
+  "repo": "visionmedia/node-css-parse",
+  "version": "1.0.3",
+  "description": "CSS parser",
+  "keywords": ["css", "parser", "stylesheet"],
+  "scripts": ["index.js"]
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/0ef79031/modules/webconfig/nodejs/node_modules/jade/node_modules/transformers/node_modules/css/node_modules/css-parse/index.js
----------------------------------------------------------------------
diff --git a/modules/webconfig/nodejs/node_modules/jade/node_modules/transformers/node_modules/css/node_modules/css-parse/index.js b/modules/webconfig/nodejs/node_modules/jade/node_modules/transformers/node_modules/css/node_modules/css-parse/index.js
new file mode 100644
index 0000000..3ed278f
--- /dev/null
+++ b/modules/webconfig/nodejs/node_modules/jade/node_modules/transformers/node_modules/css/node_modules/css-parse/index.js
@@ -0,0 +1,265 @@
+
+module.exports = function(css){
+
+  /**
+   * Parse stylesheet.
+   */
+
+  function stylesheet() {
+    return { stylesheet: { rules: rules() }};
+  }
+
+  /**
+   * Opening brace.
+   */
+
+  function open() {
+    return match(/^{\s*/);
+  }
+
+  /**
+   * Closing brace.
+   */
+
+  function close() {
+    return match(/^}\s*/);
+  }
+
+  /**
+   * Parse ruleset.
+   */
+
+  function rules() {
+    var node;
+    var rules = [];
+    whitespace();
+    comments();
+    while (css[0] != '}' && (node = atrule() || rule())) {
+      comments();
+      rules.push(node);
+    }
+    return rules;
+  }
+
+  /**
+   * Match `re` and return captures.
+   */
+
+  function match(re) {
+    var m = re.exec(css);
+    if (!m) return;
+    css = css.slice(m[0].length);
+    return m;
+  }
+
+  /**
+   * Parse whitespace.
+   */
+
+  function whitespace() {
+    match(/^\s*/);
+  }
+
+  /**
+   * Parse comments;
+   */
+
+  function comments() {
+    while (comment()) ;
+  }
+
+  /**
+   * Parse comment.
+   */
+
+  function comment() {
+    if ('/' == css[0] && '*' == css[1]) {
+      var i = 2;
+      while ('*' != css[i] || '/' != css[i + 1]) ++i;
+      i += 2;
+      css = css.slice(i);
+      whitespace();
+      return true;
+    }
+  }
+
+  /**
+   * Parse selector.
+   */
+
+  function selector() {
+    var m = match(/^([^{]+)/);
+    if (!m) return;
+    return m[0].trim().split(/\s*,\s*/);
+  }
+
+  /**
+   * Parse declaration.
+   */
+
+  function declaration() {
+    // prop
+    var prop = match(/^(\*?[-\w]+)\s*/);
+    if (!prop) return;
+    prop = prop[0];
+
+    // :
+    if (!match(/^:\s*/)) return;
+
+    // val
+    var val = match(/^((?:'(?:\\'|.)*?'|"(?:\\"|.)*?"|\([^\)]*?\)|[^};])+)\s*/);
+    if (!val) return;
+    val = val[0].trim();
+
+    // ;
+    match(/^[;\s]*/);
+
+    return { property: prop, value: val };
+  }
+
+  /**
+   * Parse keyframe.
+   */
+
+  function keyframe() {
+    var m;
+    var vals = [];
+
+    while (m = match(/^(from|to|\d+%|\.\d+%|\d+\.\d+%)\s*/)) {
+      vals.push(m[1]);
+      match(/^,\s*/);
+    }
+
+    if (!vals.length) return;
+
+    return {
+      values: vals,
+      declarations: declarations()
+    };
+  }
+
+  /**
+   * Parse keyframes.
+   */
+
+  function keyframes() {
+    var m = match(/^@([-\w]+)?keyframes */);
+    if (!m) return;
+    var vendor = m[1];
+
+    // identifier
+    var m = match(/^([-\w]+)\s*/);
+    if (!m) return;
+    var name = m[1];
+
+    if (!open()) return;
+    comments();
+
+    var frame;
+    var frames = [];
+    while (frame = keyframe()) {
+      frames.push(frame);
+      comments();
+    }
+
+    if (!close()) return;
+
+    return {
+      name: name,
+      vendor: vendor,
+      keyframes: frames
+    };
+  }
+
+  /**
+   * Parse media.
+   */
+
+  function media() {
+    var m = match(/^@media *([^{]+)/);
+    if (!m) return;
+    var media = m[1].trim();
+
+    if (!open()) return;
+    comments();
+
+    var style = rules();
+
+    if (!close()) return;
+
+    return { media: media, rules: style };
+  }
+
+  /**
+   * Parse import
+   */
+
+  function atimport() {
+    return _atrule('import')
+  }
+
+  /**
+   * Parse charset
+   */
+
+  function atcharset() {
+    return _atrule('charset');
+  }
+
+  /**
+   * Parse non-block at-rules
+   */
+
+  function _atrule(name) {
+    var m = match(new RegExp('^@' + name + ' *([^;\\n]+);\\s*'));
+    if (!m) return;
+    var ret = {}
+    ret[name] = m[1].trim();
+    return ret;
+  }
+
+  /**
+   * Parse declarations.
+   */
+
+  function declarations() {
+    var decls = [];
+
+    if (!open()) return;
+    comments();
+  
+    // declarations
+    var decl;
+    while (decl = declaration()) {
+      decls.push(decl);
+      comments();
+    }
+  
+    if (!close()) return;
+    return decls;
+  }
+
+  /**
+   * Parse at rule.
+   */
+   
+  function atrule() {
+    return keyframes()
+      || media()
+      || atimport()
+      || atcharset();
+  }
+
+  /**
+   * Parse rule.
+   */
+  
+  function rule() {
+    var sel = selector();
+    if (!sel) return;
+    comments();
+    return { selectors: sel, declarations: declarations() };
+  }
+  
+  return stylesheet();
+};

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/0ef79031/modules/webconfig/nodejs/node_modules/jade/node_modules/transformers/node_modules/css/node_modules/css-parse/package.json
----------------------------------------------------------------------
diff --git a/modules/webconfig/nodejs/node_modules/jade/node_modules/transformers/node_modules/css/node_modules/css-parse/package.json b/modules/webconfig/nodejs/node_modules/jade/node_modules/transformers/node_modules/css/node_modules/css-parse/package.json
new file mode 100644
index 0000000..f89bf66
--- /dev/null
+++ b/modules/webconfig/nodejs/node_modules/jade/node_modules/transformers/node_modules/css/node_modules/css-parse/package.json
@@ -0,0 +1,39 @@
+{
+  "name": "css-parse",
+  "version": "1.0.4",
+  "description": "CSS parser",
+  "keywords": [
+    "css",
+    "parser",
+    "stylesheet"
+  ],
+  "author": {
+    "name": "TJ Holowaychuk",
+    "email": "tj@vision-media.ca"
+  },
+  "devDependencies": {
+    "mocha": "*",
+    "should": "*"
+  },
+  "main": "index",
+  "_id": "css-parse@1.0.4",
+  "dist": {
+    "shasum": "38b0503fbf9da9f54e9c1dbda60e145c77117bdd",
+    "tarball": "http://registry.npmjs.org/css-parse/-/css-parse-1.0.4.tgz"
+  },
+  "_npmVersion": "1.1.61",
+  "_npmUser": {
+    "name": "tjholowaychuk",
+    "email": "tj@vision-media.ca"
+  },
+  "maintainers": [
+    {
+      "name": "tjholowaychuk",
+      "email": "tj@vision-media.ca"
+    }
+  ],
+  "directories": {},
+  "_shasum": "38b0503fbf9da9f54e9c1dbda60e145c77117bdd",
+  "_resolved": "https://registry.npmjs.org/css-parse/-/css-parse-1.0.4.tgz",
+  "_from": "css-parse@1.0.4"
+}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/0ef79031/modules/webconfig/nodejs/node_modules/jade/node_modules/transformers/node_modules/css/node_modules/css-stringify/.npmignore
----------------------------------------------------------------------
diff --git a/modules/webconfig/nodejs/node_modules/jade/node_modules/transformers/node_modules/css/node_modules/css-stringify/.npmignore b/modules/webconfig/nodejs/node_modules/jade/node_modules/transformers/node_modules/css/node_modules/css-stringify/.npmignore
new file mode 100644
index 0000000..4a3c398
--- /dev/null
+++ b/modules/webconfig/nodejs/node_modules/jade/node_modules/transformers/node_modules/css/node_modules/css-stringify/.npmignore
@@ -0,0 +1,6 @@
+support
+test
+examples
+*.sock
+test.css
+test.js

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/0ef79031/modules/webconfig/nodejs/node_modules/jade/node_modules/transformers/node_modules/css/node_modules/css-stringify/History.md
----------------------------------------------------------------------
diff --git a/modules/webconfig/nodejs/node_modules/jade/node_modules/transformers/node_modules/css/node_modules/css-stringify/History.md b/modules/webconfig/nodejs/node_modules/jade/node_modules/transformers/node_modules/css/node_modules/css-stringify/History.md
new file mode 100644
index 0000000..a6ff960
--- /dev/null
+++ b/modules/webconfig/nodejs/node_modules/jade/node_modules/transformers/node_modules/css/node_modules/css-stringify/History.md
@@ -0,0 +1,30 @@
+
+1.0.5 / 2013-03-15 
+==================
+
+  * fix indentation of multiple selectors in @media. Closes #11
+
+1.0.4 / 2012-11-15 
+==================
+
+  * fix indentation
+
+1.0.3 / 2012-09-04 
+==================
+
+  * add __@charset__ support [rstacruz]
+
+1.0.2 / 2012-09-01 
+==================
+
+  * add component support
+
+1.0.1 / 2012-07-26 
+==================
+
+  * add "selectors" array support
+
+0.0.1 / 2010-01-03
+==================
+
+  * Initial release

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/0ef79031/modules/webconfig/nodejs/node_modules/jade/node_modules/transformers/node_modules/css/node_modules/css-stringify/Makefile
----------------------------------------------------------------------
diff --git a/modules/webconfig/nodejs/node_modules/jade/node_modules/transformers/node_modules/css/node_modules/css-stringify/Makefile b/modules/webconfig/nodejs/node_modules/jade/node_modules/transformers/node_modules/css/node_modules/css-stringify/Makefile
new file mode 100644
index 0000000..4e9c8d3
--- /dev/null
+++ b/modules/webconfig/nodejs/node_modules/jade/node_modules/transformers/node_modules/css/node_modules/css-stringify/Makefile
@@ -0,0 +1,7 @@
+
+test:
+	@./node_modules/.bin/mocha \
+		--require should \
+		--reporter spec
+
+.PHONY: test
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/0ef79031/modules/webconfig/nodejs/node_modules/jade/node_modules/transformers/node_modules/css/node_modules/css-stringify/Readme.md
----------------------------------------------------------------------
diff --git a/modules/webconfig/nodejs/node_modules/jade/node_modules/transformers/node_modules/css/node_modules/css-stringify/Readme.md b/modules/webconfig/nodejs/node_modules/jade/node_modules/transformers/node_modules/css/node_modules/css-stringify/Readme.md
new file mode 100644
index 0000000..a36e780
--- /dev/null
+++ b/modules/webconfig/nodejs/node_modules/jade/node_modules/transformers/node_modules/css/node_modules/css-stringify/Readme.md
@@ -0,0 +1,33 @@
+
+# css-stringify
+
+  CSS compiler using the AST provided by [css-parse](https://github.com/visionmedia/css-parse).
+
+## Performance
+
+  Formats 15,000 lines of CSS (2mb) in 23ms on my macbook air.
+
+## License
+
+(The MIT License)
+
+Copyright (c) 2012 TJ Holowaychuk &lt;tj@vision-media.ca&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.

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/0ef79031/modules/webconfig/nodejs/node_modules/jade/node_modules/transformers/node_modules/css/node_modules/css-stringify/component.json
----------------------------------------------------------------------
diff --git a/modules/webconfig/nodejs/node_modules/jade/node_modules/transformers/node_modules/css/node_modules/css-stringify/component.json b/modules/webconfig/nodejs/node_modules/jade/node_modules/transformers/node_modules/css/node_modules/css-stringify/component.json
new file mode 100644
index 0000000..259baef
--- /dev/null
+++ b/modules/webconfig/nodejs/node_modules/jade/node_modules/transformers/node_modules/css/node_modules/css-stringify/component.json
@@ -0,0 +1,8 @@
+{
+  "name": "css-stringify",
+  "repo": "visionmedia/css-stringify",
+  "version": "1.0.5",
+  "description": "CSS compiler",
+  "keywords": ["css", "stringify", "stylesheet"],
+  "scripts": ["index.js"]
+}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/0ef79031/modules/webconfig/nodejs/node_modules/jade/node_modules/transformers/node_modules/css/node_modules/css-stringify/index.js
----------------------------------------------------------------------
diff --git a/modules/webconfig/nodejs/node_modules/jade/node_modules/transformers/node_modules/css/node_modules/css-stringify/index.js b/modules/webconfig/nodejs/node_modules/jade/node_modules/transformers/node_modules/css/node_modules/css-stringify/index.js
new file mode 100644
index 0000000..f528e41
--- /dev/null
+++ b/modules/webconfig/nodejs/node_modules/jade/node_modules/transformers/node_modules/css/node_modules/css-stringify/index.js
@@ -0,0 +1,182 @@
+
+/**
+ * Stringfy the given AST `node`.
+ *
+ * @param {Object} node
+ * @param {Object} options
+ * @return {String}
+ * @api public
+ */
+
+module.exports = function(node, options){
+  return new Compiler(options).compile(node);
+};
+
+/**
+ * Initialize a new `Compiler`.
+ */
+
+function Compiler(options) {
+  options = options || {};
+  this.compress = options.compress;
+  this.indentation = options.indent;
+}
+
+/**
+ * Compile `node`.
+ */
+
+Compiler.prototype.compile = function(node){
+  return node.stylesheet.rules.map(this.visit, this)
+    .join(this.compress ? '' : '\n\n');
+};
+
+/**
+ * Visit `node`.
+ */
+
+Compiler.prototype.visit = function(node){
+  if (node.charset) return this.charset(node);
+  if (node.keyframes) return this.keyframes(node);
+  if (node.media) return this.media(node);
+  if (node.import) return this.import(node);
+  return this.rule(node);
+};
+
+/**
+ * Visit import node.
+ */
+
+Compiler.prototype.import = function(node){
+  return '@import ' + node.import + ';';
+};
+
+/**
+ * Visit media node.
+ */
+
+Compiler.prototype.media = function(node){
+  if (this.compress) {
+    return '@media '
+      + node.media
+      + '{'
+      + node.rules.map(this.visit, this).join('')
+      + '}';
+  }
+
+  return '@media '
+    + node.media
+    + ' {\n'
+    + this.indent(1)
+    + node.rules.map(this.visit, this).join('\n\n')
+    + this.indent(-1)
+    + '\n}';
+};
+
+/**
+ * Visit charset node.
+ */
+
+Compiler.prototype.charset = function(node){
+  if (this.compress) {
+    return '@charset ' + node.charset + ';';
+  }
+
+  return '@charset ' + node.charset + ';\n';
+};
+
+/**
+ * Visit keyframes node.
+ */
+
+Compiler.prototype.keyframes = function(node){
+  if (this.compress) {
+    return '@'
+      + (node.vendor || '')
+      + 'keyframes '
+      + node.name
+      + '{'
+      + node.keyframes.map(this.keyframe, this).join('')
+      + '}';
+  }
+
+  return '@'
+    + (node.vendor || '')
+    + 'keyframes '
+    + node.name
+    + ' {\n'
+    + this.indent(1)
+    + node.keyframes.map(this.keyframe, this).join('\n')
+    + this.indent(-1)
+    + '}';
+};
+
+/**
+ * Visit keyframe node.
+ */
+
+Compiler.prototype.keyframe = function(node){
+  if (this.compress) {
+    return node.values.join(',')
+      + '{'
+      + node.declarations.map(this.declaration, this).join(';')
+      + '}';
+  }
+
+  return this.indent()
+    + node.values.join(', ')
+    + ' {\n'
+    + this.indent(1)
+    + node.declarations.map(this.declaration, this).join(';\n')
+    + this.indent(-1)
+    + '\n' + this.indent() + '}\n';
+};
+
+/**
+ * Visit rule node.
+ */
+
+Compiler.prototype.rule = function(node){
+  var indent = this.indent();
+
+  if (this.compress) {
+    return node.selectors.join(',')
+      + '{'
+      + node.declarations.map(this.declaration, this).join(';')
+      + '}';
+  }
+
+  return node.selectors.map(function(s){ return indent + s }).join(',\n')
+    + ' {\n'
+    + this.indent(1)
+    + node.declarations.map(this.declaration, this).join(';\n')
+    + this.indent(-1)
+    + '\n' + this.indent() + '}';
+};
+
+/**
+ * Visit declaration node.
+ */
+
+Compiler.prototype.declaration = function(node){
+  if (this.compress) {
+    return node.property + ':' + node.value;
+  }
+
+  return this.indent() + node.property + ': ' + node.value;
+};
+
+/**
+ * Increase, decrease or return current indentation.
+ */
+
+Compiler.prototype.indent = function(level) {
+  this.level = this.level || 1;
+
+  if (null != level) {
+    this.level += level;
+    return '';
+  }
+
+  return Array(this.level).join(this.indentation || '  ');
+};

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/0ef79031/modules/webconfig/nodejs/node_modules/jade/node_modules/transformers/node_modules/css/node_modules/css-stringify/package.json
----------------------------------------------------------------------
diff --git a/modules/webconfig/nodejs/node_modules/jade/node_modules/transformers/node_modules/css/node_modules/css-stringify/package.json b/modules/webconfig/nodejs/node_modules/jade/node_modules/transformers/node_modules/css/node_modules/css-stringify/package.json
new file mode 100644
index 0000000..de08dd2
--- /dev/null
+++ b/modules/webconfig/nodejs/node_modules/jade/node_modules/transformers/node_modules/css/node_modules/css-stringify/package.json
@@ -0,0 +1,40 @@
+{
+  "name": "css-stringify",
+  "version": "1.0.5",
+  "description": "CSS compiler",
+  "keywords": [
+    "css",
+    "stringify",
+    "stylesheet"
+  ],
+  "author": {
+    "name": "TJ Holowaychuk",
+    "email": "tj@vision-media.ca"
+  },
+  "devDependencies": {
+    "mocha": "*",
+    "should": "*",
+    "css-parse": "1.0.3"
+  },
+  "main": "index",
+  "_id": "css-stringify@1.0.5",
+  "dist": {
+    "shasum": "b0d042946db2953bb9d292900a6cb5f6d0122031",
+    "tarball": "http://registry.npmjs.org/css-stringify/-/css-stringify-1.0.5.tgz"
+  },
+  "_from": "css-stringify@1.0.5",
+  "_npmVersion": "1.2.14",
+  "_npmUser": {
+    "name": "tjholowaychuk",
+    "email": "tj@vision-media.ca"
+  },
+  "maintainers": [
+    {
+      "name": "tjholowaychuk",
+      "email": "tj@vision-media.ca"
+    }
+  ],
+  "directories": {},
+  "_shasum": "b0d042946db2953bb9d292900a6cb5f6d0122031",
+  "_resolved": "https://registry.npmjs.org/css-stringify/-/css-stringify-1.0.5.tgz"
+}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/0ef79031/modules/webconfig/nodejs/node_modules/jade/node_modules/transformers/node_modules/css/package.json
----------------------------------------------------------------------
diff --git a/modules/webconfig/nodejs/node_modules/jade/node_modules/transformers/node_modules/css/package.json b/modules/webconfig/nodejs/node_modules/jade/node_modules/transformers/node_modules/css/package.json
new file mode 100644
index 0000000..d1c8c77
--- /dev/null
+++ b/modules/webconfig/nodejs/node_modules/jade/node_modules/transformers/node_modules/css/package.json
@@ -0,0 +1,39 @@
+{
+  "name": "css",
+  "version": "1.0.8",
+  "description": "CSS parser / stringifier using css-parse and css-stringify",
+  "keywords": [
+    "css",
+    "parser",
+    "stylesheet"
+  ],
+  "author": {
+    "name": "TJ Holowaychuk",
+    "email": "tj@vision-media.ca"
+  },
+  "dependencies": {
+    "css-parse": "1.0.4",
+    "css-stringify": "1.0.5"
+  },
+  "main": "index",
+  "_id": "css@1.0.8",
+  "dist": {
+    "shasum": "9386811ca82bccc9ee7fb5a732b1e2a317c8a3e7",
+    "tarball": "http://registry.npmjs.org/css/-/css-1.0.8.tgz"
+  },
+  "_from": "css@>=1.0.8 <1.1.0",
+  "_npmVersion": "1.2.14",
+  "_npmUser": {
+    "name": "tjholowaychuk",
+    "email": "tj@vision-media.ca"
+  },
+  "maintainers": [
+    {
+      "name": "tjholowaychuk",
+      "email": "tj@vision-media.ca"
+    }
+  ],
+  "directories": {},
+  "_shasum": "9386811ca82bccc9ee7fb5a732b1e2a317c8a3e7",
+  "_resolved": "https://registry.npmjs.org/css/-/css-1.0.8.tgz"
+}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/0ef79031/modules/webconfig/nodejs/node_modules/jade/node_modules/transformers/node_modules/css/test.js
----------------------------------------------------------------------
diff --git a/modules/webconfig/nodejs/node_modules/jade/node_modules/transformers/node_modules/css/test.js b/modules/webconfig/nodejs/node_modules/jade/node_modules/transformers/node_modules/css/test.js
new file mode 100644
index 0000000..3e1b4d3
--- /dev/null
+++ b/modules/webconfig/nodejs/node_modules/jade/node_modules/transformers/node_modules/css/test.js
@@ -0,0 +1,6 @@
+
+var css = require('./')
+  , assert = require('assert');
+
+assert(css.parse);
+assert(css.stringify);

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/0ef79031/modules/webconfig/nodejs/node_modules/jade/node_modules/transformers/node_modules/promise/.npmignore
----------------------------------------------------------------------
diff --git a/modules/webconfig/nodejs/node_modules/jade/node_modules/transformers/node_modules/promise/.npmignore b/modules/webconfig/nodejs/node_modules/jade/node_modules/transformers/node_modules/promise/.npmignore
new file mode 100644
index 0000000..1195248
--- /dev/null
+++ b/modules/webconfig/nodejs/node_modules/jade/node_modules/transformers/node_modules/promise/.npmignore
@@ -0,0 +1,6 @@
+components
+node_modules
+test
+.gitignore
+.travis.yml
+component.json
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/0ef79031/modules/webconfig/nodejs/node_modules/jade/node_modules/transformers/node_modules/promise/Readme.md
----------------------------------------------------------------------
diff --git a/modules/webconfig/nodejs/node_modules/jade/node_modules/transformers/node_modules/promise/Readme.md b/modules/webconfig/nodejs/node_modules/jade/node_modules/transformers/node_modules/promise/Readme.md
new file mode 100644
index 0000000..2b9dfe9
--- /dev/null
+++ b/modules/webconfig/nodejs/node_modules/jade/node_modules/transformers/node_modules/promise/Readme.md
@@ -0,0 +1,85 @@
+[![Build Status](https://travis-ci.org/then/promise.png)](https://travis-ci.org/then/promise)
+<a href="http://promises-aplus.github.com/promises-spec"><img src="http://promises-aplus.github.com/promises-spec/assets/logo-small.png" align="right" /></a>
+# promise
+
+  This a bare bones [Promises/A+](http://promises-aplus.github.com/promises-spec/) implementation.
+
+  It is designed to get the basics spot on correct, so that you can build extended promise implementations on top of it.
+
+## Installation
+
+  Server:
+
+    $ npm install promise
+
+  Client:
+
+    $ component install then/promise
+
+## API
+
+  In the example below shows how you can load the promise library (in a way that works on both client and server).  It then demonstrates creating a promise from scratch.  You simply call `new Promise(fn)`.  There is a complete specification for what is returned by this method in [Promises/A+](http://promises-aplus.github.com/promises-spec/).
+
+```javascript
+var Promise = require('promise');
+
+var promise = new Promise(function (resolve, reject) {
+    get('http://www.google.com', function (err, res) {
+      if (err) reject(err);
+      else resolve(res);
+    });
+  });
+```
+
+## Extending Promises
+
+  There are three options for extending the promises created by this library.
+
+### Inheritance
+
+  You can use inheritance if you want to create your own complete promise library with this as your basic starting point, perfect if you have lots of cool features you want to add.  Here is an example of a promise library called `Awesome`, which is built on top of `Promise` correctly.
+
+```javascript
+var Promise = require('promise');
+function Awesome(fn) {
+  if (!(this instanceof Awesome)) return new Awesome(fn);
+  Promise.call(this, fn);
+}
+Awesome.prototype = Object.create(Promise.prototype);
+Awesome.prototype.constructor = Awesome;
+
+//Awesome extension
+Awesome.prototype.spread = function (cb) {
+  return this.then(function (arr) {
+    return cb.apply(this, arr);
+  })
+};
+```
+
+  N.B. if you fail to set the prototype and constructor properly or fail to do Promise.call, things can fail in really subtle ways.
+
+### Wrap
+
+  This is the nuclear option, for when you want to start from scratch.  It ensures you won't be impacted by anyone who is extending the prototype (see below).
+
+```javascript
+function Uber(fn) {
+  if (!(this instanceof Uber)) return new Uber(fn);
+  var _prom = new Promise(fn);
+  this.then = _prom.then;
+}
+
+Uber.prototype.spread = function (cb) {
+  return this.then(function (arr) {
+    return cb.apply(this, arr);
+  })
+};
+```
+
+### Extending the Prototype
+
+  In general, you should never extend the prototype of this promise implimenation because your extensions could easily conflict with someone elses extensions.  However, this organisation will host a library of extensions which do not conflict with each other, so you can safely enable any of those.  If you think of an extension that we don't provide and you want to write it, submit an issue on this repository and (if I agree) I'll set you up with a repository and give you permission to commit to it.
+
+## License
+
+  MIT

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/0ef79031/modules/webconfig/nodejs/node_modules/jade/node_modules/transformers/node_modules/promise/index.js
----------------------------------------------------------------------
diff --git a/modules/webconfig/nodejs/node_modules/jade/node_modules/transformers/node_modules/promise/index.js b/modules/webconfig/nodejs/node_modules/jade/node_modules/transformers/node_modules/promise/index.js
new file mode 100644
index 0000000..492eb99
--- /dev/null
+++ b/modules/webconfig/nodejs/node_modules/jade/node_modules/transformers/node_modules/promise/index.js
@@ -0,0 +1,164 @@
+var isPromise = require('is-promise')
+
+var nextTick
+if (typeof setImediate === 'function') nextTick = setImediate
+else if (typeof process === 'object' && process && process.nextTick) nextTick = process.nextTick
+else nextTick = function (cb) { setTimeout(cb, 0) }
+
+var extensions = []
+
+module.exports = Promise
+function Promise(fn) {
+  if (!(this instanceof Promise)) {
+    return fn ? new Promise(fn) : defer()
+  }
+  if (typeof fn !== 'function') {
+    throw new TypeError('fn is not a function')
+  }
+
+  var state = {
+    isResolved: false,
+    isSettled: false,
+    isFulfilled: false,
+    value: null,
+    waiting: [],
+    running: false
+  }
+
+  function _resolve(val) {
+    resolve(state, val);
+  }
+  function _reject(err) {
+    reject(state, err);
+  }
+  this.then = function _then(onFulfilled, onRejected) {
+    return then(state, onFulfilled, onRejected);
+  }
+
+  _resolve.fulfill = deprecate(_resolve, 'resolver.fulfill(x)', 'resolve(x)')
+  _resolve.reject = deprecate(_reject, 'resolver.reject', 'reject(x)')
+
+  try {
+    fn(_resolve, _reject)
+  } catch (ex) {
+    _reject(ex)
+  }
+}
+
+function resolve(promiseState, value) {
+  if (promiseState.isResolved) return
+  if (isPromise(value)) {
+    assimilate(promiseState, value)
+  } else {
+    settle(promiseState, true, value)
+  }
+}
+
+function reject(promiseState, reason) {
+  if (promiseState.isResolved) return
+  settle(promiseState, false, reason)
+}
+
+function then(promiseState, onFulfilled, onRejected) {
+  return new Promise(function (resolve, reject) {
+    function done(next, skipTimeout) {
+      var callback = promiseState.isFulfilled ? onFulfilled : onRejected
+      if (typeof callback === 'function') {
+        function timeoutDone() {
+          var val
+          try {
+            val = callback(promiseState.value)
+          } catch (ex) {
+            reject(ex)
+            return next(true)
+          }
+          resolve(val)
+          next(true)
+        }
+        if (skipTimeout) timeoutDone()
+        else nextTick(timeoutDone)
+      } else if (promiseState.isFulfilled) {
+        resolve(promiseState.value)
+        next(skipTimeout)
+      } else {
+        reject(promiseState.value)
+        next(skipTimeout)
+      }
+    }
+    promiseState.waiting.push(done)
+    if (promiseState.isSettled && !promiseState.running) processQueue(promiseState)
+  })
+}
+
+function processQueue(promiseState) {
+  function next(skipTimeout) {
+    if (promiseState.waiting.length) {
+      promiseState.running = true
+      promiseState.waiting.shift()(next, skipTimeout)
+    } else {
+      promiseState.running = false
+    }
+  }
+  next(false)
+}
+
+function settle(promiseState, isFulfilled, value) {
+  if (promiseState.isSettled) return
+
+  promiseState.isResolved = promiseState.isSettled = true
+  promiseState.value = value
+  promiseState.isFulfilled = isFulfilled
+
+  processQueue(promiseState)
+}
+
+function assimilate(promiseState, thenable) {
+  try {
+    promiseState.isResolved = true
+    thenable.then(function (res) {
+      if (isPromise(res)) {
+        assimilate(promiseState, res)
+      } else {
+        settle(promiseState, true, res)
+      }
+    }, function (err) {
+      settle(promiseState, false, err)
+    })
+  } catch (ex) {
+    settle(promiseState, false, ex)
+  }
+}
+
+Promise.use = function (extension) {
+  extensions.push(extension)
+}
+
+
+function deprecate(method, name, alternative) {
+  return function () {
+    var err = new Error(name + ' is deprecated use ' + alternative)
+    if (typeof console !== 'undefined' && console && typeof console.warn === 'function') {
+      console.warn(name + ' is deprecated use ' + alternative)
+      if (err.stack) console.warn(err.stack)
+    } else {
+      nextTick(function () {
+        throw err
+      })
+    }
+    method.apply(this, arguments)
+  }
+}
+function defer() {
+  var err = new Error('promise.defer() is deprecated')
+  if (typeof console !== 'undefined' && console && typeof console.warn === 'function') {
+    console.warn('promise.defer() is deprecated')
+    if (err.stack) console.warn(err.stack)
+  } else {
+    nextTick(function () {
+      throw err
+    })
+  }
+  var resolver
+  var promise = new Promise(function (res) { resolver = res })
+  return {resolver: resolver, promise: promise}
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/0ef79031/modules/webconfig/nodejs/node_modules/jade/node_modules/transformers/node_modules/promise/node_modules/is-promise/.npmignore
----------------------------------------------------------------------
diff --git a/modules/webconfig/nodejs/node_modules/jade/node_modules/transformers/node_modules/promise/node_modules/is-promise/.npmignore b/modules/webconfig/nodejs/node_modules/jade/node_modules/transformers/node_modules/promise/node_modules/is-promise/.npmignore
new file mode 100644
index 0000000..aeb7b45
--- /dev/null
+++ b/modules/webconfig/nodejs/node_modules/jade/node_modules/transformers/node_modules/promise/node_modules/is-promise/.npmignore
@@ -0,0 +1,6 @@
+component
+build
+node_modules
+test.js
+component.json
+.gitignore
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/0ef79031/modules/webconfig/nodejs/node_modules/jade/node_modules/transformers/node_modules/promise/node_modules/is-promise/.travis.yml
----------------------------------------------------------------------
diff --git a/modules/webconfig/nodejs/node_modules/jade/node_modules/transformers/node_modules/promise/node_modules/is-promise/.travis.yml b/modules/webconfig/nodejs/node_modules/jade/node_modules/transformers/node_modules/promise/node_modules/is-promise/.travis.yml
new file mode 100644
index 0000000..87f8cd9
--- /dev/null
+++ b/modules/webconfig/nodejs/node_modules/jade/node_modules/transformers/node_modules/promise/node_modules/is-promise/.travis.yml
@@ -0,0 +1,3 @@
+language: node_js
+node_js:
+  - "0.10"
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/0ef79031/modules/webconfig/nodejs/node_modules/jade/node_modules/transformers/node_modules/promise/node_modules/is-promise/LICENSE
----------------------------------------------------------------------
diff --git a/modules/webconfig/nodejs/node_modules/jade/node_modules/transformers/node_modules/promise/node_modules/is-promise/LICENSE b/modules/webconfig/nodejs/node_modules/jade/node_modules/transformers/node_modules/promise/node_modules/is-promise/LICENSE
new file mode 100644
index 0000000..27cc9f3
--- /dev/null
+++ b/modules/webconfig/nodejs/node_modules/jade/node_modules/transformers/node_modules/promise/node_modules/is-promise/LICENSE
@@ -0,0 +1,19 @@
+Copyright (c) 2014 Forbes Lindesay
+
+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.
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/0ef79031/modules/webconfig/nodejs/node_modules/jade/node_modules/transformers/node_modules/promise/node_modules/is-promise/index.js
----------------------------------------------------------------------
diff --git a/modules/webconfig/nodejs/node_modules/jade/node_modules/transformers/node_modules/promise/node_modules/is-promise/index.js b/modules/webconfig/nodejs/node_modules/jade/node_modules/transformers/node_modules/promise/node_modules/is-promise/index.js
new file mode 100644
index 0000000..776c3a5
--- /dev/null
+++ b/modules/webconfig/nodejs/node_modules/jade/node_modules/transformers/node_modules/promise/node_modules/is-promise/index.js
@@ -0,0 +1,5 @@
+module.exports = isPromise;
+
+function isPromise(obj) {
+  return obj && typeof obj.then === 'function';
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/0ef79031/modules/webconfig/nodejs/node_modules/jade/node_modules/transformers/node_modules/promise/node_modules/is-promise/package.json
----------------------------------------------------------------------
diff --git a/modules/webconfig/nodejs/node_modules/jade/node_modules/transformers/node_modules/promise/node_modules/is-promise/package.json b/modules/webconfig/nodejs/node_modules/jade/node_modules/transformers/node_modules/promise/node_modules/is-promise/package.json
new file mode 100644
index 0000000..c308176
--- /dev/null
+++ b/modules/webconfig/nodejs/node_modules/jade/node_modules/transformers/node_modules/promise/node_modules/is-promise/package.json
@@ -0,0 +1,45 @@
+{
+  "name": "is-promise",
+  "version": "1.0.1",
+  "description": "Test whether an object looks like a promises-a+ promise",
+  "main": "index.js",
+  "scripts": {
+    "test": "mocha -R spec"
+  },
+  "repository": {
+    "type": "git",
+    "url": "https://github.com/then/is-promise.git"
+  },
+  "author": {
+    "name": "ForbesLindesay"
+  },
+  "license": "MIT",
+  "devDependencies": {
+    "better-assert": "~0.1.0",
+    "mocha": "~1.7.4"
+  },
+  "bugs": {
+    "url": "https://github.com/then/is-promise/issues"
+  },
+  "homepage": "https://github.com/then/is-promise",
+  "_id": "is-promise@1.0.1",
+  "dist": {
+    "shasum": "31573761c057e33c2e91aab9e96da08cefbe76e5",
+    "tarball": "http://registry.npmjs.org/is-promise/-/is-promise-1.0.1.tgz"
+  },
+  "_from": "is-promise@>=1.0.0 <2.0.0",
+  "_npmVersion": "1.4.3",
+  "_npmUser": {
+    "name": "forbeslindesay",
+    "email": "forbes@lindeay.co.uk"
+  },
+  "maintainers": [
+    {
+      "name": "forbeslindesay",
+      "email": "forbes@lindesay.co.uk"
+    }
+  ],
+  "directories": {},
+  "_shasum": "31573761c057e33c2e91aab9e96da08cefbe76e5",
+  "_resolved": "https://registry.npmjs.org/is-promise/-/is-promise-1.0.1.tgz"
+}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/0ef79031/modules/webconfig/nodejs/node_modules/jade/node_modules/transformers/node_modules/promise/node_modules/is-promise/readme.md
----------------------------------------------------------------------
diff --git a/modules/webconfig/nodejs/node_modules/jade/node_modules/transformers/node_modules/promise/node_modules/is-promise/readme.md b/modules/webconfig/nodejs/node_modules/jade/node_modules/transformers/node_modules/promise/node_modules/is-promise/readme.md
new file mode 100644
index 0000000..50d5d98
--- /dev/null
+++ b/modules/webconfig/nodejs/node_modules/jade/node_modules/transformers/node_modules/promise/node_modules/is-promise/readme.md
@@ -0,0 +1,29 @@
+<a href="http://promises-aplus.github.com/promises-spec"><img src="http://promises-aplus.github.com/promises-spec/assets/logo-small.png" align="right" /></a>
+# is-promise
+
+  Test whether an object looks like a promises-a+ promise
+
+ [![Build Status](https://img.shields.io/travis/then/is-promise/master.svg)](https://travis-ci.org/then/is-promise)
+ [![Dependency Status](https://img.shields.io/gemnasium/then/is-promise.svg)](https://gemnasium.com/then/is-promise)
+ [![NPM version](https://img.shields.io/npm/v/is-promise.svg)](https://www.npmjs.org/package/is-promise)
+
+## Installation
+
+    $ npm install is-promise
+
+You can also use it client side via npm.
+
+## API
+
+```javascript
+var isPromise = require('is-promise');
+
+isPromise({then:function () {...}});//=>true
+isPromise(null);//=>false
+isPromise({});//=>false
+isPromise({then: true})//=>false
+```
+
+## License
+
+  MIT

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/0ef79031/modules/webconfig/nodejs/node_modules/jade/node_modules/transformers/node_modules/promise/package.json
----------------------------------------------------------------------
diff --git a/modules/webconfig/nodejs/node_modules/jade/node_modules/transformers/node_modules/promise/package.json b/modules/webconfig/nodejs/node_modules/jade/node_modules/transformers/node_modules/promise/package.json
new file mode 100644
index 0000000..33f88cc
--- /dev/null
+++ b/modules/webconfig/nodejs/node_modules/jade/node_modules/transformers/node_modules/promise/package.json
@@ -0,0 +1,45 @@
+{
+  "name": "promise",
+  "version": "2.0.0",
+  "description": "Bare bones Promises/A+ implementation",
+  "main": "index.js",
+  "scripts": {
+    "test": "mocha -R spec --timeout 200 --slow 99999"
+  },
+  "repository": {
+    "type": "git",
+    "url": "https://github.com/then/promise.git"
+  },
+  "author": {
+    "name": "ForbesLindesay"
+  },
+  "license": "MIT",
+  "dependencies": {
+    "is-promise": "~1"
+  },
+  "devDependencies": {
+    "promises-aplus-tests": "*",
+    "mocha-as-promised": "~1.2.1",
+    "better-assert": "~1.0.0"
+  },
+  "_id": "promise@2.0.0",
+  "dist": {
+    "shasum": "46648aa9d605af5d2e70c3024bf59436da02b80e",
+    "tarball": "http://registry.npmjs.org/promise/-/promise-2.0.0.tgz"
+  },
+  "_from": "promise@>=2.0.0 <2.1.0",
+  "_npmVersion": "1.2.10",
+  "_npmUser": {
+    "name": "forbeslindesay",
+    "email": "forbes@lindesay.co.uk"
+  },
+  "maintainers": [
+    {
+      "name": "forbeslindesay",
+      "email": "forbes@lindesay.co.uk"
+    }
+  ],
+  "directories": {},
+  "_shasum": "46648aa9d605af5d2e70c3024bf59436da02b80e",
+  "_resolved": "https://registry.npmjs.org/promise/-/promise-2.0.0.tgz"
+}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/0ef79031/modules/webconfig/nodejs/node_modules/jade/node_modules/transformers/node_modules/uglify-js/.npmignore
----------------------------------------------------------------------
diff --git a/modules/webconfig/nodejs/node_modules/jade/node_modules/transformers/node_modules/uglify-js/.npmignore b/modules/webconfig/nodejs/node_modules/jade/node_modules/transformers/node_modules/uglify-js/.npmignore
new file mode 100644
index 0000000..94fceeb
--- /dev/null
+++ b/modules/webconfig/nodejs/node_modules/jade/node_modules/transformers/node_modules/uglify-js/.npmignore
@@ -0,0 +1,2 @@
+tmp/
+node_modules/