Demo for query storing
Change-Id: I947bcac841992c3f6cfd01ab337c265b0d01cb70
diff --git a/node_modules/grunt-legacy-log-utils/README.md b/node_modules/grunt-legacy-log-utils/README.md
new file mode 100644
index 0000000..aa10daf
--- /dev/null
+++ b/node_modules/grunt-legacy-log-utils/README.md
@@ -0,0 +1,6 @@
+# grunt-legacy-log-utils
+> Static methods for the Grunt 0.4.x logger.
+
+[](https://travis-ci.org/gruntjs/grunt-legacy-log-utils)
+[](https://ci.appveyor.com/project/gruntjs/grunt-legacy-log-utils)
+[](http://gruntjs.com/)
diff --git a/node_modules/grunt-legacy-log-utils/index.js b/node_modules/grunt-legacy-log-utils/index.js
new file mode 100644
index 0000000..2b72907
--- /dev/null
+++ b/node_modules/grunt-legacy-log-utils/index.js
@@ -0,0 +1,115 @@
+/*
+ * grunt
+ * http://gruntjs.com/
+ *
+ * Copyright (c) 2016 "Cowboy" Ben Alman
+ * Licensed under the MIT license.
+ * https://github.com/gruntjs/grunt/blob/master/LICENSE-MIT
+ */
+
+'use strict';
+
+var chalk = require('chalk');
+var _ = require('lodash');
+
+// Pretty-format a word list.
+exports.wordlist = function(arr, options) {
+ options = _.defaults(options || {}, {
+ separator: ', ',
+ color: 'cyan'
+ });
+ return arr.map(function(item) {
+ return options.color ? chalk[options.color](item) : item;
+ }).join(options.separator);
+};
+
+// Return a string, uncolored (suitable for testing .length, etc).
+exports.uncolor = function(str) {
+ return str.replace(/\x1B\[\d+m/g, '');
+};
+
+// Word-wrap text to a given width, permitting ANSI color codes.
+exports.wraptext = function(width, text) {
+ // notes to self:
+ // grab 1st character or ansi code from string
+ // if ansi code, add to array and save for later, strip from front of string
+ // if character, add to array and increment counter, strip from front of string
+ // if width + 1 is reached and current character isn't space:
+ // slice off everything after last space in array and prepend it to string
+ // etc
+
+ // This result array will be joined on \n.
+ var result = [];
+ var matches, color, tmp;
+ var captured = [];
+ var charlen = 0;
+
+ while (matches = text.match(/(?:(\x1B\[\d+m)|\n|(.))([\s\S]*)/)) {
+ // Updated text to be everything not matched.
+ text = matches[3];
+
+ // Matched a color code?
+ if (matches[1]) {
+ // Save last captured color code for later use.
+ color = matches[1];
+ // Capture color code.
+ captured.push(matches[1]);
+ continue;
+
+ // Matched a non-newline character?
+ } else if (matches[2]) {
+ // If this is the first character and a previous color code was set, push
+ // that onto the captured array first.
+ if (charlen === 0 && color) { captured.push(color); }
+ // Push the matched character.
+ captured.push(matches[2]);
+ // Increment the current charlen.
+ charlen++;
+ // If not yet at the width limit or a space was matched, continue.
+ if (charlen <= width || matches[2] === ' ') { continue; }
+ // The current charlen exceeds the width and a space wasn't matched.
+ // "Roll everything back" until the last space character.
+ tmp = captured.lastIndexOf(' ');
+ text = captured.slice(tmp === -1 ? tmp : tmp + 1).join('') + text;
+ captured = captured.slice(0, tmp);
+ }
+
+ // The limit has been reached. Push captured string onto result array.
+ result.push(captured.join(''));
+
+ // Reset captured array and charlen.
+ captured = [];
+ charlen = 0;
+ }
+
+ result.push(captured.join(''));
+ return result.join('\n');
+};
+
+// Format output into columns, wrapping words as-necessary.
+exports.table = function(widths, texts) {
+ var rows = [];
+ widths.forEach(function(width, i) {
+ var lines = this.wraptext(width, texts[i]).split('\n');
+ lines.forEach(function(line, j) {
+ var row = rows[j];
+ if (!row) { row = rows[j] = []; }
+ row[i] = line;
+ });
+ }, this);
+
+ var lines = [];
+ rows.forEach(function(row) {
+ var txt = '';
+ var column;
+ for (var i = 0; i < row.length; i++) {
+ column = row[i] || '';
+ txt += column;
+ var diff = widths[i] - this.uncolor(column).length;
+ if (diff > 0) { txt += _.repeat(' ', diff); }
+ }
+ lines.push(txt);
+ }, this);
+
+ return lines.join('\n');
+};
diff --git a/node_modules/grunt-legacy-log-utils/package.json b/node_modules/grunt-legacy-log-utils/package.json
new file mode 100644
index 0000000..5d7705e
--- /dev/null
+++ b/node_modules/grunt-legacy-log-utils/package.json
@@ -0,0 +1,68 @@
+{
+ "_from": "grunt-legacy-log-utils@~2.1.0",
+ "_id": "grunt-legacy-log-utils@2.1.0",
+ "_inBundle": false,
+ "_integrity": "sha512-lwquaPXJtKQk0rUM1IQAop5noEpwFqOXasVoedLeNzaibf/OPWjKYvvdqnEHNmU+0T0CaReAXIbGo747ZD+Aaw==",
+ "_location": "/grunt-legacy-log-utils",
+ "_phantomChildren": {},
+ "_requested": {
+ "type": "range",
+ "registry": true,
+ "raw": "grunt-legacy-log-utils@~2.1.0",
+ "name": "grunt-legacy-log-utils",
+ "escapedName": "grunt-legacy-log-utils",
+ "rawSpec": "~2.1.0",
+ "saveSpec": null,
+ "fetchSpec": "~2.1.0"
+ },
+ "_requiredBy": [
+ "/grunt-legacy-log"
+ ],
+ "_resolved": "https://registry.npmjs.org/grunt-legacy-log-utils/-/grunt-legacy-log-utils-2.1.0.tgz",
+ "_shasum": "49a8c7dc74051476dcc116c32faf9db8646856ef",
+ "_spec": "grunt-legacy-log-utils@~2.1.0",
+ "_where": "C:\\Users\\marcr\\Desktop\\KorAp\\Git\\Kalamar\\node_modules\\grunt-legacy-log",
+ "author": {
+ "name": "\"Cowboy\" Ben Alman",
+ "url": "http://benalman.com/"
+ },
+ "bugs": {
+ "url": "http://github.com/gruntjs/grunt-legacy-log-utils/issues"
+ },
+ "bundleDependencies": false,
+ "dependencies": {
+ "chalk": "~4.1.0",
+ "lodash": "~4.17.19"
+ },
+ "deprecated": false,
+ "description": "Static methods for the Grunt 0.4.x logger.",
+ "devDependencies": {
+ "grunt": "~1.2.1",
+ "grunt-cli": "~1.3.2",
+ "grunt-contrib-jshint": "~2.1.0",
+ "grunt-contrib-nodeunit": "~2.1.0",
+ "grunt-contrib-watch": "~1.1.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "files": [
+ "index.js"
+ ],
+ "homepage": "http://gruntjs.com/",
+ "keywords": [
+ "grunt",
+ "legacy"
+ ],
+ "license": "MIT",
+ "main": "index.js",
+ "name": "grunt-legacy-log-utils",
+ "repository": {
+ "type": "git",
+ "url": "git://github.com/gruntjs/grunt-legacy-log-utils.git"
+ },
+ "scripts": {
+ "test": "grunt test"
+ },
+ "version": "2.1.0"
+}