Demo for query storing

Change-Id: I947bcac841992c3f6cfd01ab337c265b0d01cb70
diff --git a/node_modules/caw/index.js b/node_modules/caw/index.js
new file mode 100644
index 0000000..69e7f55
--- /dev/null
+++ b/node_modules/caw/index.js
@@ -0,0 +1,37 @@
+'use strict';
+const url = require('url');
+const getProxy = require('get-proxy');
+const isurl = require('isurl');
+const tunnelAgent = require('tunnel-agent');
+const urlToOptions = require('url-to-options');
+
+module.exports = (proxy, opts) => {
+	proxy = proxy || getProxy();
+	opts = Object.assign({}, opts);
+
+	if (typeof proxy === 'object') {
+		opts = proxy;
+		proxy = getProxy();
+	}
+
+	if (!proxy) {
+		return null;
+	}
+
+	proxy = isurl.lenient(proxy) ? urlToOptions(proxy) : url.parse(proxy);
+
+	const uriProtocol = opts.protocol === 'https' ? 'https' : 'http';
+	const proxyProtocol = proxy.protocol === 'https:' ? 'Https' : 'Http';
+	const port = proxy.port || (proxyProtocol === 'Https' ? 443 : 80);
+	const method = `${uriProtocol}Over${proxyProtocol}`;
+
+	delete opts.protocol;
+
+	return tunnelAgent[method](Object.assign({
+		proxy: {
+			port,
+			host: proxy.hostname,
+			proxyAuth: proxy.auth
+		}
+	}, opts));
+};