Demo for query storing

Change-Id: I947bcac841992c3f6cfd01ab337c265b0d01cb70
diff --git a/node_modules/source-map-url/.jshintrc b/node_modules/source-map-url/.jshintrc
new file mode 100644
index 0000000..8f33293
--- /dev/null
+++ b/node_modules/source-map-url/.jshintrc
@@ -0,0 +1,43 @@
+{
+  "bitwise": true,
+  "camelcase": true,
+  "curly": false,
+  "eqeqeq": true,
+  "es3": true,
+  "forin": true,
+  "immed": false,
+  "indent": false,
+  "latedef": "nofunc",
+  "newcap": false,
+  "noarg": true,
+  "noempty": true,
+  "nonew": false,
+  "plusplus": false,
+  "quotmark": false,
+  "undef": true,
+  "unused": "vars",
+  "strict": false,
+  "trailing": true,
+  "maxparams": 5,
+  "maxdepth": false,
+  "maxstatements": false,
+  "maxcomplexity": false,
+  "maxlen": 100,
+
+  "asi": true,
+  "expr": true,
+  "globalstrict": true,
+  "smarttabs": true,
+  "sub": true,
+
+  "node": true,
+  "globals": {
+    "describe": false,
+    "it": false,
+    "before": false,
+    "beforeEach": false,
+    "after": false,
+    "afterEach": false,
+    "define": false
+  }
+}
diff --git a/node_modules/source-map-url/LICENSE b/node_modules/source-map-url/LICENSE
new file mode 100644
index 0000000..10052a9
--- /dev/null
+++ b/node_modules/source-map-url/LICENSE
@@ -0,0 +1,21 @@
+The MIT License (MIT)
+
+Copyright (c) 2014 Simon Lydell
+
+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/source-map-url/bower.json b/node_modules/source-map-url/bower.json
new file mode 100644
index 0000000..9831b7c
--- /dev/null
+++ b/node_modules/source-map-url/bower.json
@@ -0,0 +1,20 @@
+{
+  "name": "source-map-url",
+  "version": "0.4.0",
+  "author": "Simon Lydell",
+  "license": "MIT",
+  "description": "Tools for working with sourceMappingURL comments.",
+  "keywords": [
+    "source map",
+    "sourceMappingURL",
+    "comment",
+    "annotation"
+  ],
+  "main": "source-map-url.js",
+  "authors": [
+    "Simon Lydell"
+  ],
+  "ignore": [
+    ".*"
+  ]
+}
\ No newline at end of file
diff --git a/node_modules/source-map-url/changelog.md b/node_modules/source-map-url/changelog.md
new file mode 100644
index 0000000..e291a7f
--- /dev/null
+++ b/node_modules/source-map-url/changelog.md
@@ -0,0 +1,52 @@
+### Version 0.4.0 (2015-11-12) ###
+
+- Changed: sourceMappingURL comments used to be matched only when placed at
+  the end of the script. However, since several commonly used JavaScript
+  libraries do not follow this convention and all popular web browsers accept
+  non-trailing comments, this has been revised.
+
+  So now non-trailing SourceMappingURL comments are matched as well.
+
+
+### Version 0.3.0 (2014-08-16) ###
+
+- Changed: sourceMappingURL comments used to be matched only if they appeared
+  on their own line. However, the spec only says:
+
+  > The generated code may include a line at the end of the source, with the following form:
+  >
+  >     //# sourceMappingURL=<url>
+
+  So now they are matched also when they appear on the same line as code.
+
+- Removed: The `.set()` method. I couldn’t decide how it should work
+  considering the above change. Moreover, it was unnecessarily complex (and
+  would have gotten worse) for very little gain. It is much easier to run
+  `.remove()` if needed, and then simply `code += "\n//# sourceMappingURL=" +
+  url` (using the appropriate comment syntax and newline). KISS.
+
+- Changed: The `.insertBefore()` method now always inserts the string exactly
+  before the sourceMappingURL comment; not before the newline before the
+  comment (if any). Moreover, it does not ensure that the comment will be on a
+  new line anymore. This is up to the caller. KISS.
+
+- Changed: The `.remove()` method no longer removes the newline before the
+  sourceMappingURL (if any).
+
+- Changed: Renamed `.get()` to `.getFrom()`.
+- Changed: Renamed `.remove()` to `.removeFrom()`.
+
+- Added: The `.existsIn()` method.
+
+
+### Version 0.2.0 (2014-02-23) ###
+
+- Changed: A space is no longer inserted before the closing comment syntax. If
+  such a space is desired, it needs to be put in the closing comment syntax
+  itself (such as `["/*", " */"]` instead of `["/*", "*/"]`). (Backwards
+  incompatible change.)
+
+
+### Version 0.1.0 (2014-02-22) ###
+
+- Initial release.
diff --git a/node_modules/source-map-url/component.json b/node_modules/source-map-url/component.json
new file mode 100644
index 0000000..11d569c
--- /dev/null
+++ b/node_modules/source-map-url/component.json
@@ -0,0 +1,18 @@
+{
+  "name": "source-map-url",
+  "version": "0.4.0",
+  "author": "Simon Lydell",
+  "license": "MIT",
+  "description": "Tools for working with sourceMappingURL comments.",
+  "keywords": [
+    "source map",
+    "sourceMappingURL",
+    "comment",
+    "annotation"
+  ],
+  "main": "source-map-url.js",
+  "repo": "lydell/source-map-url",
+  "scripts": [
+    "source-map-url.js"
+  ]
+}
diff --git a/node_modules/source-map-url/package.json b/node_modules/source-map-url/package.json
new file mode 100644
index 0000000..a79d175
--- /dev/null
+++ b/node_modules/source-map-url/package.json
@@ -0,0 +1,73 @@
+{
+  "_from": "source-map-url@^0.4.0",
+  "_id": "source-map-url@0.4.0",
+  "_inBundle": false,
+  "_integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=",
+  "_location": "/source-map-url",
+  "_phantomChildren": {},
+  "_requested": {
+    "type": "range",
+    "registry": true,
+    "raw": "source-map-url@^0.4.0",
+    "name": "source-map-url",
+    "escapedName": "source-map-url",
+    "rawSpec": "^0.4.0",
+    "saveSpec": null,
+    "fetchSpec": "^0.4.0"
+  },
+  "_requiredBy": [
+    "/source-map-resolve"
+  ],
+  "_resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz",
+  "_shasum": "3e935d7ddd73631b97659956d55128e87b5084a3",
+  "_spec": "source-map-url@^0.4.0",
+  "_where": "C:\\Users\\marcr\\Desktop\\KorAp\\Git\\Kalamar\\node_modules\\source-map-resolve",
+  "author": {
+    "name": "Simon Lydell"
+  },
+  "bugs": {
+    "url": "https://github.com/lydell/source-map-url/issues"
+  },
+  "bundleDependencies": false,
+  "deprecated": false,
+  "description": "Tools for working with sourceMappingURL comments.",
+  "devDependencies": {
+    "expect.js": "~0.3.1",
+    "jshint": "~2.4.3",
+    "mocha": "~1.17.1"
+  },
+  "homepage": "https://github.com/lydell/source-map-url#readme",
+  "keywords": [
+    "source map",
+    "sourceMappingURL",
+    "comment",
+    "annotation"
+  ],
+  "license": "MIT",
+  "main": "source-map-url.js",
+  "name": "source-map-url",
+  "repository": {
+    "type": "git",
+    "url": "git+https://github.com/lydell/source-map-url.git"
+  },
+  "scripts": {
+    "lint": "jshint source-map-url.js test/ ",
+    "test": "npm run lint && npm run unit",
+    "unit": "mocha"
+  },
+  "testling": {
+    "harness": "mocha",
+    "files": "test/*.js",
+    "browsers": [
+      "ie/8..latest",
+      "chrome/latest",
+      "firefox/latest",
+      "opera/12",
+      "opera/latest",
+      "safari/5",
+      "iphone/6",
+      "android-browser/4"
+    ]
+  },
+  "version": "0.4.0"
+}
diff --git a/node_modules/source-map-url/readme.md b/node_modules/source-map-url/readme.md
new file mode 100644
index 0000000..216de5e
--- /dev/null
+++ b/node_modules/source-map-url/readme.md
@@ -0,0 +1,97 @@
+Overview [![Build Status](https://travis-ci.org/lydell/source-map-url.png?branch=master)](https://travis-ci.org/lydell/source-map-url)
+========
+
+[![browser support](https://ci.testling.com/lydell/source-map-url.png)](https://ci.testling.com/lydell/source-map-url)
+
+Tools for working with sourceMappingURL comments.
+
+```js
+var sourceMappingURL = require("source-map-url")
+
+var code = [
+  "!function(){...}();",
+  "/*# sourceMappingURL=foo.js.map */"
+].join("\n")
+
+sourceMappingURL.existsIn(code)
+// true
+
+sourceMappingURL.getFrom(code)
+// foo.js.map
+
+code = sourceMappingURL.insertBefore(code, "// License: MIT\n")
+// !function(){...}();
+// // License: MIT
+// /*# sourceMappingURL=foo.js.map */
+
+code = sourceMappingURL.removeFrom(code)
+// !function(){...}();
+// // License: MIT
+
+sourceMappingURL.existsIn(code)
+// false
+
+sourceMappingURL.getFrom(code)
+// null
+
+code += "//# sourceMappingURL=/other/file.js.map"
+// !function(){...}();
+// // License: MIT
+// //# sourceMappingURL=/other/file.js.map
+```
+
+
+Installation
+============
+
+- `npm install source-map-url`
+- `bower install source-map-url`
+- `component install lydell/source-map-url`
+
+Works with CommonJS, AMD and browser globals, through UMD.
+
+
+Usage
+=====
+
+### `sourceMappingURL.getFrom(code)` ###
+
+Returns the url of the sourceMappingURL comment in `code`. Returns `null` if
+there is no such comment.
+
+### `sourceMappingURL.existsIn(code)` ###
+
+Returns `true` if there is a sourceMappingURL comment in `code`, or `false`
+otherwise.
+
+### `sourceMappingURL.removeFrom(code)` ###
+
+Removes the sourceMappingURL comment in `code`. Does nothing if there is no
+such comment. Returns the updated `code`.
+
+### `sourceMappingURL.insertBefore(code, string)` ###
+
+Inserts `string` before the sourceMappingURL comment in `code`. Appends
+`string` to `code` if there is no such comment.
+
+Lets you append something to a file without worrying about burying the
+sourceMappingURL comment (by keeping it at the end of the file).
+
+### `sourceMappingURL.regex` ###
+
+The regex that is used to match sourceMappingURL comments. It matches both `//`
+and `/**/` comments, thus supporting both JavaScript and CSS.
+
+
+Tests
+=====
+
+Start by running `npm test`, which lints the code and runs the test suite in Node.js.
+
+To run the tests in a browser, run `testling` (`npm install -g testling`) or `testling -u`.
+
+
+License
+=======
+
+[The X11 (“MIT”) License](LICENSE).
diff --git a/node_modules/source-map-url/source-map-url.js b/node_modules/source-map-url/source-map-url.js
new file mode 100644
index 0000000..1724cb7
--- /dev/null
+++ b/node_modules/source-map-url/source-map-url.js
@@ -0,0 +1,57 @@
+// Copyright 2014 Simon Lydell
+// X11 (“MIT”) Licensed. (See LICENSE.)
+
+void (function(root, factory) {
+  if (typeof define === "function" && define.amd) {
+    define(factory)
+  } else if (typeof exports === "object") {
+    module.exports = factory()
+  } else {
+    root.sourceMappingURL = factory()
+  }
+}(this, function() {
+
+  var innerRegex = /[#@] sourceMappingURL=([^\s'"]*)/
+
+  var regex = RegExp(
+    "(?:" +
+      "/\\*" +
+      "(?:\\s*\r?\n(?://)?)?" +
+      "(?:" + innerRegex.source + ")" +
+      "\\s*" +
+      "\\*/" +
+      "|" +
+      "//(?:" + innerRegex.source + ")" +
+    ")" +
+    "\\s*"
+  )
+
+  return {
+
+    regex: regex,
+    _innerRegex: innerRegex,
+
+    getFrom: function(code) {
+      var match = code.match(regex)
+      return (match ? match[1] || match[2] || "" : null)
+    },
+
+    existsIn: function(code) {
+      return regex.test(code)
+    },
+
+    removeFrom: function(code) {
+      return code.replace(regex, "")
+    },
+
+    insertBefore: function(code, string) {
+      var match = code.match(regex)
+      if (match) {
+        return code.slice(0, match.index) + string + code.slice(match.index)
+      } else {
+        return code + string
+      }
+    }
+  }
+
+}));
diff --git a/node_modules/source-map-url/test/source-map-url.js b/node_modules/source-map-url/test/source-map-url.js
new file mode 100644
index 0000000..630bc86
--- /dev/null
+++ b/node_modules/source-map-url/test/source-map-url.js
@@ -0,0 +1,402 @@
+// Copyright 2014 Simon Lydell
+// X11 (“MIT”) Licensed. (See LICENSE.)
+
+var expect = require("expect.js")
+
+var sourceMappingURL = require("../")
+
+var comments = {
+
+  universal: [
+    "/*# sourceMappingURL=foo.js.map */"
+  ],
+
+  js: [
+    "//# sourceMappingURL=foo.js.map"
+  ],
+
+  block: [
+    "/*",
+    "# sourceMappingURL=foo.js.map",
+    "*/"
+  ],
+
+  mix: [
+    "/*",
+    "//# sourceMappingURL=foo.js.map",
+    "*/"
+  ]
+
+}
+
+var nonTrailingComments = {
+
+  jsLeading: {
+    contents: [
+      "//# sourceMappingURL=foo.js.map",
+      "(function(){})"
+    ],
+    solution: [
+      "(function(){})"
+    ]
+  },
+
+  mixEmbedded: {
+    contents: [
+      "/*! Library Name v1.0.0",
+      "//# sourceMappingURL=foo.js.map",
+      "*/",
+      "(function(){})"
+    ],
+    solution: [
+      "/*! Library Name v1.0.0",
+      "*/",
+      "(function(){})"
+    ]
+  }
+
+}
+
+function forEachComment(fn) {
+  forOf(comments, function(name, comment) {
+    var description = "the '" + name + "' syntax with "
+    fn(comment.join("\n"),   description + "regular newlines")
+    fn(comment.join("\r\n"), description + "Windows newlines")
+  })
+}
+
+function forEachNonTrailingComment(fn) {
+  forOf(nonTrailingComments, function(name, comment) {
+
+    var description = "the '" + name + "' syntax with "
+
+    fn({
+      contents: comment.contents.join("\n"),
+      solution: comment.solution.join("\n")
+    }, description + "regular newlines")
+
+    fn({
+      contents: comment.contents.join("\r\n"),
+      solution: comment.solution.join("\r\n")
+    }, description + "Windows newlines")
+  })
+}
+
+function forOf(obj, fn) {
+  for (var key in obj) {
+    if (Object.prototype.hasOwnProperty.call(obj, key)) {
+      fn(key, obj[key])
+    }
+  }
+}
+
+
+describe("sourceMappingURL", function() {
+
+  describe(".getFrom", function() {
+
+    forEachComment(function(comment, description) {
+
+      it("gets the url from " + description, function() {
+        expect(sourceMappingURL.getFrom("code\n" + comment))
+          .to.equal("foo.js.map")
+
+        expect(sourceMappingURL.getFrom("code" + comment))
+          .to.equal("foo.js.map")
+
+        expect(sourceMappingURL.getFrom(comment))
+          .to.equal("foo.js.map")
+      })
+
+    })
+
+    forEachNonTrailingComment(function(comment, description) {
+
+      it("gets the url from " + description, function() {
+        expect(sourceMappingURL.getFrom("code\n" + comment.contents))
+          .to.equal("foo.js.map")
+
+        expect(sourceMappingURL.getFrom("code" + comment.contents))
+          .to.equal("foo.js.map")
+
+        expect(sourceMappingURL.getFrom(comment.contents))
+          .to.equal("foo.js.map")
+      })
+
+    })
+
+
+    it("returns null if no comment", function() {
+      expect(sourceMappingURL.getFrom("code"))
+        .to.equal(null)
+    })
+
+
+    it("can return an empty string as url", function() {
+      expect(sourceMappingURL.getFrom("/*# sourceMappingURL= */"))
+        .to.equal("")
+    })
+
+
+    it("is detachable", function() {
+      var get = sourceMappingURL.getFrom
+      expect(get("/*# sourceMappingURL=foo */"))
+        .to.equal("foo")
+    })
+
+  })
+
+
+  describe(".existsIn", function() {
+
+    forEachComment(function(comment, description) {
+
+      it("returns true for " + description, function() {
+        expect(sourceMappingURL.existsIn("code\n" + comment))
+          .to.equal(true)
+
+        expect(sourceMappingURL.existsIn("code" + comment))
+          .to.equal(true)
+
+        expect(sourceMappingURL.existsIn(comment))
+          .to.equal(true)
+      })
+
+    })
+
+    forEachNonTrailingComment(function(comment, description) {
+
+      it("returns true for " + description, function() {
+        expect(sourceMappingURL.existsIn("code\n" + comment.contents))
+          .to.equal(true)
+
+        expect(sourceMappingURL.existsIn("code" + comment.contents))
+          .to.equal(true)
+
+        expect(sourceMappingURL.existsIn(comment.contents))
+          .to.equal(true)
+      })
+
+    })
+
+
+    it("returns false if no comment", function() {
+      expect(sourceMappingURL.existsIn("code"))
+        .to.equal(false)
+    })
+
+
+    it("is detachable", function() {
+      var has = sourceMappingURL.existsIn
+      expect(has("/*# sourceMappingURL=foo */"))
+        .to.equal(true)
+    })
+
+  })
+
+
+  describe(".removeFrom", function() {
+
+    forEachComment(function(comment, description) {
+
+      it("removes the comment for " + description, function() {
+        expect(sourceMappingURL.removeFrom("code\n" + comment))
+          .to.equal("code\n")
+
+        expect(sourceMappingURL.removeFrom("code" + comment))
+          .to.equal("code")
+
+        expect(sourceMappingURL.removeFrom(comment))
+          .to.equal("")
+      })
+
+    })
+
+    forEachNonTrailingComment(function(comment, description) {
+
+      it("removes the comment for " + description, function() {
+        expect(sourceMappingURL.removeFrom("code\n" + comment.contents))
+          .to.equal("code\n" + comment.solution)
+
+        expect(sourceMappingURL.removeFrom("code" + comment.contents))
+          .to.equal("code" + comment.solution)
+
+        expect(sourceMappingURL.removeFrom(comment.contents))
+          .to.equal(comment.solution)
+      })
+
+    })
+
+
+    it("does nothing if no comment", function() {
+      expect(sourceMappingURL.removeFrom("code\n"))
+        .to.equal("code\n")
+    })
+
+
+    it("is detachable", function() {
+      var remove = sourceMappingURL.removeFrom
+      expect(remove("/*# sourceMappingURL=foo */"))
+        .to.equal("")
+    })
+
+  })
+
+
+  describe(".insertBefore", function() {
+
+    forEachComment(function(comment, description) {
+
+      it("inserts a string before the comment for " + description, function() {
+        expect(sourceMappingURL.insertBefore("code\n" + comment, "more code\n"))
+          .to.equal("code\nmore code\n" + comment)
+
+        expect(sourceMappingURL.insertBefore("code" + comment, "\nmore code"))
+          .to.equal("code\nmore code" + comment)
+
+        expect(sourceMappingURL.insertBefore(comment, "some code"))
+          .to.equal("some code" + comment)
+      })
+
+    })
+
+
+    it("inserts a string before an embedded comment", function() {
+      expect(sourceMappingURL.insertBefore("/*! Library Name v1.0.0\n" +
+        "//# sourceMappingURL=foo.js.map\n*/\n(function(){})", "code\n"))
+        .to.equal("/*! Library Name v1.0.0\ncode\n" +
+          "//# sourceMappingURL=foo.js.map\n*/\n(function(){})")
+    })
+
+
+    it("inserts a string before a leading comment", function() {
+      expect(sourceMappingURL.insertBefore("//# sourceMappingURL=foo.js.map\n" +
+        "(function(){})", "code\n"))
+        .to.equal("code\n//# sourceMappingURL=foo.js.map\n" +
+          "(function(){})")
+    })
+
+
+    it("appends if no comment", function() {
+      expect(sourceMappingURL.insertBefore("code", "\nmore code"))
+        .to.equal("code\nmore code")
+    })
+
+
+    it("is detachable", function() {
+      var insertBefore = sourceMappingURL.insertBefore
+      expect(insertBefore("/*# sourceMappingURL=foo */", "bar"))
+        .to.equal("bar/*# sourceMappingURL=foo */")
+    })
+
+  })
+
+
+  describe(".regex", function() {
+
+    it("includes ._innerRegex", function() {
+      expect(sourceMappingURL.regex.source)
+        .to.contain(sourceMappingURL._innerRegex.source)
+    })
+
+
+    var match = function(code) {
+      expect(code)
+        .to.match(sourceMappingURL.regex)
+    }
+
+    var noMatch = function(code) {
+      expect(code)
+        .not.to.match(sourceMappingURL.regex)
+    }
+
+
+    forEachComment(function(comment, description) {
+
+      it("matches " + description, function() {
+        match("code\n" + comment)
+        match("code" + comment)
+        match(comment)
+      })
+
+
+      it("matches " + description + ", with trailing whitespace", function() {
+        match(comment + "  ")
+        match(comment + "\n")
+        match(comment + "\n\n\t\n    \t  ")
+      })
+
+    })
+
+
+    it("does not match some cases that are easy to mess up", function() {
+      noMatch(
+        "/* # sourceMappingURL=foo */"
+      )
+
+      noMatch(
+        "// # sourceMappingURL=foo"
+      )
+    })
+
+
+    it("is liberal regarding inner whitespace", function() {
+      match(
+        "/*# sourceMappingURL=foo*/"
+      )
+
+      match(
+        "/*# sourceMappingURL=foo    */"
+      )
+
+      match(
+        "/*# sourceMappingURL=foo   \t\n" +
+        "*/"
+      )
+
+      match(
+        "/*    \n" +
+        "# sourceMappingURL=foo\n" +
+        "*/"
+      )
+
+      match(
+        "/*\n" +
+        "# sourceMappingURL=foo\n" +
+        "     */"
+      )
+
+      match(
+        "/*\n" +
+        "# sourceMappingURL=foo\n" +
+        "\n" +
+        "\t\n" +
+        "*/"
+      )
+    })
+
+  })
+
+
+  describe("._innerRegex", function() {
+
+    it("matches the contents of sourceMappingURL comments", function() {
+      expect("# sourceMappingURL=http://www.example.com/foo/bar.js.map")
+        .to.match(sourceMappingURL._innerRegex)
+    })
+
+
+    it("captures the url in the first capture group", function() {
+      expect(sourceMappingURL._innerRegex.exec("# sourceMappingURL=foo")[1])
+        .to.equal("foo")
+    })
+
+
+    it("supports the legacy syntax", function() {
+      expect("@ sourceMappingURL=http://www.example.com/foo/bar.js.map")
+        .to.match(sourceMappingURL._innerRegex)
+    })
+
+  })
+
+})
diff --git a/node_modules/source-map-url/x-package.json5 b/node_modules/source-map-url/x-package.json5
new file mode 100644
index 0000000..bdcd6ae
--- /dev/null
+++ b/node_modules/source-map-url/x-package.json5
@@ -0,0 +1,55 @@
+{
+  name: "source-map-url",
+  version: "0.4.0",
+  author: "Simon Lydell",
+  license: "MIT",
+  description: "Tools for working with sourceMappingURL comments.",
+  keywords: [
+    "source map",
+    "sourceMappingURL",
+    "comment",
+    "annotation"
+  ],
+  main: "source-map-url.js",
+  overlay: {
+    npm: {
+      repository: "lydell/source-map-url",
+      scripts: {
+        lint: "jshint source-map-url.js test/ ",
+        unit: "mocha",
+        test: "npm run lint && npm run unit"
+      },
+      devDependencies: {
+        "mocha": "~1.17.1",
+        "expect.js": "~0.3.1",
+        "jshint": "~2.4.3"
+      },
+      testling: {
+        harness: "mocha",
+        files: "test/*.js",
+        browsers: [
+          "ie/8..latest",
+          "chrome/latest",
+          "firefox/latest",
+          "opera/12",
+          "opera/latest",
+          "safari/5",
+          "iphone/6",
+          "android-browser/4"
+        ]
+      }
+    },
+    component: {
+      repo: "lydell/source-map-url",
+      scripts: [
+        "source-map-url.js"
+      ]
+    },
+    bower: {
+      authors: ["Simon Lydell"],
+      ignore: [
+        ".*"
+      ]
+    }
+  }
+}