Demo for query storing

Change-Id: I947bcac841992c3f6cfd01ab337c265b0d01cb70
diff --git a/node_modules/currently-unhandled/browser.js b/node_modules/currently-unhandled/browser.js
new file mode 100644
index 0000000..aa9e56f
--- /dev/null
+++ b/node_modules/currently-unhandled/browser.js
@@ -0,0 +1,27 @@
+'use strict';
+var core = require('./core');
+
+function unwrapEvent(event) {
+	if (event && event.detail && event.detail.promise) {
+		return event.detail;
+	}
+
+	return event;
+}
+
+module.exports = function (w) {
+	w = w || window;
+	var c = core();
+
+	w.addEventListener('unhandledrejection', function (event) {
+		event = unwrapEvent(event);
+		c.onUnhandledRejection(event.reason, event.promise);
+	});
+
+	w.addEventListener('rejectionhandled', function (event) {
+		event = unwrapEvent(event);
+		c.onRejectionHandled(event.promise);
+	});
+
+	return c.currentlyUnhandled;
+};
diff --git a/node_modules/currently-unhandled/core.js b/node_modules/currently-unhandled/core.js
new file mode 100644
index 0000000..73db22e
--- /dev/null
+++ b/node_modules/currently-unhandled/core.js
@@ -0,0 +1,33 @@
+'use strict';
+var arrayFindIndex = require('array-find-index');
+
+module.exports = function () {
+	var unhandledRejections = [];
+
+	function onUnhandledRejection(reason, promise) {
+		unhandledRejections.push({reason: reason, promise: promise});
+	}
+
+	function onRejectionHandled(promise) {
+		var index = arrayFindIndex(unhandledRejections, function (x) {
+			return x.promise === promise;
+		});
+
+		unhandledRejections.splice(index, 1);
+	}
+
+	function currentlyUnhandled() {
+		return unhandledRejections.map(function (entry) {
+			return {
+				reason: entry.reason,
+				promise: entry.promise
+			};
+		});
+	}
+
+	return {
+		onUnhandledRejection: onUnhandledRejection,
+		onRejectionHandled: onRejectionHandled,
+		currentlyUnhandled: currentlyUnhandled
+	};
+};
diff --git a/node_modules/currently-unhandled/index.js b/node_modules/currently-unhandled/index.js
new file mode 100644
index 0000000..238b9d9
--- /dev/null
+++ b/node_modules/currently-unhandled/index.js
@@ -0,0 +1,12 @@
+'use strict';
+var core = require('./core');
+
+module.exports = function (p) {
+	p = p || process;
+	var c = core();
+
+	p.on('unhandledRejection', c.onUnhandledRejection);
+	p.on('rejectionHandled', c.onRejectionHandled);
+
+	return c.currentlyUnhandled;
+};
diff --git a/node_modules/currently-unhandled/license b/node_modules/currently-unhandled/license
new file mode 100644
index 0000000..ad5d021
--- /dev/null
+++ b/node_modules/currently-unhandled/license
@@ -0,0 +1,21 @@
+The MIT License (MIT)
+
+Copyright (c) James Talmage <james@talmage.io> (github.com/jamestalmage)
+
+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.
diff --git a/node_modules/currently-unhandled/package.json b/node_modules/currently-unhandled/package.json
new file mode 100644
index 0000000..1902121
--- /dev/null
+++ b/node_modules/currently-unhandled/package.json
@@ -0,0 +1,103 @@
+{
+  "_from": "currently-unhandled@^0.4.1",
+  "_id": "currently-unhandled@0.4.1",
+  "_inBundle": false,
+  "_integrity": "sha1-mI3zP+qxke95mmE2nddsF635V+o=",
+  "_location": "/currently-unhandled",
+  "_phantomChildren": {},
+  "_requested": {
+    "type": "range",
+    "registry": true,
+    "raw": "currently-unhandled@^0.4.1",
+    "name": "currently-unhandled",
+    "escapedName": "currently-unhandled",
+    "rawSpec": "^0.4.1",
+    "saveSpec": null,
+    "fetchSpec": "^0.4.1"
+  },
+  "_requiredBy": [
+    "/loud-rejection"
+  ],
+  "_resolved": "https://registry.npmjs.org/currently-unhandled/-/currently-unhandled-0.4.1.tgz",
+  "_shasum": "988df33feab191ef799a61369dd76c17adf957ea",
+  "_spec": "currently-unhandled@^0.4.1",
+  "_where": "C:\\Users\\marcr\\Desktop\\KorAp\\Git\\Kalamar\\node_modules\\loud-rejection",
+  "author": {
+    "name": "James Talmage",
+    "email": "james@talmage.io",
+    "url": "github.com/jamestalmage"
+  },
+  "ava": {
+    "files": "test.js"
+  },
+  "browser": {
+    "./index.js": "./browser.js"
+  },
+  "bugs": {
+    "url": "https://github.com/jamestalmage/currently-unhandled/issues"
+  },
+  "bundleDependencies": false,
+  "dependencies": {
+    "array-find-index": "^1.0.1"
+  },
+  "deprecated": false,
+  "description": "Track the list of currently unhandled promise rejections.",
+  "devDependencies": {
+    "ava": "^0.15.1",
+    "bluebird": "^3.4.0",
+    "browserify": "^13.0.1",
+    "coveralls": "^2.11.9",
+    "delay": "^1.3.1",
+    "is-ci": "^1.0.8",
+    "karma": "^0.13.22",
+    "karma-browserify": "^5.0.5",
+    "karma-chrome-launcher": "^1.0.1",
+    "karma-firefox-launcher": "^1.0.0",
+    "karma-mocha": "^1.0.1",
+    "mocha": "^2.5.3",
+    "nyc": "^6.4.0",
+    "watchify": "^3.7.0",
+    "xo": "^0.15.0"
+  },
+  "engines": {
+    "node": ">=0.10.0"
+  },
+  "files": [
+    "index.js",
+    "core.js",
+    "browser.js"
+  ],
+  "homepage": "https://github.com/jamestalmage/currently-unhandled#readme",
+  "keywords": [
+    "unhandled",
+    "unhandledRejection",
+    "rejected",
+    "promises"
+  ],
+  "license": "MIT",
+  "name": "currently-unhandled",
+  "nyc": {
+    "reporter": [
+      "lcov",
+      "text"
+    ]
+  },
+  "repository": {
+    "type": "git",
+    "url": "git+https://github.com/jamestalmage/currently-unhandled.git"
+  },
+  "scripts": {
+    "test": "xo && nyc ava"
+  },
+  "version": "0.4.1",
+  "xo": {
+    "ignores": [
+      "browser-bluebird-test.js"
+    ],
+    "envs": [
+      "browser",
+      "mocha",
+      "node"
+    ]
+  }
+}
diff --git a/node_modules/currently-unhandled/readme.md b/node_modules/currently-unhandled/readme.md
new file mode 100644
index 0000000..b73c568
--- /dev/null
+++ b/node_modules/currently-unhandled/readme.md
@@ -0,0 +1,44 @@
+# currently-unhandled [![Build Status](https://travis-ci.org/jamestalmage/currently-unhandled.svg?branch=master)](https://travis-ci.org/jamestalmage/currently-unhandled) [![Coverage Status](https://coveralls.io/repos/github/jamestalmage/currently-unhandled/badge.svg?branch=master)](https://coveralls.io/github/jamestalmage/currently-unhandled?branch=master)
+
+> Track the list of currently unhandled promise rejections.
+
+
+## Install
+
+```
+$ npm install --save currently-unhandled
+```
+
+
+## Usage
+
+```js
+const currentlyUnhandled = require('currently-unhandled')(); // <- note the invocation
+
+var fooError = new Error('foo');
+var p = Promise.reject(new Error('foo'));
+
+// on the next tick - unhandled rejected promise is added to the list:
+currentlyUnhandled();
+//=> [{promise: p, reason: fooError}]'
+
+p.catch(() => {});
+
+// on the next tick - handled promise is now removed from the list:
+currentlyUnhandled();
+//=> [];
+```
+
+## API
+
+### currentlyUnhandled()
+
+Returns an array of objects with `promise` and `reason` properties representing the rejected promises that currently do not have a rejection handler. The list grows and shrinks as unhandledRejections are published, and later handled.
+
+## Browser Support
+
+This module can be bundled with `browserify`. At time of writing, it will work with native Promises in the Chrome browser only. For best cross-browser support, use `bluebird` instead of native Promise support in browsers.
+
+## License
+
+MIT © [James Talmage](http://github.com/jamestalmage)