diff --git a/.gitignore b/.gitignore
index f8b52101..86a34a7b 100644
--- a/.gitignore
+++ b/.gitignore
@@ -17,7 +17,7 @@
/public/assets
.env
node_modules
-npm-debug.log
+npm-debug.log*
/coverage
# Ignore bundle dependencies
diff --git a/.nvmrc b/.nvmrc
index e2e3067d..819e07a2 100644
--- a/.nvmrc
+++ b/.nvmrc
@@ -1 +1 @@
-0.12.7
+5.0
diff --git a/.ruby-version b/.ruby-version
index b1b25a5f..58594069 100644
--- a/.ruby-version
+++ b/.ruby-version
@@ -1 +1 @@
-2.2.2
+2.2.3
diff --git a/.travis.yml b/.travis.yml
index 734eb60e..6afa898d 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -1,7 +1,7 @@
language:
- ruby
rvm:
- - 2.2.2
+ - 2.2.3
install:
- bundle install
- npm install -g npm
diff --git a/Gemfile b/Gemfile
index 6e6a7ff5..87610b51 100644
--- a/Gemfile
+++ b/Gemfile
@@ -1,5 +1,5 @@
source "https://rubygems.org"
-ruby "2.2.2"
+ruby "2.2.3"
#
# Bundle edge Rails instead: gem "rails", github: "rails/rails"
diff --git a/Gemfile.lock b/Gemfile.lock
index 37165ada..b0b36209 100644
--- a/Gemfile.lock
+++ b/Gemfile.lock
@@ -43,7 +43,7 @@ GEM
ast (2.1.0)
astrolabe (1.3.1)
parser (~> 2.2)
- autoprefixer-rails (6.0.3)
+ autoprefixer-rails (6.1.0.1)
execjs
json
awesome_print (1.6.1)
@@ -68,8 +68,7 @@ GEM
bundler-audit (0.4.0)
bundler (~> 1.2)
thor (~> 0.18)
- byebug (5.0.0)
- columnize (= 0.9.0)
+ byebug (8.0.0)
capybara (2.5.0)
mime-types (>= 1.16)
nokogiri (>= 1.3.3)
@@ -92,7 +91,6 @@ GEM
coffee-script-source
execjs
coffee-script-source (1.9.1.1)
- columnize (0.9.0)
connection_pool (2.2.0)
coveralls (0.8.3)
json (~> 1.8)
@@ -155,8 +153,8 @@ GEM
coderay (~> 1.1.0)
method_source (~> 0.8.1)
slop (~> 3.4)
- pry-byebug (3.2.0)
- byebug (~> 5.0)
+ pry-byebug (3.3.0)
+ byebug (~> 8.0)
pry (~> 0.10)
pry-doc (0.8.0)
pry (~> 0.9)
@@ -205,10 +203,10 @@ GEM
raindrops (0.15.0)
rake (10.4.2)
rdoc (4.2.0)
- react_on_rails (1.0.0.pre)
+ react_on_rails (1.0.1)
connection_pool
execjs (~> 2.5)
- rails (>= 4.0)
+ rails (>= 3.2)
ref (2.0.0)
rest-client (1.8.0)
http-cookie (>= 1.0.2, < 2.0)
@@ -307,7 +305,7 @@ GEM
unf (0.1.4)
unf_ext
unf_ext (0.0.7.1)
- unicorn (4.9.0)
+ unicorn (5.0.0)
kgio (~> 2.6)
rack
raindrops (~> 0.7)
diff --git a/README.md b/README.md
index 6e6dcbe4..f49bd212 100644
--- a/README.md
+++ b/README.md
@@ -189,7 +189,7 @@ module.exports = {
// And update this
styleLoader: 'style-loader!css-loader!sass-loader?imagePath=/assets/images&includePaths[]=' + bourbonPaths,
```
-- `@import 'bourbon';` Import bourbon from your [scss file](https://github.com/shakacode/react-webpack-rails-tutorial/blob/master/client/assets/stylesheets/_app-styling-post-bootstrap-loading.scss)
+- `@import 'bourbon';` Import bourbon from your [scss file](https://github.com/shakacode/react-webpack-rails-tutorial/blob/master/client/assets/stylesheets/_app-styling-post-bootstrap-loading.scss)
# Notes on Rails assets
## Rails Asset Pipeline Magic
@@ -266,11 +266,31 @@ git push heroku master
```
# Running Tests
-*Default rake task runs tests and linting*
+*Default rake task runs feature specs, mocha tests and linting*
-We have feature tests in /spec/features
+We have;
+
+* feature tests in /spec/features
+* component unit tests in /client/test/
+* javascript linting
+
+From the root of the project, you can run all specs+tests+linter with
+
+ npm run test
+
+Run the feature specs individually with `rspec`.
+
+Run the React unit tests (all .js and .jsx files) from the `client` dir with;
+
+ cd client
+ npm run test --silent
+
+In lieu of having `mocha --watch` working properly (pull request welcome!), you can have your js tests continually running with `watch`
+
+ npm install -g watch
+ cd client
+ watch 'npm run test --silent' test/ app/
-Run the tests with `rspec`.
## CI configuration
Add those lines to your CI scripts after `bundle install`
diff --git a/app/views/pages/simple.html.erb b/app/views/pages/simple.html.erb
index 970dccf3..40691d22 100644
--- a/app/views/pages/simple.html.erb
+++ b/app/views/pages/simple.html.erb
@@ -1,8 +1,11 @@
-
Using React (no Flux framework) + Rails Backend (with react_on_rails gem)
+Using React (no Flux framework) + Rails Backend (with
+ react_on_rails gem)
This example is much simpler than the one using React + Redux and is appropriate when:
- No or minimal MVC
- No async necessary
+ - No server rendering
+ - No pre-population of props
diff --git a/client/.eslintrc b/client/.eslintrc
index 9a03ae6d..ea9bccc2 100644
--- a/client/.eslintrc
+++ b/client/.eslintrc
@@ -9,6 +9,7 @@ plugins:
env:
browser: true
node: true
+ mocha: true
rules:
indent: [1, 2, { SwitchCase: 1, VariableDeclarator: 2 }]
diff --git a/client/app/components/Comment.jsx b/client/app/components/Comment.jsx
index a358bd80..b05816ac 100644
--- a/client/app/components/Comment.jsx
+++ b/client/app/components/Comment.jsx
@@ -16,7 +16,7 @@ class Comment extends React.Component {
{author}
-
+
);
}
diff --git a/client/npm-shrinkwrap.json b/client/npm-shrinkwrap.json
index 770c747a..b58f63cc 100644
--- a/client/npm-shrinkwrap.json
+++ b/client/npm-shrinkwrap.json
@@ -2,6 +2,11 @@
"name": "react-webpack-rails-tutorial",
"version": "1.1.0",
"dependencies": {
+ "abab": {
+ "version": "1.0.0",
+ "from": "abab@>=1.0.0 <2.0.0",
+ "resolved": "https://registry.npmjs.org/abab/-/abab-1.0.0.tgz"
+ },
"abbrev": {
"version": "1.0.7",
"from": "abbrev@>=1.0.0 <2.0.0",
@@ -13,18 +18,25 @@
"resolved": "https://registry.npmjs.org/accepts/-/accepts-1.2.13.tgz"
},
"acorn": {
- "version": "2.5.2",
- "from": "acorn@>=2.1.0 <3.0.0",
- "resolved": "https://registry.npmjs.org/acorn/-/acorn-2.5.2.tgz"
+ "version": "1.2.2",
+ "from": "acorn@>=1.0.3 <2.0.0",
+ "resolved": "https://registry.npmjs.org/acorn/-/acorn-1.2.2.tgz"
},
"acorn-globals": {
"version": "1.0.9",
"from": "acorn-globals@>=1.0.3 <2.0.0",
- "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-1.0.9.tgz"
+ "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-1.0.9.tgz",
+ "dependencies": {
+ "acorn": {
+ "version": "2.5.2",
+ "from": "acorn@>=2.1.0 <3.0.0",
+ "resolved": "https://registry.npmjs.org/acorn/-/acorn-2.5.2.tgz"
+ }
+ }
},
"acorn-to-esprima": {
"version": "1.0.5",
- "from": "acorn-to-esprima@>=1.0.2 <2.0.0",
+ "from": "acorn-to-esprima@>=1.0.5 <2.0.0",
"resolved": "https://registry.npmjs.org/acorn-to-esprima/-/acorn-to-esprima-1.0.5.tgz"
},
"after": {
@@ -57,6 +69,11 @@
"from": "ansi@>=0.3.0 <0.4.0",
"resolved": "https://registry.npmjs.org/ansi/-/ansi-0.3.0.tgz"
},
+ "ansi-escapes": {
+ "version": "1.1.0",
+ "from": "ansi-escapes@>=1.1.0 <2.0.0",
+ "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-1.1.0.tgz"
+ },
"ansi-green": {
"version": "0.1.1",
"from": "ansi-green@>=0.1.1 <0.2.0",
@@ -90,7 +107,13 @@
"argparse": {
"version": "1.0.3",
"from": "argparse@>=1.0.2 <1.1.0",
- "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.3.tgz"
+ "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.3.tgz",
+ "dependencies": {
+ "lodash": {
+ "version": "3.10.1",
+ "from": "lodash@>=3.2.0 <4.0.0"
+ }
+ }
},
"arr-diff": {
"version": "1.1.0",
@@ -162,6 +185,11 @@
"from": "assert-plus@>=0.1.5 <0.2.0",
"resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-0.1.5.tgz"
},
+ "assertion-error": {
+ "version": "1.0.1",
+ "from": "assertion-error@>=1.0.1 <2.0.0",
+ "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.0.1.tgz"
+ },
"ast-traverse": {
"version": "0.1.1",
"from": "ast-traverse@>=0.1.1 <0.2.0",
@@ -188,9 +216,9 @@
"resolved": "https://registry.npmjs.org/async-foreach/-/async-foreach-0.1.3.tgz"
},
"autoprefixer": {
- "version": "6.0.3",
+ "version": "6.1.0",
"from": "autoprefixer@>=6.0.3 <7.0.0",
- "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-6.0.3.tgz"
+ "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-6.1.0.tgz"
},
"aws-sign2": {
"version": "0.6.0",
@@ -205,17 +233,79 @@
"babel-core": {
"version": "5.8.33",
"from": "babel-core@>=5.8.25 <6.0.0",
- "resolved": "https://registry.npmjs.org/babel-core/-/babel-core-5.8.33.tgz"
+ "resolved": "https://registry.npmjs.org/babel-core/-/babel-core-5.8.33.tgz",
+ "dependencies": {
+ "lodash": {
+ "version": "3.10.1",
+ "from": "lodash@>=3.10.0 <4.0.0",
+ "resolved": "https://registry.npmjs.org/lodash/-/lodash-3.10.1.tgz"
+ }
+ }
},
"babel-jscs": {
"version": "2.0.5",
"from": "babel-jscs@>=2.0.0 <3.0.0",
- "resolved": "https://registry.npmjs.org/babel-jscs/-/babel-jscs-2.0.5.tgz"
+ "resolved": "https://registry.npmjs.org/babel-jscs/-/babel-jscs-2.0.5.tgz",
+ "dependencies": {
+ "ast-types": {
+ "version": "0.8.12",
+ "from": "ast-types@0.8.12",
+ "resolved": "https://registry.npmjs.org/ast-types/-/ast-types-0.8.12.tgz"
+ },
+ "babel-core": {
+ "version": "5.8.33",
+ "from": "babel-core@>=5.8.3 <5.9.0",
+ "resolved": "https://registry.npmjs.org/babel-core/-/babel-core-5.8.33.tgz",
+ "dependencies": {
+ "lodash": {
+ "version": "3.10.1",
+ "from": "lodash@>=3.10.0 <4.0.0"
+ }
+ }
+ },
+ "babylon": {
+ "version": "5.8.29",
+ "from": "babylon@>=5.8.29 <6.0.0",
+ "resolved": "https://registry.npmjs.org/babylon/-/babylon-5.8.29.tgz"
+ },
+ "globals": {
+ "version": "6.4.1",
+ "from": "globals@>=6.4.0 <7.0.0",
+ "resolved": "https://registry.npmjs.org/globals/-/globals-6.4.1.tgz"
+ },
+ "js-tokens": {
+ "version": "1.0.1",
+ "from": "js-tokens@1.0.1",
+ "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-1.0.1.tgz"
+ },
+ "recast": {
+ "version": "0.10.33",
+ "from": "recast@0.10.33",
+ "resolved": "https://registry.npmjs.org/recast/-/recast-0.10.33.tgz"
+ },
+ "regenerator": {
+ "version": "0.8.40",
+ "from": "regenerator@0.8.40",
+ "resolved": "https://registry.npmjs.org/regenerator/-/regenerator-0.8.40.tgz"
+ },
+ "source-map": {
+ "version": "0.5.3",
+ "from": "source-map@>=0.5.0 <0.6.0",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.3.tgz"
+ }
+ }
},
"babel-loader": {
"version": "5.3.3",
"from": "babel-loader@>=5.3.2 <6.0.0",
- "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-5.3.3.tgz"
+ "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-5.3.3.tgz",
+ "dependencies": {
+ "loader-utils": {
+ "version": "0.2.11",
+ "from": "loader-utils@>=0.2.9 <0.3.0",
+ "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-0.2.11.tgz"
+ }
+ }
},
"babel-plugin-constant-folding": {
"version": "1.0.1",
@@ -255,7 +345,13 @@
"babel-plugin-proto-to-assign": {
"version": "1.0.4",
"from": "babel-plugin-proto-to-assign@>=1.0.3 <2.0.0",
- "resolved": "https://registry.npmjs.org/babel-plugin-proto-to-assign/-/babel-plugin-proto-to-assign-1.0.4.tgz"
+ "resolved": "https://registry.npmjs.org/babel-plugin-proto-to-assign/-/babel-plugin-proto-to-assign-1.0.4.tgz",
+ "dependencies": {
+ "lodash": {
+ "version": "3.10.1",
+ "from": "lodash@>=3.9.3 <4.0.0"
+ }
+ }
},
"babel-plugin-react-constant-elements": {
"version": "1.0.3",
@@ -294,7 +390,7 @@
},
"babel-runtime": {
"version": "5.8.29",
- "from": "babel-runtime@>=5.8.25 <6.0.0",
+ "from": "babel-runtime@>=5.0.0 <6.0.0",
"resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-5.8.29.tgz"
},
"babylon": {
@@ -426,6 +522,11 @@
"from": "breakable@>=1.0.0 <1.1.0",
"resolved": "https://registry.npmjs.org/breakable/-/breakable-1.0.0.tgz"
},
+ "browser-request": {
+ "version": "0.3.3",
+ "from": "browser-request@>=0.3.1 <0.4.0",
+ "resolved": "https://registry.npmjs.org/browser-request/-/browser-request-0.3.3.tgz"
+ },
"browserify-zlib": {
"version": "0.1.4",
"from": "browserify-zlib@>=0.1.4 <0.2.0",
@@ -433,7 +534,7 @@
},
"browserslist": {
"version": "1.0.1",
- "from": "browserslist@>=1.0.0 <1.1.0",
+ "from": "browserslist@>=1.0.1 <1.1.0",
"resolved": "https://registry.npmjs.org/browserslist/-/browserslist-1.0.1.tgz"
},
"buffer": {
@@ -472,9 +573,9 @@
"resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-1.0.0.tgz"
},
"caniuse-db": {
- "version": "1.0.30000356",
- "from": "caniuse-db@>=1.0.30000313 <2.0.0",
- "resolved": "https://registry.npmjs.org/caniuse-db/-/caniuse-db-1.0.30000356.tgz"
+ "version": "1.0.30000359",
+ "from": "caniuse-db@>=1.0.30000359 <2.0.0",
+ "resolved": "https://registry.npmjs.org/caniuse-db/-/caniuse-db-1.0.30000359.tgz"
},
"caseless": {
"version": "0.11.0",
@@ -488,7 +589,7 @@
},
"chalk": {
"version": "1.1.1",
- "from": "chalk@>=1.0.0 <2.0.0",
+ "from": "chalk@>=1.1.0 <2.0.0",
"resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.1.tgz"
},
"character-parser": {
@@ -523,6 +624,11 @@
}
}
},
+ "cli-cursor": {
+ "version": "1.0.2",
+ "from": "cli-cursor@>=1.0.1 <2.0.0",
+ "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-1.0.2.tgz"
+ },
"cli-table": {
"version": "0.3.1",
"from": "cli-table@>=0.3.1 <0.4.0",
@@ -555,6 +661,11 @@
"from": "coa@>=1.0.1 <1.1.0",
"resolved": "https://registry.npmjs.org/coa/-/coa-1.0.1.tgz"
},
+ "code-point-at": {
+ "version": "1.0.0",
+ "from": "code-point-at@>=1.0.0 <2.0.0",
+ "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.0.0.tgz"
+ },
"colors": {
"version": "1.1.2",
"from": "colors@>=1.1.2 <1.2.0",
@@ -571,9 +682,9 @@
"resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.5.tgz"
},
"commander": {
- "version": "2.5.1",
- "from": "commander@>=2.5.0 <2.6.0",
- "resolved": "https://registry.npmjs.org/commander/-/commander-2.5.1.tgz"
+ "version": "2.9.0",
+ "from": "commander@>=2.5.0 <3.0.0",
+ "resolved": "https://registry.npmjs.org/commander/-/commander-2.9.0.tgz"
},
"comment-parser": {
"version": "0.3.0",
@@ -581,9 +692,9 @@
"resolved": "https://registry.npmjs.org/comment-parser/-/comment-parser-0.3.0.tgz"
},
"commoner": {
- "version": "0.10.3",
- "from": "commoner@>=0.10.3 <0.11.0",
- "resolved": "https://registry.npmjs.org/commoner/-/commoner-0.10.3.tgz"
+ "version": "0.10.4",
+ "from": "commoner@>=0.10.0 <0.11.0",
+ "resolved": "https://registry.npmjs.org/commoner/-/commoner-0.10.4.tgz"
},
"component-bind": {
"version": "1.0.0",
@@ -662,7 +773,14 @@
"constantinople": {
"version": "3.0.2",
"from": "constantinople@>=3.0.1 <3.1.0",
- "resolved": "https://registry.npmjs.org/constantinople/-/constantinople-3.0.2.tgz"
+ "resolved": "https://registry.npmjs.org/constantinople/-/constantinople-3.0.2.tgz",
+ "dependencies": {
+ "acorn": {
+ "version": "2.5.2",
+ "from": "acorn@>=2.1.0 <3.0.0",
+ "resolved": "https://registry.npmjs.org/acorn/-/acorn-2.5.2.tgz"
+ }
+ }
},
"constants-browserify": {
"version": "0.0.1",
@@ -766,6 +884,16 @@
}
}
},
+ "cssom": {
+ "version": "0.3.0",
+ "from": "cssom@>=0.3.0 <0.4.0",
+ "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.0.tgz"
+ },
+ "cssstyle": {
+ "version": "0.2.30",
+ "from": "cssstyle@>=0.2.29 <0.3.0",
+ "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-0.2.30.tgz"
+ },
"ctype": {
"version": "0.5.3",
"from": "ctype@0.5.3",
@@ -796,6 +924,18 @@
"from": "decamelize@>=1.0.0 <2.0.0",
"resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.1.1.tgz"
},
+ "deep-eql": {
+ "version": "0.1.3",
+ "from": "deep-eql@>=0.1.3 <0.2.0",
+ "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-0.1.3.tgz",
+ "dependencies": {
+ "type-detect": {
+ "version": "0.1.1",
+ "from": "type-detect@0.1.1",
+ "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-0.1.1.tgz"
+ }
+ }
+ },
"deep-equal": {
"version": "1.0.1",
"from": "deep-equal@*",
@@ -803,7 +943,7 @@
},
"deep-is": {
"version": "0.1.3",
- "from": "deep-is@>=0.1.2 <0.2.0",
+ "from": "deep-is@>=0.1.3 <0.2.0",
"resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz"
},
"defined": {
@@ -850,9 +990,19 @@
},
"detect-indent": {
"version": "3.0.1",
- "from": "detect-indent@>=3.0.0 <4.0.0",
+ "from": "detect-indent@>=3.0.1 <4.0.0",
"resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-3.0.1.tgz"
},
+ "detective": {
+ "version": "4.3.1",
+ "from": "detective@>=4.3.1 <5.0.0",
+ "resolved": "https://registry.npmjs.org/detective/-/detective-4.3.1.tgz"
+ },
+ "diff": {
+ "version": "1.4.0",
+ "from": "diff@1.4.0",
+ "resolved": "https://registry.npmjs.org/diff/-/diff-1.4.0.tgz"
+ },
"doctrine": {
"version": "0.7.0",
"from": "doctrine@>=0.7.0 <0.8.0",
@@ -964,14 +1114,7 @@
"enhanced-resolve": {
"version": "0.9.1",
"from": "enhanced-resolve@>=0.9.0 <0.10.0",
- "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-0.9.1.tgz",
- "dependencies": {
- "graceful-fs": {
- "version": "4.1.2",
- "from": "graceful-fs@>=4.1.2 <5.0.0",
- "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.2.tgz"
- }
- }
+ "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-0.9.1.tgz"
},
"entities": {
"version": "1.0.0",
@@ -984,9 +1127,9 @@
"resolved": "https://registry.npmjs.org/envify/-/envify-3.4.0.tgz"
},
"error-ex": {
- "version": "1.2.0",
+ "version": "1.3.0",
"from": "error-ex@>=1.2.0 <2.0.0",
- "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.2.0.tgz"
+ "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.0.tgz"
},
"es5-ext": {
"version": "0.10.8",
@@ -995,7 +1138,7 @@
},
"es5-shim": {
"version": "4.2.0",
- "from": "es5-shim@>=4.1.14 <5.0.0",
+ "from": "es5-shim@>=4.2.0 <5.0.0",
"resolved": "https://registry.npmjs.org/es5-shim/-/es5-shim-4.2.0.tgz"
},
"es6-iterator": {
@@ -1050,6 +1193,33 @@
"from": "escape-string-regexp@>=1.0.2 <2.0.0",
"resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.3.tgz"
},
+ "escodegen": {
+ "version": "1.7.0",
+ "from": "escodegen@>=1.6.1 <2.0.0",
+ "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.7.0.tgz",
+ "dependencies": {
+ "esprima": {
+ "version": "1.2.5",
+ "from": "esprima@>=1.2.2 <2.0.0",
+ "resolved": "https://registry.npmjs.org/esprima/-/esprima-1.2.5.tgz"
+ },
+ "estraverse": {
+ "version": "1.9.3",
+ "from": "estraverse@>=1.9.1 <2.0.0",
+ "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-1.9.3.tgz"
+ },
+ "optionator": {
+ "version": "0.5.0",
+ "from": "optionator@>=0.5.0 <0.6.0",
+ "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.5.0.tgz"
+ },
+ "source-map": {
+ "version": "0.2.0",
+ "from": "source-map@>=0.2.0 <0.3.0",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.2.0.tgz"
+ }
+ }
+ },
"escope": {
"version": "3.2.0",
"from": "escope@>=3.2.0 <4.0.0",
@@ -1064,7 +1234,7 @@
},
"esprima-fb": {
"version": "15001.1001.0-dev-harmony-fb",
- "from": "esprima-fb@>=15001.1001.0-dev-harmony-fb <15001.1002.0",
+ "from": "esprima-fb@>=15001.1001.0-dev-harmony-fb <15002.0.0",
"resolved": "https://registry.npmjs.org/esprima-fb/-/esprima-fb-15001.1001.0-dev-harmony-fb.tgz"
},
"esrecurse": {
@@ -1081,7 +1251,7 @@
},
"estraverse": {
"version": "4.1.1",
- "from": "estraverse@>=4.1.0 <5.0.0",
+ "from": "estraverse@>=4.1.1 <5.0.0",
"resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.1.1.tgz"
},
"estraverse-fb": {
@@ -1119,6 +1289,11 @@
"from": "exit@>=0.1.2 <0.2.0",
"resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz"
},
+ "exit-hook": {
+ "version": "1.1.1",
+ "from": "exit-hook@>=1.0.0 <2.0.0",
+ "resolved": "https://registry.npmjs.org/exit-hook/-/exit-hook-1.1.1.tgz"
+ },
"expand-brackets": {
"version": "0.1.4",
"from": "expand-brackets@>=0.1.1 <0.2.0",
@@ -1130,9 +1305,9 @@
"resolved": "https://registry.npmjs.org/expand-range/-/expand-range-1.8.1.tgz"
},
"expose-loader": {
- "version": "0.7.0",
- "from": "expose-loader@>=0.7.0 <0.8.0",
- "resolved": "https://registry.npmjs.org/expose-loader/-/expose-loader-0.7.0.tgz"
+ "version": "0.7.1",
+ "from": "expose-loader@>=0.7.1 <0.8.0",
+ "resolved": "https://registry.npmjs.org/expose-loader/-/expose-loader-0.7.1.tgz"
},
"express": {
"version": "4.13.3",
@@ -1168,7 +1343,7 @@
},
"fast-levenshtein": {
"version": "1.0.7",
- "from": "fast-levenshtein@>=1.0.0 <1.1.0",
+ "from": "fast-levenshtein@>=1.0.6 <1.1.0",
"resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-1.0.7.tgz"
},
"fastparse": {
@@ -1228,14 +1403,7 @@
"flat-cache": {
"version": "1.0.10",
"from": "flat-cache@>=1.0.9 <2.0.0",
- "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-1.0.10.tgz",
- "dependencies": {
- "graceful-fs": {
- "version": "4.1.2",
- "from": "graceful-fs@>=4.1.2 <5.0.0",
- "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.2.tgz"
- }
- }
+ "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-1.0.10.tgz"
},
"flatten": {
"version": "0.0.1",
@@ -1283,744 +1451,577 @@
"resolved": "https://registry.npmjs.org/fs-readdir-recursive/-/fs-readdir-recursive-0.1.2.tgz"
},
"fsevents": {
- "version": "1.0.2",
+ "version": "1.0.5",
"from": "fsevents@>=1.0.0 <2.0.0",
- "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.0.2.tgz",
+ "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.0.5.tgz",
"dependencies": {
- "node-pre-gyp": {
- "version": "0.6.12",
- "from": "node-pre-gyp@0.6.12",
- "resolved": "https://registry.npmjs.org/node-pre-gyp/-/node-pre-gyp-0.6.12.tgz",
+ "abbrev": {
+ "version": "1.0.7",
+ "from": "abbrev@1",
+ "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.0.7.tgz"
+ },
+ "ansi": {
+ "version": "0.3.0",
+ "from": "ansi@~0.3.0",
+ "resolved": "https://registry.npmjs.org/ansi/-/ansi-0.3.0.tgz"
+ },
+ "ansi-regex": {
+ "version": "2.0.0",
+ "from": "ansi-regex@^2.0.0",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.0.0.tgz"
+ },
+ "ansi-styles": {
+ "version": "2.1.0",
+ "from": "ansi-styles@^2.1.0",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.1.0.tgz"
+ },
+ "are-we-there-yet": {
+ "version": "1.0.4",
+ "from": "are-we-there-yet@~1.0.0",
+ "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.0.4.tgz"
+ },
+ "asn1": {
+ "version": "0.1.11",
+ "from": "asn1@0.1.11",
+ "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.1.11.tgz"
+ },
+ "assert-plus": {
+ "version": "0.1.5",
+ "from": "assert-plus@^0.1.5",
+ "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-0.1.5.tgz"
+ },
+ "async": {
+ "version": "1.5.0",
+ "from": "async@^1.4.0",
+ "resolved": "https://registry.npmjs.org/async/-/async-1.5.0.tgz"
+ },
+ "aws-sign2": {
+ "version": "0.6.0",
+ "from": "aws-sign2@~0.6.0",
+ "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.6.0.tgz"
+ },
+ "balanced-match": {
+ "version": "0.2.1",
+ "from": "balanced-match@>=0.2.0 <0.3.0",
+ "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-0.2.1.tgz"
+ },
+ "bl": {
+ "version": "1.0.0",
+ "from": "bl@~1.0.0",
+ "resolved": "https://registry.npmjs.org/bl/-/bl-1.0.0.tgz",
"dependencies": {
- "mkdirp": {
- "version": "0.5.1",
- "from": "mkdirp@~0.5.0",
- "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz",
- "dependencies": {
- "minimist": {
- "version": "0.0.8",
- "from": "minimist@0.0.8",
- "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz"
- }
- }
- },
- "nopt": {
- "version": "3.0.4",
- "from": "nopt@~3.0.1",
- "resolved": "https://registry.npmjs.org/nopt/-/nopt-3.0.4.tgz",
- "dependencies": {
- "abbrev": {
- "version": "1.0.7",
- "from": "abbrev@1",
- "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.0.7.tgz"
- }
- }
- },
- "npmlog": {
- "version": "1.2.1",
- "from": "npmlog@~1.2.0",
- "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-1.2.1.tgz",
- "dependencies": {
- "ansi": {
- "version": "0.3.0",
- "from": "ansi@~0.3.0",
- "resolved": "https://registry.npmjs.org/ansi/-/ansi-0.3.0.tgz"
- },
- "are-we-there-yet": {
- "version": "1.0.4",
- "from": "are-we-there-yet@~1.0.0",
- "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.0.4.tgz",
- "dependencies": {
- "delegates": {
- "version": "0.1.0",
- "from": "delegates@^0.1.0",
- "resolved": "https://registry.npmjs.org/delegates/-/delegates-0.1.0.tgz"
- },
- "readable-stream": {
- "version": "1.1.13",
- "from": "readable-stream@^1.1.13",
- "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.13.tgz",
- "dependencies": {
- "core-util-is": {
- "version": "1.0.1",
- "from": "core-util-is@~1.0.0",
- "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.1.tgz"
- },
- "inherits": {
- "version": "2.0.1",
- "from": "inherits@2",
- "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz"
- },
- "isarray": {
- "version": "0.0.1",
- "from": "isarray@0.0.1",
- "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz"
- },
- "string_decoder": {
- "version": "0.10.31",
- "from": "string_decoder@~0.10.x",
- "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz"
- }
- }
- }
- }
- },
- "gauge": {
- "version": "1.2.2",
- "from": "gauge@~1.2.0",
- "resolved": "https://registry.npmjs.org/gauge/-/gauge-1.2.2.tgz",
- "dependencies": {
- "has-unicode": {
- "version": "1.0.0",
- "from": "has-unicode@^1.0.0",
- "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-1.0.0.tgz"
- },
- "lodash.pad": {
- "version": "3.1.1",
- "from": "lodash.pad@^3.0.0",
- "resolved": "https://registry.npmjs.org/lodash.pad/-/lodash.pad-3.1.1.tgz",
- "dependencies": {
- "lodash._basetostring": {
- "version": "3.0.1",
- "from": "lodash._basetostring@^3.0.0",
- "resolved": "https://registry.npmjs.org/lodash._basetostring/-/lodash._basetostring-3.0.1.tgz"
- },
- "lodash._createpadding": {
- "version": "3.6.1",
- "from": "lodash._createpadding@^3.0.0",
- "resolved": "https://registry.npmjs.org/lodash._createpadding/-/lodash._createpadding-3.6.1.tgz",
- "dependencies": {
- "lodash.repeat": {
- "version": "3.0.1",
- "from": "lodash.repeat@^3.0.0",
- "resolved": "https://registry.npmjs.org/lodash.repeat/-/lodash.repeat-3.0.1.tgz"
- }
- }
- }
- }
- },
- "lodash.padleft": {
- "version": "3.1.1",
- "from": "lodash.padleft@^3.0.0",
- "resolved": "https://registry.npmjs.org/lodash.padleft/-/lodash.padleft-3.1.1.tgz",
- "dependencies": {
- "lodash._basetostring": {
- "version": "3.0.1",
- "from": "lodash._basetostring@^3.0.0",
- "resolved": "https://registry.npmjs.org/lodash._basetostring/-/lodash._basetostring-3.0.1.tgz"
- },
- "lodash._createpadding": {
- "version": "3.6.1",
- "from": "lodash._createpadding@^3.0.0",
- "resolved": "https://registry.npmjs.org/lodash._createpadding/-/lodash._createpadding-3.6.1.tgz",
- "dependencies": {
- "lodash.repeat": {
- "version": "3.0.1",
- "from": "lodash.repeat@^3.0.0",
- "resolved": "https://registry.npmjs.org/lodash.repeat/-/lodash.repeat-3.0.1.tgz"
- }
- }
- }
- }
- },
- "lodash.padright": {
- "version": "3.1.1",
- "from": "lodash.padright@^3.0.0",
- "resolved": "https://registry.npmjs.org/lodash.padright/-/lodash.padright-3.1.1.tgz",
- "dependencies": {
- "lodash._basetostring": {
- "version": "3.0.1",
- "from": "lodash._basetostring@^3.0.0",
- "resolved": "https://registry.npmjs.org/lodash._basetostring/-/lodash._basetostring-3.0.1.tgz"
- },
- "lodash._createpadding": {
- "version": "3.6.1",
- "from": "lodash._createpadding@^3.0.0",
- "resolved": "https://registry.npmjs.org/lodash._createpadding/-/lodash._createpadding-3.6.1.tgz",
- "dependencies": {
- "lodash.repeat": {
- "version": "3.0.1",
- "from": "lodash.repeat@^3.0.0",
- "resolved": "https://registry.npmjs.org/lodash.repeat/-/lodash.repeat-3.0.1.tgz"
- }
- }
- }
- }
- }
- }
- }
- }
- },
- "rc": {
- "version": "1.1.2",
- "from": "rc@~1.1.0",
- "resolved": "https://registry.npmjs.org/rc/-/rc-1.1.2.tgz",
- "dependencies": {
- "deep-extend": {
- "version": "0.2.11",
- "from": "deep-extend@~0.2.5",
- "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.2.11.tgz"
- },
- "ini": {
- "version": "1.3.4",
- "from": "ini@~1.3.0",
- "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.4.tgz"
- },
- "minimist": {
- "version": "1.2.0",
- "from": "minimist@^1.1.2",
- "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz"
- },
- "strip-json-comments": {
- "version": "0.1.3",
- "from": "strip-json-comments@0.1.x",
- "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-0.1.3.tgz"
- }
- }
- },
- "request": {
- "version": "2.64.0",
- "from": "request@2.x",
- "resolved": "https://registry.npmjs.org/request/-/request-2.64.0.tgz",
+ "readable-stream": {
+ "version": "2.0.4",
+ "from": "readable-stream@~2.0.0",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.0.4.tgz",
"dependencies": {
- "aws-sign2": {
- "version": "0.5.0",
- "from": "aws-sign2@~0.5.0",
- "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.5.0.tgz"
- },
- "bl": {
- "version": "1.0.0",
- "from": "bl@~1.0.0",
- "resolved": "https://registry.npmjs.org/bl/-/bl-1.0.0.tgz",
- "dependencies": {
- "readable-stream": {
- "version": "2.0.2",
- "from": "readable-stream@~2.0.0",
- "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.0.2.tgz",
- "dependencies": {
- "core-util-is": {
- "version": "1.0.1",
- "from": "core-util-is@~1.0.0",
- "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.1.tgz"
- },
- "inherits": {
- "version": "2.0.1",
- "from": "inherits@~2.0.1",
- "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz"
- },
- "isarray": {
- "version": "0.0.1",
- "from": "isarray@0.0.1",
- "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz"
- },
- "process-nextick-args": {
- "version": "1.0.3",
- "from": "process-nextick-args@~1.0.0",
- "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.3.tgz"
- },
- "string_decoder": {
- "version": "0.10.31",
- "from": "string_decoder@~0.10.x",
- "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz"
- },
- "util-deprecate": {
- "version": "1.0.1",
- "from": "util-deprecate@~1.0.1",
- "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.1.tgz"
- }
- }
- }
- }
- },
- "caseless": {
- "version": "0.11.0",
- "from": "caseless@~0.11.0",
- "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.11.0.tgz"
- },
- "combined-stream": {
- "version": "1.0.5",
- "from": "combined-stream@~1.0.1",
- "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.5.tgz",
- "dependencies": {
- "delayed-stream": {
- "version": "1.0.0",
- "from": "delayed-stream@~1.0.0",
- "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz"
- }
- }
- },
- "extend": {
- "version": "3.0.0",
- "from": "extend@~3.0.0",
- "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.0.tgz"
+ "core-util-is": {
+ "version": "1.0.1",
+ "from": "core-util-is@~1.0.0",
+ "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.1.tgz"
},
- "forever-agent": {
- "version": "0.6.1",
- "from": "forever-agent@~0.6.0",
- "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz"
- },
- "form-data": {
- "version": "1.0.0-rc3",
- "from": "form-data@~1.0.0-rc1",
- "resolved": "https://registry.npmjs.org/form-data/-/form-data-1.0.0-rc3.tgz",
- "dependencies": {
- "async": {
- "version": "1.4.2",
- "from": "async@^1.4.0",
- "resolved": "https://registry.npmjs.org/async/-/async-1.4.2.tgz"
- }
- }
- },
- "har-validator": {
- "version": "1.8.0",
- "from": "har-validator@^1.6.1",
- "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-1.8.0.tgz",
- "dependencies": {
- "bluebird": {
- "version": "2.10.2",
- "from": "bluebird@^2.9.30",
- "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-2.10.2.tgz"
- },
- "chalk": {
- "version": "1.1.1",
- "from": "chalk@^1.0.0",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.1.tgz",
- "dependencies": {
- "ansi-styles": {
- "version": "2.1.0",
- "from": "ansi-styles@^2.1.0",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.1.0.tgz"
- },
- "escape-string-regexp": {
- "version": "1.0.3",
- "from": "escape-string-regexp@^1.0.2",
- "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.3.tgz"
- },
- "has-ansi": {
- "version": "2.0.0",
- "from": "has-ansi@^2.0.0",
- "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz",
- "dependencies": {
- "ansi-regex": {
- "version": "2.0.0",
- "from": "ansi-regex@^2.0.0",
- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.0.0.tgz"
- }
- }
- },
- "strip-ansi": {
- "version": "3.0.0",
- "from": "strip-ansi@^3.0.0",
- "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.0.tgz",
- "dependencies": {
- "ansi-regex": {
- "version": "2.0.0",
- "from": "ansi-regex@^2.0.0",
- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.0.0.tgz"
- }
- }
- },
- "supports-color": {
- "version": "2.0.0",
- "from": "supports-color@^2.0.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz"
- }
- }
- },
- "commander": {
- "version": "2.8.1",
- "from": "commander@^2.8.1",
- "resolved": "https://registry.npmjs.org/commander/-/commander-2.8.1.tgz",
- "dependencies": {
- "graceful-readlink": {
- "version": "1.0.1",
- "from": "graceful-readlink@>= 1.0.0",
- "resolved": "https://registry.npmjs.org/graceful-readlink/-/graceful-readlink-1.0.1.tgz"
- }
- }
- },
- "is-my-json-valid": {
- "version": "2.12.2",
- "from": "is-my-json-valid@^2.12.0",
- "resolved": "https://registry.npmjs.org/is-my-json-valid/-/is-my-json-valid-2.12.2.tgz",
- "dependencies": {
- "generate-function": {
- "version": "2.0.0",
- "from": "generate-function@^2.0.0",
- "resolved": "https://registry.npmjs.org/generate-function/-/generate-function-2.0.0.tgz"
- },
- "generate-object-property": {
- "version": "1.2.0",
- "from": "generate-object-property@^1.1.0",
- "resolved": "https://registry.npmjs.org/generate-object-property/-/generate-object-property-1.2.0.tgz",
- "dependencies": {
- "is-property": {
- "version": "1.0.2",
- "from": "is-property@^1.0.0",
- "resolved": "https://registry.npmjs.org/is-property/-/is-property-1.0.2.tgz"
- }
- }
- },
- "jsonpointer": {
- "version": "2.0.0",
- "from": "jsonpointer@2.0.0",
- "resolved": "https://registry.npmjs.org/jsonpointer/-/jsonpointer-2.0.0.tgz"
- },
- "xtend": {
- "version": "4.0.0",
- "from": "xtend@^4.0.0",
- "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.0.tgz"
- }
- }
- }
- }
- },
- "hawk": {
- "version": "3.1.0",
- "from": "hawk@~3.1.0",
- "resolved": "https://registry.npmjs.org/hawk/-/hawk-3.1.0.tgz",
- "dependencies": {
- "boom": {
- "version": "2.9.0",
- "from": "boom@^2.8.x",
- "resolved": "https://registry.npmjs.org/boom/-/boom-2.9.0.tgz"
- },
- "cryptiles": {
- "version": "2.0.5",
- "from": "cryptiles@2.x.x",
- "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-2.0.5.tgz"
- },
- "hoek": {
- "version": "2.16.3",
- "from": "hoek@2.x.x",
- "resolved": "https://registry.npmjs.org/hoek/-/hoek-2.16.3.tgz"
- },
- "sntp": {
- "version": "1.0.9",
- "from": "sntp@1.x.x",
- "resolved": "https://registry.npmjs.org/sntp/-/sntp-1.0.9.tgz"
- }
- }
- },
- "http-signature": {
- "version": "0.11.0",
- "from": "http-signature@~0.11.0",
- "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-0.11.0.tgz",
- "dependencies": {
- "asn1": {
- "version": "0.1.11",
- "from": "asn1@0.1.11",
- "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.1.11.tgz"
- },
- "assert-plus": {
- "version": "0.1.5",
- "from": "assert-plus@^0.1.5",
- "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-0.1.5.tgz"
- },
- "ctype": {
- "version": "0.5.3",
- "from": "ctype@0.5.3",
- "resolved": "https://registry.npmjs.org/ctype/-/ctype-0.5.3.tgz"
- }
- }
- },
- "isstream": {
- "version": "0.1.2",
- "from": "isstream@~0.1.1",
- "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz"
- },
- "json-stringify-safe": {
- "version": "5.0.1",
- "from": "json-stringify-safe@~5.0.0",
- "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz"
- },
- "mime-types": {
- "version": "2.1.7",
- "from": "mime-types@~2.1.2",
- "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.7.tgz",
- "dependencies": {
- "mime-db": {
- "version": "1.19.0",
- "from": "mime-db@~1.19.0",
- "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.19.0.tgz"
- }
- }
- },
- "node-uuid": {
- "version": "1.4.3",
- "from": "node-uuid@~1.4.0",
- "resolved": "https://registry.npmjs.org/node-uuid/-/node-uuid-1.4.3.tgz"
- },
- "oauth-sign": {
- "version": "0.8.0",
- "from": "oauth-sign@~0.8.0",
- "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.8.0.tgz"
+ "inherits": {
+ "version": "2.0.1",
+ "from": "inherits@~2.0.1",
+ "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz"
},
- "qs": {
- "version": "5.1.0",
- "from": "qs@~5.1.0",
- "resolved": "https://registry.npmjs.org/qs/-/qs-5.1.0.tgz"
+ "isarray": {
+ "version": "0.0.1",
+ "from": "isarray@0.0.1",
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz"
},
- "stringstream": {
- "version": "0.0.4",
- "from": "stringstream@~0.0.4",
- "resolved": "https://registry.npmjs.org/stringstream/-/stringstream-0.0.4.tgz"
+ "process-nextick-args": {
+ "version": "1.0.3",
+ "from": "process-nextick-args@~1.0.0",
+ "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.3.tgz"
},
- "tough-cookie": {
- "version": "2.1.0",
- "from": "tough-cookie@>=0.12.0",
- "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.1.0.tgz"
+ "string_decoder": {
+ "version": "0.10.31",
+ "from": "string_decoder@~0.10.x",
+ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz"
},
- "tunnel-agent": {
- "version": "0.4.1",
- "from": "tunnel-agent@~0.4.0",
- "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.4.1.tgz"
- }
- }
- },
- "rimraf": {
- "version": "2.4.3",
- "from": "rimraf@~2.4.0",
- "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.4.3.tgz",
- "dependencies": {
- "glob": {
- "version": "5.0.15",
- "from": "glob@^5.0.14",
- "resolved": "https://registry.npmjs.org/glob/-/glob-5.0.15.tgz",
- "dependencies": {
- "inflight": {
- "version": "1.0.4",
- "from": "inflight@^1.0.4",
- "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.4.tgz",
- "dependencies": {
- "wrappy": {
- "version": "1.0.1",
- "from": "wrappy@1",
- "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.1.tgz"
- }
- }
- },
- "inherits": {
- "version": "2.0.1",
- "from": "inherits@~2.0.1",
- "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz"
- },
- "minimatch": {
- "version": "3.0.0",
- "from": "minimatch@2 || 3",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.0.tgz",
- "dependencies": {
- "brace-expansion": {
- "version": "1.1.1",
- "from": "brace-expansion@^1.0.0",
- "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.1.tgz",
- "dependencies": {
- "balanced-match": {
- "version": "0.2.0",
- "from": "balanced-match@^0.2.0",
- "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-0.2.0.tgz"
- },
- "concat-map": {
- "version": "0.0.1",
- "from": "concat-map@0.0.1",
- "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz"
- }
- }
- }
- }
- },
- "once": {
- "version": "1.3.2",
- "from": "once@^1.3.0",
- "resolved": "https://registry.npmjs.org/once/-/once-1.3.2.tgz",
- "dependencies": {
- "wrappy": {
- "version": "1.0.1",
- "from": "wrappy@1",
- "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.1.tgz"
- }
- }
- },
- "path-is-absolute": {
- "version": "1.0.0",
- "from": "path-is-absolute@^1.0.0",
- "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.0.tgz"
- }
- }
+ "util-deprecate": {
+ "version": "1.0.2",
+ "from": "util-deprecate@~1.0.1",
+ "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz"
}
}
+ }
+ }
+ },
+ "block-stream": {
+ "version": "0.0.8",
+ "from": "block-stream@*",
+ "resolved": "https://registry.npmjs.org/block-stream/-/block-stream-0.0.8.tgz"
+ },
+ "boom": {
+ "version": "2.10.1",
+ "from": "boom@^2.8.x",
+ "resolved": "https://registry.npmjs.org/boom/-/boom-2.10.1.tgz"
+ },
+ "brace-expansion": {
+ "version": "1.1.1",
+ "from": "brace-expansion@>=1.0.0 <2.0.0",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.1.tgz"
+ },
+ "caseless": {
+ "version": "0.11.0",
+ "from": "caseless@~0.11.0",
+ "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.11.0.tgz"
+ },
+ "chalk": {
+ "version": "1.1.1",
+ "from": "chalk@^1.1.1",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.1.tgz"
+ },
+ "combined-stream": {
+ "version": "1.0.5",
+ "from": "combined-stream@~1.0.5",
+ "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.5.tgz"
+ },
+ "commander": {
+ "version": "2.9.0",
+ "from": "commander@^2.8.1",
+ "resolved": "https://registry.npmjs.org/commander/-/commander-2.9.0.tgz"
+ },
+ "concat-map": {
+ "version": "0.0.1",
+ "from": "concat-map@0.0.1",
+ "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz"
+ },
+ "core-util-is": {
+ "version": "1.0.1",
+ "from": "core-util-is@~1.0.0",
+ "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.1.tgz"
+ },
+ "cryptiles": {
+ "version": "2.0.5",
+ "from": "cryptiles@2.x.x",
+ "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-2.0.5.tgz"
+ },
+ "ctype": {
+ "version": "0.5.3",
+ "from": "ctype@0.5.3",
+ "resolved": "https://registry.npmjs.org/ctype/-/ctype-0.5.3.tgz"
+ },
+ "debug": {
+ "version": "0.7.4",
+ "from": "debug@~0.7.2",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-0.7.4.tgz"
+ },
+ "deep-extend": {
+ "version": "0.2.11",
+ "from": "deep-extend@~0.2.5",
+ "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.2.11.tgz"
+ },
+ "delayed-stream": {
+ "version": "1.0.0",
+ "from": "delayed-stream@~1.0.0",
+ "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz"
+ },
+ "delegates": {
+ "version": "0.1.0",
+ "from": "delegates@^0.1.0",
+ "resolved": "https://registry.npmjs.org/delegates/-/delegates-0.1.0.tgz"
+ },
+ "escape-string-regexp": {
+ "version": "1.0.3",
+ "from": "escape-string-regexp@^1.0.2",
+ "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.3.tgz"
+ },
+ "extend": {
+ "version": "3.0.0",
+ "from": "extend@~3.0.0",
+ "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.0.tgz"
+ },
+ "forever-agent": {
+ "version": "0.6.1",
+ "from": "forever-agent@~0.6.1",
+ "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz"
+ },
+ "form-data": {
+ "version": "1.0.0-rc3",
+ "from": "form-data@~1.0.0-rc3",
+ "resolved": "https://registry.npmjs.org/form-data/-/form-data-1.0.0-rc3.tgz"
+ },
+ "fstream": {
+ "version": "1.0.8",
+ "from": "fstream@^1.0.2",
+ "resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.8.tgz"
+ },
+ "fstream-ignore": {
+ "version": "1.0.3",
+ "from": "fstream-ignore@~1.0.3",
+ "resolved": "https://registry.npmjs.org/fstream-ignore/-/fstream-ignore-1.0.3.tgz",
+ "dependencies": {
+ "minimatch": {
+ "version": "3.0.0",
+ "from": "minimatch@>=3.0.0 <4.0.0"
+ }
+ }
+ },
+ "gauge": {
+ "version": "1.2.2",
+ "from": "gauge@~1.2.0",
+ "resolved": "https://registry.npmjs.org/gauge/-/gauge-1.2.2.tgz"
+ },
+ "generate-function": {
+ "version": "2.0.0",
+ "from": "generate-function@^2.0.0",
+ "resolved": "https://registry.npmjs.org/generate-function/-/generate-function-2.0.0.tgz"
+ },
+ "generate-object-property": {
+ "version": "1.2.0",
+ "from": "generate-object-property@^1.1.0",
+ "resolved": "https://registry.npmjs.org/generate-object-property/-/generate-object-property-1.2.0.tgz"
+ },
+ "graceful-fs": {
+ "version": "4.1.2",
+ "from": "graceful-fs@4.1",
+ "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.2.tgz"
+ },
+ "graceful-readlink": {
+ "version": "1.0.1",
+ "from": "graceful-readlink@>= 1.0.0",
+ "resolved": "https://registry.npmjs.org/graceful-readlink/-/graceful-readlink-1.0.1.tgz"
+ },
+ "har-validator": {
+ "version": "2.0.2",
+ "from": "har-validator@~2.0.2",
+ "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-2.0.2.tgz"
+ },
+ "has-ansi": {
+ "version": "2.0.0",
+ "from": "has-ansi@^2.0.0",
+ "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz"
+ },
+ "has-unicode": {
+ "version": "1.0.1",
+ "from": "has-unicode@^1.0.0",
+ "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-1.0.1.tgz"
+ },
+ "hawk": {
+ "version": "3.1.0",
+ "from": "hawk@~3.1.0",
+ "resolved": "https://registry.npmjs.org/hawk/-/hawk-3.1.0.tgz"
+ },
+ "hoek": {
+ "version": "2.16.3",
+ "from": "hoek@2.x.x",
+ "resolved": "https://registry.npmjs.org/hoek/-/hoek-2.16.3.tgz"
+ },
+ "http-signature": {
+ "version": "0.11.0",
+ "from": "http-signature@~0.11.0",
+ "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-0.11.0.tgz"
+ },
+ "inflight": {
+ "version": "1.0.4",
+ "from": "inflight@>=1.0.4 <2.0.0",
+ "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.4.tgz",
+ "dependencies": {
+ "once": {
+ "version": "1.3.2",
+ "from": "once@>=1.3.0 <2.0.0"
+ }
+ }
+ },
+ "inherits": {
+ "version": "2.0.1",
+ "from": "inherits@*",
+ "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz"
+ },
+ "ini": {
+ "version": "1.3.4",
+ "from": "ini@~1.3.0",
+ "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.4.tgz"
+ },
+ "is-my-json-valid": {
+ "version": "2.12.2",
+ "from": "is-my-json-valid@^2.12.2",
+ "resolved": "https://registry.npmjs.org/is-my-json-valid/-/is-my-json-valid-2.12.2.tgz"
+ },
+ "is-property": {
+ "version": "1.0.2",
+ "from": "is-property@^1.0.0",
+ "resolved": "https://registry.npmjs.org/is-property/-/is-property-1.0.2.tgz"
+ },
+ "isarray": {
+ "version": "0.0.1",
+ "from": "isarray@0.0.1",
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz"
+ },
+ "isstream": {
+ "version": "0.1.2",
+ "from": "isstream@~0.1.2",
+ "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz"
+ },
+ "json-stringify-safe": {
+ "version": "5.0.1",
+ "from": "json-stringify-safe@~5.0.1",
+ "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz"
+ },
+ "jsonpointer": {
+ "version": "2.0.0",
+ "from": "jsonpointer@2.0.0",
+ "resolved": "https://registry.npmjs.org/jsonpointer/-/jsonpointer-2.0.0.tgz"
+ },
+ "lodash._basetostring": {
+ "version": "3.0.1",
+ "from": "lodash._basetostring@^3.0.0",
+ "resolved": "https://registry.npmjs.org/lodash._basetostring/-/lodash._basetostring-3.0.1.tgz"
+ },
+ "lodash._createpadding": {
+ "version": "3.6.1",
+ "from": "lodash._createpadding@^3.0.0",
+ "resolved": "https://registry.npmjs.org/lodash._createpadding/-/lodash._createpadding-3.6.1.tgz"
+ },
+ "lodash.pad": {
+ "version": "3.1.1",
+ "from": "lodash.pad@^3.0.0",
+ "resolved": "https://registry.npmjs.org/lodash.pad/-/lodash.pad-3.1.1.tgz"
+ },
+ "lodash.padleft": {
+ "version": "3.1.1",
+ "from": "lodash.padleft@^3.0.0",
+ "resolved": "https://registry.npmjs.org/lodash.padleft/-/lodash.padleft-3.1.1.tgz"
+ },
+ "lodash.padright": {
+ "version": "3.1.1",
+ "from": "lodash.padright@^3.0.0",
+ "resolved": "https://registry.npmjs.org/lodash.padright/-/lodash.padright-3.1.1.tgz"
+ },
+ "lodash.repeat": {
+ "version": "3.0.1",
+ "from": "lodash.repeat@^3.0.0",
+ "resolved": "https://registry.npmjs.org/lodash.repeat/-/lodash.repeat-3.0.1.tgz"
+ },
+ "mime-db": {
+ "version": "1.19.0",
+ "from": "mime-db@~1.19.0",
+ "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.19.0.tgz"
+ },
+ "mime-types": {
+ "version": "2.1.7",
+ "from": "mime-types@~2.1.7",
+ "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.7.tgz"
+ },
+ "minimist": {
+ "version": "0.0.8",
+ "from": "minimist@0.0.8",
+ "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz"
+ },
+ "mkdirp": {
+ "version": "0.5.1",
+ "from": "mkdirp@>=0.3.0 <0.4.0||>=0.4.0 <0.5.0||>=0.5.0 <0.6.0",
+ "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz"
+ },
+ "node-pre-gyp": {
+ "version": "0.6.15",
+ "from": "node-pre-gyp@latest",
+ "resolved": "https://registry.npmjs.org/node-pre-gyp/-/node-pre-gyp-0.6.15.tgz",
+ "dependencies": {
+ "nopt": {
+ "version": "3.0.4",
+ "from": "nopt@>=3.0.1 <3.1.0",
+ "resolved": "https://registry.npmjs.org/nopt/-/nopt-3.0.4.tgz"
+ }
+ }
+ },
+ "node-uuid": {
+ "version": "1.4.3",
+ "from": "node-uuid@~1.4.3",
+ "resolved": "https://registry.npmjs.org/node-uuid/-/node-uuid-1.4.3.tgz"
+ },
+ "npmlog": {
+ "version": "1.2.1",
+ "from": "npmlog@~1.2.0",
+ "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-1.2.1.tgz"
+ },
+ "oauth-sign": {
+ "version": "0.8.0",
+ "from": "oauth-sign@~0.8.0",
+ "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.8.0.tgz"
+ },
+ "once": {
+ "version": "1.1.1",
+ "from": "once@~1.1.1",
+ "resolved": "https://registry.npmjs.org/once/-/once-1.1.1.tgz"
+ },
+ "path-is-absolute": {
+ "version": "1.0.0",
+ "from": "path-is-absolute@>=1.0.0 <2.0.0",
+ "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.0.tgz"
+ },
+ "pinkie": {
+ "version": "1.0.0",
+ "from": "pinkie@^1.0.0",
+ "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-1.0.0.tgz"
+ },
+ "pinkie-promise": {
+ "version": "1.0.0",
+ "from": "pinkie-promise@^1.0.0",
+ "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-1.0.0.tgz"
+ },
+ "qs": {
+ "version": "5.2.0",
+ "from": "qs@~5.2.0",
+ "resolved": "https://registry.npmjs.org/qs/-/qs-5.2.0.tgz"
+ },
+ "rc": {
+ "version": "1.1.2",
+ "from": "rc@~1.1.0",
+ "resolved": "https://registry.npmjs.org/rc/-/rc-1.1.2.tgz",
+ "dependencies": {
+ "minimist": {
+ "version": "1.2.0",
+ "from": "minimist@^1.1.2",
+ "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz"
+ }
+ }
+ },
+ "readable-stream": {
+ "version": "1.1.13",
+ "from": "readable-stream@^1.1.13",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.13.tgz"
+ },
+ "request": {
+ "version": "2.65.0",
+ "from": "request@2.x",
+ "resolved": "https://registry.npmjs.org/request/-/request-2.65.0.tgz"
+ },
+ "rimraf": {
+ "version": "2.4.3",
+ "from": "rimraf@~2.4.0",
+ "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.4.3.tgz",
+ "dependencies": {
+ "glob": {
+ "version": "5.0.15",
+ "from": "glob@>=5.0.14 <6.0.0",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-5.0.15.tgz"
},
- "semver": {
- "version": "5.0.3",
- "from": "semver@~5.0.1",
- "resolved": "https://registry.npmjs.org/semver/-/semver-5.0.3.tgz"
+ "minimatch": {
+ "version": "3.0.0",
+ "from": "minimatch@>=2.0.0 <3.0.0||>=3.0.0 <4.0.0",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.0.tgz"
},
- "tar": {
- "version": "2.2.1",
- "from": "tar@~2.2.0",
- "resolved": "https://registry.npmjs.org/tar/-/tar-2.2.1.tgz",
+ "once": {
+ "version": "1.3.2",
+ "from": "once@>=1.3.0 <2.0.0",
+ "resolved": "https://registry.npmjs.org/once/-/once-1.3.2.tgz"
+ }
+ }
+ },
+ "semver": {
+ "version": "5.0.3",
+ "from": "semver@~5.0.1",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-5.0.3.tgz"
+ },
+ "sntp": {
+ "version": "1.0.9",
+ "from": "sntp@1.x.x",
+ "resolved": "https://registry.npmjs.org/sntp/-/sntp-1.0.9.tgz"
+ },
+ "string_decoder": {
+ "version": "0.10.31",
+ "from": "string_decoder@~0.10.x",
+ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz"
+ },
+ "stringstream": {
+ "version": "0.0.5",
+ "from": "stringstream@~0.0.4",
+ "resolved": "https://registry.npmjs.org/stringstream/-/stringstream-0.0.5.tgz"
+ },
+ "strip-ansi": {
+ "version": "3.0.0",
+ "from": "strip-ansi@^3.0.0",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.0.tgz"
+ },
+ "strip-json-comments": {
+ "version": "0.1.3",
+ "from": "strip-json-comments@0.1.x",
+ "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-0.1.3.tgz"
+ },
+ "supports-color": {
+ "version": "2.0.0",
+ "from": "supports-color@^2.0.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz"
+ },
+ "tar": {
+ "version": "2.2.1",
+ "from": "tar@~2.2.0",
+ "resolved": "https://registry.npmjs.org/tar/-/tar-2.2.1.tgz"
+ },
+ "tar-pack": {
+ "version": "3.1.0",
+ "from": "tar-pack@~3.1.0",
+ "resolved": "https://registry.npmjs.org/tar-pack/-/tar-pack-3.1.0.tgz",
+ "dependencies": {
+ "readable-stream": {
+ "version": "1.0.33",
+ "from": "readable-stream@~1.0.2",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.33.tgz",
"dependencies": {
- "block-stream": {
- "version": "0.0.8",
- "from": "block-stream@*",
- "resolved": "https://registry.npmjs.org/block-stream/-/block-stream-0.0.8.tgz"
- },
- "fstream": {
- "version": "1.0.8",
- "from": "fstream@^1.0.2",
- "resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.8.tgz",
- "dependencies": {
- "graceful-fs": {
- "version": "4.1.2",
- "from": "graceful-fs@^4.1.2",
- "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.2.tgz"
- }
- }
+ "core-util-is": {
+ "version": "1.0.1",
+ "from": "core-util-is@~1.0.0",
+ "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.1.tgz"
},
"inherits": {
"version": "2.0.1",
- "from": "inherits@2",
+ "from": "inherits@~2.0.1",
"resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz"
- }
- }
- },
- "tar-pack": {
- "version": "2.0.0",
- "from": "tar-pack@~2.0.0",
- "resolved": "https://registry.npmjs.org/tar-pack/-/tar-pack-2.0.0.tgz",
- "dependencies": {
- "debug": {
- "version": "0.7.4",
- "from": "debug@~0.7.2",
- "resolved": "https://registry.npmjs.org/debug/-/debug-0.7.4.tgz"
- },
- "fstream": {
- "version": "0.1.31",
- "from": "fstream@~0.1.22",
- "resolved": "https://registry.npmjs.org/fstream/-/fstream-0.1.31.tgz",
- "dependencies": {
- "graceful-fs": {
- "version": "3.0.8",
- "from": "graceful-fs@~3.0.2",
- "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-3.0.8.tgz"
- },
- "inherits": {
- "version": "2.0.1",
- "from": "inherits@~2.0.0",
- "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz"
- }
- }
- },
- "fstream-ignore": {
- "version": "0.0.7",
- "from": "fstream-ignore@0.0.7",
- "resolved": "https://registry.npmjs.org/fstream-ignore/-/fstream-ignore-0.0.7.tgz",
- "dependencies": {
- "inherits": {
- "version": "2.0.1",
- "from": "inherits@~2.0.1",
- "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz"
- },
- "minimatch": {
- "version": "0.2.14",
- "from": "minimatch@~0.2.0",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-0.2.14.tgz",
- "dependencies": {
- "lru-cache": {
- "version": "2.7.0",
- "from": "lru-cache@2",
- "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-2.7.0.tgz"
- },
- "sigmund": {
- "version": "1.0.1",
- "from": "sigmund@~1.0.0",
- "resolved": "https://registry.npmjs.org/sigmund/-/sigmund-1.0.1.tgz"
- }
- }
- }
- }
- },
- "graceful-fs": {
- "version": "1.2.3",
- "from": "graceful-fs@1.2",
- "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-1.2.3.tgz"
},
- "once": {
- "version": "1.1.1",
- "from": "once@~1.1.1",
- "resolved": "https://registry.npmjs.org/once/-/once-1.1.1.tgz"
+ "isarray": {
+ "version": "0.0.1",
+ "from": "isarray@0.0.1",
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz"
},
- "readable-stream": {
- "version": "1.0.33",
- "from": "readable-stream@~1.0.2",
- "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.33.tgz",
- "dependencies": {
- "core-util-is": {
- "version": "1.0.1",
- "from": "core-util-is@~1.0.0",
- "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.1.tgz"
- },
- "inherits": {
- "version": "2.0.1",
- "from": "inherits@~2.0.1",
- "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz"
- },
- "isarray": {
- "version": "0.0.1",
- "from": "isarray@0.0.1",
- "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz"
- },
- "string_decoder": {
- "version": "0.10.31",
- "from": "string_decoder@~0.10.x",
- "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz"
- }
- }
- },
- "rimraf": {
- "version": "2.2.8",
- "from": "rimraf@~2.2.0",
- "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.2.8.tgz"
- },
- "tar": {
- "version": "0.1.20",
- "from": "tar@~0.1.17",
- "resolved": "https://registry.npmjs.org/tar/-/tar-0.1.20.tgz",
- "dependencies": {
- "block-stream": {
- "version": "0.0.8",
- "from": "block-stream@*",
- "resolved": "https://registry.npmjs.org/block-stream/-/block-stream-0.0.8.tgz"
- },
- "inherits": {
- "version": "2.0.1",
- "from": "inherits@2",
- "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz"
- }
- }
- },
- "uid-number": {
- "version": "0.0.3",
- "from": "uid-number@0.0.3",
- "resolved": "https://registry.npmjs.org/uid-number/-/uid-number-0.0.3.tgz"
+ "string_decoder": {
+ "version": "0.10.31",
+ "from": "string_decoder@~0.10.x",
+ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz"
}
}
+ },
+ "rimraf": {
+ "version": "2.2.8",
+ "from": "rimraf@~2.2.0",
+ "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.2.8.tgz"
}
}
+ },
+ "tough-cookie": {
+ "version": "2.2.0",
+ "from": "tough-cookie@~2.2.0",
+ "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.2.0.tgz"
+ },
+ "tunnel-agent": {
+ "version": "0.4.1",
+ "from": "tunnel-agent@~0.4.1",
+ "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.4.1.tgz"
+ },
+ "uid-number": {
+ "version": "0.0.3",
+ "from": "uid-number@0.0.3",
+ "resolved": "https://registry.npmjs.org/uid-number/-/uid-number-0.0.3.tgz"
+ },
+ "wrappy": {
+ "version": "1.0.1",
+ "from": "wrappy@>=1.0.0 <2.0.0",
+ "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.1.tgz"
+ },
+ "xtend": {
+ "version": "4.0.1",
+ "from": "xtend@^4.0.0",
+ "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz"
}
}
},
"fstream": {
"version": "1.0.8",
"from": "fstream@>=1.0.0 <2.0.0",
- "resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.8.tgz",
- "dependencies": {
- "graceful-fs": {
- "version": "4.1.2",
- "from": "graceful-fs@>=4.1.2 <5.0.0",
- "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.2.tgz"
- }
- }
+ "resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.8.tgz"
},
"gauge": {
"version": "1.2.2",
@@ -2048,16 +2049,9 @@
"resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz"
},
"glob": {
- "version": "4.2.2",
- "from": "glob@>=4.2.1 <4.3.0",
- "resolved": "https://registry.npmjs.org/glob/-/glob-4.2.2.tgz",
- "dependencies": {
- "minimatch": {
- "version": "1.0.0",
- "from": "minimatch@>=1.0.0 <2.0.0",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-1.0.0.tgz"
- }
- }
+ "version": "5.0.15",
+ "from": "glob@>=5.0.15 <6.0.0",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-5.0.15.tgz"
},
"glob-base": {
"version": "0.3.0",
@@ -2091,11 +2085,6 @@
"from": "globby@>=3.0.0 <4.0.0",
"resolved": "https://registry.npmjs.org/globby/-/globby-3.0.1.tgz",
"dependencies": {
- "glob": {
- "version": "5.0.15",
- "from": "glob@>=5.0.3 <6.0.0",
- "resolved": "https://registry.npmjs.org/glob/-/glob-5.0.15.tgz"
- },
"object-assign": {
"version": "4.0.1",
"from": "object-assign@>=4.0.1 <5.0.0",
@@ -2136,15 +2125,20 @@
}
},
"graceful-fs": {
- "version": "3.0.8",
- "from": "graceful-fs@>=3.0.4 <3.1.0",
- "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-3.0.8.tgz"
+ "version": "4.1.2",
+ "from": "graceful-fs@>=4.1.2 <5.0.0",
+ "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.2.tgz"
},
"graceful-readlink": {
"version": "1.0.1",
"from": "graceful-readlink@>=1.0.0",
"resolved": "https://registry.npmjs.org/graceful-readlink/-/graceful-readlink-1.0.1.tgz"
},
+ "growl": {
+ "version": "1.8.1",
+ "from": "growl@1.8.1",
+ "resolved": "https://registry.npmjs.org/growl/-/growl-1.8.1.tgz"
+ },
"handlebars": {
"version": "4.0.4",
"from": "handlebars@>=4.0.0 <5.0.0",
@@ -2154,20 +2148,40 @@
"version": "0.4.4",
"from": "source-map@>=0.4.4 <0.5.0",
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz"
+ },
+ "uglify-js": {
+ "version": "2.4.24",
+ "from": "uglify-js@>=2.4.0 <2.5.0",
+ "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.4.24.tgz",
+ "dependencies": {
+ "async": {
+ "version": "0.2.10",
+ "from": "async@>=0.2.6 <0.3.0",
+ "resolved": "https://registry.npmjs.org/async/-/async-0.2.10.tgz"
+ },
+ "source-map": {
+ "version": "0.1.34",
+ "from": "source-map@0.1.34",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.1.34.tgz"
+ }
+ }
+ },
+ "window-size": {
+ "version": "0.1.0",
+ "from": "window-size@0.1.0",
+ "resolved": "https://registry.npmjs.org/window-size/-/window-size-0.1.0.tgz"
+ },
+ "yargs": {
+ "version": "3.5.4",
+ "from": "yargs@>=3.5.4 <3.6.0",
+ "resolved": "https://registry.npmjs.org/yargs/-/yargs-3.5.4.tgz"
}
}
},
"har-validator": {
"version": "2.0.2",
"from": "har-validator@>=2.0.2 <2.1.0",
- "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-2.0.2.tgz",
- "dependencies": {
- "commander": {
- "version": "2.9.0",
- "from": "commander@>=2.8.1 <3.0.0",
- "resolved": "https://registry.npmjs.org/commander/-/commander-2.9.0.tgz"
- }
- }
+ "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-2.0.2.tgz"
},
"has-ansi": {
"version": "2.0.0",
@@ -2217,9 +2231,9 @@
"resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-1.0.1.tgz"
},
"hawk": {
- "version": "3.1.0",
+ "version": "3.1.1",
"from": "hawk@>=3.1.0 <3.2.0",
- "resolved": "https://registry.npmjs.org/hawk/-/hawk-3.1.0.tgz"
+ "resolved": "https://registry.npmjs.org/hawk/-/hawk-3.1.1.tgz"
},
"hoek": {
"version": "2.16.3",
@@ -2281,6 +2295,11 @@
"from": "iconv-lite@>=0.4.5 <0.5.0",
"resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.13.tgz"
},
+ "icss-replace-symbols": {
+ "version": "1.0.2",
+ "from": "icss-replace-symbols@>=1.0.2 <2.0.0",
+ "resolved": "https://registry.npmjs.org/icss-replace-symbols/-/icss-replace-symbols-1.0.2.tgz"
+ },
"ieee754": {
"version": "1.1.6",
"from": "ieee754@>=1.1.4 <2.0.0",
@@ -2293,9 +2312,13 @@
},
"imports-loader": {
"version": "0.6.5",
- "from": "imports-loader@>=0.6.4 <0.7.0",
+ "from": "imports-loader@>=0.6.5 <0.7.0",
"resolved": "https://registry.npmjs.org/imports-loader/-/imports-loader-0.6.5.tgz",
"dependencies": {
+ "loader-utils": {
+ "version": "0.2.11",
+ "from": "loader-utils@>=0.2.0 <0.3.0"
+ },
"source-map": {
"version": "0.1.43",
"from": "source-map@>=0.1.0 <0.2.0",
@@ -2341,14 +2364,15 @@
"resolved": "https://registry.npmjs.org/ini/-/ini-1.3.4.tgz"
},
"inquirer": {
- "version": "0.9.0",
- "from": "inquirer@>=0.9.0 <0.10.0",
- "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-0.9.0.tgz"
- },
- "install": {
- "version": "0.1.8",
- "from": "install@>=0.1.7 <0.2.0",
- "resolved": "https://registry.npmjs.org/install/-/install-0.1.8.tgz"
+ "version": "0.11.0",
+ "from": "inquirer@>=0.11.0 <0.12.0",
+ "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-0.11.0.tgz",
+ "dependencies": {
+ "lodash": {
+ "version": "3.10.1",
+ "from": "lodash@>=3.3.1 <4.0.0"
+ }
+ }
},
"interpret": {
"version": "0.6.6",
@@ -2385,6 +2409,11 @@
"from": "is-array@>=1.0.1 <2.0.0",
"resolved": "https://registry.npmjs.org/is-array/-/is-array-1.0.1.tgz"
},
+ "is-arrayish": {
+ "version": "0.2.1",
+ "from": "is-arrayish@>=0.2.1 <0.3.0",
+ "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz"
+ },
"is-binary-path": {
"version": "1.0.1",
"from": "is-binary-path@>=1.0.0 <2.0.0",
@@ -2420,6 +2449,11 @@
"from": "is-finite@>=1.0.0 <2.0.0",
"resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.1.tgz"
},
+ "is-fullwidth-code-point": {
+ "version": "1.0.0",
+ "from": "is-fullwidth-code-point@>=1.0.0 <2.0.0",
+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz"
+ },
"is-glob": {
"version": "2.0.1",
"from": "is-glob@>=2.0.0 <3.0.0",
@@ -2431,9 +2465,9 @@
"resolved": "https://registry.npmjs.org/is-integer/-/is-integer-1.0.6.tgz"
},
"is-my-json-valid": {
- "version": "2.12.2",
+ "version": "2.12.3",
"from": "is-my-json-valid@>=2.10.0 <3.0.0",
- "resolved": "https://registry.npmjs.org/is-my-json-valid/-/is-my-json-valid-2.12.2.tgz"
+ "resolved": "https://registry.npmjs.org/is-my-json-valid/-/is-my-json-valid-2.12.3.tgz"
},
"is-number": {
"version": "1.1.2",
@@ -2456,9 +2490,9 @@
"resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-1.0.0.tgz"
},
"is-plain-obj": {
- "version": "1.0.0",
+ "version": "1.1.0",
"from": "is-plain-obj@>=1.0.0 <2.0.0",
- "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.0.0.tgz"
+ "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz"
},
"is-primitive": {
"version": "2.0.0",
@@ -2555,7 +2589,13 @@
"jsdoctypeparser": {
"version": "1.2.0",
"from": "jsdoctypeparser@>=1.2.0 <1.3.0",
- "resolved": "https://registry.npmjs.org/jsdoctypeparser/-/jsdoctypeparser-1.2.0.tgz"
+ "resolved": "https://registry.npmjs.org/jsdoctypeparser/-/jsdoctypeparser-1.2.0.tgz",
+ "dependencies": {
+ "lodash": {
+ "version": "3.10.1",
+ "from": "lodash@>=3.7.0 <4.0.0"
+ }
+ }
},
"jsesc": {
"version": "0.5.0",
@@ -2673,20 +2713,13 @@
},
"line-numbers": {
"version": "0.2.0",
- "from": "line-numbers@0.2.0",
+ "from": "line-numbers@>=0.2.0 <0.3.0",
"resolved": "https://registry.npmjs.org/line-numbers/-/line-numbers-0.2.0.tgz"
},
"load-json-file": {
"version": "1.0.1",
"from": "load-json-file@>=1.0.0 <2.0.0",
- "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.0.1.tgz",
- "dependencies": {
- "graceful-fs": {
- "version": "4.1.2",
- "from": "graceful-fs@>=4.1.2 <5.0.0",
- "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.2.tgz"
- }
- }
+ "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.0.1.tgz"
},
"loader-utils": {
"version": "0.2.11",
@@ -2778,6 +2811,11 @@
"from": "lodash._createcache@>=3.0.0 <4.0.0",
"resolved": "https://registry.npmjs.org/lodash._createcache/-/lodash._createcache-3.1.2.tgz"
},
+ "lodash._createcompounder": {
+ "version": "3.0.0",
+ "from": "lodash._createcompounder@>=3.0.0 <4.0.0",
+ "resolved": "https://registry.npmjs.org/lodash._createcompounder/-/lodash._createcompounder-3.0.0.tgz"
+ },
"lodash._createpadding": {
"version": "3.6.1",
"from": "lodash._createpadding@>=3.0.0 <4.0.0",
@@ -2805,14 +2843,24 @@
},
"lodash.assign": {
"version": "3.2.0",
- "from": "lodash.assign@>=3.0.0 <4.0.0",
+ "from": "lodash.assign@>=3.2.0 <4.0.0",
"resolved": "https://registry.npmjs.org/lodash.assign/-/lodash.assign-3.2.0.tgz"
},
+ "lodash.camelcase": {
+ "version": "3.0.1",
+ "from": "lodash.camelcase@>=3.0.1 <4.0.0",
+ "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-3.0.1.tgz"
+ },
"lodash.clonedeep": {
"version": "3.0.2",
"from": "lodash.clonedeep@>=3.0.1 <4.0.0",
"resolved": "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-3.0.2.tgz"
},
+ "lodash.deburr": {
+ "version": "3.0.2",
+ "from": "lodash.deburr@>=3.0.0 <4.0.0",
+ "resolved": "https://registry.npmjs.org/lodash.deburr/-/lodash.deburr-3.0.2.tgz"
+ },
"lodash.flatten": {
"version": "3.0.2",
"from": "lodash.flatten@>=3.0.2 <4.0.0",
@@ -2893,6 +2941,11 @@
"from": "lodash.toplainobject@>=3.0.0 <4.0.0",
"resolved": "https://registry.npmjs.org/lodash.toplainobject/-/lodash.toplainobject-3.0.0.tgz"
},
+ "lodash.words": {
+ "version": "3.0.2",
+ "from": "lodash.words@>=3.0.0 <4.0.0",
+ "resolved": "https://registry.npmjs.org/lodash.words/-/lodash.words-3.0.2.tgz"
+ },
"longest": {
"version": "1.0.1",
"from": "longest@>=1.0.1 <2.0.0",
@@ -3004,7 +3057,7 @@
},
"mkdirp": {
"version": "0.5.1",
- "from": "mkdirp@>=0.5.1 <0.6.0",
+ "from": "mkdirp@>=0.5.0 <0.6.0",
"resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz",
"dependencies": {
"minimist": {
@@ -3020,9 +3073,9 @@
"resolved": "https://registry.npmjs.org/ms/-/ms-0.7.1.tgz"
},
"mute-stream": {
- "version": "0.0.4",
- "from": "mute-stream@0.0.4",
- "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.4.tgz"
+ "version": "0.0.5",
+ "from": "mute-stream@0.0.5",
+ "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.5.tgz"
},
"nan": {
"version": "2.1.0",
@@ -3049,10 +3102,16 @@
"from": "node-gyp@>=3.0.1 <4.0.0",
"resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-3.0.3.tgz",
"dependencies": {
- "graceful-fs": {
- "version": "4.1.2",
- "from": "graceful-fs@>=4.1.2 <5.0.0",
- "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.2.tgz"
+ "glob": {
+ "version": "4.5.3",
+ "from": "glob@>=3.0.0 <4.0.0||>=4.0.0 <5.0.0",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-4.5.3.tgz",
+ "dependencies": {
+ "minimatch": {
+ "version": "2.0.10",
+ "from": "minimatch@>=2.0.1 <3.0.0"
+ }
+ }
},
"minimatch": {
"version": "1.0.0",
@@ -3142,6 +3201,11 @@
"from": "number-is-nan@>=1.0.0 <2.0.0",
"resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.0.tgz"
},
+ "nwmatcher": {
+ "version": "1.3.6",
+ "from": "nwmatcher@>=1.3.6 <2.0.0",
+ "resolved": "https://registry.npmjs.org/nwmatcher/-/nwmatcher-1.3.6.tgz"
+ },
"oauth-sign": {
"version": "0.8.0",
"from": "oauth-sign@>=0.8.0 <0.9.0",
@@ -3182,6 +3246,11 @@
"from": "once@>=1.3.0 <2.0.0",
"resolved": "https://registry.npmjs.org/once/-/once-1.3.2.tgz"
},
+ "onetime": {
+ "version": "1.0.0",
+ "from": "onetime@>=1.0.0 <2.0.0",
+ "resolved": "https://registry.npmjs.org/onetime/-/onetime-1.0.0.tgz"
+ },
"optimist": {
"version": "0.6.1",
"from": "optimist@>=0.6.0 <0.7.0",
@@ -3195,9 +3264,9 @@
}
},
"optionator": {
- "version": "0.5.0",
- "from": "optionator@>=0.5.0 <0.6.0",
- "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.5.0.tgz"
+ "version": "0.6.0",
+ "from": "optionator@>=0.6.0 <0.7.0",
+ "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.6.0.tgz"
},
"options": {
"version": "0.0.6",
@@ -3254,6 +3323,11 @@
"from": "parse-json@>=2.2.0 <3.0.0",
"resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz"
},
+ "parse5": {
+ "version": "1.5.0",
+ "from": "parse5@>=1.4.2 <2.0.0",
+ "resolved": "https://registry.npmjs.org/parse5/-/parse5-1.5.0.tgz"
+ },
"parsejson": {
"version": "0.0.1",
"from": "parsejson@0.0.1",
@@ -3312,14 +3386,7 @@
"path-type": {
"version": "1.0.0",
"from": "path-type@>=1.0.0 <2.0.0",
- "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.0.0.tgz",
- "dependencies": {
- "graceful-fs": {
- "version": "4.1.2",
- "from": "graceful-fs@>=4.1.2 <5.0.0",
- "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.2.tgz"
- }
- }
+ "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.0.0.tgz"
},
"pathval": {
"version": "0.1.1",
@@ -3356,6 +3423,11 @@
"from": "postcss@>=5.0.6 <6.0.0",
"resolved": "https://registry.npmjs.org/postcss/-/postcss-5.0.10.tgz",
"dependencies": {
+ "source-map": {
+ "version": "0.5.3",
+ "from": "source-map@>=0.5.1 <0.6.0",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.3.tgz"
+ },
"supports-color": {
"version": "3.1.2",
"from": "supports-color@>=3.1.2 <4.0.0",
@@ -3451,15 +3523,20 @@
"resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-1.0.0-beta2.tgz"
},
"postcss-modules-local-by-default": {
- "version": "1.0.0-beta1",
- "from": "postcss-modules-local-by-default@1.0.0-beta1",
- "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-1.0.0-beta1.tgz"
+ "version": "1.0.0",
+ "from": "postcss-modules-local-by-default@>=1.0.0 <2.0.0",
+ "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-1.0.0.tgz"
},
"postcss-modules-scope": {
"version": "1.0.0-beta2",
"from": "postcss-modules-scope@1.0.0-beta2",
"resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-1.0.0-beta2.tgz"
},
+ "postcss-modules-values": {
+ "version": "1.1.1",
+ "from": "postcss-modules-values@>=1.1.0 <2.0.0",
+ "resolved": "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-1.1.1.tgz"
+ },
"postcss-normalize-charset": {
"version": "1.1.0",
"from": "postcss-normalize-charset@>=1.1.0 <2.0.0",
@@ -3573,9 +3650,9 @@
"resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz"
},
"q": {
- "version": "1.1.2",
- "from": "q@>=1.1.2 <1.2.0",
- "resolved": "https://registry.npmjs.org/q/-/q-1.1.2.tgz"
+ "version": "1.4.1",
+ "from": "q@>=1.1.2 <2.0.0",
+ "resolved": "https://registry.npmjs.org/q/-/q-1.4.1.tgz"
},
"qs": {
"version": "5.1.0",
@@ -3628,12 +3705,12 @@
},
"react": {
"version": "0.14.2",
- "from": "react@>=0.14.0 <0.15.0",
+ "from": "react@>=0.14.2 <0.15.0",
"resolved": "https://registry.npmjs.org/react/-/react-0.14.2.tgz"
},
"react-bootstrap": {
"version": "0.27.3",
- "from": "react-bootstrap@>=0.27.0 <0.28.0",
+ "from": "react-bootstrap@>=0.27.3 <0.28.0",
"resolved": "https://registry.npmjs.org/react-bootstrap/-/react-bootstrap-0.27.3.tgz"
},
"react-deep-force-update": {
@@ -3643,7 +3720,7 @@
},
"react-dom": {
"version": "0.14.2",
- "from": "react-dom@>=0.14.0 <0.15.0",
+ "from": "react-dom@>=0.14.2 <0.15.0",
"resolved": "https://registry.npmjs.org/react-dom/-/react-dom-0.14.2.tgz"
},
"react-overlays": {
@@ -3666,12 +3743,18 @@
"react-proxy": {
"version": "1.1.1",
"from": "react-proxy@>=1.1.1 <2.0.0",
- "resolved": "https://registry.npmjs.org/react-proxy/-/react-proxy-1.1.1.tgz"
+ "resolved": "https://registry.npmjs.org/react-proxy/-/react-proxy-1.1.1.tgz",
+ "dependencies": {
+ "lodash": {
+ "version": "3.10.1",
+ "from": "lodash@>=3.7.0 <4.0.0"
+ }
+ }
},
"react-redux": {
- "version": "3.1.0",
- "from": "react-redux@>=3.1.0 <4.0.0",
- "resolved": "https://registry.npmjs.org/react-redux/-/react-redux-3.1.0.tgz"
+ "version": "4.0.0",
+ "from": "react-redux@>=4.0.0 <5.0.0",
+ "resolved": "https://registry.npmjs.org/react-redux/-/react-redux-4.0.0.tgz"
},
"read": {
"version": "1.0.7",
@@ -3681,7 +3764,14 @@
"read-json-sync": {
"version": "1.1.0",
"from": "read-json-sync@>=1.1.0 <2.0.0",
- "resolved": "https://registry.npmjs.org/read-json-sync/-/read-json-sync-1.1.0.tgz"
+ "resolved": "https://registry.npmjs.org/read-json-sync/-/read-json-sync-1.1.0.tgz",
+ "dependencies": {
+ "graceful-fs": {
+ "version": "3.0.8",
+ "from": "graceful-fs@>=3.0.5 <4.0.0",
+ "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-3.0.8.tgz"
+ }
+ }
},
"read-pkg": {
"version": "1.1.0",
@@ -3703,11 +3793,6 @@
"from": "readdirp@>=2.0.0 <3.0.0",
"resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.0.0.tgz",
"dependencies": {
- "graceful-fs": {
- "version": "4.1.2",
- "from": "graceful-fs@>=4.1.2 <5.0.0",
- "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.2.tgz"
- },
"readable-stream": {
"version": "2.0.4",
"from": "readable-stream@>=2.0.2 <3.0.0",
@@ -3716,21 +3801,9 @@
}
},
"readline2": {
- "version": "0.1.1",
- "from": "readline2@>=0.1.1 <0.2.0",
- "resolved": "https://registry.npmjs.org/readline2/-/readline2-0.1.1.tgz",
- "dependencies": {
- "ansi-regex": {
- "version": "1.1.1",
- "from": "ansi-regex@>=1.0.0 <2.0.0",
- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-1.1.1.tgz"
- },
- "strip-ansi": {
- "version": "2.0.1",
- "from": "strip-ansi@>=2.0.1 <3.0.0",
- "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-2.0.1.tgz"
- }
- }
+ "version": "1.0.1",
+ "from": "readline2@>=1.0.1 <2.0.0",
+ "resolved": "https://registry.npmjs.org/readline2/-/readline2-1.0.1.tgz"
},
"recast": {
"version": "0.10.33",
@@ -3768,7 +3841,7 @@
},
"redux": {
"version": "3.0.4",
- "from": "redux@>=3.0.2 <4.0.0",
+ "from": "redux@>=3.0.4 <4.0.0",
"resolved": "https://registry.npmjs.org/redux/-/redux-3.0.4.tgz"
},
"redux-promise": {
@@ -3803,8 +3876,7 @@
"dependencies": {
"esprima": {
"version": "2.7.0",
- "from": "esprima@>=2.6.0 <3.0.0",
- "resolved": "https://registry.npmjs.org/esprima/-/esprima-2.7.0.tgz"
+ "from": "esprima@>=2.6.0 <3.0.0"
}
}
},
@@ -3830,12 +3902,12 @@
},
"repeating": {
"version": "1.1.3",
- "from": "repeating@>=1.1.2 <2.0.0",
+ "from": "repeating@>=1.1.3 <2.0.0",
"resolved": "https://registry.npmjs.org/repeating/-/repeating-1.1.3.tgz"
},
"request": {
"version": "2.65.0",
- "from": "request@>=2.61.0 <3.0.0",
+ "from": "request@>=2.55.0 <3.0.0",
"resolved": "https://registry.npmjs.org/request/-/request-2.65.0.tgz",
"dependencies": {
"qs": {
@@ -3860,6 +3932,11 @@
"from": "resolve@>=1.1.6 <2.0.0",
"resolved": "https://registry.npmjs.org/resolve/-/resolve-1.1.6.tgz"
},
+ "restore-cursor": {
+ "version": "1.0.1",
+ "from": "restore-cursor@>=1.0.1 <2.0.0",
+ "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-1.0.1.tgz"
+ },
"revalidator": {
"version": "0.1.8",
"from": "revalidator@>=0.1.0 <0.2.0",
@@ -3873,14 +3950,7 @@
"rimraf": {
"version": "2.4.3",
"from": "rimraf@>=2.2.8 <3.0.0",
- "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.4.3.tgz",
- "dependencies": {
- "glob": {
- "version": "5.0.15",
- "from": "glob@>=5.0.14 <6.0.0",
- "resolved": "https://registry.npmjs.org/glob/-/glob-5.0.15.tgz"
- }
- }
+ "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.4.3.tgz"
},
"ripemd160": {
"version": "0.2.0",
@@ -3893,19 +3963,18 @@
"resolved": "https://registry.npmjs.org/run-async/-/run-async-0.1.0.tgz"
},
"rx-lite": {
- "version": "2.5.2",
- "from": "rx-lite@>=2.5.2 <3.0.0",
- "resolved": "https://registry.npmjs.org/rx-lite/-/rx-lite-2.5.2.tgz"
+ "version": "3.1.2",
+ "from": "rx-lite@>=3.1.2 <4.0.0",
+ "resolved": "https://registry.npmjs.org/rx-lite/-/rx-lite-3.1.2.tgz"
},
"sass-graph": {
"version": "2.0.1",
"from": "sass-graph@>=2.0.1 <3.0.0",
"resolved": "https://registry.npmjs.org/sass-graph/-/sass-graph-2.0.1.tgz",
"dependencies": {
- "glob": {
- "version": "5.0.15",
- "from": "glob@>=5.0.5 <6.0.0",
- "resolved": "https://registry.npmjs.org/glob/-/glob-5.0.15.tgz"
+ "lodash": {
+ "version": "3.10.1",
+ "from": "lodash@>=3.8.0 <4.0.0"
}
}
},
@@ -3952,9 +4021,9 @@
"resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz"
},
"shelljs": {
- "version": "0.3.0",
- "from": "shelljs@>=0.3.0 <0.4.0",
- "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.3.0.tgz"
+ "version": "0.5.3",
+ "from": "shelljs@>=0.5.3 <0.6.0",
+ "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.5.3.tgz"
},
"sigmund": {
"version": "1.0.1",
@@ -4094,14 +4163,14 @@
"resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-1.0.2.tgz"
},
"spdx-exceptions": {
- "version": "1.0.3",
- "from": "spdx-exceptions@>=1.0.0 <2.0.0",
- "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-1.0.3.tgz"
+ "version": "1.0.4",
+ "from": "spdx-exceptions@>=1.0.4 <2.0.0",
+ "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-1.0.4.tgz"
},
"spdx-expression-parse": {
- "version": "1.0.0",
+ "version": "1.0.1",
"from": "spdx-expression-parse@>=1.0.0 <1.1.0",
- "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-1.0.0.tgz"
+ "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-1.0.1.tgz"
},
"spdx-license-ids": {
"version": "1.1.0",
@@ -4198,6 +4267,11 @@
"from": "svgo@>=0.5.6 <0.6.0",
"resolved": "https://registry.npmjs.org/svgo/-/svgo-0.5.6.tgz"
},
+ "symbol-tree": {
+ "version": "3.1.3",
+ "from": "symbol-tree@>=3.1.0 <4.0.0",
+ "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.1.3.tgz"
+ },
"tapable": {
"version": "0.1.9",
"from": "tapable@>=0.1.8 <0.2.0",
@@ -4215,7 +4289,7 @@
},
"through": {
"version": "2.3.8",
- "from": "through@>=2.3.8 <2.4.0",
+ "from": "through@>=2.3.6 <2.4.0",
"resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz"
},
"timers-browserify": {
@@ -4229,39 +4303,30 @@
"resolved": "https://registry.npmjs.org/to-array/-/to-array-0.1.3.tgz"
},
"to-double-quotes": {
- "version": "1.0.2",
- "from": "to-double-quotes@>=1.0.1 <2.0.0",
- "resolved": "https://registry.npmjs.org/to-double-quotes/-/to-double-quotes-1.0.2.tgz",
- "dependencies": {
- "get-stdin": {
- "version": "3.0.2",
- "from": "get-stdin@>=3.0.0 <4.0.0",
- "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-3.0.2.tgz"
- }
- }
+ "version": "2.0.0",
+ "from": "to-double-quotes@>=2.0.0 <3.0.0",
+ "resolved": "https://registry.npmjs.org/to-double-quotes/-/to-double-quotes-2.0.0.tgz"
},
"to-fast-properties": {
"version": "1.0.1",
- "from": "to-fast-properties@>=1.0.0 <2.0.0",
+ "from": "to-fast-properties@>=1.0.1 <2.0.0",
"resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.1.tgz"
},
"to-single-quotes": {
- "version": "1.0.4",
- "from": "to-single-quotes@>=1.0.3 <2.0.0",
- "resolved": "https://registry.npmjs.org/to-single-quotes/-/to-single-quotes-1.0.4.tgz",
- "dependencies": {
- "get-stdin": {
- "version": "3.0.2",
- "from": "get-stdin@>=3.0.0 <4.0.0",
- "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-3.0.2.tgz"
- }
- }
+ "version": "2.0.0",
+ "from": "to-single-quotes@>=2.0.0 <3.0.0",
+ "resolved": "https://registry.npmjs.org/to-single-quotes/-/to-single-quotes-2.0.0.tgz"
},
"tough-cookie": {
"version": "2.2.0",
- "from": "tough-cookie@>=2.2.0 <2.3.0",
+ "from": "tough-cookie@>=2.2.0 <3.0.0",
"resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.2.0.tgz"
},
+ "tr46": {
+ "version": "0.0.2",
+ "from": "tr46@>=0.0.1 <0.1.0",
+ "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.2.tgz"
+ },
"transformers": {
"version": "2.1.0",
"from": "transformers@2.1.0",
@@ -4301,7 +4366,7 @@
},
"trim-right": {
"version": "1.0.1",
- "from": "trim-right@>=1.0.0 <2.0.0",
+ "from": "trim-right@>=1.0.1 <2.0.0",
"resolved": "https://registry.npmjs.org/trim-right/-/trim-right-1.0.1.tgz"
},
"try-resolve": {
@@ -4334,6 +4399,11 @@
"from": "type-check@>=0.3.1 <0.4.0",
"resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.1.tgz"
},
+ "type-detect": {
+ "version": "1.0.0",
+ "from": "type-detect@>=1.0.0 <2.0.0",
+ "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-1.0.0.tgz"
+ },
"type-is": {
"version": "1.6.9",
"from": "type-is@>=1.6.9 <1.7.0",
@@ -4350,9 +4420,9 @@
"resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.9.tgz"
},
"uglify-js": {
- "version": "2.4.24",
- "from": "uglify-js@>=2.4.24 <2.5.0",
- "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.4.24.tgz",
+ "version": "2.5.0",
+ "from": "uglify-js@>=2.5.0 <2.6.0",
+ "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.5.0.tgz",
"dependencies": {
"async": {
"version": "0.2.10",
@@ -4360,9 +4430,9 @@
"resolved": "https://registry.npmjs.org/async/-/async-0.2.10.tgz"
},
"source-map": {
- "version": "0.1.34",
- "from": "source-map@0.1.34",
- "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.1.34.tgz"
+ "version": "0.5.3",
+ "from": "source-map@>=0.5.1 <0.6.0",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.3.tgz"
},
"window-size": {
"version": "0.1.0",
@@ -4524,22 +4594,27 @@
"version": "0.9.2",
"from": "async@>=0.9.0 <0.10.0",
"resolved": "https://registry.npmjs.org/async/-/async-0.9.2.tgz"
- },
- "graceful-fs": {
- "version": "4.1.2",
- "from": "graceful-fs@>=4.1.2 <5.0.0",
- "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.2.tgz"
}
}
},
+ "webidl-conversions": {
+ "version": "2.0.0",
+ "from": "webidl-conversions@>=2.0.0 <3.0.0",
+ "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-2.0.0.tgz"
+ },
"webpack": {
- "version": "1.12.2",
- "from": "webpack@>=1.12.2 <2.0.0",
- "resolved": "https://registry.npmjs.org/webpack/-/webpack-1.12.2.tgz",
+ "version": "1.12.3",
+ "from": "webpack@>=1.12.3 <2.0.0",
+ "resolved": "https://registry.npmjs.org/webpack/-/webpack-1.12.3.tgz",
"dependencies": {
"esprima": {
"version": "2.7.0",
- "from": "esprima@>=2.5.0 <3.0.0"
+ "from": "esprima@>=2.5.0 <3.0.0",
+ "resolved": "https://registry.npmjs.org/esprima/-/esprima-2.7.0.tgz"
+ },
+ "loader-utils": {
+ "version": "0.2.11",
+ "from": "loader-utils@>=0.2.11 <0.3.0"
},
"supports-color": {
"version": "3.1.2",
@@ -4570,6 +4645,11 @@
"from": "whatwg-fetch@>=0.9.0 <0.10.0",
"resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-0.9.0.tgz"
},
+ "whatwg-url-compat": {
+ "version": "0.6.5",
+ "from": "whatwg-url-compat@>=0.6.5 <0.7.0",
+ "resolved": "https://registry.npmjs.org/whatwg-url-compat/-/whatwg-url-compat-0.6.5.tgz"
+ },
"whet.extend": {
"version": "0.9.9",
"from": "whet.extend@>=0.9.9 <0.10.0",
@@ -4605,14 +4685,7 @@
"with": {
"version": "4.0.3",
"from": "with@>=4.0.0 <4.1.0",
- "resolved": "https://registry.npmjs.org/with/-/with-4.0.3.tgz",
- "dependencies": {
- "acorn": {
- "version": "1.2.2",
- "from": "acorn@>=1.0.1 <2.0.0",
- "resolved": "https://registry.npmjs.org/acorn/-/acorn-1.2.2.tgz"
- }
- }
+ "resolved": "https://registry.npmjs.org/with/-/with-4.0.3.tgz"
},
"wordwrap": {
"version": "0.0.2",
@@ -4639,10 +4712,21 @@
"from": "xml-escape@>=1.0.0 <1.1.0",
"resolved": "https://registry.npmjs.org/xml-escape/-/xml-escape-1.0.0.tgz"
},
+ "xml-name-validator": {
+ "version": "2.0.1",
+ "from": "xml-name-validator@>=2.0.1 <3.0.0",
+ "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-2.0.1.tgz"
+ },
"xmlbuilder": {
"version": "3.1.0",
"from": "xmlbuilder@>=3.1.0 <4.0.0",
- "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-3.1.0.tgz"
+ "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-3.1.0.tgz",
+ "dependencies": {
+ "lodash": {
+ "version": "3.10.1",
+ "from": "lodash@>=3.5.0 <4.0.0"
+ }
+ }
},
"xmlhttprequest": {
"version": "1.5.0",
diff --git a/client/package.json b/client/package.json
index 9a657fc3..d1f73c82 100644
--- a/client/package.json
+++ b/client/package.json
@@ -24,7 +24,8 @@
},
"homepage": "https://github.com/shakacode/react-webpack-rails-tutorial",
"scripts": {
- "test": "echo \"Error: no test specified\" && exit 1",
+ "test": "mocha --compilers js:babel-core/register --require ./test/test_helper.js 'test/**/*.@(js|jsx)'",
+ "test:debug": "npm run test -- --debug-brk",
"start": "node server.js",
"build:client": "NODE_ENV=production webpack --config webpack.client.rails.config.js",
"build:server": "NODE_ENV=production webpack --config webpack.server.rails.config.js",
@@ -39,45 +40,50 @@
"babel-core": "^5.8.25",
"babel-loader": "^5.3.2",
"body-parser": "^1.14.1",
- "es5-shim": "^4.1.14",
+ "es5-shim": "^4.2.0",
"es6-promise": "^3.0.2",
- "expose-loader": "^0.7.0",
+ "expose-loader": "^0.7.1",
"immutable": "^3.7.5",
- "imports-loader": "^0.6.4",
+ "imports-loader": "^0.6.5",
"jquery": "^2.1.4",
"jquery-ujs": "^1.1.0-1",
"loader-utils": "^0.2.11",
"lodash": "^3.10.1",
"marked": "^0.3.5",
- "react": "^0.14.0",
- "react-bootstrap": "^0.27.0",
- "react-dom": "^0.14.0",
- "react-redux": "^3.1.0",
- "redux": "^3.0.2",
+ "react": "^0.14.2",
+ "react-bootstrap": "^0.27.3",
+ "react-dom": "^0.14.2",
+ "react-redux": "^4.0.0",
+ "redux": "^3.0.4",
"redux-promise": "^0.5.0",
"redux-thunk": "^1.0.0",
"sleep": "^3.0.0",
- "webpack": "^1.12.2"
+ "webpack": "^1.12.3"
},
"devDependencies": {
- "babel-eslint": "^4.1.3",
+ "babel-eslint": "^4.1.4",
"babel-plugin-react-transform": "^1.1.1",
"bootstrap-sass": "^3.3.5",
"bootstrap-sass-loader": "^1.0.9",
- "css-loader": "^0.19.0",
- "eslint": "^1.6.0",
+ "chai": "^3.4.0",
+ "chai-immutable": "^1.5.2",
+ "css-loader": "^0.22.0",
+ "eslint": "^1.9.0",
"eslint-config-airbnb": "0.1.0",
- "eslint-plugin-react": "^3.5.1",
+ "eslint-plugin-react": "^3.7.1",
"esprima-fb": "^15001.1001.0-dev-harmony-fb",
"express": "^4.13.3",
"file-loader": "^0.8.4",
"jade": "^1.11.0",
- "jscs": "^2.3.0",
- "node-sass": "^3.3.3",
+ "jscs": "^2.5.1",
+ "jsdom": "^7.0.2",
+ "mocha": "^2.3.3",
+ "node-sass": "^3.4.1",
+ "react-addons-test-utils": "^0.14.2",
"react-transform-hmr": "^1.0.1",
- "sass-loader": "^3.0.0",
- "style-loader": "^0.12.4",
+ "sass-loader": "^3.1.1",
+ "style-loader": "^0.13.0",
"url-loader": "^0.5.6",
- "webpack-dev-server": "^1.12.0"
+ "webpack-dev-server": "^1.12.1"
}
}
diff --git a/client/test/components/CommentList_spec.jsx b/client/test/components/CommentList_spec.jsx
new file mode 100644
index 00000000..376a90ec
--- /dev/null
+++ b/client/test/components/CommentList_spec.jsx
@@ -0,0 +1,42 @@
+import { React, expect, TestUtils } from '../test_helper';
+import { List, Map } from 'immutable';
+import CommentList from '../../app/components/CommentList';
+import Comment from '../../app/components/Comment';
+
+const {
+ renderIntoDocument,
+ findRenderedDOMComponentWithTag,
+ scryRenderedComponentsWithType,
+} = TestUtils;
+
+describe('CommentList', () => {
+ const comments = List.of(
+ new Map({
+ author: 'Frank',
+ text: 'hi',
+ }),
+ new Map({
+ author: 'Furter',
+ text: 'ho',
+ }),
+ );
+
+ it('renders a list of Comments in reverse order', () => {
+ const component = renderIntoDocument(
+
+ );
+ const list = scryRenderedComponentsWithType(component, Comment);
+ expect(list.length).to.equal(2);
+ expect(list[0].props.author).to.equal('Furter');
+ expect(list[1].props.author).to.equal('Frank');
+ });
+
+ it('renders an alert if errors', () => {
+ const component = renderIntoDocument(
+
+ );
+
+ const alert = findRenderedDOMComponentWithTag(component, 'strong');
+ expect(alert.textContent).to.equal('Comments could not be retrieved. ');
+ });
+});
diff --git a/client/test/components/Comment_spec.jsx b/client/test/components/Comment_spec.jsx
new file mode 100644
index 00000000..f36accbb
--- /dev/null
+++ b/client/test/components/Comment_spec.jsx
@@ -0,0 +1,41 @@
+import { React, expect, TestUtils } from '../test_helper';
+import Comment from '../../app/components/Comment';
+
+const {
+ renderIntoDocument,
+ findRenderedDOMComponentWithClass,
+ findRenderedDOMComponentWithTag,
+} = TestUtils;
+
+describe('Comment', () => {
+ it('renders an author and comment with proper css classes', () => {
+ const component = renderIntoDocument(
+
+ );
+
+ const comment = findRenderedDOMComponentWithTag(component, 'div');
+ expect(comment.className).to.equal('comment');
+ const author = findRenderedDOMComponentWithTag(component, 'h2');
+ expect(author.className).to.equal('comment-author');
+ const text = findRenderedDOMComponentWithTag(component, 'span');
+ expect(text.className).to.equal('comment-text');
+ });
+
+ it('shows the author', () => {
+ const component = renderIntoDocument(
+
+ );
+
+ const author = findRenderedDOMComponentWithClass(component, 'comment-author');
+ expect(author.textContent).to.equal('Frank');
+ });
+
+ it('shows the comment text in markdown', () => {
+ const component = renderIntoDocument(
+
+ );
+
+ const comment = findRenderedDOMComponentWithClass(component, 'comment-text');
+ expect(comment.textContent).to.equal('Hi!\n');
+ });
+});
diff --git a/client/test/test_helper.js b/client/test/test_helper.js
new file mode 100644
index 00000000..84c91065
--- /dev/null
+++ b/client/test/test_helper.js
@@ -0,0 +1,40 @@
+import React from 'react';
+import TestUtils from 'react-addons-test-utils';
+import jsdom from 'jsdom';
+import chai from 'chai';
+import chaiImmutable from 'chai-immutable';
+
+const doc = jsdom.jsdom('');
+const win = doc.defaultView;
+
+global.document = doc;
+global.window = win;
+
+// from mocha-jsdom https://github.com/rstacruz/mocha-jsdom/blob/master/index.js#L80
+function propagateToGlobal(window) {
+ for (const key in window) {
+ if (!window.hasOwnProperty(key)) continue;
+ if (key in global) continue;
+
+ global[key] = window[key];
+ }
+}
+
+// take all properties of the window object and also attach it to the
+// mocha global object
+propagateToGlobal(win);
+
+// everything we need for our tests
+const {
+ assert, expect,
+} = chai;
+
+chai.use(chaiImmutable);
+
+export {
+ React,
+ chai,
+ assert,
+ expect,
+ TestUtils,
+};
diff --git a/package.json b/package.json
index 84f23c0c..ba4334d7 100644
--- a/package.json
+++ b/package.json
@@ -9,7 +9,9 @@
},
"scripts": {
"postinstall": "cd client && npm install",
- "test": "rspec && (cd client && npm run lint)"
+ "test": "rspec && npm run test:client && npm run lint",
+ "test:client": "(cd client && npm run test --silent)",
+ "lint": "(cd client && npm run lint --silent)"
},
"repository": {
"type": "git",