Date: Wed, 30 Nov 2016 17:42:08 -0500
Subject: [PATCH 51/77] Add query URL resolution function
_getQueryUrl() now gets the query url ('foo/q') from the base URL, which is
now the one users are expected to pass in
---
curious.js | 44 ++++++++++++++++++++++++++++++-----
tests/curious_client.js | 51 +++++++++++++++++++++++++++++++++++++++++
2 files changed, 89 insertions(+), 6 deletions(-)
diff --git a/curious.js b/curious.js
index 57c63da..e003b9e 100644
--- a/curious.js
+++ b/curious.js
@@ -4,13 +4,13 @@
*
* @module curious
*/
-(function (global, factory) {
+(function _umd(global, factory) {
// UMD Format for exports. Works with all module systems: AMD/RequireJS, CommonJS, and global
var mod;
// AMD
if (typeof define === 'function' && define.amd) {
- define(['exports'], factory);
+ define('curious', ['exports'], factory);
} else if (typeof exports !== 'undefined') {
factory(exports);
} else {
@@ -1319,14 +1319,43 @@
});
}
+ /**
+ * Determine the query endpoint URL from the base URL: add in the query endpoint '/q/' if the URL
+ * does not already include it, and make sure the URL ends in a '/'.
+ *
+ * @param {string} url The base URL, maybe also including the query endpoint
+ *
+ * @return {string} The fully formed query URL, ending in a '/'.
+ */
+ function _getQueryUrl(url) {
+ var queryUrl = url;
+
+ // Ensure that we end with a '/'
+ if (!queryUrl.endsWith('/')) {
+ queryUrl += '/';
+ }
+
+ // Ensure that if the last component was not '/q/', it is now;
+ if (!queryUrl.endsWith('/q/')) {
+ queryUrl += 'q/';
+ }
+
+ return queryUrl;
+ }
+
+
/**
* Tool for making a curious query and returning parsed objects
*
* @class
* @alias module:curious.CuriousClient
*
- * @param {!string} curiousURL
- * The URL of the Curious server
+ * @param {!string} curiousUrl
+ * The URL of the Curious server. The query is sent to curiousUrl + '/q/'
.
+ *
+ * XXX: For compatability with legacy clients, the /q/
is not added if
+ * curiousUrl
has a 'q' as its last path element. However, new code should not
+ * rely on this behavior.
* @param {function (string, Object): Promise} request
* A function that makes a POST
request and returns a Promise
* (a thenable)--examples are jQuery.post
,
@@ -1350,8 +1379,11 @@
* @return {CuriousClient}
* A client object with a single performQuery method
*/
- function CuriousClient(curiousURL, request, clientDefaultArgs, quiet, camelCase) {
+ function CuriousClient(curiousUrl, request, clientDefaultArgs, quiet, camelCase) {
return {
+ /** The URL to query */
+ queryUrl: _getQueryUrl(curiousUrl),
+
/**
* Perform a Curious query and return back parsed objects.
*
@@ -1466,7 +1498,7 @@
args = _getArgs(params, clientDefaultArgs);
args.q = q.replace('\n', ' ');
- return request(curiousURL, args)
+ return request(this.queryUrl, args)
.then(function (response) {
var parsedResult = CuriousObjects.parse(
relationships,
diff --git a/tests/curious_client.js b/tests/curious_client.js
index bb7e546..2b16c88 100644
--- a/tests/curious_client.js
+++ b/tests/curious_client.js
@@ -23,6 +23,57 @@
srv.close(done);
});
+ describe('#queryUrl', function () {
+ function _queryUrl(baseUrl) { return new curious.CuriousClient(baseUrl).queryUrl; }
+
+ it('should add "/q/" to url paths', function () {
+ expect(_queryUrl('foobar.com/curious')).to.equal('foobar.com/curious/q/');
+ expect(_queryUrl('foobar.com/curious/')).to.equal('foobar.com/curious/q/');
+ });
+
+ it('should add "/q/" to server urls', function () {
+ expect(_queryUrl('curious.foobar.com')).to.equal('curious.foobar.com/q/');
+ expect(_queryUrl('curious.foobar.com/')).to.equal('curious.foobar.com/q/');
+ });
+
+ it('should add "/q/" to local urls', function () {
+ expect(_queryUrl('curious/')).to.equal('curious/q/');
+ expect(_queryUrl('curious')).to.equal('curious/q/');
+ expect(_queryUrl('/curious/')).to.equal('/curious/q/');
+ expect(_queryUrl('/curious')).to.equal('/curious/q/');
+ });
+
+ it('should add "/q/" to empty urls', function () {
+ expect(_queryUrl('')).to.equal('/q/');
+ expect(_queryUrl('/')).to.equal('/q/');
+ expect(_queryUrl('//')).to.equal('//q/');
+ });
+
+ it('should not add extra "/q/"s to url paths', function () {
+ expect(_queryUrl('foobar.com/curious/q')).to.equal('foobar.com/curious/q/');
+ expect(_queryUrl('foobar.com/curious/q/')).to.equal('foobar.com/curious/q/');
+ });
+
+ it('should not add extra "/q/"s to server urls', function () {
+ expect(_queryUrl('curious.foobar.com/q')).to.equal('curious.foobar.com/q/');
+ expect(_queryUrl('curious.foobar.com/q/')).to.equal('curious.foobar.com/q/');
+ });
+
+ it('should not add extra "/q/"s to local urls', function () {
+ expect(_queryUrl('curious/')).to.equal('curious/q/');
+ expect(_queryUrl('curious')).to.equal('curious/q/');
+ expect(_queryUrl('/curious/')).to.equal('/curious/q/');
+ expect(_queryUrl('/curious')).to.equal('/curious/q/');
+ });
+
+ it('should not add extra "/q/" to "q" urls', function () {
+ expect(_queryUrl('/q')).to.equal('/q/');
+ expect(_queryUrl('/q/')).to.equal('/q/');
+ expect(_queryUrl('//q')).to.equal('//q/');
+ expect(_queryUrl('//q/')).to.equal('//q/');
+ });
+ });
+
describe('#performQuery', function () {
it('should work with axios', function (done) {
var requestFunctions;
From 775736aecac22b7b3c1c44274271f0b03ff48690 Mon Sep 17 00:00:00 2001
From: Misha Wolfson
Date: Wed, 30 Nov 2016 17:44:01 -0500
Subject: [PATCH 52/77] Include .eslintrc.yaml in the Docker image
So that ESLint tests pass
---
Dockerfile | 4 +++-
docker-compose.yml | 1 +
2 files changed, 4 insertions(+), 1 deletion(-)
diff --git a/Dockerfile b/Dockerfile
index ae0ac21..f3cd5e2 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -8,7 +8,6 @@ ENV LAST_UPDATE 2016-09-30
ENV CURIOUS_JS_DIR /usr/src/curious-js
WORKDIR $CURIOUS_JS_DIR
-# Set Chrome script to run in non-sandbox mode
COPY package.json .
RUN npm install
@@ -16,5 +15,8 @@ COPY curious.js .
COPY scripts ./scripts
COPY tests ./tests
+# Development files
+COPY .eslintrc.yaml .
+
ENTRYPOINT ["npm", "run"]
CMD ["test"]
diff --git a/docker-compose.yml b/docker-compose.yml
index 5d53ab7..f491732 100644
--- a/docker-compose.yml
+++ b/docker-compose.yml
@@ -5,6 +5,7 @@ services:
context: .
dockerfile: Dockerfile
volumes:
+ - ./.eslintrc.yaml:/usr/src/curious-js/.eslintrc.yaml
- ./curious.js:/usr/src/curious-js/curious.js
- ./scripts:/usr/src/curious-js/scripts
- ./tests:/usr/src/curious-js/tests
From d73bc6888d032a74ca52f20194c04ce4be7e8562 Mon Sep 17 00:00:00 2001
From: Misha Wolfson
Date: Wed, 30 Nov 2016 17:57:43 -0500
Subject: [PATCH 53/77] Update README to reflect changes
---
README.md | 59 +++++++++++++++++++++++++++++++++++++++++++------------
1 file changed, 46 insertions(+), 13 deletions(-)
diff --git a/README.md b/README.md
index 404b353..5a09bb5 100644
--- a/README.md
+++ b/README.md
@@ -20,23 +20,33 @@ default name `curious`) in whatever system you are using.
There are two main parts to using Curious from Javascript: `CuriousClient`,
and `CuriousQuery`.
-First, create an instance of `CuriousClient` that points to your Curious server. You are responsible
-for picking and using a request method that works for you. `CuriousClient` provides some convenience
-wrappers, but you can make any asynchronous transport layer work by passing a custom function as the
-second parameter to the client constructor. Note that if you're using jQuery, `jQuery.post` does not
-require any wrapping and can be passed as the second parameter directly.
+First, create an instance of `CuriousClient` that points to your Curious server, providing a
+server URL and a request function.
+
+_The server URL provided to the client should point to the Curious root endpoint, **not** to the
+query endpoint (`/q/`)on the server_. The code will not break if you make this mistake, but the
+behavior is deprecated.
+
+You must also provide a request method. You are responsible for picking and using a request
+method/transport layer that works for you. `CuriousClient` provides convenience wrappers for
+common request methods, but you can make any asynchronous transport layer work by passing a custom
+function as the second parameter to the client constructor. The function must take the URL as its
+first parameter and an object payload as its second parameter, make a `POST` request to the curious
+server, and return a Promise (or any thenable) that resolves to the JSON data returned by the
+server. Note that if you're using jQuery, `jQuery.post` does not require any wrapping and can be
+passed as the second parameter directly.
```javascript
-// example using Axios
+// Example using Axios
var curiousClient = new curious.CuriousClient(CURIOUS_URL, curious.CuriousClient.wrappers.axios(axios), ...);
-// example using a custom request method
+// Example using a custom request method
var curiousClient = new curious.CuriousClient(CURIOUS_URL, function (url, data) {
return new Promise(function (resolve, reject) {
var result;
var error;
- // perform some asynchronous access
+ // Perform some asynchronous access
if (error) {
reject(error);
@@ -50,7 +60,7 @@ var curiousClient = new curious.CuriousClient(CURIOUS_URL, function (url, data)
Then, construct a `CuriousQuery` and perform it on the server using the client. Attach any callbacks
to the Promise object returned by the `perform` method, or directly to the query object. They will
be executed in the order they were attached, before any callbacks attached later. The results of the
-query will be passed to the callback.
+query will be passed to the first callback.
Here's a trivial example. The results, of course, depend on the schema on the Curious server; the
example uses a made up schema consiting of Document and Section entities in a 1:many relationship.
@@ -229,14 +239,37 @@ CuriousObject {
sections: [Object] } ] }
```
-The API is explained in detail in the documentation.
+The API is explained in detail in the documentation.
## Development
-This project provides a basic Dockerfile that builds a Docker container capable of running unit
-tests. To run the tests, bring up the container with `docker-compose up`.
+Development is carried out through an included Docker environment.
+
+### Docker
+
+The project provides a Dockerfile that builds a container capable of running the unit tests and
+scripts. To run the tests, bring up the container with `docker-compose up`. Any of the scripts shown
+to be run below from a shell with `npm run` can be executed in an instance of the container with
+`docker-compose run --rm [script name]`.
+
+### REPL
+
+A script that opens up a node.js REPL and loads curious.js as `curious` is provided with
+`npm run repl`.
### Test framework
The tests are written in [mocha](https://mochajs.org/), with [chai](http://chaijs.com/) expect-style
-assertions.
+assertions. Tests can be run with `npm test`.
+
+Coding conventions and linting are enforced at the unit test level, but can also be run
+independently with `npm run lint`.
+
+### Documentation
+
+Any new code added to `curious.js` must be documented in a manner consistent with existing
+documentation.
+
+JSDoc documentation can be generated into the `doc/` subdirectory from the source code and README
+with `npm run make_doc`. It can be updated on the project website automatically with `npm run
+release_doc`.
From e1edef83b3b2698e397b8b38be77590a03314612 Mon Sep 17 00:00:00 2001
From: Misha Wolfson
Date: Wed, 30 Nov 2016 23:03:00 -0500
Subject: [PATCH 54/77] Add Travis CI support
---
.travis.yml | 7 +++++++
README.md | 2 ++
2 files changed, 9 insertions(+)
create mode 100644 .travis.yml
diff --git a/.travis.yml b/.travis.yml
new file mode 100644
index 0000000..4edd519
--- /dev/null
+++ b/.travis.yml
@@ -0,0 +1,7 @@
+language: node_js
+node_js:
+ - node
+
+cache:
+ directories:
+ - node_modules
diff --git a/README.md b/README.md
index 5a09bb5..eb96104 100644
--- a/README.md
+++ b/README.md
@@ -2,6 +2,8 @@
JavaScript consumer code for Curious APIs.
+[![Build Status](https://travis-ci.org/ginkgobioworks/curious-js.svg?branch=master)](https://travis-ci.org/ginkgobioworks/curious-js)
+
## Usage
### Installation
From cbcb0b09f3334f1ab80f9075bfd008c0ba8634de Mon Sep 17 00:00:00 2001
From: Misha Wolfson
Date: Wed, 30 Nov 2016 23:28:39 -0500
Subject: [PATCH 55/77] Update build badge in README
---
README.md | 4 +---
1 file changed, 1 insertion(+), 3 deletions(-)
diff --git a/README.md b/README.md
index eb96104..1915e18 100644
--- a/README.md
+++ b/README.md
@@ -1,8 +1,6 @@
# curious-js
-JavaScript consumer code for Curious APIs.
-
-[![Build Status](https://travis-ci.org/ginkgobioworks/curious-js.svg?branch=master)](https://travis-ci.org/ginkgobioworks/curious-js)
+JavaScript consumer code for Curious APIs. [![Build Status](https://travis-ci.org/ginkgobioworks/curious-js.svg?branch=v2)](https://travis-ci.org/ginkgobioworks/curious-js)
## Usage
From df158caf92709e5ad2e2b34a71267fc971933981 Mon Sep 17 00:00:00 2001
From: Misha Wolfson
Date: Wed, 30 Nov 2016 23:37:21 -0500
Subject: [PATCH 56/77] Bump version to 2.4.0
---
bower.json | 2 +-
package.json | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/bower.json b/bower.json
index 6e033f7..8161301 100644
--- a/bower.json
+++ b/bower.json
@@ -20,7 +20,7 @@
}
],
"homepage": "http://ginkgobioworks.github.io/curious-js",
- "version": "2.3.1",
+ "version": "2.4.0",
"license": "MIT",
"ignore": [
"doc",
diff --git a/package.json b/package.json
index 9e7a535..c6937d8 100644
--- a/package.json
+++ b/package.json
@@ -21,7 +21,7 @@
],
"homepage": "http://ginkgobioworks.github.io/curious-js",
"bugs": "https://github.com/ginkgobioworks/curious-js/issues",
- "version": "2.3.1",
+ "version": "2.4.0",
"license": "MIT",
"ignore": [
"bower.json",
From 20c413ffbc4ba5a549cab4982544d904511ed55d Mon Sep 17 00:00:00 2001
From: Korei Klein
Date: Thu, 8 Dec 2016 15:52:34 -0500
Subject: [PATCH 57/77] Bind the post method of axios.
---
curious.js | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/curious.js b/curious.js
index e003b9e..d8dd596 100644
--- a/curious.js
+++ b/curious.js
@@ -1568,7 +1568,7 @@
// If the module provided has a `post` method, use that. Otherwise,
// just call the "module" itself: this allows passing in either
// $http or $http.post, for example
- postRequestFunction = mod.post || mod;
+ postRequestFunction = mod.post.bind(mod) || mod;
// axios/angular return the server's response nested within an object
// (response.data); here we return a tiny filter function to pull that
From 3eae6d82a25169ef6653efc9b47bb9cd221a6973 Mon Sep 17 00:00:00 2001
From: Korei Klein
Date: Thu, 8 Dec 2016 16:43:27 -0500
Subject: [PATCH 58/77] Check whether to call bind more carefully.
---
curious.js | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/curious.js b/curious.js
index d8dd596..d6caeb9 100644
--- a/curious.js
+++ b/curious.js
@@ -1568,7 +1568,7 @@
// If the module provided has a `post` method, use that. Otherwise,
// just call the "module" itself: this allows passing in either
// $http or $http.post, for example
- postRequestFunction = mod.post.bind(mod) || mod;
+ postRequestFunction = mod.post ? mod.post.bind(mod) : mod;
// axios/angular return the server's response nested within an object
// (response.data); here we return a tiny filter function to pull that
From a14141fb9dd566384d18091a51915b59266ebb42 Mon Sep 17 00:00:00 2001
From: Misha Wolfson
Date: Fri, 9 Dec 2016 19:21:32 -0500
Subject: [PATCH 59/77] Add NPM deployment to TravisCI setup
---
.travis.yml | 16 ++++++++++++----
1 file changed, 12 insertions(+), 4 deletions(-)
diff --git a/.travis.yml b/.travis.yml
index 4edd519..e00230d 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -1,7 +1,15 @@
language: node_js
node_js:
- - node
-
+- node
cache:
- directories:
- - node_modules
+ directories:
+ - node_modules
+deploy:
+ provider: npm
+ email: misha@ginkgobioworks.com
+ api_key:
+ secure: RaHu9nAQUkPyp6LZ2mEvD5zbdXeHIZrP20iTT4N5kl3kB8BmXQBVphJ4rkcmdRYT13JZIlXzIvqWE8QdK+PmapOIWaGJ4t5XQ0Hjrqm5iUutDzvkypKBl6R44SlhIAp4KwWbEHeDkVZnhHZFirhgJMADbROBvBxTYAORab2zMmWWP1QbtLNjZ0RA1GPfM4KA+XVQsNwKTvlVZDQN8pptVsxfLI+MpDkGiZbq2zs0m5MUzMRVit2yN+HbSKCZRNU46cVFkA0SaDKTShHbydFvFLCgIQrOei+GzLu0PQXyjFLyz+lgkEdRgEp6bjC+ZrpU3vDKMnzo0pucpa8LTfUFxua/OLV6MVBcjB6/BeifMyd9R9yDfZcxlePSwyiiwWdR79bWnQckrN+jf5RaUk03GVmn6oo2zXK8kFZKIQw9rYfBKyisN5I9apqEyOmGQU7Uk6oqcUU8rYAsSp+8FQ9pcPXd2PXj9HkjzakGPWutHlb+5EKRy2pjX/G2EuJUhVzs4f3TPuAEfNnG/mz5TaMU7T1XpaZ0NQ5yTgr0NRNt2lgLV5Zej6sqkE3evMEGwtC1GSkbWO3kaigBVDi3Ys09fOUzRBZebaO63exzwqVKA15D4gAsaNoReh9eelhOix4PYvlnb4huxgy1Jf5SuNSjHblAm8I2UoTAl4MRle940fQ=
+ on:
+ tags: true
+ repo: ginkgobioworks/curious-js
+ branch: v2
From 744ccf9253f450cb36156eabf05e481ce86bcfdd Mon Sep 17 00:00:00 2001
From: Misha Wolfson
Date: Fri, 9 Dec 2016 20:03:11 -0500
Subject: [PATCH 60/77] Remove version field from bower.json, since it is now
deprecated
Bower only uses git tags for versioning, as described in the
[spec](https://github.com/bower/spec/blob/master/json.md#version)
---
bower.json | 1 -
1 file changed, 1 deletion(-)
diff --git a/bower.json b/bower.json
index 8161301..8dde939 100644
--- a/bower.json
+++ b/bower.json
@@ -20,7 +20,6 @@
}
],
"homepage": "http://ginkgobioworks.github.io/curious-js",
- "version": "2.4.0",
"license": "MIT",
"ignore": [
"doc",
From f59fd9c02807f33121a3aa1b9f1d4bb02866b365 Mon Sep 17 00:00:00 2001
From: Misha Wolfson
Date: Fri, 9 Dec 2016 20:04:31 -0500
Subject: [PATCH 61/77] Bump version to 2.4.1
---
package.json | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/package.json b/package.json
index c6937d8..bba666d 100644
--- a/package.json
+++ b/package.json
@@ -21,7 +21,7 @@
],
"homepage": "http://ginkgobioworks.github.io/curious-js",
"bugs": "https://github.com/ginkgobioworks/curious-js/issues",
- "version": "2.4.0",
+ "version": "2.4.1",
"license": "MIT",
"ignore": [
"bower.json",
From 97ab94af41715d0dcd01494af0ebee04d395005a Mon Sep 17 00:00:00 2001
From: Misha Wolfson
Date: Fri, 9 Dec 2016 20:56:22 -0500
Subject: [PATCH 62/77] Update and fix bower/npm ignore globs
---
.npmignore | 8 ++++++++
bower.json | 10 +++++-----
package.json | 6 ------
3 files changed, 13 insertions(+), 11 deletions(-)
create mode 100644 .npmignore
diff --git a/.npmignore b/.npmignore
new file mode 100644
index 0000000..915d119
--- /dev/null
+++ b/.npmignore
@@ -0,0 +1,8 @@
+.*
+Dockerfile
+bower.json
+bower_components
+docker-compose.yml
+node_modules
+scripts
+tests
diff --git a/bower.json b/bower.json
index 8dde939..2bee2be 100644
--- a/bower.json
+++ b/bower.json
@@ -22,13 +22,13 @@
"homepage": "http://ginkgobioworks.github.io/curious-js",
"license": "MIT",
"ignore": [
+ ".*",
+ "Dockerfile",
"doc",
- "scripts",
- "tests",
+ "docker-compose.yml",
"package.json",
- "**/.*",
- "Dockerfile",
- "docker-compose.yml"
+ "scripts",
+ "tests"
],
"main": "./curious.js",
"dependencies": {
diff --git a/package.json b/package.json
index bba666d..ef84021 100644
--- a/package.json
+++ b/package.json
@@ -23,12 +23,6 @@
"bugs": "https://github.com/ginkgobioworks/curious-js/issues",
"version": "2.4.1",
"license": "MIT",
- "ignore": [
- "bower.json",
- "**/.*",
- "Dockerfile",
- "docker-compose.yml"
- ],
"main": "./curious.js",
"scripts": {
"lint": "./scripts/lint",
From 1f8ff007d99071f8029b20bead7845ce0f2a01d2 Mon Sep 17 00:00:00 2001
From: Misha Wolfson
Date: Fri, 9 Dec 2016 20:57:50 -0500
Subject: [PATCH 63/77] Bump version to 2.4.2
---
package.json | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/package.json b/package.json
index ef84021..0a040c3 100644
--- a/package.json
+++ b/package.json
@@ -21,7 +21,7 @@
],
"homepage": "http://ginkgobioworks.github.io/curious-js",
"bugs": "https://github.com/ginkgobioworks/curious-js/issues",
- "version": "2.4.1",
+ "version": "2.4.2",
"license": "MIT",
"main": "./curious.js",
"scripts": {
From 90d06a8c198d30f17bf2952d679ed08a5ea354ea Mon Sep 17 00:00:00 2001
From: Misha Wolfson
Date: Sat, 10 Dec 2016 04:58:55 -0500
Subject: [PATCH 64/77] Clean up JSDoc
---
curious.js | 11 +++++++++--
1 file changed, 9 insertions(+), 2 deletions(-)
diff --git a/curious.js b/curious.js
index d6caeb9..ebddf3e 100644
--- a/curious.js
+++ b/curious.js
@@ -1,8 +1,9 @@
/* global define */
/**
- * Module for curious client-side query construction and JSON parsing
+ * curious.js - JavaScript consumer code for Curious APIs.
*
- * @module curious
+ * Copyright (c) 2015 Ginkgo BIoworks, Inc.
+ * @license MIT
*/
(function _umd(global, factory) {
// UMD Format for exports. Works with all module systems: AMD/RequireJS, CommonJS, and global
@@ -22,6 +23,12 @@
global.curious = mod.exports;
}
})(this, function _curiousUmdFactory(exports) {
+ /**
+ * Curious JavaScript client and query construction
+ *
+ * @module curious
+ */
+
'use strict';
// For node.js and CommonJS
From dacf213346fb7c14f0099a3a356e05ae65d4b682 Mon Sep 17 00:00:00 2001
From: Misha Wolfson
Date: Sat, 10 Dec 2016 05:00:37 -0500
Subject: [PATCH 65/77] Document CI setup
---
README.md | 26 +++++++++++++++++---------
1 file changed, 17 insertions(+), 9 deletions(-)
diff --git a/README.md b/README.md
index 1915e18..3a23647 100644
--- a/README.md
+++ b/README.md
@@ -1,12 +1,15 @@
# curious-js
-JavaScript consumer code for Curious APIs. [![Build Status](https://travis-ci.org/ginkgobioworks/curious-js.svg?branch=v2)](https://travis-ci.org/ginkgobioworks/curious-js)
+JavaScript consumer code for Curious APIs.
+
+[![Build Status](https://travis-ci.org/ginkgobioworks/curious-js.svg?branch=v2)](https://travis-ci.org/ginkgobioworks/curious-js)
## Usage
### Installation
-`curious-js` is available both from [bower](https://bower.io/search/?q=curious-js) and from [npm](https://www.npmjs.com/package/curious-js).
+`curious-js` is available both from [bower](https://bower.io/search/?q=curious-js) and from
+[npm](https://www.npmjs.com/package/curious-js).
### Importing
@@ -17,14 +20,13 @@ default name `curious`) in whatever system you are using.
### Using
-There are two main parts to using Curious from Javascript: `CuriousClient`,
-and `CuriousQuery`.
+There are two main parts to using Curious from JavaScript: `CuriousClient` and `CuriousQuery`.
First, create an instance of `CuriousClient` that points to your Curious server, providing a
server URL and a request function.
_The server URL provided to the client should point to the Curious root endpoint, **not** to the
-query endpoint (`/q/`)on the server_. The code will not break if you make this mistake, but the
+query endpoint (`/q/`) on the server_. The code will not break if you make this mistake, but the
behavior is deprecated.
You must also provide a request method. You are responsible for picking and using a request
@@ -243,7 +245,13 @@ The API is explained in detail in the documentation.
## Development
-Development is carried out through an included Docker environment.
+Development is carried out through an included Docker environment and Travis CI.
+
+### CI
+
+Continuous integration is performed with [Travis CI](https://travis-ci.org/ginkgobioworks/curious-js).
+Any tagged commits on the main branch (v2), which update bower by default, are also automatically
+deployed to NPM.
### Docker
@@ -254,7 +262,7 @@ to be run below from a shell with `npm run` can be executed in an instance of th
### REPL
-A script that opens up a node.js REPL and loads curious.js as `curious` is provided with
+A script that opens up a node.js REPL and loads curious.js as `curious` is available via
`npm run repl`.
### Test framework
@@ -262,8 +270,8 @@ A script that opens up a node.js REPL and loads curious.js as `curious` is provi
The tests are written in [mocha](https://mochajs.org/), with [chai](http://chaijs.com/) expect-style
assertions. Tests can be run with `npm test`.
-Coding conventions and linting are enforced at the unit test level, but can also be run
-independently with `npm run lint`.
+Coding conventions and linting are enforced at the unit test level but can also be run independently
+with `npm run lint`.
### Documentation
From d800f2851e797e2fa78c790be190179cce955098 Mon Sep 17 00:00:00 2001
From: Misha Wolfson
Date: Sat, 10 Dec 2016 05:06:46 -0500
Subject: [PATCH 66/77] Clean up scripts
---
package.json | 10 ++++++----
scripts/lint | 10 ----------
scripts/make_doc | 4 ++--
scripts/release_doc | 5 ++++-
scripts/run_tests | 12 ------------
5 files changed, 12 insertions(+), 29 deletions(-)
delete mode 100755 scripts/lint
delete mode 100755 scripts/run_tests
diff --git a/package.json b/package.json
index 0a040c3..303bcec 100644
--- a/package.json
+++ b/package.json
@@ -25,12 +25,14 @@
"license": "MIT",
"main": "./curious.js",
"scripts": {
- "lint": "./scripts/lint",
+ "test": "mocha tests",
+ "prepublish": "npm run make_doc",
+ "postpublish": "npm run release_doc",
+
+ "lint": "eslint curious.js tests && echo OK",
"make_doc": "./scripts/make_doc",
- "prepublish": "./scripts/make_doc",
"release_doc": "./scripts/release_doc",
- "repl": "./scripts/repl",
- "test": "./scripts/run_tests"
+ "repl": "./scripts/repl"
},
"dependencies": {},
"devDependencies": {
diff --git a/scripts/lint b/scripts/lint
deleted file mode 100755
index 1802c7e..0000000
--- a/scripts/lint
+++ /dev/null
@@ -1,10 +0,0 @@
-#!/bin/bash
-set -e
-
-# lint - run ESLint on the code
-
-cd "`dirname $0`/.."
-
-./node_modules/.bin/eslint "$@" curious.js tests && echo OK
-
-cd - 1>/dev/null
diff --git a/scripts/make_doc b/scripts/make_doc
index 4ef032b..40c73a6 100755
--- a/scripts/make_doc
+++ b/scripts/make_doc
@@ -8,6 +8,6 @@ cd "`dirname $0`/.."
mkdir -p doc
rm -rf doc/*
-./node_modules/.bin/jsdoc --destination doc curious.js README.md "$@"
+jsdoc --destination doc curious.js README.md "$@"
-cd -
+cd - 1>/dev/null
diff --git a/scripts/release_doc b/scripts/release_doc
index 1d2b6d7..fdae6eb 100755
--- a/scripts/release_doc
+++ b/scripts/release_doc
@@ -1,7 +1,10 @@
-#!/bin/bash -e -x
+#!/bin/bash
# release_doc - generate JSDoc for the project and push it to GitHub Pages
+set -e
+set -x
+
cd "`dirname $0`/.."
archivepath=`mktemp`
diff --git a/scripts/run_tests b/scripts/run_tests
deleted file mode 100755
index b64faaf..0000000
--- a/scripts/run_tests
+++ /dev/null
@@ -1,12 +0,0 @@
-#!/bin/bash
-
-set -e
-set -x
-
-# run_tests: run the entire project's test suite
-
-cd "`dirname $0`/.."
-
-NODE_PATH=lib:. ./node_modules/.bin/mocha tests
-
-cd -
From c09258e6000f61188712dfb1a34ecd2a5729feb3 Mon Sep 17 00:00:00 2001
From: Misha Wolfson
Date: Sat, 10 Dec 2016 05:14:21 -0500
Subject: [PATCH 67/77] Improve README
---
README.md | 21 +++++++++++++++++----
1 file changed, 17 insertions(+), 4 deletions(-)
diff --git a/README.md b/README.md
index 3a23647..37aa976 100644
--- a/README.md
+++ b/README.md
@@ -247,15 +247,28 @@ The API is explained in detail in the documentation.
Development is carried out through an included Docker environment and Travis CI.
-### CI
+
+### Gotchas
+
+For historic reasons, since some repos still need to use Curious v 1.0, the `master` branch still
+points there, and the current version, the _default_ branch, points to `v2`. Eventually this will be
+resolved.
+
+### CI build and deployment
Continuous integration is performed with [Travis CI](https://travis-ci.org/ginkgobioworks/curious-js).
-Any tagged commits on the main branch (v2), which update bower by default, are also automatically
-deployed to NPM.
+Any tagged commits on the main branch (v2), update bower by default and are automatically deployed to
+NPM through the CI `deploy` task.
+
+To deploy the code:
+
+1. Get on the default branch `git checkout v2` [*not master*]
+2. Bump the version: `npm version [type]`
+3. Push to the origin with tags: `git push && git push --tags`
### Docker
-The project provides a Dockerfile that builds a container capable of running the unit tests and
+The project also provides a Dockerfile that builds a container capable of running the unit tests and
scripts. To run the tests, bring up the container with `docker-compose up`. Any of the scripts shown
to be run below from a shell with `npm run` can be executed in an instance of the container with
`docker-compose run --rm [script name]`.
From ea814761facedb5f0f3ac25431cc457dc56916fc Mon Sep 17 00:00:00 2001
From: Misha Wolfson
Date: Sat, 10 Dec 2016 05:16:50 -0500
Subject: [PATCH 68/77] Add default messge for version bumps
---
.npmrc | 1 +
1 file changed, 1 insertion(+)
create mode 100644 .npmrc
diff --git a/.npmrc b/.npmrc
new file mode 100644
index 0000000..ff972fe
--- /dev/null
+++ b/.npmrc
@@ -0,0 +1 @@
+message=Bump version to %s
From 8cc3c87d6feb0e3905c35a2e3a2e951bf33dcb9b Mon Sep 17 00:00:00 2001
From: Misha Wolfson
Date: Sat, 10 Dec 2016 05:17:35 -0500
Subject: [PATCH 69/77] Bump version to 2.4.3
---
package.json | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
diff --git a/package.json b/package.json
index 303bcec..23587ba 100644
--- a/package.json
+++ b/package.json
@@ -21,14 +21,13 @@
],
"homepage": "http://ginkgobioworks.github.io/curious-js",
"bugs": "https://github.com/ginkgobioworks/curious-js/issues",
- "version": "2.4.2",
+ "version": "2.4.3",
"license": "MIT",
"main": "./curious.js",
"scripts": {
"test": "mocha tests",
"prepublish": "npm run make_doc",
"postpublish": "npm run release_doc",
-
"lint": "eslint curious.js tests && echo OK",
"make_doc": "./scripts/make_doc",
"release_doc": "./scripts/release_doc",
From d92b7a5d6a69af520f3f6bb97a7c3bc22b53569d Mon Sep 17 00:00:00 2001
From: Misha Wolfson
Date: Tue, 7 Feb 2017 04:09:49 -0500
Subject: [PATCH 70/77] Fix query cleanup
Line breaks were not properly being removed: global replace
must use a regexp, not a plain string
---
curious.js | 2 +-
package.json | 1 +
tests/curious_client.js | 36 ++++++++++++++++++++++++++++++++++++
3 files changed, 38 insertions(+), 1 deletion(-)
diff --git a/curious.js b/curious.js
index ebddf3e..d1cae1b 100644
--- a/curious.js
+++ b/curious.js
@@ -1503,7 +1503,7 @@
}
args = _getArgs(params, clientDefaultArgs);
- args.q = q.replace('\n', ' ');
+ args.q = q.replace(/\n+/g, ' ');
return request(this.queryUrl, args)
.then(function (response) {
diff --git a/package.json b/package.json
index 23587ba..2699b73 100644
--- a/package.json
+++ b/package.json
@@ -38,6 +38,7 @@
"axios": "~0.5.4",
"babel-eslint": "^7.1.1",
"chai": "~2.3.0",
+ "es6-promise": "^4.0.5",
"eslint-config-airbnb-es5": "^1.1.0",
"eslint-plugin-react": "^6.7.1",
"jsdoc": "~3.3.0",
diff --git a/tests/curious_client.js b/tests/curious_client.js
index 2b16c88..71abe38 100644
--- a/tests/curious_client.js
+++ b/tests/curious_client.js
@@ -9,6 +9,7 @@
var curious = require('../curious.js');
var examples = require('./examples.js');
var server = require('./server.js');
+ var Promise = require('es6-promise');
// TESTS
@@ -75,6 +76,41 @@
});
describe('#performQuery', function () {
+ it('should remove all line breaks', function () {
+ // Encapsulate logic for testing query processing
+ function testQueryString(original, expected) {
+ // Fake request function that tests whether or not the arguments are what we expect
+ function fakeRequest(url, args) {
+ expect(args.q).to.equal(expected);
+
+ // Must resolve to an object with a 'result' property to prevent errors in parsing
+ return Promise.resolve({ result: args });
+ }
+
+ return new curious.CuriousClient(server.url, fakeRequest, null, true).performQuery(original);
+ }
+
+ return Promise.all([
+ testQueryString('no breaks', 'no breaks'),
+ testQueryString(
+ 'break\nin the middle',
+ 'break in the middle'
+ ),
+ testQueryString(
+ 'multiple\nbreaks\nin the middle',
+ 'multiple breaks in the middle'
+ ),
+ testQueryString(
+ '\nmultiple\nbreaks\nin the middle and edges\n',
+ ' multiple breaks in the middle and edges '
+ ),
+ testQueryString(
+ 'multiple\nbreaks\n\nin a row',
+ 'multiple breaks in a row'
+ ),
+ ]);
+ });
+
it('should work with axios', function (done) {
var requestFunctions;
// Set the global axios variable to test axios wrapper defaults
From c0cd8b016a5e00dc174f652a1fdd32798ccf9afe Mon Sep 17 00:00:00 2001
From: Misha Wolfson
Date: Tue, 7 Feb 2017 04:19:56 -0500
Subject: [PATCH 71/77] Bump version to 2.4.4
---
package.json | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/package.json b/package.json
index 2699b73..89167cf 100644
--- a/package.json
+++ b/package.json
@@ -21,7 +21,7 @@
],
"homepage": "http://ginkgobioworks.github.io/curious-js",
"bugs": "https://github.com/ginkgobioworks/curious-js/issues",
- "version": "2.4.3",
+ "version": "2.4.4",
"license": "MIT",
"main": "./curious.js",
"scripts": {
From 90c4209b340e4751f24aa4d9718af128f80b9716 Mon Sep 17 00:00:00 2001
From: Misha Wolfson
Date: Tue, 7 Feb 2017 05:53:02 -0500
Subject: [PATCH 72/77] Fix query trimming
Untrimmed whitespace at the ends is also bad apparently
---
curious.js | 2 +-
tests/curious_client.js | 16 ++++++++++++++--
2 files changed, 15 insertions(+), 3 deletions(-)
diff --git a/curious.js b/curious.js
index d1cae1b..3bc7637 100644
--- a/curious.js
+++ b/curious.js
@@ -1503,7 +1503,7 @@
}
args = _getArgs(params, clientDefaultArgs);
- args.q = q.replace(/\n+/g, ' ');
+ args.q = q.replace(/\n+/g, ' ').trim();
return request(this.queryUrl, args)
.then(function (response) {
diff --git a/tests/curious_client.js b/tests/curious_client.js
index 71abe38..7e584e2 100644
--- a/tests/curious_client.js
+++ b/tests/curious_client.js
@@ -76,7 +76,7 @@
});
describe('#performQuery', function () {
- it('should remove all line breaks', function () {
+ it('should remove all line breaks and extra whitespace', function () {
// Encapsulate logic for testing query processing
function testQueryString(original, expected) {
// Fake request function that tests whether or not the arguments are what we expect
@@ -102,12 +102,24 @@
),
testQueryString(
'\nmultiple\nbreaks\nin the middle and edges\n',
- ' multiple breaks in the middle and edges '
+ 'multiple breaks in the middle and edges'
),
testQueryString(
'multiple\nbreaks\n\nin a row',
'multiple breaks in a row'
),
+ testQueryString(
+ ' extra space at the start',
+ 'extra space at the start'
+ ),
+ testQueryString(
+ 'extra space at the end ',
+ 'extra space at the end'
+ ),
+ testQueryString(
+ ' extra space at the start and end ',
+ 'extra space at the start and end'
+ ),
]);
});
From da20d22d479b8e0ca655f832dfe28dc2060cfbe8 Mon Sep 17 00:00:00 2001
From: Misha Wolfson
Date: Tue, 7 Feb 2017 05:54:12 -0500
Subject: [PATCH 73/77] Bump version to 2.4.5
---
package.json | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/package.json b/package.json
index 89167cf..e6f401c 100644
--- a/package.json
+++ b/package.json
@@ -21,7 +21,7 @@
],
"homepage": "http://ginkgobioworks.github.io/curious-js",
"bugs": "https://github.com/ginkgobioworks/curious-js/issues",
- "version": "2.4.4",
+ "version": "2.4.5",
"license": "MIT",
"main": "./curious.js",
"scripts": {
From bc5256a5478aa81ed2329151667e4bcb5a7c1611 Mon Sep 17 00:00:00 2001
From: Misha Wolfson
Date: Wed, 5 Apr 2017 23:49:29 -0400
Subject: [PATCH 74/77] Remove AMD label from 'define'
---
curious.js | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/curious.js b/curious.js
index 3bc7637..7ab6cc1 100644
--- a/curious.js
+++ b/curious.js
@@ -2,7 +2,7 @@
/**
* curious.js - JavaScript consumer code for Curious APIs.
*
- * Copyright (c) 2015 Ginkgo BIoworks, Inc.
+ * Copyright (c) 2015 Ginkgo Bioworks, Inc.
* @license MIT
*/
(function _umd(global, factory) {
@@ -11,7 +11,7 @@
// AMD
if (typeof define === 'function' && define.amd) {
- define('curious', ['exports'], factory);
+ define(['exports'], factory);
} else if (typeof exports !== 'undefined') {
factory(exports);
} else {
From e8203b4702b36ec06273e2b255d5712eda8dc1be Mon Sep 17 00:00:00 2001
From: Misha Wolfson
Date: Wed, 5 Apr 2017 23:58:33 -0400
Subject: [PATCH 75/77] Bump version to 2.4.6
---
package.json | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/package.json b/package.json
index e6f401c..6fac2dc 100644
--- a/package.json
+++ b/package.json
@@ -21,7 +21,7 @@
],
"homepage": "http://ginkgobioworks.github.io/curious-js",
"bugs": "https://github.com/ginkgobioworks/curious-js/issues",
- "version": "2.4.5",
+ "version": "2.4.6",
"license": "MIT",
"main": "./curious.js",
"scripts": {
From 25bb27e759eacc569af73d0090a95d49df3da8ea Mon Sep 17 00:00:00 2001
From: Misha Wolfson
Date: Wed, 25 Oct 2017 00:54:04 -0400
Subject: [PATCH 76/77] Remove 'method' JSDoc tags for with, catch
---
curious.js | 4 ----
1 file changed, 4 deletions(-)
diff --git a/curious.js b/curious.js
index 7ab6cc1..334d345 100644
--- a/curious.js
+++ b/curious.js
@@ -526,8 +526,6 @@
/**
* Add an outer-join term to this query.
*
- * @method with
- *
* @param {!string} termString
* The contents of the starting term
* @param {!string} relationship
@@ -693,8 +691,6 @@
* This can be useful for constructing a query object with known error-handling before
* actually executing it.
*
- * @method catch
- *
* @param {function} rejected
* A function to call when the promise is rejected (just like you would pass to
* Promise.prototype.catch)
From 28da06ebe863a286b7111163d1b8826b829ee0b9 Mon Sep 17 00:00:00 2001
From: Misha Wolfson
Date: Wed, 25 Oct 2017 01:09:16 -0400
Subject: [PATCH 77/77] Upgrade dev deps and add package-lock.json
---
package-lock.json | 1766 +++++++++++++++++++++++++++++++++++++++++++++
package.json | 16 +-
2 files changed, 1774 insertions(+), 8 deletions(-)
create mode 100644 package-lock.json
diff --git a/package-lock.json b/package-lock.json
new file mode 100644
index 0000000..cde812c
--- /dev/null
+++ b/package-lock.json
@@ -0,0 +1,1766 @@
+{
+ "name": "curious-js",
+ "version": "2.4.6",
+ "lockfileVersion": 1,
+ "requires": true,
+ "dependencies": {
+ "acorn": {
+ "version": "https://registry.npmjs.org/acorn/-/acorn-4.0.4.tgz",
+ "integrity": "sha1-F6jWp6bE71OLgU7Jq6wneSk78wo=",
+ "dev": true
+ },
+ "acorn-jsx": {
+ "version": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-3.0.1.tgz",
+ "integrity": "sha1-r9+UiPsezvyDSPb7IvRk4ypYs2s=",
+ "dev": true,
+ "requires": {
+ "acorn": "https://registry.npmjs.org/acorn/-/acorn-3.3.0.tgz"
+ },
+ "dependencies": {
+ "acorn": {
+ "version": "https://registry.npmjs.org/acorn/-/acorn-3.3.0.tgz",
+ "integrity": "sha1-ReN/s56No/JbruP/U2niu18iAXo=",
+ "dev": true
+ }
+ }
+ },
+ "ajv": {
+ "version": "https://registry.npmjs.org/ajv/-/ajv-4.11.2.tgz",
+ "integrity": "sha1-8WbDwRy8bLncwQKlvP5bcslSh+Y=",
+ "dev": true,
+ "requires": {
+ "co": "https://registry.npmjs.org/co/-/co-4.6.0.tgz",
+ "json-stable-stringify": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz"
+ }
+ },
+ "ajv-keywords": {
+ "version": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-1.5.1.tgz",
+ "integrity": "sha1-MU3QpLM2j609/NxU7eYXG4htrzw=",
+ "dev": true
+ },
+ "ansi-escapes": {
+ "version": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-1.4.0.tgz",
+ "integrity": "sha1-06ioOzGapneTZisT52HHkRQiMG4=",
+ "dev": true
+ },
+ "ansi-regex": {
+ "version": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz",
+ "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=",
+ "dev": true
+ },
+ "ansi-styles": {
+ "version": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
+ "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=",
+ "dev": true
+ },
+ "argparse": {
+ "version": "https://registry.npmjs.org/argparse/-/argparse-1.0.9.tgz",
+ "integrity": "sha1-c9g7wmP4bpf4zE9rrhsOkKfSLIY=",
+ "dev": true,
+ "requires": {
+ "sprintf-js": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz"
+ }
+ },
+ "array-union": {
+ "version": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz",
+ "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=",
+ "dev": true,
+ "requires": {
+ "array-uniq": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz"
+ }
+ },
+ "array-uniq": {
+ "version": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz",
+ "integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=",
+ "dev": true
+ },
+ "array.prototype.find": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/array.prototype.find/-/array.prototype.find-2.0.4.tgz",
+ "integrity": "sha1-VWpcU2LAhkgyPdrrnenRS8GGTJA=",
+ "dev": true,
+ "requires": {
+ "define-properties": "1.1.2",
+ "es-abstract": "1.9.0"
+ }
+ },
+ "arrify": {
+ "version": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz",
+ "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=",
+ "dev": true
+ },
+ "assertion-error": {
+ "version": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.0.0.tgz",
+ "integrity": "sha1-x/hUOP3UZrx8oWq5DIFRN5el0js=",
+ "dev": true
+ },
+ "axios": {
+ "version": "https://registry.npmjs.org/axios/-/axios-0.5.4.tgz",
+ "integrity": "sha1-4G+FIleDgTPmkJTZJcy0Gd6U/fs=",
+ "dev": true,
+ "requires": {
+ "es6-promise": "https://registry.npmjs.org/es6-promise/-/es6-promise-2.3.0.tgz"
+ },
+ "dependencies": {
+ "es6-promise": {
+ "version": "https://registry.npmjs.org/es6-promise/-/es6-promise-2.3.0.tgz",
+ "integrity": "sha1-lu258v2wGZWCKyY92KratnSBgbw=",
+ "dev": true
+ }
+ }
+ },
+ "babel-code-frame": {
+ "version": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.22.0.tgz",
+ "integrity": "sha1-AnYgvuVnqIwyVhV05/0IAdMxGOQ=",
+ "dev": true,
+ "requires": {
+ "chalk": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
+ "esutils": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz",
+ "js-tokens": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.1.tgz"
+ }
+ },
+ "babel-eslint": {
+ "version": "7.2.3",
+ "resolved": "https://registry.npmjs.org/babel-eslint/-/babel-eslint-7.2.3.tgz",
+ "integrity": "sha1-sv4tgBJkcPXBlELcdXJTqJdxCCc=",
+ "dev": true,
+ "requires": {
+ "babel-code-frame": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.22.0.tgz",
+ "babel-traverse": "6.26.0",
+ "babel-types": "6.26.0",
+ "babylon": "6.18.0"
+ }
+ },
+ "babel-messages": {
+ "version": "6.23.0",
+ "resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-6.23.0.tgz",
+ "integrity": "sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=",
+ "dev": true,
+ "requires": {
+ "babel-runtime": "6.26.0"
+ }
+ },
+ "babel-runtime": {
+ "version": "6.26.0",
+ "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz",
+ "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=",
+ "dev": true,
+ "requires": {
+ "core-js": "2.5.1",
+ "regenerator-runtime": "0.11.0"
+ }
+ },
+ "babel-traverse": {
+ "version": "6.26.0",
+ "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.26.0.tgz",
+ "integrity": "sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4=",
+ "dev": true,
+ "requires": {
+ "babel-code-frame": "6.26.0",
+ "babel-messages": "6.23.0",
+ "babel-runtime": "6.26.0",
+ "babel-types": "6.26.0",
+ "babylon": "6.18.0",
+ "debug": "2.6.9",
+ "globals": "9.18.0",
+ "invariant": "2.2.2",
+ "lodash": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz"
+ },
+ "dependencies": {
+ "babel-code-frame": {
+ "version": "6.26.0",
+ "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz",
+ "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=",
+ "dev": true,
+ "requires": {
+ "chalk": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
+ "esutils": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz",
+ "js-tokens": "3.0.2"
+ }
+ },
+ "debug": {
+ "version": "2.6.9",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+ "dev": true,
+ "requires": {
+ "ms": "2.0.0"
+ }
+ },
+ "globals": {
+ "version": "9.18.0",
+ "resolved": "https://registry.npmjs.org/globals/-/globals-9.18.0.tgz",
+ "integrity": "sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ==",
+ "dev": true
+ },
+ "js-tokens": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz",
+ "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=",
+ "dev": true
+ },
+ "ms": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+ "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
+ "dev": true
+ }
+ }
+ },
+ "babel-types": {
+ "version": "6.26.0",
+ "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz",
+ "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=",
+ "dev": true,
+ "requires": {
+ "babel-runtime": "6.26.0",
+ "esutils": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz",
+ "lodash": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz",
+ "to-fast-properties": "1.0.3"
+ }
+ },
+ "babylon": {
+ "version": "6.18.0",
+ "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz",
+ "integrity": "sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==",
+ "dev": true
+ },
+ "balanced-match": {
+ "version": "https://registry.npmjs.org/balanced-match/-/balanced-match-0.4.2.tgz",
+ "integrity": "sha1-yz8+PHMtwPAe5wtAPzAuYddwmDg=",
+ "dev": true
+ },
+ "bluebird": {
+ "version": "3.5.1",
+ "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.5.1.tgz",
+ "integrity": "sha512-MKiLiV+I1AA596t9w1sQJ8jkiSr5+ZKi0WKrYGUn6d1Fx+Ij4tIj+m2WMQSGczs5jZVxV339chE8iwk6F64wjA==",
+ "dev": true
+ },
+ "brace-expansion": {
+ "version": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.6.tgz",
+ "integrity": "sha1-cZfX6qm4fmSDkOph/GbIRCdCDfk=",
+ "dev": true,
+ "requires": {
+ "balanced-match": "https://registry.npmjs.org/balanced-match/-/balanced-match-0.4.2.tgz",
+ "concat-map": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz"
+ }
+ },
+ "buffer-shims": {
+ "version": "https://registry.npmjs.org/buffer-shims/-/buffer-shims-1.0.0.tgz",
+ "integrity": "sha1-mXjOMXOIxkmth5MCjDR37wRKi1E=",
+ "dev": true
+ },
+ "caller-path": {
+ "version": "https://registry.npmjs.org/caller-path/-/caller-path-0.1.0.tgz",
+ "integrity": "sha1-lAhe9jWB7NPaqSREqP6U6CV3dR8=",
+ "dev": true,
+ "requires": {
+ "callsites": "https://registry.npmjs.org/callsites/-/callsites-0.2.0.tgz"
+ }
+ },
+ "callsites": {
+ "version": "https://registry.npmjs.org/callsites/-/callsites-0.2.0.tgz",
+ "integrity": "sha1-r6uWJikQp/M8GaV3WCXGnzTjUMo=",
+ "dev": true
+ },
+ "catharsis": {
+ "version": "0.8.9",
+ "resolved": "https://registry.npmjs.org/catharsis/-/catharsis-0.8.9.tgz",
+ "integrity": "sha1-mMyJDKZS3S7w5ws3klMQ/56Q/Is=",
+ "dev": true,
+ "requires": {
+ "underscore-contrib": "0.3.0"
+ }
+ },
+ "chai": {
+ "version": "https://registry.npmjs.org/chai/-/chai-2.3.0.tgz",
+ "integrity": "sha1-ii9qNHSNqAEJD9cyh7Kqc5pOkJo=",
+ "dev": true,
+ "requires": {
+ "assertion-error": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.0.0.tgz",
+ "deep-eql": "https://registry.npmjs.org/deep-eql/-/deep-eql-0.1.3.tgz"
+ }
+ },
+ "chalk": {
+ "version": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
+ "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
+ "escape-string-regexp": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
+ "has-ansi": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz",
+ "strip-ansi": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
+ "supports-color": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz"
+ }
+ },
+ "circular-json": {
+ "version": "https://registry.npmjs.org/circular-json/-/circular-json-0.3.1.tgz",
+ "integrity": "sha1-vos2rvzN6LPKeqLWr8B6NyQsDS0=",
+ "dev": true
+ },
+ "cli-cursor": {
+ "version": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-1.0.2.tgz",
+ "integrity": "sha1-ZNo/fValRBLll5S9Ytw1KV6PKYc=",
+ "dev": true,
+ "requires": {
+ "restore-cursor": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-1.0.1.tgz"
+ }
+ },
+ "cli-width": {
+ "version": "https://registry.npmjs.org/cli-width/-/cli-width-2.1.0.tgz",
+ "integrity": "sha1-sjTKIJsp72b8UY2bmNWEewDt8Ao=",
+ "dev": true
+ },
+ "co": {
+ "version": "https://registry.npmjs.org/co/-/co-4.6.0.tgz",
+ "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=",
+ "dev": true
+ },
+ "code-point-at": {
+ "version": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz",
+ "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=",
+ "dev": true
+ },
+ "commander": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/commander/-/commander-2.3.0.tgz",
+ "integrity": "sha1-/UMOiJgy7DU7ms0d4hfBHLPu+HM=",
+ "dev": true
+ },
+ "concat-map": {
+ "version": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
+ "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=",
+ "dev": true
+ },
+ "concat-stream": {
+ "version": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.0.tgz",
+ "integrity": "sha1-CqxmL9Ur54lk1VMvaUeE5wEQrPc=",
+ "dev": true,
+ "requires": {
+ "inherits": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
+ "readable-stream": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.2.2.tgz",
+ "typedarray": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz"
+ }
+ },
+ "core-js": {
+ "version": "2.5.1",
+ "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.1.tgz",
+ "integrity": "sha1-rmh03GaTd4m4B1T/VCjfZoGcpQs=",
+ "dev": true
+ },
+ "core-util-is": {
+ "version": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz",
+ "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=",
+ "dev": true
+ },
+ "d": {
+ "version": "https://registry.npmjs.org/d/-/d-0.1.1.tgz",
+ "integrity": "sha1-2hhMU10Y2O57oqoim5FACfrhEwk=",
+ "dev": true,
+ "requires": {
+ "es5-ext": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.12.tgz"
+ }
+ },
+ "debug": {
+ "version": "https://registry.npmjs.org/debug/-/debug-2.6.0.tgz",
+ "integrity": "sha1-vFlryr52F/Edn6FTYe3tVgi4SZs=",
+ "dev": true,
+ "requires": {
+ "ms": "https://registry.npmjs.org/ms/-/ms-0.7.2.tgz"
+ }
+ },
+ "deep-eql": {
+ "version": "https://registry.npmjs.org/deep-eql/-/deep-eql-0.1.3.tgz",
+ "integrity": "sha1-71WKyrjeJSBs1xOQbXTlaTDrafI=",
+ "dev": true,
+ "requires": {
+ "type-detect": "https://registry.npmjs.org/type-detect/-/type-detect-0.1.1.tgz"
+ }
+ },
+ "deep-is": {
+ "version": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz",
+ "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=",
+ "dev": true
+ },
+ "define-properties": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.2.tgz",
+ "integrity": "sha1-g6c/L+pWmJj7c3GTyPhzyvbUXJQ=",
+ "dev": true,
+ "requires": {
+ "foreach": "2.0.5",
+ "object-keys": "1.0.11"
+ }
+ },
+ "del": {
+ "version": "https://registry.npmjs.org/del/-/del-2.2.2.tgz",
+ "integrity": "sha1-wSyYHQZ4RshLyvhiz/kw2Qf/0ag=",
+ "dev": true,
+ "requires": {
+ "globby": "https://registry.npmjs.org/globby/-/globby-5.0.0.tgz",
+ "is-path-cwd": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-1.0.0.tgz",
+ "is-path-in-cwd": "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-1.0.0.tgz",
+ "object-assign": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
+ "pify": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz",
+ "pinkie-promise": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz",
+ "rimraf": "https://registry.npmjs.org/rimraf/-/rimraf-2.5.4.tgz"
+ }
+ },
+ "diff": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/diff/-/diff-1.4.0.tgz",
+ "integrity": "sha1-fyjS657nsVqX79ic5j3P2qPMur8=",
+ "dev": true
+ },
+ "doctrine": {
+ "version": "https://registry.npmjs.org/doctrine/-/doctrine-1.5.0.tgz",
+ "integrity": "sha1-N53Ocw9hZvds76TmcHoVmwLFpvo=",
+ "dev": true,
+ "requires": {
+ "esutils": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz",
+ "isarray": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz"
+ }
+ },
+ "es-abstract": {
+ "version": "1.9.0",
+ "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.9.0.tgz",
+ "integrity": "sha512-kk3IJoKo7A3pWJc0OV8yZ/VEX2oSUytfekrJiqoxBlKJMFAJVJVpGdHClCCTdv+Fn2zHfpDHHIelMFhZVfef3Q==",
+ "dev": true,
+ "requires": {
+ "es-to-primitive": "1.1.1",
+ "function-bind": "1.1.1",
+ "has": "1.0.1",
+ "is-callable": "1.1.3",
+ "is-regex": "1.0.4"
+ }
+ },
+ "es-to-primitive": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.1.1.tgz",
+ "integrity": "sha1-RTVSSKiJeQNLZ5Lhm7gfK3l13Q0=",
+ "dev": true,
+ "requires": {
+ "is-callable": "1.1.3",
+ "is-date-object": "1.0.1",
+ "is-symbol": "1.0.1"
+ }
+ },
+ "es5-ext": {
+ "version": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.12.tgz",
+ "integrity": "sha1-qoRkHU23a2Krul5F/YBey6sUAEc=",
+ "dev": true,
+ "requires": {
+ "es6-iterator": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.0.tgz",
+ "es6-symbol": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.0.tgz"
+ }
+ },
+ "es6-iterator": {
+ "version": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.0.tgz",
+ "integrity": "sha1-vZaFZ9YWNeM8C4BydhPJy0sJa6w=",
+ "dev": true,
+ "requires": {
+ "d": "https://registry.npmjs.org/d/-/d-0.1.1.tgz",
+ "es5-ext": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.12.tgz",
+ "es6-symbol": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.0.tgz"
+ }
+ },
+ "es6-map": {
+ "version": "https://registry.npmjs.org/es6-map/-/es6-map-0.1.4.tgz",
+ "integrity": "sha1-o0sUe+IkdzpNfagHJ5TO+jYyuJc=",
+ "dev": true,
+ "requires": {
+ "d": "https://registry.npmjs.org/d/-/d-0.1.1.tgz",
+ "es5-ext": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.12.tgz",
+ "es6-iterator": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.0.tgz",
+ "es6-set": "https://registry.npmjs.org/es6-set/-/es6-set-0.1.4.tgz",
+ "es6-symbol": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.0.tgz",
+ "event-emitter": "https://registry.npmjs.org/event-emitter/-/event-emitter-0.3.4.tgz"
+ }
+ },
+ "es6-promise": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.1.1.tgz",
+ "integrity": "sha512-OaU1hHjgJf+b0NzsxCg7NdIYERD6Hy/PEmFLTjw+b65scuisG3Kt4QoTvJ66BBkPZ581gr0kpoVzKnxniM8nng==",
+ "dev": true
+ },
+ "es6-set": {
+ "version": "https://registry.npmjs.org/es6-set/-/es6-set-0.1.4.tgz",
+ "integrity": "sha1-lRa2dhwpZLkv9HlFYjOiR9xwfOg=",
+ "dev": true,
+ "requires": {
+ "d": "https://registry.npmjs.org/d/-/d-0.1.1.tgz",
+ "es5-ext": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.12.tgz",
+ "es6-iterator": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.0.tgz",
+ "es6-symbol": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.0.tgz",
+ "event-emitter": "https://registry.npmjs.org/event-emitter/-/event-emitter-0.3.4.tgz"
+ }
+ },
+ "es6-symbol": {
+ "version": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.0.tgz",
+ "integrity": "sha1-lEgcZV56fK2C66gy2X1UM0ltf/o=",
+ "dev": true,
+ "requires": {
+ "d": "https://registry.npmjs.org/d/-/d-0.1.1.tgz",
+ "es5-ext": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.12.tgz"
+ }
+ },
+ "es6-weak-map": {
+ "version": "https://registry.npmjs.org/es6-weak-map/-/es6-weak-map-2.0.1.tgz",
+ "integrity": "sha1-DSu9iCfrX7S6j5f7/qUNQ9sh6oE=",
+ "dev": true,
+ "requires": {
+ "d": "https://registry.npmjs.org/d/-/d-0.1.1.tgz",
+ "es5-ext": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.12.tgz",
+ "es6-iterator": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.0.tgz",
+ "es6-symbol": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.0.tgz"
+ }
+ },
+ "escape-string-regexp": {
+ "version": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
+ "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=",
+ "dev": true
+ },
+ "escope": {
+ "version": "https://registry.npmjs.org/escope/-/escope-3.6.0.tgz",
+ "integrity": "sha1-4Bl16BJ4GhY6ba392AOY3GTIicM=",
+ "dev": true,
+ "requires": {
+ "es6-map": "https://registry.npmjs.org/es6-map/-/es6-map-0.1.4.tgz",
+ "es6-weak-map": "https://registry.npmjs.org/es6-weak-map/-/es6-weak-map-2.0.1.tgz",
+ "esrecurse": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.1.0.tgz",
+ "estraverse": "https://registry.npmjs.org/estraverse/-/estraverse-4.2.0.tgz"
+ }
+ },
+ "eslint": {
+ "version": "https://registry.npmjs.org/eslint/-/eslint-3.15.0.tgz",
+ "integrity": "sha1-vcxqbF/+CBYOe5PAZmlTYqkeMPI=",
+ "dev": true,
+ "requires": {
+ "babel-code-frame": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.22.0.tgz",
+ "chalk": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
+ "concat-stream": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.0.tgz",
+ "debug": "https://registry.npmjs.org/debug/-/debug-2.6.0.tgz",
+ "doctrine": "https://registry.npmjs.org/doctrine/-/doctrine-1.5.0.tgz",
+ "escope": "https://registry.npmjs.org/escope/-/escope-3.6.0.tgz",
+ "espree": "https://registry.npmjs.org/espree/-/espree-3.4.0.tgz",
+ "estraverse": "https://registry.npmjs.org/estraverse/-/estraverse-4.2.0.tgz",
+ "esutils": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz",
+ "file-entry-cache": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-2.0.0.tgz",
+ "glob": "https://registry.npmjs.org/glob/-/glob-7.1.1.tgz",
+ "globals": "https://registry.npmjs.org/globals/-/globals-9.14.0.tgz",
+ "ignore": "https://registry.npmjs.org/ignore/-/ignore-3.2.2.tgz",
+ "imurmurhash": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz",
+ "inquirer": "https://registry.npmjs.org/inquirer/-/inquirer-0.12.0.tgz",
+ "is-my-json-valid": "https://registry.npmjs.org/is-my-json-valid/-/is-my-json-valid-2.15.0.tgz",
+ "is-resolvable": "https://registry.npmjs.org/is-resolvable/-/is-resolvable-1.0.0.tgz",
+ "js-yaml": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.8.1.tgz",
+ "json-stable-stringify": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz",
+ "levn": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz",
+ "lodash": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz",
+ "mkdirp": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.0.tgz",
+ "natural-compare": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz",
+ "optionator": "https://registry.npmjs.org/optionator/-/optionator-0.8.2.tgz",
+ "path-is-inside": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz",
+ "pluralize": "https://registry.npmjs.org/pluralize/-/pluralize-1.2.1.tgz",
+ "progress": "https://registry.npmjs.org/progress/-/progress-1.1.8.tgz",
+ "require-uncached": "https://registry.npmjs.org/require-uncached/-/require-uncached-1.0.3.tgz",
+ "shelljs": "https://registry.npmjs.org/shelljs/-/shelljs-0.7.6.tgz",
+ "strip-bom": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz",
+ "strip-json-comments": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz",
+ "table": "https://registry.npmjs.org/table/-/table-3.8.3.tgz",
+ "text-table": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz",
+ "user-home": "https://registry.npmjs.org/user-home/-/user-home-2.0.0.tgz"
+ },
+ "dependencies": {
+ "glob": {
+ "version": "https://registry.npmjs.org/glob/-/glob-7.1.1.tgz",
+ "integrity": "sha1-gFIR3wT6rxxjo2ADBs31reULLsg=",
+ "dev": true,
+ "requires": {
+ "fs.realpath": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
+ "inflight": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
+ "inherits": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
+ "minimatch": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.3.tgz",
+ "once": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
+ "path-is-absolute": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz"
+ }
+ },
+ "minimatch": {
+ "version": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.3.tgz",
+ "integrity": "sha1-Kk5AkLlrLbBqnX3wEFWmKnfJt3Q=",
+ "dev": true,
+ "requires": {
+ "brace-expansion": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.6.tgz"
+ }
+ },
+ "strip-json-comments": {
+ "version": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz",
+ "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=",
+ "dev": true
+ }
+ }
+ },
+ "eslint-config-airbnb-es5": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/eslint-config-airbnb-es5/-/eslint-config-airbnb-es5-1.2.0.tgz",
+ "integrity": "sha512-MaOKwNpqNZIRy+3augFj5vGHJ4F1sskPjJ/Od7K3N8Vv+8pD6t73XCL18KrHrF1m58qFxPBDl1US6bswE65IbQ==",
+ "dev": true,
+ "requires": {
+ "strip-json-comments": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-1.0.2.tgz"
+ }
+ },
+ "eslint-plugin-react": {
+ "version": "6.10.3",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-6.10.3.tgz",
+ "integrity": "sha1-xUNb6wZ3ThLH2y9qut3L+QDNP3g=",
+ "dev": true,
+ "requires": {
+ "array.prototype.find": "2.0.4",
+ "doctrine": "https://registry.npmjs.org/doctrine/-/doctrine-1.5.0.tgz",
+ "has": "1.0.1",
+ "jsx-ast-utils": "1.4.1",
+ "object.assign": "4.0.4"
+ }
+ },
+ "espree": {
+ "version": "https://registry.npmjs.org/espree/-/espree-3.4.0.tgz",
+ "integrity": "sha1-QWVvpWKOBCh4Al70Z+ePEly4bh0=",
+ "dev": true,
+ "requires": {
+ "acorn": "https://registry.npmjs.org/acorn/-/acorn-4.0.4.tgz",
+ "acorn-jsx": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-3.0.1.tgz"
+ }
+ },
+ "esrecurse": {
+ "version": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.1.0.tgz",
+ "integrity": "sha1-RxO2U2rffyrE8yfVWed1a/9kgiA=",
+ "dev": true,
+ "requires": {
+ "estraverse": "https://registry.npmjs.org/estraverse/-/estraverse-4.1.1.tgz",
+ "object-assign": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz"
+ },
+ "dependencies": {
+ "estraverse": {
+ "version": "https://registry.npmjs.org/estraverse/-/estraverse-4.1.1.tgz",
+ "integrity": "sha1-9srKcokzqFDvkGYdDheYK6RxEaI=",
+ "dev": true
+ }
+ }
+ },
+ "estraverse": {
+ "version": "https://registry.npmjs.org/estraverse/-/estraverse-4.2.0.tgz",
+ "integrity": "sha1-De4/7TH81GlhjOc0IJn8GvoL2xM=",
+ "dev": true
+ },
+ "esutils": {
+ "version": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz",
+ "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=",
+ "dev": true
+ },
+ "event-emitter": {
+ "version": "https://registry.npmjs.org/event-emitter/-/event-emitter-0.3.4.tgz",
+ "integrity": "sha1-jWPd+0z+H647MsomXExyAiIIC7U=",
+ "dev": true,
+ "requires": {
+ "d": "https://registry.npmjs.org/d/-/d-0.1.1.tgz",
+ "es5-ext": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.12.tgz"
+ }
+ },
+ "exit-hook": {
+ "version": "https://registry.npmjs.org/exit-hook/-/exit-hook-1.1.1.tgz",
+ "integrity": "sha1-8FyiM7SMBdVP/wd2XfhQfpXAL/g=",
+ "dev": true
+ },
+ "fast-levenshtein": {
+ "version": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz",
+ "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=",
+ "dev": true
+ },
+ "figures": {
+ "version": "https://registry.npmjs.org/figures/-/figures-1.7.0.tgz",
+ "integrity": "sha1-y+Hjr/zxzUS4DK3+0o3Hk6lwHS4=",
+ "dev": true,
+ "requires": {
+ "escape-string-regexp": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
+ "object-assign": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz"
+ }
+ },
+ "file-entry-cache": {
+ "version": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-2.0.0.tgz",
+ "integrity": "sha1-w5KZDD5oR4PYOLjISkXYoEhFg2E=",
+ "dev": true,
+ "requires": {
+ "flat-cache": "https://registry.npmjs.org/flat-cache/-/flat-cache-1.2.2.tgz",
+ "object-assign": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz"
+ }
+ },
+ "flat-cache": {
+ "version": "https://registry.npmjs.org/flat-cache/-/flat-cache-1.2.2.tgz",
+ "integrity": "sha1-+oZxTnLCHbiGAXYezy9VXRq8a5Y=",
+ "dev": true,
+ "requires": {
+ "circular-json": "https://registry.npmjs.org/circular-json/-/circular-json-0.3.1.tgz",
+ "del": "https://registry.npmjs.org/del/-/del-2.2.2.tgz",
+ "graceful-fs": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz",
+ "write": "https://registry.npmjs.org/write/-/write-0.2.1.tgz"
+ },
+ "dependencies": {
+ "graceful-fs": {
+ "version": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz",
+ "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=",
+ "dev": true
+ }
+ }
+ },
+ "foreach": {
+ "version": "2.0.5",
+ "resolved": "https://registry.npmjs.org/foreach/-/foreach-2.0.5.tgz",
+ "integrity": "sha1-C+4AUBiusmDQo6865ljdATbsG5k=",
+ "dev": true
+ },
+ "fs.realpath": {
+ "version": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
+ "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=",
+ "dev": true
+ },
+ "function-bind": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz",
+ "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==",
+ "dev": true
+ },
+ "generate-function": {
+ "version": "https://registry.npmjs.org/generate-function/-/generate-function-2.0.0.tgz",
+ "integrity": "sha1-aFj+fAlpt9TpCTM3ZHrHn2DfvnQ=",
+ "dev": true
+ },
+ "generate-object-property": {
+ "version": "https://registry.npmjs.org/generate-object-property/-/generate-object-property-1.2.0.tgz",
+ "integrity": "sha1-nA4cQDCM6AT0eDYYuTf6iPmdUNA=",
+ "dev": true,
+ "requires": {
+ "is-property": "https://registry.npmjs.org/is-property/-/is-property-1.0.2.tgz"
+ }
+ },
+ "glob": {
+ "version": "3.2.11",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-3.2.11.tgz",
+ "integrity": "sha1-Spc/Y1uRkPcV0QmH1cAP0oFevj0=",
+ "dev": true,
+ "requires": {
+ "inherits": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
+ "minimatch": "0.3.0"
+ }
+ },
+ "glob-all": {
+ "version": "https://registry.npmjs.org/glob-all/-/glob-all-3.1.0.tgz",
+ "integrity": "sha1-iRPd+17hrHgSZWJBsD1SF8ZLAqs=",
+ "dev": true,
+ "requires": {
+ "glob": "https://registry.npmjs.org/glob/-/glob-7.1.1.tgz",
+ "yargs": "https://registry.npmjs.org/yargs/-/yargs-1.2.6.tgz"
+ },
+ "dependencies": {
+ "glob": {
+ "version": "https://registry.npmjs.org/glob/-/glob-7.1.1.tgz",
+ "integrity": "sha1-gFIR3wT6rxxjo2ADBs31reULLsg=",
+ "dev": true,
+ "requires": {
+ "fs.realpath": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
+ "inflight": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
+ "inherits": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
+ "minimatch": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.3.tgz",
+ "once": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
+ "path-is-absolute": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz"
+ }
+ },
+ "minimatch": {
+ "version": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.3.tgz",
+ "integrity": "sha1-Kk5AkLlrLbBqnX3wEFWmKnfJt3Q=",
+ "dev": true,
+ "requires": {
+ "brace-expansion": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.6.tgz"
+ }
+ }
+ }
+ },
+ "globals": {
+ "version": "https://registry.npmjs.org/globals/-/globals-9.14.0.tgz",
+ "integrity": "sha1-iFmTavADh0EmMFOznQ52yiQeQDQ=",
+ "dev": true
+ },
+ "globby": {
+ "version": "https://registry.npmjs.org/globby/-/globby-5.0.0.tgz",
+ "integrity": "sha1-69hGZ8oNuzMLmbz8aOrCvFQ3Dg0=",
+ "dev": true,
+ "requires": {
+ "array-union": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz",
+ "arrify": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz",
+ "glob": "https://registry.npmjs.org/glob/-/glob-7.1.1.tgz",
+ "object-assign": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
+ "pify": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz",
+ "pinkie-promise": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz"
+ },
+ "dependencies": {
+ "glob": {
+ "version": "https://registry.npmjs.org/glob/-/glob-7.1.1.tgz",
+ "integrity": "sha1-gFIR3wT6rxxjo2ADBs31reULLsg=",
+ "dev": true,
+ "requires": {
+ "fs.realpath": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
+ "inflight": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
+ "inherits": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
+ "minimatch": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.3.tgz",
+ "once": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
+ "path-is-absolute": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz"
+ }
+ },
+ "minimatch": {
+ "version": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.3.tgz",
+ "integrity": "sha1-Kk5AkLlrLbBqnX3wEFWmKnfJt3Q=",
+ "dev": true,
+ "requires": {
+ "brace-expansion": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.6.tgz"
+ }
+ }
+ }
+ },
+ "graceful-fs": {
+ "version": "4.1.11",
+ "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz",
+ "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=",
+ "dev": true
+ },
+ "growl": {
+ "version": "1.9.2",
+ "resolved": "https://registry.npmjs.org/growl/-/growl-1.9.2.tgz",
+ "integrity": "sha1-Dqd0NxXbjY3ixe3hd14bRayFwC8=",
+ "dev": true
+ },
+ "has": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/has/-/has-1.0.1.tgz",
+ "integrity": "sha1-hGFzP1OLCDfJNh45qauelwTcLyg=",
+ "dev": true,
+ "requires": {
+ "function-bind": "1.1.1"
+ }
+ },
+ "has-ansi": {
+ "version": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz",
+ "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=",
+ "dev": true,
+ "requires": {
+ "ansi-regex": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz"
+ }
+ },
+ "ignore": {
+ "version": "https://registry.npmjs.org/ignore/-/ignore-3.2.2.tgz",
+ "integrity": "sha1-HFHh71O6tt3BXbTZrE7BOezrNBA=",
+ "dev": true
+ },
+ "imurmurhash": {
+ "version": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz",
+ "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=",
+ "dev": true
+ },
+ "inflight": {
+ "version": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
+ "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=",
+ "dev": true,
+ "requires": {
+ "once": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
+ "wrappy": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz"
+ }
+ },
+ "inherits": {
+ "version": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
+ "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=",
+ "dev": true
+ },
+ "inquirer": {
+ "version": "https://registry.npmjs.org/inquirer/-/inquirer-0.12.0.tgz",
+ "integrity": "sha1-HvK/1jUE3wvHV4X/+MLEHfEvB34=",
+ "dev": true,
+ "requires": {
+ "ansi-escapes": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-1.4.0.tgz",
+ "ansi-regex": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz",
+ "chalk": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
+ "cli-cursor": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-1.0.2.tgz",
+ "cli-width": "https://registry.npmjs.org/cli-width/-/cli-width-2.1.0.tgz",
+ "figures": "https://registry.npmjs.org/figures/-/figures-1.7.0.tgz",
+ "lodash": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz",
+ "readline2": "https://registry.npmjs.org/readline2/-/readline2-1.0.1.tgz",
+ "run-async": "https://registry.npmjs.org/run-async/-/run-async-0.1.0.tgz",
+ "rx-lite": "https://registry.npmjs.org/rx-lite/-/rx-lite-3.1.2.tgz",
+ "string-width": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz",
+ "strip-ansi": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
+ "through": "https://registry.npmjs.org/through/-/through-2.3.8.tgz"
+ }
+ },
+ "interpret": {
+ "version": "https://registry.npmjs.org/interpret/-/interpret-1.0.1.tgz",
+ "integrity": "sha1-1Xn7f2k7hYAElHrzn6DbSfeVYCw=",
+ "dev": true
+ },
+ "invariant": {
+ "version": "2.2.2",
+ "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.2.tgz",
+ "integrity": "sha1-nh9WrArNtr8wMwbzOL47IErmA2A=",
+ "dev": true,
+ "requires": {
+ "loose-envify": "1.3.1"
+ }
+ },
+ "is-callable": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.3.tgz",
+ "integrity": "sha1-hut1OSgF3cM69xySoO7fdO52BLI=",
+ "dev": true
+ },
+ "is-date-object": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.1.tgz",
+ "integrity": "sha1-mqIOtq7rv/d/vTPnTKAbM1gdOhY=",
+ "dev": true
+ },
+ "is-fullwidth-code-point": {
+ "version": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz",
+ "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=",
+ "dev": true,
+ "requires": {
+ "number-is-nan": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz"
+ }
+ },
+ "is-my-json-valid": {
+ "version": "https://registry.npmjs.org/is-my-json-valid/-/is-my-json-valid-2.15.0.tgz",
+ "integrity": "sha1-k27do8o8IR/ZjzstPgjaQ/eykVs=",
+ "dev": true,
+ "requires": {
+ "generate-function": "https://registry.npmjs.org/generate-function/-/generate-function-2.0.0.tgz",
+ "generate-object-property": "https://registry.npmjs.org/generate-object-property/-/generate-object-property-1.2.0.tgz",
+ "jsonpointer": "https://registry.npmjs.org/jsonpointer/-/jsonpointer-4.0.1.tgz",
+ "xtend": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz"
+ }
+ },
+ "is-path-cwd": {
+ "version": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-1.0.0.tgz",
+ "integrity": "sha1-0iXsIxMuie3Tj9p2dHLmLmXxEG0=",
+ "dev": true
+ },
+ "is-path-in-cwd": {
+ "version": "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-1.0.0.tgz",
+ "integrity": "sha1-ZHdYK4IU1gI0YJRWcAO+ip6sBNw=",
+ "dev": true,
+ "requires": {
+ "is-path-inside": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-1.0.0.tgz"
+ }
+ },
+ "is-path-inside": {
+ "version": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-1.0.0.tgz",
+ "integrity": "sha1-/AbloWg/vaE95mev9xe7wQpI838=",
+ "dev": true,
+ "requires": {
+ "path-is-inside": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz"
+ }
+ },
+ "is-property": {
+ "version": "https://registry.npmjs.org/is-property/-/is-property-1.0.2.tgz",
+ "integrity": "sha1-V/4cTkhHTt1lsJkR8msc1Ald2oQ=",
+ "dev": true
+ },
+ "is-regex": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.4.tgz",
+ "integrity": "sha1-VRdIm1RwkbCTDglWVM7SXul+lJE=",
+ "dev": true,
+ "requires": {
+ "has": "1.0.1"
+ }
+ },
+ "is-resolvable": {
+ "version": "https://registry.npmjs.org/is-resolvable/-/is-resolvable-1.0.0.tgz",
+ "integrity": "sha1-jfV8YeouPFAUCNEA+wE8+NbgzGI=",
+ "dev": true,
+ "requires": {
+ "tryit": "https://registry.npmjs.org/tryit/-/tryit-1.0.3.tgz"
+ }
+ },
+ "is-symbol": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.1.tgz",
+ "integrity": "sha1-PMWfAAJRlLarLjjbrmaJJWtmBXI=",
+ "dev": true
+ },
+ "isarray": {
+ "version": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
+ "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=",
+ "dev": true
+ },
+ "jade": {
+ "version": "0.26.3",
+ "resolved": "https://registry.npmjs.org/jade/-/jade-0.26.3.tgz",
+ "integrity": "sha1-jxDXl32NefL2/4YqgbBRPMslaGw=",
+ "dev": true,
+ "requires": {
+ "commander": "0.6.1",
+ "mkdirp": "0.3.0"
+ },
+ "dependencies": {
+ "commander": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/commander/-/commander-0.6.1.tgz",
+ "integrity": "sha1-+mihT2qUXVTbvlDYzbMyDp47GgY=",
+ "dev": true
+ },
+ "mkdirp": {
+ "version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.3.0.tgz",
+ "integrity": "sha1-G79asbqCevI1dRQ0kEJkVfSB/h4=",
+ "dev": true
+ }
+ }
+ },
+ "js-tokens": {
+ "version": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.1.tgz",
+ "integrity": "sha1-COnxMkhKLEWjCQfp3E1VZ7fxFNc=",
+ "dev": true
+ },
+ "js-yaml": {
+ "version": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.8.1.tgz",
+ "integrity": "sha1-eCulAgC+e55ahTcAG3gE2zrQJig=",
+ "dev": true,
+ "requires": {
+ "argparse": "https://registry.npmjs.org/argparse/-/argparse-1.0.9.tgz",
+ "esprima": "https://registry.npmjs.org/esprima/-/esprima-3.1.3.tgz"
+ },
+ "dependencies": {
+ "esprima": {
+ "version": "https://registry.npmjs.org/esprima/-/esprima-3.1.3.tgz",
+ "integrity": "sha1-/cpRzuYTOJXjyI1TXOSdv/YqRjM=",
+ "dev": true
+ }
+ }
+ },
+ "js2xmlparser": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/js2xmlparser/-/js2xmlparser-3.0.0.tgz",
+ "integrity": "sha1-P7YOqgicVED5MZ9RdgzNB+JJlzM=",
+ "dev": true,
+ "requires": {
+ "xmlcreate": "1.0.2"
+ }
+ },
+ "jsdoc": {
+ "version": "3.5.5",
+ "resolved": "https://registry.npmjs.org/jsdoc/-/jsdoc-3.5.5.tgz",
+ "integrity": "sha512-6PxB65TAU4WO0Wzyr/4/YhlGovXl0EVYfpKbpSroSj0qBxT4/xod/l40Opkm38dRHRdQgdeY836M0uVnJQG7kg==",
+ "dev": true,
+ "requires": {
+ "babylon": "7.0.0-beta.19",
+ "bluebird": "3.5.1",
+ "catharsis": "0.8.9",
+ "escape-string-regexp": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
+ "js2xmlparser": "3.0.0",
+ "klaw": "2.0.0",
+ "marked": "0.3.6",
+ "mkdirp": "0.5.1",
+ "requizzle": "0.2.1",
+ "strip-json-comments": "2.0.1",
+ "taffydb": "2.6.2",
+ "underscore": "1.8.3"
+ },
+ "dependencies": {
+ "babylon": {
+ "version": "7.0.0-beta.19",
+ "resolved": "https://registry.npmjs.org/babylon/-/babylon-7.0.0-beta.19.tgz",
+ "integrity": "sha512-Vg0C9s/REX6/WIXN37UKpv5ZhRi6A4pjHlpkE34+8/a6c2W1Q692n3hmc+SZG5lKRnaExLUbxtJ1SVT+KaCQ/A==",
+ "dev": true
+ },
+ "mkdirp": {
+ "version": "0.5.1",
+ "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz",
+ "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=",
+ "dev": true,
+ "requires": {
+ "minimist": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz"
+ }
+ },
+ "strip-json-comments": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz",
+ "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=",
+ "dev": true
+ }
+ }
+ },
+ "json-stable-stringify": {
+ "version": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz",
+ "integrity": "sha1-mnWdOcXy/1A/1TAGRu1EX4jE+a8=",
+ "dev": true,
+ "requires": {
+ "jsonify": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz"
+ }
+ },
+ "jsonify": {
+ "version": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz",
+ "integrity": "sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM=",
+ "dev": true
+ },
+ "jsonpointer": {
+ "version": "https://registry.npmjs.org/jsonpointer/-/jsonpointer-4.0.1.tgz",
+ "integrity": "sha1-T9kss04OnbPInIYi7PUfm5eMbLk=",
+ "dev": true
+ },
+ "jsx-ast-utils": {
+ "version": "1.4.1",
+ "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-1.4.1.tgz",
+ "integrity": "sha1-OGchPo3Xm/Ho8jAMDPwe+xgsDfE=",
+ "dev": true
+ },
+ "klaw": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/klaw/-/klaw-2.0.0.tgz",
+ "integrity": "sha1-WcEo4Nxc5BAgEVEZTuucv4WGUPY=",
+ "dev": true,
+ "requires": {
+ "graceful-fs": "4.1.11"
+ }
+ },
+ "levn": {
+ "version": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz",
+ "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=",
+ "dev": true,
+ "requires": {
+ "prelude-ls": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz",
+ "type-check": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz"
+ }
+ },
+ "lodash": {
+ "version": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz",
+ "integrity": "sha1-eCA6TRwyiuHYbcpkYONptX9AVa4=",
+ "dev": true
+ },
+ "loose-envify": {
+ "version": "1.3.1",
+ "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.3.1.tgz",
+ "integrity": "sha1-0aitM/qc4OcT1l/dCsi3SNR4yEg=",
+ "dev": true,
+ "requires": {
+ "js-tokens": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.1.tgz"
+ }
+ },
+ "lru-cache": {
+ "version": "2.7.3",
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-2.7.3.tgz",
+ "integrity": "sha1-bUUk6LlV+V1PW1iFHOId1y+06VI=",
+ "dev": true
+ },
+ "marked": {
+ "version": "0.3.6",
+ "resolved": "https://registry.npmjs.org/marked/-/marked-0.3.6.tgz",
+ "integrity": "sha1-ssbGGPzOzk74bE/Gy4p8v1rtqNc=",
+ "dev": true
+ },
+ "minimatch": {
+ "version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-0.3.0.tgz",
+ "integrity": "sha1-J12O2qxPG7MyZHIInnlJyDlGmd0=",
+ "dev": true,
+ "requires": {
+ "lru-cache": "2.7.3",
+ "sigmund": "1.0.1"
+ }
+ },
+ "minimist": {
+ "version": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz",
+ "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=",
+ "dev": true
+ },
+ "mkdirp": {
+ "version": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.0.tgz",
+ "integrity": "sha1-HXMHam35hs2TROFecfzAWkyavxI=",
+ "dev": true,
+ "requires": {
+ "minimist": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz"
+ }
+ },
+ "mocha": {
+ "version": "2.5.3",
+ "resolved": "https://registry.npmjs.org/mocha/-/mocha-2.5.3.tgz",
+ "integrity": "sha1-FhvlvetJZ3HrmzV0UFC2IrWu/Fg=",
+ "dev": true,
+ "requires": {
+ "commander": "2.3.0",
+ "debug": "2.2.0",
+ "diff": "1.4.0",
+ "escape-string-regexp": "1.0.2",
+ "glob": "3.2.11",
+ "growl": "1.9.2",
+ "jade": "0.26.3",
+ "mkdirp": "0.5.1",
+ "supports-color": "1.2.0",
+ "to-iso-string": "0.0.2"
+ },
+ "dependencies": {
+ "debug": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.2.0.tgz",
+ "integrity": "sha1-+HBX6ZWxofauaklgZkE3vFbwOdo=",
+ "dev": true,
+ "requires": {
+ "ms": "0.7.1"
+ }
+ },
+ "escape-string-regexp": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.2.tgz",
+ "integrity": "sha1-Tbwv5nTnGUnK8/smlc5/LcHZqNE=",
+ "dev": true
+ },
+ "mkdirp": {
+ "version": "0.5.1",
+ "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz",
+ "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=",
+ "dev": true,
+ "requires": {
+ "minimist": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz"
+ }
+ },
+ "ms": {
+ "version": "0.7.1",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.1.tgz",
+ "integrity": "sha1-nNE8A62/8ltl7/3nzoZO6VIBcJg=",
+ "dev": true
+ },
+ "supports-color": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-1.2.0.tgz",
+ "integrity": "sha1-/x7R5hFp0Gs88tWI4YixjYhH4X4=",
+ "dev": true
+ }
+ }
+ },
+ "mocha-eslint": {
+ "version": "https://registry.npmjs.org/mocha-eslint/-/mocha-eslint-3.0.1.tgz",
+ "integrity": "sha1-rnKrxWHLKJ0ubBQ3iO4YKsoaBNs=",
+ "dev": true,
+ "requires": {
+ "chalk": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
+ "eslint": "https://registry.npmjs.org/eslint/-/eslint-3.15.0.tgz",
+ "glob-all": "https://registry.npmjs.org/glob-all/-/glob-all-3.1.0.tgz",
+ "replaceall": "https://registry.npmjs.org/replaceall/-/replaceall-0.1.6.tgz"
+ }
+ },
+ "ms": {
+ "version": "https://registry.npmjs.org/ms/-/ms-0.7.2.tgz",
+ "integrity": "sha1-riXPJRKziFodldfwN4aNhDESR2U=",
+ "dev": true
+ },
+ "mute-stream": {
+ "version": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.5.tgz",
+ "integrity": "sha1-j7+rsKmKJT0xhDMfno3rc3L6xsA=",
+ "dev": true
+ },
+ "natural-compare": {
+ "version": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz",
+ "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=",
+ "dev": true
+ },
+ "number-is-nan": {
+ "version": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz",
+ "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=",
+ "dev": true
+ },
+ "object-assign": {
+ "version": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
+ "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=",
+ "dev": true
+ },
+ "object-keys": {
+ "version": "1.0.11",
+ "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.0.11.tgz",
+ "integrity": "sha1-xUYBd4rVYPEULODgG8yotW0TQm0=",
+ "dev": true
+ },
+ "object.assign": {
+ "version": "4.0.4",
+ "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.0.4.tgz",
+ "integrity": "sha1-scnMBE7xuf5jYG/BQau7MuFHMMw=",
+ "dev": true,
+ "requires": {
+ "define-properties": "1.1.2",
+ "function-bind": "1.1.1",
+ "object-keys": "1.0.11"
+ }
+ },
+ "once": {
+ "version": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
+ "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
+ "dev": true,
+ "requires": {
+ "wrappy": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz"
+ }
+ },
+ "onetime": {
+ "version": "https://registry.npmjs.org/onetime/-/onetime-1.1.0.tgz",
+ "integrity": "sha1-ofeDj4MUxRbwXs78vEzP4EtO14k=",
+ "dev": true
+ },
+ "optionator": {
+ "version": "https://registry.npmjs.org/optionator/-/optionator-0.8.2.tgz",
+ "integrity": "sha1-NkxeQJ0/TWMB1sC0wFu6UBgK62Q=",
+ "dev": true,
+ "requires": {
+ "deep-is": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz",
+ "fast-levenshtein": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz",
+ "levn": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz",
+ "prelude-ls": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz",
+ "type-check": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz",
+ "wordwrap": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz"
+ }
+ },
+ "os-homedir": {
+ "version": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz",
+ "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=",
+ "dev": true
+ },
+ "path-is-absolute": {
+ "version": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
+ "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=",
+ "dev": true
+ },
+ "path-is-inside": {
+ "version": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz",
+ "integrity": "sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=",
+ "dev": true
+ },
+ "pify": {
+ "version": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz",
+ "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=",
+ "dev": true
+ },
+ "pinkie": {
+ "version": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz",
+ "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=",
+ "dev": true
+ },
+ "pinkie-promise": {
+ "version": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz",
+ "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=",
+ "dev": true,
+ "requires": {
+ "pinkie": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz"
+ }
+ },
+ "pluralize": {
+ "version": "https://registry.npmjs.org/pluralize/-/pluralize-1.2.1.tgz",
+ "integrity": "sha1-0aIUg/0iu0HlihL6NCGCMUCJfEU=",
+ "dev": true
+ },
+ "prelude-ls": {
+ "version": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz",
+ "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=",
+ "dev": true
+ },
+ "process-nextick-args": {
+ "version": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz",
+ "integrity": "sha1-FQ4gt1ZZCtP5EJPyWk8q2L/zC6M=",
+ "dev": true
+ },
+ "progress": {
+ "version": "https://registry.npmjs.org/progress/-/progress-1.1.8.tgz",
+ "integrity": "sha1-4mDHj2Fhzdmw5WzD4Khd4Xx6V74=",
+ "dev": true
+ },
+ "readable-stream": {
+ "version": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.2.2.tgz",
+ "integrity": "sha1-qeb+w8fdqF+LsbO6cChgRVb8gl4=",
+ "dev": true,
+ "requires": {
+ "buffer-shims": "https://registry.npmjs.org/buffer-shims/-/buffer-shims-1.0.0.tgz",
+ "core-util-is": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz",
+ "inherits": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
+ "isarray": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
+ "process-nextick-args": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz",
+ "string_decoder": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz",
+ "util-deprecate": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz"
+ }
+ },
+ "readline2": {
+ "version": "https://registry.npmjs.org/readline2/-/readline2-1.0.1.tgz",
+ "integrity": "sha1-QQWWCP/BVHV7cV2ZidGZ/783LjU=",
+ "dev": true,
+ "requires": {
+ "code-point-at": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz",
+ "is-fullwidth-code-point": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz",
+ "mute-stream": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.5.tgz"
+ }
+ },
+ "rechoir": {
+ "version": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz",
+ "integrity": "sha1-hSBLVNuoLVdC4oyWdW70OvUOM4Q=",
+ "dev": true,
+ "requires": {
+ "resolve": "https://registry.npmjs.org/resolve/-/resolve-1.2.0.tgz"
+ }
+ },
+ "regenerator-runtime": {
+ "version": "0.11.0",
+ "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.0.tgz",
+ "integrity": "sha512-/aA0kLeRb5N9K0d4fw7ooEbI+xDe+DKD499EQqygGqeS8N3xto15p09uY2xj7ixP81sNPXvRLnAQIqdVStgb1A==",
+ "dev": true
+ },
+ "replaceall": {
+ "version": "https://registry.npmjs.org/replaceall/-/replaceall-0.1.6.tgz",
+ "integrity": "sha1-gdgax663LX9cSUKt8ml6MiBojY4=",
+ "dev": true
+ },
+ "require-uncached": {
+ "version": "https://registry.npmjs.org/require-uncached/-/require-uncached-1.0.3.tgz",
+ "integrity": "sha1-Tg1W1slmL9MeQwEcS5WqSZVUIdM=",
+ "dev": true,
+ "requires": {
+ "caller-path": "https://registry.npmjs.org/caller-path/-/caller-path-0.1.0.tgz",
+ "resolve-from": "https://registry.npmjs.org/resolve-from/-/resolve-from-1.0.1.tgz"
+ }
+ },
+ "requizzle": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/requizzle/-/requizzle-0.2.1.tgz",
+ "integrity": "sha1-aUPDUwxNmn5G8c3dUcFY/GcM294=",
+ "dev": true,
+ "requires": {
+ "underscore": "1.6.0"
+ },
+ "dependencies": {
+ "underscore": {
+ "version": "1.6.0",
+ "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.6.0.tgz",
+ "integrity": "sha1-izixDKze9jM3uLJOT/htRa6lKag=",
+ "dev": true
+ }
+ }
+ },
+ "resolve": {
+ "version": "https://registry.npmjs.org/resolve/-/resolve-1.2.0.tgz",
+ "integrity": "sha1-lYnD8vYUnRQXpAvswWY9tuxrwmw=",
+ "dev": true
+ },
+ "resolve-from": {
+ "version": "https://registry.npmjs.org/resolve-from/-/resolve-from-1.0.1.tgz",
+ "integrity": "sha1-Jsv+k10a7uq7Kbw/5a6wHpPUQiY=",
+ "dev": true
+ },
+ "restore-cursor": {
+ "version": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-1.0.1.tgz",
+ "integrity": "sha1-NGYfRohjJ/7SmRR5FSJS35LapUE=",
+ "dev": true,
+ "requires": {
+ "exit-hook": "https://registry.npmjs.org/exit-hook/-/exit-hook-1.1.1.tgz",
+ "onetime": "https://registry.npmjs.org/onetime/-/onetime-1.1.0.tgz"
+ }
+ },
+ "rimraf": {
+ "version": "https://registry.npmjs.org/rimraf/-/rimraf-2.5.4.tgz",
+ "integrity": "sha1-loAAk8vxoMhr2VtGJUZ1NcKd+gQ=",
+ "dev": true,
+ "requires": {
+ "glob": "https://registry.npmjs.org/glob/-/glob-7.1.1.tgz"
+ },
+ "dependencies": {
+ "glob": {
+ "version": "https://registry.npmjs.org/glob/-/glob-7.1.1.tgz",
+ "integrity": "sha1-gFIR3wT6rxxjo2ADBs31reULLsg=",
+ "dev": true,
+ "requires": {
+ "fs.realpath": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
+ "inflight": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
+ "inherits": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
+ "minimatch": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.3.tgz",
+ "once": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
+ "path-is-absolute": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz"
+ }
+ },
+ "minimatch": {
+ "version": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.3.tgz",
+ "integrity": "sha1-Kk5AkLlrLbBqnX3wEFWmKnfJt3Q=",
+ "dev": true,
+ "requires": {
+ "brace-expansion": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.6.tgz"
+ }
+ }
+ }
+ },
+ "run-async": {
+ "version": "https://registry.npmjs.org/run-async/-/run-async-0.1.0.tgz",
+ "integrity": "sha1-yK1KXhEGYeQCp9IbUw4AnyX444k=",
+ "dev": true,
+ "requires": {
+ "once": "https://registry.npmjs.org/once/-/once-1.4.0.tgz"
+ }
+ },
+ "rx-lite": {
+ "version": "https://registry.npmjs.org/rx-lite/-/rx-lite-3.1.2.tgz",
+ "integrity": "sha1-Gc5QLKVyZl87ZHsQk5+X/RYV8QI=",
+ "dev": true
+ },
+ "shelljs": {
+ "version": "https://registry.npmjs.org/shelljs/-/shelljs-0.7.6.tgz",
+ "integrity": "sha1-N5zM+1a5HIYB5HkzVutTgpJN6a0=",
+ "dev": true,
+ "requires": {
+ "glob": "https://registry.npmjs.org/glob/-/glob-7.1.1.tgz",
+ "interpret": "https://registry.npmjs.org/interpret/-/interpret-1.0.1.tgz",
+ "rechoir": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz"
+ },
+ "dependencies": {
+ "glob": {
+ "version": "https://registry.npmjs.org/glob/-/glob-7.1.1.tgz",
+ "integrity": "sha1-gFIR3wT6rxxjo2ADBs31reULLsg=",
+ "dev": true,
+ "requires": {
+ "fs.realpath": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
+ "inflight": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
+ "inherits": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
+ "minimatch": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.3.tgz",
+ "once": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
+ "path-is-absolute": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz"
+ }
+ },
+ "minimatch": {
+ "version": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.3.tgz",
+ "integrity": "sha1-Kk5AkLlrLbBqnX3wEFWmKnfJt3Q=",
+ "dev": true,
+ "requires": {
+ "brace-expansion": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.6.tgz"
+ }
+ }
+ }
+ },
+ "sigmund": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/sigmund/-/sigmund-1.0.1.tgz",
+ "integrity": "sha1-P/IfGYytIXX587eBhT/ZTQ0ZtZA=",
+ "dev": true
+ },
+ "slice-ansi": {
+ "version": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-0.0.4.tgz",
+ "integrity": "sha1-7b+JA/ZvfOL46v1s7tZeJkyDGzU=",
+ "dev": true
+ },
+ "sprintf-js": {
+ "version": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz",
+ "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=",
+ "dev": true
+ },
+ "string-width": {
+ "version": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz",
+ "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=",
+ "dev": true,
+ "requires": {
+ "code-point-at": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz",
+ "is-fullwidth-code-point": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz",
+ "strip-ansi": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz"
+ }
+ },
+ "string_decoder": {
+ "version": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz",
+ "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=",
+ "dev": true
+ },
+ "strip-ansi": {
+ "version": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
+ "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
+ "dev": true,
+ "requires": {
+ "ansi-regex": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz"
+ }
+ },
+ "strip-bom": {
+ "version": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz",
+ "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=",
+ "dev": true
+ },
+ "strip-json-comments": {
+ "version": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-1.0.2.tgz",
+ "integrity": "sha1-WkirlgI9usG3uND/q/b2PxZ3vp8=",
+ "dev": true
+ },
+ "supports-color": {
+ "version": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz",
+ "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=",
+ "dev": true
+ },
+ "table": {
+ "version": "https://registry.npmjs.org/table/-/table-3.8.3.tgz",
+ "integrity": "sha1-K7xULw/amGGnVdOUf+/Ys/UThV8=",
+ "dev": true,
+ "requires": {
+ "ajv": "https://registry.npmjs.org/ajv/-/ajv-4.11.2.tgz",
+ "ajv-keywords": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-1.5.1.tgz",
+ "chalk": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
+ "lodash": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz",
+ "slice-ansi": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-0.0.4.tgz",
+ "string-width": "https://registry.npmjs.org/string-width/-/string-width-2.0.0.tgz"
+ },
+ "dependencies": {
+ "is-fullwidth-code-point": {
+ "version": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz",
+ "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=",
+ "dev": true
+ },
+ "string-width": {
+ "version": "https://registry.npmjs.org/string-width/-/string-width-2.0.0.tgz",
+ "integrity": "sha1-Y1xUNsxypuDDh87KJ41OLuxSaH4=",
+ "dev": true,
+ "requires": {
+ "is-fullwidth-code-point": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz",
+ "strip-ansi": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz"
+ }
+ }
+ }
+ },
+ "taffydb": {
+ "version": "2.6.2",
+ "resolved": "https://registry.npmjs.org/taffydb/-/taffydb-2.6.2.tgz",
+ "integrity": "sha1-fLy2S1oUG2ou/CxdLGe04VCyomg=",
+ "dev": true
+ },
+ "text-table": {
+ "version": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz",
+ "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=",
+ "dev": true
+ },
+ "through": {
+ "version": "https://registry.npmjs.org/through/-/through-2.3.8.tgz",
+ "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=",
+ "dev": true
+ },
+ "to-fast-properties": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz",
+ "integrity": "sha1-uDVx+k2MJbguIxsG46MFXeTKGkc=",
+ "dev": true
+ },
+ "to-iso-string": {
+ "version": "0.0.2",
+ "resolved": "https://registry.npmjs.org/to-iso-string/-/to-iso-string-0.0.2.tgz",
+ "integrity": "sha1-TcGeZk38y+Jb2NtQiwDG2hWCVdE=",
+ "dev": true
+ },
+ "tryit": {
+ "version": "https://registry.npmjs.org/tryit/-/tryit-1.0.3.tgz",
+ "integrity": "sha1-OTvnMKlEb9Hq1tpZoBQwjzbCics=",
+ "dev": true
+ },
+ "type-check": {
+ "version": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz",
+ "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=",
+ "dev": true,
+ "requires": {
+ "prelude-ls": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz"
+ }
+ },
+ "type-detect": {
+ "version": "https://registry.npmjs.org/type-detect/-/type-detect-0.1.1.tgz",
+ "integrity": "sha1-C6XsKohWQORw6k6FBZcZANrFiCI=",
+ "dev": true
+ },
+ "typedarray": {
+ "version": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz",
+ "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=",
+ "dev": true
+ },
+ "underscore": {
+ "version": "1.8.3",
+ "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.8.3.tgz",
+ "integrity": "sha1-Tz+1OxBuYJf8+ctBCfKl6b36UCI=",
+ "dev": true
+ },
+ "underscore-contrib": {
+ "version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/underscore-contrib/-/underscore-contrib-0.3.0.tgz",
+ "integrity": "sha1-ZltmwkeD+PorGMn4y7Dix9SMJsc=",
+ "dev": true,
+ "requires": {
+ "underscore": "1.6.0"
+ },
+ "dependencies": {
+ "underscore": {
+ "version": "1.6.0",
+ "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.6.0.tgz",
+ "integrity": "sha1-izixDKze9jM3uLJOT/htRa6lKag=",
+ "dev": true
+ }
+ }
+ },
+ "user-home": {
+ "version": "https://registry.npmjs.org/user-home/-/user-home-2.0.0.tgz",
+ "integrity": "sha1-nHC/2Babwdy/SGBODwS4tJzenp8=",
+ "dev": true,
+ "requires": {
+ "os-homedir": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz"
+ }
+ },
+ "util-deprecate": {
+ "version": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
+ "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=",
+ "dev": true
+ },
+ "wordwrap": {
+ "version": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz",
+ "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=",
+ "dev": true
+ },
+ "wrappy": {
+ "version": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
+ "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=",
+ "dev": true
+ },
+ "write": {
+ "version": "https://registry.npmjs.org/write/-/write-0.2.1.tgz",
+ "integrity": "sha1-X8A4KOJkzqP+kUVUdvejxWbLB1c=",
+ "dev": true,
+ "requires": {
+ "mkdirp": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz"
+ },
+ "dependencies": {
+ "mkdirp": {
+ "version": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz",
+ "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=",
+ "dev": true,
+ "requires": {
+ "minimist": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz"
+ }
+ }
+ }
+ },
+ "xmlcreate": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/xmlcreate/-/xmlcreate-1.0.2.tgz",
+ "integrity": "sha1-+mv3YqYKQT+z3Y9LA8WyaSONMI8=",
+ "dev": true
+ },
+ "xtend": {
+ "version": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz",
+ "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68=",
+ "dev": true
+ },
+ "yargs": {
+ "version": "https://registry.npmjs.org/yargs/-/yargs-1.2.6.tgz",
+ "integrity": "sha1-nHtKgv1dWVsr8Xq23MQxNUMv40s=",
+ "dev": true,
+ "requires": {
+ "minimist": "https://registry.npmjs.org/minimist/-/minimist-0.1.0.tgz"
+ },
+ "dependencies": {
+ "minimist": {
+ "version": "https://registry.npmjs.org/minimist/-/minimist-0.1.0.tgz",
+ "integrity": "sha1-md9lelJXTCHJBXSX33QnkLK0wN4=",
+ "dev": true
+ }
+ }
+ }
+ }
+}
diff --git a/package.json b/package.json
index 6fac2dc..e650711 100644
--- a/package.json
+++ b/package.json
@@ -35,14 +35,14 @@
},
"dependencies": {},
"devDependencies": {
- "axios": "~0.5.4",
- "babel-eslint": "^7.1.1",
- "chai": "~2.3.0",
- "es6-promise": "^4.0.5",
- "eslint-config-airbnb-es5": "^1.1.0",
- "eslint-plugin-react": "^6.7.1",
- "jsdoc": "~3.3.0",
- "mocha": "~2.2.5",
+ "axios": "^0.5.4",
+ "babel-eslint": "^7.2.3",
+ "chai": "^2.3.0",
+ "es6-promise": "^4.1.1",
+ "eslint-config-airbnb-es5": "^1.2.0",
+ "eslint-plugin-react": "^6.10.3",
+ "jsdoc": "^3.5.5",
+ "mocha": "^2.5.3",
"mocha-eslint": "^3.0.1"
},
"engines": {