You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@apex.apache.org by da...@apache.org on 2015/11/30 22:06:32 UTC
[26/98] [abbrv] [partial] incubator-apex-malhar git commit: Removing
all web demos
http://git-wip-us.apache.org/repos/asf/incubator-apex-malhar/blob/e1a45507/web/demos/package/node_modules/http-proxy/examples/middleware/jsonp-middleware.js
----------------------------------------------------------------------
diff --git a/web/demos/package/node_modules/http-proxy/examples/middleware/jsonp-middleware.js b/web/demos/package/node_modules/http-proxy/examples/middleware/jsonp-middleware.js
deleted file mode 100644
index 15ab9ee..0000000
--- a/web/demos/package/node_modules/http-proxy/examples/middleware/jsonp-middleware.js
+++ /dev/null
@@ -1,30 +0,0 @@
-var Store = require('../helpers/store')
- , http = require('http')
-
-//
-// jsonp is a handy technique for getting around the limitations of the same-origin policy.
-// (http://en.wikipedia.org/wiki/Same_origin_policy)
-//
-// normally, to dynamically update a page you use an XmlHttpRequest. this has flakey support
-// is some browsers and is restricted by the same origin policy. you cannot perform XHR requests to
-// someone else's server. one way around this would be to proxy requests to all the servers you want
-// to xhr to, and your core server - so that everything has the same port and host.
-//
-// another way, is to turn json into javascript. (which is exempt from the same origin policy)
-// this is done by wrapping the json object in a function call, and then including a script tag.
-//
-// here we're proxing our own JSON returning server, but we could proxy any server on the internet,
-// and our client side app would be slurping down JSONP from anywhere.
-//
-// curl localhost:1337/whatever?callback=alert
-// alert([]) //which is valid javascript!
-//
-// also see http://en.wikipedia.org/wiki/JSONP#JSONP
-//
-
-http.createServer(new Store().handler()).listen(7531)
-
-require('../../lib/node-http-proxy').createServer(
- require('connect-jsonp')(true),
- 'localhost', 7531
-).listen(1337)
http://git-wip-us.apache.org/repos/asf/incubator-apex-malhar/blob/e1a45507/web/demos/package/node_modules/http-proxy/examples/middleware/modifyResponse-middleware.js
----------------------------------------------------------------------
diff --git a/web/demos/package/node_modules/http-proxy/examples/middleware/modifyResponse-middleware.js b/web/demos/package/node_modules/http-proxy/examples/middleware/modifyResponse-middleware.js
deleted file mode 100644
index af21236..0000000
--- a/web/demos/package/node_modules/http-proxy/examples/middleware/modifyResponse-middleware.js
+++ /dev/null
@@ -1,57 +0,0 @@
-/*
- modifyBody-middleware.js: Example of middleware which modifies response
-
- Copyright (c) 2010 Charlie Robbins, Mikeal Rogers, Fedor Indutny, Marak Squires, & Dominic Tarr.
-
- 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.
-
-*/
-
-var util = require('util'),
- colors = require('colors'),
- http = require('http'),
- httpProxy = require('../../lib/node-http-proxy');
-
-//
-// Basic Http Proxy Server
-//
-httpProxy.createServer(
- function (req, res, next) {
- var _write = res.write;
-
- res.write = function (data) {
- _write.call(res, data.toString().replace("Ruby", "nodejitsu"));
- }
- next();
- },
- 9000, 'localhost'
-).listen(8000);
-
-//
-// Target Http Server
-//
-http.createServer(function (req, res) {
- res.writeHead(200, { 'Content-Type': 'text/plain' });
- res.end('Hello, I know Ruby\n');
-}).listen(9000);
-
-util.puts('http proxy server'.blue + ' started '.green.bold + 'on port '.blue + '8000'.yellow);
-util.puts('http server '.blue + 'started '.green.bold + 'on port '.blue + '9000 '.yellow);
-
http://git-wip-us.apache.org/repos/asf/incubator-apex-malhar/blob/e1a45507/web/demos/package/node_modules/http-proxy/examples/middleware/url-middleware.js
----------------------------------------------------------------------
diff --git a/web/demos/package/node_modules/http-proxy/examples/middleware/url-middleware.js b/web/demos/package/node_modules/http-proxy/examples/middleware/url-middleware.js
deleted file mode 100644
index b4f3045..0000000
--- a/web/demos/package/node_modules/http-proxy/examples/middleware/url-middleware.js
+++ /dev/null
@@ -1,58 +0,0 @@
-/*
- url-middleware.js: Example of a simple url routing middleware for node-http-proxy
-
- Copyright (c) 2010 Charlie Robbins, Mikeal Rogers, Fedor Indutny, & Marak Squires.
-
- 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.
-
-*/
-
-var util = require('util'),
- colors = require('colors'),
- http = require('http'),
- httpProxy = require('../../lib/node-http-proxy');
-
-//
-// Now we set up our proxy.
-//
-httpProxy.createServer(
- //
- // This is where our middlewares go, with any options desired - in this case,
- // the list of routes/URLs and their destinations.
- //
- require('proxy-by-url')({
- '/hello': { port: 9000, host: 'localhost' },
- '/charlie': { port: 80, host: 'charlieistheman.com' },
- '/google': { port: 80, host: 'google.com' }
- })
-).listen(8000);
-
-//
-// Target Http Server (to listen for requests on 'localhost')
-//
-http.createServer(function (req, res) {
- res.writeHead(200, { 'Content-Type': 'text/plain' });
- res.write('request successfully proxied to: ' + req.url + '\n' + JSON.stringify(req.headers, true, 2));
- res.end();
-}).listen(9000);
-
-// And finally, some colored startup output.
-util.puts('http proxy server'.blue + ' started '.green.bold + 'on port '.blue + '8000'.yellow);
-util.puts('http server '.blue + 'started '.green.bold + 'on port '.blue + '9000 '.yellow);
http://git-wip-us.apache.org/repos/asf/incubator-apex-malhar/blob/e1a45507/web/demos/package/node_modules/http-proxy/examples/middleware/url-middleware2.js
----------------------------------------------------------------------
diff --git a/web/demos/package/node_modules/http-proxy/examples/middleware/url-middleware2.js b/web/demos/package/node_modules/http-proxy/examples/middleware/url-middleware2.js
deleted file mode 100644
index 2c894e1..0000000
--- a/web/demos/package/node_modules/http-proxy/examples/middleware/url-middleware2.js
+++ /dev/null
@@ -1,30 +0,0 @@
-var util = require('util'),
- colors = require('colors'),
- http = require('http'),
- httpProxy = require('../../lib/node-http-proxy'),
- Store = require('../helpers/store')
-
-http.createServer(new Store().handler()).listen(7531)
-
-// Now we set up our proxy.
-httpProxy.createServer(
- // This is where our middlewares go, with any options desired - in this case,
- // the list of routes/URLs and their destinations.
- require('proxy-by-url')({
- '/store': { port: 7531, host: 'localhost' },
- '/': { port: 9000, host: 'localhost' }
- })
-).listen(8000);
-
-//
-// Target Http Server (to listen for requests on 'localhost')
-//
-http.createServer(function (req, res) {
- res.writeHead(200, { 'Content-Type': 'text/plain' });
- res.write('request successfully proxied to: ' + req.url + '\n' + JSON.stringify(req.headers, true, 2));
- res.end();
-}).listen(9000);
-
-// And finally, some colored startup output.
-util.puts('http proxy server'.blue + ' started '.green.bold + 'on port '.blue + '8000'.yellow);
-util.puts('http server '.blue + 'started '.green.bold + 'on port '.blue + '9000 '.yellow);
http://git-wip-us.apache.org/repos/asf/incubator-apex-malhar/blob/e1a45507/web/demos/package/node_modules/http-proxy/examples/package.json
----------------------------------------------------------------------
diff --git a/web/demos/package/node_modules/http-proxy/examples/package.json b/web/demos/package/node_modules/http-proxy/examples/package.json
deleted file mode 100644
index ca95fd8..0000000
--- a/web/demos/package/node_modules/http-proxy/examples/package.json
+++ /dev/null
@@ -1,12 +0,0 @@
-{
- "name": "http-proxy-examples",
- "description": "packages required to run the examples",
- "version": "0.0.0",
- "dependencies": {
- "connect": "1.6",
- "connect-gzip": "0.1",
- "connect-jsonp": "0.0.5",
- "connect-restreamer": "1",
- "proxy-by-url": ">= 0.0.1"
- }
-}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/incubator-apex-malhar/blob/e1a45507/web/demos/package/node_modules/http-proxy/examples/websocket/latent-websocket-proxy.js
----------------------------------------------------------------------
diff --git a/web/demos/package/node_modules/http-proxy/examples/websocket/latent-websocket-proxy.js b/web/demos/package/node_modules/http-proxy/examples/websocket/latent-websocket-proxy.js
deleted file mode 100644
index 99a0728..0000000
--- a/web/demos/package/node_modules/http-proxy/examples/websocket/latent-websocket-proxy.js
+++ /dev/null
@@ -1,92 +0,0 @@
-/*
- standalone-websocket-proxy.js: Example of proxying websockets over HTTP with a standalone HTTP server.
-
- Copyright (c) 2010 Charlie Robbins, Mikeal Rogers, Fedor Indutny, & Marak Squires.
-
- 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.
-
-*/
-
-var util = require('util'),
- http = require('http'),
- colors = require('colors'),
- httpProxy = require('../../lib/node-http-proxy');
-
-try {
- var io = require('socket.io'),
- client = require('socket.io-client');
-}
-catch (ex) {
- console.error('Socket.io is required for this example:');
- console.error('npm ' + 'install'.green);
- process.exit(1);
-}
-
-//
-// Create the target HTTP server and setup
-// socket.io on it.
-//
-var server = io.listen(8080);
-server.sockets.on('connection', function (client) {
- util.debug('Got websocket connection');
-
- client.on('message', function (msg) {
- util.debug('Got message from client: ' + msg);
- });
-
- client.send('from server');
-});
-
-//
-// Setup our server to proxy standard HTTP requests
-//
-var proxy = new httpProxy.HttpProxy({
- target: {
- host: 'localhost',
- port: 8080
- }
-});
-
-var proxyServer = http.createServer(function (req, res) {
- proxy.proxyRequest(req, res);
-});
-
-//
-// Listen to the `upgrade` event and proxy the
-// WebSocket requests as well.
-//
-proxyServer.on('upgrade', function (req, socket, head) {
- var buffer = httpProxy.buffer(socket);
-
- setTimeout(function () {
- proxy.proxyWebSocketRequest(req, socket, head, buffer);
- }, 1000);
-});
-
-proxyServer.listen(8081);
-
-//
-// Setup the socket.io client against our proxy
-//
-var ws = client.connect('ws://localhost:8081');
-
-ws.on('message', function (msg) {
- util.debug('Got message: ' + msg);
-});
http://git-wip-us.apache.org/repos/asf/incubator-apex-malhar/blob/e1a45507/web/demos/package/node_modules/http-proxy/examples/websocket/standalone-websocket-proxy.js
----------------------------------------------------------------------
diff --git a/web/demos/package/node_modules/http-proxy/examples/websocket/standalone-websocket-proxy.js b/web/demos/package/node_modules/http-proxy/examples/websocket/standalone-websocket-proxy.js
deleted file mode 100644
index acf43b9..0000000
--- a/web/demos/package/node_modules/http-proxy/examples/websocket/standalone-websocket-proxy.js
+++ /dev/null
@@ -1,87 +0,0 @@
-/*
- standalone-websocket-proxy.js: Example of proxying websockets over HTTP with a standalone HTTP server.
-
- Copyright (c) 2010 Charlie Robbins, Mikeal Rogers, Fedor Indutny, & Marak Squires.
-
- 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.
-
-*/
-
-var util = require('util'),
- http = require('http'),
- colors = require('colors'),
- httpProxy = require('../../lib/node-http-proxy');
-
-try {
- var io = require('socket.io'),
- client = require('socket.io-client');
-}
-catch (ex) {
- console.error('Socket.io is required for this example:');
- console.error('npm ' + 'install'.green);
- process.exit(1);
-}
-
-//
-// Create the target HTTP server and setup
-// socket.io on it.
-//
-var server = io.listen(8080);
-server.sockets.on('connection', function (client) {
- util.debug('Got websocket connection');
-
- client.on('message', function (msg) {
- util.debug('Got message from client: ' + msg);
- });
-
- client.send('from server');
-});
-
-//
-// Setup our server to proxy standard HTTP requests
-//
-var proxy = new httpProxy.HttpProxy({
- target: {
- host: 'localhost',
- port: 8080
- }
-});
-var proxyServer = http.createServer(function (req, res) {
- proxy.proxyRequest(req, res);
-});
-
-//
-// Listen to the `upgrade` event and proxy the
-// WebSocket requests as well.
-//
-proxyServer.on('upgrade', function (req, socket, head) {
- proxy.proxyWebSocketRequest(req, socket, head);
-});
-
-proxyServer.listen(8081);
-
-//
-// Setup the socket.io client against our proxy
-//
-var ws = client.connect('ws://localhost:8081');
-
-ws.on('message', function (msg) {
- util.debug('Got message: ' + msg);
-});
http://git-wip-us.apache.org/repos/asf/incubator-apex-malhar/blob/e1a45507/web/demos/package/node_modules/http-proxy/examples/websocket/websocket-proxy.js
----------------------------------------------------------------------
diff --git a/web/demos/package/node_modules/http-proxy/examples/websocket/websocket-proxy.js b/web/demos/package/node_modules/http-proxy/examples/websocket/websocket-proxy.js
deleted file mode 100644
index 4e3cf6f..0000000
--- a/web/demos/package/node_modules/http-proxy/examples/websocket/websocket-proxy.js
+++ /dev/null
@@ -1,69 +0,0 @@
-/*
- web-socket-proxy.js: Example of proxying over HTTP and WebSockets.
-
- Copyright (c) 2010 Charlie Robbins, Mikeal Rogers, Fedor Indutny, & Marak Squires.
-
- 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.
-
-*/
-
-var util = require('util'),
- http = require('http'),
- colors = require('colors'),
- httpProxy = require('../../lib/node-http-proxy');
-
-try {
- var io = require('socket.io'),
- client = require('socket.io-client');
-}
-catch (ex) {
- console.error('Socket.io is required for this example:');
- console.error('npm ' + 'install'.green);
- process.exit(1);
-}
-
-//
-// Create the target HTTP server and setup
-// socket.io on it.
-//
-var server = io.listen(8080);
-server.sockets.on('connection', function (client) {
- util.debug('Got websocket connection');
-
- client.on('message', function (msg) {
- util.debug('Got message from client: ' + msg);
- });
-
- client.send('from server');
-});
-
-//
-// Create a proxy server with node-http-proxy
-//
-httpProxy.createServer(8080, 'localhost').listen(8081);
-
-//
-// Setup the socket.io client against our proxy
-//
-var ws = client.connect('ws://localhost:8081');
-
-ws.on('message', function (msg) {
- util.debug('Got message: ' + msg);
-});
http://git-wip-us.apache.org/repos/asf/incubator-apex-malhar/blob/e1a45507/web/demos/package/node_modules/http-proxy/lib/node-http-proxy.js
----------------------------------------------------------------------
diff --git a/web/demos/package/node_modules/http-proxy/lib/node-http-proxy.js b/web/demos/package/node_modules/http-proxy/lib/node-http-proxy.js
deleted file mode 100644
index b5de6bb..0000000
--- a/web/demos/package/node_modules/http-proxy/lib/node-http-proxy.js
+++ /dev/null
@@ -1,397 +0,0 @@
-/*
- node-http-proxy.js: http proxy for node.js
-
- Copyright (c) 2010 Charlie Robbins, Mikeal Rogers, Marak Squires, Fedor Indutny
-
- 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.
-
-*/
-
-var util = require('util'),
- http = require('http'),
- https = require('https'),
- events = require('events'),
- maxSockets = 100;
-
-//
-// Expose version information through `pkginfo`.
-//
-require('pkginfo')(module, 'version');
-
-//
-// ### Export the relevant objects exposed by `node-http-proxy`
-//
-var HttpProxy = exports.HttpProxy = require('./node-http-proxy/http-proxy').HttpProxy,
- ProxyTable = exports.ProxyTable = require('./node-http-proxy/proxy-table').ProxyTable,
- RoutingProxy = exports.RoutingProxy = require('./node-http-proxy/routing-proxy').RoutingProxy;
-
-//
-// ### function createServer ([port, host, options, handler])
-// #### @port {number} **Optional** Port to use on the proxy target host.
-// #### @host {string} **Optional** Host of the proxy target.
-// #### @options {Object} **Optional** Options for the HttpProxy instance used
-// #### @handler {function} **Optional** Request handler for the server
-// Returns a server that manages an instance of HttpProxy. Flexible arguments allow for:
-//
-// * `httpProxy.createServer(9000, 'localhost')`
-// * `httpProxy.createServer(9000, 'localhost', options)
-// * `httpPRoxy.createServer(function (req, res, proxy) { ... })`
-//
-exports.createServer = function () {
- var args = Array.prototype.slice.call(arguments),
- handlers = [],
- callback,
- options = {},
- message,
- handler,
- server,
- proxy,
- host,
- port;
-
- //
- // Liberally parse arguments of the form:
- //
- // httpProxy.createServer('localhost', 9000, callback);
- // httpProxy.createServer({ host: 'localhost', port: 9000 }, callback);
- // **NEED MORE HERE!!!**
- //
- args.forEach(function (arg) {
- arg = Number(arg) || arg;
- switch (typeof arg) {
- case 'string': host = arg; break;
- case 'number': port = arg; break;
- case 'object': options = arg || {}; break;
- case 'function': callback = arg; handlers.push(callback); break;
- };
- });
-
- //
- // Helper function to create intelligent error message(s)
- // for the very liberal arguments parsing performed by
- // `require('http-proxy').createServer()`.
- //
- function validArguments() {
- var conditions = {
- 'port and host': function () {
- return port && host;
- },
- 'options.target or options.router': function () {
- return options && (options.router ||
- (options.target && options.target.host && options.target.port));
- },
- 'or proxy handlers': function () {
- return handlers && handlers.length;
- }
- }
-
- var missing = Object.keys(conditions).filter(function (name) {
- return !conditions[name]();
- });
-
- if (missing.length === 3) {
- message = 'Cannot proxy without ' + missing.join(', ');
- return false;
- }
-
- return true;
- }
-
- if (!validArguments()) {
- //
- // If `host`, `port` and `options` are all not passed (with valid
- // options) then this server is improperly configured.
- //
- throw new Error(message);
- return;
- }
-
- //
- // Hoist up any explicit `host` or `port` arguments
- // that have been passed in to the options we will
- // pass to the `httpProxy.HttpProxy` constructor.
- //
- options.target = options.target || {};
- options.target.port = options.target.port || port;
- options.target.host = options.target.host || host;
-
- if (options.target && options.target.host && options.target.port) {
- //
- // If an explicit `host` and `port` combination has been passed
- // to `.createServer()` then instantiate a hot-path optimized
- // `HttpProxy` object and add the "proxy" middleware layer.
- //
- proxy = new HttpProxy(options);
- handlers.push(function (req, res) {
- proxy.proxyRequest(req, res);
- });
- }
- else {
- //
- // If no explicit `host` or `port` combination has been passed then
- // we have to assume that this is a "go-anywhere" Proxy (i.e. a `RoutingProxy`).
- //
- proxy = new RoutingProxy(options);
-
- if (options.router) {
- //
- // If a routing table has been supplied than we assume
- // the user intends us to add the "proxy" middleware layer
- // for them
- //
- handlers.push(function (req, res) {
- proxy.proxyRequest(req, res);
- });
-
- proxy.on('routes', function (routes) {
- server.emit('routes', routes);
- });
- }
- }
-
- //
- // Create the `http[s].Server` instance which will use
- // an instance of `httpProxy.HttpProxy`.
- //
- handler = handlers.length > 1
- ? exports.stack(handlers, proxy)
- : function (req, res) { handlers[0](req, res, proxy) };
-
- server = options.https
- ? https.createServer(options.https, handler)
- : http.createServer(handler);
-
- server.on('close', function () {
- proxy.close();
- });
-
- if (!callback) {
- //
- // If an explicit callback has not been supplied then
- // automagically proxy the request using the `HttpProxy`
- // instance we have created.
- //
- server.on('upgrade', function (req, socket, head) {
- proxy.proxyWebSocketRequest(req, socket, head);
- });
- }
-
- //
- // Set the proxy on the server so it is available
- // to the consumer of the server
- //
- server.proxy = proxy;
- return server;
-};
-
-//
-// ### function buffer (obj)
-// #### @obj {Object} Object to pause events from
-// Buffer `data` and `end` events from the given `obj`.
-// Consumers of HttpProxy performing async tasks
-// __must__ utilize this utility, to re-emit data once
-// the async operation has completed, otherwise these
-// __events will be lost.__
-//
-// var buffer = httpProxy.buffer(req);
-// fs.readFile(path, function () {
-// httpProxy.proxyRequest(req, res, host, port, buffer);
-// });
-//
-// __Attribution:__ This approach is based heavily on
-// [Connect](https://github.com/senchalabs/connect/blob/master/lib/utils.js#L157).
-// However, this is not a big leap from the implementation in node-http-proxy < 0.4.0.
-// This simply chooses to manage the scope of the events on a new Object literal as opposed to
-// [on the HttpProxy instance](https://github.com/nodejitsu/node-http-proxy/blob/v0.3.1/lib/node-http-proxy.js#L154).
-//
-exports.buffer = function (obj) {
- var events = [],
- onData,
- onEnd;
-
- obj.on('data', onData = function (data, encoding) {
- events.push(['data', data, encoding]);
- });
-
- obj.on('end', onEnd = function (data, encoding) {
- events.push(['end', data, encoding]);
- });
-
- return {
- end: function () {
- obj.removeListener('data', onData);
- obj.removeListener('end', onEnd);
- },
- destroy: function () {
- this.end();
- this.resume = function () {
- console.error("Cannot resume buffer after destroying it.");
- };
-
- onData = onEnd = events = obj = null;
- },
- resume: function () {
- this.end();
- for (var i = 0, len = events.length; i < len; ++i) {
- obj.emit.apply(obj, events[i]);
- }
- }
- };
-};
-
-//
-// ### function getMaxSockets ()
-// Returns the maximum number of sockets
-// allowed on __every__ outgoing request
-// made by __all__ instances of `HttpProxy`
-//
-exports.getMaxSockets = function () {
- return maxSockets;
-};
-
-//
-// ### function setMaxSockets ()
-// Sets the maximum number of sockets
-// allowed on __every__ outgoing request
-// made by __all__ instances of `HttpProxy`
-//
-exports.setMaxSockets = function (value) {
- maxSockets = value;
-};
-
-//
-// ### function stack (middlewares, proxy)
-// #### @middlewares {Array} Array of functions to stack.
-// #### @proxy {HttpProxy|RoutingProxy} Proxy instance to
-// Iteratively build up a single handler to the `http.Server`
-// `request` event (i.e. `function (req, res)`) by wrapping
-// each middleware `layer` into a `child` middleware which
-// is in invoked by the parent (i.e. predecessor in the Array).
-//
-// adapted from https://github.com/creationix/stack
-//
-exports.stack = function stack (middlewares, proxy) {
- var handle;
- middlewares.reverse().forEach(function (layer) {
- var child = handle;
- handle = function (req, res) {
- var next = function (err) {
- if (err) {
- if (! proxy.emit('middlewareError', err, req, res)) {
- console.error('Error in middleware(s): %s', err.stack);
- }
-
- if (res._headerSent) {
- res.destroy();
- }
- else {
- res.statusCode = 500;
- res.setHeader('Content-Type', 'text/plain');
- res.end('Internal Server Error');
- }
-
- return;
- }
-
- if (child) {
- child(req, res);
- }
- };
-
- //
- // Set the prototype of the `next` function to the instance
- // of the `proxy` so that in can be used interchangably from
- // a `connect` style callback and a true `HttpProxy` object.
- //
- // e.g. `function (req, res, next)` vs. `function (req, res, proxy)`
- //
- next.__proto__ = proxy;
- layer(req, res, next);
- };
- });
-
- return handle;
-};
-
-//
-// ### function _getAgent (host, port, secure)
-// #### @options {Object} Options to use when creating the agent.
-//
-// {
-// host: 'localhost',
-// port: 9000,
-// https: true,
-// maxSockets: 100
-// }
-//
-// Createsan agent from the `http` or `https` module
-// and sets the `maxSockets` property appropriately.
-//
-exports._getAgent = function _getAgent (options) {
- if (!options || !options.host) {
- throw new Error('`options.host` is required to create an Agent.');
- }
-
- if (!options.port) {
- options.port = options.https ? 443 : 80;
- }
-
- var Agent = options.https ? https.Agent : http.Agent,
- agent;
-
- // require('http-proxy').setMaxSockets() should override http's default
- // configuration value (which is pretty low).
- options.maxSockets = options.maxSockets || maxSockets;
- agent = new Agent(options);
-
- return agent;
-}
-
-//
-// ### function _getProtocol (options)
-// #### @options {Object} Options for the proxy target.
-// Returns the appropriate node.js core protocol module (i.e. `http` or `https`)
-// based on the `options` supplied.
-//
-exports._getProtocol = function _getProtocol (options) {
- return options.https ? https : http;
-};
-
-
-//
-// ### function _getBase (options)
-// #### @options {Object} Options for the proxy target.
-// Returns the relevate base object to create on outgoing proxy request.
-// If `options.https` are supplied, this function respond with an object
-// containing the relevant `ca`, `key`, and `cert` properties.
-//
-exports._getBase = function _getBase (options) {
- var result = function () {};
-
- if (options.https && typeof options.https === 'object') {
- ['ca', 'cert', 'key'].forEach(function (key) {
- if (options.https[key]) {
- result.prototype[key] = options.https[key];
- }
- });
- }
-
- return result;
-};
http://git-wip-us.apache.org/repos/asf/incubator-apex-malhar/blob/e1a45507/web/demos/package/node_modules/http-proxy/lib/node-http-proxy/http-proxy.js
----------------------------------------------------------------------
diff --git a/web/demos/package/node_modules/http-proxy/lib/node-http-proxy/http-proxy.js b/web/demos/package/node_modules/http-proxy/lib/node-http-proxy/http-proxy.js
deleted file mode 100644
index 92541ba..0000000
--- a/web/demos/package/node_modules/http-proxy/lib/node-http-proxy/http-proxy.js
+++ /dev/null
@@ -1,983 +0,0 @@
-/*
- node-http-proxy.js: http proxy for node.js
-
- Copyright (c) 2010 Charlie Robbins, Mikeal Rogers, Marak Squires, Fedor Indutny
-
- 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.
-
-*/
-
-var events = require('events'),
- http = require('http'),
- util = require('util'),
- url = require('url'),
- httpProxy = require('../node-http-proxy');
-
-//
-// @private {RegExp} extractPort
-// Reusable regular expression for getting the
-// port from a host string.
-//
-var extractPort = /:(\d+)$/;
-
-//
-// ### function HttpProxy (options)
-// #### @options {Object} Options for this instance.
-// Constructor function for new instances of HttpProxy responsible
-// for managing the life-cycle of streaming reverse proxyied HTTP requests.
-//
-// Example options:
-//
-// {
-// target: {
-// host: 'localhost',
-// port: 9000
-// },
-// forward: {
-// host: 'localhost',
-// port: 9001
-// }
-// }
-//
-var HttpProxy = exports.HttpProxy = function (options) {
- if (!options || !options.target) {
- throw new Error('Both `options` and `options.target` are required.');
- }
-
- events.EventEmitter.call(this);
-
- var self = this;
-
- //
- // Setup basic proxying options:
- //
- // * forward {Object} Options for a forward-proxy (if-any)
- // * target {Object} Options for the **sole** proxy target of this instance
- //
- this.forward = options.forward;
- this.target = options.target;
- this.timeout = options.timeout;
-
- //
- // Setup the necessary instances instance variables for
- // the `target` and `forward` `host:port` combinations
- // used by this instance.
- //
- // * agent {http[s].Agent} Agent to be used by this instance.
- // * protocol {http|https} Core node.js module to make requests with.
- // * base {Object} Base object to create when proxying containing any https settings.
- //
- function setupProxy (key) {
- self[key].agent = httpProxy._getAgent(self[key]);
- self[key].protocol = httpProxy._getProtocol(self[key]);
- self[key].base = httpProxy._getBase(self[key]);
- }
-
- setupProxy('target');
- if (this.forward) {
- setupProxy('forward');
- }
-
- //
- // Setup opt-in features
- //
- this.enable = options.enable || {};
- this.enable.xforward = typeof this.enable.xforward === 'boolean'
- ? this.enable.xforward
- : true;
-
- // if event listener is set then use it else unlimited.
- this.eventListenerCount = typeof options.eventListenerCount === 'number'? options.eventListenerCount : 0 ;
-
- //
- // Setup additional options for WebSocket proxying. When forcing
- // the WebSocket handshake to change the `sec-websocket-location`
- // and `sec-websocket-origin` headers `options.source` **MUST**
- // be provided or the operation will fail with an `origin mismatch`
- // by definition.
- //
- this.source = options.source || { host: 'localhost', port: 80 };
- this.source.https = this.source.https || options.https;
- this.changeOrigin = options.changeOrigin || false;
-};
-
-// Inherit from events.EventEmitter
-util.inherits(HttpProxy, events.EventEmitter);
-
-//
-// ### function proxyRequest (req, res, buffer)
-// #### @req {ServerRequest} Incoming HTTP Request to proxy.
-// #### @res {ServerResponse} Outgoing HTTP Request to write proxied data to.
-// #### @buffer {Object} Result from `httpProxy.buffer(req)`
-//
-HttpProxy.prototype.proxyRequest = function (req, res, buffer) {
- var self = this,
- errState = false,
- outgoing = new(this.target.base),
- reverseProxy,
- location;
-
- // If this is a DELETE request then set the "content-length"
- // header (if it is not already set)
- if (req.method === 'DELETE') {
- req.headers['content-length'] = req.headers['content-length'] || '0';
- }
-
- //
- // Add common proxy headers to the request so that they can
- // be availible to the proxy target server. If the proxy is
- // part of proxy chain it will append the address:
- //
- // * `x-forwarded-for`: IP Address of the original request
- // * `x-forwarded-proto`: Protocol of the original request
- // * `x-forwarded-port`: Port of the original request.
- //
- if (this.enable.xforward && req.connection && req.socket) {
- if (req.headers['x-forwarded-for']) {
- var addressToAppend = "," + req.connection.remoteAddress || req.socket.remoteAddress;
- req.headers['x-forwarded-for'] += addressToAppend;
- }
- else {
- req.headers['x-forwarded-for'] = req.connection.remoteAddress || req.socket.remoteAddress;
- }
-
- if (req.headers['x-forwarded-port']) {
- var portToAppend = "," + getPortFromHostHeader(req);
- req.headers['x-forwarded-port'] += portToAppend;
- }
- else {
- req.headers['x-forwarded-port'] = getPortFromHostHeader(req);
- }
-
- if (req.headers['x-forwarded-proto']) {
- var protoToAppend = "," + getProto(req);
- req.headers['x-forwarded-proto'] += protoToAppend;
- }
- else {
- req.headers['x-forwarded-proto'] = getProto(req);
- }
- }
-
- if (this.timeout) {
- req.socket.setTimeout(this.timeout);
- }
-
- //
- // Emit the `start` event indicating that we have begun the proxy operation.
- //
- this.emit('start', req, res, this.target);
-
- //
- // If forwarding is enabled for this instance, foward proxy the
- // specified request to the address provided in `this.forward`
- //
- if (this.forward) {
- this.emit('forward', req, res, this.forward);
- this._forwardRequest(req);
- }
-
- //
- // #### function proxyError (err)
- // #### @err {Error} Error contacting the proxy target
- // Short-circuits `res` in the event of any error when
- // contacting the proxy target at `host` / `port`.
- //
- function proxyError(err) {
- errState = true;
-
- //
- // Emit an `error` event, allowing the application to use custom
- // error handling. The error handler should end the response.
- //
- if (self.emit('proxyError', err, req, res)) {
- return;
- }
-
- res.writeHead(500, { 'Content-Type': 'text/plain' });
-
- if (req.method !== 'HEAD') {
- //
- // This NODE_ENV=production behavior is mimics Express and
- // Connect.
- //
- if (process.env.NODE_ENV === 'production') {
- res.write('Internal Server Error');
- }
- else {
- res.write('An error has occurred: ' + JSON.stringify(err));
- }
- }
-
- try { res.end() }
- catch (ex) { console.error("res.end error: %s", ex.message) }
- }
-
- //
- // Setup outgoing proxy with relevant properties.
- //
- outgoing.host = this.target.host;
- outgoing.hostname = this.target.hostname;
- outgoing.port = this.target.port;
- outgoing.socketPath = this.target.socketPath;
- outgoing.agent = this.target.agent;
- outgoing.method = req.method;
- outgoing.path = url.parse(req.url).path;
- outgoing.headers = req.headers;
-
- //
- // If the changeOrigin option is specified, change the
- // origin of the host header to the target URL! Please
- // don't revert this without documenting it!
- //
- if (this.changeOrigin) {
- outgoing.headers.host = this.target.host;
- // Only add port information to the header if not default port
- // for this protocol.
- // See https://github.com/nodejitsu/node-http-proxy/issues/458
- if (this.target.port !== 443 && this.target.https ||
- this.target.port !== 80 && !this.target.https) {
- outgoing.headers.host += ':' + this.target.port;
- }
- }
-
- //
- // Open new HTTP request to internal resource with will act
- // as a reverse proxy pass
- //
- reverseProxy = this.target.protocol.request(outgoing, function (response) {
- //
- // Process the `reverseProxy` `response` when it's received.
- //
- if (req.httpVersion === '1.0') {
- if (req.headers.connection) {
- response.headers.connection = req.headers.connection
- } else {
- response.headers.connection = 'close'
- }
- } else if (!response.headers.connection) {
- if (req.headers.connection) { response.headers.connection = req.headers.connection }
- else {
- response.headers.connection = 'keep-alive'
- }
- }
-
- // Remove `Transfer-Encoding` header if client's protocol is HTTP/1.0
- // or if this is a DELETE request with no content-length header.
- // See: https://github.com/nodejitsu/node-http-proxy/pull/373
- if (req.httpVersion === '1.0' || (req.method === 'DELETE'
- && !req.headers['content-length'])) {
- delete response.headers['transfer-encoding'];
- }
-
- if ((response.statusCode === 301 || response.statusCode === 302)
- && typeof response.headers.location !== 'undefined') {
- location = url.parse(response.headers.location);
- if (location.host === req.headers.host) {
- if (self.source.https && !self.target.https) {
- response.headers.location = response.headers.location.replace(/^http\:/, 'https:');
- }
- if (self.target.https && !self.source.https) {
- response.headers.location = response.headers.location.replace(/^https\:/, 'http:');
- }
- }
- }
-
- //
- // When the `reverseProxy` `response` ends, end the
- // corresponding outgoing `res` unless we have entered
- // an error state. In which case, assume `res.end()` has
- // already been called and the 'error' event listener
- // removed.
- //
- var ended = false;
- response.on('close', function () {
- if (!ended) { response.emit('end') }
- });
-
- //
- // After reading a chunked response, the underlying socket
- // will hit EOF and emit a 'end' event, which will abort
- // the request. If the socket was paused at that time,
- // pending data gets discarded, truncating the response.
- // This code makes sure that we flush pending data.
- //
- response.connection.on('end', function () {
- if (response.readable && response.resume) {
- response.resume();
- }
- });
-
- response.on('end', function () {
- ended = true;
- if (!errState) {
- try { res.end() }
- catch (ex) { console.error("res.end error: %s", ex.message) }
-
- // Emit the `end` event now that we have completed proxying
- self.emit('end', req, res, response);
- }
- });
-
- // Allow observer to modify headers or abort response
- try { self.emit('proxyResponse', req, res, response) }
- catch (ex) {
- errState = true;
- return;
- }
-
- // Set the headers of the client response
- if (res.sentHeaders !== true) {
- Object.keys(response.headers).forEach(function (key) {
- res.setHeader(key, response.headers[key]);
- });
- res.writeHead(response.statusCode);
- }
-
- function ondata(chunk) {
- if (res.writable) {
- // Only pause if the underlying buffers are full,
- // *and* the connection is not in 'closing' state.
- // Otherwise, the pause will cause pending data to
- // be discarded and silently lost.
- if (false === res.write(chunk) && response.pause
- && response.connection.readable) {
- response.pause();
- }
- }
- }
-
- response.on('data', ondata);
-
- function ondrain() {
- if (response.readable && response.resume) {
- response.resume();
- }
- }
-
- res.on('drain', ondrain);
- });
-
- // allow unlimited listeners ...
- reverseProxy.setMaxListeners(this.eventListenerCount);
-
- //
- // Handle 'error' events from the `reverseProxy`. Setup timeout override if needed
- //
- reverseProxy.once('error', proxyError);
-
- // Set a timeout on the socket if `this.timeout` is specified.
- reverseProxy.once('socket', function (socket) {
- if (self.timeout) {
- socket.setTimeout(self.timeout);
- }
- });
-
- //
- // Handle 'error' events from the `req` (e.g. `Parse Error`).
- //
- req.on('error', proxyError);
-
- //
- // If `req` is aborted, we abort our `reverseProxy` request as well.
- //
- req.on('aborted', function () {
- reverseProxy.abort();
- });
-
- //
- // For each data `chunk` received from the incoming
- // `req` write it to the `reverseProxy` request.
- //
- req.on('data', function (chunk) {
- if (!errState) {
- var flushed = reverseProxy.write(chunk);
- if (!flushed) {
- req.pause();
- reverseProxy.once('drain', function () {
- try { req.resume() }
- catch (er) { console.error("req.resume error: %s", er.message) }
- });
-
- //
- // Force the `drain` event in 100ms if it hasn't
- // happened on its own.
- //
- setTimeout(function () {
- reverseProxy.emit('drain');
- }, 100);
- }
- }
- });
-
- //
- // When the incoming `req` ends, end the corresponding `reverseProxy`
- // request unless we have entered an error state.
- //
- req.on('end', function () {
- if (!errState) {
- reverseProxy.end();
- }
- });
-
- //Aborts reverseProxy if client aborts the connection.
- req.on('close', function () {
- if (!errState) {
- reverseProxy.abort();
- }
- });
-
- //
- // If we have been passed buffered data, resume it.
- //
- if (buffer) {
- return !errState
- ? buffer.resume()
- : buffer.destroy();
- }
-};
-
-//
-// ### function proxyWebSocketRequest (req, socket, head, buffer)
-// #### @req {ServerRequest} Websocket request to proxy.
-// #### @socket {net.Socket} Socket for the underlying HTTP request
-// #### @head {string} Headers for the Websocket request.
-// #### @buffer {Object} Result from `httpProxy.buffer(req)`
-// Performs a WebSocket proxy operation to the location specified by
-// `this.target`.
-//
-HttpProxy.prototype.proxyWebSocketRequest = function (req, socket, upgradeHead, buffer) {
- var self = this,
- outgoing = new(this.target.base),
- listeners = {},
- errState = false,
- CRLF = '\r\n',
- //copy upgradeHead to avoid retention of large slab buffers used in node core
- head = new Buffer(upgradeHead.length);
- upgradeHead.copy(head);
-
- //
- // WebSocket requests must have the `GET` method and
- // the `upgrade:websocket` header
- //
- if (req.method !== 'GET' || req.headers.upgrade.toLowerCase() !== 'websocket') {
- //
- // This request is not WebSocket request
- //
- return socket.destroy();
- }
-
- //
- // Add common proxy headers to the request so that they can
- // be availible to the proxy target server. If the proxy is
- // part of proxy chain it will append the address:
- //
- // * `x-forwarded-for`: IP Address of the original request
- // * `x-forwarded-proto`: Protocol of the original request
- // * `x-forwarded-port`: Port of the original request.
- //
- if (this.enable.xforward && req.connection) {
- if (req.headers['x-forwarded-for']) {
- var addressToAppend = "," + req.connection.remoteAddress || socket.remoteAddress;
- req.headers['x-forwarded-for'] += addressToAppend;
- }
- else {
- req.headers['x-forwarded-for'] = req.connection.remoteAddress || socket.remoteAddress;
- }
-
- if (req.headers['x-forwarded-port']) {
- var portToAppend = "," + getPortFromHostHeader(req);
- req.headers['x-forwarded-port'] += portToAppend;
- }
- else {
- req.headers['x-forwarded-port'] = getPortFromHostHeader(req);
- }
-
- if (req.headers['x-forwarded-proto']) {
- var protoToAppend = "," + (req.connection.pair ? 'wss' : 'ws');
- req.headers['x-forwarded-proto'] += protoToAppend;
- }
- else {
- req.headers['x-forwarded-proto'] = req.connection.pair ? 'wss' : 'ws';
- }
- }
-
- self.emit('websocket:start', req, socket, head, this.target);
-
- //
- // Helper function for setting appropriate socket values:
- // 1. Turn of all bufferings
- // 2. For server set KeepAlive
- //
- function _socket(socket, keepAlive) {
- socket.setTimeout(0);
- socket.setNoDelay(true);
-
- if (keepAlive) {
- if (socket.setKeepAlive) {
- socket.setKeepAlive(true, 0);
- }
- else if (socket.pair.cleartext.socket.setKeepAlive) {
- socket.pair.cleartext.socket.setKeepAlive(true, 0);
- }
- }
- }
-
- //
- // Setup the incoming client socket.
- //
- _socket(socket, true);
-
- //
- // On `upgrade` from the Agent socket, listen to
- // the appropriate events.
- //
- function onUpgrade (reverseProxy, proxySocket) {
- if (!reverseProxy) {
- proxySocket.end();
- socket.end();
- return;
- }
-
- //
- // Any incoming data on this WebSocket to the proxy target
- // will be written to the `reverseProxy` socket.
- //
- proxySocket.on('data', listeners.onIncoming = function (data) {
- if (reverseProxy.incoming.socket.writable) {
- try {
- self.emit('websocket:outgoing', req, socket, head, data);
- var flushed = reverseProxy.incoming.socket.write(data);
- if (!flushed) {
- proxySocket.pause();
- reverseProxy.incoming.socket.once('drain', function () {
- try { proxySocket.resume() }
- catch (er) { console.error("proxySocket.resume error: %s", er.message) }
- });
-
- //
- // Force the `drain` event in 100ms if it hasn't
- // happened on its own.
- //
- setTimeout(function () {
- reverseProxy.incoming.socket.emit('drain');
- }, 100);
- }
- }
- catch (ex) {
- detach();
- }
- }
- });
-
- //
- // Any outgoing data on this Websocket from the proxy target
- // will be written to the `proxySocket` socket.
- //
- reverseProxy.incoming.socket.on('data', listeners.onOutgoing = function (data) {
- try {
- self.emit('websocket:incoming', reverseProxy, reverseProxy.incoming, head, data);
- var flushed = proxySocket.write(data);
- if (!flushed) {
- reverseProxy.incoming.socket.pause();
- proxySocket.once('drain', function () {
- try { reverseProxy.incoming.socket.resume() }
- catch (er) { console.error("reverseProxy.incoming.socket.resume error: %s", er.message) }
- });
-
- //
- // Force the `drain` event in 100ms if it hasn't
- // happened on its own.
- //
- setTimeout(function () {
- proxySocket.emit('drain');
- }, 100);
- }
- }
- catch (ex) {
- detach();
- }
- });
-
- //
- // Helper function to detach all event listeners
- // from `reverseProxy` and `proxySocket`.
- //
- function detach() {
- proxySocket.destroySoon();
- proxySocket.removeListener('end', listeners.onIncomingClose);
- proxySocket.removeListener('data', listeners.onIncoming);
- reverseProxy.incoming.socket.destroySoon();
- reverseProxy.incoming.socket.removeListener('end', listeners.onOutgoingClose);
- reverseProxy.incoming.socket.removeListener('data', listeners.onOutgoing);
- }
-
- //
- // If the incoming `proxySocket` socket closes, then
- // detach all event listeners.
- //
- listeners.onIncomingClose = function () {
- reverseProxy.incoming.socket.destroy();
- detach();
-
- // Emit the `end` event now that we have completed proxying
- self.emit('websocket:end', req, socket, head);
- }
-
- //
- // If the `reverseProxy` socket closes, then detach all
- // event listeners.
- //
- listeners.onOutgoingClose = function () {
- proxySocket.destroy();
- detach();
- }
-
- proxySocket.on('end', listeners.onIncomingClose);
- proxySocket.on('close', listeners.onIncomingClose);
- reverseProxy.incoming.socket.on('end', listeners.onOutgoingClose);
- reverseProxy.incoming.socket.on('close', listeners.onOutgoingClose);
- }
-
- function getPort (port) {
- port = port || 80;
- return port - 80 === 0 ? '' : ':' + port;
- }
-
- //
- // Get the protocol, and host for this request and create an instance
- // of `http.Agent` or `https.Agent` from the pool managed by `node-http-proxy`.
- //
- var agent = this.target.agent,
- protocolName = this.target.https ? 'https' : 'http',
- portUri = getPort(this.source.port),
- remoteHost = this.target.host + portUri;
-
- //
- // Change headers (if requested).
- //
- if (this.changeOrigin) {
- req.headers.host = remoteHost;
- req.headers.origin = protocolName + '://' + remoteHost;
- }
-
- //
- // Make the outgoing WebSocket request
- //
- outgoing.host = this.target.host;
- outgoing.port = this.target.port;
- outgoing.agent = agent;
- outgoing.method = 'GET';
- outgoing.path = req.url;
- outgoing.headers = req.headers;
- outgoing.agent = agent;
-
- var reverseProxy = this.target.protocol.request(outgoing);
-
- //
- // On any errors from the `reverseProxy` emit the
- // `webSocketProxyError` and close the appropriate
- // connections.
- //
- function proxyError (err) {
- reverseProxy.destroy();
-
- process.nextTick(function () {
- //
- // Destroy the incoming socket in the next tick, in case the error handler
- // wants to write to it.
- //
- socket.destroy();
- });
-
- self.emit('webSocketProxyError', err, req, socket, head);
- }
-
- //
- // Here we set the incoming `req`, `socket` and `head` data to the outgoing
- // request so that we can reuse this data later on in the closure scope
- // available to the `upgrade` event. This bookkeeping is not tracked anywhere
- // in nodejs core and is **very** specific to proxying WebSockets.
- //
- reverseProxy.incoming = {
- request: req,
- socket: socket,
- head: head
- };
-
- //
- // Here we set the handshake `headers` and `statusCode` data to the outgoing
- // request so that we can reuse this data later.
- //
- reverseProxy.handshake = {
- headers: {},
- statusCode: null,
- }
-
- //
- // If the agent for this particular `host` and `port` combination
- // is not already listening for the `upgrade` event, then do so once.
- // This will force us not to disconnect.
- //
- // In addition, it's important to note the closure scope here. Since
- // there is no mapping of the socket to the request bound to it.
- //
- reverseProxy.on('upgrade', function (res, remoteSocket, head) {
- //
- // Prepare handshake response 'headers' and 'statusCode'.
- //
- reverseProxy.handshake = {
- headers: res.headers,
- statusCode: res.statusCode,
- }
-
- //
- // Prepare the socket for the reverseProxy request and begin to
- // stream data between the two sockets. Here it is important to
- // note that `remoteSocket._httpMessage === reverseProxy`.
- //
- _socket(remoteSocket, true);
- onUpgrade(remoteSocket._httpMessage, remoteSocket);
- });
-
- //
- // If the reverseProxy connection has an underlying socket,
- // then execute the WebSocket handshake.
- //
- reverseProxy.once('socket', function (revSocket) {
- revSocket.on('data', function handshake (data) {
- // Set empty headers
- var headers = '';
-
- //
- // If the handshake statusCode 101, concat headers.
- //
- if (reverseProxy.handshake.statusCode && reverseProxy.handshake.statusCode == 101) {
- headers = [
- 'HTTP/1.1 101 Switching Protocols',
- 'Upgrade: websocket',
- 'Connection: Upgrade',
- 'Sec-WebSocket-Accept: ' + reverseProxy.handshake.headers['sec-websocket-accept']
- ];
-
- headers = headers.concat('', '').join('\r\n');
- }
-
- //
- // Ok, kind of harmfull part of code. Socket.IO sends a hash
- // at the end of handshake if protocol === 76, but we need
- // to replace 'host' and 'origin' in response so we split
- // data to printable data and to non-printable. (Non-printable
- // will come after double-CRLF).
- //
- var sdata = data.toString();
-
- // Get the Printable data
- sdata = sdata.substr(0, sdata.search(CRLF + CRLF));
-
- // Get the Non-Printable data
- data = data.slice(Buffer.byteLength(sdata), data.length);
-
- if (self.source.https && !self.target.https) {
- //
- // If the proxy server is running HTTPS but the client is running
- // HTTP then replace `ws` with `wss` in the data sent back to the client.
- //
- sdata = sdata.replace('ws:', 'wss:');
- }
-
- try {
- //
- // Write the printable and non-printable data to the socket
- // from the original incoming request.
- //
- self.emit('websocket:handshake', req, socket, head, sdata, data);
- // add headers to the socket
- socket.write(headers + sdata);
- var flushed = socket.write(data);
- if (!flushed) {
- revSocket.pause();
- socket.once('drain', function () {
- try { revSocket.resume() }
- catch (er) { console.error("reverseProxy.socket.resume error: %s", er.message) }
- });
-
- //
- // Force the `drain` event in 100ms if it hasn't
- // happened on its own.
- //
- setTimeout(function () {
- socket.emit('drain');
- }, 100);
- }
- }
- catch (ex) {
- //
- // Remove data listener on socket error because the
- // 'handshake' has failed.
- //
- revSocket.removeListener('data', handshake);
- return proxyError(ex);
- }
-
- //
- // Remove data listener now that the 'handshake' is complete
- //
- revSocket.removeListener('data', handshake);
- });
- });
-
- //
- // Handle 'error' events from the `reverseProxy`.
- //
- reverseProxy.on('error', proxyError);
-
- //
- // Handle 'error' events from the `req` (e.g. `Parse Error`).
- //
- req.on('error', proxyError);
-
- try {
- //
- // Attempt to write the upgrade-head to the reverseProxy
- // request. This is small, and there's only ever one of
- // it; no need for pause/resume.
- //
- // XXX This is very wrong and should be fixed in node's core
- //
- reverseProxy.write(head);
- if (head && head.length === 0) {
- reverseProxy._send('');
- }
- }
- catch (ex) {
- return proxyError(ex);
- }
-
- //
- // If we have been passed buffered data, resume it.
- //
- if (buffer) {
- return !errState
- ? buffer.resume()
- : buffer.destroy();
- }
-};
-
-//
-// ### function close()
-// Closes all sockets associated with the Agents
-// belonging to this instance.
-//
-HttpProxy.prototype.close = function () {
- [this.forward, this.target].forEach(function (proxy) {
- if (proxy && proxy.agent) {
- for (var host in proxy.agent.sockets) {
- proxy.agent.sockets[host].forEach(function (socket) {
- socket.end();
- });
- }
- }
- });
-};
-
-//
-// ### @private function _forwardRequest (req)
-// #### @req {ServerRequest} Incoming HTTP Request to proxy.
-// Forwards the specified `req` to the location specified
-// by `this.forward` ignoring errors and the subsequent response.
-//
-HttpProxy.prototype._forwardRequest = function (req) {
- var self = this,
- outgoing = new(this.forward.base),
- forwardProxy;
-
- //
- // Setup outgoing proxy with relevant properties.
- //
- outgoing.host = this.forward.host;
- outgoing.port = this.forward.port,
- outgoing.agent = this.forward.agent;
- outgoing.method = req.method;
- outgoing.path = req.url;
- outgoing.headers = req.headers;
-
- //
- // Open new HTTP request to internal resource with will
- // act as a reverse proxy pass.
- //
- forwardProxy = this.forward.protocol.request(outgoing, function (response) {
- //
- // Ignore the response from the forward proxy since this is a 'fire-and-forget' proxy.
- // Remark (indexzero): We will eventually emit a 'forward' event here for performance tuning.
- //
- });
-
- //
- // Add a listener for the connection timeout event.
- //
- // Remark: Ignoring this error in the event
- // forward target doesn't exist.
- //
- forwardProxy.once('error', function (err) { });
-
- //
- // Chunk the client request body as chunks from
- // the proxied request come in
- //
- req.on('data', function (chunk) {
- var flushed = forwardProxy.write(chunk);
- if (!flushed) {
- req.pause();
- forwardProxy.once('drain', function () {
- try { req.resume() }
- catch (er) { console.error("req.resume error: %s", er.message) }
- });
-
- //
- // Force the `drain` event in 100ms if it hasn't
- // happened on its own.
- //
- setTimeout(function () {
- forwardProxy.emit('drain');
- }, 100);
- }
- });
-
- //
- // At the end of the client request, we are going to
- // stop the proxied request
- //
- req.on('end', function () {
- forwardProxy.end();
- });
-};
-
-function getPortFromHostHeader(req) {
- var match;
- if ((match = extractPort.exec(req.headers.host))) {
- return parseInt(match[1]);
- }
-
- return getProto(req) === 'https' ? 443 : 80;
-}
-
-function getProto(req) {
- return req.isSpdy ? 'https' : (req.connection.pair ? 'https' : 'http');
-}
http://git-wip-us.apache.org/repos/asf/incubator-apex-malhar/blob/e1a45507/web/demos/package/node_modules/http-proxy/lib/node-http-proxy/proxy-table.js
----------------------------------------------------------------------
diff --git a/web/demos/package/node_modules/http-proxy/lib/node-http-proxy/proxy-table.js b/web/demos/package/node_modules/http-proxy/lib/node-http-proxy/proxy-table.js
deleted file mode 100644
index 320396f..0000000
--- a/web/demos/package/node_modules/http-proxy/lib/node-http-proxy/proxy-table.js
+++ /dev/null
@@ -1,282 +0,0 @@
-/*
- node-http-proxy.js: Lookup table for proxy targets in node.js
-
- Copyright (c) 2010 Charlie Robbins
-
- 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.
-
-*/
-
-var util = require('util'),
- events = require('events'),
- fs = require('fs'),
- url = require('url');
-
-//
-// ### function ProxyTable (router, silent)
-// #### @router {Object} Object containing the host based routes
-// #### @silent {Boolean} Value indicating whether we should suppress logs
-// #### @hostnameOnly {Boolean} Value indicating if we should route based on __hostname string only__
-// #### @pathnameOnly {Boolean} Value indicating if we should route based on only the pathname. __This causes hostnames to be ignored.__. Using this along with hostnameOnly wont work at all.
-// Constructor function for the ProxyTable responsible for getting
-// locations of proxy targets based on ServerRequest headers; specifically
-// the HTTP host header.
-//
-var ProxyTable = exports.ProxyTable = function (options) {
- events.EventEmitter.call(this);
-
- this.silent = options.silent || options.silent !== true;
- this.target = options.target || {};
- this.pathnameOnly = options.pathnameOnly === true;
- this.hostnameOnly = options.hostnameOnly === true;
-
- if (typeof options.router === 'object') {
- //
- // If we are passed an object literal setup
- // the routes with RegExps from the router
- //
- this.setRoutes(options.router);
- }
- else if (typeof options.router === 'string') {
- //
- // If we are passed a string then assume it is a
- // file path, parse that file and watch it for changes
- //
- var self = this;
- this.routeFile = options.router;
- this.setRoutes(JSON.parse(fs.readFileSync(options.router)).router);
-
- fs.watchFile(this.routeFile, function () {
- fs.readFile(self.routeFile, function (err, data) {
- if (err) {
- self.emit('error', err);
- }
-
- self.setRoutes(JSON.parse(data).router);
- self.emit('routes', self.hostnameOnly === false ? self.routes : self.router);
- });
- });
- }
- else {
- throw new Error('Cannot parse router with unknown type: ' + typeof router);
- }
-};
-
-//
-// Inherit from `events.EventEmitter`
-//
-util.inherits(ProxyTable, events.EventEmitter);
-
-//
-// ### function addRoute (route, target)
-// #### @route {String} String containing route coming in
-// #### @target {String} String containing the target
-// Adds a host-based route to this instance.
-//
-ProxyTable.prototype.addRoute = function (route, target) {
- if (!this.router) {
- throw new Error('Cannot update ProxyTable routes without router.');
- }
-
- this.router[route] = target;
- this.setRoutes(this.router);
-};
-
-//
-// ### function removeRoute (route)
-// #### @route {String} String containing route to remove
-// Removes a host-based route from this instance.
-//
-ProxyTable.prototype.removeRoute = function (route) {
- if (!this.router) {
- throw new Error('Cannot update ProxyTable routes without router.');
- }
-
- delete this.router[route];
- this.setRoutes(this.router);
-};
-
-//
-// ### function setRoutes (router)
-// #### @router {Object} Object containing the host based routes
-// Sets the host-based routes to be used by this instance.
-//
-ProxyTable.prototype.setRoutes = function (router) {
- if (!router) {
- throw new Error('Cannot update ProxyTable routes without router.');
- }
-
- var self = this;
- this.router = router;
-
- if (this.hostnameOnly === false) {
- this.routes = [];
-
- Object.keys(router).forEach(function (path) {
- if (!/http[s]?/.test(router[path])) {
- router[path] = (self.target.https ? 'https://' : 'http://')
- + router[path];
- }
-
- var target = url.parse(router[path]),
- defaultPort = self.target.https ? 443 : 80;
-
- //
- // Setup a robust lookup table for the route:
- //
- // {
- // source: {
- // regexp: /^foo.com/i,
- // sref: 'foo.com',
- // url: {
- // protocol: 'http:',
- // slashes: true,
- // host: 'foo.com',
- // hostname: 'foo.com',
- // href: 'http://foo.com/',
- // pathname: '/',
- // path: '/'
- // }
- // },
- // {
- // target: {
- // sref: '127.0.0.1:8000/',
- // url: {
- // protocol: 'http:',
- // slashes: true,
- // host: '127.0.0.1:8000',
- // hostname: '127.0.0.1',
- // href: 'http://127.0.0.1:8000/',
- // pathname: '/',
- // path: '/'
- // }
- // },
- //
- self.routes.push({
- source: {
- regexp: new RegExp('^' + path, 'i'),
- sref: path,
- url: url.parse('http://' + path)
- },
- target: {
- sref: target.hostname + ':' + (target.port || defaultPort) + target.path,
- url: target
- }
- });
- });
- }
-};
-
-//
-// ### function getProxyLocation (req)
-// #### @req {ServerRequest} The incoming server request to get proxy information about.
-// Returns the proxy location based on the HTTP Headers in the ServerRequest `req`
-// available to this instance.
-//
-ProxyTable.prototype.getProxyLocation = function (req) {
- if (!req || !req.headers || !req.headers.host) {
- return null;
- }
-
- var targetHost = req.headers.host.split(':')[0];
- if (this.hostnameOnly === true) {
- var target = targetHost;
- if (this.router.hasOwnProperty(target)) {
- var location = this.router[target].split(':'),
- host = location[0],
- port = location.length === 1 ? 80 : location[1];
-
- return {
- port: port,
- host: host
- };
- }
- }
- else if (this.pathnameOnly === true) {
- var target = req.url;
- for (var i in this.routes) {
- var route = this.routes[i];
- //
- // If we are matching pathname only, we remove the matched pattern.
- //
- // IE /wiki/heartbeat
- // is redirected to
- // /heartbeat
- //
- // for the route "/wiki" : "127.0.0.1:8020"
- //
- if (target.match(route.source.regexp)) {
- req.url = url.format(target.replace(route.source.regexp, ''));
- return {
- protocol: route.target.url.protocol.replace(':', ''),
- host: route.target.url.hostname,
- port: route.target.url.port
- || (this.target.https ? 443 : 80)
- };
- }
- }
-
- }
- else {
- var target = targetHost + req.url;
- for (var i in this.routes) {
- var route = this.routes[i];
- if (target.match(route.source.regexp)) {
- //
- // Attempt to perform any path replacement for differences
- // between the source path and the target path. This replaces the
- // path's part of the URL to the target's part of the URL.
- //
- // 1. Parse the request URL
- // 2. Replace any portions of the source path with the target path
- // 3. Set the request URL to the formatted URL with replacements.
- //
- var parsed = url.parse(req.url);
-
- parsed.pathname = parsed.pathname.replace(
- route.source.url.pathname,
- route.target.url.pathname
- );
-
- req.url = url.format(parsed);
-
- return {
- protocol: route.target.url.protocol.replace(':', ''),
- host: route.target.url.hostname,
- port: route.target.url.port
- || (this.target.https ? 443 : 80)
- };
- }
- }
- }
-
- return null;
-};
-
-//
-// ### close function ()
-// Cleans up the event listeneners maintained
-// by this instance.
-//
-ProxyTable.prototype.close = function () {
- if (typeof this.routeFile === 'string') {
- fs.unwatchFile(this.routeFile);
- }
-};
http://git-wip-us.apache.org/repos/asf/incubator-apex-malhar/blob/e1a45507/web/demos/package/node_modules/http-proxy/lib/node-http-proxy/routing-proxy.js
----------------------------------------------------------------------
diff --git a/web/demos/package/node_modules/http-proxy/lib/node-http-proxy/routing-proxy.js b/web/demos/package/node_modules/http-proxy/lib/node-http-proxy/routing-proxy.js
deleted file mode 100644
index b294fb1..0000000
--- a/web/demos/package/node_modules/http-proxy/lib/node-http-proxy/routing-proxy.js
+++ /dev/null
@@ -1,322 +0,0 @@
-/*
- * routing-proxy.js: A routing proxy consuming a RoutingTable and multiple HttpProxy instances
- *
- * (C) 2011 Nodejitsu Inc.
- * MIT LICENCE
- *
- */
-
-var events = require('events'),
- utile = require('utile'),
- HttpProxy = require('./http-proxy').HttpProxy,
- ProxyTable = require('./proxy-table').ProxyTable;
-
-//
-// ### function RoutingProxy (options)
-// #### @options {Object} Options for this instance
-// Constructor function for the RoutingProxy object, a higher level
-// reverse proxy Object which can proxy to multiple hosts and also interface
-// easily with a RoutingTable instance.
-//
-var RoutingProxy = exports.RoutingProxy = function (options) {
- events.EventEmitter.call(this);
-
- var self = this;
- options = options || {};
-
- if (options.router) {
- this.proxyTable = new ProxyTable(options);
- this.proxyTable.on('routes', function (routes) {
- self.emit('routes', routes);
- });
- }
-
- //
- // Create a set of `HttpProxy` objects to be used later on calls
- // to `.proxyRequest()` and `.proxyWebSocketRequest()`.
- //
- this.proxies = {};
-
- //
- // Setup default target options (such as `https`).
- //
- this.target = {};
- this.target.https = options.target && options.target.https;
- this.target.maxSockets = options.target && options.target.maxSockets;
-
- //
- // Setup other default options to be used for instances of
- // `HttpProxy` created by this `RoutingProxy` instance.
- //
- this.source = options.source || { host: 'localhost', port: 8000 };
- this.https = this.source.https || options.https;
- this.enable = options.enable;
- this.forward = options.forward;
- this.changeOrigin = options.changeOrigin || false;
-
- //
- // Listen for 'newListener' events so that we can bind 'proxyError'
- // listeners to each HttpProxy's 'proxyError' event.
- //
- this.on('newListener', function (evt) {
- if (evt === 'proxyError' || evt === 'webSocketProxyError') {
- Object.keys(self.proxies).forEach(function (key) {
- self.proxies[key].on(evt, self.emit.bind(self, evt));
- });
- }
- });
-};
-
-
-//
-// Inherit from `events.EventEmitter`.
-//
-utile.inherits(RoutingProxy, events.EventEmitter);
-
-//
-// ### function add (options)
-// #### @options {Object} Options for the `HttpProxy` to add.
-// Adds a new instance of `HttpProxy` to this `RoutingProxy` instance
-// for the specified `options.host` and `options.port`.
-//
-RoutingProxy.prototype.add = function (options) {
- var self = this,
- key = this._getKey(options);
-
- //
- // TODO: Consume properties in `options` related to the `ProxyTable`.
- //
- options.target = options.target || {};
- options.target.host = options.target.host || options.host;
- options.target.port = options.target.port || options.port;
- options.target.socketPath = options.target.socketPath || options.socketPath;
- options.target.https = this.target && this.target.https ||
- options.target && options.target.https;
- options.target.maxSockets = this.target && this.target.maxSockets;
-
- //
- // Setup options to pass-thru to the new `HttpProxy` instance
- // for the specified `options.host` and `options.port` pair.
- //
- ['https', 'enable', 'forward', 'changeOrigin'].forEach(function (key) {
- if (options[key] !== false && self[key]) {
- options[key] = self[key];
- }
- });
-
- this.proxies[key] = new HttpProxy(options);
-
- if (this.listeners('proxyError').length > 0) {
- this.proxies[key].on('proxyError', this.emit.bind(this, 'proxyError'));
- }
-
- if (this.listeners('webSocketProxyError').length > 0) {
- this.proxies[key].on('webSocketProxyError', this.emit.bind(this, 'webSocketProxyError'));
- }
-
- [
- 'start',
- 'forward',
- 'end',
- 'proxyResponse',
- 'websocket:start',
- 'websocket:end',
- 'websocket:incoming',
- 'websocket:outgoing'
- ].forEach(function (event) {
- this.proxies[key].on(event, this.emit.bind(this, event));
- }, this);
-};
-
-//
-// ### function remove (options)
-// #### @options {Object} Options mapping to the `HttpProxy` to remove.
-// Removes an instance of `HttpProxy` from this `RoutingProxy` instance
-// for the specified `options.host` and `options.port` (if they exist).
-//
-RoutingProxy.prototype.remove = function (options) {
- var key = this._getKey(options),
- proxy = this.proxies[key];
-
- delete this.proxies[key];
- return proxy;
-};
-
-//
-// ### function close()
-// Cleans up any state left behind (sockets, timeouts, etc)
-// associated with this instance.
-//
-RoutingProxy.prototype.close = function () {
- var self = this;
-
- if (this.proxyTable) {
- //
- // Close the `RoutingTable` associated with
- // this instance (if any).
- //
- this.proxyTable.close();
- }
-
- //
- // Close all sockets for all `HttpProxy` object(s)
- // associated with this instance.
- //
- Object.keys(this.proxies).forEach(function (key) {
- self.proxies[key].close();
- });
-};
-
-//
-// ### function proxyRequest (req, res, [port, host, paused])
-// #### @req {ServerRequest} Incoming HTTP Request to proxy.
-// #### @res {ServerResponse} Outgoing HTTP Request to write proxied data to.
-// #### @options {Object} Options for the outgoing proxy request.
-//
-// options.port {number} Port to use on the proxy target host.
-// options.host {string} Host of the proxy target.
-// options.buffer {Object} Result from `httpProxy.buffer(req)`
-// options.https {Object|boolean} Settings for https.
-//
-RoutingProxy.prototype.proxyRequest = function (req, res, options) {
- options = options || {};
-
- var location;
-
- //
- // Check the proxy table for this instance to see if we need
- // to get the proxy location for the request supplied. We will
- // always ignore the proxyTable if an explicit `port` and `host`
- // arguments are supplied to `proxyRequest`.
- //
- if (this.proxyTable && !options.host) {
- location = this.proxyTable.getProxyLocation(req);
-
- //
- // If no location is returned from the ProxyTable instance
- // then respond with `404` since we do not have a valid proxy target.
- //
- if (!location) {
- try {
- if (!this.emit('notFound', req, res)) {
- res.writeHead(404);
- res.end();
- }
- }
- catch (er) {
- console.error("res.writeHead/res.end error: %s", er.message);
- }
-
- return;
- }
-
- //
- // When using the ProxyTable in conjunction with an HttpProxy instance
- // only the following arguments are valid:
- //
- // * `proxy.proxyRequest(req, res, { host: 'localhost' })`: This will be skipped
- // * `proxy.proxyRequest(req, res, { buffer: buffer })`: Buffer will get updated appropriately
- // * `proxy.proxyRequest(req, res)`: Options will be assigned appropriately.
- //
- options.port = location.port;
- options.host = location.host;
- }
-
- var key = this._getKey(options),
- proxy;
-
- if ((this.target && this.target.https)
- || (location && location.protocol === 'https')) {
- options.target = options.target || {};
- options.target.https = true;
- }
-
- if (!this.proxies[key]) {
- this.add(utile.clone(options));
- }
-
- proxy = this.proxies[key];
- proxy.proxyRequest(req, res, options.buffer);
-};
-
-//
-// ### function proxyWebSocketRequest (req, socket, head, options)
-// #### @req {ServerRequest} Websocket request to proxy.
-// #### @socket {net.Socket} Socket for the underlying HTTP request
-// #### @head {string} Headers for the Websocket request.
-// #### @options {Object} Options to use when proxying this request.
-//
-// options.port {number} Port to use on the proxy target host.
-// options.host {string} Host of the proxy target.
-// options.buffer {Object} Result from `httpProxy.buffer(req)`
-// options.https {Object|boolean} Settings for https.
-//
-RoutingProxy.prototype.proxyWebSocketRequest = function (req, socket, head, options) {
- options = options || {};
-
- var location,
- proxy,
- key;
-
- if (this.proxyTable && !options.host) {
- location = this.proxyTable.getProxyLocation(req);
-
- if (!location) {
- return socket.destroy();
- }
-
- options.port = location.port;
- options.host = location.host;
- }
-
- key = this._getKey(options);
-
- if (!this.proxies[key]) {
- this.add(utile.clone(options));
- }
-
- proxy = this.proxies[key];
- proxy.proxyWebSocketRequest(req, socket, head, options.buffer);
-};
-
-//
-// ### function addHost (host, target)
-// #### @host {String} Host to add to proxyTable
-// #### @target {String} Target to add to proxyTable
-// Adds a host to proxyTable
-//
-RoutingProxy.prototype.addHost = function (host, target) {
- if (this.proxyTable) {
- this.proxyTable.addRoute(host, target);
- }
-};
-
-//
-// ### function removeHost (host)
-// #### @host {String} Host to remove from proxyTable
-// Removes a host to proxyTable
-//
-RoutingProxy.prototype.removeHost = function (host) {
- if (this.proxyTable) {
- this.proxyTable.removeRoute(host);
- }
-};
-
-//
-// ### @private function _getKey (options)
-// #### @options {Object} Options to extract the key from
-// Ensures that the appropriate options are present in the `options`
-// provided and responds with a string key representing the `host`, `port`
-// combination contained within.
-//
-RoutingProxy.prototype._getKey = function (options) {
- if (!options || ((!options.host || !options.port)
- && (!options.target || !options.target.host || !options.target.port))) {
- throw new Error('options.host and options.port or options.target are required.');
- }
-
- return [
- options.host || options.target.host,
- options.port || options.target.port
- ].join(':');
-};
http://git-wip-us.apache.org/repos/asf/incubator-apex-malhar/blob/e1a45507/web/demos/package/node_modules/http-proxy/node_modules/colors/MIT-LICENSE.txt
----------------------------------------------------------------------
diff --git a/web/demos/package/node_modules/http-proxy/node_modules/colors/MIT-LICENSE.txt b/web/demos/package/node_modules/http-proxy/node_modules/colors/MIT-LICENSE.txt
deleted file mode 100644
index 7dca107..0000000
--- a/web/demos/package/node_modules/http-proxy/node_modules/colors/MIT-LICENSE.txt
+++ /dev/null
@@ -1,22 +0,0 @@
-Copyright (c) 2010
-
-Marak Squires
-Alexis Sellier (cloudhead)
-
-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-apex-malhar/blob/e1a45507/web/demos/package/node_modules/http-proxy/node_modules/colors/ReadMe.md
----------------------------------------------------------------------
diff --git a/web/demos/package/node_modules/http-proxy/node_modules/colors/ReadMe.md b/web/demos/package/node_modules/http-proxy/node_modules/colors/ReadMe.md
deleted file mode 100644
index 0eda52d..0000000
--- a/web/demos/package/node_modules/http-proxy/node_modules/colors/ReadMe.md
+++ /dev/null
@@ -1,77 +0,0 @@
-# colors.js - get color and style in your node.js console ( and browser ) like what
-
-<img src="http://i.imgur.com/goJdO.png" border = "0"/>
-
-
-## Installation
-
- npm install colors
-
-## colors and styles!
-
-- bold
-- italic
-- underline
-- inverse
-- yellow
-- cyan
-- white
-- magenta
-- green
-- red
-- grey
-- blue
-- rainbow
-- zebra
-- random
-
-## Usage
-
-``` js
-var colors = require('./colors');
-
-console.log('hello'.green); // outputs green text
-console.log('i like cake and pies'.underline.red) // outputs red underlined text
-console.log('inverse the color'.inverse); // inverses the color
-console.log('OMG Rainbows!'.rainbow); // rainbow (ignores spaces)
-```
-
-# Creating Custom themes
-
-```js
-
-var colors = require('colors');
-
-colors.setTheme({
- silly: 'rainbow',
- input: 'grey',
- verbose: 'cyan',
- prompt: 'grey',
- info: 'green',
- data: 'grey',
- help: 'cyan',
- warn: 'yellow',
- debug: 'blue',
- error: 'red'
-});
-
-// outputs red text
-console.log("this is an error".error);
-
-// outputs yellow text
-console.log("this is a warning".warn);
-```
-
-
-### Contributors
-
-Marak (Marak Squires)
-Alexis Sellier (cloudhead)
-mmalecki (Maciej MaĆecki)
-nicoreed (Nico Reed)
-morganrallen (Morgan Allen)
-JustinCampbell (Justin Campbell)
-ded (Dustin Diaz)
-
-
-#### , Marak Squires , Justin Campbell, Dustin Diaz (@ded)