Demo for query storing

Change-Id: I947bcac841992c3f6cfd01ab337c265b0d01cb70
diff --git a/node_modules/flush-write-stream/.travis.yml b/node_modules/flush-write-stream/.travis.yml
new file mode 100644
index 0000000..4689cb7
--- /dev/null
+++ b/node_modules/flush-write-stream/.travis.yml
@@ -0,0 +1,6 @@
+language: node_js
+node_js:
+  - '4'
+  - '6'
+  - '8'
+  - '10'
diff --git a/node_modules/flush-write-stream/LICENSE b/node_modules/flush-write-stream/LICENSE
new file mode 100644
index 0000000..66a4d2a
--- /dev/null
+++ b/node_modules/flush-write-stream/LICENSE
@@ -0,0 +1,21 @@
+The MIT License (MIT)
+
+Copyright (c) 2015 Mathias Buus
+
+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/flush-write-stream/README.md b/node_modules/flush-write-stream/README.md
new file mode 100644
index 0000000..7ea7b69
--- /dev/null
+++ b/node_modules/flush-write-stream/README.md
@@ -0,0 +1,59 @@
+# flush-write-stream
+
+A write stream constructor that supports a flush function that is called before `finish` is emitted
+
+```
+npm install flush-write-stream
+```
+
+[![build status](http://img.shields.io/travis/mafintosh/flush-write-stream.svg?style=flat)](http://travis-ci.org/mafintosh/flush-write-stream)
+
+## Usage
+
+``` js
+var writer = require('flush-write-stream')
+
+var ws = writer(write, flush)
+
+ws.on('finish', function () {
+  console.log('finished')
+})
+
+ws.write('hello')
+ws.write('world')
+ws.end()
+
+function write (data, enc, cb) {
+  // i am your normal ._write method
+  console.log('writing', data.toString())
+  cb()
+}
+
+function flush (cb) {
+  // i am called before finish is emitted
+  setTimeout(cb, 1000) // wait 1 sec
+}
+```
+
+If you run the above it will produce the following output
+
+```
+writing hello
+writing world
+(nothing happens for 1 sec)
+finished
+```
+
+## API
+
+#### `var ws = writer([options], write, [flush])`
+
+Create a new writable stream. Options are forwarded to the stream constructor.
+
+#### `var ws = writer.obj([options], write, [flush])`
+
+Same as the above except `objectMode` is set to `true` per default.
+
+## License
+
+MIT
diff --git a/node_modules/flush-write-stream/example.js b/node_modules/flush-write-stream/example.js
new file mode 100644
index 0000000..fa6b5da
--- /dev/null
+++ b/node_modules/flush-write-stream/example.js
@@ -0,0 +1,22 @@
+var writer = require('./')
+
+var ws = writer(write, flush)
+
+ws.on('finish', function () {
+  console.log('finished')
+})
+
+ws.write('hello')
+ws.write('world')
+ws.end()
+
+function write (data, enc, cb) {
+  // i am your normal ._write method
+  console.log('writing', data.toString())
+  cb()
+}
+
+function flush (cb) {
+  // i am called before finish is emitted
+  setTimeout(cb, 1000) // wait 1 sec
+}
diff --git a/node_modules/flush-write-stream/index.js b/node_modules/flush-write-stream/index.js
new file mode 100644
index 0000000..d7c6209
--- /dev/null
+++ b/node_modules/flush-write-stream/index.js
@@ -0,0 +1,54 @@
+var stream = require('readable-stream')
+var inherits = require('inherits')
+
+var SIGNAL_FLUSH =(Buffer.from && Buffer.from !== Uint8Array.from)
+  ? Buffer.from([0])
+  : new Buffer([0])
+
+module.exports = WriteStream
+
+function WriteStream (opts, write, flush) {
+  if (!(this instanceof WriteStream)) return new WriteStream(opts, write, flush)
+
+  if (typeof opts === 'function') {
+    flush = write
+    write = opts
+    opts = {}
+  }
+
+  stream.Writable.call(this, opts)
+
+  this.destroyed = false
+  this._worker = write || null
+  this._flush = flush || null
+}
+
+inherits(WriteStream, stream.Writable)
+
+WriteStream.obj = function (opts, worker, flush) {
+  if (typeof opts === 'function') return WriteStream.obj(null, opts, worker)
+  if (!opts) opts = {}
+  opts.objectMode = true
+  return new WriteStream(opts, worker, flush)
+}
+
+WriteStream.prototype._write = function (data, enc, cb) {
+  if (SIGNAL_FLUSH === data) this._flush(cb)
+  else this._worker(data, enc, cb)
+}
+
+WriteStream.prototype.end = function (data, enc, cb) {
+  if (!this._flush) return stream.Writable.prototype.end.apply(this, arguments)
+  if (typeof data === 'function') return this.end(null, null, data)
+  if (typeof enc === 'function') return this.end(data, null, enc)
+  if (data) this.write(data)
+  if (!this._writableState.ending) this.write(SIGNAL_FLUSH)
+  return stream.Writable.prototype.end.call(this, cb)
+}
+
+WriteStream.prototype.destroy = function (err) {
+  if (this.destroyed) return
+  this.destroyed = true
+  if (err) this.emit('error', err)
+  this.emit('close')
+}
diff --git a/node_modules/flush-write-stream/package.json b/node_modules/flush-write-stream/package.json
new file mode 100644
index 0000000..3138557
--- /dev/null
+++ b/node_modules/flush-write-stream/package.json
@@ -0,0 +1,54 @@
+{
+  "_from": "flush-write-stream@^1.0.2",
+  "_id": "flush-write-stream@1.1.1",
+  "_inBundle": false,
+  "_integrity": "sha512-3Z4XhFZ3992uIq0XOqb9AreonueSYphE6oYbpt5+3u06JWklbsPkNv3ZKkP9Bz/r+1MWCaMoSQ28P85+1Yc77w==",
+  "_location": "/flush-write-stream",
+  "_phantomChildren": {},
+  "_requested": {
+    "type": "range",
+    "registry": true,
+    "raw": "flush-write-stream@^1.0.2",
+    "name": "flush-write-stream",
+    "escapedName": "flush-write-stream",
+    "rawSpec": "^1.0.2",
+    "saveSpec": null,
+    "fetchSpec": "^1.0.2"
+  },
+  "_requiredBy": [
+    "/lead"
+  ],
+  "_resolved": "https://registry.npmjs.org/flush-write-stream/-/flush-write-stream-1.1.1.tgz",
+  "_shasum": "8dd7d873a1babc207d94ead0c2e0e44276ebf2e8",
+  "_spec": "flush-write-stream@^1.0.2",
+  "_where": "C:\\Users\\marcr\\Desktop\\KorAp\\Git\\Kalamar\\node_modules\\lead",
+  "author": {
+    "name": "Mathias Buus",
+    "url": "@mafintosh"
+  },
+  "bugs": {
+    "url": "https://github.com/mafintosh/flush-write-stream/issues"
+  },
+  "bundleDependencies": false,
+  "dependencies": {
+    "inherits": "^2.0.3",
+    "readable-stream": "^2.3.6"
+  },
+  "deprecated": false,
+  "description": "A write stream constructor that supports a flush function that is called before finish is emitted",
+  "devDependencies": {
+    "tape": "^4.2.2"
+  },
+  "homepage": "https://github.com/mafintosh/flush-write-stream",
+  "license": "MIT",
+  "main": "index.js",
+  "name": "flush-write-stream",
+  "repository": {
+    "type": "git",
+    "url": "git+https://github.com/mafintosh/flush-write-stream.git"
+  },
+  "scripts": {
+    "test": "tape test.js"
+  },
+  "version": "1.1.1"
+}
diff --git a/node_modules/flush-write-stream/test.js b/node_modules/flush-write-stream/test.js
new file mode 100644
index 0000000..6cd0c20
--- /dev/null
+++ b/node_modules/flush-write-stream/test.js
@@ -0,0 +1,85 @@
+var tape = require('tape')
+var writer = require('./')
+
+tape('is a write stream', function (t) {
+  var expected = ['hello', 'world', 'verden']
+  var ws = writer.obj(write)
+
+  ws.write('hello')
+  ws.write('world')
+  ws.write('verden')
+  ws.end(function () {
+    t.same(expected.length, 0)
+    t.end()
+  })
+
+  function write (data, enc, cb) {
+    t.same(data, expected.shift())
+    cb()
+  }
+})
+
+tape('is flushable', function (t) {
+  var expected = ['hello', 'world', 'verden']
+  var flushed = false
+
+  var ws = writer.obj(write, flush)
+
+  ws.write('hello')
+  ws.write('world')
+  ws.write('verden')
+  ws.end(function () {
+    t.same(expected.length, 0)
+    t.ok(flushed, 'was flushed')
+    t.end()
+  })
+
+  function write (data, enc, cb) {
+    t.same(data, expected.shift())
+    cb()
+  }
+
+  function flush (cb) {
+    flushed = true
+    process.nextTick(cb)
+  }
+})
+
+tape('can pass options', function (t) {
+  var expected = ['hello', 'world', 'verden']
+  var flushed = false
+
+  var ws = writer({objectMode: true}, write, flush)
+
+  ws.write('hello')
+  ws.write('world')
+  ws.write('verden')
+  ws.end(function () {
+    t.same(expected.length, 0)
+    t.ok(flushed, 'was flushed')
+    t.end()
+  })
+
+  function write (data, enc, cb) {
+    t.same(data, expected.shift())
+    cb()
+  }
+
+  function flush (cb) {
+    flushed = true
+    process.nextTick(cb)
+  }
+})
+
+tape('emits error on destroy', function (t) {
+  var expected = new Error()
+
+  var ws = writer({objectMode: true}, function () {})
+
+  ws.on('error', function (err) {
+    t.equal(err, expected)
+  })
+  ws.on('close', t.end)
+
+  ws.destroy(expected)
+})