Demo for query storing

Change-Id: I947bcac841992c3f6cfd01ab337c265b0d01cb70
diff --git a/node_modules/grunt-terser/Gruntfile.js b/node_modules/grunt-terser/Gruntfile.js
new file mode 100644
index 0000000..fa17b8c
--- /dev/null
+++ b/node_modules/grunt-terser/Gruntfile.js
@@ -0,0 +1,73 @@
+/*
+ * grunt-terser
+ * https://github.com/adascal/grunt-terser
+ *
+ * Copyright (c) 2018 Alexandr Dascal
+ * Licensed under the MIT license.
+ */
+
+'use strict';
+
+module.exports = function(grunt) {
+
+  // Project configuration.
+  grunt.initConfig({
+    jshint: {
+      all: [
+        'Gruntfile.js',
+        'tasks/*.js',
+        '<%= nodeunit.tests %>'
+      ],
+      options: {
+        jshintrc: '.jshintrc'
+      }
+    },
+
+    // Before generating any new files, remove any previously-created files.
+    clean: {
+      tests: ['tmp']
+    },
+
+    // Configuration to be run (and then tested).
+    terser: {
+      default_options: {
+        options: {
+        },
+        files: {
+          'tmp/default_options': ['test/fixtures/testing', 'test/fixtures/123']
+        }
+      },
+      custom_options: {
+        options: {
+          separator: ': ',
+          punctuation: ' !!!'
+        },
+        files: {
+          'tmp/custom_options': ['test/fixtures/testing', 'test/fixtures/123']
+        }
+      }
+    },
+
+    // Unit tests.
+    nodeunit: {
+      tests: ['test/*_test.js']
+    }
+
+  });
+
+  // Actually load this plugin's task(s).
+  grunt.loadTasks('tasks');
+
+  // These plugins provide necessary tasks.
+  grunt.loadNpmTasks('grunt-contrib-jshint');
+  grunt.loadNpmTasks('grunt-contrib-clean');
+  grunt.loadNpmTasks('grunt-contrib-nodeunit');
+
+  // Whenever the "test" task is run, first clean the "tmp" dir, then run this
+  // plugin's task(s), then test the result.
+  grunt.registerTask('test', ['clean', 'terser', 'nodeunit']);
+
+  // By default, lint and run all tests.
+  grunt.registerTask('default', ['jshint', 'test']);
+
+};