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:


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",