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:28 UTC

[03/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/package.json
----------------------------------------------------------------------
diff --git a/modules/webconfig/nodejs/node_modules/jade/node_modules/transformers/package.json b/modules/webconfig/nodejs/node_modules/jade/node_modules/transformers/package.json
new file mode 100644
index 0000000..7530650
--- /dev/null
+++ b/modules/webconfig/nodejs/node_modules/jade/node_modules/transformers/package.json
@@ -0,0 +1,89 @@
+{
+  "name": "transformers",
+  "version": "2.1.0",
+  "description": "String/Data transformations for use in templating libraries, static site generators and web frameworks",
+  "main": "lib/transformers.js",
+  "scripts": {
+    "pretest": "node test/update-package && npm install",
+    "test": "mocha test/test.js -R spec"
+  },
+  "repository": {
+    "type": "git",
+    "url": "https://github.com/ForbesLindesay/transformers.git"
+  },
+  "author": {
+    "name": "ForbesLindesay"
+  },
+  "license": "MIT",
+  "gitHead": "4b46e72cba3ad3403fd5ed3802d5472dcfa77311",
+  "devDependencies": {
+    "mocha": "~1.8",
+    "expect.js": "~0.2",
+    "swig": "*",
+    "atpl": "*",
+    "liquor": "*",
+    "ejs": "*",
+    "eco": "*",
+    "jqtpl": "*",
+    "hamljs": "*",
+    "haml-coffee": "*",
+    "whiskers": "*",
+    "hogan.js": "*",
+    "handlebars": "*",
+    "underscore": "*",
+    "walrus": "*",
+    "mustache": "*",
+    "mote": "*",
+    "toffee": "*",
+    "just": "*",
+    "ect": "*",
+    "jade": "*",
+    "then-jade": "*",
+    "dust": "*",
+    "dustjs-linkedin": "*",
+    "jazz": "*",
+    "qejs": "*",
+    "less": "*",
+    "stylus": "*",
+    "sass": "*",
+    "marked": "*",
+    "supermarked": "*",
+    "markdown-js": "*",
+    "markdown": "*",
+    "coffee-script": "*",
+    "cson": "*",
+    "coffeekup": "*",
+    "coffeecup": "*",
+    "templayed": "*",
+    "plates": "*",
+    "dot": "*",
+    "component-builder": "*",
+    "html2jade": "*",
+    "highlight.js": "*"
+  },
+  "dependencies": {
+    "promise": "~2.0",
+    "css": "~1.0.8",
+    "uglify-js": "~2.2.5"
+  },
+  "_id": "transformers@2.1.0",
+  "dist": {
+    "shasum": "5d23cb35561dd85dc67fb8482309b47d53cce9a7",
+    "tarball": "http://registry.npmjs.org/transformers/-/transformers-2.1.0.tgz"
+  },
+  "_from": "transformers@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": "5d23cb35561dd85dc67fb8482309b47d53cce9a7",
+  "_resolved": "https://registry.npmjs.org/transformers/-/transformers-2.1.0.tgz"
+}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/0ef79031/modules/webconfig/nodejs/node_modules/jade/node_modules/void-elements/.gitattributes
----------------------------------------------------------------------
diff --git a/modules/webconfig/nodejs/node_modules/jade/node_modules/void-elements/.gitattributes b/modules/webconfig/nodejs/node_modules/jade/node_modules/void-elements/.gitattributes
new file mode 100644
index 0000000..176a458
--- /dev/null
+++ b/modules/webconfig/nodejs/node_modules/jade/node_modules/void-elements/.gitattributes
@@ -0,0 +1 @@
+* text=auto

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/0ef79031/modules/webconfig/nodejs/node_modules/jade/node_modules/void-elements/.npmignore
----------------------------------------------------------------------
diff --git a/modules/webconfig/nodejs/node_modules/jade/node_modules/void-elements/.npmignore b/modules/webconfig/nodejs/node_modules/jade/node_modules/void-elements/.npmignore
new file mode 100644
index 0000000..3c3629e
--- /dev/null
+++ b/modules/webconfig/nodejs/node_modules/jade/node_modules/void-elements/.npmignore
@@ -0,0 +1 @@
+node_modules

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/0ef79031/modules/webconfig/nodejs/node_modules/jade/node_modules/void-elements/.travis.yml
----------------------------------------------------------------------
diff --git a/modules/webconfig/nodejs/node_modules/jade/node_modules/void-elements/.travis.yml b/modules/webconfig/nodejs/node_modules/jade/node_modules/void-elements/.travis.yml
new file mode 100644
index 0000000..3c6757d
--- /dev/null
+++ b/modules/webconfig/nodejs/node_modules/jade/node_modules/void-elements/.travis.yml
@@ -0,0 +1,4 @@
+language: node_js
+node_js:
+  - '0.10'
+  - '0.11'

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/0ef79031/modules/webconfig/nodejs/node_modules/jade/node_modules/void-elements/LICENSE
----------------------------------------------------------------------
diff --git a/modules/webconfig/nodejs/node_modules/jade/node_modules/void-elements/LICENSE b/modules/webconfig/nodejs/node_modules/jade/node_modules/void-elements/LICENSE
new file mode 100644
index 0000000..2d3845b
--- /dev/null
+++ b/modules/webconfig/nodejs/node_modules/jade/node_modules/void-elements/LICENSE
@@ -0,0 +1,22 @@
+(The MIT License)
+
+Copyright (c) 2014 hemanth
+
+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/void-elements/README.md
----------------------------------------------------------------------
diff --git a/modules/webconfig/nodejs/node_modules/jade/node_modules/void-elements/README.md b/modules/webconfig/nodejs/node_modules/jade/node_modules/void-elements/README.md
new file mode 100644
index 0000000..e8e0654
--- /dev/null
+++ b/modules/webconfig/nodejs/node_modules/jade/node_modules/void-elements/README.md
@@ -0,0 +1,27 @@
+void-elements
+==============
+
+### Array of "void elements" defined by the HTML specification
+
+Exports an Array of "void element" node names as defined by the HTML spec.
+
+The list is programatically generated from the [latest W3C HTML draft](http://www.w3.org/html/wg/drafts/html/master/syntax.html#void-elements).
+
+[![Build Status](https://img.shields.io/travis/jadejs/void-elements/master.svg?style=flat)](https://travis-ci.org/jadejs/void-elements)
+[![Developing Dependency Status](https://img.shields.io/david/dev/jadejs/void-elements.svg?style=flat)](https://david-dm.org/jadejs/void-elements#info=devDependencies)
+[![NPM version](https://img.shields.io/npm/v/void-elements.svg?style=flat)](https://www.npmjs.org/package/void-elements)
+
+Usage
+-----
+
+```js
+var voidElements = require('void-elements');
+
+assert(voidElements.indexOf('span') === -1, '<span> is not a void element');
+assert(voidElements.indexOf('img') !== -1, '<img> is a void element');
+```
+
+License
+-------
+
+MIT

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/0ef79031/modules/webconfig/nodejs/node_modules/jade/node_modules/void-elements/index.js
----------------------------------------------------------------------
diff --git a/modules/webconfig/nodejs/node_modules/jade/node_modules/void-elements/index.js b/modules/webconfig/nodejs/node_modules/jade/node_modules/void-elements/index.js
new file mode 100644
index 0000000..363b624
--- /dev/null
+++ b/modules/webconfig/nodejs/node_modules/jade/node_modules/void-elements/index.js
@@ -0,0 +1,23 @@
+/**
+ * This file automatically generated from `pre-publish.js`.
+ * Do not manually edit.
+ */
+
+module.exports = {
+  "area": true,
+  "base": true,
+  "br": true,
+  "col": true,
+  "embed": true,
+  "hr": true,
+  "img": true,
+  "input": true,
+  "keygen": true,
+  "link": true,
+  "menuitem": true,
+  "meta": true,
+  "param": true,
+  "source": true,
+  "track": true,
+  "wbr": true
+};

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/0ef79031/modules/webconfig/nodejs/node_modules/jade/node_modules/void-elements/package.json
----------------------------------------------------------------------
diff --git a/modules/webconfig/nodejs/node_modules/jade/node_modules/void-elements/package.json b/modules/webconfig/nodejs/node_modules/jade/node_modules/void-elements/package.json
new file mode 100644
index 0000000..1b48ada
--- /dev/null
+++ b/modules/webconfig/nodejs/node_modules/jade/node_modules/void-elements/package.json
@@ -0,0 +1,57 @@
+{
+  "name": "void-elements",
+  "version": "2.0.1",
+  "description": "Array of \"void elements\" defined by the HTML specification.",
+  "main": "index.js",
+  "scripts": {
+    "test": "node test",
+    "prepublish": "node pre-publish.js > index.js"
+  },
+  "keywords": [
+    "html",
+    "void",
+    "elements"
+  ],
+  "repository": {
+    "type": "git",
+    "url": "git://github.com/hemanth/void-elements"
+  },
+  "author": {
+    "name": "hemanth.hm"
+  },
+  "engines": {
+    "node": ">=0.10.0"
+  },
+  "license": "MIT",
+  "bugs": {
+    "url": "https://github.com/hemanth/void-elements/issues"
+  },
+  "homepage": "https://github.com/hemanth/void-elements",
+  "devDependencies": {
+    "cheerio": "^0.18.0"
+  },
+  "_id": "void-elements@2.0.1",
+  "dist": {
+    "shasum": "c066afb582bb1cb4128d60ea92392e94d5e9dbec",
+    "tarball": "http://registry.npmjs.org/void-elements/-/void-elements-2.0.1.tgz"
+  },
+  "_from": "void-elements@>=2.0.1 <2.1.0",
+  "_npmVersion": "1.3.11",
+  "_npmUser": {
+    "name": "hemanth",
+    "email": "hemanth.hm@gmail.com"
+  },
+  "maintainers": [
+    {
+      "name": "hemanth",
+      "email": "hemanth.hm@gmail.com"
+    },
+    {
+      "name": "forbeslindesay",
+      "email": "forbes@lindesay.co.uk"
+    }
+  ],
+  "directories": {},
+  "_shasum": "c066afb582bb1cb4128d60ea92392e94d5e9dbec",
+  "_resolved": "https://registry.npmjs.org/void-elements/-/void-elements-2.0.1.tgz"
+}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/0ef79031/modules/webconfig/nodejs/node_modules/jade/node_modules/void-elements/pre-publish.js
----------------------------------------------------------------------
diff --git a/modules/webconfig/nodejs/node_modules/jade/node_modules/void-elements/pre-publish.js b/modules/webconfig/nodejs/node_modules/jade/node_modules/void-elements/pre-publish.js
new file mode 100644
index 0000000..93218ab
--- /dev/null
+++ b/modules/webconfig/nodejs/node_modules/jade/node_modules/void-elements/pre-publish.js
@@ -0,0 +1,29 @@
+var cheerio = require('cheerio')
+  , http = require('http');
+
+http.get('http://www.w3.org/html/wg/drafts/html/master/syntax.html', function (res) {
+  var str = '';
+  res.setEncoding('utf8');
+  res.on('data', function (buf) {
+    str += buf;
+  }).on('end', function () {
+    var $ = cheerio.load(str);
+    var codes = $('dfn#void-elements')
+                .parent()
+                .next()
+                .text()
+                .replace(/\s/gm,'')
+                .split(",")
+                .reduce(function (obj, code) {
+                  obj[code] = true;
+                  return obj;
+                }, {});
+
+    console.log('/**');
+    console.log(' * This file automatically generated from `pre-publish.js`.');
+    console.log(' * Do not manually edit.');
+    console.log(' */');
+    console.log();
+    console.log('module.exports = %s;', JSON.stringify(codes, null, 2));
+  });
+});

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/0ef79031/modules/webconfig/nodejs/node_modules/jade/node_modules/void-elements/test/index.js
----------------------------------------------------------------------
diff --git a/modules/webconfig/nodejs/node_modules/jade/node_modules/void-elements/test/index.js b/modules/webconfig/nodejs/node_modules/jade/node_modules/void-elements/test/index.js
new file mode 100644
index 0000000..4d71973
--- /dev/null
+++ b/modules/webconfig/nodejs/node_modules/jade/node_modules/void-elements/test/index.js
@@ -0,0 +1,5 @@
+var assert = require('assert');
+var voidElements = require('../');
+assert(!voidElements.span, '<span> is not a void element');
+assert(voidElements.img, '<img> is a void element');
+console.log('tests passed');

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/0ef79031/modules/webconfig/nodejs/node_modules/jade/node_modules/with/.npmignore
----------------------------------------------------------------------
diff --git a/modules/webconfig/nodejs/node_modules/jade/node_modules/with/.npmignore b/modules/webconfig/nodejs/node_modules/jade/node_modules/with/.npmignore
new file mode 100644
index 0000000..cefaa67
--- /dev/null
+++ b/modules/webconfig/nodejs/node_modules/jade/node_modules/with/.npmignore
@@ -0,0 +1,2 @@
+test/
+.travis.yml
\ 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/with/LICENSE
----------------------------------------------------------------------
diff --git a/modules/webconfig/nodejs/node_modules/jade/node_modules/with/LICENSE b/modules/webconfig/nodejs/node_modules/jade/node_modules/with/LICENSE
new file mode 100644
index 0000000..35cc606
--- /dev/null
+++ b/modules/webconfig/nodejs/node_modules/jade/node_modules/with/LICENSE
@@ -0,0 +1,19 @@
+Copyright (c) 2013 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/with/README.md
----------------------------------------------------------------------
diff --git a/modules/webconfig/nodejs/node_modules/jade/node_modules/with/README.md b/modules/webconfig/nodejs/node_modules/jade/node_modules/with/README.md
new file mode 100644
index 0000000..ed88b0c
--- /dev/null
+++ b/modules/webconfig/nodejs/node_modules/jade/node_modules/with/README.md
@@ -0,0 +1,81 @@
+# with
+
+Compile time `with` for strict mode JavaScript
+
+[![build status](https://secure.travis-ci.org/ForbesLindesay/with.png)](http://travis-ci.org/ForbesLindesay/with)
+[![Dependency Status](https://img.shields.io/gemnasium/ForbesLindesay/with.svg)](https://gemnasium.com/ForbesLindesay/with)
+[![NPM version](https://img.shields.io/npm/v/with.svg)](http://badge.fury.io/js/with)
+
+## Installation
+
+    $ npm install with
+
+## Usage
+
+```js
+var addWith = require('with')
+
+addWith('obj', 'console.log(a)')
+// => ';(function (console, a) {
+//       console.log(a)
+//     }("console" in obj ? obj.console :
+//                          typeof console!=="undefined" ? console : undefined,
+//       "a" in obj ? obj.a :
+//                    typeof a !== "undefined" ? a : undefined));'
+
+addWith('obj', 'console.log(a)', ['console'])
+// => ';(function (console, a) {
+//       console.log(a)
+//     }("a" in obj ? obj.a :
+//                    typeof a !== "undefined" ? a : undefined));'
+```
+
+## API
+
+### addWith(obj, src[, exclude])
+
+The idea is that this is roughly equivallent to:
+
+```js
+with (obj) {
+  src
+}
+```
+
+There are a few differences though.  For starters, assignments to variables will always remain contained within the with block.
+
+e.g.
+
+```js
+var foo = 'foo'
+with ({}) {
+  foo = 'bar'
+}
+assert(foo === 'bar')// => This fails for compile time with but passes for native with
+
+var obj = {foo: 'foo'}
+with ({}) {
+  foo = 'bar'
+}
+assert(obj.foo === 'bar')// => This fails for compile time with but passes for native with
+```
+
+It also makes everything be declared, so you can always do:
+
+```js
+if (foo === undefined)
+```
+
+instead of
+
+```js
+if (typeof foo === 'undefined')
+```
+
+This is not the case if foo is in `exclude`.  If a variable is excluded, we ignore it entirely.  This is useful if you know a variable will be global as it can lead to efficiency improvements.
+
+It is also safe to use in strict mode (unlike `with`) and it minifies properly (`with` disables virtually all minification).
+
+## License
+
+  MIT
\ 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/with/index.js
----------------------------------------------------------------------
diff --git a/modules/webconfig/nodejs/node_modules/jade/node_modules/with/index.js b/modules/webconfig/nodejs/node_modules/jade/node_modules/with/index.js
new file mode 100644
index 0000000..7632ee7
--- /dev/null
+++ b/modules/webconfig/nodejs/node_modules/jade/node_modules/with/index.js
@@ -0,0 +1,125 @@
+'use strict';
+
+var detect = require('acorn-globals');
+var acorn = require('acorn');
+var walk = require('acorn/dist/walk');
+
+// polyfill for https://github.com/marijnh/acorn/pull/231
+walk.base.ExportNamedDeclaration = walk.base.ExportDefaultDeclaration = function (node, st, c) {
+  return c(node.declaration, st);
+};
+walk.base.ImportDefaultSpecifier = walk.base.ImportNamespaceSpecifier = function () {};
+
+// hacky fix for https://github.com/marijnh/acorn/issues/227
+function reallyParse(source) {
+  try {
+    return acorn.parse(source, {
+      ecmaVersion: 5,
+      allowReturnOutsideFunction: true
+    });
+  } catch (ex) {
+    if (ex.name !== 'SyntaxError') {
+      throw ex;
+    }
+    return acorn.parse(source, {
+      ecmaVersion: 6,
+      allowReturnOutsideFunction: true
+    });
+  }
+}
+
+module.exports = addWith
+
+/**
+ * Mimic `with` as far as possible but at compile time
+ *
+ * @param {String} obj The object part of a with expression
+ * @param {String} src The body of the with expression
+ * @param {Array.<String>} exclude A list of variable names to explicitly exclude
+ */
+function addWith(obj, src, exclude) {
+  obj = obj + ''
+  src = src + ''
+  exclude = exclude || []
+  exclude = exclude.concat(detect(obj).map(function (global) { return global.name; }))
+  var vars = detect(src).map(function (global) { return global.name; })
+    .filter(function (v) {
+      return exclude.indexOf(v) === -1
+    })
+
+  if (vars.length === 0) return src
+
+  var declareLocal = ''
+  var local = 'locals_for_with'
+  var result = 'result_of_with'
+  if (/^[a-zA-Z0-9$_]+$/.test(obj)) {
+    local = obj
+  } else {
+    while (vars.indexOf(local) != -1 || exclude.indexOf(local) != -1) {
+      local += '_'
+    }
+    declareLocal = 'var ' + local + ' = (' + obj + ')'
+  }
+  while (vars.indexOf(result) != -1 || exclude.indexOf(result) != -1) {
+    result += '_'
+  }
+
+  var inputVars = vars.map(function (v) {
+    return JSON.stringify(v) + ' in ' + local + '?' +
+      local + '.' + v + ':' +
+      'typeof ' + v + '!=="undefined"?' + v + ':undefined'
+  })
+
+  src = '(function (' + vars.join(', ') + ') {' +
+    src +
+    '}.call(this' + inputVars.map(function (v) { return ',' + v; }).join('') + '))'
+
+  return ';' + declareLocal + ';' + unwrapReturns(src, result) + ';'
+}
+
+/**
+ * Take a self calling function, and unwrap it such that return inside the function
+ * results in return outside the function
+ *
+ * @param {String} src    Some JavaScript code representing a self-calling function
+ * @param {String} result A temporary variable to store the result in
+ */
+function unwrapReturns(src, result) {
+  var originalSource = src
+  var hasReturn = false
+  var ast = reallyParse(src)
+  var ref
+  src = src.split('')
+
+  // get a reference to the function that was inserted to add an inner context
+  if ((ref = ast.body).length !== 1
+   || (ref = ref[0]).type !== 'ExpressionStatement'
+   || (ref = ref.expression).type !== 'CallExpression'
+   || (ref = ref.callee).type !== 'MemberExpression' || ref.computed !== false || ref.property.name !== 'call'
+   || (ref = ref.object).type !== 'FunctionExpression')
+    throw new Error('AST does not seem to represent a self-calling function')
+  var fn = ref
+
+  walk.recursive(ast, null, {
+    Function: function (node, st, c) {
+      if (node === fn) {
+        c(node.body, st, "ScopeBody");
+      }
+    },
+    ReturnStatement: function (node) {
+      hasReturn = true
+      replace(node, 'return {value: ' + source(node.argument) + '};');
+    }
+  });
+  function source(node) {
+    return src.slice(node.start, node.end).join('')
+  }
+  function replace(node, str) {
+    for (var i = node.start; i < node.end; i++) {
+      src[i] = ''
+    }
+    src[node.start] = str
+  }
+  if (!hasReturn) return originalSource
+  else return 'var ' + result + '=' + src.join('') + ';if (' + result + ') return ' + result + '.value'
+}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/0ef79031/modules/webconfig/nodejs/node_modules/jade/node_modules/with/node_modules/.bin/acorn
----------------------------------------------------------------------
diff --git a/modules/webconfig/nodejs/node_modules/jade/node_modules/with/node_modules/.bin/acorn b/modules/webconfig/nodejs/node_modules/jade/node_modules/with/node_modules/.bin/acorn
new file mode 120000
index 0000000..cf76760
--- /dev/null
+++ b/modules/webconfig/nodejs/node_modules/jade/node_modules/with/node_modules/.bin/acorn
@@ -0,0 +1 @@
+../acorn/bin/acorn
\ 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/with/node_modules/acorn-globals/LICENSE
----------------------------------------------------------------------
diff --git a/modules/webconfig/nodejs/node_modules/jade/node_modules/with/node_modules/acorn-globals/LICENSE b/modules/webconfig/nodejs/node_modules/jade/node_modules/with/node_modules/acorn-globals/LICENSE
new file mode 100644
index 0000000..27cc9f3
--- /dev/null
+++ b/modules/webconfig/nodejs/node_modules/jade/node_modules/with/node_modules/acorn-globals/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/with/node_modules/acorn-globals/README.md
----------------------------------------------------------------------
diff --git a/modules/webconfig/nodejs/node_modules/jade/node_modules/with/node_modules/acorn-globals/README.md b/modules/webconfig/nodejs/node_modules/jade/node_modules/with/node_modules/acorn-globals/README.md
new file mode 100644
index 0000000..6356753
--- /dev/null
+++ b/modules/webconfig/nodejs/node_modules/jade/node_modules/with/node_modules/acorn-globals/README.md
@@ -0,0 +1,76 @@
+# acorn-globals
+
+Detect global variables in JavaScript using acorn
+
+[![Build Status](https://img.shields.io/travis/ForbesLindesay/acorn-globals/master.svg)](https://travis-ci.org/ForbesLindesay/acorn-globals)
+[![Dependency Status](https://img.shields.io/gemnasium/ForbesLindesay/acorn-globals.svg)](https://gemnasium.com/ForbesLindesay/acorn-globals)
+[![NPM version](https://img.shields.io/npm/v/acorn-globals.svg)](https://www.npmjs.org/package/acorn-globals)
+
+## Installation
+
+    npm install acorn-globals
+
+## Usage
+
+detect.js
+
+```js
+var fs = require('fs');
+var detect = require('acorn-globals');
+
+var src = fs.readFileSync(__dirname + '/input.js', 'utf8');
+
+var scope = detect(src);
+console.dir(scope);
+```
+
+input.js
+
+```js
+var x = 5;
+var y = 3, z = 2;
+
+w.foo();
+w = 2;
+
+RAWR=444;
+RAWR.foo();
+
+BLARG=3;
+
+foo(function () {
+    var BAR = 3;
+    process.nextTick(function (ZZZZZZZZZZZZ) {
+        console.log('beep boop');
+        var xyz = 4;
+        x += 10;
+        x.zzzzzz;
+        ZZZ=6;
+    });
+    function doom () {
+    }
+    ZZZ.foo();
+
+});
+
+console.log(xyz);
+```
+
+output:
+
+```
+$ node example/detect.js
+[ { name: 'BLARG', nodes: [ [Object] ] },
+  { name: 'RAWR', nodes: [ [Object], [Object] ] },
+  { name: 'ZZZ', nodes: [ [Object], [Object] ] },
+  { name: 'console', nodes: [ [Object], [Object] ] },
+  { name: 'foo', nodes: [ [Object] ] },
+  { name: 'process', nodes: [ [Object] ] },
+  { name: 'w', nodes: [ [Object], [Object] ] },
+  { name: 'xyz', nodes: [ [Object] ] } ]
+```
+
+
+## License
+
+  MIT

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/0ef79031/modules/webconfig/nodejs/node_modules/jade/node_modules/with/node_modules/acorn-globals/index.js
----------------------------------------------------------------------
diff --git a/modules/webconfig/nodejs/node_modules/jade/node_modules/with/node_modules/acorn-globals/index.js b/modules/webconfig/nodejs/node_modules/jade/node_modules/with/node_modules/acorn-globals/index.js
new file mode 100644
index 0000000..02983c7
--- /dev/null
+++ b/modules/webconfig/nodejs/node_modules/jade/node_modules/with/node_modules/acorn-globals/index.js
@@ -0,0 +1,155 @@
+'use strict';
+
+var acorn = require('acorn');
+var walk = require('acorn/dist/walk');
+
+// polyfill for https://github.com/marijnh/acorn/pull/231
+walk.base.ExportNamedDeclaration = walk.base.ExportDefaultDeclaration = function (node, st, c) {
+  return c(node.declaration, st);
+};
+walk.base.ImportDefaultSpecifier = walk.base.ImportNamespaceSpecifier = function () {};
+
+function isScope(node) {
+  return node.type === 'FunctionExpression' || node.type === 'FunctionDeclaration' || node.type === 'Program';
+}
+function isBlockScope(node) {
+  return node.type === 'BlockStatement' || isScope(node);
+}
+
+function declaresArguments(node) {
+  return node.type === 'FunctionExpression' || node.type === 'FunctionDeclaration' || node.type === 'ArrowFunction';
+}
+function declaresThis(node) {
+  return node.type === 'FunctionExpression' || node.type === 'FunctionDeclaration';
+}
+
+function reallyParse(source) {
+  try {
+    return acorn.parse(source, {
+      ecmaVersion: 6,
+      allowReturnOutsideFunction: true,
+      sourceType: 'module'
+    });
+  } catch (ex) {
+    if (ex.name !== 'SyntaxError') {
+      throw ex;
+    }
+    try {
+      return acorn.parse(source, {
+        ecmaVersion: 6,
+        allowReturnOutsideFunction: true
+      });
+    } catch (ex) {
+      if (ex.name !== 'SyntaxError') {
+        throw ex;
+      }
+      return acorn.parse(source, {
+        ecmaVersion: 5,
+        allowReturnOutsideFunction: true
+      });
+    }
+  }
+}
+module.exports = findGlobals;
+module.exports.parse = reallyParse;
+function findGlobals(source) {
+  var globals = [];
+  var ast = typeof source === 'string' ?
+    ast = reallyParse(source) :
+    source;
+  if (!(ast && typeof ast === 'object' && ast.type === 'Program')) {
+    throw new TypeError('Source must be either a string of JavaScript or an acorn AST');
+  }
+  var declareFunction = function (node) {
+    var fn = node;
+    fn.locals = fn.locals || {};
+    node.params.forEach(function (node) {
+      fn.locals[node.name] = true;
+    });
+    if (node.id) {
+      fn.locals[node.id.name] = true;
+    }
+  }
+  walk.ancestor(ast, {
+    'VariableDeclaration': function (node, parents) {
+      var parent = null;
+      for (var i = parents.length - 1; i >= 0 && parent === null; i--) {
+        if (node.kind === 'var' ? isScope(parents[i]) : isBlockScope(parents[i])) {
+          parent = parents[i];
+        }
+      }
+      parent.locals = parent.locals || {};
+      node.declarations.forEach(function (declaration) {
+        parent.locals[declaration.id.name] = true;
+      });
+    },
+    'FunctionDeclaration': function (node, parents) {
+      var parent = null;
+      for (var i = parents.length - 2; i >= 0 && parent === null; i--) {
+        if (isScope(parents[i])) {
+          parent = parents[i];
+        }
+      }
+      parent.locals = parent.locals || {};
+      parent.locals[node.id.name] = true;
+      declareFunction(node);
+    },
+    'Function': declareFunction,
+    'TryStatement': function (node) {
+      node.handler.body.locals = node.handler.body.locals || {};
+      node.handler.body.locals[node.handler.param.name] = true;
+    },
+    'ImportDefaultSpecifier': function (node) {
+      if (node.local.type === 'Identifier') {
+        ast.locals = ast.locals || {};
+        ast.locals[node.local.name] = true;
+      }
+    },
+    'ImportSpecifier': function (node) {
+      var id = node.local ? node.local : node.imported;
+      if (id.type === 'Identifier') {
+        ast.locals = ast.locals || {};
+        ast.locals[id.name] = true;
+      }
+    },
+    'ImportNamespaceSpecifier': function (node) {
+      if (node.local.type === 'Identifier') {
+        ast.locals = ast.locals || {};
+        ast.locals[node.local.name] = true;
+      }
+    }
+  });
+  walk.ancestor(ast, {
+    'Identifier': function (node, parents) {
+      var name = node.name;
+      if (name === 'undefined') return;
+      for (var i = 0; i < parents.length; i++) {
+        if (name === 'arguments' && declaresArguments(parents[i])) {
+          return;
+        }
+        if (parents[i].locals && name in parents[i].locals) {
+          return;
+        }
+      }
+      node.parents = parents;
+      globals.push(node);
+    },
+    ThisExpression: function (node, parents) {
+      for (var i = 0; i < parents.length; i++) {
+        if (declaresThis(parents[i])) {
+          return;
+        }
+      }
+      node.parents = parents;
+      globals.push(node);
+    }
+  });
+  var groupedGlobals = {};
+  globals.forEach(function (node) {
+    groupedGlobals[node.name] = (groupedGlobals[node.name] || []);
+    groupedGlobals[node.name].push(node);
+  });
+  return Object.keys(groupedGlobals).sort().map(function (name) {
+    return {name: name, nodes: groupedGlobals[name]};
+  });
+}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/0ef79031/modules/webconfig/nodejs/node_modules/jade/node_modules/with/node_modules/acorn-globals/package.json
----------------------------------------------------------------------
diff --git a/modules/webconfig/nodejs/node_modules/jade/node_modules/with/node_modules/acorn-globals/package.json b/modules/webconfig/nodejs/node_modules/jade/node_modules/with/node_modules/acorn-globals/package.json
new file mode 100644
index 0000000..81f92b7
--- /dev/null
+++ b/modules/webconfig/nodejs/node_modules/jade/node_modules/with/node_modules/acorn-globals/package.json
@@ -0,0 +1,62 @@
+{
+  "name": "acorn-globals",
+  "version": "1.0.4",
+  "description": "Detect global variables in JavaScript using acorn",
+  "keywords": [
+    "ast",
+    "variable",
+    "name",
+    "lexical",
+    "scope",
+    "local",
+    "global",
+    "implicit"
+  ],
+  "files": [
+    "index.js",
+    "LICENSE"
+  ],
+  "dependencies": {
+    "acorn": "^1.0.1"
+  },
+  "devDependencies": {
+    "testit": "^1.2.0"
+  },
+  "scripts": {
+    "test": "node test"
+  },
+  "repository": {
+    "type": "git",
+    "url": "https://github.com/ForbesLindesay/acorn-globals.git"
+  },
+  "author": {
+    "name": "ForbesLindesay"
+  },
+  "license": "MIT",
+  "gitHead": "4ad8a64daa0e4028ce0d1596dbceec26b433235c",
+  "bugs": {
+    "url": "https://github.com/ForbesLindesay/acorn-globals/issues"
+  },
+  "homepage": "https://github.com/ForbesLindesay/acorn-globals",
+  "_id": "acorn-globals@1.0.4",
+  "_shasum": "4e8528e724b4fa24ba553ad479c4c78589afbfcf",
+  "_from": "acorn-globals@>=1.0.0 <2.0.0",
+  "_npmVersion": "2.7.1",
+  "_nodeVersion": "1.6.2",
+  "_npmUser": {
+    "name": "forbeslindesay",
+    "email": "forbes@lindesay.co.uk"
+  },
+  "maintainers": [
+    {
+      "name": "forbeslindesay",
+      "email": "forbes@lindeay.co.uk"
+    }
+  ],
+  "dist": {
+    "shasum": "4e8528e724b4fa24ba553ad479c4c78589afbfcf",
+    "tarball": "http://registry.npmjs.org/acorn-globals/-/acorn-globals-1.0.4.tgz"
+  },
+  "directories": {},
+  "_resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-1.0.4.tgz"
+}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/0ef79031/modules/webconfig/nodejs/node_modules/jade/node_modules/with/node_modules/acorn/.editorconfig
----------------------------------------------------------------------
diff --git a/modules/webconfig/nodejs/node_modules/jade/node_modules/with/node_modules/acorn/.editorconfig b/modules/webconfig/nodejs/node_modules/jade/node_modules/with/node_modules/acorn/.editorconfig
new file mode 100644
index 0000000..c14d5c6
--- /dev/null
+++ b/modules/webconfig/nodejs/node_modules/jade/node_modules/with/node_modules/acorn/.editorconfig
@@ -0,0 +1,7 @@
+root = true
+
+[*]
+indent_style = space
+indent_size = 2
+end_of_line = lf
+insert_final_newline = true

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/0ef79031/modules/webconfig/nodejs/node_modules/jade/node_modules/with/node_modules/acorn/.gitattributes
----------------------------------------------------------------------
diff --git a/modules/webconfig/nodejs/node_modules/jade/node_modules/with/node_modules/acorn/.gitattributes b/modules/webconfig/nodejs/node_modules/jade/node_modules/with/node_modules/acorn/.gitattributes
new file mode 100644
index 0000000..fcadb2c
--- /dev/null
+++ b/modules/webconfig/nodejs/node_modules/jade/node_modules/with/node_modules/acorn/.gitattributes
@@ -0,0 +1 @@
+* text eol=lf

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/0ef79031/modules/webconfig/nodejs/node_modules/jade/node_modules/with/node_modules/acorn/.npmignore
----------------------------------------------------------------------
diff --git a/modules/webconfig/nodejs/node_modules/jade/node_modules/with/node_modules/acorn/.npmignore b/modules/webconfig/nodejs/node_modules/jade/node_modules/with/node_modules/acorn/.npmignore
new file mode 100644
index 0000000..ecba291
--- /dev/null
+++ b/modules/webconfig/nodejs/node_modules/jade/node_modules/with/node_modules/acorn/.npmignore
@@ -0,0 +1,3 @@
+/.tern-port
+/test
+/local

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/0ef79031/modules/webconfig/nodejs/node_modules/jade/node_modules/with/node_modules/acorn/.tern-project
----------------------------------------------------------------------
diff --git a/modules/webconfig/nodejs/node_modules/jade/node_modules/with/node_modules/acorn/.tern-project b/modules/webconfig/nodejs/node_modules/jade/node_modules/with/node_modules/acorn/.tern-project
new file mode 100644
index 0000000..9e26dfe
--- /dev/null
+++ b/modules/webconfig/nodejs/node_modules/jade/node_modules/with/node_modules/acorn/.tern-project
@@ -0,0 +1 @@
+{}
\ 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/with/node_modules/acorn/.travis.yml
----------------------------------------------------------------------
diff --git a/modules/webconfig/nodejs/node_modules/jade/node_modules/with/node_modules/acorn/.travis.yml b/modules/webconfig/nodejs/node_modules/jade/node_modules/with/node_modules/acorn/.travis.yml
new file mode 100644
index 0000000..ffb9f71
--- /dev/null
+++ b/modules/webconfig/nodejs/node_modules/jade/node_modules/with/node_modules/acorn/.travis.yml
@@ -0,0 +1,2 @@
+language: node_js
+node_js: '0.10'

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/0ef79031/modules/webconfig/nodejs/node_modules/jade/node_modules/with/node_modules/acorn/AUTHORS
----------------------------------------------------------------------
diff --git a/modules/webconfig/nodejs/node_modules/jade/node_modules/with/node_modules/acorn/AUTHORS b/modules/webconfig/nodejs/node_modules/jade/node_modules/with/node_modules/acorn/AUTHORS
new file mode 100644
index 0000000..d832530
--- /dev/null
+++ b/modules/webconfig/nodejs/node_modules/jade/node_modules/with/node_modules/acorn/AUTHORS
@@ -0,0 +1,36 @@
+List of Acorn contributors. Updated before every release.
+
+Alistair Braidwood
+Andres Suarez
+Aparajita Fishman
+Arian Stolwijk
+Artem Govorov
+Brandon Mills
+Charles Hughes
+Conrad Irwin
+David Bonnet
+Forbes Lindesay
+impinball
+Ingvar Stepanyan
+Jiaxing Wang
+Johannes Herr
+Jürg Lehni
+keeyipchan
+krator
+Marijn Haverbeke
+Martin Carlberg
+Mathias Bynens
+Mathieu 'p01' Henri
+Max Schaefer
+Max Zerzouri
+Mihai Bazon
+Mike Rennie
+Nick Fitzgerald
+Oskar Schöldström
+Paul Harper
+Peter Rust
+PlNG
+r-e-d
+Rich Harris
+Sebastian McKenzie
+zsjforcn

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/0ef79031/modules/webconfig/nodejs/node_modules/jade/node_modules/with/node_modules/acorn/LICENSE
----------------------------------------------------------------------
diff --git a/modules/webconfig/nodejs/node_modules/jade/node_modules/with/node_modules/acorn/LICENSE b/modules/webconfig/nodejs/node_modules/jade/node_modules/with/node_modules/acorn/LICENSE
new file mode 100644
index 0000000..d4c7fc5
--- /dev/null
+++ b/modules/webconfig/nodejs/node_modules/jade/node_modules/with/node_modules/acorn/LICENSE
@@ -0,0 +1,19 @@
+Copyright (C) 2012-2014 by various contributors (see AUTHORS)
+
+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/with/node_modules/acorn/README.md
----------------------------------------------------------------------
diff --git a/modules/webconfig/nodejs/node_modules/jade/node_modules/with/node_modules/acorn/README.md b/modules/webconfig/nodejs/node_modules/jade/node_modules/with/node_modules/acorn/README.md
new file mode 100644
index 0000000..43ead47
--- /dev/null
+++ b/modules/webconfig/nodejs/node_modules/jade/node_modules/with/node_modules/acorn/README.md
@@ -0,0 +1,375 @@
+# Acorn
+
+[![Build Status](https://travis-ci.org/marijnh/acorn.svg?branch=master)](https://travis-ci.org/marijnh/acorn)
+[![NPM version](https://img.shields.io/npm/v/acorn.svg)](https://www.npmjs.org/package/acorn)  
+[Author funding status: ![maintainer happiness](https://marijnhaverbeke.nl/fund/status_s.png?force)](https://marijnhaverbeke.nl/fund/)
+
+A tiny, fast JavaScript parser, written completely in JavaScript.
+
+## Installation
+
+The easiest way to install acorn is with [`npm`][npm].
+
+[npm]: http://npmjs.org
+
+```sh
+npm install acorn
+```
+
+Alternately, download the source.
+
+```sh
+git clone https://github.com/marijnh/acorn.git
+```
+
+## Components
+
+When run in a CommonJS (node.js) or AMD environment, exported values
+appear in the interfaces exposed by the individual files, as usual.
+When loaded in the browser (Acorn works in any JS-enabled browser more
+recent than IE5) without any kind of module management, a single
+global object `acorn` will be defined, and all the exported properties
+will be added to that.
+
+### Main parser
+
+This is implemented in `dist/acorn.js`, and is what you get when you
+`require("acorn")` in node.js.
+
+**parse**`(input, options)` is used to parse a JavaScript program.
+The `input` parameter is a string, `options` can be undefined or an
+object setting some of the options listed below. The return value will
+be an abstract syntax tree object as specified by the
+[Mozilla Parser API][mozapi].
+
+When  encountering   a  syntax   error,  the   parser  will   raise  a
+`SyntaxError` object with a meaningful  message. The error object will
+have a `pos` property that indicates the character offset at which the
+error occurred,  and a `loc`  object that contains a  `{line, column}`
+object referring to that same position.
+
+[mozapi]: https://developer.mozilla.org/en-US/docs/SpiderMonkey/Parser_API
+
+- **ecmaVersion**: Indicates the ECMAScript version to parse. Must be
+  either 3, 5, or 6. This influences support for strict mode, the set
+  of reserved words, and support for new syntax features. Default is 5.
+
+- **sourceType**: Indicate the mode the code should be parsed in. Can be
+  either `"script"` or `"module"`.
+
+- **onInsertedSemicolon**: If given a callback, that callback will be
+  called whenever a missing semicolon is inserted by the parser. The
+  callback will be given the character offset of the point where the
+  semicolon is inserted as argument, and if `locations` is on, also a
+  `{line, column}` object representing this position.
+
+- **onTrailingComma**: Like `onInsertedSemicolon`, but for trailing
+  commas.
+
+- **allowReserved**: If `false`, using a reserved word will generate
+  an error. Defaults to `true`. When given the value `"never"`,
+  reserved words and keywords can also not be used as property names
+  (as in Internet Explorer's old parser).
+  
+- **allowReturnOutsideFunction**: By default, a return statement at
+  the top level raises an error. Set this to `true` to accept such
+  code.
+
+- **allowImportExportEverywhere**: By default, `import` and `export`
+  declarations can only appear at a program's top level. Setting this
+  option to `true` allows them anywhere where a statement is allowed.
+
+- **allowHashBang**: When this is enabled (off by default), if the
+  code starts with the characters `#!` (as in a shellscript), the
+  first line will be treated as a comment.
+
+- **locations**: When `true`, each node has a `loc` object attached
+  with `start` and `end` subobjects, each of which contains the
+  one-based line and zero-based column numbers in `{line, column}`
+  form. Default is `false`.
+
+- **onToken**: If a function is passed for this option, each found
+  token will be passed in same format as `tokenize()` returns.
+
+  If array is passed, each found token is pushed to it.
+
+  Note that you are not allowed to call the parser from the
+  callback—that will corrupt its internal state.
+
+- **onComment**: If a function is passed for this option, whenever a
+  comment is encountered the function will be called with the
+  following parameters:
+
+  - `block`: `true` if the comment is a block comment, false if it
+    is a line comment.
+  - `text`: The content of the comment.
+  - `start`: Character offset of the start of the comment.
+  - `end`: Character offset of the end of the comment.
+
+  When the `locations` options is on, the `{line, column}` locations
+  of the comment’s start and end are passed as two additional
+  parameters.
+
+  If array is passed for this option, each found comment is pushed
+  to it as object in Esprima format:
+  
+  ```javascript
+  {
+    "type": "Line" | "Block",
+    "value": "comment text",
+    "range": ...,
+    "loc": ...
+  }
+  ```
+
+  Note that you are not allowed to call the parser from the
+  callback—that will corrupt its internal state.
+
+- **ranges**: Nodes have their start and end characters offsets
+  recorded in `start` and `end` properties (directly on the node,
+  rather than the `loc` object, which holds line/column data. To also
+  add a [semi-standardized][range] "range" property holding a
+  `[start, end]` array with the same numbers, set the `ranges` option
+  to `true`.
+
+- **program**: It is possible to parse multiple files into a single
+  AST by passing the tree produced by parsing the first file as the
+  `program` option in subsequent parses. This will add the toplevel
+  forms of the parsed file to the "Program" (top) node of an existing
+  parse tree.
+
+- **sourceFile**: When the `locations` option is `true`, you can pass
+  this option to add a `source` attribute in every node’s `loc`
+  object. Note that the contents of this option are not examined or
+  processed in any way; you are free to use whatever format you
+  choose.
+
+- **directSourceFile**: Like `sourceFile`, but a `sourceFile` property
+  will be added directly to the nodes, rather than the `loc` object.
+
+- **preserveParens**: If this option is `true`, parenthesized expressions
+  are represented by (non-standard) `ParenthesizedExpression` nodes
+  that have a single `expression` property containing the expression
+  inside parentheses.
+
+[range]: https://bugzilla.mozilla.org/show_bug.cgi?id=745678
+
+**parseExpressionAt**`(input, offset, options)` will parse a single
+expression in a string, and return its AST. It will not complain if
+there is more of the string left after the expression.
+
+**getLineInfo**`(input, offset)` can be used to get a `{line,
+column}` object for a given program string and character offset.
+
+**tokenizer**`(input, options)` returns an object with a `getToken`
+method that can be called repeatedly to get the next token, a `{start,
+end, type, value}` object (with added `loc` property when the
+`locations` option is enabled and `range` property when the `ranges`
+option is enabled). When the token's type is `tokTypes.eof`, you
+should stop calling the method, since it will keep returning that same
+token forever.
+
+In ES6 environment, returned result can be used as any other
+protocol-compliant iterable:
+
+```javascript
+for (let token of acorn.tokenize(str)) {
+  // iterate over the tokens
+}
+
+// transform code to array of tokens:
+var tokens = [...acorn.tokenize(str)];
+```
+
+**tokTypes** holds an object mapping names to the token type objects
+that end up in the `type` properties of tokens.
+
+#### Note on using with [Escodegen][escodegen]
+
+Escodegen supports generating comments from AST, attached in
+Esprima-specific format. In order to simulate same format in
+Acorn, consider following example:
+
+```javascript
+var comments = [], tokens = [];
+
+var ast = acorn.parse('var x = 42; // answer', {
+	// collect ranges for each node
+	ranges: true,
+	// collect comments in Esprima's format
+	onComment: comments,
+	// collect token ranges
+	onToken: tokens
+});
+
+// attach comments using collected information
+escodegen.attachComments(ast, comments, tokens);
+
+// generate code
+console.log(escodegen.generate(ast, {comment: true}));
+// > 'var x = 42;    // answer'
+```
+
+[escodegen]: https://github.com/Constellation/escodegen
+
+#### Using Acorn in an environment with a Content Security Policy
+
+Some contexts, such as Chrome Web Apps, disallow run-time code evaluation.
+Acorn uses `new Function` to generate fast functions that test whether
+a word is in a given set, and will trigger a security error when used
+in a context with such a
+[Content Security Policy](http://www.html5rocks.com/en/tutorials/security/content-security-policy/#eval-too)
+(see [#90](https://github.com/marijnh/acorn/issues/90) and
+[#123](https://github.com/marijnh/acorn/issues/123)).
+
+The `dist/acorn_csp.js` file in the distribution (which is built
+by the `bin/without_eval` script) has the generated code inlined, and
+can thus run without evaluating anything.
+
+### dist/acorn_loose.js ###
+
+This file implements an error-tolerant parser. It exposes a single
+function.
+
+**parse_dammit**`(input, options)` takes the same arguments and
+returns the same syntax tree as the `parse` function in `acorn.js`,
+but never raises an error, and will do its best to parse syntactically
+invalid code in as meaningful a way as it can. It'll insert identifier
+nodes with name `"✖"` as placeholders in places where it can't make
+sense of the input. Depends on `acorn.js`, because it uses the same
+tokenizer.
+
+### dist/walk.js ###
+
+Implements an abstract syntax tree walker. Will store its interface in
+`acorn.walk` when loaded without a module system.
+
+**simple**`(node, visitors, base, state)` does a 'simple' walk over
+a tree. `node` should be the AST node to walk, and `visitors` an
+object with properties whose names correspond to node types in the
+[Mozilla Parser API][mozapi]. The properties should contain functions
+that will be called with the node object and, if applicable the state
+at that point. The last two arguments are optional. `base` is a walker
+algorithm, and `state` is a start state. The default walker will
+simply visit all statements and expressions and not produce a
+meaningful state. (An example of a use of state it to track scope at
+each point in the tree.)
+
+**ancestor**`(node, visitors, base, state)` does a 'simple' walk over
+a tree, building up an array of ancestor nodes (including the current node)
+and passing the array to callbacks in the `state` parameter.
+
+**recursive**`(node, state, functions, base)` does a 'recursive'
+walk, where the walker functions are responsible for continuing the
+walk on the child nodes of their target node. `state` is the start
+state, and `functions` should contain an object that maps node types
+to walker functions. Such functions are called with `(node, state, c)`
+arguments, and can cause the walk to continue on a sub-node by calling
+the `c` argument on it with `(node, state)` arguments. The optional
+`base` argument provides the fallback walker functions for node types
+that aren't handled in the `functions` object. If not given, the
+default walkers will be used.
+
+**make**`(functions, base)` builds a new walker object by using the
+walker functions in `functions` and filling in the missing ones by
+taking defaults from `base`.
+
+**findNodeAt**`(node, start, end, test, base, state)` tries to
+locate a node in a tree at the given start and/or end offsets, which
+satisfies the predicate `test`. `start` end `end` can be either `null`
+(as wildcard) or a number. `test` may be a string (indicating a node
+type) or a function that takes `(nodeType, node)` arguments and
+returns a boolean indicating whether this node is interesting. `base`
+and `state` are optional, and can be used to specify a custom walker.
+Nodes are tested from inner to outer, so if two nodes match the
+boundaries, the inner one will be preferred.
+
+**findNodeAround**`(node, pos, test, base, state)` is a lot like
+`findNodeAt`, but will match any node that exists 'around' (spanning)
+the given position.
+
+**findNodeAfter**`(node, pos, test, base, state)` is similar to
+`findNodeAround`, but will match all nodes *after* the given position
+(testing outer nodes before inner nodes).
+
+## Command line interface
+
+The `bin/acorn` utility can be used to parse a file from the command
+line. It accepts as arguments its input file and the following
+options:
+
+- `--ecma3|--ecma5|--ecma6`: Sets the ECMAScript version to parse. Default is
+  version 5.
+
+- `--locations`: Attaches a "loc" object to each node with "start" and
+  "end" subobjects, each of which contains the one-based line and
+  zero-based column numbers in `{line, column}` form.
+
+- `--compact`: No whitespace is used in the AST output.
+
+- `--silent`: Do not output the AST, just return the exit status.
+
+- `--help`: Print the usage information and quit.
+
+The utility spits out the syntax tree as JSON data.
+
+## Build system
+
+Acorn is written in ECMAScript 6, as a set of small modules, in the
+project's `src` directory, and compiled down to bigger ECMAScript 3
+files in `dist` using [Browserify](http://browserify.org) and
+[Babel](http://babeljs.io/). If you are already using Babel, you can
+consider including the modules directly.
+
+The command-line test runner (`npm test`) uses the ES6 modules. The
+browser-based test page (`test/index.html`) uses the compiled modules.
+The `bin/build-acorn.js` script builds the latter from the former.
+
+If you are working on Acorn, you'll probably want to try the code out
+directly, without an intermediate build step. In your scripts, you can
+register the Babel require shim like this:
+
+    require("babelify/node_modules/babel-core/register")
+
+That will allow you to directly `require` the ES6 modules.
+
+## Plugins
+
+Acorn is designed support allow plugins which, within reasonable
+bounds, redefine the way the parser works. Plugins can add new token
+types and new tokenizer contexts (if necessary), and extend methods in
+the parser object. This is not a clean, elegant API—using it requires
+an understanding of Acorn's internals, and plugins are likely to break
+whenever those internals are significantly changed. But still, it is
+_possible_, in this way, to create parsers for JavaScript dialects
+without forking all of Acorn. And in principle it is even possible to
+combine such plugins, so that if you have, for example, a plugin for
+parsing types and a plugin for parsing JSX-style XML literals, you
+could load them both and parse code with both JSX tags and types.
+
+A plugin should register itself by adding a property to
+`acorn.plugins`, which holds a function. Calling `acorn.parse`, a
+`plugin` option can be passed, holding an object mapping plugin names
+to configuration values (or just `true` for plugins that don't take
+options). After the parser object has been created, the initialization
+functions for the chosen plugins are called with `(parser,
+configValue)` arguments. They are expected to use the `parser.extend`
+method to extend parser methods. For example, the `readToken` method
+could be extended like this:
+
+```javascript
+parser.extend("readToken", function(nextMethod) {
+  return function(code) {
+    console.log("Reading a token!")
+    return nextMethod.call(this, code)
+  }
+})
+```
+
+The `nextMethod` argument passed to `extend`'s second argument is the
+previous value of this method, and should usually be called through to
+whenever the extended method does not handle the call itself.
+
+There is a proof-of-concept JSX plugin in the [`jsx`
+branch](https://github.com/marijnh/acorn/tree/jsx) branch of the
+Github repository.

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/0ef79031/modules/webconfig/nodejs/node_modules/jade/node_modules/with/node_modules/acorn/bin/acorn
----------------------------------------------------------------------
diff --git a/modules/webconfig/nodejs/node_modules/jade/node_modules/with/node_modules/acorn/bin/acorn b/modules/webconfig/nodejs/node_modules/jade/node_modules/with/node_modules/acorn/bin/acorn
new file mode 100755
index 0000000..c1cbe33
--- /dev/null
+++ b/modules/webconfig/nodejs/node_modules/jade/node_modules/with/node_modules/acorn/bin/acorn
@@ -0,0 +1,53 @@
+#!/usr/bin/env node
+
+var path = require("path");
+var fs = require("fs");
+var acorn = require("../dist/acorn.js");
+
+var infile, parsed, tokens, options = {}, silent = false, compact = false, tokenize = false;
+
+function help(status) {
+  var print = (status == 0) ? console.log : console.error;
+  print("usage: " + path.basename(process.argv[1]) + " [--ecma3|--ecma5|--ecma6]");
+  print("        [--tokenize] [--locations] [--compact] [--silent] [--help] [--] infile");
+  process.exit(status);
+}
+
+for (var i = 2; i < process.argv.length; ++i) {
+  var arg = process.argv[i];
+  if (arg[0] != "-" && !infile) infile = arg;
+  else if (arg == "--" && !infile && i + 2 == process.argv.length) infile = process.argv[++i];
+  else if (arg == "--ecma3") options.ecmaVersion = 3;
+  else if (arg == "--ecma5") options.ecmaVersion = 5;
+  else if (arg == "--ecma6") options.ecmaVersion = 6;
+  else if (arg == "--ecma7") options.ecmaVersion = 7;
+  else if (arg == "--locations") options.locations = true;
+  else if (arg == "--silent") silent = true;
+  else if (arg == "--compact") compact = true;
+  else if (arg == "--help") help(0);
+  else if (arg == "--tokenize") tokenize = true;
+  else help(1);
+}
+
+try {
+  var code = fs.readFileSync(infile, "utf8");
+
+  if (!tokenize)
+    parsed = acorn.parse(code, options);
+  else {
+    var get = acorn.tokenize(code, options);
+    tokens = [];
+    while (true) {
+      var token = get();
+      tokens.push(token);
+      if (token.type.type == "eof")
+        break;
+    }
+  }
+} catch(e) {
+  console.log(e.message);
+  process.exit(1);
+}
+
+if (!silent)
+  console.log(JSON.stringify(tokenize ? tokens : parsed, null, compact ? null : 2));

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/0ef79031/modules/webconfig/nodejs/node_modules/jade/node_modules/with/node_modules/acorn/bin/build-acorn.js
----------------------------------------------------------------------
diff --git a/modules/webconfig/nodejs/node_modules/jade/node_modules/with/node_modules/acorn/bin/build-acorn.js b/modules/webconfig/nodejs/node_modules/jade/node_modules/with/node_modules/acorn/bin/build-acorn.js
new file mode 100644
index 0000000..a97b757
--- /dev/null
+++ b/modules/webconfig/nodejs/node_modules/jade/node_modules/with/node_modules/acorn/bin/build-acorn.js
@@ -0,0 +1,51 @@
+var fs = require("fs"), path = require("path")
+var stream = require("stream")
+
+var browserify = require("browserify")
+var babelify = require("babelify").configure({loose: "all"})
+
+process.chdir(path.resolve(__dirname, ".."))
+
+browserify({standalone: "acorn"})
+  .plugin(require('browserify-derequire'))
+  .transform(babelify)
+  .require("./src/index.js", {entry: true})
+  .bundle()
+  .on("error", function (err) { console.log("Error: " + err.message) })
+  .pipe(fs.createWriteStream("dist/acorn.js"))
+
+function acornShim(file) {
+  var tr = new stream.Transform
+  if (file == path.resolve(__dirname, "../src/index.js")) {
+    var sent = false
+    tr._transform = function(chunk, _, callback) {
+      if (!sent) {
+        sent = true
+        callback(null, "module.exports = typeof acorn != 'undefined' ? acorn : _dereq_(\"./acorn\")")
+      } else {
+        callback()
+      }
+    }
+  } else {
+    tr._transform = function(chunk, _, callback) { callback(null, chunk) }
+  }
+  return tr
+}
+
+browserify({standalone: "acorn.loose"})
+  .plugin(require('browserify-derequire'))
+  .transform(acornShim)
+  .transform(babelify)
+  .require("./src/loose/index.js", {entry: true})
+  .bundle()
+  .on("error", function (err) { console.log("Error: " + err.message) })
+  .pipe(fs.createWriteStream("dist/acorn_loose.js"))
+
+browserify({standalone: "acorn.walk"})
+  .plugin(require('browserify-derequire'))
+  .transform(acornShim)
+  .transform(babelify)
+  .require("./src/walk/index.js", {entry: true})
+  .bundle()
+  .on("error", function (err) { console.log("Error: " + err.message) })
+  .pipe(fs.createWriteStream("dist/walk.js"))

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/0ef79031/modules/webconfig/nodejs/node_modules/jade/node_modules/with/node_modules/acorn/bin/generate-identifier-regex.js
----------------------------------------------------------------------
diff --git a/modules/webconfig/nodejs/node_modules/jade/node_modules/with/node_modules/acorn/bin/generate-identifier-regex.js b/modules/webconfig/nodejs/node_modules/jade/node_modules/with/node_modules/acorn/bin/generate-identifier-regex.js
new file mode 100644
index 0000000..0d7c50f
--- /dev/null
+++ b/modules/webconfig/nodejs/node_modules/jade/node_modules/with/node_modules/acorn/bin/generate-identifier-regex.js
@@ -0,0 +1,47 @@
+// Note: run `npm install unicode-7.0.0` first.
+
+// Which Unicode version should be used?
+var version = '7.0.0';
+
+var start = require('unicode-' + version + '/properties/ID_Start/code-points')
+    .filter(function(ch) { return ch > 127; });
+var cont = [0x200c, 0x200d].concat(require('unicode-' + version + '/properties/ID_Continue/code-points')
+    .filter(function(ch) { return ch > 127 && start.indexOf(ch) == -1; }));
+
+function pad(str, width) {
+  while (str.length < width) str = "0" + str;
+  return str;
+}
+
+function esc(code) {
+  var hex = code.toString(16);
+  if (hex.length <= 2) return "\\x" + pad(hex, 2);
+  else return "\\u" + pad(hex, 4);
+}
+
+function generate(chars) {
+  var astral = [], re = "";
+  for (var i = 0, at = 0x10000; i < chars.length; i++) {
+    var from = chars[i], to = from;
+    while (i < chars.length - 1 && chars[i + 1] == to + 1) {
+      i++;
+      to++;
+    }
+    if (to <= 0xffff) {
+      if (from == to) re += esc(from);
+      else if (from + 1 == to) re += esc(from) + esc(to);
+      else re += esc(from) + "-" + esc(to);
+    } else {
+      astral.push(from - at, to - from);
+      at = to;
+    }
+  }
+  return {nonASCII: re, astral: astral};
+}
+
+var startData = generate(start), contData = generate(cont);
+
+console.log("  var nonASCIIidentifierStartChars = \"" + startData.nonASCII + "\";");
+console.log("  var nonASCIIidentifierChars = \"" + contData.nonASCII + "\";");
+console.log("  var astralIdentifierStartCodes = " + JSON.stringify(startData.astral) + ";");
+console.log("  var astralIdentifierCodes = " + JSON.stringify(contData.astral) + ";");

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/0ef79031/modules/webconfig/nodejs/node_modules/jade/node_modules/with/node_modules/acorn/bin/prepublish.sh
----------------------------------------------------------------------
diff --git a/modules/webconfig/nodejs/node_modules/jade/node_modules/with/node_modules/acorn/bin/prepublish.sh b/modules/webconfig/nodejs/node_modules/jade/node_modules/with/node_modules/acorn/bin/prepublish.sh
new file mode 100755
index 0000000..879834d
--- /dev/null
+++ b/modules/webconfig/nodejs/node_modules/jade/node_modules/with/node_modules/acorn/bin/prepublish.sh
@@ -0,0 +1,2 @@
+node bin/build-acorn.js
+node bin/without_eval > dist/acorn_csp.js

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/0ef79031/modules/webconfig/nodejs/node_modules/jade/node_modules/with/node_modules/acorn/bin/update_authors.sh
----------------------------------------------------------------------
diff --git a/modules/webconfig/nodejs/node_modules/jade/node_modules/with/node_modules/acorn/bin/update_authors.sh b/modules/webconfig/nodejs/node_modules/jade/node_modules/with/node_modules/acorn/bin/update_authors.sh
new file mode 100755
index 0000000..466c8db
--- /dev/null
+++ b/modules/webconfig/nodejs/node_modules/jade/node_modules/with/node_modules/acorn/bin/update_authors.sh
@@ -0,0 +1,6 @@
+# Combine existing list of authors with everyone known in git, sort, add header.
+tail --lines=+3 AUTHORS > AUTHORS.tmp
+git log --format='%aN' | grep -v abraidwood >> AUTHORS.tmp
+echo -e "List of Acorn contributors. Updated before every release.\n" > AUTHORS
+sort -u AUTHORS.tmp >> AUTHORS
+rm -f AUTHORS.tmp

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/0ef79031/modules/webconfig/nodejs/node_modules/jade/node_modules/with/node_modules/acorn/bin/without_eval
----------------------------------------------------------------------
diff --git a/modules/webconfig/nodejs/node_modules/jade/node_modules/with/node_modules/acorn/bin/without_eval b/modules/webconfig/nodejs/node_modules/jade/node_modules/with/node_modules/acorn/bin/without_eval
new file mode 100755
index 0000000..4331e70
--- /dev/null
+++ b/modules/webconfig/nodejs/node_modules/jade/node_modules/with/node_modules/acorn/bin/without_eval
@@ -0,0 +1,48 @@
+#!/usr/bin/env node
+
+var fs = require("fs")
+
+var acornSrc = fs.readFileSync(require.resolve("../dist/acorn"), "utf8")
+var acorn = require("../dist/acorn"), walk = require("../dist/walk")
+
+var ast = acorn.parse(acornSrc)
+var touchups = [], uses = []
+
+var makePred
+
+walk.simple(ast, {
+  FunctionDeclaration: function(node) {
+    if (node.id.name == "makePredicate") {
+      makePred = node
+      touchups.push({text: "// Removed to create an eval-free library", from: node.start, to: node.end})
+    }
+  },
+  ObjectExpression: function(node) {
+    node.properties.forEach(function(prop) {
+      if (prop.value.type == "CallExpression" &&
+          prop.value.callee.name == "makePredicate")
+        uses.push(prop.value)
+    })
+  }
+})
+
+var results = []
+var dryRun = acornSrc.slice(0, makePred.end) + "; makePredicate = (function(mp) {" +
+    "return function(words) { var r = mp(words); predicates.push(r); return r }})(makePredicate);" +
+    acornSrc.slice(makePred.end)
+;(new Function("predicates", dryRun))(results)
+
+uses.forEach(function (node, i) {
+  touchups.push({text: results[i].toString(), from: node.start, to: node.end})
+})
+
+var result = "", pos = 0
+touchups.sort(function(a, b) { return a.from - b.from })
+touchups.forEach(function(touchup) {
+  result += acornSrc.slice(pos, touchup.from)
+  result += touchup.text
+  pos = touchup.to
+})
+result += acornSrc.slice(pos)
+
+process.stdout.write(result)

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/0ef79031/modules/webconfig/nodejs/node_modules/jade/node_modules/with/node_modules/acorn/dist/.keep
----------------------------------------------------------------------
diff --git a/modules/webconfig/nodejs/node_modules/jade/node_modules/with/node_modules/acorn/dist/.keep b/modules/webconfig/nodejs/node_modules/jade/node_modules/with/node_modules/acorn/dist/.keep
new file mode 100644
index 0000000..e69de29