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:37:05 UTC

[40/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/express-session/node_modules/crc/package.json
----------------------------------------------------------------------
diff --git a/modules/webconfig/nodejs/node_modules/express-session/node_modules/crc/package.json b/modules/webconfig/nodejs/node_modules/express-session/node_modules/crc/package.json
new file mode 100644
index 0000000..b0ceb1e
--- /dev/null
+++ b/modules/webconfig/nodejs/node_modules/express-session/node_modules/crc/package.json
@@ -0,0 +1,58 @@
+{
+  "name": "crc",
+  "version": "3.2.1",
+  "description": "Various CRC JavaScript implementations",
+  "keywords": [
+    "crc"
+  ],
+  "main": "./lib/index.js",
+  "scripts": {
+    "test": "mocha test/*.spec.coffee",
+    "pretest": "coffee --bare --output ./lib --compile ./src/*.coffee"
+  },
+  "author": {
+    "name": "Alex Gorbatchev",
+    "url": "https://github.com/alexgorbatchev"
+  },
+  "devDependencies": {
+    "beautify-benchmark": "^0.2.4",
+    "benchmark": "^1.0.0",
+    "buffer-crc32": "^0.2.3",
+    "chai": "~1.9.1",
+    "coffee-errors": "~0.8.6",
+    "coffee-script": "~1.7.1",
+    "mocha": "*",
+    "seedrandom": "^2.3.6"
+  },
+  "homepage": "https://github.com/alexgorbatchev/node-crc",
+  "bugs": {
+    "url": "https://github.com/alexgorbatchev/node-crc/issues"
+  },
+  "repository": {
+    "type": "git",
+    "url": "git://github.com/alexgorbatchev/node-crc.git"
+  },
+  "license": "MIT",
+  "gitHead": "71caf362b061992bfe4ca8706ee264e764d2e88e",
+  "_id": "crc@3.2.1",
+  "_shasum": "5d9c8fb77a245cd5eca291e5d2d005334bab0082",
+  "_from": "crc@3.2.1",
+  "_npmVersion": "1.4.13",
+  "_npmUser": {
+    "name": "alexgorbatchev",
+    "email": "alex.gorbatchev@gmail.com"
+  },
+  "maintainers": [
+    {
+      "name": "alexgorbatchev",
+      "email": "alex.gorbatchev@gmail.com"
+    }
+  ],
+  "dist": {
+    "shasum": "5d9c8fb77a245cd5eca291e5d2d005334bab0082",
+    "tarball": "http://registry.npmjs.org/crc/-/crc-3.2.1.tgz"
+  },
+  "directories": {},
+  "_resolved": "https://registry.npmjs.org/crc/-/crc-3.2.1.tgz",
+  "readme": "ERROR: No README data found!"
+}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/0ef79031/modules/webconfig/nodejs/node_modules/express-session/node_modules/depd/History.md
----------------------------------------------------------------------
diff --git a/modules/webconfig/nodejs/node_modules/express-session/node_modules/depd/History.md b/modules/webconfig/nodejs/node_modules/express-session/node_modules/depd/History.md
new file mode 100644
index 0000000..4a36a6c
--- /dev/null
+++ b/modules/webconfig/nodejs/node_modules/express-session/node_modules/depd/History.md
@@ -0,0 +1,75 @@
+1.0.1 / 2015-04-07
+==================
+
+  * Fix `TypeError`s when under `'use strict'` code
+  * Fix useless type name on auto-generated messages
+  * Support io.js 1.x
+  * Support Node.js 0.12
+
+1.0.0 / 2014-09-17
+==================
+
+  * No changes
+
+0.4.5 / 2014-09-09
+==================
+
+  * Improve call speed to functions using the function wrapper
+  * Support Node.js 0.6
+
+0.4.4 / 2014-07-27
+==================
+
+  * Work-around v8 generating empty stack traces
+
+0.4.3 / 2014-07-26
+==================
+
+  * Fix exception when global `Error.stackTraceLimit` is too low
+
+0.4.2 / 2014-07-19
+==================
+
+  * Correct call site for wrapped functions and properties
+
+0.4.1 / 2014-07-19
+==================
+
+  * Improve automatic message generation for function properties
+
+0.4.0 / 2014-07-19
+==================
+
+  * Add `TRACE_DEPRECATION` environment variable
+  * Remove non-standard grey color from color output
+  * Support `--no-deprecation` argument
+  * Support `--trace-deprecation` argument
+  * Support `deprecate.property(fn, prop, message)`
+
+0.3.0 / 2014-06-16
+==================
+
+  * Add `NO_DEPRECATION` environment variable
+
+0.2.0 / 2014-06-15
+==================
+
+  * Add `deprecate.property(obj, prop, message)`
+  * Remove `supports-color` dependency for node.js 0.8
+
+0.1.0 / 2014-06-15
+==================
+
+  * Add `deprecate.function(fn, message)`
+  * Add `process.on('deprecation', fn)` emitter
+  * Automatically generate message when omitted from `deprecate()`
+
+0.0.1 / 2014-06-15
+==================
+
+  * Fix warning for dynamic calls at singe call site
+
+0.0.0 / 2014-06-15
+==================
+
+  * Initial implementation

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/0ef79031/modules/webconfig/nodejs/node_modules/express-session/node_modules/depd/LICENSE
----------------------------------------------------------------------
diff --git a/modules/webconfig/nodejs/node_modules/express-session/node_modules/depd/LICENSE b/modules/webconfig/nodejs/node_modules/express-session/node_modules/depd/LICENSE
new file mode 100644
index 0000000..b7dce6c
--- /dev/null
+++ b/modules/webconfig/nodejs/node_modules/express-session/node_modules/depd/LICENSE
@@ -0,0 +1,22 @@
+(The MIT License)
+
+Copyright (c) 2014 Douglas Christopher Wilson
+
+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/express-session/node_modules/depd/Readme.md
----------------------------------------------------------------------
diff --git a/modules/webconfig/nodejs/node_modules/express-session/node_modules/depd/Readme.md b/modules/webconfig/nodejs/node_modules/express-session/node_modules/depd/Readme.md
new file mode 100644
index 0000000..5ead5da
--- /dev/null
+++ b/modules/webconfig/nodejs/node_modules/express-session/node_modules/depd/Readme.md
@@ -0,0 +1,274 @@
+# depd
+
+[![NPM Version][npm-version-image]][npm-url]
+[![NPM Downloads][npm-downloads-image]][npm-url]
+[![Node.js Version][node-image]][node-url]
+[![Linux Build][travis-image]][travis-url]
+[![Windows Build][appveyor-image]][appveyor-url]
+[![Coverage Status][coveralls-image]][coveralls-url]
+[![Gratipay][gratipay-image]][gratipay-url]
+
+Deprecate all the things
+
+> With great modules comes great responsibility; mark things deprecated!
+
+## Install
+
+```sh
+$ npm install depd
+```
+
+## API
+
+```js
+var deprecate = require('depd')('my-module')
+```
+
+This library allows you to display deprecation messages to your users.
+This library goes above and beyond with deprecation warnings by
+introspection of the call stack (but only the bits that it is interested
+in).
+
+Instead of just warning on the first invocation of a deprecated
+function and never again, this module will warn on the first invocation
+of a deprecated function per unique call site, making it ideal to alert
+users of all deprecated uses across the code base, rather than just
+whatever happens to execute first.
+
+The deprecation warnings from this module also include the file and line
+information for the call into the module that the deprecated function was
+in.
+
+**NOTE** this library has a similar interface to the `debug` module, and
+this module uses the calling file to get the boundary for the call stacks,
+so you should always create a new `deprecate` object in each file and not
+within some central file.
+
+### depd(namespace)
+
+Create a new deprecate function that uses the given namespace name in the
+messages and will display the call site prior to the stack entering the
+file this function was called from. It is highly suggested you use the
+name of your module as the namespace.
+
+### deprecate(message)
+
+Call this function from deprecated code to display a deprecation message.
+This message will appear once per unique caller site. Caller site is the
+first call site in the stack in a different file from the caller of this
+function.
+
+If the message is omitted, a message is generated for you based on the site
+of the `deprecate()` call and will display the name of the function called,
+similar to the name displayed in a stack trace.
+
+### deprecate.function(fn, message)
+
+Call this function to wrap a given function in a deprecation message on any
+call to the function. An optional message can be supplied to provide a custom
+message.
+
+### deprecate.property(obj, prop, message)
+
+Call this function to wrap a given property on object in a deprecation message
+on any accessing or setting of the property. An optional message can be supplied
+to provide a custom message.
+
+The method must be called on the object where the property belongs (not
+inherited from the prototype).
+
+If the property is a data descriptor, it will be converted to an accessor
+descriptor in order to display the deprecation message.
+
+### process.on('deprecation', fn)
+
+This module will allow easy capturing of deprecation errors by emitting the
+errors as the type "deprecation" on the global `process`. If there are no
+listeners for this type, the errors are written to STDERR as normal, but if
+there are any listeners, nothing will be written to STDERR and instead only
+emitted. From there, you can write the errors in a different format or to a
+logging source.
+
+The error represents the deprecation and is emitted only once with the same
+rules as writing to STDERR. The error has the following properties:
+
+  - `message` - This is the message given by the library
+  - `name` - This is always `'DeprecationError'`
+  - `namespace` - This is the namespace the deprecation came from
+  - `stack` - This is the stack of the call to the deprecated thing
+
+Example `error.stack` output:
+
+```
+DeprecationError: my-cool-module deprecated oldfunction
+    at Object.<anonymous> ([eval]-wrapper:6:22)
+    at Module._compile (module.js:456:26)
+    at evalScript (node.js:532:25)
+    at startup (node.js:80:7)
+    at node.js:902:3
+```
+
+### process.env.NO_DEPRECATION
+
+As a user of modules that are deprecated, the environment variable `NO_DEPRECATION`
+is provided as a quick solution to silencing deprecation warnings from being
+output. The format of this is similar to that of `DEBUG`:
+
+```sh
+$ NO_DEPRECATION=my-module,othermod node app.js
+```
+
+This will suppress deprecations from being output for "my-module" and "othermod".
+The value is a list of comma-separated namespaces. To suppress every warning
+across all namespaces, use the value `*` for a namespace.
+
+Providing the argument `--no-deprecation` to the `node` executable will suppress
+all deprecations (only available in Node.js 0.8 or higher).
+
+**NOTE** This will not suppress the deperecations given to any "deprecation"
+event listeners, just the output to STDERR.
+
+### process.env.TRACE_DEPRECATION
+
+As a user of modules that are deprecated, the environment variable `TRACE_DEPRECATION`
+is provided as a solution to getting more detailed location information in deprecation
+warnings by including the entire stack trace. The format of this is the same as
+`NO_DEPRECATION`:
+
+```sh
+$ TRACE_DEPRECATION=my-module,othermod node app.js
+```
+
+This will include stack traces for deprecations being output for "my-module" and
+"othermod". The value is a list of comma-separated namespaces. To trace every
+warning across all namespaces, use the value `*` for a namespace.
+
+Providing the argument `--trace-deprecation` to the `node` executable will trace
+all deprecations (only available in Node.js 0.8 or higher).
+
+**NOTE** This will not trace the deperecations silenced by `NO_DEPRECATION`.
+
+## Display
+
+![message](files/message.png)
+
+When a user calls a function in your library that you mark deprecated, they
+will see the following written to STDERR (in the given colors, similar colors
+and layout to the `debug` module):
+
+```
+bright cyan    bright yellow
+|              |          reset       cyan
+|              |          |           |
+▼              ▼          ▼           ▼
+my-cool-module deprecated oldfunction [eval]-wrapper:6:22
+▲              ▲          ▲           ▲
+|              |          |           |
+namespace      |          |           location of mycoolmod.oldfunction() call
+               |          deprecation message
+               the word "deprecated"
+```
+
+If the user redirects their STDERR to a file or somewhere that does not support
+colors, they see (similar layout to the `debug` module):
+
+```
+Sun, 15 Jun 2014 05:21:37 GMT my-cool-module deprecated oldfunction at [eval]-wrapper:6:22
+▲                             ▲              ▲          ▲              ▲
+|                             |              |          |              |
+timestamp of message          namespace      |          |             location of mycoolmod.oldfunction() call
+                                             |          deprecation message
+                                             the word "deprecated"
+```
+
+## Examples
+
+### Deprecating all calls to a function
+
+This will display a deprecated message about "oldfunction" being deprecated
+from "my-module" on STDERR.
+
+```js
+var deprecate = require('depd')('my-cool-module')
+
+// message automatically derived from function name
+// Object.oldfunction
+exports.oldfunction = deprecate.function(function oldfunction() {
+  // all calls to function are deprecated
+})
+
+// specific message
+exports.oldfunction = deprecate.function(function () {
+  // all calls to function are deprecated
+}, 'oldfunction')
+```
+
+### Conditionally deprecating a function call
+
+This will display a deprecated message about "weirdfunction" being deprecated
+from "my-module" on STDERR when called with less than 2 arguments.
+
+```js
+var deprecate = require('depd')('my-cool-module')
+
+exports.weirdfunction = function () {
+  if (arguments.length < 2) {
+    // calls with 0 or 1 args are deprecated
+    deprecate('weirdfunction args < 2')
+  }
+}
+```
+
+When calling `deprecate` as a function, the warning is counted per call site
+within your own module, so you can display different deprecations depending
+on different situations and the users will still get all the warnings:
+
+```js
+var deprecate = require('depd')('my-cool-module')
+
+exports.weirdfunction = function () {
+  if (arguments.length < 2) {
+    // calls with 0 or 1 args are deprecated
+    deprecate('weirdfunction args < 2')
+  } else if (typeof arguments[0] !== 'string') {
+    // calls with non-string first argument are deprecated
+    deprecate('weirdfunction non-string first arg')
+  }
+}
+```
+
+### Deprecating property access
+
+This will display a deprecated message about "oldprop" being deprecated
+from "my-module" on STDERR when accessed. A deprecation will be displayed
+when setting the value and when getting the value.
+
+```js
+var deprecate = require('depd')('my-cool-module')
+
+exports.oldprop = 'something'
+
+// message automatically derives from property name
+deprecate.property(exports, 'oldprop')
+
+// explicit message
+deprecate.property(exports, 'oldprop', 'oldprop >= 0.10')
+```
+
+## License
+
+[MIT](LICENSE)
+
+[npm-version-image]: https://img.shields.io/npm/v/depd.svg
+[npm-downloads-image]: https://img.shields.io/npm/dm/depd.svg
+[npm-url]: https://npmjs.org/package/depd
+[travis-image]: https://img.shields.io/travis/dougwilson/nodejs-depd/master.svg?label=linux
+[travis-url]: https://travis-ci.org/dougwilson/nodejs-depd
+[appveyor-image]: https://img.shields.io/appveyor/ci/dougwilson/nodejs-depd/master.svg?label=windows
+[appveyor-url]: https://ci.appveyor.com/project/dougwilson/nodejs-depd
+[coveralls-image]: https://img.shields.io/coveralls/dougwilson/nodejs-depd/master.svg
+[coveralls-url]: https://coveralls.io/r/dougwilson/nodejs-depd?branch=master
+[node-image]: https://img.shields.io/node/v/depd.svg
+[node-url]: http://nodejs.org/download/
+[gratipay-image]: https://img.shields.io/gratipay/dougwilson.svg
+[gratipay-url]: https://www.gratipay.com/dougwilson/

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/0ef79031/modules/webconfig/nodejs/node_modules/express-session/node_modules/depd/index.js
----------------------------------------------------------------------
diff --git a/modules/webconfig/nodejs/node_modules/express-session/node_modules/depd/index.js b/modules/webconfig/nodejs/node_modules/express-session/node_modules/depd/index.js
new file mode 100644
index 0000000..d183b0a
--- /dev/null
+++ b/modules/webconfig/nodejs/node_modules/express-session/node_modules/depd/index.js
@@ -0,0 +1,529 @@
+/*!
+ * depd
+ * Copyright(c) 2014 Douglas Christopher Wilson
+ * MIT Licensed
+ */
+
+/**
+ * Module dependencies.
+ */
+
+var callSiteToString = require('./lib/compat').callSiteToString
+var EventEmitter = require('events').EventEmitter
+var relative = require('path').relative
+
+/**
+ * Module exports.
+ */
+
+module.exports = depd
+
+/**
+ * Get the path to base files on.
+ */
+
+var basePath = process.cwd()
+
+/**
+ * Get listener count on event emitter.
+ */
+
+/*istanbul ignore next*/
+var eventListenerCount = EventEmitter.listenerCount
+  || function (emitter, type) { return emitter.listeners(type).length }
+
+/**
+ * Determine if namespace is contained in the string.
+ */
+
+function containsNamespace(str, namespace) {
+  var val = str.split(/[ ,]+/)
+
+  namespace = String(namespace).toLowerCase()
+
+  for (var i = 0 ; i < val.length; i++) {
+    if (!(str = val[i])) continue;
+
+    // namespace contained
+    if (str === '*' || str.toLowerCase() === namespace) {
+      return true
+    }
+  }
+
+  return false
+}
+
+/**
+ * Convert a data descriptor to accessor descriptor.
+ */
+
+function convertDataDescriptorToAccessor(obj, prop, message) {
+  var descriptor = Object.getOwnPropertyDescriptor(obj, prop)
+  var value = descriptor.value
+
+  descriptor.get = function getter() { return value }
+
+  if (descriptor.writable) {
+    descriptor.set = function setter(val) { return value = val }
+  }
+
+  delete descriptor.value
+  delete descriptor.writable
+
+  Object.defineProperty(obj, prop, descriptor)
+
+  return descriptor
+}
+
+/**
+ * Create arguments string to keep arity.
+ */
+
+function createArgumentsString(arity) {
+  var str = ''
+
+  for (var i = 0; i < arity; i++) {
+    str += ', arg' + i
+  }
+
+  return str.substr(2)
+}
+
+/**
+ * Create stack string from stack.
+ */
+
+function createStackString(stack) {
+  var str = this.name + ': ' + this.namespace
+
+  if (this.message) {
+    str += ' deprecated ' + this.message
+  }
+
+  for (var i = 0; i < stack.length; i++) {
+    str += '\n    at ' + callSiteToString(stack[i])
+  }
+
+  return str
+}
+
+/**
+ * Create deprecate for namespace in caller.
+ */
+
+function depd(namespace) {
+  if (!namespace) {
+    throw new TypeError('argument namespace is required')
+  }
+
+  var stack = getStack()
+  var site = callSiteLocation(stack[1])
+  var file = site[0]
+
+  function deprecate(message) {
+    // call to self as log
+    log.call(deprecate, message)
+  }
+
+  deprecate._file = file
+  deprecate._ignored = isignored(namespace)
+  deprecate._namespace = namespace
+  deprecate._traced = istraced(namespace)
+  deprecate._warned = Object.create(null)
+
+  deprecate.function = wrapfunction
+  deprecate.property = wrapproperty
+
+  return deprecate
+}
+
+/**
+ * Determine if namespace is ignored.
+ */
+
+function isignored(namespace) {
+  /* istanbul ignore next: tested in a child processs */
+  if (process.noDeprecation) {
+    // --no-deprecation support
+    return true
+  }
+
+  var str = process.env.NO_DEPRECATION || ''
+
+  // namespace ignored
+  return containsNamespace(str, namespace)
+}
+
+/**
+ * Determine if namespace is traced.
+ */
+
+function istraced(namespace) {
+  /* istanbul ignore next: tested in a child processs */
+  if (process.traceDeprecation) {
+    // --trace-deprecation support
+    return true
+  }
+
+  var str = process.env.TRACE_DEPRECATION || ''
+
+  // namespace traced
+  return containsNamespace(str, namespace)
+}
+
+/**
+ * Display deprecation message.
+ */
+
+function log(message, site) {
+  var haslisteners = eventListenerCount(process, 'deprecation') !== 0
+
+  // abort early if no destination
+  if (!haslisteners && this._ignored) {
+    return
+  }
+
+  var caller
+  var callFile
+  var callSite
+  var i = 0
+  var seen = false
+  var stack = getStack()
+  var file = this._file
+
+  if (site) {
+    // provided site
+    callSite = callSiteLocation(stack[1])
+    callSite.name = site.name
+    file = callSite[0]
+  } else {
+    // get call site
+    i = 2
+    site = callSiteLocation(stack[i])
+    callSite = site
+  }
+
+  // get caller of deprecated thing in relation to file
+  for (; i < stack.length; i++) {
+    caller = callSiteLocation(stack[i])
+    callFile = caller[0]
+
+    if (callFile === file) {
+      seen = true
+    } else if (callFile === this._file) {
+      file = this._file
+    } else if (seen) {
+      break
+    }
+  }
+
+  var key = caller
+    ? site.join(':') + '__' + caller.join(':')
+    : undefined
+
+  if (key !== undefined && key in this._warned) {
+    // already warned
+    return
+  }
+
+  this._warned[key] = true
+
+  // generate automatic message from call site
+  if (!message) {
+    message = callSite === site || !callSite.name
+      ? defaultMessage(site)
+      : defaultMessage(callSite)
+  }
+
+  // emit deprecation if listeners exist
+  if (haslisteners) {
+    var err = DeprecationError(this._namespace, message, stack.slice(i))
+    process.emit('deprecation', err)
+    return
+  }
+
+  // format and write message
+  var format = process.stderr.isTTY
+    ? formatColor
+    : formatPlain
+  var msg = format.call(this, message, caller, stack.slice(i))
+  process.stderr.write(msg + '\n', 'utf8')
+
+  return
+}
+
+/**
+ * Get call site location as array.
+ */
+
+function callSiteLocation(callSite) {
+  var file = callSite.getFileName() || '<anonymous>'
+  var line = callSite.getLineNumber()
+  var colm = callSite.getColumnNumber()
+
+  if (callSite.isEval()) {
+    file = callSite.getEvalOrigin() + ', ' + file
+  }
+
+  var site = [file, line, colm]
+
+  site.callSite = callSite
+  site.name = callSite.getFunctionName()
+
+  return site
+}
+
+/**
+ * Generate a default message from the site.
+ */
+
+function defaultMessage(site) {
+  var callSite = site.callSite
+  var funcName = site.name
+
+  // make useful anonymous name
+  if (!funcName) {
+    funcName = '<anonymous@' + formatLocation(site) + '>'
+  }
+
+  var context = callSite.getThis()
+  var typeName = context && callSite.getTypeName()
+
+  // ignore useless type name
+  if (typeName === 'Object') {
+    typeName = undefined
+  }
+
+  // make useful type name
+  if (typeName === 'Function') {
+    typeName = context.name || typeName
+  }
+
+  return typeName && callSite.getMethodName()
+    ? typeName + '.' + funcName
+    : funcName
+}
+
+/**
+ * Format deprecation message without color.
+ */
+
+function formatPlain(msg, caller, stack) {
+  var timestamp = new Date().toUTCString()
+
+  var formatted = timestamp
+    + ' ' + this._namespace
+    + ' deprecated ' + msg
+
+  // add stack trace
+  if (this._traced) {
+    for (var i = 0; i < stack.length; i++) {
+      formatted += '\n    at ' + callSiteToString(stack[i])
+    }
+
+    return formatted
+  }
+
+  if (caller) {
+    formatted += ' at ' + formatLocation(caller)
+  }
+
+  return formatted
+}
+
+/**
+ * Format deprecation message with color.
+ */
+
+function formatColor(msg, caller, stack) {
+  var formatted = '\x1b[36;1m' + this._namespace + '\x1b[22;39m' // bold cyan
+    + ' \x1b[33;1mdeprecated\x1b[22;39m' // bold yellow
+    + ' \x1b[0m' + msg + '\x1b[39m' // reset
+
+  // add stack trace
+  if (this._traced) {
+    for (var i = 0; i < stack.length; i++) {
+      formatted += '\n    \x1b[36mat ' + callSiteToString(stack[i]) + '\x1b[39m' // cyan
+    }
+
+    return formatted
+  }
+
+  if (caller) {
+    formatted += ' \x1b[36m' + formatLocation(caller) + '\x1b[39m' // cyan
+  }
+
+  return formatted
+}
+
+/**
+ * Format call site location.
+ */
+
+function formatLocation(callSite) {
+  return relative(basePath, callSite[0])
+    + ':' + callSite[1]
+    + ':' + callSite[2]
+}
+
+/**
+ * Get the stack as array of call sites.
+ */
+
+function getStack() {
+  var limit = Error.stackTraceLimit
+  var obj = {}
+  var prep = Error.prepareStackTrace
+
+  Error.prepareStackTrace = prepareObjectStackTrace
+  Error.stackTraceLimit = Math.max(10, limit)
+
+  // capture the stack
+  Error.captureStackTrace(obj)
+
+  // slice this function off the top
+  var stack = obj.stack.slice(1)
+
+  Error.prepareStackTrace = prep
+  Error.stackTraceLimit = limit
+
+  return stack
+}
+
+/**
+ * Capture call site stack from v8.
+ */
+
+function prepareObjectStackTrace(obj, stack) {
+  return stack
+}
+
+/**
+ * Return a wrapped function in a deprecation message.
+ */
+
+function wrapfunction(fn, message) {
+  if (typeof fn !== 'function') {
+    throw new TypeError('argument fn must be a function')
+  }
+
+  var args = createArgumentsString(fn.length)
+  var deprecate = this
+  var stack = getStack()
+  var site = callSiteLocation(stack[1])
+
+  site.name = fn.name
+
+  var deprecatedfn = eval('(function (' + args + ') {\n'
+    + '"use strict"\n'
+    + 'log.call(deprecate, message, site)\n'
+    + 'return fn.apply(this, arguments)\n'
+    + '})')
+
+  return deprecatedfn
+}
+
+/**
+ * Wrap property in a deprecation message.
+ */
+
+function wrapproperty(obj, prop, message) {
+  if (!obj || (typeof obj !== 'object' && typeof obj !== 'function')) {
+    throw new TypeError('argument obj must be object')
+  }
+
+  var descriptor = Object.getOwnPropertyDescriptor(obj, prop)
+
+  if (!descriptor) {
+    throw new TypeError('must call property on owner object')
+  }
+
+  if (!descriptor.configurable) {
+    throw new TypeError('property must be configurable')
+  }
+
+  var deprecate = this
+  var stack = getStack()
+  var site = callSiteLocation(stack[1])
+
+  // set site name
+  site.name = prop
+
+  // convert data descriptor
+  if ('value' in descriptor) {
+    descriptor = convertDataDescriptorToAccessor(obj, prop, message)
+  }
+
+  var get = descriptor.get
+  var set = descriptor.set
+
+  // wrap getter
+  if (typeof get === 'function') {
+    descriptor.get = function getter() {
+      log.call(deprecate, message, site)
+      return get.apply(this, arguments)
+    }
+  }
+
+  // wrap setter
+  if (typeof set === 'function') {
+    descriptor.set = function setter() {
+      log.call(deprecate, message, site)
+      return set.apply(this, arguments)
+    }
+  }
+
+  Object.defineProperty(obj, prop, descriptor)
+}
+
+/**
+ * Create DeprecationError for deprecation
+ */
+
+function DeprecationError(namespace, message, stack) {
+  var error = new Error()
+  var stackString
+
+  Object.defineProperty(error, 'constructor', {
+    value: DeprecationError
+  })
+
+  Object.defineProperty(error, 'message', {
+    configurable: true,
+    enumerable: false,
+    value: message,
+    writable: true
+  })
+
+  Object.defineProperty(error, 'name', {
+    enumerable: false,
+    configurable: true,
+    value: 'DeprecationError',
+    writable: true
+  })
+
+  Object.defineProperty(error, 'namespace', {
+    configurable: true,
+    enumerable: false,
+    value: namespace,
+    writable: true
+  })
+
+  Object.defineProperty(error, 'stack', {
+    configurable: true,
+    enumerable: false,
+    get: function () {
+      if (stackString !== undefined) {
+        return stackString
+      }
+
+      // prepare stack trace
+      return stackString = createStackString.call(this, stack)
+    },
+    set: function setter(val) {
+      stackString = val
+    }
+  })
+
+  return error
+}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/0ef79031/modules/webconfig/nodejs/node_modules/express-session/node_modules/depd/lib/compat/buffer-concat.js
----------------------------------------------------------------------
diff --git a/modules/webconfig/nodejs/node_modules/express-session/node_modules/depd/lib/compat/buffer-concat.js b/modules/webconfig/nodejs/node_modules/express-session/node_modules/depd/lib/compat/buffer-concat.js
new file mode 100644
index 0000000..09d9721
--- /dev/null
+++ b/modules/webconfig/nodejs/node_modules/express-session/node_modules/depd/lib/compat/buffer-concat.js
@@ -0,0 +1,33 @@
+/*!
+ * depd
+ * Copyright(c) 2014 Douglas Christopher Wilson
+ * MIT Licensed
+ */
+
+/**
+ * Module exports.
+ */
+
+module.exports = bufferConcat
+
+/**
+ * Concatenate an array of Buffers.
+ */
+
+function bufferConcat(bufs) {
+  var length = 0
+
+  for (var i = 0, len = bufs.length; i < len; i++) {
+    length += bufs[i].length
+  }
+
+  var buf = new Buffer(length)
+  var pos = 0
+
+  for (var i = 0, len = bufs.length; i < len; i++) {
+    bufs[i].copy(buf, pos)
+    pos += bufs[i].length
+  }
+
+  return buf
+}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/0ef79031/modules/webconfig/nodejs/node_modules/express-session/node_modules/depd/lib/compat/callsite-tostring.js
----------------------------------------------------------------------
diff --git a/modules/webconfig/nodejs/node_modules/express-session/node_modules/depd/lib/compat/callsite-tostring.js b/modules/webconfig/nodejs/node_modules/express-session/node_modules/depd/lib/compat/callsite-tostring.js
new file mode 100644
index 0000000..17cf7ed
--- /dev/null
+++ b/modules/webconfig/nodejs/node_modules/express-session/node_modules/depd/lib/compat/callsite-tostring.js
@@ -0,0 +1,101 @@
+/*!
+ * depd
+ * Copyright(c) 2014 Douglas Christopher Wilson
+ * MIT Licensed
+ */
+
+/**
+ * Module exports.
+ */
+
+module.exports = callSiteToString
+
+/**
+ * Format a CallSite file location to a string.
+ */
+
+function callSiteFileLocation(callSite) {
+  var fileName
+  var fileLocation = ''
+
+  if (callSite.isNative()) {
+    fileLocation = 'native'
+  } else if (callSite.isEval()) {
+    fileName = callSite.getScriptNameOrSourceURL()
+    if (!fileName) {
+      fileLocation = callSite.getEvalOrigin()
+    }
+  } else {
+    fileName = callSite.getFileName()
+  }
+
+  if (fileName) {
+    fileLocation += fileName
+
+    var lineNumber = callSite.getLineNumber()
+    if (lineNumber != null) {
+      fileLocation += ':' + lineNumber
+
+      var columnNumber = callSite.getColumnNumber()
+      if (columnNumber) {
+        fileLocation += ':' + columnNumber
+      }
+    }
+  }
+
+  return fileLocation || 'unknown source'
+}
+
+/**
+ * Format a CallSite to a string.
+ */
+
+function callSiteToString(callSite) {
+  var addSuffix = true
+  var fileLocation = callSiteFileLocation(callSite)
+  var functionName = callSite.getFunctionName()
+  var isConstructor = callSite.isConstructor()
+  var isMethodCall = !(callSite.isToplevel() || isConstructor)
+  var line = ''
+
+  if (isMethodCall) {
+    var methodName = callSite.getMethodName()
+    var typeName = getConstructorName(callSite)
+
+    if (functionName) {
+      if (typeName && functionName.indexOf(typeName) !== 0) {
+        line += typeName + '.'
+      }
+
+      line += functionName
+
+      if (methodName && functionName.lastIndexOf('.' + methodName) !== functionName.length - methodName.length - 1) {
+        line += ' [as ' + methodName + ']'
+      }
+    } else {
+      line += typeName + '.' + (methodName || '<anonymous>')
+    }
+  } else if (isConstructor) {
+    line += 'new ' + (functionName || '<anonymous>')
+  } else if (functionName) {
+    line += functionName
+  } else {
+    addSuffix = false
+    line += fileLocation
+  }
+
+  if (addSuffix) {
+    line += ' (' + fileLocation + ')'
+  }
+
+  return line
+}
+
+/**
+ * Get constructor name of reviver.
+ */
+
+function getConstructorName(obj) {
+  var receiver = obj.receiver
+  return (receiver.constructor && receiver.constructor.name) || null
+}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/0ef79031/modules/webconfig/nodejs/node_modules/express-session/node_modules/depd/lib/compat/index.js
----------------------------------------------------------------------
diff --git a/modules/webconfig/nodejs/node_modules/express-session/node_modules/depd/lib/compat/index.js b/modules/webconfig/nodejs/node_modules/express-session/node_modules/depd/lib/compat/index.js
new file mode 100644
index 0000000..7fee026
--- /dev/null
+++ b/modules/webconfig/nodejs/node_modules/express-session/node_modules/depd/lib/compat/index.js
@@ -0,0 +1,69 @@
+/*!
+ * depd
+ * Copyright(c) 2014 Douglas Christopher Wilson
+ * MIT Licensed
+ */
+
+/**
+ * Module exports.
+ */
+
+lazyProperty(module.exports, 'bufferConcat', function bufferConcat() {
+  return Buffer.concat || require('./buffer-concat')
+})
+
+lazyProperty(module.exports, 'callSiteToString', function callSiteToString() {
+  var limit = Error.stackTraceLimit
+  var obj = {}
+  var prep = Error.prepareStackTrace
+
+  function prepareObjectStackTrace(obj, stack) {
+    return stack
+  }
+
+  Error.prepareStackTrace = prepareObjectStackTrace
+  Error.stackTraceLimit = 2
+
+  // capture the stack
+  Error.captureStackTrace(obj)
+
+  // slice the stack
+  var stack = obj.stack.slice()
+
+  Error.prepareStackTrace = prep
+  Error.stackTraceLimit = limit
+
+  return stack[0].toString ? toString : require('./callsite-tostring')
+})
+
+/**
+ * Define a lazy property.
+ */
+
+function lazyProperty(obj, prop, getter) {
+  function get() {
+    var val = getter()
+
+    Object.defineProperty(obj, prop, {
+      configurable: true,
+      enumerable: true,
+      value: val
+    })
+
+    return val
+  }
+
+  Object.defineProperty(obj, prop, {
+    configurable: true,
+    enumerable: true,
+    get: get
+  })
+}
+
+/**
+ * Call toString() on the obj
+ */
+
+function toString(obj) {
+  return obj.toString()
+}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/0ef79031/modules/webconfig/nodejs/node_modules/express-session/node_modules/depd/package.json
----------------------------------------------------------------------
diff --git a/modules/webconfig/nodejs/node_modules/express-session/node_modules/depd/package.json b/modules/webconfig/nodejs/node_modules/express-session/node_modules/depd/package.json
new file mode 100644
index 0000000..3734450
--- /dev/null
+++ b/modules/webconfig/nodejs/node_modules/express-session/node_modules/depd/package.json
@@ -0,0 +1,66 @@
+{
+  "name": "depd",
+  "description": "Deprecate all the things",
+  "version": "1.0.1",
+  "author": {
+    "name": "Douglas Christopher Wilson",
+    "email": "doug@somethingdoug.com"
+  },
+  "license": "MIT",
+  "keywords": [
+    "deprecate",
+    "deprecated"
+  ],
+  "repository": {
+    "type": "git",
+    "url": "git+https://github.com/dougwilson/nodejs-depd.git"
+  },
+  "devDependencies": {
+    "benchmark": "1.0.0",
+    "beautify-benchmark": "0.2.4",
+    "istanbul": "0.3.5",
+    "mocha": "~1.21.5"
+  },
+  "files": [
+    "lib/",
+    "History.md",
+    "LICENSE",
+    "index.js",
+    "Readme.md"
+  ],
+  "engines": {
+    "node": ">= 0.6"
+  },
+  "scripts": {
+    "bench": "node benchmark/index.js",
+    "test": "mocha --reporter spec --bail test/",
+    "test-ci": "istanbul cover node_modules/mocha/bin/_mocha --report lcovonly -- --reporter spec --no-exit test/",
+    "test-cov": "istanbul cover node_modules/mocha/bin/_mocha -- --reporter dot test/"
+  },
+  "gitHead": "769e0f8108463c35a6937a9d634ab19fee45100a",
+  "bugs": {
+    "url": "https://github.com/dougwilson/nodejs-depd/issues"
+  },
+  "homepage": "https://github.com/dougwilson/nodejs-depd",
+  "_id": "depd@1.0.1",
+  "_shasum": "80aec64c9d6d97e65cc2a9caa93c0aa6abf73aaa",
+  "_from": "depd@>=1.0.1 <1.1.0",
+  "_npmVersion": "1.4.28",
+  "_npmUser": {
+    "name": "dougwilson",
+    "email": "doug@somethingdoug.com"
+  },
+  "maintainers": [
+    {
+      "name": "dougwilson",
+      "email": "doug@somethingdoug.com"
+    }
+  ],
+  "dist": {
+    "shasum": "80aec64c9d6d97e65cc2a9caa93c0aa6abf73aaa",
+    "tarball": "http://registry.npmjs.org/depd/-/depd-1.0.1.tgz"
+  },
+  "directories": {},
+  "_resolved": "https://registry.npmjs.org/depd/-/depd-1.0.1.tgz",
+  "readme": "ERROR: No README data found!"
+}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/0ef79031/modules/webconfig/nodejs/node_modules/express-session/node_modules/on-headers/.npmignore
----------------------------------------------------------------------
diff --git a/modules/webconfig/nodejs/node_modules/express-session/node_modules/on-headers/.npmignore b/modules/webconfig/nodejs/node_modules/express-session/node_modules/on-headers/.npmignore
new file mode 100644
index 0000000..cd39b77
--- /dev/null
+++ b/modules/webconfig/nodejs/node_modules/express-session/node_modules/on-headers/.npmignore
@@ -0,0 +1,3 @@
+coverage/
+test/
+.travis.yml

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/0ef79031/modules/webconfig/nodejs/node_modules/express-session/node_modules/on-headers/History.md
----------------------------------------------------------------------
diff --git a/modules/webconfig/nodejs/node_modules/express-session/node_modules/on-headers/History.md b/modules/webconfig/nodejs/node_modules/express-session/node_modules/on-headers/History.md
new file mode 100644
index 0000000..0e5dc11
--- /dev/null
+++ b/modules/webconfig/nodejs/node_modules/express-session/node_modules/on-headers/History.md
@@ -0,0 +1,11 @@
+1.0.0 / 2014-08-10
+==================
+
+  * Honor `res.statusCode` change in `listener`
+  * Move to `jshttp` orgainzation
+  * Prevent `arguments`-related de-opt
+
+0.0.0 / 2014-05-13
+==================
+
+  * Initial implementation

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/0ef79031/modules/webconfig/nodejs/node_modules/express-session/node_modules/on-headers/LICENSE
----------------------------------------------------------------------
diff --git a/modules/webconfig/nodejs/node_modules/express-session/node_modules/on-headers/LICENSE b/modules/webconfig/nodejs/node_modules/express-session/node_modules/on-headers/LICENSE
new file mode 100644
index 0000000..b7dce6c
--- /dev/null
+++ b/modules/webconfig/nodejs/node_modules/express-session/node_modules/on-headers/LICENSE
@@ -0,0 +1,22 @@
+(The MIT License)
+
+Copyright (c) 2014 Douglas Christopher Wilson
+
+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/express-session/node_modules/on-headers/README.md
----------------------------------------------------------------------
diff --git a/modules/webconfig/nodejs/node_modules/express-session/node_modules/on-headers/README.md b/modules/webconfig/nodejs/node_modules/express-session/node_modules/on-headers/README.md
new file mode 100644
index 0000000..627ee93
--- /dev/null
+++ b/modules/webconfig/nodejs/node_modules/express-session/node_modules/on-headers/README.md
@@ -0,0 +1,59 @@
+# on-headers
+
+[![NPM Version](https://img.shields.io/npm/v/on-headers.svg?style=flat)](https://www.npmjs.org/package/on-headers)
+[![Node.js Version](https://img.shields.io/badge/node.js->=_0.8-blue.svg?style=flat)](http://nodejs.org/download/)
+[![Build Status](https://img.shields.io/travis/jshttp/on-headers.svg?style=flat)](https://travis-ci.org/jshttp/on-headers)
+[![Coverage Status](https://img.shields.io/coveralls/jshttp/on-headers.svg?style=flat)](https://coveralls.io/r/jshttp/on-headers)
+[![Gittip](https://img.shields.io/gittip/dougwilson.svg?style=flat)](https://www.gittip.com/dougwilson/)
+
+Execute a listener when a response is about to write headers.
+
+## Install
+
+```sh
+$ npm install on-headers
+```
+
+## API
+
+```js
+var onHeaders = require('on-headers')
+```
+
+### onHeaders(res, listener)
+
+This will add the listener `listener` to fire when headers are emitted for `res`.
+The listener is passed the `response` object as it's context (`this`). Headers are
+considered to be emitted only once, right before they are sent to the client.
+
+When this is called multiple times on the same `res`, the `listener`s are fired
+in the reverse order they were added.
+
+## Examples
+
+```js
+var http = require('http')
+var onHeaders = require('on-headers')
+
+http
+.createServer(onRequest)
+.listen(3000)
+
+function addPoweredBy() {
+  // add if not set by end of request
+  if (!this.getHeader('X-Powered-By')) {
+    this.addHeader('X-Powered-By', 'Node.js')
+  }
+}
+
+function onRequest(req, res) {
+  onHeaders(res, addPoweredBy)
+
+  res.setHeader('Content-Type', 'text/plain')
+  res.end('hello!')
+}
+```
+
+## License
+
+[MIT](LICENSE)

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/0ef79031/modules/webconfig/nodejs/node_modules/express-session/node_modules/on-headers/index.js
----------------------------------------------------------------------
diff --git a/modules/webconfig/nodejs/node_modules/express-session/node_modules/on-headers/index.js b/modules/webconfig/nodejs/node_modules/express-session/node_modules/on-headers/index.js
new file mode 100644
index 0000000..8579f8d
--- /dev/null
+++ b/modules/webconfig/nodejs/node_modules/express-session/node_modules/on-headers/index.js
@@ -0,0 +1,91 @@
+/*!
+ * on-headers
+ * Copyright(c) 2014 Douglas Christopher Wilson
+ * MIT Licensed
+ */
+
+/**
+ * Reference to Array slice.
+ */
+
+var slice = Array.prototype.slice
+
+/**
+ * Execute a listener when a response is about to write headers.
+ *
+ * @param {Object} res
+ * @return {Function} listener
+ * @api public
+ */
+
+module.exports = function onHeaders(res, listener) {
+  if (!res) {
+    throw new TypeError('argument res is required')
+  }
+
+  if (typeof listener !== 'function') {
+    throw new TypeError('argument listener must be a function')
+  }
+
+  res.writeHead = createWriteHead(res.writeHead, listener)
+}
+
+function createWriteHead(prevWriteHead, listener) {
+  var fired = false;
+
+  // return function with core name and argument list
+  return function writeHead(statusCode) {
+    // set headers from arguments
+    var args = setWriteHeadHeaders.apply(this, arguments);
+
+    // fire listener
+    if (!fired) {
+      fired = true
+      listener.call(this)
+
+      // pass-along an updated status code
+      if (typeof args[0] === 'number' && this.statusCode !== args[0]) {
+        args[0] = this.statusCode
+        args.length = 1
+      }
+    }
+
+    prevWriteHead.apply(this, args);
+  }
+}
+
+function setWriteHeadHeaders(statusCode) {
+  var length = arguments.length
+  var headerIndex = length > 1 && typeof arguments[1] === 'string'
+    ? 2
+    : 1
+
+  var headers = length >= headerIndex + 1
+    ? arguments[headerIndex]
+    : undefined
+
+  this.statusCode = statusCode
+
+  // the following block is from node.js core
+  if (Array.isArray(headers)) {
+    // handle array case
+    for (var i = 0, len = headers.length; i < len; ++i) {
+      this.setHeader(headers[i][0], headers[i][1])
+    }
+  } else if (headers) {
+    // handle object case
+    var keys = Object.keys(headers)
+    for (var i = 0; i < keys.length; i++) {
+      var k = keys[i]
+      if (k) this.setHeader(k, headers[k])
+    }
+  }
+
+  // copy leading arguments
+  var args = new Array(Math.min(length, headerIndex))
+  for (var i = 0; i < args.length; i++) {
+    args[i] = arguments[i]
+  }
+
+  return args
+}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/0ef79031/modules/webconfig/nodejs/node_modules/express-session/node_modules/on-headers/package.json
----------------------------------------------------------------------
diff --git a/modules/webconfig/nodejs/node_modules/express-session/node_modules/on-headers/package.json b/modules/webconfig/nodejs/node_modules/express-session/node_modules/on-headers/package.json
new file mode 100644
index 0000000..67d57bd
--- /dev/null
+++ b/modules/webconfig/nodejs/node_modules/express-session/node_modules/on-headers/package.json
@@ -0,0 +1,60 @@
+{
+  "name": "on-headers",
+  "description": "Execute a listener when a response is about to write headers",
+  "version": "1.0.0",
+  "author": {
+    "name": "Douglas Christopher Wilson",
+    "email": "doug@somethingdoug.com"
+  },
+  "license": "MIT",
+  "keywords": [
+    "event",
+    "headers",
+    "http",
+    "onheaders"
+  ],
+  "repository": {
+    "type": "git",
+    "url": "git+https://github.com/jshttp/on-headers.git"
+  },
+  "dependencies": {},
+  "devDependencies": {
+    "istanbul": "0.3.0",
+    "mocha": "~1.21.4",
+    "supertest": "~0.13.0"
+  },
+  "engines": {
+    "node": ">= 0.8.0"
+  },
+  "scripts": {
+    "test": "mocha --reporter spec --bail --check-leaks test/",
+    "test-cov": "istanbul cover node_modules/mocha/bin/_mocha -- --reporter dot --check-leaks test/",
+    "test-travis": "istanbul cover node_modules/mocha/bin/_mocha --report lcovonly -- --reporter spec --check-leaks test/"
+  },
+  "gitHead": "434950a0748cd38bf9a04f3fd4f3ff89cf565fda",
+  "bugs": {
+    "url": "https://github.com/jshttp/on-headers/issues"
+  },
+  "homepage": "https://github.com/jshttp/on-headers",
+  "_id": "on-headers@1.0.0",
+  "_shasum": "2c75b5da4375513d0161c6052e7fcbe4953fca5d",
+  "_from": "on-headers@>=1.0.0 <1.1.0",
+  "_npmVersion": "1.4.21",
+  "_npmUser": {
+    "name": "dougwilson",
+    "email": "doug@somethingdoug.com"
+  },
+  "maintainers": [
+    {
+      "name": "dougwilson",
+      "email": "doug@somethingdoug.com"
+    }
+  ],
+  "dist": {
+    "shasum": "2c75b5da4375513d0161c6052e7fcbe4953fca5d",
+    "tarball": "http://registry.npmjs.org/on-headers/-/on-headers-1.0.0.tgz"
+  },
+  "directories": {},
+  "_resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.0.tgz",
+  "readme": "ERROR: No README data found!"
+}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/0ef79031/modules/webconfig/nodejs/node_modules/express-session/node_modules/parseurl/.npmignore
----------------------------------------------------------------------
diff --git a/modules/webconfig/nodejs/node_modules/express-session/node_modules/parseurl/.npmignore b/modules/webconfig/nodejs/node_modules/express-session/node_modules/parseurl/.npmignore
new file mode 100644
index 0000000..85c82a5
--- /dev/null
+++ b/modules/webconfig/nodejs/node_modules/express-session/node_modules/parseurl/.npmignore
@@ -0,0 +1,4 @@
+benchmark/
+coverage/
+test/
+.travis.yml

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/0ef79031/modules/webconfig/nodejs/node_modules/express-session/node_modules/parseurl/HISTORY.md
----------------------------------------------------------------------
diff --git a/modules/webconfig/nodejs/node_modules/express-session/node_modules/parseurl/HISTORY.md b/modules/webconfig/nodejs/node_modules/express-session/node_modules/parseurl/HISTORY.md
new file mode 100644
index 0000000..65a0860
--- /dev/null
+++ b/modules/webconfig/nodejs/node_modules/express-session/node_modules/parseurl/HISTORY.md
@@ -0,0 +1,42 @@
+1.3.0 / 2014-08-09
+==================
+
+  * Add `parseurl.original` for parsing `req.originalUrl` with fallback
+  * Return `undefined` if `req.url` is `undefined`
+
+1.2.0 / 2014-07-21
+==================
+
+  * Cache URLs based on original value
+  * Remove no-longer-needed URL mis-parse work-around
+  * Simplify the "fast-path" `RegExp`
+
+1.1.3 / 2014-07-08
+==================
+
+  * Fix typo
+
+1.1.2 / 2014-07-08
+==================
+
+  * Seriously fix Node.js 0.8 compatibility
+
+1.1.1 / 2014-07-08
+==================
+
+  * Fix Node.js 0.8 compatibility
+
+1.1.0 / 2014-07-08
+==================
+
+  * Incorporate URL href-only parse fast-path
+
+1.0.1 / 2014-03-08
+==================
+
+  * Add missing `require`
+
+1.0.0 / 2014-03-08
+==================
+
+  * Genesis from `connect`

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/0ef79031/modules/webconfig/nodejs/node_modules/express-session/node_modules/parseurl/LICENSE
----------------------------------------------------------------------
diff --git a/modules/webconfig/nodejs/node_modules/express-session/node_modules/parseurl/LICENSE b/modules/webconfig/nodejs/node_modules/express-session/node_modules/parseurl/LICENSE
new file mode 100644
index 0000000..ec7dfe7
--- /dev/null
+++ b/modules/webconfig/nodejs/node_modules/express-session/node_modules/parseurl/LICENSE
@@ -0,0 +1,24 @@
+
+(The MIT License)
+
+Copyright (c) 2014 Jonathan Ong <me...@jongleberry.com>
+Copyright (c) 2014 Douglas Christopher Wilson <do...@somethingdoug.com>
+
+Permission is hereby granted, free of charge, to any person obtaining
+a copy of this software and associated documentation files (the
+'Software'), to deal in the Software without restriction, including
+without limitation the rights to use, copy, modify, merge, publish,
+distribute, sublicense, and/or sell copies of the Software, and to
+permit persons to whom the Software is furnished to do so, subject to
+the following conditions:
+
+The above copyright notice and this permission notice shall be
+included in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
+CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/0ef79031/modules/webconfig/nodejs/node_modules/express-session/node_modules/parseurl/README.md
----------------------------------------------------------------------
diff --git a/modules/webconfig/nodejs/node_modules/express-session/node_modules/parseurl/README.md b/modules/webconfig/nodejs/node_modules/express-session/node_modules/parseurl/README.md
new file mode 100644
index 0000000..0db1d02
--- /dev/null
+++ b/modules/webconfig/nodejs/node_modules/express-session/node_modules/parseurl/README.md
@@ -0,0 +1,107 @@
+# parseurl
+
+[![NPM version](https://badge.fury.io/js/parseurl.svg)](http://badge.fury.io/js/parseurl)
+[![Build Status](https://travis-ci.org/expressjs/parseurl.svg?branch=master)](https://travis-ci.org/expressjs/parseurl)
+[![Coverage Status](https://img.shields.io/coveralls/expressjs/parseurl.svg?branch=master)](https://coveralls.io/r/expressjs/parseurl)
+
+Parse a URL with memoization.
+
+## Install
+
+```bash
+$ npm install parseurl
+```
+
+## API
+
+```js
+var parseurl = require('parseurl')
+```
+
+### parseurl(req)
+
+Parse the URL of the given request object (looks at the `req.url` property)
+and return the result. The result is the same as `url.parse` in Node.js core.
+Calling this function multiple times on the same `req` where `req.url` does
+not change will return a cached parsed object, rather than parsing again.
+
+### parseurl.original(req)
+
+Parse the original URL of the given request object and return the result.
+This works by trying to parse `req.originalUrl` if it is a string, otherwise
+parses `req.url`. The result is the same as `url.parse` in Node.js core.
+Calling this function multiple times on the same `req` where `req.originalUrl`
+does not change will return a cached parsed object, rather than parsing again.
+
+## Benchmark
+
+```bash
+$ npm run-script bench
+
+> parseurl@1.3.0 bench nodejs-parseurl
+> node benchmark/index.js
+
+> node benchmark/fullurl.js
+
+  Parsing URL "http://localhost:8888/foo/bar?user=tj&pet=fluffy"
+
+  1 test completed.
+  2 tests completed.
+  3 tests completed.
+
+  fasturl   x 1,290,780 ops/sec ±0.46% (195 runs sampled)
+  nativeurl x    56,401 ops/sec ±0.22% (196 runs sampled)
+  parseurl  x    55,231 ops/sec ±0.22% (194 runs sampled)
+
+> node benchmark/pathquery.js
+
+  Parsing URL "/foo/bar?user=tj&pet=fluffy"
+
+  1 test completed.
+  2 tests completed.
+  3 tests completed.
+
+  fasturl   x 1,986,668 ops/sec ±0.27% (190 runs sampled)
+  nativeurl x    98,740 ops/sec ±0.21% (195 runs sampled)
+  parseurl  x 2,628,171 ops/sec ±0.36% (195 runs sampled)
+
+> node benchmark/samerequest.js
+
+  Parsing URL "/foo/bar?user=tj&pet=fluffy" on same request object
+
+  1 test completed.
+  2 tests completed.
+  3 tests completed.
+
+  fasturl   x  2,184,468 ops/sec ±0.40% (194 runs sampled)
+  nativeurl x     99,437 ops/sec ±0.71% (194 runs sampled)
+  parseurl  x 10,498,005 ops/sec ±0.61% (186 runs sampled)
+
+> node benchmark/simplepath.js
+
+  Parsing URL "/foo/bar"
+
+  1 test completed.
+  2 tests completed.
+  3 tests completed.
+
+  fasturl   x 4,535,825 ops/sec ±0.27% (191 runs sampled)
+  nativeurl x    98,769 ops/sec ±0.54% (191 runs sampled)
+  parseurl  x 4,164,865 ops/sec ±0.34% (192 runs sampled)
+
+> node benchmark/slash.js
+
+  Parsing URL "/"
+
+  1 test completed.
+  2 tests completed.
+  3 tests completed.
+
+  fasturl   x 4,908,405 ops/sec ±0.42% (191 runs sampled)
+  nativeurl x   100,945 ops/sec ±0.59% (188 runs sampled)
+  parseurl  x 4,333,208 ops/sec ±0.27% (194 runs sampled)
+```
+
+## License
+
+  [MIT](LICENSE)

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/0ef79031/modules/webconfig/nodejs/node_modules/express-session/node_modules/parseurl/index.js
----------------------------------------------------------------------
diff --git a/modules/webconfig/nodejs/node_modules/express-session/node_modules/parseurl/index.js b/modules/webconfig/nodejs/node_modules/express-session/node_modules/parseurl/index.js
new file mode 100644
index 0000000..8632347
--- /dev/null
+++ b/modules/webconfig/nodejs/node_modules/express-session/node_modules/parseurl/index.js
@@ -0,0 +1,136 @@
+/*!
+ * parseurl
+ * Copyright(c) 2014 Jonathan Ong
+ * Copyright(c) 2014 Douglas Christopher Wilson
+ * MIT Licensed
+ */
+
+/**
+ * Module dependencies.
+ */
+
+var url = require('url')
+var parse = url.parse
+var Url = url.Url
+
+/**
+ * Pattern for a simple path case.
+ * See: https://github.com/joyent/node/pull/7878
+ */
+
+var simplePathRegExp = /^(\/\/?(?!\/)[^\?#\s]*)(\?[^#\s]*)?$/
+
+/**
+ * Exports.
+ */
+
+module.exports = parseurl
+module.exports.original = originalurl
+
+/**
+ * Parse the `req` url with memoization.
+ *
+ * @param {ServerRequest} req
+ * @return {Object}
+ * @api public
+ */
+
+function parseurl(req) {
+  var url = req.url
+
+  if (url === undefined) {
+    // URL is undefined
+    return undefined
+  }
+
+  var parsed = req._parsedUrl
+
+  if (fresh(url, parsed)) {
+    // Return cached URL parse
+    return parsed
+  }
+
+  // Parse the URL
+  parsed = fastparse(url)
+  parsed._raw = url
+
+  return req._parsedUrl = parsed
+};
+
+/**
+ * Parse the `req` original url with fallback and memoization.
+ *
+ * @param {ServerRequest} req
+ * @return {Object}
+ * @api public
+ */
+
+function originalurl(req) {
+  var url = req.originalUrl
+
+  if (typeof url !== 'string') {
+    // Fallback
+    return parseurl(req)
+  }
+
+  var parsed = req._parsedOriginalUrl
+
+  if (fresh(url, parsed)) {
+    // Return cached URL parse
+    return parsed
+  }
+
+  // Parse the URL
+  parsed = fastparse(url)
+  parsed._raw = url
+
+  return req._parsedOriginalUrl = parsed
+};
+
+/**
+ * Parse the `str` url with fast-path short-cut.
+ *
+ * @param {string} str
+ * @return {Object}
+ * @api private
+ */
+
+function fastparse(str) {
+  // Try fast path regexp
+  // See: https://github.com/joyent/node/pull/7878
+  var simplePath = typeof str === 'string' && simplePathRegExp.exec(str)
+
+  // Construct simple URL
+  if (simplePath) {
+    var pathname = simplePath[1]
+    var search = simplePath[2] || null
+    var url = Url !== undefined
+      ? new Url()
+      : {}
+    url.path = str
+    url.href = str
+    url.pathname = pathname
+    url.search = search
+    url.query = search && search.substr(1)
+
+    return url
+  }
+
+  return parse(str)
+}
+
+/**
+ * Determine if parsed is still fresh for url.
+ *
+ * @param {string} url
+ * @param {object} parsedUrl
+ * @return {boolean}
+ * @api private
+ */
+
+function fresh(url, parsedUrl) {
+  return typeof parsedUrl === 'object'
+    && parsedUrl !== null
+    && (Url === undefined || parsedUrl instanceof Url)
+    && parsedUrl._raw === url
+}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/0ef79031/modules/webconfig/nodejs/node_modules/express-session/node_modules/parseurl/package.json
----------------------------------------------------------------------
diff --git a/modules/webconfig/nodejs/node_modules/express-session/node_modules/parseurl/package.json b/modules/webconfig/nodejs/node_modules/express-session/node_modules/parseurl/package.json
new file mode 100644
index 0000000..5edaecb
--- /dev/null
+++ b/modules/webconfig/nodejs/node_modules/express-session/node_modules/parseurl/package.json
@@ -0,0 +1,80 @@
+{
+  "name": "parseurl",
+  "description": "parse a url with memoization",
+  "version": "1.3.0",
+  "author": {
+    "name": "Jonathan Ong",
+    "email": "me@jongleberry.com",
+    "url": "http://jongleberry.com"
+  },
+  "contributors": [
+    {
+      "name": "Douglas Christopher Wilson",
+      "email": "doug@somethingdoug.com"
+    }
+  ],
+  "repository": {
+    "type": "git",
+    "url": "git+https://github.com/expressjs/parseurl.git"
+  },
+  "license": "MIT",
+  "devDependencies": {
+    "benchmark": "1.0.0",
+    "beautify-benchmark": "0.2.4",
+    "fast-url-parser": "~1.0.0",
+    "istanbul": "0.3.0",
+    "mocha": "~1.21.4"
+  },
+  "scripts": {
+    "bench": "node benchmark/index.js",
+    "test": "mocha --check-leaks --bail --reporter spec test/",
+    "test-cov": "istanbul cover node_modules/mocha/bin/_mocha -- --check-leaks --reporter dot test/",
+    "test-travis": "istanbul cover node_modules/mocha/bin/_mocha --report lcovonly -- --check-leaks --reporter spec test/"
+  },
+  "gitHead": "03b7ccca240e2bef5df6c25797e99175d28fb2cb",
+  "bugs": {
+    "url": "https://github.com/expressjs/parseurl/issues"
+  },
+  "homepage": "https://github.com/expressjs/parseurl",
+  "_id": "parseurl@1.3.0",
+  "_shasum": "b58046db4223e145afa76009e61bac87cc2281b3",
+  "_from": "parseurl@>=1.3.0 <1.4.0",
+  "_npmVersion": "1.4.21",
+  "_npmUser": {
+    "name": "dougwilson",
+    "email": "doug@somethingdoug.com"
+  },
+  "maintainers": [
+    {
+      "name": "jongleberry",
+      "email": "jonathanrichardong@gmail.com"
+    },
+    {
+      "name": "shtylman",
+      "email": "shtylman@gmail.com"
+    },
+    {
+      "name": "dougwilson",
+      "email": "doug@somethingdoug.com"
+    },
+    {
+      "name": "tjholowaychuk",
+      "email": "tj@vision-media.ca"
+    },
+    {
+      "name": "mscdex",
+      "email": "mscdex@mscdex.net"
+    },
+    {
+      "name": "fishrock123",
+      "email": "fishrock123@rocketmail.com"
+    }
+  ],
+  "dist": {
+    "shasum": "b58046db4223e145afa76009e61bac87cc2281b3",
+    "tarball": "http://registry.npmjs.org/parseurl/-/parseurl-1.3.0.tgz"
+  },
+  "directories": {},
+  "_resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.0.tgz",
+  "readme": "ERROR: No README data found!"
+}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/0ef79031/modules/webconfig/nodejs/node_modules/express-session/node_modules/uid-safe/HISTORY.md
----------------------------------------------------------------------
diff --git a/modules/webconfig/nodejs/node_modules/express-session/node_modules/uid-safe/HISTORY.md b/modules/webconfig/nodejs/node_modules/express-session/node_modules/uid-safe/HISTORY.md
new file mode 100644
index 0000000..ace88e0
--- /dev/null
+++ b/modules/webconfig/nodejs/node_modules/express-session/node_modules/uid-safe/HISTORY.md
@@ -0,0 +1,26 @@
+1.1.0 / 2015-02-01
+==================
+
+  * Use `crypto.randomBytes`, if available
+  * deps: base64-url@1.2.1
+
+1.0.3 / 2015-01-31
+==================
+
+  * Fix error branch that would throw
+  * deps: base64-url@1.2.0
+
+1.0.2 / 2015-01-08
+==================
+
+  * Remove dependency on `mz`
+
+1.0.1 / 2014-06-18
+==================
+
+  * Remove direct `bluebird` dependency
+
+1.0.0 / 2014-06-18
+==================
+
+  * Initial release

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/0ef79031/modules/webconfig/nodejs/node_modules/express-session/node_modules/uid-safe/LICENSE
----------------------------------------------------------------------
diff --git a/modules/webconfig/nodejs/node_modules/express-session/node_modules/uid-safe/LICENSE b/modules/webconfig/nodejs/node_modules/express-session/node_modules/uid-safe/LICENSE
new file mode 100644
index 0000000..a7ae8ee
--- /dev/null
+++ b/modules/webconfig/nodejs/node_modules/express-session/node_modules/uid-safe/LICENSE
@@ -0,0 +1,22 @@
+
+The MIT License (MIT)
+
+Copyright (c) 2014 Jonathan Ong me@jongleberry.com
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+THE SOFTWARE.

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/0ef79031/modules/webconfig/nodejs/node_modules/express-session/node_modules/uid-safe/README.md
----------------------------------------------------------------------
diff --git a/modules/webconfig/nodejs/node_modules/express-session/node_modules/uid-safe/README.md b/modules/webconfig/nodejs/node_modules/express-session/node_modules/uid-safe/README.md
new file mode 100644
index 0000000..007ef8a
--- /dev/null
+++ b/modules/webconfig/nodejs/node_modules/express-session/node_modules/uid-safe/README.md
@@ -0,0 +1,78 @@
+# uid-safe
+
+[![NPM Version][npm-image]][npm-url]
+[![NPM Downloads][downloads-image]][downloads-url]
+[![Node.js Version][node-version-image]][node-version-url]
+[![Build Status][travis-image]][travis-url]
+[![Test Coverage][coveralls-image]][coveralls-url]
+
+URL and cookie safe UIDs
+
+Create cryptographically secure UIDs safe for both cookie and URL usage.
+This is in contrast to modules such as [rand-token](https://www.npmjs.com/package/rand-token)
+and [uid2](https://www.npmjs.com/package/uid2) whose UIDs are actually skewed
+due to the use of `%` and unnecessarily truncate the UID.
+Use this if you could still use UIDs with `-` and `_` in them.
+
+## Installation
+
+```sh
+$ npm install uid-safe
+```
+
+## API
+
+```js
+var uid = require('uid-safe')
+```
+
+### uid(byteLength, callback)
+
+Asynchronously create a UID with a specific byte length. Because `base64`
+encoding is used underneath, this is not the string length. For example,
+to create a UID of length 24, you want a byte length of 18.
+
+```js
+uid(18, function (err, string) {
+  if (err) throw err
+  // do something with the string
+})
+```
+
+### uid(byteLength)
+
+Asynchronously create a UID with a specific byte length and return a
+`Promise`.
+
+**To use promises, you must either install [bluebird](https://www.npmjs.com/package/bluebird)
+or use a version of Node.js that has native promises, otherwise an
+error will be thrown.**
+
+```js
+uid(18).then(function (string) {
+  // do something with the string
+})
+```
+
+### uid.sync(byteLength)
+
+A synchronous version of above.
+
+```js
+var string = uid.sync(18)
+```
+
+## License
+
+[MIT](LICENSE)
+
+[npm-image]: https://img.shields.io/npm/v/uid-safe.svg?style=flat
+[npm-url]: https://npmjs.org/package/uid-safe
+[node-version-image]: https://img.shields.io/node/v/uid-safe.svg?style=flat
+[node-version-url]: http://nodejs.org/download/
+[travis-image]: https://img.shields.io/travis/crypto-utils/uid-safe.svg?style=flat
+[travis-url]: https://travis-ci.org/crypto-utils/uid-safe
+[coveralls-image]: https://img.shields.io/coveralls/crypto-utils/uid-safe.svg?style=flat
+[coveralls-url]: https://coveralls.io/r/crypto-utils/uid-safe?branch=master
+[downloads-image]: https://img.shields.io/npm/dm/uid-safe.svg?style=flat
+[downloads-url]: https://npmjs.org/package/uid-safe

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/0ef79031/modules/webconfig/nodejs/node_modules/express-session/node_modules/uid-safe/index.js
----------------------------------------------------------------------
diff --git a/modules/webconfig/nodejs/node_modules/express-session/node_modules/uid-safe/index.js b/modules/webconfig/nodejs/node_modules/express-session/node_modules/uid-safe/index.js
new file mode 100644
index 0000000..36ebff2
--- /dev/null
+++ b/modules/webconfig/nodejs/node_modules/express-session/node_modules/uid-safe/index.js
@@ -0,0 +1,110 @@
+/*!
+ * uid-safe
+ * Copyright(c) 2014 Jonathan Ong
+ * MIT Licensed
+ */
+
+
+/**
+ * Module dependencies.
+ * @private
+ */
+
+var Promise
+var crypto = require('crypto')
+var escape = require('base64-url').escape
+
+/**
+ * Module exports.
+ */
+
+module.exports = uid
+module.exports.sync = uidSync
+
+/**
+ * Create a unique ID.
+ *
+ * @param {number} length
+ * @param {function} [callback]
+ * @return {Promise}
+ * @public
+ */
+
+function uid(length, callback) {
+  if (callback) {
+    return generateUid(length, callback)
+  }
+
+  if (!Promise) {
+    Promise = require('native-or-bluebird')
+  }
+
+  return new Promise(function (resolve, reject) {
+    generateUid(length, function (err, str) {
+      if (err) return reject(err)
+      resolve(str)
+    })
+  })
+}
+
+/**
+ * Create a unique ID sync.
+ *
+ * @param {number} length
+ * @return {string}
+ * @public
+ */
+
+function uidSync(length) {
+  try {
+    return toString(crypto.randomBytes(length))
+  } catch (e) {
+    return toString(crypto.pseudoRandomBytes(length))
+  }
+}
+
+/**
+ * Generate a unique ID string.
+ *
+ * @param {number} length
+ * @param {function} callback
+ * @private
+ */
+
+function generateUid(length, callback) {
+  randomBytes(length, function (err, buf) {
+    if (err) return callback(err)
+    callback(null, toString(buf))
+  })
+}
+
+/**
+ * Get some random bytes.
+ *
+ * @param {number} length
+ * @param {function} callback
+ * @return {Buffer}
+ * @private
+ */
+
+function randomBytes(length, callback) {
+  crypto.randomBytes(length, function (err, buf) {
+    if (!err) return callback(null, buf)
+    crypto.pseudoRandomBytes(length, function (err, buf) {
+      if (err) return callback(err)
+      callback(null, buf)
+    })
+  })
+}
+
+/**
+ * Change a Buffer into a string.
+ *
+ * @param {Buffer} buf
+ * @return {string}
+ * @private
+ */
+
+function toString(buf) {
+  return escape(buf.toString('base64'))
+}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/0ef79031/modules/webconfig/nodejs/node_modules/express-session/node_modules/uid-safe/node_modules/base64-url/LICENSE
----------------------------------------------------------------------
diff --git a/modules/webconfig/nodejs/node_modules/express-session/node_modules/uid-safe/node_modules/base64-url/LICENSE b/modules/webconfig/nodejs/node_modules/express-session/node_modules/uid-safe/node_modules/base64-url/LICENSE
new file mode 100644
index 0000000..9549143
--- /dev/null
+++ b/modules/webconfig/nodejs/node_modules/express-session/node_modules/uid-safe/node_modules/base64-url/LICENSE
@@ -0,0 +1,15 @@
+The ISC License
+
+Copyright (c) 2014, Joaquim José F. Serafim
+
+Permission to use, copy, modify, and/or distribute this software for any
+purpose with or without fee is hereby granted, provided that the above
+copyright notice and this permission notice appear in all copies.
+
+THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
+WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
+MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
+ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
+WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
+ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR
+IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/0ef79031/modules/webconfig/nodejs/node_modules/express-session/node_modules/uid-safe/node_modules/base64-url/README.md
----------------------------------------------------------------------
diff --git a/modules/webconfig/nodejs/node_modules/express-session/node_modules/uid-safe/node_modules/base64-url/README.md b/modules/webconfig/nodejs/node_modules/express-session/node_modules/uid-safe/node_modules/base64-url/README.md
new file mode 100644
index 0000000..e86cc2e
--- /dev/null
+++ b/modules/webconfig/nodejs/node_modules/express-session/node_modules/uid-safe/node_modules/base64-url/README.md
@@ -0,0 +1,53 @@
+# base64-url
+
+Base64 encode, decode, escape and unescape for URL applications.
+
+<a href="https://nodei.co/npm/base64-url/"><img src="https://nodei.co/npm/base64-url.png?downloads=true"></a>
+
+[![Build Status](https://travis-ci.org/joaquimserafim/base64-url.png?branch=master)](https://travis-ci.org/joaquimserafim/base64-url)
+
+
+## API
+    
+	> base64url.encode('Node.js is awesome.');
+	Tm9kZS5qcyBpcyBhd2Vzb21lLg
+
+	> base64url.decode('Tm9kZS5qcyBpcyBhd2Vzb21lLg');
+	Node.js is awesome.
+ 
+	> base64url.escape('This+is/goingto+escape==');
+	This-is_goingto-escape
+  	
+    > base64url.unescape('This-is_goingto-escape');
+    This+is/goingto+escape==
+  	
+
+## Development
+
+**this projet has been set up with a precommit that forces you to follow a code style, no jshint issues and 100% of code coverage before commit**
+
+
+to run test
+``` js
+npm test
+```
+
+to run jshint
+``` js
+npm run jshint
+```
+
+to run code style
+``` js
+npm run code-style
+```
+
+to check code coverage
+``` js
+npm run check-coverage
+```
+
+to open the code coverage report
+``` js
+npm run open-coverage
+```

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/0ef79031/modules/webconfig/nodejs/node_modules/express-session/node_modules/uid-safe/node_modules/base64-url/index.js
----------------------------------------------------------------------
diff --git a/modules/webconfig/nodejs/node_modules/express-session/node_modules/uid-safe/node_modules/base64-url/index.js b/modules/webconfig/nodejs/node_modules/express-session/node_modules/uid-safe/node_modules/base64-url/index.js
new file mode 100644
index 0000000..34968ae
--- /dev/null
+++ b/modules/webconfig/nodejs/node_modules/express-session/node_modules/uid-safe/node_modules/base64-url/index.js
@@ -0,0 +1,24 @@
+'use strict';
+
+var base64url = module.exports;
+
+base64url.unescape = function unescape (str) {
+  return (str + Array(5 - str.length % 4)
+    .join('='))
+    .replace(/\-/g, '+')
+    .replace(/_/g, '/');
+};
+
+base64url.escape = function escape (str) {
+  return str.replace(/\+/g, '-')
+    .replace(/\//g, '_')
+    .replace(/=/g, '');
+};
+
+base64url.encode = function encode (str) {
+  return this.escape(new Buffer(str).toString('base64'));
+};
+
+base64url.decode = function decode (str) {
+  return new Buffer(this.unescape(str), 'base64').toString();
+};

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/0ef79031/modules/webconfig/nodejs/node_modules/express-session/node_modules/uid-safe/node_modules/base64-url/package.json
----------------------------------------------------------------------
diff --git a/modules/webconfig/nodejs/node_modules/express-session/node_modules/uid-safe/node_modules/base64-url/package.json b/modules/webconfig/nodejs/node_modules/express-session/node_modules/uid-safe/node_modules/base64-url/package.json
new file mode 100644
index 0000000..03e52d8
--- /dev/null
+++ b/modules/webconfig/nodejs/node_modules/express-session/node_modules/uid-safe/node_modules/base64-url/package.json
@@ -0,0 +1,70 @@
+{
+  "name": "base64-url",
+  "version": "1.2.1",
+  "description": "Base64 encode, decode, escape and unescape for URL applications",
+  "main": "index.js",
+  "files": [
+    "LICENSE",
+    "README.md",
+    "index.js"
+  ],
+  "scripts": {
+    "test": "istanbul cover tape test.js",
+    "jshint": "jshint -c .jshintrc *.js",
+    "code-style": "jscs -p google *.js",
+    "check-coverage": "istanbul check-coverage --statements 100 --functions 100 --lines 100 --branches 100",
+    "coverage": "open coverage/lcov-report/index.html"
+  },
+  "repository": {
+    "type": "git",
+    "url": "git://github.com/joaquimserafim/base64-url.git"
+  },
+  "keywords": [
+    "base64",
+    "base64url"
+  ],
+  "author": {
+    "name": "@joaquimserafim"
+  },
+  "license": "ISC",
+  "bugs": {
+    "url": "https://github.com/joaquimserafim/base64-url/issues"
+  },
+  "homepage": "https://github.com/joaquimserafim/base64-url",
+  "devDependencies": {
+    "istanbul": "^0.3.5",
+    "jscs": "^1.9.0",
+    "jshint": "^2.5.11",
+    "pre-commit": "0.0.9",
+    "tape": "^3.0.3",
+    "which": "^1.0.8"
+  },
+  "pre-commit": [
+    "jshint",
+    "code-style",
+    "test",
+    "check-coverage"
+  ],
+  "gitHead": "a548396819f17b1fb1529791ab8a2c1934d03f3e",
+  "_id": "base64-url@1.2.1",
+  "_shasum": "199fd661702a0e7b7dcae6e0698bb089c52f6d78",
+  "_from": "base64-url@1.2.1",
+  "_npmVersion": "1.4.28",
+  "_npmUser": {
+    "name": "quim",
+    "email": "joaquim.serafim@gmail.com"
+  },
+  "maintainers": [
+    {
+      "name": "quim",
+      "email": "joaquim.serafim@gmail.com"
+    }
+  ],
+  "dist": {
+    "shasum": "199fd661702a0e7b7dcae6e0698bb089c52f6d78",
+    "tarball": "http://registry.npmjs.org/base64-url/-/base64-url-1.2.1.tgz"
+  },
+  "directories": {},
+  "_resolved": "https://registry.npmjs.org/base64-url/-/base64-url-1.2.1.tgz",
+  "readme": "ERROR: No README data found!"
+}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/0ef79031/modules/webconfig/nodejs/node_modules/express-session/node_modules/uid-safe/node_modules/native-or-bluebird/LICENSE
----------------------------------------------------------------------
diff --git a/modules/webconfig/nodejs/node_modules/express-session/node_modules/uid-safe/node_modules/native-or-bluebird/LICENSE b/modules/webconfig/nodejs/node_modules/express-session/node_modules/uid-safe/node_modules/native-or-bluebird/LICENSE
new file mode 100644
index 0000000..a7ae8ee
--- /dev/null
+++ b/modules/webconfig/nodejs/node_modules/express-session/node_modules/uid-safe/node_modules/native-or-bluebird/LICENSE
@@ -0,0 +1,22 @@
+
+The MIT License (MIT)
+
+Copyright (c) 2014 Jonathan Ong me@jongleberry.com
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+THE SOFTWARE.

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/0ef79031/modules/webconfig/nodejs/node_modules/express-session/node_modules/uid-safe/node_modules/native-or-bluebird/README.md
----------------------------------------------------------------------
diff --git a/modules/webconfig/nodejs/node_modules/express-session/node_modules/uid-safe/node_modules/native-or-bluebird/README.md b/modules/webconfig/nodejs/node_modules/express-session/node_modules/uid-safe/node_modules/native-or-bluebird/README.md
new file mode 100644
index 0000000..c4aa50b
--- /dev/null
+++ b/modules/webconfig/nodejs/node_modules/express-session/node_modules/uid-safe/node_modules/native-or-bluebird/README.md
@@ -0,0 +1,48 @@
+
+# native-or-bluebird
+
+[![NPM version][npm-image]][npm-url]
+[![Build status][travis-image]][travis-url]
+[![Test coverage][coveralls-image]][coveralls-url]
+[![Dependency Status][david-image]][david-url]
+[![License][license-image]][license-url]
+[![Downloads][downloads-image]][downloads-url]
+[![Gittip][gittip-image]][gittip-url]
+
+Use either `bluebird` or the native `Promise` implementation.
+If no implementation is found, an error will be thrown:
+
+```js
+var Promise = require('native-or-bluebird');
+```
+
+The goal of this library is to be able to eventually remove this line
+from your code and use native `Promise`s, allowing you to
+to write future-compatible code with ease.
+You should install `bluebird` in your libraries for maximum compatibility.
+
+If you do not want an error to be thrown,
+`require()` the `Promise` implementation directly.
+If no implementation is found, `undefined` will be returned.
+
+```js
+var Promise = require('native-or-bluebird/promise');
+if (Promise) // do stuff with promises
+```
+
+[npm-image]: https://img.shields.io/npm/v/native-or-bluebird.svg?style=flat-square
+[npm-url]: https://npmjs.org/package/native-or-bluebird
+[github-tag]: http://img.shields.io/github/tag/normalize/native-or-bluebird.svg?style=flat-square
+[github-url]: https://github.com/normalize/native-or-bluebird/tags
+[travis-image]: https://img.shields.io/travis/normalize/native-or-bluebird.svg?style=flat-square
+[travis-url]: https://travis-ci.org/normalize/native-or-bluebird
+[coveralls-image]: https://img.shields.io/coveralls/normalize/native-or-bluebird.svg?style=flat-square
+[coveralls-url]: https://coveralls.io/r/normalize/native-or-bluebird?branch=master
+[david-image]: http://img.shields.io/david/normalize/native-or-bluebird.svg?style=flat-square
+[david-url]: https://david-dm.org/normalize/native-or-bluebird
+[license-image]: http://img.shields.io/npm/l/native-or-bluebird.svg?style=flat-square
+[license-url]: LICENSE
+[downloads-image]: http://img.shields.io/npm/dm/native-or-bluebird.svg?style=flat-square
+[downloads-url]: https://npmjs.org/package/native-or-bluebird
+[gittip-image]: https://img.shields.io/gittip/jonathanong.svg?style=flat-square
+[gittip-url]: https://www.gittip.com/jonathanong/

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/0ef79031/modules/webconfig/nodejs/node_modules/express-session/node_modules/uid-safe/node_modules/native-or-bluebird/index.js
----------------------------------------------------------------------
diff --git a/modules/webconfig/nodejs/node_modules/express-session/node_modules/uid-safe/node_modules/native-or-bluebird/index.js b/modules/webconfig/nodejs/node_modules/express-session/node_modules/uid-safe/node_modules/native-or-bluebird/index.js
new file mode 100644
index 0000000..e57587d
--- /dev/null
+++ b/modules/webconfig/nodejs/node_modules/express-session/node_modules/uid-safe/node_modules/native-or-bluebird/index.js
@@ -0,0 +1,10 @@
+
+module.exports = require('./promise')
+
+/* istanbul ignore next */
+if (!module.exports) {
+  console.error('The file "%s" requires `Promise`,', module.parent.filename)
+  console.error('but neither `bluebird` nor the native `Promise` implementation were found.')
+  console.error('Please install `bluebird` yourself.')
+  process.exit(1)
+}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/0ef79031/modules/webconfig/nodejs/node_modules/express-session/node_modules/uid-safe/node_modules/native-or-bluebird/package.json
----------------------------------------------------------------------
diff --git a/modules/webconfig/nodejs/node_modules/express-session/node_modules/uid-safe/node_modules/native-or-bluebird/package.json b/modules/webconfig/nodejs/node_modules/express-session/node_modules/uid-safe/node_modules/native-or-bluebird/package.json
new file mode 100644
index 0000000..de61701
--- /dev/null
+++ b/modules/webconfig/nodejs/node_modules/express-session/node_modules/uid-safe/node_modules/native-or-bluebird/package.json
@@ -0,0 +1,66 @@
+{
+  "name": "native-or-bluebird",
+  "description": "use either the native Promise or Bluebird",
+  "version": "1.1.2",
+  "author": {
+    "name": "Jonathan Ong",
+    "email": "me@jongleberry.com",
+    "url": "http://jongleberry.com"
+  },
+  "license": "MIT",
+  "repository": {
+    "type": "git",
+    "url": "git+https://github.com/normalize/native-or-bluebird.git"
+  },
+  "keywords": [
+    "bluebird",
+    "promise",
+    "promises"
+  ],
+  "devDependencies": {
+    "bluebird": "*",
+    "istanbul": "0",
+    "mocha": "1"
+  },
+  "scripts": {
+    "test": "mocha --reporter spec",
+    "test-cov": "istanbul cover node_modules/mocha/bin/_mocha -- --reporter dot",
+    "test-travis": "istanbul cover node_modules/mocha/bin/_mocha --report lcovonly -- --reporter dot"
+  },
+  "files": [
+    "index.js",
+    "promise.js",
+    "LICENSE"
+  ],
+  "gitHead": "652f5744d08bf2121a2cc3cc1a560d4d7d96b591",
+  "bugs": {
+    "url": "https://github.com/normalize/native-or-bluebird/issues"
+  },
+  "homepage": "https://github.com/normalize/native-or-bluebird",
+  "_id": "native-or-bluebird@1.1.2",
+  "_shasum": "3921e110232d1eb790f3dac61bb370531c7d356e",
+  "_from": "native-or-bluebird@>=1.1.2 <1.2.0",
+  "_npmVersion": "2.1.5",
+  "_nodeVersion": "0.11.14",
+  "_npmUser": {
+    "name": "jongleberry",
+    "email": "jonathanrichardong@gmail.com"
+  },
+  "maintainers": [
+    {
+      "name": "jongleberry",
+      "email": "jonathanrichardong@gmail.com"
+    },
+    {
+      "name": "swatinem",
+      "email": "arpad.borsos@googlemail.com"
+    }
+  ],
+  "dist": {
+    "shasum": "3921e110232d1eb790f3dac61bb370531c7d356e",
+    "tarball": "http://registry.npmjs.org/native-or-bluebird/-/native-or-bluebird-1.1.2.tgz"
+  },
+  "directories": {},
+  "_resolved": "https://registry.npmjs.org/native-or-bluebird/-/native-or-bluebird-1.1.2.tgz",
+  "readme": "ERROR: No README data found!"
+}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/0ef79031/modules/webconfig/nodejs/node_modules/express-session/node_modules/uid-safe/node_modules/native-or-bluebird/promise.js
----------------------------------------------------------------------
diff --git a/modules/webconfig/nodejs/node_modules/express-session/node_modules/uid-safe/node_modules/native-or-bluebird/promise.js b/modules/webconfig/nodejs/node_modules/express-session/node_modules/uid-safe/node_modules/native-or-bluebird/promise.js
new file mode 100644
index 0000000..bed7e89
--- /dev/null
+++ b/modules/webconfig/nodejs/node_modules/express-session/node_modules/uid-safe/node_modules/native-or-bluebird/promise.js
@@ -0,0 +1,8 @@
+
+module.exports = global.Promise
+
+if (!module.exports) {
+  try {
+    module.exports = require('bluebird')
+  } catch (_) {}
+}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/0ef79031/modules/webconfig/nodejs/node_modules/express-session/node_modules/uid-safe/package.json
----------------------------------------------------------------------
diff --git a/modules/webconfig/nodejs/node_modules/express-session/node_modules/uid-safe/package.json b/modules/webconfig/nodejs/node_modules/express-session/node_modules/uid-safe/package.json
new file mode 100644
index 0000000..cbff2da
--- /dev/null
+++ b/modules/webconfig/nodejs/node_modules/express-session/node_modules/uid-safe/package.json
@@ -0,0 +1,85 @@
+{
+  "name": "uid-safe",
+  "description": "URL and cookie safe UIDs",
+  "version": "1.1.0",
+  "author": {
+    "name": "Jonathan Ong",
+    "email": "me@jongleberry.com",
+    "url": "http://jongleberry.com"
+  },
+  "contributors": [
+    {
+      "name": "Douglas Christopher Wilson",
+      "email": "doug@somethingdoug.com"
+    }
+  ],
+  "license": "MIT",
+  "repository": {
+    "type": "git",
+    "url": "git+https://github.com/crypto-utils/uid-safe.git"
+  },
+  "dependencies": {
+    "base64-url": "1.2.1",
+    "native-or-bluebird": "~1.1.2"
+  },
+  "devDependencies": {
+    "bluebird": "2",
+    "istanbul": "0.3.5",
+    "mocha": "~2.1.0",
+    "proxyquire": "~1.2.0"
+  },
+  "files": [
+    "LICENSE",
+    "HISTORY.md",
+    "README.md",
+    "index.js"
+  ],
+  "engines": {
+    "node": ">= 0.8"
+  },
+  "scripts": {
+    "test": "mocha --trace-deprecation --reporter spec --bail --check-leaks test/",
+    "test-cov": "istanbul cover node_modules/mocha/bin/_mocha -- --trace-deprecation --reporter dot --check-leaks test/",
+    "test-travis": "istanbul cover node_modules/mocha/bin/_mocha --report lcovonly -- --trace-deprecation --reporter spec --check-leaks test/"
+  },
+  "keywords": [
+    "random",
+    "generator",
+    "uid",
+    "safe"
+  ],
+  "gitHead": "f41bf54dbc69a10e6194958d21266a328ad4f30d",
+  "bugs": {
+    "url": "https://github.com/crypto-utils/uid-safe/issues"
+  },
+  "homepage": "https://github.com/crypto-utils/uid-safe",
+  "_id": "uid-safe@1.1.0",
+  "_shasum": "58d6c5dabf8dfbd8d52834839806c03fd6143232",
+  "_from": "uid-safe@1.1.0",
+  "_npmVersion": "1.4.28",
+  "_npmUser": {
+    "name": "dougwilson",
+    "email": "doug@somethingdoug.com"
+  },
+  "maintainers": [
+    {
+      "name": "jongleberry",
+      "email": "jonathanrichardong@gmail.com"
+    },
+    {
+      "name": "dougwilson",
+      "email": "doug@somethingdoug.com"
+    },
+    {
+      "name": "fishrock123",
+      "email": "fishrock123@rocketmail.com"
+    }
+  ],
+  "dist": {
+    "shasum": "58d6c5dabf8dfbd8d52834839806c03fd6143232",
+    "tarball": "http://registry.npmjs.org/uid-safe/-/uid-safe-1.1.0.tgz"
+  },
+  "directories": {},
+  "_resolved": "https://registry.npmjs.org/uid-safe/-/uid-safe-1.1.0.tgz",
+  "readme": "ERROR: No README data found!"
+}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/0ef79031/modules/webconfig/nodejs/node_modules/express-session/node_modules/utils-merge/.travis.yml
----------------------------------------------------------------------
diff --git a/modules/webconfig/nodejs/node_modules/express-session/node_modules/utils-merge/.travis.yml b/modules/webconfig/nodejs/node_modules/express-session/node_modules/utils-merge/.travis.yml
new file mode 100644
index 0000000..af92b02
--- /dev/null
+++ b/modules/webconfig/nodejs/node_modules/express-session/node_modules/utils-merge/.travis.yml
@@ -0,0 +1,6 @@
+language: "node_js"
+node_js:
+  - "0.4"
+  - "0.6"
+  - "0.8"
+  - "0.10"