From 0e60bcd38aa471f448a766b5917f6f0f18ef8f8f Mon Sep 17 00:00:00 2001 From: Aaron Van Bokhoven Date: Wed, 17 Feb 2016 11:40:01 -1000 Subject: [PATCH 001/246] Add eslint-shakacode-config --- client/.eslintrc.yml | 2 +- client/package.json | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/client/.eslintrc.yml b/client/.eslintrc.yml index 6100a38e..89d43dc3 100644 --- a/client/.eslintrc.yml +++ b/client/.eslintrc.yml @@ -1,7 +1,7 @@ --- parser: babel-eslint -extends: eslint-config-airbnb +extends: eslint-config-shakacode plugins: - react diff --git a/client/package.json b/client/package.json index 083f6f23..e5aa9d06 100644 --- a/client/package.json +++ b/client/package.json @@ -91,6 +91,7 @@ "chai": "^3.5.0", "chai-immutable": "^1.5.3", "eslint": "^1.10.3", + "eslint-config-shakacode": "^1.0.0", "eslint-config-airbnb": "^5.0.0", "eslint-plugin-react": "^3.16.1", "express": "^4.13.4", From 7d7fa98b4926738981b9a2b935039caaed131686 Mon Sep 17 00:00:00 2001 From: Jason Deppen Date: Thu, 18 Feb 2016 21:42:16 -0500 Subject: [PATCH 002/246] Fix broken link --- client/app/bundles/comments/startup/ServerRouterApp.jsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/client/app/bundles/comments/startup/ServerRouterApp.jsx b/client/app/bundles/comments/startup/ServerRouterApp.jsx index 14a00eee..29ebcbea 100644 --- a/client/app/bundles/comments/startup/ServerRouterApp.jsx +++ b/client/app/bundles/comments/startup/ServerRouterApp.jsx @@ -12,7 +12,7 @@ export default (props, location) => { let redirectLocation; let routeProps; - // See https://github.com/rackt/react-router/blob/master/docs/guides/advanced/ServerRendering.md + // See https://github.com/reactjs/react-router/blob/master/docs/guides/ServerRendering.md match({ routes, location }, (_error, _redirectLocation, _routeProps) => { error = _error; redirectLocation = _redirectLocation; From 7f6225313fbfdaf431b4fbff6abd6d77f16e9e05 Mon Sep 17 00:00:00 2001 From: Luke Rodgers Date: Wed, 17 Feb 2016 21:35:03 -0500 Subject: [PATCH 003/246] Minify js in production. The rake asset compilation task will now run the production-specific npm build scripts. --- lib/tasks/assets.rake | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/tasks/assets.rake b/lib/tasks/assets.rake index 24ed3444..cc6607d5 100644 --- a/lib/tasks/assets.rake +++ b/lib/tasks/assets.rake @@ -13,8 +13,8 @@ namespace :assets do desc "Compile assets with webpack" task :webpack do - sh "cd client && npm run build:client" - sh "cd client && npm run build:server" + sh "cd client && npm run build:production:client" + sh "cd client && npm run build:production:server" sh "mkdir -p public/assets" # Critical to manually copy non js/css assets to public/assets as we don't want to fingerprint them From 96d8e9772773b0dd625c0558f26eaa0fd9f6ca0e Mon Sep 17 00:00:00 2001 From: Justin Gordon Date: Tue, 1 Mar 2016 01:41:26 -0800 Subject: [PATCH 004/246] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 52878f6b..127038a7 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,7 @@ [![Codeship Status for justin808/react-webpack-rails-tutorial](https://codeship.com/projects/287b26d0-0c05-0133-7a33-02e67aca5f06/status?branch=master)](https://codeship.com/projects/90975) [![Build Status](https://travis-ci.org/shakacode/react-webpack-rails-tutorial.svg?branch=code_coverage-linting)](https://travis-ci.org/shakacode/react-webpack-rails-tutorial) [![Coverage Status](https://coveralls.io/repos/shakacode/react-webpack-rails-tutorial/badge.svg?branch=master&service=github)](https://coveralls.io/github/shakacode/react-webpack-rails-tutorial?branch=master) -[![Dependency Status](https://gemnasium.com/shakacode/react-webpack-rails-tutorial.svg)](https://gemnasium.com/shakacode/react-webpack-rails-tutorial) +[![Dependency Status](https://gemnasium.com/shakacode/react-webpack-rails-tutorial.svg)](https://gemnasium.com/shakacode/react-webpack-rails-tutorial) [![Code Climate](https://codeclimate.com/github/rails/rails/badges/gpa.svg)](https://codeclimate.com/github/shakacode/react-webpack-rails-tutorial) # React, Redux, React-Bootstrap, ES7, Webpack Rails ## Server Rendering via the react_on_rails gem From a7666148acda163cf6a7a70e6c5d450cf2ebc48b Mon Sep 17 00:00:00 2001 From: Justin Gordon Date: Tue, 1 Mar 2016 01:50:34 -0800 Subject: [PATCH 005/246] Update README.md --- README.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 127038a7..0e633f78 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,8 @@ [![Codeship Status for justin808/react-webpack-rails-tutorial](https://codeship.com/projects/287b26d0-0c05-0133-7a33-02e67aca5f06/status?branch=master)](https://codeship.com/projects/90975) [![Build Status](https://travis-ci.org/shakacode/react-webpack-rails-tutorial.svg?branch=code_coverage-linting)](https://travis-ci.org/shakacode/react-webpack-rails-tutorial) [![Coverage Status](https://coveralls.io/repos/shakacode/react-webpack-rails-tutorial/badge.svg?branch=master&service=github)](https://coveralls.io/github/shakacode/react-webpack-rails-tutorial?branch=master) -[![Dependency Status](https://gemnasium.com/shakacode/react-webpack-rails-tutorial.svg)](https://gemnasium.com/shakacode/react-webpack-rails-tutorial) [![Code Climate](https://codeclimate.com/github/rails/rails/badges/gpa.svg)](https://codeclimate.com/github/shakacode/react-webpack-rails-tutorial) +[![Dependency Status](https://gemnasium.com/shakacode/react-webpack-rails-tutorial.svg)](https://gemnasium.com/shakacode/react-webpack-rails-tutorial) [![Code Climate](https://codeclimate.com/github/shakacode/react-webpack-rails-tutorial/badges/gpa.svg)](https://codeclimate.com/github/shakacode/react-webpack-rails-tutorial) + # React, Redux, React-Bootstrap, ES7, Webpack Rails ## Server Rendering via the react_on_rails gem From 5b8787152b96e60595802ab1091089003d5b0f09 Mon Sep 17 00:00:00 2001 From: Justin Gordon Date: Tue, 1 Mar 2016 01:51:15 -0800 Subject: [PATCH 006/246] Update README.md --- README.md | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/README.md b/README.md index 0e633f78..a3e1d0d4 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,5 @@ [![Codeship Status for justin808/react-webpack-rails-tutorial](https://codeship.com/projects/287b26d0-0c05-0133-7a33-02e67aca5f06/status?branch=master)](https://codeship.com/projects/90975) -[![Build Status](https://travis-ci.org/shakacode/react-webpack-rails-tutorial.svg?branch=code_coverage-linting)](https://travis-ci.org/shakacode/react-webpack-rails-tutorial) -[![Coverage Status](https://coveralls.io/repos/shakacode/react-webpack-rails-tutorial/badge.svg?branch=master&service=github)](https://coveralls.io/github/shakacode/react-webpack-rails-tutorial?branch=master) -[![Dependency Status](https://gemnasium.com/shakacode/react-webpack-rails-tutorial.svg)](https://gemnasium.com/shakacode/react-webpack-rails-tutorial) [![Code Climate](https://codeclimate.com/github/shakacode/react-webpack-rails-tutorial/badges/gpa.svg)](https://codeclimate.com/github/shakacode/react-webpack-rails-tutorial) +[![Build Status](https://travis-ci.org/shakacode/react-webpack-rails-tutorial.svg?branch=code_coverage-linting)](https://travis-ci.org/shakacode/react-webpack-rails-tutorial) [![Dependency Status](https://gemnasium.com/shakacode/react-webpack-rails-tutorial.svg)](https://gemnasium.com/shakacode/react-webpack-rails-tutorial) [![Code Climate](https://codeclimate.com/github/shakacode/react-webpack-rails-tutorial/badges/gpa.svg)](https://codeclimate.com/github/shakacode/react-webpack-rails-tutorial) [![Coverage Status](https://coveralls.io/repos/shakacode/react-webpack-rails-tutorial/badge.svg?branch=master&service=github)](https://coveralls.io/github/shakacode/react-webpack-rails-tutorial?branch=master) # React, Redux, React-Bootstrap, ES7, Webpack Rails ## Server Rendering via the react_on_rails gem From e7d93d85d21850590c6baecd5f2894809529ff78 Mon Sep 17 00:00:00 2001 From: Justin Gordon Date: Fri, 4 Mar 2016 15:47:27 -1000 Subject: [PATCH 007/246] Update README.md --- README.md | 24 +++++++++++++----------- 1 file changed, 13 insertions(+), 11 deletions(-) diff --git a/README.md b/README.md index a3e1d0d4..53e20a52 100644 --- a/README.md +++ b/README.md @@ -52,7 +52,7 @@ In no particular order: See package.json and Gemfile for versions 1. [react_on_rails gem](https://github.com/shakacode/react_on_rails/) -1. [React](http://facebook.github.io/react/) (for front-end app) +1. [React](http://facebook.github.io/react/) 1. [react-bootstrap](https://react-bootstrap.github.io/) 1. [bootstrap-loader](https://www.npmjs.com/package/bootstrap-loader/) 1. [Redux](https://github.com/reactjs/redux) @@ -68,9 +68,9 @@ See package.json and Gemfile for versions 1. Be sure that you have Node installed! We suggest [nvm](https://github.com/creationix/nvm), with node version `v5.0` or above. See this article [Updating and using nvm](http://forum.shakacode.com/t/updating-and-using-nvm/293). 1. `git clone git@github.com:shakacode/react-webpack-rails-tutorial.git` 1. `cd react-webpack-rails-tutorial` -1. Check that you have Ruby 2.2.4 -1. Check that you're using the right version of node. Run `nvm list` to check. -1. Check that you have Postgres installed. Run `which postgres` to check. +1. Check that you have Ruby 2.2.4 or greater +1. Check that you're using the right version of node. Run `nvm list` to check. Use 5.5 or greater. +1. Check that you have Postgres installed. Run `which postgres` to check. Use 9.4 or greater. 1. `bundle install` 1. `npm install` 1. `rake db:setup` @@ -79,6 +79,7 @@ See package.json and Gemfile for versions 1. Open a browser tab to http://localhost:4000 for the Hot Module Replacement Example. 1. With the browser open to any JSX file, such as [client/app/bundles/comments/components/CommentBox/CommentBox.jsx](client/app/bundles/comments/components/CommentBox/CommentBox.jsx) and you can change the JSX code, hit save, and you will see the sceen update without refreshing the window. This applies to port 3000 and port 4000. 1. Try changing a `.scss` file, such as a color in [client/app/bundles/comments/components/CommentBox/CommentList/Comment/Comment.scss](client/app/bundles/comments/components/CommentBox/CommentList/Comment/Comment.scss). You can see port 3000 or 4000 update automatically. +1. Be sure to take a look at the different Procfiles in this directory, as described below. # KEY COMMANDS 1. Run all linters and tests: `rake ci` @@ -158,13 +159,14 @@ The tutorial makes use of a custom font OpenSans-Light. We're doing this to show bundle exec foreman start -f ``` -1. `Procfile.dev`: Starts the Webpack Dev Server and Rails with Hot Reloading. -2. `Procfile.hot`: Starts the Rails server and the webpack server to provide hot reloading of assets, JavaScript and CSS. -3. `Procfile.static`: Starts the Rails server and generates static assets that are used for tests. -4. `Procfile.express`: Starts only the Webpack Dev Server. -5. `Procfile.spec`: Starts webpack to create the static files for tests. **Good to know:** If you want to start `rails s` separately to debug in `pry`, then run `Procfile.spec` to generate the assets and run `rails s` in a separate console. -6. `Procfile.static.trace`: Same as `Procfile.static` but prints tracing information useful for debugging server rendering. - +1. [`Procfile.dev`](Procfile.dev): Starts the Webpack Dev Server and Rails with Hot Reloading. +2. [`Procfile.hot`](Procfile.hot): Starts the Rails server and the webpack server to provide hot reloading of assets, JavaScript and CSS. +3. [`Procfile.static`](Procfile.static): Starts the Rails server and generates static assets that are used for tests. +4. [`Procfile.express`(Procfile.express): Starts only the Webpack Dev Server. +5. [`Procfile.spec`](Procfile.spec]: Starts webpack to create the static files for tests. **Good to know:** If you want to start `rails s` separately to debug in `pry`, then run `Procfile.spec` to generate the assets and run `rails s` in a separate console. +6. [`Procfile.static.trace`][Procfile.static.trace]: Same as `Procfile.static` but prints tracing information useful for debugging server rendering. + +In genereral, you want to avoid running more webpack watch processes than you need. The `Procfile.dev`, for example, runs both the express server (Webpack dev server) and the Rails hot assets reloading server. ## Contributors [The Shaka Code team!](http://www.shakacode.com/about/) and many others! From d229444358de974be782b5104380c7b8ef923259 Mon Sep 17 00:00:00 2001 From: Justin Gordon Date: Sat, 5 Mar 2016 12:06:50 -1000 Subject: [PATCH 008/246] Updated gem and npm dependencies Noteworthy: * Updated the linters to eslint-config-shakacode v3! --- Gemfile.lock | 143 +- .../components/CommentBox/CommentBox.jsx | 2 +- .../CommentList/Comment/Comment.spec.jsx | 6 +- .../SimpleCommentScreen.jsx | 2 +- client/app/libs/components/BaseComponent.jsx | 4 +- client/npm-shrinkwrap.json | 1178 ++++++++--------- client/package.json | 46 +- lib/tasks/linters.rake | 2 +- package.json | 6 +- 9 files changed, 672 insertions(+), 717 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index 2c82f12c..47ad724a 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -1,36 +1,36 @@ GEM remote: https://rubygems.org/ specs: - actionmailer (4.2.5.1) - actionpack (= 4.2.5.1) - actionview (= 4.2.5.1) - activejob (= 4.2.5.1) + actionmailer (4.2.5.2) + actionpack (= 4.2.5.2) + actionview (= 4.2.5.2) + activejob (= 4.2.5.2) mail (~> 2.5, >= 2.5.4) rails-dom-testing (~> 1.0, >= 1.0.5) - actionpack (4.2.5.1) - actionview (= 4.2.5.1) - activesupport (= 4.2.5.1) + actionpack (4.2.5.2) + actionview (= 4.2.5.2) + activesupport (= 4.2.5.2) rack (~> 1.6) rack-test (~> 0.6.2) rails-dom-testing (~> 1.0, >= 1.0.5) rails-html-sanitizer (~> 1.0, >= 1.0.2) - actionview (4.2.5.1) - activesupport (= 4.2.5.1) + actionview (4.2.5.2) + activesupport (= 4.2.5.2) builder (~> 3.1) erubis (~> 2.7.0) rails-dom-testing (~> 1.0, >= 1.0.5) rails-html-sanitizer (~> 1.0, >= 1.0.2) - activejob (4.2.5.1) - activesupport (= 4.2.5.1) + activejob (4.2.5.2) + activesupport (= 4.2.5.2) globalid (>= 0.3.0) - activemodel (4.2.5.1) - activesupport (= 4.2.5.1) + activemodel (4.2.5.2) + activesupport (= 4.2.5.2) builder (~> 3.1) - activerecord (4.2.5.1) - activemodel (= 4.2.5.1) - activesupport (= 4.2.5.1) + activerecord (4.2.5.2) + activemodel (= 4.2.5.2) + activesupport (= 4.2.5.2) arel (~> 6.0) - activesupport (4.2.5.1) + activesupport (4.2.5.2) i18n (~> 0.7) json (~> 1.7, >= 1.7.7) minitest (~> 5.1) @@ -41,29 +41,26 @@ GEM io-like (~> 0.3.0) arel (6.0.3) ast (2.2.0) - autoprefixer-rails (6.3.1) + autoprefixer-rails (6.3.3.1) execjs - json awesome_print (1.6.1) binding_of_caller (0.7.2) debug_inspector (>= 0.0.1) - brakeman (3.1.5) + brakeman (3.2.1) erubis (~> 2.6) - fastercsv (~> 1.5) haml (>= 3.0, < 5.0) highline (>= 1.6.20, < 2.0) - multi_json (~> 1.2) - ruby2ruby (>= 2.1.1, < 2.3.0) - ruby_parser (~> 3.7.0) + ruby2ruby (~> 2.3.0) + ruby_parser (~> 3.8.1) safe_yaml (>= 1.0) sass (~> 3.0) slim (>= 1.3.6, < 4.0) terminal-table (~> 1.4) builder (3.2.2) - bundler-audit (0.4.0) + bundler-audit (0.5.0) bundler (~> 1.2) thor (~> 0.18) - byebug (8.2.1) + byebug (8.2.2) capybara (2.6.2) addressable mime-types (>= 1.16) @@ -79,7 +76,7 @@ GEM chromedriver-helper (1.0.0) archive-zip (~> 0.7.0) nokogiri (~> 1.6) - coderay (1.1.0) + coderay (1.1.1) coffee-rails (4.1.1) coffee-script (>= 2.2.0) railties (>= 4.0.0, < 5.1.x) @@ -87,11 +84,10 @@ GEM coffee-script-source execjs coffee-script-source (1.10.0) - concurrent-ruby (1.0.0) + concurrent-ruby (1.0.1) connection_pool (2.2.0) - coveralls (0.8.10) + coveralls (0.8.13) json (~> 1.8) - rest-client (>= 1.6.8, < 2) simplecov (~> 0.11.0) term-ansicolor (~> 1.3) thor (~> 0.19.1) @@ -100,16 +96,13 @@ GEM debug_inspector (0.0.2) diff-lcs (1.2.5) docile (1.1.5) - domain_name (0.5.20160128) - unf (>= 0.0.5, < 1.0.0) erubis (2.7.0) execjs (2.6.0) factory_girl (4.5.0) activesupport (>= 3.0.0) - factory_girl_rails (4.5.0) + factory_girl_rails (4.6.0) factory_girl (~> 4.5.0) railties (>= 3.0.0) - fastercsv (1.5.5) ffi (1.9.10) foreman (0.78.0) thor (~> 0.19.1) @@ -118,12 +111,10 @@ GEM haml (4.0.7) tilt highline (1.7.8) - http-cookie (1.0.2) - domain_name (~> 0.5) i18n (0.7.0) interception (0.5) io-like (0.3.0) - jbuilder (2.4.0) + jbuilder (2.4.1) activesupport (>= 3.0.0, < 5.1) multi_json (~> 1.2) json (1.8.3) @@ -135,14 +126,13 @@ GEM mail (2.6.3) mime-types (>= 1.16, < 3) method_source (0.8.2) - mime-types (2.99) + mime-types (2.99.1) mini_portile2 (2.0.0) minitest (5.8.4) multi_json (1.11.2) - netrc (0.11.0) nokogiri (1.6.7.2) mini_portile2 (~> 2.0.0.rc2) - parser (2.3.0.2) + parser (2.3.0.6) ast (~> 2.2) pg (0.18.4) powerpack (0.1.1) @@ -164,20 +154,20 @@ GEM pry-stack_explorer (0.4.9.2) binding_of_caller (>= 0.7) pry (>= 0.9.11) - puma (2.16.0) + puma (3.0.2) rack (1.6.4) rack-test (0.6.3) rack (>= 1.0) - rails (4.2.5.1) - actionmailer (= 4.2.5.1) - actionpack (= 4.2.5.1) - actionview (= 4.2.5.1) - activejob (= 4.2.5.1) - activemodel (= 4.2.5.1) - activerecord (= 4.2.5.1) - activesupport (= 4.2.5.1) + rails (4.2.5.2) + actionmailer (= 4.2.5.2) + actionpack (= 4.2.5.2) + actionview (= 4.2.5.2) + activejob (= 4.2.5.2) + activemodel (= 4.2.5.2) + activerecord (= 4.2.5.2) + activesupport (= 4.2.5.2) bundler (>= 1.3.0, < 2.0) - railties (= 4.2.5.1) + railties (= 4.2.5.2) sprockets-rails rails-deprecated_sanitizer (1.0.3) activesupport (>= 4.2.0.alpha) @@ -190,29 +180,25 @@ GEM rails_12factor (0.0.3) rails_serve_static_assets rails_stdout_logging - rails_serve_static_assets (0.0.4) + rails_serve_static_assets (0.0.5) rails_stdout_logging (0.0.4) - railties (4.2.5.1) - actionpack (= 4.2.5.1) - activesupport (= 4.2.5.1) + railties (4.2.5.2) + actionpack (= 4.2.5.2) + activesupport (= 4.2.5.2) rake (>= 0.8.7) thor (>= 0.18.1, < 2.0) rainbow (2.1.0) rake (10.5.0) - rdoc (4.2.1) + rdoc (4.2.2) json (~> 1.4) - react_on_rails (3.0.0.rc.1) + react_on_rails (3.0.6) connection_pool execjs (~> 2.5) foreman rails (>= 3.2) rainbow (~> 2.1) ref (2.0.0) - rest-client (1.8.0) - http-cookie (>= 1.0.2, < 2.0) - mime-types (>= 1.16, < 3.0) - netrc (~> 0.7) - rspec-core (3.4.2) + rspec-core (3.4.3) rspec-support (~> 3.4.0) rspec-expectations (3.4.0) diff-lcs (>= 1.2.0, < 2.0) @@ -220,7 +206,7 @@ GEM rspec-mocks (3.4.1) diff-lcs (>= 1.2.0, < 2.0) rspec-support (~> 3.4.0) - rspec-rails (3.4.1) + rspec-rails (3.4.2) actionpack (>= 3.0, < 4.3) activesupport (>= 3.0, < 4.3) railties (>= 3.0, < 4.3) @@ -231,21 +217,22 @@ GEM rspec-retry (0.4.5) rspec-core rspec-support (3.4.1) - rubocop (0.36.0) - parser (>= 2.3.0.0, < 3.0) + rubocop (0.37.2) + parser (>= 2.3.0.4, < 3.0) powerpack (~> 0.1) rainbow (>= 1.99.1, < 3.0) ruby-progressbar (~> 1.7) + unicode-display_width (~> 0.3) ruby-lint (2.1.0) parser (~> 2.2) slop (~> 3.4, >= 3.4.7) ruby-progressbar (1.7.5) - ruby2ruby (2.2.0) + ruby2ruby (2.3.0) ruby_parser (~> 3.1) sexp_processor (~> 4.0) - ruby_parser (3.7.3) + ruby_parser (3.8.1) sexp_processor (~> 4.1) - rubyzip (1.1.7) + rubyzip (1.2.0) safe_yaml (1.0.4) sass (3.4.21) sass-rails (5.0.4) @@ -254,19 +241,19 @@ GEM sprockets (>= 2.8, < 4.0) sprockets-rails (>= 2.0, < 4.0) tilt (>= 1.1, < 3) - scss_lint (0.44.0) - rake (~> 10.0) + scss_lint (0.47.1) + rake (>= 0.9, < 11) sass (~> 3.4.15) sdoc (0.4.1) json (~> 1.7, >= 1.7.7) rdoc (~> 4.0) - selenium-webdriver (2.50.0) + selenium-webdriver (2.52.0) childprocess (~> 0.5) multi_json (~> 1.0) rubyzip (~> 1.0) websocket (~> 1.0) - sexp_processor (4.6.1) - simplecov (0.11.1) + sexp_processor (4.7.0) + simplecov (0.11.2) docile (~> 1.1.0) json (~> 1.8) simplecov-html (~> 0.10.0) @@ -275,13 +262,13 @@ GEM temple (~> 0.7.3) tilt (>= 1.3.3, < 2.1) slop (3.6.0) - spring (1.6.2) + spring (1.6.4) spring-commands-rspec (1.0.4) spring (>= 0.9.1) sprockets (3.5.2) concurrent-ruby (~> 1.0) rack (> 1, < 3) - sprockets-rails (3.0.1) + sprockets-rails (3.0.4) actionpack (>= 4.0) activesupport (>= 4.0) sprockets (>= 3.0.0) @@ -297,17 +284,15 @@ GEM thread_safe (0.3.5) tilt (2.0.2) tins (1.6.0) - turbolinks (5.0.0.beta1) + turbolinks (5.0.0.beta2) turbolinks-source - turbolinks-source (5.0.0.beta1.1) + turbolinks-source (5.0.0.beta2) tzinfo (1.2.2) thread_safe (~> 0.1) uglifier (2.7.2) execjs (>= 0.3.0) json (>= 1.8.0) - unf (0.1.4) - unf_ext - unf_ext (0.0.7.1) + unicode-display_width (0.3.1) web-console (3.1.1) activemodel (>= 4.2) debug_inspector diff --git a/client/app/bundles/comments/components/CommentBox/CommentBox.jsx b/client/app/bundles/comments/components/CommentBox/CommentBox.jsx index 18df257a..4a6e30a5 100644 --- a/client/app/bundles/comments/components/CommentBox/CommentBox.jsx +++ b/client/app/bundles/comments/components/CommentBox/CommentBox.jsx @@ -38,7 +38,7 @@ export default class CommentBox extends BaseComponent {

Text supports Github Flavored Markdown. - Comments older than 24 hours are deleted.
+ Comments older than 24 hours are deleted.
Name is preserved. Text is reset, between submits.

{ it('renders an author and comment with proper css classes', () => { const component = renderIntoDocument( - + ); // TODO: Setup testing of CSS Modules classNames @@ -25,7 +25,7 @@ describe('Comment', () => { it('shows the author', () => { const component = renderIntoDocument( - + ); const author = findRenderedDOMComponentWithClass(component, 'js-comment-author'); @@ -34,7 +34,7 @@ describe('Comment', () => { it('shows the comment text in markdown', () => { const component = renderIntoDocument( - + ); const comment = findRenderedDOMComponentWithClass(component, 'js-comment-text'); diff --git a/client/app/bundles/comments/components/SimpleCommentScreen/SimpleCommentScreen.jsx b/client/app/bundles/comments/components/SimpleCommentScreen/SimpleCommentScreen.jsx index f6f95cb7..9d891634 100644 --- a/client/app/bundles/comments/components/SimpleCommentScreen/SimpleCommentScreen.jsx +++ b/client/app/bundles/comments/components/SimpleCommentScreen/SimpleCommentScreen.jsx @@ -78,7 +78,7 @@ export default class SimpleCommentScreen extends BaseComponent {

Comments

- Text take Github Flavored Markdown. Comments older than 24 hours are deleted.
+ Text take Github Flavored Markdown. Comments older than 24 hours are deleted.
Name is preserved. Text is reset, between submits.

=2.1.0 <3.0.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-2.7.0.tgz" + "version": "3.0.4", + "from": "acorn@>=3.0.4 <4.0.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-3.0.4.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.7.0", + "from": "acorn@>=2.1.0 <3.0.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-2.7.0.tgz" + } + } + }, + "acorn-jsx": { + "version": "2.0.1", + "from": "acorn-jsx@>=2.0.1 <3.0.0", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-2.0.1.tgz", + "dependencies": { + "acorn": { + "version": "2.7.0", + "from": "acorn@>=2.0.1 <3.0.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-2.7.0.tgz" + } + } }, "acorn-to-esprima": { "version": "2.0.8", @@ -54,13 +73,13 @@ }, "ansi": { "version": "0.3.1", - "from": "ansi@>=0.3.0 <0.4.0", + "from": "ansi@>=0.3.1 <0.4.0", "resolved": "https://registry.npmjs.org/ansi/-/ansi-0.3.1.tgz" }, "ansi-escapes": { - "version": "1.1.1", + "version": "1.2.0", "from": "ansi-escapes@>=1.1.0 <2.0.0", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-1.1.1.tgz" + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-1.2.0.tgz" }, "ansi-regex": { "version": "2.0.0", @@ -68,9 +87,9 @@ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.0.0.tgz" }, "ansi-styles": { - "version": "2.1.0", + "version": "2.2.0", "from": "ansi-styles@>=2.1.0 <3.0.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.1.0.tgz" + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.0.tgz" }, "anymatch": { "version": "1.3.0", @@ -79,7 +98,7 @@ }, "are-we-there-yet": { "version": "1.0.6", - "from": "are-we-there-yet@>=1.0.0 <1.1.0", + "from": "are-we-there-yet@>=1.0.6 <1.1.0", "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.0.6.tgz" }, "argparse": { @@ -102,11 +121,6 @@ "from": "array-equal@>=1.0.0 <2.0.0", "resolved": "https://registry.npmjs.org/array-equal/-/array-equal-1.0.0.tgz" }, - "array-find": { - "version": "1.0.0", - "from": "array-find@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/array-find/-/array-find-1.0.0.tgz" - }, "array-find-index": { "version": "1.0.1", "from": "array-find-index@>=1.0.0 <2.0.0", @@ -183,9 +197,9 @@ "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz" }, "async-each": { - "version": "0.1.6", - "from": "async-each@>=0.1.6 <0.2.0", - "resolved": "https://registry.npmjs.org/async-each/-/async-each-0.1.6.tgz" + "version": "1.0.0", + "from": "async-each@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.0.tgz" }, "async-foreach": { "version": "0.1.3", @@ -199,7 +213,7 @@ }, "autoprefixer": { "version": "6.3.3", - "from": "autoprefixer@>=6.3.2 <7.0.0", + "from": "autoprefixer@>=6.3.3 <7.0.0", "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-6.3.3.tgz" }, "aws-sign2": { @@ -208,9 +222,9 @@ "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.6.0.tgz" }, "aws4": { - "version": "1.2.1", + "version": "1.3.2", "from": "aws4@>=1.2.1 <2.0.0", - "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.2.1.tgz" + "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.3.2.tgz" }, "axios": { "version": "0.9.1", @@ -219,13 +233,13 @@ }, "babel": { "version": "6.5.2", - "from": "babel@>=6.5.1 <7.0.0", + "from": "babel@>=6.5.2 <7.0.0", "resolved": "https://registry.npmjs.org/babel/-/babel-6.5.2.tgz" }, "babel-cli": { - "version": "6.5.1", - "from": "babel-cli@>=6.5.1 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-cli/-/babel-cli-6.5.1.tgz", + "version": "6.6.5", + "from": "babel-cli@>=6.6.5 <7.0.0", + "resolved": "https://registry.npmjs.org/babel-cli/-/babel-cli-6.6.5.tgz", "dependencies": { "lodash": { "version": "3.10.1", @@ -235,14 +249,14 @@ } }, "babel-code-frame": { - "version": "6.5.0", - "from": "babel-code-frame@>=6.3.13 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.5.0.tgz" + "version": "6.6.5", + "from": "babel-code-frame@>=6.6.5 <7.0.0", + "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.6.5.tgz" }, "babel-core": { - "version": "6.5.2", - "from": "babel-core@>=6.5.1 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-core/-/babel-core-6.5.2.tgz", + "version": "6.6.5", + "from": "babel-core@>=6.6.5 <7.0.0", + "resolved": "https://registry.npmjs.org/babel-core/-/babel-core-6.6.5.tgz", "dependencies": { "lodash": { "version": "3.10.1", @@ -251,10 +265,15 @@ } } }, + "babel-eslint": { + "version": "5.0.0", + "from": "babel-eslint@>=5.0.0 <6.0.0", + "resolved": "https://registry.npmjs.org/babel-eslint/-/babel-eslint-5.0.0.tgz" + }, "babel-generator": { - "version": "6.5.0", - "from": "babel-generator@>=6.4.5 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-generator/-/babel-generator-6.5.0.tgz", + "version": "6.6.5", + "from": "babel-generator@>=6.6.5 <7.0.0", + "resolved": "https://registry.npmjs.org/babel-generator/-/babel-generator-6.6.5.tgz", "dependencies": { "lodash": { "version": "3.10.1", @@ -264,19 +283,19 @@ } }, "babel-helper-bindify-decorators": { - "version": "6.5.0", - "from": "babel-helper-bindify-decorators@>=6.3.13 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-helper-bindify-decorators/-/babel-helper-bindify-decorators-6.5.0.tgz" + "version": "6.6.5", + "from": "babel-helper-bindify-decorators@>=6.6.5 <7.0.0", + "resolved": "https://registry.npmjs.org/babel-helper-bindify-decorators/-/babel-helper-bindify-decorators-6.6.5.tgz" }, "babel-helper-builder-binary-assignment-operator-visitor": { - "version": "6.5.0", + "version": "6.6.5", "from": "babel-helper-builder-binary-assignment-operator-visitor@>=6.3.13 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-helper-builder-binary-assignment-operator-visitor/-/babel-helper-builder-binary-assignment-operator-visitor-6.5.0.tgz" + "resolved": "https://registry.npmjs.org/babel-helper-builder-binary-assignment-operator-visitor/-/babel-helper-builder-binary-assignment-operator-visitor-6.6.5.tgz" }, "babel-helper-builder-react-jsx": { - "version": "6.5.0", - "from": "babel-helper-builder-react-jsx@>=6.3.13 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-helper-builder-react-jsx/-/babel-helper-builder-react-jsx-6.5.0.tgz", + "version": "6.6.5", + "from": "babel-helper-builder-react-jsx@>=6.6.5 <7.0.0", + "resolved": "https://registry.npmjs.org/babel-helper-builder-react-jsx/-/babel-helper-builder-react-jsx-6.6.5.tgz", "dependencies": { "lodash": { "version": "3.10.1", @@ -286,14 +305,14 @@ } }, "babel-helper-call-delegate": { - "version": "6.5.0", - "from": "babel-helper-call-delegate@>=6.3.13 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-helper-call-delegate/-/babel-helper-call-delegate-6.5.0.tgz" + "version": "6.6.5", + "from": "babel-helper-call-delegate@>=6.6.5 <7.0.0", + "resolved": "https://registry.npmjs.org/babel-helper-call-delegate/-/babel-helper-call-delegate-6.6.5.tgz" }, "babel-helper-define-map": { - "version": "6.5.0", - "from": "babel-helper-define-map@>=6.4.5 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-helper-define-map/-/babel-helper-define-map-6.5.0.tgz", + "version": "6.6.5", + "from": "babel-helper-define-map@>=6.6.5 <7.0.0", + "resolved": "https://registry.npmjs.org/babel-helper-define-map/-/babel-helper-define-map-6.6.5.tgz", "dependencies": { "lodash": { "version": "3.10.1", @@ -303,39 +322,39 @@ } }, "babel-helper-explode-assignable-expression": { - "version": "6.5.0", - "from": "babel-helper-explode-assignable-expression@>=6.3.13 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-helper-explode-assignable-expression/-/babel-helper-explode-assignable-expression-6.5.0.tgz" + "version": "6.6.5", + "from": "babel-helper-explode-assignable-expression@>=6.6.5 <7.0.0", + "resolved": "https://registry.npmjs.org/babel-helper-explode-assignable-expression/-/babel-helper-explode-assignable-expression-6.6.5.tgz" }, "babel-helper-explode-class": { - "version": "6.5.0", - "from": "babel-helper-explode-class@>=6.3.13 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-helper-explode-class/-/babel-helper-explode-class-6.5.0.tgz" + "version": "6.6.5", + "from": "babel-helper-explode-class@>=6.6.5 <7.0.0", + "resolved": "https://registry.npmjs.org/babel-helper-explode-class/-/babel-helper-explode-class-6.6.5.tgz" }, "babel-helper-function-name": { - "version": "6.5.0", - "from": "babel-helper-function-name@>=6.4.0 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-helper-function-name/-/babel-helper-function-name-6.5.0.tgz" + "version": "6.6.0", + "from": "babel-helper-function-name@>=6.6.0 <7.0.0", + "resolved": "https://registry.npmjs.org/babel-helper-function-name/-/babel-helper-function-name-6.6.0.tgz" }, "babel-helper-get-function-arity": { - "version": "6.5.0", + "version": "6.6.5", "from": "babel-helper-get-function-arity@>=6.3.13 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-helper-get-function-arity/-/babel-helper-get-function-arity-6.5.0.tgz" + "resolved": "https://registry.npmjs.org/babel-helper-get-function-arity/-/babel-helper-get-function-arity-6.6.5.tgz" }, "babel-helper-hoist-variables": { - "version": "6.5.0", - "from": "babel-helper-hoist-variables@>=6.3.13 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-helper-hoist-variables/-/babel-helper-hoist-variables-6.5.0.tgz" + "version": "6.6.5", + "from": "babel-helper-hoist-variables@>=6.6.5 <7.0.0", + "resolved": "https://registry.npmjs.org/babel-helper-hoist-variables/-/babel-helper-hoist-variables-6.6.5.tgz" }, "babel-helper-optimise-call-expression": { - "version": "6.5.0", - "from": "babel-helper-optimise-call-expression@>=6.3.13 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-helper-optimise-call-expression/-/babel-helper-optimise-call-expression-6.5.0.tgz" + "version": "6.6.0", + "from": "babel-helper-optimise-call-expression@>=6.6.0 <7.0.0", + "resolved": "https://registry.npmjs.org/babel-helper-optimise-call-expression/-/babel-helper-optimise-call-expression-6.6.0.tgz" }, "babel-helper-regex": { - "version": "6.5.0", + "version": "6.6.5", "from": "babel-helper-regex@>=6.3.13 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-helper-regex/-/babel-helper-regex-6.5.0.tgz", + "resolved": "https://registry.npmjs.org/babel-helper-regex/-/babel-helper-regex-6.6.5.tgz", "dependencies": { "lodash": { "version": "3.10.1", @@ -345,19 +364,19 @@ } }, "babel-helper-remap-async-to-generator": { - "version": "6.5.0", + "version": "6.6.5", "from": "babel-helper-remap-async-to-generator@>=6.4.6 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-helper-remap-async-to-generator/-/babel-helper-remap-async-to-generator-6.5.0.tgz" + "resolved": "https://registry.npmjs.org/babel-helper-remap-async-to-generator/-/babel-helper-remap-async-to-generator-6.6.5.tgz" }, "babel-helper-replace-supers": { - "version": "6.5.0", - "from": "babel-helper-replace-supers@>=6.3.13 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-helper-replace-supers/-/babel-helper-replace-supers-6.5.0.tgz" + "version": "6.6.5", + "from": "babel-helper-replace-supers@>=6.6.5 <7.0.0", + "resolved": "https://registry.npmjs.org/babel-helper-replace-supers/-/babel-helper-replace-supers-6.6.5.tgz" }, "babel-helpers": { - "version": "6.5.0", - "from": "babel-helpers@>=6.4.5 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-helpers/-/babel-helpers-6.5.0.tgz" + "version": "6.6.0", + "from": "babel-helpers@>=6.6.0 <7.0.0", + "resolved": "https://registry.npmjs.org/babel-helpers/-/babel-helpers-6.6.0.tgz" }, "babel-jscs": { "version": "2.0.5", @@ -374,6 +393,11 @@ "from": "babylon@>=5.8.35 <6.0.0", "resolved": "https://registry.npmjs.org/babylon/-/babylon-5.8.35.tgz" }, + "bluebird": { + "version": "2.10.2", + "from": "bluebird@>=2.9.33 <3.0.0", + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-2.10.2.tgz" + }, "globals": { "version": "6.4.1", "from": "globals@>=6.4.0 <7.0.0", @@ -392,19 +416,19 @@ } }, "babel-loader": { - "version": "6.2.2", - "from": "babel-loader@>=6.2.2 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-6.2.2.tgz" + "version": "6.2.4", + "from": "babel-loader@>=6.2.4 <7.0.0", + "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-6.2.4.tgz" }, "babel-messages": { - "version": "6.5.0", - "from": "babel-messages@>=6.3.13 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-6.5.0.tgz" + "version": "6.6.5", + "from": "babel-messages@>=6.6.5 <7.0.0", + "resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-6.6.5.tgz" }, "babel-plugin-check-es2015-constants": { - "version": "6.5.0", + "version": "6.6.5", "from": "babel-plugin-check-es2015-constants@>=6.3.13 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-plugin-check-es2015-constants/-/babel-plugin-check-es2015-constants-6.5.0.tgz" + "resolved": "https://registry.npmjs.org/babel-plugin-check-es2015-constants/-/babel-plugin-check-es2015-constants-6.6.5.tgz" }, "babel-plugin-constant-folding": { "version": "1.0.1", @@ -544,19 +568,19 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-async-to-generator/-/babel-plugin-transform-async-to-generator-6.5.0.tgz" }, "babel-plugin-transform-class-constructor-call": { - "version": "6.5.0", + "version": "6.6.5", "from": "babel-plugin-transform-class-constructor-call@>=6.3.13 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-class-constructor-call/-/babel-plugin-transform-class-constructor-call-6.5.0.tgz" + "resolved": "https://registry.npmjs.org/babel-plugin-transform-class-constructor-call/-/babel-plugin-transform-class-constructor-call-6.6.5.tgz" }, "babel-plugin-transform-class-properties": { - "version": "6.5.2", + "version": "6.6.0", "from": "babel-plugin-transform-class-properties@>=6.3.13 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-class-properties/-/babel-plugin-transform-class-properties-6.5.2.tgz" + "resolved": "https://registry.npmjs.org/babel-plugin-transform-class-properties/-/babel-plugin-transform-class-properties-6.6.0.tgz" }, "babel-plugin-transform-decorators": { - "version": "6.5.0", + "version": "6.6.5", "from": "babel-plugin-transform-decorators@>=6.3.13 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-decorators/-/babel-plugin-transform-decorators-6.5.0.tgz" + "resolved": "https://registry.npmjs.org/babel-plugin-transform-decorators/-/babel-plugin-transform-decorators-6.6.5.tgz" }, "babel-plugin-transform-do-expressions": { "version": "6.5.0", @@ -569,14 +593,14 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-arrow-functions/-/babel-plugin-transform-es2015-arrow-functions-6.5.2.tgz" }, "babel-plugin-transform-es2015-block-scoped-functions": { - "version": "6.5.0", + "version": "6.6.5", "from": "babel-plugin-transform-es2015-block-scoped-functions@>=6.3.13 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoped-functions/-/babel-plugin-transform-es2015-block-scoped-functions-6.5.0.tgz" + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoped-functions/-/babel-plugin-transform-es2015-block-scoped-functions-6.6.5.tgz" }, "babel-plugin-transform-es2015-block-scoping": { - "version": "6.5.0", - "from": "babel-plugin-transform-es2015-block-scoping@>=6.3.13 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoping/-/babel-plugin-transform-es2015-block-scoping-6.5.0.tgz", + "version": "6.6.5", + "from": "babel-plugin-transform-es2015-block-scoping@>=6.6.0 <7.0.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoping/-/babel-plugin-transform-es2015-block-scoping-6.6.5.tgz", "dependencies": { "lodash": { "version": "3.10.1", @@ -586,24 +610,29 @@ } }, "babel-plugin-transform-es2015-classes": { - "version": "6.5.2", - "from": "babel-plugin-transform-es2015-classes@>=6.3.13 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-classes/-/babel-plugin-transform-es2015-classes-6.5.2.tgz" + "version": "6.6.5", + "from": "babel-plugin-transform-es2015-classes@>=6.6.0 <7.0.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-classes/-/babel-plugin-transform-es2015-classes-6.6.5.tgz" }, "babel-plugin-transform-es2015-computed-properties": { - "version": "6.5.2", + "version": "6.6.5", "from": "babel-plugin-transform-es2015-computed-properties@>=6.3.13 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-computed-properties/-/babel-plugin-transform-es2015-computed-properties-6.5.2.tgz" + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-computed-properties/-/babel-plugin-transform-es2015-computed-properties-6.6.5.tgz" }, "babel-plugin-transform-es2015-destructuring": { - "version": "6.5.0", - "from": "babel-plugin-transform-es2015-destructuring@>=6.3.13 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-destructuring/-/babel-plugin-transform-es2015-destructuring-6.5.0.tgz" + "version": "6.6.5", + "from": "babel-plugin-transform-es2015-destructuring@>=6.6.0 <7.0.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-destructuring/-/babel-plugin-transform-es2015-destructuring-6.6.5.tgz" + }, + "babel-plugin-transform-es2015-duplicate-keys": { + "version": "6.6.4", + "from": "babel-plugin-transform-es2015-duplicate-keys@>=6.6.0 <7.0.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-duplicate-keys/-/babel-plugin-transform-es2015-duplicate-keys-6.6.4.tgz" }, "babel-plugin-transform-es2015-for-of": { - "version": "6.5.2", - "from": "babel-plugin-transform-es2015-for-of@>=6.3.13 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-for-of/-/babel-plugin-transform-es2015-for-of-6.5.2.tgz" + "version": "6.6.0", + "from": "babel-plugin-transform-es2015-for-of@>=6.6.0 <7.0.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-for-of/-/babel-plugin-transform-es2015-for-of-6.6.0.tgz" }, "babel-plugin-transform-es2015-function-name": { "version": "6.5.0", @@ -616,19 +645,19 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-literals/-/babel-plugin-transform-es2015-literals-6.5.0.tgz" }, "babel-plugin-transform-es2015-modules-commonjs": { - "version": "6.5.2", - "from": "babel-plugin-transform-es2015-modules-commonjs@>=6.3.13 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-commonjs/-/babel-plugin-transform-es2015-modules-commonjs-6.5.2.tgz" + "version": "6.6.5", + "from": "babel-plugin-transform-es2015-modules-commonjs@>=6.6.0 <7.0.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-commonjs/-/babel-plugin-transform-es2015-modules-commonjs-6.6.5.tgz" }, "babel-plugin-transform-es2015-object-super": { - "version": "6.5.0", + "version": "6.6.5", "from": "babel-plugin-transform-es2015-object-super@>=6.3.13 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-object-super/-/babel-plugin-transform-es2015-object-super-6.5.0.tgz" + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-object-super/-/babel-plugin-transform-es2015-object-super-6.6.5.tgz" }, "babel-plugin-transform-es2015-parameters": { - "version": "6.5.0", - "from": "babel-plugin-transform-es2015-parameters@>=6.3.13 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-parameters/-/babel-plugin-transform-es2015-parameters-6.5.0.tgz" + "version": "6.6.5", + "from": "babel-plugin-transform-es2015-parameters@>=6.6.0 <7.0.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-parameters/-/babel-plugin-transform-es2015-parameters-6.6.5.tgz" }, "babel-plugin-transform-es2015-shorthand-properties": { "version": "6.5.0", @@ -636,9 +665,9 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-shorthand-properties/-/babel-plugin-transform-es2015-shorthand-properties-6.5.0.tgz" }, "babel-plugin-transform-es2015-spread": { - "version": "6.5.2", + "version": "6.6.5", "from": "babel-plugin-transform-es2015-spread@>=6.3.13 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-spread/-/babel-plugin-transform-es2015-spread-6.5.2.tgz" + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-spread/-/babel-plugin-transform-es2015-spread-6.6.5.tgz" }, "babel-plugin-transform-es2015-sticky-regex": { "version": "6.5.0", @@ -646,14 +675,14 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-sticky-regex/-/babel-plugin-transform-es2015-sticky-regex-6.5.0.tgz" }, "babel-plugin-transform-es2015-template-literals": { - "version": "6.5.2", - "from": "babel-plugin-transform-es2015-template-literals@>=6.3.13 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-template-literals/-/babel-plugin-transform-es2015-template-literals-6.5.2.tgz" + "version": "6.6.5", + "from": "babel-plugin-transform-es2015-template-literals@>=6.6.0 <7.0.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-template-literals/-/babel-plugin-transform-es2015-template-literals-6.6.5.tgz" }, "babel-plugin-transform-es2015-typeof-symbol": { - "version": "6.5.0", - "from": "babel-plugin-transform-es2015-typeof-symbol@>=6.3.13 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-typeof-symbol/-/babel-plugin-transform-es2015-typeof-symbol-6.5.0.tgz" + "version": "6.6.0", + "from": "babel-plugin-transform-es2015-typeof-symbol@>=6.6.0 <7.0.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-typeof-symbol/-/babel-plugin-transform-es2015-typeof-symbol-6.6.0.tgz" }, "babel-plugin-transform-es2015-unicode-regex": { "version": "6.5.0", @@ -671,9 +700,9 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-export-extensions/-/babel-plugin-transform-export-extensions-6.5.0.tgz" }, "babel-plugin-transform-flow-strip-types": { - "version": "6.5.0", + "version": "6.6.5", "from": "babel-plugin-transform-flow-strip-types@>=6.3.13 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-flow-strip-types/-/babel-plugin-transform-flow-strip-types-6.5.0.tgz" + "resolved": "https://registry.npmjs.org/babel-plugin-transform-flow-strip-types/-/babel-plugin-transform-flow-strip-types-6.6.5.tgz" }, "babel-plugin-transform-function-bind": { "version": "6.5.2", @@ -681,9 +710,9 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-function-bind/-/babel-plugin-transform-function-bind-6.5.2.tgz" }, "babel-plugin-transform-object-rest-spread": { - "version": "6.5.0", + "version": "6.6.5", "from": "babel-plugin-transform-object-rest-spread@>=6.3.13 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-object-rest-spread/-/babel-plugin-transform-object-rest-spread-6.5.0.tgz" + "resolved": "https://registry.npmjs.org/babel-plugin-transform-object-rest-spread/-/babel-plugin-transform-object-rest-spread-6.6.5.tgz" }, "babel-plugin-transform-react-display-name": { "version": "6.5.0", @@ -691,9 +720,9 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-react-display-name/-/babel-plugin-transform-react-display-name-6.5.0.tgz" }, "babel-plugin-transform-react-jsx": { - "version": "6.5.2", + "version": "6.6.5", "from": "babel-plugin-transform-react-jsx@>=6.3.13 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-react-jsx/-/babel-plugin-transform-react-jsx-6.5.2.tgz" + "resolved": "https://registry.npmjs.org/babel-plugin-transform-react-jsx/-/babel-plugin-transform-react-jsx-6.6.5.tgz" }, "babel-plugin-transform-react-jsx-source": { "version": "6.5.0", @@ -701,14 +730,14 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-react-jsx-source/-/babel-plugin-transform-react-jsx-source-6.5.0.tgz" }, "babel-plugin-transform-regenerator": { - "version": "6.5.2", - "from": "babel-plugin-transform-regenerator@>=6.3.13 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-regenerator/-/babel-plugin-transform-regenerator-6.5.2.tgz" + "version": "6.6.5", + "from": "babel-plugin-transform-regenerator@>=6.6.0 <7.0.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-regenerator/-/babel-plugin-transform-regenerator-6.6.5.tgz" }, "babel-plugin-transform-strict-mode": { - "version": "6.5.2", - "from": "babel-plugin-transform-strict-mode@>=6.5.2 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-strict-mode/-/babel-plugin-transform-strict-mode-6.5.2.tgz" + "version": "6.6.5", + "from": "babel-plugin-transform-strict-mode@>=6.6.5 <7.0.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-strict-mode/-/babel-plugin-transform-strict-mode-6.6.5.tgz" }, "babel-plugin-undeclared-variables-check": { "version": "1.0.2", @@ -721,14 +750,21 @@ "resolved": "https://registry.npmjs.org/babel-plugin-undefined-to-void/-/babel-plugin-undefined-to-void-1.1.6.tgz" }, "babel-polyfill": { - "version": "6.5.0", - "from": "babel-polyfill@>=6.5.0 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-polyfill/-/babel-polyfill-6.5.0.tgz" + "version": "6.6.1", + "from": "babel-polyfill@>=6.6.1 <7.0.0", + "resolved": "https://registry.npmjs.org/babel-polyfill/-/babel-polyfill-6.6.1.tgz", + "dependencies": { + "core-js": { + "version": "2.1.3", + "from": "core-js@>=2.1.0 <3.0.0", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.1.3.tgz" + } + } }, "babel-preset-es2015": { - "version": "6.5.0", - "from": "babel-preset-es2015@>=6.5.0 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-preset-es2015/-/babel-preset-es2015-6.5.0.tgz" + "version": "6.6.0", + "from": "babel-preset-es2015@>=6.6.0 <7.0.0", + "resolved": "https://registry.npmjs.org/babel-preset-es2015/-/babel-preset-es2015-6.6.0.tgz" }, "babel-preset-react": { "version": "6.5.0", @@ -761,10 +797,15 @@ "resolved": "https://registry.npmjs.org/babel-regenerator-runtime/-/babel-regenerator-runtime-6.5.0.tgz" }, "babel-register": { - "version": "6.5.2", - "from": "babel-register@>=6.5.1 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-register/-/babel-register-6.5.2.tgz", + "version": "6.6.5", + "from": "babel-register@>=6.6.5 <7.0.0", + "resolved": "https://registry.npmjs.org/babel-register/-/babel-register-6.6.5.tgz", "dependencies": { + "core-js": { + "version": "2.1.3", + "from": "core-js@>=2.1.0 <3.0.0", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.1.3.tgz" + }, "lodash": { "version": "3.10.1", "from": "lodash@>=3.10.0 <4.0.0", @@ -778,9 +819,9 @@ "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-5.8.35.tgz" }, "babel-template": { - "version": "6.5.0", - "from": "babel-template@>=6.3.13 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-template/-/babel-template-6.5.0.tgz", + "version": "6.6.5", + "from": "babel-template@>=6.6.5 <7.0.0", + "resolved": "https://registry.npmjs.org/babel-template/-/babel-template-6.6.5.tgz", "dependencies": { "lodash": { "version": "3.10.1", @@ -790,9 +831,9 @@ } }, "babel-traverse": { - "version": "6.5.0", - "from": "babel-traverse@>=6.4.5 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.5.0.tgz", + "version": "6.6.5", + "from": "babel-traverse@>=6.6.5 <7.0.0", + "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.6.5.tgz", "dependencies": { "lodash": { "version": "3.10.1", @@ -802,9 +843,9 @@ } }, "babel-types": { - "version": "6.5.2", - "from": "babel-types@>=6.5.2 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.5.2.tgz", + "version": "6.6.5", + "from": "babel-types@>=6.6.5 <7.0.0", + "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.6.5.tgz", "dependencies": { "lodash": { "version": "3.10.1", @@ -814,9 +855,9 @@ } }, "babylon": { - "version": "6.5.2", - "from": "babylon@>=6.5.2 <7.0.0", - "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.5.2.tgz" + "version": "6.6.5", + "from": "babylon@>=6.6.5 <7.0.0", + "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.6.5.tgz" }, "balanced-match": { "version": "0.3.0", @@ -874,9 +915,9 @@ "resolved": "https://registry.npmjs.org/block-stream/-/block-stream-0.0.8.tgz" }, "bluebird": { - "version": "2.10.2", - "from": "bluebird@>=2.9.33 <3.0.0", - "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-2.10.2.tgz" + "version": "3.3.3", + "from": "bluebird@>=3.1.1 <4.0.0", + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.3.3.tgz" }, "boom": { "version": "2.10.1", @@ -884,9 +925,9 @@ "resolved": "https://registry.npmjs.org/boom/-/boom-2.10.1.tgz" }, "bootstrap-loader": { - "version": "1.0.8", - "from": "bootstrap-loader@>=1.0.8 <2.0.0", - "resolved": "https://registry.npmjs.org/bootstrap-loader/-/bootstrap-loader-1.0.8.tgz", + "version": "1.0.9", + "from": "bootstrap-loader@>=1.0.9 <2.0.0", + "resolved": "https://registry.npmjs.org/bootstrap-loader/-/bootstrap-loader-1.0.9.tgz", "dependencies": { "semver": { "version": "5.1.0", @@ -947,6 +988,16 @@ "from": "bytes@2.2.0", "resolved": "https://registry.npmjs.org/bytes/-/bytes-2.2.0.tgz" }, + "caller-path": { + "version": "0.1.0", + "from": "caller-path@>=0.1.0 <0.2.0", + "resolved": "https://registry.npmjs.org/caller-path/-/caller-path-0.1.0.tgz" + }, + "callsites": { + "version": "0.2.0", + "from": "callsites@>=0.2.0 <0.3.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-0.2.0.tgz" + }, "camelcase": { "version": "2.1.0", "from": "camelcase@>=2.0.0 <3.0.0", @@ -958,9 +1009,9 @@ "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-2.0.0.tgz" }, "caniuse-db": { - "version": "1.0.30000409", + "version": "1.0.30000418", "from": "caniuse-db@>=1.0.30000409 <2.0.0", - "resolved": "https://registry.npmjs.org/caniuse-db/-/caniuse-db-1.0.30000409.tgz" + "resolved": "https://registry.npmjs.org/caniuse-db/-/caniuse-db-1.0.30000418.tgz" }, "caseless": { "version": "0.11.0", @@ -990,9 +1041,9 @@ "resolved": "https://registry.npmjs.org/character-parser/-/character-parser-1.2.1.tgz" }, "chokidar": { - "version": "1.4.2", + "version": "1.4.3", "from": "chokidar@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-1.4.2.tgz" + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-1.4.3.tgz" }, "clap": { "version": "1.0.10", @@ -1005,9 +1056,9 @@ "resolved": "https://registry.npmjs.org/classnames/-/classnames-2.2.3.tgz" }, "clean-css": { - "version": "3.4.9", + "version": "3.4.10", "from": "clean-css@>=3.1.9 <4.0.0", - "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-3.4.9.tgz", + "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-3.4.10.tgz", "dependencies": { "commander": { "version": "2.8.1", @@ -1039,9 +1090,9 @@ } }, "cli-width": { - "version": "1.1.1", - "from": "cli-width@>=1.0.1 <2.0.0", - "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-1.1.1.tgz" + "version": "2.1.0", + "from": "cli-width@>=2.0.0 <3.0.0", + "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.1.0.tgz" }, "cliui": { "version": "3.1.0", @@ -1066,12 +1117,19 @@ "color": { "version": "0.11.1", "from": "color@>=0.11.0 <0.12.0", - "resolved": "https://registry.npmjs.org/color/-/color-0.11.1.tgz" + "resolved": "https://registry.npmjs.org/color/-/color-0.11.1.tgz", + "dependencies": { + "color-convert": { + "version": "0.5.3", + "from": "color-convert@>=0.5.3 <0.6.0", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-0.5.3.tgz" + } + } }, "color-convert": { - "version": "0.5.3", - "from": "color-convert@>=0.5.3 <0.6.0", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-0.5.3.tgz" + "version": "1.0.0", + "from": "color-convert@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.0.0.tgz" }, "color-name": { "version": "1.1.1", @@ -1084,9 +1142,9 @@ "resolved": "https://registry.npmjs.org/color-string/-/color-string-0.3.0.tgz" }, "colormin": { - "version": "1.0.7", + "version": "1.1.0", "from": "colormin@>=1.0.5 <2.0.0", - "resolved": "https://registry.npmjs.org/colormin/-/colormin-1.0.7.tgz" + "resolved": "https://registry.npmjs.org/colormin/-/colormin-1.1.0.tgz" }, "colors": { "version": "1.1.2", @@ -1168,7 +1226,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.7.0", + "from": "acorn@>=2.1.0 <3.0.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-2.7.0.tgz" + } + } }, "constants-browserify": { "version": "0.0.1", @@ -1186,9 +1251,9 @@ "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.1.tgz" }, "convert-source-map": { - "version": "1.1.3", + "version": "1.2.0", "from": "convert-source-map@>=1.1.0 <2.0.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.1.3.tgz" + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.2.0.tgz" }, "cookie": { "version": "0.1.5", @@ -1216,16 +1281,9 @@ "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-2.1.5.tgz" }, "cross-spawn-async": { - "version": "2.1.8", + "version": "2.1.9", "from": "cross-spawn-async@>=2.0.0 <3.0.0", - "resolved": "https://registry.npmjs.org/cross-spawn-async/-/cross-spawn-async-2.1.8.tgz", - "dependencies": { - "lru-cache": { - "version": "4.0.0", - "from": "lru-cache@>=4.0.0 <5.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.0.0.tgz" - } - } + "resolved": "https://registry.npmjs.org/cross-spawn-async/-/cross-spawn-async-2.1.9.tgz" }, "cryptiles": { "version": "2.0.5", @@ -1296,7 +1354,7 @@ }, "cssstyle": { "version": "0.2.34", - "from": "cssstyle@>=0.2.29 <0.3.0", + "from": "cssstyle@>=0.2.34 <0.3.0", "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-0.2.34.tgz" }, "cycle": { @@ -1332,9 +1390,9 @@ "resolved": "https://registry.npmjs.org/debug/-/debug-2.2.0.tgz" }, "decamelize": { - "version": "1.1.2", + "version": "1.2.0", "from": "decamelize@>=1.1.2 <2.0.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.1.2.tgz" + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz" }, "deep-eql": { "version": "0.1.3", @@ -1443,14 +1501,19 @@ "resolved": "https://registry.npmjs.org/diff/-/diff-1.4.0.tgz" }, "doctrine": { - "version": "0.7.2", - "from": "doctrine@>=0.7.1 <0.8.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-0.7.2.tgz", + "version": "1.2.0", + "from": "doctrine@>=1.2.0 <2.0.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-1.2.0.tgz", "dependencies": { "esutils": { "version": "1.1.6", "from": "esutils@>=1.1.6 <2.0.0", "resolved": "https://registry.npmjs.org/esutils/-/esutils-1.1.6.tgz" + }, + "isarray": { + "version": "1.0.0", + "from": "isarray@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz" } } }, @@ -1549,9 +1612,9 @@ "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.11.tgz" }, "es5-shim": { - "version": "4.5.4", - "from": "es5-shim@>=4.5.2 <5.0.0", - "resolved": "https://registry.npmjs.org/es5-shim/-/es5-shim-4.5.4.tgz" + "version": "4.5.7", + "from": "es5-shim@>=4.5.7 <5.0.0", + "resolved": "https://registry.npmjs.org/es5-shim/-/es5-shim-4.5.7.tgz" }, "es6-iterator": { "version": "2.0.0", @@ -1589,9 +1652,9 @@ "resolved": "https://registry.npmjs.org/escape-regexp/-/escape-regexp-0.0.1.tgz" }, "escape-string-regexp": { - "version": "1.0.4", + "version": "1.0.5", "from": "escape-string-regexp@>=1.0.2 <2.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.4.tgz" + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz" }, "escodegen": { "version": "1.8.0", @@ -1603,37 +1666,27 @@ "from": "estraverse@>=1.9.1 <2.0.0", "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-1.9.3.tgz" }, - "fast-levenshtein": { - "version": "1.1.3", - "from": "fast-levenshtein@>=1.1.0 <2.0.0", - "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-1.1.3.tgz" - }, - "levn": { - "version": "0.3.0", - "from": "levn@>=0.3.0 <0.4.0", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz" - }, - "optionator": { - "version": "0.8.1", - "from": "optionator@>=0.8.1 <0.9.0", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.1.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" - }, - "wordwrap": { - "version": "1.0.0", - "from": "wordwrap@>=1.0.0 <1.1.0", - "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz" } } }, "escope": { - "version": "3.4.0", - "from": "escope@>=3.3.0 <4.0.0", - "resolved": "https://registry.npmjs.org/escope/-/escope-3.4.0.tgz" + "version": "3.5.0", + "from": "escope@>=3.5.0 <4.0.0", + "resolved": "https://registry.npmjs.org/escope/-/escope-3.5.0.tgz" + }, + "eslint-config-airbnb": { + "version": "6.0.2", + "from": "eslint-config-airbnb@>=6.0.2 <7.0.0", + "resolved": "https://registry.npmjs.org/eslint-config-airbnb/-/eslint-config-airbnb-6.0.2.tgz" + }, + "espree": { + "version": "3.1.1", + "from": "espree@>=3.1.1 <4.0.0", + "resolved": "https://registry.npmjs.org/espree/-/espree-3.1.1.tgz" }, "esprima": { "version": "2.7.2", @@ -1641,27 +1694,15 @@ "resolved": "https://registry.npmjs.org/esprima/-/esprima-2.7.2.tgz" }, "esrecurse": { - "version": "3.1.1", - "from": "esrecurse@>=3.1.1 <4.0.0", - "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-3.1.1.tgz", - "dependencies": { - "estraverse": { - "version": "3.1.0", - "from": "estraverse@>=3.1.0 <3.2.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-3.1.0.tgz" - } - } + "version": "4.0.0", + "from": "esrecurse@>=4.0.0 <5.0.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.0.0.tgz" }, "estraverse": { "version": "4.1.1", "from": "estraverse@>=4.1.1 <5.0.0", "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.1.1.tgz" }, - "estraverse-fb": { - "version": "1.3.1", - "from": "estraverse-fb@>=1.3.1 <2.0.0", - "resolved": "https://registry.npmjs.org/estraverse-fb/-/estraverse-fb-1.3.1.tgz" - }, "esutils": { "version": "2.0.2", "from": "esutils@>=2.0.2 <3.0.0", @@ -1755,9 +1796,9 @@ "resolved": "https://registry.npmjs.org/eyes/-/eyes-0.1.8.tgz" }, "fast-levenshtein": { - "version": "1.0.7", - "from": "fast-levenshtein@>=1.0.6 <1.1.0", - "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-1.0.7.tgz" + "version": "1.1.3", + "from": "fast-levenshtein@>=1.1.0 <2.0.0", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-1.1.3.tgz" }, "fastparse": { "version": "1.1.1", @@ -1805,9 +1846,9 @@ "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-0.4.1.tgz" }, "find-up": { - "version": "1.1.0", + "version": "1.1.2", "from": "find-up@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.0.tgz", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", "dependencies": { "path-exists": { "version": "2.1.0", @@ -1877,14 +1918,14 @@ "resolved": "https://registry.npmjs.org/fs-readdir-recursive/-/fs-readdir-recursive-0.1.2.tgz" }, "fsevents": { - "version": "1.0.7", + "version": "1.0.8", "from": "fsevents@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.0.7.tgz", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.0.8.tgz", "dependencies": { "ansi": { - "version": "0.3.0", - "from": "ansi@~0.3.0", - "resolved": "https://registry.npmjs.org/ansi/-/ansi-0.3.0.tgz" + "version": "0.3.1", + "from": "ansi@~0.3.1", + "resolved": "https://registry.npmjs.org/ansi/-/ansi-0.3.1.tgz" }, "ansi-regex": { "version": "2.0.0", @@ -1897,9 +1938,9 @@ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.1.0.tgz" }, "are-we-there-yet": { - "version": "1.0.5", - "from": "are-we-there-yet@~1.0.0", - "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.0.5.tgz" + "version": "1.0.6", + "from": "are-we-there-yet@~1.0.6", + "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.0.6.tgz" }, "asn1": { "version": "0.2.3", @@ -1907,24 +1948,36 @@ "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.3.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" + "version": "0.2.0", + "from": "assert-plus@^0.2.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-0.2.0.tgz" }, "async": { - "version": "1.5.1", + "version": "1.5.2", "from": "async@^1.4.0", - "resolved": "https://registry.npmjs.org/async/-/async-1.5.1.tgz" + "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.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" }, + "aws4": { + "version": "1.2.1", + "from": "aws4@^1.2.1", + "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.2.1.tgz", + "dependencies": { + "lru-cache": { + "version": "2.7.3", + "from": "lru-cache@^2.6.5", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-2.7.3.tgz" + } + } + }, "bl": { - "version": "1.0.0", + "version": "1.0.2", "from": "bl@~1.0.0", - "resolved": "https://registry.npmjs.org/bl/-/bl-1.0.0.tgz" + "resolved": "https://registry.npmjs.org/bl/-/bl-1.0.2.tgz" }, "block-stream": { "version": "0.0.8", @@ -1967,19 +2020,19 @@ "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-2.0.5.tgz" }, "dashdash": { - "version": "1.11.0", + "version": "1.12.2", "from": "dashdash@>=1.10.1 <2.0.0", - "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.11.0.tgz" + "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.12.2.tgz" }, "debug": { - "version": "0.7.4", - "from": "debug@~0.7.2", - "resolved": "https://registry.npmjs.org/debug/-/debug-0.7.4.tgz" + "version": "2.2.0", + "from": "debug@~2.2.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.2.0.tgz" }, "deep-extend": { - "version": "0.4.0", + "version": "0.4.1", "from": "deep-extend@~0.4.0", - "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.4.0.tgz" + "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.4.1.tgz" }, "delayed-stream": { "version": "1.0.0", @@ -1987,9 +2040,9 @@ "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" + "version": "1.0.0", + "from": "delegates@^1.0.0", + "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz" }, "ecc-jsbn": { "version": "0.1.1", @@ -2058,9 +2111,9 @@ } }, "gauge": { - "version": "1.2.2", - "from": "gauge@~1.2.0", - "resolved": "https://registry.npmjs.org/gauge/-/gauge-1.2.2.tgz" + "version": "1.2.5", + "from": "gauge@~1.2.5", + "resolved": "https://registry.npmjs.org/gauge/-/gauge-1.2.5.tgz" }, "generate-function": { "version": "2.0.0", @@ -2073,9 +2126,9 @@ "resolved": "https://registry.npmjs.org/generate-object-property/-/generate-object-property-1.2.0.tgz" }, "graceful-fs": { - "version": "4.1.2", + "version": "4.1.3", "from": "graceful-fs@^4.1.2", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.2.tgz" + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.3.tgz" }, "graceful-readlink": { "version": "1.0.1", @@ -2083,9 +2136,9 @@ "resolved": "https://registry.npmjs.org/graceful-readlink/-/graceful-readlink-1.0.1.tgz" }, "har-validator": { - "version": "2.0.3", - "from": "har-validator@~2.0.2", - "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-2.0.3.tgz" + "version": "2.0.6", + "from": "har-validator@~2.0.6", + "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-2.0.6.tgz" }, "has-ansi": { "version": "2.0.0", @@ -2093,14 +2146,14 @@ "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" + "version": "2.0.0", + "from": "has-unicode@^2.0.0", + "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.0.tgz" }, "hawk": { - "version": "3.1.2", + "version": "3.1.3", "from": "hawk@~3.1.0", - "resolved": "https://registry.npmjs.org/hawk/-/hawk-3.1.2.tgz" + "resolved": "https://registry.npmjs.org/hawk/-/hawk-3.1.3.tgz" }, "hoek": { "version": "2.16.3", @@ -2108,9 +2161,9 @@ "resolved": "https://registry.npmjs.org/hoek/-/hoek-2.16.3.tgz" }, "http-signature": { - "version": "1.1.0", + "version": "1.1.1", "from": "http-signature@~1.1.0", - "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.1.0.tgz" + "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.1.1.tgz" }, "inherits": { "version": "2.0.1", @@ -2123,9 +2176,9 @@ "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.4.tgz" }, "is-my-json-valid": { - "version": "2.12.3", - "from": "is-my-json-valid@^2.12.3", - "resolved": "https://registry.npmjs.org/is-my-json-valid/-/is-my-json-valid-2.12.3.tgz" + "version": "2.12.4", + "from": "is-my-json-valid@^2.12.4", + "resolved": "https://registry.npmjs.org/is-my-json-valid/-/is-my-json-valid-2.12.4.tgz" }, "is-property": { "version": "1.0.2", @@ -2187,10 +2240,15 @@ "from": "lodash._createpadding@^3.0.0", "resolved": "https://registry.npmjs.org/lodash._createpadding/-/lodash._createpadding-3.6.1.tgz" }, + "lodash._root": { + "version": "3.0.0", + "from": "lodash._root@^3.0.0", + "resolved": "https://registry.npmjs.org/lodash._root/-/lodash._root-3.0.0.tgz" + }, "lodash.pad": { - "version": "3.1.1", + "version": "3.3.0", "from": "lodash.pad@^3.0.0", - "resolved": "https://registry.npmjs.org/lodash.pad/-/lodash.pad-3.1.1.tgz" + "resolved": "https://registry.npmjs.org/lodash.pad/-/lodash.pad-3.3.0.tgz" }, "lodash.padleft": { "version": "3.1.1", @@ -2203,9 +2261,9 @@ "resolved": "https://registry.npmjs.org/lodash.padright/-/lodash.padright-3.1.1.tgz" }, "lodash.repeat": { - "version": "3.0.1", + "version": "3.2.0", "from": "lodash.repeat@^3.0.0", - "resolved": "https://registry.npmjs.org/lodash.repeat/-/lodash.repeat-3.0.1.tgz" + "resolved": "https://registry.npmjs.org/lodash.repeat/-/lodash.repeat-3.2.0.tgz" }, "mime-db": { "version": "1.21.0", @@ -2227,10 +2285,15 @@ "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" }, + "ms": { + "version": "0.7.1", + "from": "ms@0.7.1", + "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.1.tgz" + }, "node-pre-gyp": { - "version": "0.6.19", - "from": "node-pre-gyp@>=0.6.17 <0.7.0", - "resolved": "https://registry.npmjs.org/node-pre-gyp/-/node-pre-gyp-0.6.19.tgz", + "version": "0.6.21", + "from": "node-pre-gyp@>=0.6.21 <0.7.0", + "resolved": "https://registry.npmjs.org/node-pre-gyp/-/node-pre-gyp-0.6.21.tgz", "dependencies": { "nopt": { "version": "3.0.6", @@ -2252,24 +2315,24 @@ "resolved": "https://registry.npmjs.org/node-uuid/-/node-uuid-1.4.7.tgz" }, "npmlog": { - "version": "2.0.0", + "version": "2.0.2", "from": "npmlog@~2.0.0", - "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-2.0.0.tgz" + "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-2.0.2.tgz" }, "oauth-sign": { - "version": "0.8.0", + "version": "0.8.1", "from": "oauth-sign@~0.8.0", - "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.8.0.tgz" + "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.8.1.tgz" }, "once": { - "version": "1.1.1", - "from": "once@~1.1.1", - "resolved": "https://registry.npmjs.org/once/-/once-1.1.1.tgz" + "version": "1.3.3", + "from": "once@~1.3.3", + "resolved": "https://registry.npmjs.org/once/-/once-1.3.3.tgz" }, "pinkie": { - "version": "2.0.1", + "version": "2.0.4", "from": "pinkie@^2.0.0", - "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.1.tgz" + "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz" }, "pinkie-promise": { "version": "2.0.0", @@ -2282,9 +2345,9 @@ "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.6.tgz" }, "qs": { - "version": "5.2.0", - "from": "qs@~5.2.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-5.2.0.tgz" + "version": "6.0.2", + "from": "qs@~6.0.2", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.0.2.tgz" }, "rc": { "version": "1.1.6", @@ -2304,19 +2367,19 @@ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.0.5.tgz" }, "request": { - "version": "2.67.0", + "version": "2.69.0", "from": "request@2.x", - "resolved": "https://registry.npmjs.org/request/-/request-2.67.0.tgz" + "resolved": "https://registry.npmjs.org/request/-/request-2.69.0.tgz" }, "rimraf": { - "version": "2.5.0", + "version": "2.5.1", "from": "rimraf@~2.5.0", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.5.0.tgz", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.5.1.tgz", "dependencies": { "glob": { - "version": "6.0.3", + "version": "6.0.4", "from": "glob@^6.0.1", - "resolved": "https://registry.npmjs.org/glob/-/glob-6.0.3.tgz", + "resolved": "https://registry.npmjs.org/glob/-/glob-6.0.4.tgz", "dependencies": { "inflight": { "version": "1.0.4", @@ -2332,7 +2395,7 @@ }, "inherits": { "version": "2.0.1", - "from": "inherits@~2.0.0", + "from": "inherits@2", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz" }, "minimatch": { @@ -2391,16 +2454,9 @@ "resolved": "https://registry.npmjs.org/sntp/-/sntp-1.0.9.tgz" }, "sshpk": { - "version": "1.7.2", + "version": "1.7.3", "from": "sshpk@^1.7.0", - "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.7.2.tgz", - "dependencies": { - "assert-plus": { - "version": "0.2.0", - "from": "assert-plus@>=0.2.0 <0.3.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-0.2.0.tgz" - } - } + "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.7.3.tgz" }, "string_decoder": { "version": "0.10.31", @@ -2433,83 +2489,9 @@ "resolved": "https://registry.npmjs.org/tar/-/tar-2.2.1.tgz" }, "tar-pack": { - "version": "3.1.2", + "version": "3.1.3", "from": "tar-pack@~3.1.0", - "resolved": "https://registry.npmjs.org/tar-pack/-/tar-pack-3.1.2.tgz", - "dependencies": { - "rimraf": { - "version": "2.4.5", - "from": "rimraf@~2.4.4", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.4.5.tgz", - "dependencies": { - "glob": { - "version": "6.0.3", - "from": "glob@^6.0.1", - "resolved": "https://registry.npmjs.org/glob/-/glob-6.0.3.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", - "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.2", - "from": "brace-expansion@^1.0.0", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.2.tgz", - "dependencies": { - "balanced-match": { - "version": "0.3.0", - "from": "balanced-match@^0.3.0", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-0.3.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.3", - "from": "once@^1.3.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.3.3.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" - } - } - } - } - } - } + "resolved": "https://registry.npmjs.org/tar-pack/-/tar-pack-3.1.3.tgz" }, "tough-cookie": { "version": "2.2.1", @@ -2522,14 +2504,14 @@ "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.4.2.tgz" }, "tweetnacl": { - "version": "0.13.2", + "version": "0.13.3", "from": "tweetnacl@>=0.13.0 <1.0.0", - "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.13.2.tgz" + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.13.3.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" + "version": "0.0.6", + "from": "uid-number@~0.0.6", + "resolved": "https://registry.npmjs.org/uid-number/-/uid-number-0.0.6.tgz" }, "util-deprecate": { "version": "1.0.2", @@ -2541,6 +2523,11 @@ "from": "verror@1.3.6", "resolved": "https://registry.npmjs.org/verror/-/verror-1.3.6.tgz" }, + "wrappy": { + "version": "1.0.1", + "from": "wrappy@1", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.1.tgz" + }, "xtend": { "version": "4.0.1", "from": "xtend@^4.0.0", @@ -2554,9 +2541,9 @@ "resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.8.tgz" }, "gauge": { - "version": "1.2.5", - "from": "gauge@>=1.2.0 <1.3.0", - "resolved": "https://registry.npmjs.org/gauge/-/gauge-1.2.5.tgz" + "version": "1.2.7", + "from": "gauge@>=1.2.5 <1.3.0", + "resolved": "https://registry.npmjs.org/gauge/-/gauge-1.2.7.tgz" }, "gaze": { "version": "0.5.2", @@ -2647,6 +2634,11 @@ "from": "lodash@>=1.0.1 <1.1.0", "resolved": "https://registry.npmjs.org/lodash/-/lodash-1.0.2.tgz" }, + "lru-cache": { + "version": "2.7.3", + "from": "lru-cache@>=2.0.0 <3.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-2.7.3.tgz" + }, "minimatch": { "version": "0.2.14", "from": "minimatch@>=0.2.11 <0.3.0", @@ -2669,18 +2661,6 @@ "from": "growl@1.8.1", "resolved": "https://registry.npmjs.org/growl/-/growl-1.8.1.tgz" }, - "handlebars": { - "version": "4.0.5", - "from": "handlebars@>=4.0.0 <5.0.0", - "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.0.5.tgz", - "dependencies": { - "source-map": { - "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" - } - } - }, "har-validator": { "version": "2.0.6", "from": "har-validator@>=2.0.6 <2.1.0", @@ -2717,9 +2697,9 @@ "resolved": "https://registry.npmjs.org/hawk/-/hawk-3.1.3.tgz" }, "history": { - "version": "2.0.0", + "version": "2.0.1", "from": "history@>=2.0.0 <3.0.0", - "resolved": "https://registry.npmjs.org/history/-/history-2.0.0.tgz" + "resolved": "https://registry.npmjs.org/history/-/history-2.0.1.tgz" }, "hoek": { "version": "2.16.3", @@ -2764,9 +2744,9 @@ "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.4.0.tgz" }, "http-proxy": { - "version": "1.13.1", + "version": "1.13.2", "from": "http-proxy@>=1.11.2 <2.0.0", - "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.13.1.tgz" + "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.13.2.tgz" }, "http-signature": { "version": "1.1.1", @@ -2798,6 +2778,11 @@ "from": "ieee754@>=1.1.4 <2.0.0", "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.6.tgz" }, + "ignore": { + "version": "2.2.19", + "from": "ignore@>=2.2.19 <3.0.0", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-2.2.19.tgz" + }, "immutable": { "version": "3.7.6", "from": "immutable@>=3.7.6 <4.0.0", @@ -2858,16 +2843,9 @@ "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.4.tgz" }, "inquirer": { - "version": "0.11.4", - "from": "inquirer@>=0.11.0 <0.12.0", - "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-0.11.4.tgz", - "dependencies": { - "lodash": { - "version": "3.10.1", - "from": "lodash@>=3.3.1 <4.0.0", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-3.10.1.tgz" - } - } + "version": "0.12.0", + "from": "inquirer@>=0.12.0 <0.13.0", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-0.12.0.tgz" }, "interpret": { "version": "0.6.6", @@ -2960,9 +2938,9 @@ "resolved": "https://registry.npmjs.org/is-integer/-/is-integer-1.0.6.tgz" }, "is-my-json-valid": { - "version": "2.12.4", + "version": "2.13.1", "from": "is-my-json-valid@>=2.12.4 <3.0.0", - "resolved": "https://registry.npmjs.org/is-my-json-valid/-/is-my-json-valid-2.12.4.tgz" + "resolved": "https://registry.npmjs.org/is-my-json-valid/-/is-my-json-valid-2.13.1.tgz" }, "is-number": { "version": "2.1.0", @@ -3055,9 +3033,9 @@ "resolved": "https://registry.npmjs.org/jodid25519/-/jodid25519-1.0.2.tgz" }, "jquery": { - "version": "2.2.0", - "from": "jquery@>=2.2.0 <3.0.0", - "resolved": "https://registry.npmjs.org/jquery/-/jquery-2.2.0.tgz" + "version": "2.2.1", + "from": "jquery@>=2.2.1 <3.0.0", + "resolved": "https://registry.npmjs.org/jquery/-/jquery-2.2.1.tgz" }, "jquery-ujs": { "version": "1.2.0", @@ -3196,9 +3174,9 @@ "resolved": "https://registry.npmjs.org/JSV/-/JSV-4.0.2.tgz" }, "keycode": { - "version": "2.1.0", + "version": "2.1.1", "from": "keycode@>=2.1.0 <3.0.0", - "resolved": "https://registry.npmjs.org/keycode/-/keycode-2.1.0.tgz" + "resolved": "https://registry.npmjs.org/keycode/-/keycode-2.1.1.tgz" }, "kind-of": { "version": "3.0.2", @@ -3226,9 +3204,9 @@ "resolved": "https://registry.npmjs.org/leven/-/leven-1.0.2.tgz" }, "levn": { - "version": "0.2.5", - "from": "levn@>=0.2.5 <0.3.0", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.2.5.tgz" + "version": "0.3.0", + "from": "levn@>=0.3.0 <0.4.0", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz" }, "line-numbers": { "version": "0.2.0", @@ -3246,9 +3224,9 @@ "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-0.2.12.tgz" }, "lodash": { - "version": "4.3.0", - "from": "lodash@>=4.3.0 <5.0.0", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.3.0.tgz" + "version": "4.6.1", + "from": "lodash@>=4.6.1 <5.0.0", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.6.1.tgz" }, "lodash-compat": { "version": "3.10.2", @@ -3256,45 +3234,20 @@ "resolved": "https://registry.npmjs.org/lodash-compat/-/lodash-compat-3.10.2.tgz" }, "lodash-es": { - "version": "4.3.0", + "version": "4.6.1", "from": "lodash-es@>=4.2.1 <5.0.0", - "resolved": "https://registry.npmjs.org/lodash-es/-/lodash-es-4.3.0.tgz" - }, - "lodash._arraycopy": { - "version": "3.0.0", - "from": "lodash._arraycopy@>=3.0.0 <4.0.0", - "resolved": "https://registry.npmjs.org/lodash._arraycopy/-/lodash._arraycopy-3.0.0.tgz" - }, - "lodash._arrayeach": { - "version": "3.0.0", - "from": "lodash._arrayeach@>=3.0.0 <4.0.0", - "resolved": "https://registry.npmjs.org/lodash._arrayeach/-/lodash._arrayeach-3.0.0.tgz" - }, - "lodash._arraymap": { - "version": "3.0.0", - "from": "lodash._arraymap@>=3.0.0 <4.0.0", - "resolved": "https://registry.npmjs.org/lodash._arraymap/-/lodash._arraymap-3.0.0.tgz" + "resolved": "https://registry.npmjs.org/lodash-es/-/lodash-es-4.6.1.tgz" }, "lodash._baseassign": { "version": "3.2.0", "from": "lodash._baseassign@>=3.0.0 <4.0.0", "resolved": "https://registry.npmjs.org/lodash._baseassign/-/lodash._baseassign-3.2.0.tgz" }, - "lodash._baseclone": { - "version": "3.3.0", - "from": "lodash._baseclone@>=3.0.0 <4.0.0", - "resolved": "https://registry.npmjs.org/lodash._baseclone/-/lodash._baseclone-3.3.0.tgz" - }, "lodash._basecopy": { "version": "3.0.1", "from": "lodash._basecopy@>=3.0.0 <4.0.0", "resolved": "https://registry.npmjs.org/lodash._basecopy/-/lodash._basecopy-3.0.1.tgz" }, - "lodash._basedifference": { - "version": "3.0.3", - "from": "lodash._basedifference@>=3.0.0 <4.0.0", - "resolved": "https://registry.npmjs.org/lodash._basedifference/-/lodash._basedifference-3.0.3.tgz" - }, "lodash._baseflatten": { "version": "3.1.4", "from": "lodash._baseflatten@>=3.0.0 <4.0.0", @@ -3305,46 +3258,21 @@ "from": "lodash._basefor@>=3.0.0 <4.0.0", "resolved": "https://registry.npmjs.org/lodash._basefor/-/lodash._basefor-3.0.3.tgz" }, - "lodash._baseindexof": { - "version": "3.1.0", - "from": "lodash._baseindexof@>=3.0.0 <4.0.0", - "resolved": "https://registry.npmjs.org/lodash._baseindexof/-/lodash._baseindexof-3.1.0.tgz" - }, - "lodash._basetostring": { - "version": "3.0.1", - "from": "lodash._basetostring@>=3.0.0 <4.0.0", - "resolved": "https://registry.npmjs.org/lodash._basetostring/-/lodash._basetostring-3.0.1.tgz" - }, "lodash._bindcallback": { "version": "3.0.1", "from": "lodash._bindcallback@>=3.0.0 <4.0.0", "resolved": "https://registry.npmjs.org/lodash._bindcallback/-/lodash._bindcallback-3.0.1.tgz" }, - "lodash._cacheindexof": { - "version": "3.0.2", - "from": "lodash._cacheindexof@>=3.0.0 <4.0.0", - "resolved": "https://registry.npmjs.org/lodash._cacheindexof/-/lodash._cacheindexof-3.0.2.tgz" - }, "lodash._createassigner": { "version": "3.1.1", "from": "lodash._createassigner@>=3.0.0 <4.0.0", "resolved": "https://registry.npmjs.org/lodash._createassigner/-/lodash._createassigner-3.1.1.tgz" }, - "lodash._createcache": { - "version": "3.1.2", - "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", - "resolved": "https://registry.npmjs.org/lodash._createpadding/-/lodash._createpadding-3.6.1.tgz" - }, "lodash._getnative": { "version": "3.9.1", "from": "lodash._getnative@>=3.0.0 <4.0.0", @@ -3366,9 +3294,9 @@ "resolved": "https://registry.npmjs.org/lodash._pickbycallback/-/lodash._pickbycallback-3.0.0.tgz" }, "lodash._root": { - "version": "3.0.0", + "version": "3.0.1", "from": "lodash._root@>=3.0.0 <4.0.0", - "resolved": "https://registry.npmjs.org/lodash._root/-/lodash._root-3.0.0.tgz" + "resolved": "https://registry.npmjs.org/lodash._root/-/lodash._root-3.0.1.tgz" }, "lodash.assign": { "version": "3.2.0", @@ -3380,11 +3308,6 @@ "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.2.0", "from": "lodash.deburr@>=3.0.0 <4.0.0", @@ -3396,9 +3319,9 @@ "resolved": "https://registry.npmjs.org/lodash.defaults/-/lodash.defaults-3.1.2.tgz" }, "lodash.isarguments": { - "version": "3.0.6", + "version": "3.0.8", "from": "lodash.isarguments@>=3.0.0 <4.0.0", - "resolved": "https://registry.npmjs.org/lodash.isarguments/-/lodash.isarguments-3.0.6.tgz" + "resolved": "https://registry.npmjs.org/lodash.isarguments/-/lodash.isarguments-3.0.8.tgz" }, "lodash.isarray": { "version": "3.0.4", @@ -3410,11 +3333,6 @@ "from": "lodash.isplainobject@>=3.2.0 <4.0.0", "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-3.2.0.tgz" }, - "lodash.istypedarray": { - "version": "3.0.4", - "from": "lodash.istypedarray@>=3.0.0 <4.0.0", - "resolved": "https://registry.npmjs.org/lodash.istypedarray/-/lodash.istypedarray-3.0.4.tgz" - }, "lodash.keys": { "version": "3.1.2", "from": "lodash.keys@>=3.0.0 <4.0.0", @@ -3425,30 +3343,20 @@ "from": "lodash.keysin@>=3.0.0 <4.0.0", "resolved": "https://registry.npmjs.org/lodash.keysin/-/lodash.keysin-3.0.8.tgz" }, - "lodash.merge": { - "version": "3.3.2", - "from": "lodash.merge@>=3.3.2 <4.0.0", - "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-3.3.2.tgz" - }, - "lodash.omit": { - "version": "3.1.0", - "from": "lodash.omit@>=3.1.0 <4.0.0", - "resolved": "https://registry.npmjs.org/lodash.omit/-/lodash.omit-3.1.0.tgz" - }, "lodash.pad": { - "version": "3.3.0", - "from": "lodash.pad@>=3.0.0 <4.0.0", - "resolved": "https://registry.npmjs.org/lodash.pad/-/lodash.pad-3.3.0.tgz" + "version": "4.1.0", + "from": "lodash.pad@>=4.1.0 <5.0.0", + "resolved": "https://registry.npmjs.org/lodash.pad/-/lodash.pad-4.1.0.tgz" }, - "lodash.padleft": { - "version": "3.1.1", - "from": "lodash.padleft@>=3.0.0 <4.0.0", - "resolved": "https://registry.npmjs.org/lodash.padleft/-/lodash.padleft-3.1.1.tgz" + "lodash.padend": { + "version": "4.2.0", + "from": "lodash.padend@>=4.1.0 <5.0.0", + "resolved": "https://registry.npmjs.org/lodash.padend/-/lodash.padend-4.2.0.tgz" }, - "lodash.padright": { - "version": "3.1.1", - "from": "lodash.padright@>=3.0.0 <4.0.0", - "resolved": "https://registry.npmjs.org/lodash.padright/-/lodash.padright-3.1.1.tgz" + "lodash.padstart": { + "version": "4.2.0", + "from": "lodash.padstart@>=4.1.0 <5.0.0", + "resolved": "https://registry.npmjs.org/lodash.padstart/-/lodash.padstart-4.2.0.tgz" }, "lodash.pick": { "version": "3.1.0", @@ -3456,19 +3364,19 @@ "resolved": "https://registry.npmjs.org/lodash.pick/-/lodash.pick-3.1.0.tgz" }, "lodash.repeat": { - "version": "3.2.0", - "from": "lodash.repeat@>=3.0.0 <4.0.0", - "resolved": "https://registry.npmjs.org/lodash.repeat/-/lodash.repeat-3.2.0.tgz" + "version": "4.0.0", + "from": "lodash.repeat@>=4.0.0 <5.0.0", + "resolved": "https://registry.npmjs.org/lodash.repeat/-/lodash.repeat-4.0.0.tgz" }, "lodash.restparam": { "version": "3.6.1", "from": "lodash.restparam@>=3.0.0 <4.0.0", "resolved": "https://registry.npmjs.org/lodash.restparam/-/lodash.restparam-3.6.1.tgz" }, - "lodash.toplainobject": { - "version": "3.0.0", - "from": "lodash.toplainobject@>=3.0.0 <4.0.0", - "resolved": "https://registry.npmjs.org/lodash.toplainobject/-/lodash.toplainobject-3.0.0.tgz" + "lodash.tostring": { + "version": "4.1.2", + "from": "lodash.tostring@>=4.0.0 <5.0.0", + "resolved": "https://registry.npmjs.org/lodash.tostring/-/lodash.tostring-4.1.2.tgz" }, "lodash.words": { "version": "3.2.0", @@ -3491,14 +3399,14 @@ "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.1.0.tgz" }, "loud-rejection": { - "version": "1.2.1", + "version": "1.3.0", "from": "loud-rejection@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/loud-rejection/-/loud-rejection-1.2.1.tgz" + "resolved": "https://registry.npmjs.org/loud-rejection/-/loud-rejection-1.3.0.tgz" }, "lru-cache": { - "version": "2.7.3", - "from": "lru-cache@>=2.6.5 <3.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-2.7.3.tgz" + "version": "4.0.0", + "from": "lru-cache@>=4.0.0 <5.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.0.0.tgz" }, "map-obj": { "version": "1.0.1", @@ -3546,14 +3454,14 @@ "resolved": "https://registry.npmjs.org/mime/-/mime-1.2.11.tgz" }, "mime-db": { - "version": "1.21.0", - "from": "mime-db@>=1.21.0 <1.22.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.21.0.tgz" + "version": "1.22.0", + "from": "mime-db@>=1.22.0 <1.23.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.22.0.tgz" }, "mime-types": { - "version": "2.1.9", + "version": "2.1.10", "from": "mime-types@>=2.1.7 <2.2.0", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.9.tgz" + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.10.tgz" }, "min-document": { "version": "2.18.0", @@ -3613,9 +3521,9 @@ "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.5.3.tgz" }, "node-gyp": { - "version": "3.2.1", + "version": "3.3.1", "from": "node-gyp@>=3.0.1 <4.0.0", - "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-3.2.1.tgz", + "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-3.3.1.tgz", "dependencies": { "glob": { "version": "4.5.3", @@ -3628,6 +3536,11 @@ } } }, + "lru-cache": { + "version": "2.7.3", + "from": "lru-cache@>=2.0.0 <3.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-2.7.3.tgz" + }, "minimatch": { "version": "1.0.0", "from": "minimatch@>=1.0.0 <2.0.0", @@ -3700,9 +3613,9 @@ "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz" }, "normalize-url": { - "version": "1.4.0", + "version": "1.4.1", "from": "normalize-url@>=1.4.0 <2.0.0", - "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-1.4.0.tgz" + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-1.4.1.tgz" }, "npmconf": { "version": "2.1.2", @@ -3710,9 +3623,9 @@ "resolved": "https://registry.npmjs.org/npmconf/-/npmconf-2.1.2.tgz" }, "npmlog": { - "version": "1.2.1", - "from": "npmlog@>=0.0.0 <1.0.0||>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-1.2.1.tgz" + "version": "2.0.2", + "from": "npmlog@>=0.0.0 <1.0.0||>=1.0.0 <2.0.0||>=2.0.0 <3.0.0", + "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-2.0.2.tgz" }, "num2fraction": { "version": "1.2.2", @@ -3777,9 +3690,16 @@ } }, "optionator": { - "version": "0.6.0", - "from": "optionator@>=0.6.0 <0.7.0", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.6.0.tgz" + "version": "0.8.1", + "from": "optionator@>=0.8.1 <0.9.0", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.1.tgz", + "dependencies": { + "wordwrap": { + "version": "1.0.0", + "from": "wordwrap@>=1.0.0 <1.1.0", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz" + } + } }, "original": { "version": "1.0.0", @@ -3907,14 +3827,19 @@ "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.0.tgz" }, "pkginfo": { - "version": "0.3.1", + "version": "0.4.0", "from": "pkginfo@>=0.0.0 <1.0.0", - "resolved": "https://registry.npmjs.org/pkginfo/-/pkginfo-0.3.1.tgz" + "resolved": "https://registry.npmjs.org/pkginfo/-/pkginfo-0.4.0.tgz" + }, + "pluralize": { + "version": "1.2.1", + "from": "pluralize@>=1.2.1 <2.0.0", + "resolved": "https://registry.npmjs.org/pluralize/-/pluralize-1.2.1.tgz" }, "postcss": { - "version": "5.0.15", + "version": "5.0.19", "from": "postcss@>=5.0.15 <6.0.0", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.0.15.tgz" + "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.0.19.tgz" }, "postcss-calc": { "version": "5.2.0", @@ -3922,9 +3847,9 @@ "resolved": "https://registry.npmjs.org/postcss-calc/-/postcss-calc-5.2.0.tgz" }, "postcss-colormin": { - "version": "2.1.8", + "version": "2.2.0", "from": "postcss-colormin@>=2.1.8 <3.0.0", - "resolved": "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-2.1.8.tgz" + "resolved": "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-2.2.0.tgz" }, "postcss-convert-values": { "version": "2.3.4", @@ -3958,7 +3883,7 @@ }, "postcss-loader": { "version": "0.8.1", - "from": "postcss-loader@>=0.8.0 <0.9.0", + "from": "postcss-loader@>=0.8.1 <0.9.0", "resolved": "https://registry.npmjs.org/postcss-loader/-/postcss-loader-0.8.1.tgz" }, "postcss-merge-idents": { @@ -3972,9 +3897,9 @@ "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-2.0.1.tgz" }, "postcss-merge-rules": { - "version": "2.0.5", + "version": "2.0.6", "from": "postcss-merge-rules@>=2.0.3 <3.0.0", - "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-2.0.5.tgz" + "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-2.0.6.tgz" }, "postcss-message-helpers": { "version": "2.0.0", @@ -3982,9 +3907,9 @@ "resolved": "https://registry.npmjs.org/postcss-message-helpers/-/postcss-message-helpers-2.0.0.tgz" }, "postcss-minify-font-values": { - "version": "1.0.2", + "version": "1.0.3", "from": "postcss-minify-font-values@>=1.0.2 <2.0.0", - "resolved": "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-1.0.2.tgz" + "resolved": "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-1.0.3.tgz" }, "postcss-minify-gradients": { "version": "1.0.1", @@ -4047,9 +3972,9 @@ "resolved": "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-1.0.3.tgz" }, "postcss-selector-parser": { - "version": "1.3.1", + "version": "1.3.3", "from": "postcss-selector-parser@>=1.3.1 <2.0.0", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-1.3.1.tgz" + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-1.3.3.tgz" }, "postcss-svgo": { "version": "2.1.2", @@ -4062,9 +3987,9 @@ "resolved": "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-2.0.2.tgz" }, "postcss-value-parser": { - "version": "3.2.3", + "version": "3.3.0", "from": "postcss-value-parser@>=3.2.3 <4.0.0", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.2.3.tgz" + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.0.tgz" }, "postcss-zindex": { "version": "2.0.1", @@ -4073,7 +3998,7 @@ }, "prelude-ls": { "version": "1.1.2", - "from": "prelude-ls@>=1.1.1 <1.2.0", + "from": "prelude-ls@>=1.1.2 <1.2.0", "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz" }, "prepend-http": { @@ -4101,6 +4026,11 @@ "from": "process-nextick-args@>=1.0.6 <1.1.0", "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.6.tgz" }, + "progress": { + "version": "1.1.8", + "from": "progress@>=1.1.8 <2.0.0", + "resolved": "https://registry.npmjs.org/progress/-/progress-1.1.8.tgz" + }, "promise": { "version": "7.1.1", "from": "promise@>=7.0.3 <8.0.0", @@ -4147,9 +4077,9 @@ "resolved": "https://registry.npmjs.org/qs/-/qs-6.0.2.tgz" }, "query-string": { - "version": "3.0.0", + "version": "3.0.1", "from": "query-string@>=3.0.0 <4.0.0", - "resolved": "https://registry.npmjs.org/query-string/-/query-string-3.0.0.tgz" + "resolved": "https://registry.npmjs.org/query-string/-/query-string-3.0.1.tgz" }, "querystring": { "version": "0.2.0", @@ -4207,8 +4137,9 @@ "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-0.14.7.tgz" }, "react-on-rails": { - "version": "3.0.0-rc.2", - "from": "react-on-rails@3.0.0-rc.2" + "version": "3.0.6", + "from": "react-on-rails@3.0.6", + "resolved": "https://registry.npmjs.org/react-on-rails/-/react-on-rails-3.0.6.tgz" }, "react-overlays": { "version": "0.6.0", @@ -4228,10 +4159,15 @@ "resolved": "https://registry.npmjs.org/react-prop-types/-/react-prop-types-0.3.0.tgz" }, "react-proxy": { - "version": "1.1.2", + "version": "1.1.6", "from": "react-proxy@>=1.1.1 <2.0.0", - "resolved": "https://registry.npmjs.org/react-proxy/-/react-proxy-1.1.2.tgz", + "resolved": "https://registry.npmjs.org/react-proxy/-/react-proxy-1.1.6.tgz", "dependencies": { + "core-js": { + "version": "2.1.3", + "from": "core-js@>=2.1.3 <3.0.0", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.1.3.tgz" + }, "lodash": { "version": "3.10.1", "from": "lodash@>=3.7.0 <4.0.0", @@ -4250,9 +4186,9 @@ "resolved": "https://registry.npmjs.org/react-router/-/react-router-2.0.0.tgz" }, "react-router-redux": { - "version": "4.0.0-beta.1", - "from": "react-router-redux@>=4.0.0-beta.1 <5.0.0", - "resolved": "https://registry.npmjs.org/react-router-redux/-/react-router-redux-4.0.0-beta.1.tgz" + "version": "4.0.0", + "from": "react-router-redux@>=4.0.0 <5.0.0", + "resolved": "https://registry.npmjs.org/react-router-redux/-/react-router-redux-4.0.0.tgz" }, "read": { "version": "1.0.7", @@ -4307,9 +4243,9 @@ "resolved": "https://registry.npmjs.org/redent/-/redent-1.0.0.tgz" }, "reduce-css-calc": { - "version": "1.2.0", + "version": "1.2.1", "from": "reduce-css-calc@>=1.2.0 <2.0.0", - "resolved": "https://registry.npmjs.org/reduce-css-calc/-/reduce-css-calc-1.2.0.tgz", + "resolved": "https://registry.npmjs.org/reduce-css-calc/-/reduce-css-calc-1.2.1.tgz", "dependencies": { "balanced-match": { "version": "0.1.0", @@ -4393,9 +4329,9 @@ "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.2.tgz" }, "repeat-string": { - "version": "1.5.2", + "version": "1.5.4", "from": "repeat-string@>=1.5.2 <2.0.0", - "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.5.2.tgz" + "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.5.4.tgz" }, "repeating": { "version": "1.1.3", @@ -4407,6 +4343,11 @@ "from": "request@>=2.65.0 <3.0.0", "resolved": "https://registry.npmjs.org/request/-/request-2.69.0.tgz" }, + "require-uncached": { + "version": "1.0.2", + "from": "require-uncached@>=1.0.2 <2.0.0", + "resolved": "https://registry.npmjs.org/require-uncached/-/require-uncached-1.0.2.tgz" + }, "requires-port": { "version": "1.0.0", "from": "requires-port@>=1.0.0 <2.0.0", @@ -4422,6 +4363,11 @@ "from": "resolve@>=1.1.6 <2.0.0", "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.1.7.tgz" }, + "resolve-from": { + "version": "1.0.1", + "from": "resolve-from@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-1.0.1.tgz" + }, "resolve-url": { "version": "0.2.1", "from": "resolve-url@>=0.2.1 <0.3.0", @@ -4482,9 +4428,9 @@ "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.5.2.tgz", "dependencies": { "glob": { - "version": "7.0.0", + "version": "7.0.3", "from": "glob@>=7.0.0 <8.0.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.0.0.tgz" + "resolved": "https://registry.npmjs.org/glob/-/glob-7.0.3.tgz" } } }, @@ -4526,9 +4472,9 @@ "resolved": "https://registry.npmjs.org/sass-resources-loader/-/sass-resources-loader-1.0.2.tgz" }, "sax": { - "version": "1.1.5", + "version": "1.1.6", "from": "sax@>=1.1.4 <1.2.0", - "resolved": "https://registry.npmjs.org/sax/-/sax-1.1.5.tgz" + "resolved": "https://registry.npmjs.org/sax/-/sax-1.1.6.tgz" }, "semver": { "version": "4.3.6", @@ -4626,6 +4572,11 @@ "from": "slash@>=1.0.0 <2.0.0", "resolved": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz" }, + "slice-ansi": { + "version": "0.0.4", + "from": "slice-ansi@0.0.4", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-0.0.4.tgz" + }, "sntp": { "version": "1.0.9", "from": "sntp@>=1.0.0 <2.0.0", @@ -4788,9 +4739,9 @@ "resolved": "https://registry.npmjs.org/stringstream/-/stringstream-0.0.5.tgz" }, "strip-ansi": { - "version": "3.0.0", + "version": "3.0.1", "from": "strip-ansi@>=3.0.0 <4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.0.tgz" + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz" }, "strip-bom": { "version": "2.0.0", @@ -4834,6 +4785,11 @@ "from": "symbol-tree@>=3.1.0 <4.0.0", "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.1.4.tgz" }, + "table": { + "version": "3.7.8", + "from": "table@>=3.7.8 <4.0.0", + "resolved": "https://registry.npmjs.org/table/-/table-3.7.8.tgz" + }, "tapable": { "version": "0.1.10", "from": "tapable@>=0.1.8 <0.2.0", @@ -4956,14 +4912,19 @@ "from": "tunnel-agent@>=0.4.1 <0.5.0", "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.4.2.tgz" }, + "tv4": { + "version": "1.2.7", + "from": "tv4@>=1.2.7 <2.0.0", + "resolved": "https://registry.npmjs.org/tv4/-/tv4-1.2.7.tgz" + }, "tweetnacl": { - "version": "0.13.3", + "version": "0.14.1", "from": "tweetnacl@>=0.13.0 <1.0.0", - "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.13.3.tgz" + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.1.tgz" }, "type-check": { "version": "0.3.2", - "from": "type-check@>=0.3.1 <0.4.0", + "from": "type-check@>=0.3.2 <0.4.0", "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz" }, "type-detect": { @@ -4972,9 +4933,9 @@ "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-1.0.0.tgz" }, "type-is": { - "version": "1.6.11", + "version": "1.6.12", "from": "type-is@>=1.6.11 <1.7.0", - "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.11.tgz" + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.12.tgz" }, "typedarray": { "version": "0.0.6", @@ -4987,9 +4948,9 @@ "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.10.tgz" }, "uglify-js": { - "version": "2.6.1", + "version": "2.6.2", "from": "uglify-js@>=2.6.0 <2.7.0", - "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.6.1.tgz", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.6.2.tgz", "dependencies": { "async": { "version": "0.2.10", @@ -5197,9 +5158,9 @@ "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz" }, "webpack": { - "version": "1.12.13", - "from": "webpack@>=1.12.13 <2.0.0", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-1.12.13.tgz" + "version": "1.12.14", + "from": "webpack@>=1.12.14 <2.0.0", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-1.12.14.tgz" }, "webpack-core": { "version": "0.6.8", @@ -5279,6 +5240,11 @@ "version": "0.6.2", "from": "colors@>=0.6.0 <0.7.0", "resolved": "https://registry.npmjs.org/colors/-/colors-0.6.2.tgz" + }, + "pkginfo": { + "version": "0.3.1", + "from": "pkginfo@>=0.3.0 <0.4.0", + "resolved": "https://registry.npmjs.org/pkginfo/-/pkginfo-0.3.1.tgz" } } }, @@ -5314,11 +5280,6 @@ "from": "write@>=0.2.1 <0.3.0", "resolved": "https://registry.npmjs.org/write/-/write-0.2.1.tgz" }, - "xml-escape": { - "version": "1.0.0", - "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", @@ -5336,6 +5297,11 @@ } } }, + "xregexp": { + "version": "3.1.0", + "from": "xregexp@>=3.0.0 <4.0.0", + "resolved": "https://registry.npmjs.org/xregexp/-/xregexp-3.1.0.tgz" + }, "xtend": { "version": "4.0.1", "from": "xtend@>=4.0.0 <5.0.0", diff --git a/client/package.json b/client/package.json index e5aa9d06..49d91405 100644 --- a/client/package.json +++ b/client/package.json @@ -39,42 +39,42 @@ "jscs": "jscs --verbose ." }, "dependencies": { - "autoprefixer": "^6.3.2", + "autoprefixer": "^6.3.3", "axios": "^0.9.1", - "babel": "^6.5.1", - "babel-cli": "^6.5.1", - "babel-core": "^6.5.1", - "babel-loader": "^6.2.2", - "babel-polyfill": "^6.5.0", - "babel-preset-es2015": "^6.5.0", + "babel": "^6.5.2", + "babel-cli": "^6.6.5", + "babel-core": "^6.6.5", + "babel-loader": "^6.2.4", + "babel-polyfill": "^6.6.1", + "babel-preset-es2015": "^6.6.0", "babel-preset-react": "^6.5.0", "babel-preset-stage-0": "^6.5.0", - "bootstrap-loader": "^1.0.8", + "bootstrap-loader": "^1.0.9", "bootstrap-sass": "^3.3.6", "css-loader": "^0.23.1", - "es5-shim": "^4.5.2", + "es5-shim": "^4.5.7", "expose-loader": "^0.7.1", "extract-text-webpack-plugin": "^1.0.1", "file-loader": "^0.8.5", "immutable": "^3.7.6", "imports-loader": "^0.6.5", - "jquery": "^2.2.0", + "jquery": "^2.2.1", "jquery-ujs": "^1.2.0", "loader-utils": "^0.2.12", - "lodash": "^4.3.0", + "lodash": "^4.6.1", "marked": "^0.3.5", "node-sass": "^3.4.2", "node-uuid": "^1.4.7", - "postcss-loader": "^0.8.0", + "postcss-loader": "^0.8.1", "react": "^0.14.7", "react-addons-pure-render-mixin": "^0.14.7", "react-bootstrap": "^0.28.3", "react-dom": "^0.14.7", - "react-on-rails": "3.0.0-rc.2", + "react-on-rails": "3.0.6", "react-redux": "^4.4.0", "react-router": "^2.0.0", "redux": "^3.3.1", - "react-router-redux": "^4.0.0-beta.1", + "react-router-redux": "^4.0.0", "redux-promise": "^0.5.1", "redux-thunk": "^1.0.3", "resolve-url-loader": "^1.4.3", @@ -82,22 +82,22 @@ "sass-resources-loader": "1.0.2", "style-loader": "^0.13.0", "url-loader": "^0.5.7", - "webpack": "^1.12.13" + "webpack": "^1.12.14" }, "devDependencies": { - "babel-eslint": "^5.0.0-beta8", - "babel-plugin-react-transform": "^2.0.0", + "babel-eslint": "^5.0.0", + "babel-plugin-react-transform": "^2.0.2", "body-parser": "^1.15.0", "chai": "^3.5.0", "chai-immutable": "^1.5.3", - "eslint": "^1.10.3", - "eslint-config-shakacode": "^1.0.0", - "eslint-config-airbnb": "^5.0.0", - "eslint-plugin-react": "^3.16.1", + "eslint": "^2.3.0", + "eslint-config-shakacode": "^3.0.0", + "eslint-config-airbnb": "^6.0.2", + "eslint-plugin-react": "^4.2.0", "express": "^4.13.4", "jade": "^1.11.0", - "jscs": "^2.9.0", - "jsdom": "^8.0.2", + "jscs": "^2.11.0", + "jsdom": "^8.1.0", "mocha": "^2.4.5", "react-addons-test-utils": "^0.14.7", "react-transform-hmr": "^1.0.2", diff --git a/lib/tasks/linters.rake b/lib/tasks/linters.rake index 89bf9196..8ef41262 100644 --- a/lib/tasks/linters.rake +++ b/lib/tasks/linters.rake @@ -51,7 +51,7 @@ if %w(development test).include? Rails.env end desc "JS Linting" - task js: [:eslint, :jscs] do + task js: [:jscs, :eslint] do puts "Completed running all JavaScript Linters" end diff --git a/package.json b/package.json index 9eccde14..844b9661 100644 --- a/package.json +++ b/package.json @@ -38,5 +38,9 @@ "url": "https://github.com/shakacode/react-webpack-rails-tutorial/issues" }, "homepage": "https://github.com/shakacode/react-webpack-rails-tutorial", - "dependencies": {} + "dependencies": { + "babel-polyfill": "^6.6.1", + "estraverse": "^4.1.1", + "estraverse-fb": "^1.3.1" + } } From e0eb5d8892aa8d30568907ff6356d15c38de824f Mon Sep 17 00:00:00 2001 From: Justin Gordon Date: Sat, 5 Mar 2016 12:36:36 -1000 Subject: [PATCH 009/246] Remove babel-eslint and eslint-config-airbnb Those are dependencies of eslint-config-shakacode, so including them creates a chance of a version conflict. --- client/package.json | 2 -- 1 file changed, 2 deletions(-) diff --git a/client/package.json b/client/package.json index 49d91405..7b38d390 100644 --- a/client/package.json +++ b/client/package.json @@ -85,14 +85,12 @@ "webpack": "^1.12.14" }, "devDependencies": { - "babel-eslint": "^5.0.0", "babel-plugin-react-transform": "^2.0.2", "body-parser": "^1.15.0", "chai": "^3.5.0", "chai-immutable": "^1.5.3", "eslint": "^2.3.0", "eslint-config-shakacode": "^3.0.0", - "eslint-config-airbnb": "^6.0.2", "eslint-plugin-react": "^4.2.0", "express": "^4.13.4", "jade": "^1.11.0", From 376ebe77af7f098e1aa1fd1aef2908ff1c599f90 Mon Sep 17 00:00:00 2001 From: Justin Gordon Date: Sun, 6 Mar 2016 00:46:38 -1000 Subject: [PATCH 010/246] Fixed up the Procfile.static and Procfile.hot --- Procfile.hot | 2 +- Procfile.static | 6 +++--- ...plication_static.js => application_static.js.erb} | 7 +++++-- app/assets/stylesheets/application_static.scss | 6 ------ app/assets/stylesheets/application_static.scss.erb | 12 ++++++++++++ app/views/layouts/application.html.erb | 3 ++- client/webpack.client.base.config.js | 2 ++ client/webpack.client.rails.hot.config.js | 3 +-- docs/jquery-with-react-on-rails.md | 2 +- 9 files changed, 27 insertions(+), 16 deletions(-) rename app/assets/javascripts/{application_static.js => application_static.js.erb} (82%) delete mode 100644 app/assets/stylesheets/application_static.scss create mode 100644 app/assets/stylesheets/application_static.scss.erb diff --git a/Procfile.hot b/Procfile.hot index 360b0ac5..196e84f1 100644 --- a/Procfile.hot +++ b/Procfile.hot @@ -7,7 +7,7 @@ rails: REACT_ON_RAILS_ENV=HOT rails s # Run the hot reload server for client development -rails-assets: sh -c 'npm run build:dev:client:once && HOT_RAILS_PORT=3500 npm run hot-assets' +hot-assets: sh -c 'rm app/assets/webpack/* || true && HOT_RAILS_PORT=3500 npm run hot-assets' # Keep the JS fresh for server rendering. Remove if not server rendering rails-server-assets: sh -c 'npm run build:dev:server' diff --git a/Procfile.static b/Procfile.static index d3683811..102e97ce 100644 --- a/Procfile.static +++ b/Procfile.static @@ -1,8 +1,8 @@ # Run Rails without hot reloading (static assets). -rails: rails s +rails: REACT_ON_RAILS_ENV= rails s # Build client assets, watching for changes. -rails-client-assets: sh -c 'npm run build:dev:client' +rails-client-assets: rm app/assets/webpack/* || true && npm run build:dev:client # Build server assets, watching for changes. Remove if not server rendering. -rails-server-assets: sh -c 'npm run build:dev:server' +rails-server-assets: npm run build:dev:server diff --git a/app/assets/javascripts/application_static.js b/app/assets/javascripts/application_static.js.erb similarity index 82% rename from app/assets/javascripts/application_static.js rename to app/assets/javascripts/application_static.js.erb index 9d39fcac..40ae3907 100644 --- a/app/assets/javascripts/application_static.js +++ b/app/assets/javascripts/application_static.js.erb @@ -6,8 +6,11 @@ // These assets are located in app/assets/webpack directory // CRITICAL that webpack/vendor-bundle must be BEFORE turbolinks // since it is exposing jQuery and jQuery-ujs -//= require vendor-bundle -//= require app-bundle + +<% if ENV["REACT_ON_RAILS_ENV"] != "HOT" %> + <% require_asset "vendor-bundle" %> + <% require_asset "app-bundle" %> +<% end %> // Non-webpack assets incl turbolinks //= require application_non_webpack diff --git a/app/assets/stylesheets/application_static.scss b/app/assets/stylesheets/application_static.scss deleted file mode 100644 index 553f72bf..00000000 --- a/app/assets/stylesheets/application_static.scss +++ /dev/null @@ -1,6 +0,0 @@ -// These assets are located in app/assets/webpack directory -@import 'vendor-bundle'; -@import 'app-bundle'; - -// Non-webpack assets -@import 'application_non_webpack'; diff --git a/app/assets/stylesheets/application_static.scss.erb b/app/assets/stylesheets/application_static.scss.erb new file mode 100644 index 00000000..86230d94 --- /dev/null +++ b/app/assets/stylesheets/application_static.scss.erb @@ -0,0 +1,12 @@ +// These assets are located in app/assets/webpack directory, and are generated ONLY when static +// assets are prepared (not for hot reloading assets). + +// Super important: This file is loaded even for hot loading only, so we need to be sure +// that we don't reference the static generated CSS files. +<% unless ENV["REACT_ON_RAILS_ENV"] == "HOT" %> + @import 'vendor-bundle'; + @import 'app-bundle'; +<% end %> + +// Non-webpack assets +@import 'application_non_webpack'; diff --git a/app/views/layouts/application.html.erb b/app/views/layouts/application.html.erb index 5228a92b..16db78ad 100644 --- a/app/views/layouts/application.html.erb +++ b/app/views/layouts/application.html.erb @@ -8,7 +8,8 @@ media: 'all', 'data-turbolinks-track' => true) %> - + + <%= env_javascript_include_tag(hot: ['http://localhost:3500/vendor-bundle.js', 'http://localhost:3500/app-bundle.js']) %> diff --git a/client/webpack.client.base.config.js b/client/webpack.client.base.config.js index 93700448..303b68bb 100644 --- a/client/webpack.client.base.config.js +++ b/client/webpack.client.base.config.js @@ -16,6 +16,8 @@ module.exports = { // See use of 'vendor' in the CommonsChunkPlugin inclusion below. vendor: [ 'babel-polyfill', + 'es5-shim/es5-shim', + 'es5-shim/es5-sham', 'jquery', ], diff --git a/client/webpack.client.rails.hot.config.js b/client/webpack.client.rails.hot.config.js index 5adbb94c..e071bac4 100644 --- a/client/webpack.client.rails.hot.config.js +++ b/client/webpack.client.rails.hot.config.js @@ -15,9 +15,8 @@ config.entry.app.push( 'webpack/hot/only-dev-server' ); +// These are Rails specific config.entry.vendor.push( - 'es5-shim/es5-shim', - 'es5-shim/es5-sham', 'jquery-ujs', 'bootstrap-loader' ); diff --git a/docs/jquery-with-react-on-rails.md b/docs/jquery-with-react-on-rails.md index ee6ea8d0..b37bca64 100644 --- a/docs/jquery-with-react-on-rails.md +++ b/docs/jquery-with-react-on-rails.md @@ -2,7 +2,7 @@ jQuery and jQuery-ujs are not required within `app/assets/javascript/application.js` and have been moved under`/client` and are managed by npm. The modules are exposed via entry point by [client/webpack.client.base.config.js](client/webpack.client.base.config.js) and, for `jquery-ujs`, in the [client/webpack.client.rails.build.config.js](client/webpack.client.rails.build.config.js) and the [client/webpack.client.rails.hot.config.js](client/webpack.client.rails.hot.config.js). -In `application_non_webpack.js` and `application_static.js`, it's critical that any libraries that depend on jQuery come after the inclusion +In `application_non_webpack.js` and `application_static.js.erb`, it's critical that any libraries that depend on jQuery come after the inclusion of the Webpack bundle. Please refer to [Considerations for jQuery with Rails and Webpack](http://forum.shakacode.com/t/considerations-for-jquery-with-rails-and-webpack/344) for further info. From 31bf155f823a00288c983fe6701ec0e8e36ea9ea Mon Sep 17 00:00:00 2001 From: Justin Gordon Date: Sun, 6 Mar 2016 12:04:14 -1000 Subject: [PATCH 011/246] Update rpsec setup to support other drivers Also experiment with disabling animations in phantomjs. No matter what, I can't seem to get phantomjs or capybara-webkit to pass. Errors here: https://gist.github.com/justin808/5830adb7634e77db8c23 --- .gitignore | 2 + CHANGELOG.md | 15 ++-- Gemfile | 10 ++- Gemfile.lock | 14 ++++ README.md | 36 ++++----- config/database.yml | 21 +++++ config/initializers/react_on_rails.rb | 2 + docs/contributors.md | 14 ++++ spec/rails_helper.rb | 80 +++++++++++++------- spec/spec_helper.rb | 3 + spec/support/phantomjs-disable-animations.js | 14 ++++ 11 files changed, 155 insertions(+), 56 deletions(-) create mode 100644 docs/contributors.md create mode 100644 spec/support/phantomjs-disable-animations.js diff --git a/.gitignore b/.gitignore index 0293f91f..93c476de 100644 --- a/.gitignore +++ b/.gitignore @@ -31,3 +31,5 @@ vendor/ruby # Rubymine/IntelliJ .idea + +spec/examples.txt diff --git a/CHANGELOG.md b/CHANGELOG.md index 948411bf..8ed23da7 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,8 +1,13 @@ -v1.1 - Sunday, March 22, 2015 ------------------------------- -1. Changed /webpack directory to /client +# Change Log +All notable changes to this project will be documented in this file. +See: [merged pull requests](https://github.com/shakacode/react-webpack-rails-tutorial/pulls?utf8=%E2%9C%93&q=is%3Apr+is%3Amerged). + +## [2.1.0] - 2016-03-06 +### Updated +- Changed properties for comments to have a top level name property comments. -This is out of date. +## 2.0.0 - 2016-03-05 +Baseline for Changelog -See: [pull requests](https://github.com/shakacode/react-webpack-rails-tutorial/pulls?utf8=%E2%9C%93&q=is%3Apr) +[2.1.0]: https://github.com/shakacode/react_on_rails/compare/2.1.0...2.0.0 diff --git a/Gemfile b/Gemfile index 1cfd31ed..ebbd5e88 100644 --- a/Gemfile +++ b/Gemfile @@ -91,12 +91,14 @@ end group :test do gem "coveralls", require: false - gem "rspec-rails" - gem "rspec-retry" gem "capybara" gem "capybara-screenshot" - gem "selenium-webdriver" - gem "chromedriver-helper" + gem "capybara-webkit" + gem "chromedriver-helper", require: ["selenium_chrome"].include?(ENV["DRIVER"]) gem "database_cleaner" gem "launchy" + gem "poltergeist"# , require: ["poltergeist", "poltergeist_errors_ok"].include?(ENV["DRIVER"]) + gem "rspec-rails" + gem "rspec-retry" + gem "selenium-webdriver", require: !["poltergeist", "poltergeist_errors_ok", "webkit"].include?(ENV["DRIVER"]) end diff --git a/Gemfile.lock b/Gemfile.lock index 47ad724a..526a9596 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -71,11 +71,15 @@ GEM capybara-screenshot (1.0.11) capybara (>= 1.0, < 3) launchy + capybara-webkit (1.8.0) + capybara (>= 2.3.0, < 2.7.0) + json childprocess (0.5.9) ffi (~> 1.0, >= 1.0.11) chromedriver-helper (1.0.0) archive-zip (~> 0.7.0) nokogiri (~> 1.6) + cliver (0.3.2) coderay (1.1.1) coffee-rails (4.1.1) coffee-script (>= 2.2.0) @@ -135,6 +139,11 @@ GEM parser (2.3.0.6) ast (~> 2.2) pg (0.18.4) + poltergeist (1.9.0) + capybara (~> 2.1) + cliver (~> 0.3.1) + multi_json (~> 1.0) + websocket-driver (>= 0.2.0) powerpack (0.1.1) pry (0.10.3) coderay (~> 1.1.0) @@ -298,6 +307,9 @@ GEM debug_inspector railties (>= 4.2) websocket (1.2.2) + websocket-driver (0.6.3) + websocket-extensions (>= 0.1.0) + websocket-extensions (0.1.2) xpath (2.0.0) nokogiri (~> 1.3) yard (0.8.7.6) @@ -312,6 +324,7 @@ DEPENDENCIES bundler-audit capybara capybara-screenshot + capybara-webkit chromedriver-helper coffee-rails coveralls @@ -321,6 +334,7 @@ DEPENDENCIES jbuilder launchy pg + poltergeist pry pry-byebug pry-doc diff --git a/README.md b/README.md index 53e20a52..8621df8d 100644 --- a/README.md +++ b/README.md @@ -16,9 +16,9 @@ By Justin Gordon and the Shaka Code Team, [www.shakacode.com](http://www.shakaco - Feel free to open discussions at [forum.shakacode.com](http://forum.shakacode.com). We love to help! - We now have a [gitter chat room for this topic](https://gitter.im/shakacode/react-webpack-rails-tutorial) but we prefer our Slack Channel ([email us](mailto:contact@shakacode.com) for an invite). - Check out the [react_on_rails gem](https://github.com/shakacode/react_on_rails) for easy webpack integration. -- If you came to here from the blog article, this example project has evolved. See [pull requests](https://github.com/shakacode/react-webpack-rails-tutorial/pulls?utf8=%E2%9C%93&q=is%3Apr). +- If you came to here from the blog article, this example project has evolved. See [merged pull requests](https://github.com/shakacode/react-webpack-rails-tutorial/pulls?utf8=%E2%9C%93&q=is%3Apr+is%3Amerged) and the [CHANGELOG.md](./CHANGELOG.md). -A Full tutorial article can be found at: [Fast Rich Client Rails Development With Webpack and the ES6 Transpiler](http://www.railsonmaui.com/blog/2014/10/03/integrating-webpack-and-the-es6-transpiler-into-an-existing-rails-project/). Note, this source code repository is way ahead of the tutorial. We plan to update the tutorial article as soon as we can catch our breath! +An outdated full tutorial article behind of the motivation of this system can be found at: [Fast Rich Client Rails Development With Webpack and the ES6 Transpiler](http://www.railsonmaui.com/blog/2014/10/03/integrating-webpack-and-the-es6-transpiler-into-an-existing-rails-project/). Note, this source code repository is way ahead of the tutorial. # NEWS We have not yet updated the `react_on_rails` gem generators for the following tasks. We're looking for help to migrate this, if you're interested in contributing to the project. *The tutorial* refers to this repo. The following changes have resulted in lots of differences for the webpack files and visual assets: @@ -28,7 +28,6 @@ We have not yet updated the `react_on_rails` gem generators for the following ta If you did generate a fresh app from React On Rails and want to move to CSS Modules, then see [PR 175: Babel 6 / CSS Modules / Rails hot reloading](https://github.com/shakacode/react-webpack-rails-tutorial/pull/175). Note, while there are probably fixes after this PR was accepted, this has the majority of the changes. - # Example Application This is a simple example application that illustrates the use of ReactJs to implement a commenting system. Front-end code leverages both ReactJs and Rails asset pipeline while the backend is 100% Rails. It shows off a little bit of the interactivity of a ReactJs application, allowing the commmenter to choose the form layout. `react-bootstrap` is used for the React components. A pure Rails UI generated from scaffolding is shown for comparison. @@ -40,7 +39,7 @@ In no particular order: - Example of using the [react_on_rails gem](https://github.com/shakacode/react_on_rails) for easy react/webpack integration with Rails. - Example of React with [CSS Modules](http://glenmaddern.com/articles/css-modules) inside of Rails using Webpack as described in [Smarter CSS builds with Webpack](http://bensmithett.com/smarter-css-builds-with-webpack/). -- Example of enabling hot reloading of both JS and CSS from your Rails app in development mode. Change your code. Save. Browser updates without a refresh! +- Example of enabling hot reloading of both JS and CSS (modules) from your Rails app in development mode. Change your code. Save. Browser updates without a refresh! - Example of Rails 4.2 with ReactJs/Redux/React-Router with Webpack and ES7. - Enabling development of a JS client independently from Rails using the [Webpack Dev Server](https://webpack.github.io/docs/webpack-dev-server.html). You can see this by starting the app and visiting http://localhost:4000 - Enabling the use of npm modules and [Babel](https://babeljs.io/) with a Rails application using [Webpack](https://webpack.github.io/). @@ -74,15 +73,23 @@ See package.json and Gemfile for versions 1. `bundle install` 1. `npm install` 1. `rake db:setup` -1. `foreman start -f Procfile.dev` -1. Open a browser tab to http://localhost:3000 for the Rails app example. -1. Open a browser tab to http://localhost:4000 for the Hot Module Replacement Example. +1. `foreman start -f Procfile.hot` + 1. Open a browser tab to http://localhost:3000 for the Rails app example with HOT RELOADING + 2. Try Hot Reloading steps below! +1. `foreman start -f Procfile.express` + 1. Open a browser tab to http://localhost:4000 for the Hot Module Replacement Example just using an express server (no Rails involved). This is good for fast prototyping of React components. However, this setup is not as useful now that we have hot reloading working for Rails! + 2. Try Hot Reloading steps below! +1. `foreman start -f Procfile.static` + 1. Open a browser tab to http://localhost:3000 for the Rails app example. + 2. When you make changes, you have to refresh the browser page. + +## Hot Reloading Example (applies to both `Procfile.hot` and `Procfile.express`. 1. With the browser open to any JSX file, such as [client/app/bundles/comments/components/CommentBox/CommentBox.jsx](client/app/bundles/comments/components/CommentBox/CommentBox.jsx) and you can change the JSX code, hit save, and you will see the sceen update without refreshing the window. This applies to port 3000 and port 4000. 1. Try changing a `.scss` file, such as a color in [client/app/bundles/comments/components/CommentBox/CommentList/Comment/Comment.scss](client/app/bundles/comments/components/CommentBox/CommentList/Comment/Comment.scss). You can see port 3000 or 4000 update automatically. 1. Be sure to take a look at the different Procfiles in this directory, as described below. # KEY COMMANDS -1. Run all linters and tests: `rake ci` +1. Run all linters and tests: `rake` 1. See all npm commands: `npm run` 1. Start all development processes: `foreman start -f Procfile.dev` 1. Start all Rails only development processes: `foreman start -f Procfile.rails` @@ -169,18 +176,7 @@ bundle exec foreman start -f In genereral, you want to avoid running more webpack watch processes than you need. The `Procfile.dev`, for example, runs both the express server (Webpack dev server) and the Rails hot assets reloading server. ## Contributors -[The Shaka Code team!](http://www.shakacode.com/about/) and many others! - -Notable contributions include (please submit PR if I miss any!): - -* [Justin Gordon](https://github.com/justin808/): Started this, leads this -* [Alex Fedoseev](https://github.com/alexfedoseev): Added integration of Rails hot loading and CSS modules, plus much more -* [Martin Breining](https://github.com/mbreining): For adding flux at first -* [Dylan Grafmyre](https://github.com/Dgrafmyre): For ci setup -* [Rob Wise](https://github.com/robwise): Many doc improvements -* [Josias Schneider](https://github.com/josiasd): Conversion to the new react_on_rails format - -See the full list of [Contributors](https://github.com/shakacode/react-webpack-rails-tutorial/graphs/contributors) +[The Shaka Code team!](http://www.shakacode.com/about/), led by [Justin Gordon](https://github.com/justin808/), along with with many others. See [contributors.md](docs/contributors.md) # Open Code of Conduct This project adheres to the [Open Code of Conduct](http://todogroup.org/opencodeofconduct/#fetch/opensource@github.com). By participating, you are expected to uphold this code. diff --git a/config/database.yml b/config/database.yml index 1db94216..7f4ace36 100644 --- a/config/database.yml +++ b/config/database.yml @@ -24,3 +24,24 @@ test: production: <<: *default database: db/production.sqlite3 + +# Uncomment below for a setup with just postgres and change your Gemfile to reflect this +# default: &default +# adapter: postgresql +# username: +# password: +# +# development: +# <<: *default +# database: tutorial_development +# +# # Warning: The database defined as "test" will be erased and +# # re-generated from your development database when you run "rake". +# # Do not set this db to the same as development or production. +# test: +# <<: *default +# database: tutorial_test +# +#production: +# <<: *default +# database: tutorial_production diff --git a/config/initializers/react_on_rails.rb b/config/initializers/react_on_rails.rb index 7802e01a..4c8c5aff 100644 --- a/config/initializers/react_on_rails.rb +++ b/config/initializers/react_on_rails.rb @@ -17,4 +17,6 @@ # Server rendering: config.server_renderer_pool_size = 1 # increase if you're on JRuby config.server_renderer_timeout = 20 # seconds + + config.generated_assets_dirs = File.join(%w(app assets webpack)) end diff --git a/docs/contributors.md b/docs/contributors.md new file mode 100644 index 00000000..b9d45cd0 --- /dev/null +++ b/docs/contributors.md @@ -0,0 +1,14 @@ +# Contributors + +First, we love community contributions, as small as a one character doc fix! Please fork and submit a PR if you see something to improve of fix. + +## Notable contributions include (please submit PR if I miss any!): + +See the full list of [Contributors](https://github.com/shakacode/react-webpack-rails-tutorial/graphs/contributors) + +* [Justin Gordon](https://github.com/justin808/): Started this, leads this +* [Alex Fedoseev](https://github.com/alexfedoseev): Added integration of Rails hot loading and CSS modules, plus much more +* [Martin Breining](https://github.com/mbreining): For adding flux at first +* [Dylan Grafmyre](https://github.com/Dgrafmyre): For ci setup +* [Rob Wise](https://github.com/robwise): Many doc improvements +* [Josias Schneider](https://github.com/josiasd): Conversion to the new react_on_rails format diff --git a/spec/rails_helper.rb b/spec/rails_helper.rb index d42b1700..f4b57bcd 100644 --- a/spec/rails_helper.rb +++ b/spec/rails_helper.rb @@ -8,11 +8,6 @@ require "capybara/rspec" require "capybara-screenshot/rspec" -# This will insert a tag with the asset host into the pages created by -# save_and_open_page, meaning that relative links will be loaded from the -# development server if it is running. -Capybara.asset_host = "http://localhost:3000" - # Add additional requires below this line. Rails is not loaded until this point! # Requires supporting ruby files with custom matchers and macros, etc, in @@ -42,50 +37,60 @@ # Next line will ensure that assets are built if webpack -w is not running ReactOnRails::TestHelper.configure_rspec_to_compile_assets(config) - # config taken directly from RSpec example in the DatabaseCleaner README - config.before(:suite) do - DatabaseCleaner.strategy = :transaction - DatabaseCleaner.clean_with :truncation - end + # Maybe selenium_firefox webdriver only works for Travis-CI builds. + # 2016-03-06: Phantomjs, all options fails on MacOs + # Same for webkit + default_driver = :selenium_chrome - config.around(:each) do |example| - DatabaseCleaner.cleaning do - example.run - end - end + supported_drivers = %i( poltergeist poltergeist_errors_ok + poltergeist_no_animations webkit + selenium_chrome selenium_firefox selenium) + driver = ENV["DRIVER"].try(:to_sym) || default_driver - config.after(:each) do - DatabaseCleaner.clean + unless supported_drivers.include?(driver) + raise "Unsupported driver: #{driver} (supported = #{supported_drivers})" end - # selenium_firefox webdriver only works for Travis-CI builds. - driver = ENV["DRIVER"].try(:to_sym) - if driver.nil? || driver == :selenium_chrome + case driver + when :poltergeist, :poltergeist_errors_ok, :poltergeist_no_animations + require "capybara/poltergeist" + opts = { + extensions: ["#{Rails.root}/spec/support/phantomjs-disable-animations.js"] + } + + Capybara.register_driver :poltergeist_no_animations do |app| + Capybara::Poltergeist::Driver.new(app, opts) + end + + Capybara.register_driver :poltergeist_errors_ok do |app| + Capybara::Poltergeist::Driver.new(app, opts.merge(js_errors: false)) + end + when :selenium_chrome Capybara.register_driver :selenium_chrome do |app| Capybara::Selenium::Driver.new(app, browser: :chrome) end - Capybara.javascript_driver = :selenium_chrome - Capybara::Screenshot.register_driver(:selenium_chrome) do |js_driver, path| js_driver.browser.save_screenshot(path) end - else + when :selenium_firefox, :selenium Capybara.register_driver :selenium_firefox do |app| Capybara::Selenium::Driver.new(app, browser: :firefox) end - Capybara.javascript_driver = :selenium_firefox - Capybara::Screenshot.register_driver(:selenium_firefox) do |js_driver, path| js_driver.browser.save_screenshot(path) end + driver = :selenium_firefox end - Capybara.default_max_wait_time = 15 + Capybara.javascript_driver = driver + + # Capybara.default_max_wait_time = 15 puts "Capybara using driver: #{Capybara.javascript_driver}" Capybara::Screenshot.prune_strategy = { keep: 10 } + # Remove this line if you're not using ActiveRecord or ActiveRecord fixtures - config.fixture_path = "#{::Rails.root}/spec/fixtures" + # config.fixture_path = "#{::Rails.root}/spec/fixtures" # If you're not using ActiveRecord, or you'd prefer not to run each of your # examples within a transaction, remove the following line or assign false @@ -106,4 +111,25 @@ # The different available types are documented in the features, such as in # https://relishapp.com/rspec/rspec-rails/docs config.infer_spec_type_from_file_location! + + # This will insert a tag with the asset host into the pages created by + # save_and_open_page, meaning that relative links will be loaded from the + # development server if it is running. + Capybara.asset_host = "http://localhost:3000" + + # config taken directly from RSpec example in the DatabaseCleaner README + config.before(:suite) do + DatabaseCleaner.strategy = :transaction + DatabaseCleaner.clean_with :truncation + end + + config.around(:each) do |example| + DatabaseCleaner.cleaning do + example.run + end + end + + config.after(:each) do + DatabaseCleaner.clean + end end diff --git a/spec/spec_helper.rb b/spec/spec_helper.rb index d2a1c9dc..24459170 100644 --- a/spec/spec_helper.rb +++ b/spec/spec_helper.rb @@ -20,6 +20,9 @@ require "rspec/retry" RSpec.configure do |config| + config.example_status_persistence_file_path = "spec/examples.txt" + config.run_all_when_everything_filtered = true + # rspec-expectations config goes here. You can use an alternate # assertion/expectation library such as wrong or the stdlib/minitest # assertions if you prefer. diff --git a/spec/support/phantomjs-disable-animations.js b/spec/support/phantomjs-disable-animations.js new file mode 100644 index 00000000..69798151 --- /dev/null +++ b/spec/support/phantomjs-disable-animations.js @@ -0,0 +1,14 @@ +// https://gist.github.com/andyjbas/9962218 +// disable_animations.js +var disableAnimationStyles = '-webkit-transition: none !important;' + + '-moz-transition: none !important;' + + '-ms-transition: none !important;' + + '-o-transition: none !important;' + + 'transition: none !important;' + +window.onload = function() { + var animationStyles = document.createElement('style'); + animationStyles.type = 'text/css'; + animationStyles.innerHTML = '* {' + disableAnimationStyles + '}'; + document.head.appendChild(animationStyles); +}; From 64e925662c64475c1f8bb16fc504f3bdc3f94b1a Mon Sep 17 00:00:00 2001 From: Justin Gordon Date: Sun, 6 Mar 2016 13:10:50 -1000 Subject: [PATCH 012/246] Updated props to have comments top level prop Now, the server responds: { comments: [ c1, c2, etc.] } Before the props were just: [c1, c2, etc.] --- app/views/comments/index.json.jbuilder | 2 +- client/app/bundles/comments/actions/commentsActionCreators.js | 4 ++-- .../components/SimpleCommentScreen/SimpleCommentScreen.jsx | 2 +- client/app/bundles/comments/store/commentsStore.js | 2 +- client/app/bundles/comments/store/routerCommentsStore.js | 2 +- 5 files changed, 6 insertions(+), 6 deletions(-) diff --git a/app/views/comments/index.json.jbuilder b/app/views/comments/index.json.jbuilder index f64379af..411fe2d4 100644 --- a/app/views/comments/index.json.jbuilder +++ b/app/views/comments/index.json.jbuilder @@ -1,2 +1,2 @@ # Specify the partial, as well as the name of the variable used in the partial -json.array! @comments, { partial: "comments/comment", as: :comment } +json.comments(@comments, partial: "comments/comment", as: :comment) diff --git a/client/app/bundles/comments/actions/commentsActionCreators.js b/client/app/bundles/comments/actions/commentsActionCreators.js index 97028c74..a5567953 100644 --- a/client/app/bundles/comments/actions/commentsActionCreators.js +++ b/client/app/bundles/comments/actions/commentsActionCreators.js @@ -13,10 +13,10 @@ export function setIsSaving() { }; } -export function fetchCommentsSuccess(comments) { +export function fetchCommentsSuccess(data) { return { type: actionTypes.FETCH_COMMENTS_SUCCESS, - comments, + comments: data.comments, }; } diff --git a/client/app/bundles/comments/components/SimpleCommentScreen/SimpleCommentScreen.jsx b/client/app/bundles/comments/components/SimpleCommentScreen/SimpleCommentScreen.jsx index 9d891634..6bfb1fd1 100644 --- a/client/app/bundles/comments/components/SimpleCommentScreen/SimpleCommentScreen.jsx +++ b/client/app/bundles/comments/components/SimpleCommentScreen/SimpleCommentScreen.jsx @@ -30,7 +30,7 @@ export default class SimpleCommentScreen extends BaseComponent { return ( request .get('comments.json', { responseType: 'json' }) - .then(res => this.setState({ $$comments: Immutable.fromJS(res.data) })) + .then(res => this.setState({ $$comments: Immutable.fromJS(res.data.comments) })) .catch(error => this.setState({ fetchCommentsError: error })) ); } diff --git a/client/app/bundles/comments/store/commentsStore.js b/client/app/bundles/comments/store/commentsStore.js index c7e7516a..a28ba887 100644 --- a/client/app/bundles/comments/store/commentsStore.js +++ b/client/app/bundles/comments/store/commentsStore.js @@ -5,7 +5,7 @@ import reducers from '../reducers'; import { initalStates } from '../reducers'; export default props => { - const initialComments = props; + const initialComments = props.comments; const { $$commentsState } = initalStates; const initialState = { $$commentsStore: $$commentsState.merge({ diff --git a/client/app/bundles/comments/store/routerCommentsStore.js b/client/app/bundles/comments/store/routerCommentsStore.js index b898da38..e290864a 100644 --- a/client/app/bundles/comments/store/routerCommentsStore.js +++ b/client/app/bundles/comments/store/routerCommentsStore.js @@ -6,7 +6,7 @@ import { routerReducer } from 'react-router-redux'; import { initalStates } from '../reducers'; export default props => { - const initialComments = props; + const initialComments = props.comments; const { $$commentsState } = initalStates; const initialState = { $$commentsStore: $$commentsState.merge({ From fbd6b6162ba5c99fd0817cb6b3042f9f4f4f1fc6 Mon Sep 17 00:00:00 2001 From: Justin Gordon Date: Sun, 6 Mar 2016 18:44:39 -1000 Subject: [PATCH 013/246] Update binstubs With this script: rm bin/* bundle exec rake rails:update:bin bundle binstubs rspec-core spring binstub --all --- bin/rails | 7 ++++--- bin/rake | 5 +++-- bin/rspec | 22 ++++++++++++++++++---- bin/spring | 12 ++++++------ 4 files changed, 31 insertions(+), 15 deletions(-) diff --git a/bin/rails b/bin/rails index 7feb6a30..0138d79b 100755 --- a/bin/rails +++ b/bin/rails @@ -1,8 +1,9 @@ #!/usr/bin/env ruby begin - load File.expand_path("../spring", __FILE__) -rescue LoadError + load File.expand_path('../spring', __FILE__) +rescue LoadError => e + raise unless e.message.include?('spring') end -APP_PATH = File.expand_path('../../config/application', __FILE__) +APP_PATH = File.expand_path('../../config/application', __FILE__) require_relative '../config/boot' require 'rails/commands' diff --git a/bin/rake b/bin/rake index 8017a027..d87d5f57 100755 --- a/bin/rake +++ b/bin/rake @@ -1,7 +1,8 @@ #!/usr/bin/env ruby begin - load File.expand_path("../spring", __FILE__) -rescue LoadError + load File.expand_path('../spring', __FILE__) +rescue LoadError => e + raise unless e.message.include?('spring') end require_relative '../config/boot' require 'rake' diff --git a/bin/rspec b/bin/rspec index 20060ebd..7c573621 100755 --- a/bin/rspec +++ b/bin/rspec @@ -1,7 +1,21 @@ #!/usr/bin/env ruby begin - load File.expand_path("../spring", __FILE__) -rescue LoadError + load File.expand_path('../spring', __FILE__) +rescue LoadError => e + raise unless e.message.include?('spring') end -require 'bundler/setup' -load Gem.bin_path('rspec-core', 'rspec') +# +# This file was generated by Bundler. +# +# The application 'rspec' is installed as part of a gem, and +# this file is here to facilitate running it. +# + +require "pathname" +ENV["BUNDLE_GEMFILE"] ||= File.expand_path("../../Gemfile", + Pathname.new(__FILE__).realpath) + +require "rubygems" +require "bundler/setup" + +load Gem.bin_path("rspec-core", "rspec") diff --git a/bin/spring b/bin/spring index 7b45d374..7fe232c3 100755 --- a/bin/spring +++ b/bin/spring @@ -4,12 +4,12 @@ # It gets overwritten when you run the `spring binstub` command. unless defined?(Spring) - require "rubygems" - require "bundler" + require 'rubygems' + require 'bundler' - if match = Bundler.default_lockfile.read.match(/^GEM$.*?^ (?: )*spring \((.*?)\)$.*?^$/m) - Gem.paths = { "GEM_PATH" => [Bundler.bundle_path.to_s, *Gem.path].uniq } - gem "spring", match[1] - require "spring/binstub" + if (match = Bundler.default_lockfile.read.match(/^GEM$.*?^ (?: )*spring \((.*?)\)$.*?^$/m)) + Gem.paths = { 'GEM_PATH' => [Bundler.bundle_path.to_s, *Gem.path].uniq.join(Gem.path_separator) } + gem 'spring', match[1] + require 'spring/binstub' end end From 155ab594e1cecb513ff3cb215d8b65039e5476b2 Mon Sep 17 00:00:00 2001 From: Justin Gordon Date: Mon, 14 Mar 2016 22:40:29 -0700 Subject: [PATCH 014/246] Update .rubocop.yml --- .rubocop.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.rubocop.yml b/.rubocop.yml index ee3c1cca..ae756477 100644 --- a/.rubocop.yml +++ b/.rubocop.yml @@ -2,6 +2,8 @@ # Check out: https://github.com/bbatsov/rubocop AllCops: + DisplayCopNames: true + TargetRubyVersion: 2.2 Include: - '**/Rakefile' - '**/config.ru' From b74ee5e21344b2c6e9c69fa6afd850c52ecc6af2 Mon Sep 17 00:00:00 2001 From: Justin Gordon Date: Sun, 6 Mar 2016 19:25:49 -1000 Subject: [PATCH 015/246] Update to ReactOnRails v4.0.0 * Bind rails to 0.0.0.0:3000. Might make "localhost" work with Rails. * Added changes to config/react_on_rails.rb needed for upgrade. --- Gemfile | 13 +- Gemfile.lock | 12 +- Procfile.dev | 2 +- Procfile.hot | 2 +- Procfile.static | 2 +- Procfile.static.trace | 6 +- README.md | 1 + .../stylesheets/application_non_webpack.scss | 3 + app/helpers/application_helper.rb | 23 -- app/views/layouts/application.html.erb | 4 +- app/views/pages/no_router.html.erb | 2 +- client/npm-shrinkwrap.json | 245 +++++++++--------- client/package.json | 2 +- config/initializers/react_on_rails.rb | 8 +- config/routes.rb | 5 +- spec/features/add_new_comment_spec.rb | 18 +- spec/features/shared/contexts.rb | 5 +- spec/rails_helper.rb | 33 ++- spec/support/driver_registration.rb | 23 ++ 19 files changed, 226 insertions(+), 183 deletions(-) create mode 100644 spec/support/driver_registration.rb diff --git a/Gemfile b/Gemfile index ebbd5e88..7eb8953b 100644 --- a/Gemfile +++ b/Gemfile @@ -12,9 +12,10 @@ group :production do # Pg is used for Heroku gem "pg" gem "rails_12factor" # Never include this for development or tests - gem "puma" end +gem "puma" + # Use SCSS for stylesheets gem "sass-rails" # Use Uglifier as compressor for JavaScript assets @@ -22,8 +23,9 @@ gem "uglifier" # Use CoffeeScript for .js.coffee assets and views gem "coffee-rails" -# Turbolinks makes following links in your web application faster. Read more: https://github.com/rails/turbolinks -gem 'turbolinks', '>= 5.0.0.beta1' +# Turbolinks makes following links in your web application faster. +# Read more: https://github.com/turbolinks/turbolinks +gem 'turbolinks', '>= 5.0.0.beta2' # Build JSON APIs with ease. Read more: https://github.com/rails/jbuilder gem "jbuilder" @@ -37,7 +39,7 @@ gem "sdoc", group: :doc # Use Rails Html Sanitizer for HTML sanitization gem "rails-html-sanitizer" -gem "react_on_rails", "~> 3.0.0-rc.2" +gem "react_on_rails", "~> 4.0.0" # See https://github.com/sstephenson/execjs#readme for more supported runtimes gem "therubyracer" @@ -96,8 +98,9 @@ group :test do gem "capybara-webkit" gem "chromedriver-helper", require: ["selenium_chrome"].include?(ENV["DRIVER"]) gem "database_cleaner" + gem "generator_spec" gem "launchy" - gem "poltergeist"# , require: ["poltergeist", "poltergeist_errors_ok"].include?(ENV["DRIVER"]) + gem "poltergeist" gem "rspec-rails" gem "rspec-retry" gem "selenium-webdriver", require: !["poltergeist", "poltergeist_errors_ok", "webkit"].include?(ENV["DRIVER"]) diff --git a/Gemfile.lock b/Gemfile.lock index 526a9596..9345d95b 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -110,6 +110,9 @@ GEM ffi (1.9.10) foreman (0.78.0) thor (~> 0.19.1) + generator_spec (0.9.3) + activesupport (>= 3.0.0) + railties (>= 3.0.0) globalid (0.3.6) activesupport (>= 4.1.0) haml (4.0.7) @@ -163,7 +166,7 @@ GEM pry-stack_explorer (0.4.9.2) binding_of_caller (>= 0.7) pry (>= 0.9.11) - puma (3.0.2) + puma (3.1.0) rack (1.6.4) rack-test (0.6.3) rack (>= 1.0) @@ -200,7 +203,7 @@ GEM rake (10.5.0) rdoc (4.2.2) json (~> 1.4) - react_on_rails (3.0.6) + react_on_rails (4.0.0) connection_pool execjs (~> 2.5) foreman @@ -331,6 +334,7 @@ DEPENDENCIES database_cleaner factory_girl_rails foreman + generator_spec jbuilder launchy pg @@ -346,7 +350,7 @@ DEPENDENCIES rails-html-sanitizer rails_12factor rainbow - react_on_rails (~> 3.0.0.pre.rc.2) + react_on_rails (~> 4.0.0) rspec-rails rspec-retry rubocop @@ -359,7 +363,7 @@ DEPENDENCIES spring-commands-rspec sqlite3 therubyracer - turbolinks (>= 5.0.0.beta1) + turbolinks (>= 5.0.0.beta2) uglifier web-console diff --git a/Procfile.dev b/Procfile.dev index 3b107bd1..7f759fe8 100644 --- a/Procfile.dev +++ b/Procfile.dev @@ -4,7 +4,7 @@ # Development rails requires both rails and rails-assets # (and rails-server-assets if server rendering) -rails: REACT_ON_RAILS_ENV=HOT rails s +rails: REACT_ON_RAILS_ENV=HOT rails s -b 0.0.0.0 # Run the hot reload server for client development hot-assets: sh -c 'rm app/assets/webpack/* || true && HOT_RAILS_PORT=3500 npm run hot-assets' diff --git a/Procfile.hot b/Procfile.hot index 196e84f1..a2023808 100644 --- a/Procfile.hot +++ b/Procfile.hot @@ -4,7 +4,7 @@ # Development rails requires both rails and rails-assets # (and rails-server-assets if server rendering) -rails: REACT_ON_RAILS_ENV=HOT rails s +rails: REACT_ON_RAILS_ENV=HOT rails s -b 0.0.0.0 # Run the hot reload server for client development hot-assets: sh -c 'rm app/assets/webpack/* || true && HOT_RAILS_PORT=3500 npm run hot-assets' diff --git a/Procfile.static b/Procfile.static index 102e97ce..f3508d4b 100644 --- a/Procfile.static +++ b/Procfile.static @@ -1,5 +1,5 @@ # Run Rails without hot reloading (static assets). -rails: REACT_ON_RAILS_ENV= rails s +rails: REACT_ON_RAILS_ENV= rails s -b 0.0.0.0 # Build client assets, watching for changes. rails-client-assets: rm app/assets/webpack/* || true && npm run build:dev:client diff --git a/Procfile.static.trace b/Procfile.static.trace index 1a26d37f..c4b58a75 100644 --- a/Procfile.static.trace +++ b/Procfile.static.trace @@ -1,8 +1,8 @@ # Run Rails without hot reloading (static assets). -rails: TRACE_REACT_ON_RAILS=TRUE rails s +rails: TRACE_REACT_ON_RAILS=TRUE rails s -b 0.0.0.0 # Build client assets, watching for changes. -rails-client-assets: sh -c 'npm run build:dev:client' +rails-client-assets: npm run build:dev:client # Build server assets, watching for changes. Remove if not server rendering. -rails-server-assets: sh -c 'npm run build:dev:server' +rails-server-assets: npm run build:dev:server diff --git a/README.md b/README.md index 8621df8d..461ebefe 100644 --- a/README.md +++ b/README.md @@ -23,6 +23,7 @@ An outdated full tutorial article behind of the motivation of this system can be # NEWS We have not yet updated the `react_on_rails` gem generators for the following tasks. We're looking for help to migrate this, if you're interested in contributing to the project. *The tutorial* refers to this repo. The following changes have resulted in lots of differences for the webpack files and visual assets: +1. NOTE: Any references to localhost:3000 *might* need to use 0.0.0.0:3000 until Puma fixes an issue regarding this. 1. **Handling of Sass and Bootstrap**: The tutorial uses CSS modules via Webpack. This is totally different than the older way of having Rails handle Sass/Bootstrap, and having NPM/Webpack handle the Webpack Dev Server. The tutorial now has NPM handle all visual assets. We are using this technique on a new app, and it's awesome! 2. **Hot Reloading with Rails**: The tutorial has different startup scripts than the generators. The dev mode has the WebapackDev server providing the JS and CSS assets to the tutorial. This means you get **HOT RELOADING** of your JS and CSS within your Rails app. diff --git a/app/assets/stylesheets/application_non_webpack.scss b/app/assets/stylesheets/application_non_webpack.scss index d880a065..1a8e6ff6 100644 --- a/app/assets/stylesheets/application_non_webpack.scss +++ b/app/assets/stylesheets/application_non_webpack.scss @@ -1,2 +1,5 @@ // Any non webpack assets can be imported here // Others will be served via webpack-dev-server +.something { + color: pink; +} diff --git a/app/helpers/application_helper.rb b/app/helpers/application_helper.rb index e6c0922a..de6be794 100644 --- a/app/helpers/application_helper.rb +++ b/app/helpers/application_helper.rb @@ -1,25 +1,2 @@ module ApplicationHelper - # TODO: MOVE TO helper in react_on_rails - # See application.html.erb for usage example - def env_javascript_include_tag(args = {}) - send_tag_method(:javascript_include_tag, args) - end - - # TODO: MOVE TO helper in react_on_rails - def env_stylesheet_link_tag(args = {}) - send_tag_method(:stylesheet_link_tag, args) - end - - def use_hot_reloading? - ENV["REACT_ON_RAILS_ENV"] == "HOT" - end - - private - - def send_tag_method(tag_method_name, args) - asset_type = use_hot_reloading? ? :hot : :static - assets = Array(args[asset_type]) - options = args.delete_if { |key, _value| %i(hot static).include?(key) } - send(tag_method_name, *assets, options) unless assets.empty? - end end diff --git a/app/views/layouts/application.html.erb b/app/views/layouts/application.html.erb index 16db78ad..d22d6243 100644 --- a/app/views/layouts/application.html.erb +++ b/app/views/layouts/application.html.erb @@ -6,7 +6,7 @@ <%= env_stylesheet_link_tag(static: 'application_static', hot: 'application_non_webpack', media: 'all', - 'data-turbolinks-track' => true) %> + 'data-turbolinks-track' => "reload") %> @@ -16,7 +16,7 @@ <%= env_javascript_include_tag(static: 'application_static', hot: 'application_non_webpack', - 'data-turbolinks-track' => true) %> + 'data-turbolinks-track' => "reload") %> <%= csrf_meta_tags %> diff --git a/app/views/pages/no_router.html.erb b/app/views/pages/no_router.html.erb index 25972dc3..fe9f0781 100644 --- a/app/views/pages/no_router.html.erb +++ b/app/views/pages/no_router.html.erb @@ -3,4 +3,4 @@ <%= render "header" %> <%= react_component('App', props: render(template: "/comments/index.json.jbuilder"), - prerender: false) %> + prerender: true) %> diff --git a/client/npm-shrinkwrap.json b/client/npm-shrinkwrap.json index dcb7358d..ea56ace5 100644 --- a/client/npm-shrinkwrap.json +++ b/client/npm-shrinkwrap.json @@ -77,9 +77,9 @@ "resolved": "https://registry.npmjs.org/ansi/-/ansi-0.3.1.tgz" }, "ansi-escapes": { - "version": "1.2.0", + "version": "1.3.0", "from": "ansi-escapes@>=1.1.0 <2.0.0", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-1.2.0.tgz" + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-1.3.0.tgz" }, "ansi-regex": { "version": "2.0.0", @@ -249,14 +249,14 @@ } }, "babel-code-frame": { - "version": "6.6.5", - "from": "babel-code-frame@>=6.6.5 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.6.5.tgz" + "version": "6.7.2", + "from": "babel-code-frame@>=6.7.2 <7.0.0", + "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.7.2.tgz" }, "babel-core": { - "version": "6.6.5", + "version": "6.7.2", "from": "babel-core@>=6.6.5 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-core/-/babel-core-6.6.5.tgz", + "resolved": "https://registry.npmjs.org/babel-core/-/babel-core-6.7.2.tgz", "dependencies": { "lodash": { "version": "3.10.1", @@ -271,9 +271,9 @@ "resolved": "https://registry.npmjs.org/babel-eslint/-/babel-eslint-5.0.0.tgz" }, "babel-generator": { - "version": "6.6.5", - "from": "babel-generator@>=6.6.5 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-generator/-/babel-generator-6.6.5.tgz", + "version": "6.7.2", + "from": "babel-generator@>=6.7.2 <7.0.0", + "resolved": "https://registry.npmjs.org/babel-generator/-/babel-generator-6.7.2.tgz", "dependencies": { "lodash": { "version": "3.10.1", @@ -364,14 +364,14 @@ } }, "babel-helper-remap-async-to-generator": { - "version": "6.6.5", - "from": "babel-helper-remap-async-to-generator@>=6.4.6 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-helper-remap-async-to-generator/-/babel-helper-remap-async-to-generator-6.6.5.tgz" + "version": "6.7.0", + "from": "babel-helper-remap-async-to-generator@>=6.7.0 <7.0.0", + "resolved": "https://registry.npmjs.org/babel-helper-remap-async-to-generator/-/babel-helper-remap-async-to-generator-6.7.0.tgz" }, "babel-helper-replace-supers": { - "version": "6.6.5", + "version": "6.7.0", "from": "babel-helper-replace-supers@>=6.6.5 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-helper-replace-supers/-/babel-helper-replace-supers-6.6.5.tgz" + "resolved": "https://registry.npmjs.org/babel-helper-replace-supers/-/babel-helper-replace-supers-6.7.0.tgz" }, "babel-helpers": { "version": "6.6.0", @@ -421,14 +421,14 @@ "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-6.2.4.tgz" }, "babel-messages": { - "version": "6.6.5", - "from": "babel-messages@>=6.6.5 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-6.6.5.tgz" + "version": "6.7.2", + "from": "babel-messages@>=6.7.2 <7.0.0", + "resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-6.7.2.tgz" }, "babel-plugin-check-es2015-constants": { - "version": "6.6.5", + "version": "6.7.2", "from": "babel-plugin-check-es2015-constants@>=6.3.13 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-plugin-check-es2015-constants/-/babel-plugin-check-es2015-constants-6.6.5.tgz" + "resolved": "https://registry.npmjs.org/babel-plugin-check-es2015-constants/-/babel-plugin-check-es2015-constants-6.7.2.tgz" }, "babel-plugin-constant-folding": { "version": "1.0.1", @@ -563,9 +563,9 @@ "resolved": "https://registry.npmjs.org/babel-plugin-syntax-trailing-function-commas/-/babel-plugin-syntax-trailing-function-commas-6.5.0.tgz" }, "babel-plugin-transform-async-to-generator": { - "version": "6.5.0", + "version": "6.7.0", "from": "babel-plugin-transform-async-to-generator@>=6.3.13 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-async-to-generator/-/babel-plugin-transform-async-to-generator-6.5.0.tgz" + "resolved": "https://registry.npmjs.org/babel-plugin-transform-async-to-generator/-/babel-plugin-transform-async-to-generator-6.7.0.tgz" }, "babel-plugin-transform-class-constructor-call": { "version": "6.6.5", @@ -598,9 +598,9 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoped-functions/-/babel-plugin-transform-es2015-block-scoped-functions-6.6.5.tgz" }, "babel-plugin-transform-es2015-block-scoping": { - "version": "6.6.5", + "version": "6.7.1", "from": "babel-plugin-transform-es2015-block-scoping@>=6.6.0 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoping/-/babel-plugin-transform-es2015-block-scoping-6.6.5.tgz", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoping/-/babel-plugin-transform-es2015-block-scoping-6.7.1.tgz", "dependencies": { "lodash": { "version": "3.10.1", @@ -645,9 +645,9 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-literals/-/babel-plugin-transform-es2015-literals-6.5.0.tgz" }, "babel-plugin-transform-es2015-modules-commonjs": { - "version": "6.6.5", + "version": "6.7.0", "from": "babel-plugin-transform-es2015-modules-commonjs@>=6.6.0 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-commonjs/-/babel-plugin-transform-es2015-modules-commonjs-6.6.5.tgz" + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-commonjs/-/babel-plugin-transform-es2015-modules-commonjs-6.7.0.tgz" }, "babel-plugin-transform-es2015-object-super": { "version": "6.6.5", @@ -655,9 +655,9 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-object-super/-/babel-plugin-transform-es2015-object-super-6.6.5.tgz" }, "babel-plugin-transform-es2015-parameters": { - "version": "6.6.5", + "version": "6.7.0", "from": "babel-plugin-transform-es2015-parameters@>=6.6.0 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-parameters/-/babel-plugin-transform-es2015-parameters-6.6.5.tgz" + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-parameters/-/babel-plugin-transform-es2015-parameters-6.7.0.tgz" }, "babel-plugin-transform-es2015-shorthand-properties": { "version": "6.5.0", @@ -700,9 +700,9 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-export-extensions/-/babel-plugin-transform-export-extensions-6.5.0.tgz" }, "babel-plugin-transform-flow-strip-types": { - "version": "6.6.5", + "version": "6.7.0", "from": "babel-plugin-transform-flow-strip-types@>=6.3.13 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-flow-strip-types/-/babel-plugin-transform-flow-strip-types-6.6.5.tgz" + "resolved": "https://registry.npmjs.org/babel-plugin-transform-flow-strip-types/-/babel-plugin-transform-flow-strip-types-6.7.0.tgz" }, "babel-plugin-transform-function-bind": { "version": "6.5.2", @@ -750,14 +750,14 @@ "resolved": "https://registry.npmjs.org/babel-plugin-undefined-to-void/-/babel-plugin-undefined-to-void-1.1.6.tgz" }, "babel-polyfill": { - "version": "6.6.1", + "version": "6.7.2", "from": "babel-polyfill@>=6.6.1 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-polyfill/-/babel-polyfill-6.6.1.tgz", + "resolved": "https://registry.npmjs.org/babel-polyfill/-/babel-polyfill-6.7.2.tgz", "dependencies": { "core-js": { - "version": "2.1.3", + "version": "2.1.5", "from": "core-js@>=2.1.0 <3.0.0", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.1.3.tgz" + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.1.5.tgz" } } }, @@ -797,14 +797,14 @@ "resolved": "https://registry.npmjs.org/babel-regenerator-runtime/-/babel-regenerator-runtime-6.5.0.tgz" }, "babel-register": { - "version": "6.6.5", + "version": "6.7.2", "from": "babel-register@>=6.6.5 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-register/-/babel-register-6.6.5.tgz", + "resolved": "https://registry.npmjs.org/babel-register/-/babel-register-6.7.2.tgz", "dependencies": { "core-js": { - "version": "2.1.3", + "version": "2.1.5", "from": "core-js@>=2.1.0 <3.0.0", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.1.3.tgz" + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.1.5.tgz" }, "lodash": { "version": "3.10.1", @@ -819,9 +819,9 @@ "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-5.8.35.tgz" }, "babel-template": { - "version": "6.6.5", - "from": "babel-template@>=6.6.5 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-template/-/babel-template-6.6.5.tgz", + "version": "6.7.0", + "from": "babel-template@>=6.7.0 <7.0.0", + "resolved": "https://registry.npmjs.org/babel-template/-/babel-template-6.7.0.tgz", "dependencies": { "lodash": { "version": "3.10.1", @@ -831,9 +831,9 @@ } }, "babel-traverse": { - "version": "6.6.5", - "from": "babel-traverse@>=6.6.5 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.6.5.tgz", + "version": "6.7.3", + "from": "babel-traverse@>=6.7.2 <7.0.0", + "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.7.3.tgz", "dependencies": { "lodash": { "version": "3.10.1", @@ -843,9 +843,9 @@ } }, "babel-types": { - "version": "6.6.5", - "from": "babel-types@>=6.6.5 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.6.5.tgz", + "version": "6.7.2", + "from": "babel-types@>=6.7.2 <7.0.0", + "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.7.2.tgz", "dependencies": { "lodash": { "version": "3.10.1", @@ -855,9 +855,9 @@ } }, "babylon": { - "version": "6.6.5", - "from": "babylon@>=6.6.5 <7.0.0", - "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.6.5.tgz" + "version": "6.7.0", + "from": "babylon@>=6.7.0 <7.0.0", + "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.7.0.tgz" }, "balanced-match": { "version": "0.3.0", @@ -915,9 +915,9 @@ "resolved": "https://registry.npmjs.org/block-stream/-/block-stream-0.0.8.tgz" }, "bluebird": { - "version": "3.3.3", + "version": "3.3.4", "from": "bluebird@>=3.1.1 <4.0.0", - "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.3.3.tgz" + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.3.4.tgz" }, "boom": { "version": "2.10.1", @@ -999,9 +999,9 @@ "resolved": "https://registry.npmjs.org/callsites/-/callsites-0.2.0.tgz" }, "camelcase": { - "version": "2.1.0", + "version": "2.1.1", "from": "camelcase@>=2.0.0 <3.0.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-2.1.0.tgz" + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz" }, "camelcase-keys": { "version": "2.0.0", @@ -1009,9 +1009,9 @@ "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-2.0.0.tgz" }, "caniuse-db": { - "version": "1.0.30000418", + "version": "1.0.30000430", "from": "caniuse-db@>=1.0.30000409 <2.0.0", - "resolved": "https://registry.npmjs.org/caniuse-db/-/caniuse-db-1.0.30000418.tgz" + "resolved": "https://registry.npmjs.org/caniuse-db/-/caniuse-db-1.0.30000430.tgz" }, "caseless": { "version": "0.11.0", @@ -1182,9 +1182,9 @@ "resolved": "https://registry.npmjs.org/compression/-/compression-1.6.1.tgz", "dependencies": { "accepts": { - "version": "1.3.1", + "version": "1.3.2", "from": "accepts@>=1.3.1 <1.4.0", - "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.1.tgz" + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.2.tgz" }, "negotiator": { "version": "0.6.0", @@ -1343,9 +1343,9 @@ "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-3.5.2.tgz" }, "csso": { - "version": "1.4.4", - "from": "csso@>=1.4.2 <1.5.0", - "resolved": "https://registry.npmjs.org/csso/-/csso-1.4.4.tgz" + "version": "1.6.4", + "from": "csso@>=1.6.4 <1.7.0", + "resolved": "https://registry.npmjs.org/csso/-/csso-1.6.4.tgz" }, "cssom": { "version": "0.3.1", @@ -1674,19 +1674,19 @@ } }, "escope": { - "version": "3.5.0", - "from": "escope@>=3.5.0 <4.0.0", - "resolved": "https://registry.npmjs.org/escope/-/escope-3.5.0.tgz" + "version": "3.6.0", + "from": "escope@>=3.6.0 <4.0.0", + "resolved": "https://registry.npmjs.org/escope/-/escope-3.6.0.tgz" }, "eslint-config-airbnb": { - "version": "6.0.2", + "version": "6.1.0", "from": "eslint-config-airbnb@>=6.0.2 <7.0.0", - "resolved": "https://registry.npmjs.org/eslint-config-airbnb/-/eslint-config-airbnb-6.0.2.tgz" + "resolved": "https://registry.npmjs.org/eslint-config-airbnb/-/eslint-config-airbnb-6.1.0.tgz" }, "espree": { - "version": "3.1.1", + "version": "3.1.2", "from": "espree@>=3.1.1 <4.0.0", - "resolved": "https://registry.npmjs.org/espree/-/espree-3.1.1.tgz" + "resolved": "https://registry.npmjs.org/espree/-/espree-3.1.2.tgz" }, "esprima": { "version": "2.7.2", @@ -1694,14 +1694,21 @@ "resolved": "https://registry.npmjs.org/esprima/-/esprima-2.7.2.tgz" }, "esrecurse": { - "version": "4.0.0", - "from": "esrecurse@>=4.0.0 <5.0.0", - "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.0.0.tgz" + "version": "4.1.0", + "from": "esrecurse@>=4.1.0 <5.0.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.1.0.tgz", + "dependencies": { + "estraverse": { + "version": "4.1.1", + "from": "estraverse@>=4.1.0 <4.2.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.1.1.tgz" + } + } }, "estraverse": { - "version": "4.1.1", - "from": "estraverse@>=4.1.1 <5.0.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.1.1.tgz" + "version": "4.2.0", + "from": "estraverse@>=4.2.0 <5.0.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.2.0.tgz" }, "esutils": { "version": "2.0.2", @@ -2853,9 +2860,9 @@ "resolved": "https://registry.npmjs.org/interpret/-/interpret-0.6.6.tgz" }, "invariant": { - "version": "2.2.0", + "version": "2.2.1", "from": "invariant@>=2.2.0 <3.0.0", - "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.0.tgz" + "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.1.tgz" }, "invert-kv": { "version": "1.0.0", @@ -2888,9 +2895,9 @@ "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz" }, "is-buffer": { - "version": "1.1.2", + "version": "1.1.3", "from": "is-buffer@>=1.0.2 <2.0.0", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.2.tgz" + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.3.tgz" }, "is-builtin-module": { "version": "1.0.0", @@ -3053,9 +3060,9 @@ "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-1.0.2.tgz" }, "js-yaml": { - "version": "3.5.3", + "version": "3.5.4", "from": "js-yaml@>=3.4.3 <4.0.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.5.3.tgz" + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.5.4.tgz" }, "jsbn": { "version": "0.1.0", @@ -3882,9 +3889,9 @@ "resolved": "https://registry.npmjs.org/postcss-filter-plugins/-/postcss-filter-plugins-2.0.0.tgz" }, "postcss-loader": { - "version": "0.8.1", + "version": "0.8.2", "from": "postcss-loader@>=0.8.1 <0.9.0", - "resolved": "https://registry.npmjs.org/postcss-loader/-/postcss-loader-0.8.1.tgz" + "resolved": "https://registry.npmjs.org/postcss-loader/-/postcss-loader-0.8.2.tgz" }, "postcss-merge-idents": { "version": "2.1.5", @@ -4107,9 +4114,16 @@ "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.0.3.tgz" }, "raw-body": { - "version": "2.1.5", + "version": "2.1.6", "from": "raw-body@>=2.1.5 <2.2.0", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.1.5.tgz" + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.1.6.tgz", + "dependencies": { + "bytes": { + "version": "2.3.0", + "from": "bytes@2.3.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-2.3.0.tgz" + } + } }, "react": { "version": "0.14.7", @@ -4137,9 +4151,8 @@ "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-0.14.7.tgz" }, "react-on-rails": { - "version": "3.0.6", - "from": "react-on-rails@3.0.6", - "resolved": "https://registry.npmjs.org/react-on-rails/-/react-on-rails-3.0.6.tgz" + "version": "4.0.0", + "from": "react-on-rails@>=4.0.0 <5.0.0" }, "react-overlays": { "version": "0.6.0", @@ -4159,31 +4172,19 @@ "resolved": "https://registry.npmjs.org/react-prop-types/-/react-prop-types-0.3.0.tgz" }, "react-proxy": { - "version": "1.1.6", - "from": "react-proxy@>=1.1.1 <2.0.0", - "resolved": "https://registry.npmjs.org/react-proxy/-/react-proxy-1.1.6.tgz", - "dependencies": { - "core-js": { - "version": "2.1.3", - "from": "core-js@>=2.1.3 <3.0.0", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.1.3.tgz" - }, - "lodash": { - "version": "3.10.1", - "from": "lodash@>=3.7.0 <4.0.0", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-3.10.1.tgz" - } - } + "version": "1.1.8", + "from": "react-proxy@>=1.1.7 <2.0.0", + "resolved": "https://registry.npmjs.org/react-proxy/-/react-proxy-1.1.8.tgz" }, "react-redux": { - "version": "4.4.0", + "version": "4.4.1", "from": "react-redux@>=4.4.0 <5.0.0", - "resolved": "https://registry.npmjs.org/react-redux/-/react-redux-4.4.0.tgz" + "resolved": "https://registry.npmjs.org/react-redux/-/react-redux-4.4.1.tgz" }, "react-router": { - "version": "2.0.0", + "version": "2.0.1", "from": "react-router@>=2.0.0 <3.0.0", - "resolved": "https://registry.npmjs.org/react-router/-/react-router-2.0.0.tgz" + "resolved": "https://registry.npmjs.org/react-router/-/react-router-2.0.1.tgz" }, "react-router-redux": { "version": "4.0.0", @@ -4211,9 +4212,16 @@ "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz" }, "readable-stream": { - "version": "2.0.5", + "version": "2.0.6", "from": "readable-stream@>=2.0.2 <3.0.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.0.5.tgz" + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.0.6.tgz", + "dependencies": { + "isarray": { + "version": "1.0.0", + "from": "isarray@>=1.0.0 <1.1.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz" + } + } }, "readdirp": { "version": "2.0.0", @@ -4462,9 +4470,9 @@ } }, "sass-loader": { - "version": "3.1.2", + "version": "3.2.0", "from": "sass-loader@>=3.1.2 <4.0.0", - "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-3.1.2.tgz" + "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-3.2.0.tgz" }, "sass-resources-loader": { "version": "1.0.2", @@ -4473,7 +4481,7 @@ }, "sax": { "version": "1.1.6", - "from": "sax@>=1.1.4 <1.2.0", + "from": "sax@>=1.1.6 <1.2.0", "resolved": "https://registry.npmjs.org/sax/-/sax-1.1.6.tgz" }, "semver": { @@ -4769,16 +4777,9 @@ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.1.2.tgz" }, "svgo": { - "version": "0.6.1", + "version": "0.6.2", "from": "svgo@>=0.6.1 <0.7.0", - "resolved": "https://registry.npmjs.org/svgo/-/svgo-0.6.1.tgz", - "dependencies": { - "js-yaml": { - "version": "3.4.6", - "from": "js-yaml@>=3.4.3 <3.5.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.4.6.tgz" - } - } + "resolved": "https://registry.npmjs.org/svgo/-/svgo-0.6.2.tgz" }, "symbol-tree": { "version": "3.1.4", @@ -4831,9 +4832,9 @@ "resolved": "https://registry.npmjs.org/to-single-quotes/-/to-single-quotes-2.0.0.tgz" }, "tough-cookie": { - "version": "2.2.1", + "version": "2.2.2", "from": "tough-cookie@>=2.2.0 <2.3.0", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.2.1.tgz" + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.2.2.tgz" }, "tr46": { "version": "0.0.3", diff --git a/client/package.json b/client/package.json index 7b38d390..2b39b106 100644 --- a/client/package.json +++ b/client/package.json @@ -70,7 +70,7 @@ "react-addons-pure-render-mixin": "^0.14.7", "react-bootstrap": "^0.28.3", "react-dom": "^0.14.7", - "react-on-rails": "3.0.6", + "react-on-rails": "^4.0.0", "react-redux": "^4.4.0", "react-router": "^2.0.0", "redux": "^3.3.1", diff --git a/config/initializers/react_on_rails.rb b/config/initializers/react_on_rails.rb index 4c8c5aff..702d675d 100644 --- a/config/initializers/react_on_rails.rb +++ b/config/initializers/react_on_rails.rb @@ -2,6 +2,12 @@ ReactOnRails.configure do |config| # Client bundles are configured in application.js + config.generated_assets_dir = File.join(%w(app assets webpack)) + + # Define the files for we need to check for webpack compilation when running tests + config.webpack_generated_files = %w( app-bundle.js vendor-bundle.js app-bundle.css + vendor-bundle.css server-bundle.js ) + # Server bundle is a single file for all server rendering of components. # If you wish to use render_js in your views without any file, set this to "" to avoid warnings. config.server_bundle_js_file = "app/assets/webpack/server-bundle.js" # This is the default @@ -17,6 +23,4 @@ # Server rendering: config.server_renderer_pool_size = 1 # increase if you're on JRuby config.server_renderer_timeout = 20 # seconds - - config.generated_assets_dirs = File.join(%w(app assets webpack)) end diff --git a/config/routes.rb b/config/routes.rb index ebfd4b61..d23f5d39 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -1,8 +1,11 @@ Rails.application.routes.draw do root "pages#index" - get "react-router(/*all)", to: "pages#index" + get "simple", to: "pages#simple" get "no-router", to: "pages#no_router" + # React Router needs a wildcard + get "react-router(/*all)", to: "pages#index" + resources :comments end diff --git a/spec/features/add_new_comment_spec.rb b/spec/features/add_new_comment_spec.rb index 4d22873d..3d25893b 100644 --- a/spec/features/add_new_comment_spec.rb +++ b/spec/features/add_new_comment_spec.rb @@ -3,7 +3,7 @@ require "features/shared/contexts" feature "Add new comment" do - context "from main page", page: :main, js: true do + context "React Router", page: :main, js: true do context "via Horizontal Form", form: :horizontal do include_examples "New Comment Submission" end @@ -15,14 +15,26 @@ end end - context "from simple page", page: :simple, js: true do + context "React/Redux", page: :react_demo, js: true do context "via Horizontal Form", form: :horizontal do include_examples "New Comment Submission" end context "via Inline Form", form: :inline do include_examples "New Comment Submission" end - context "via the Stacked Form", form: :stacked do + context "via Stacked Form", form: :stacked do + include_examples "New Comment Submission" + end + end + + context "simple page", page: :simple, js: true do + context "via Horizontal Form", form: :horizontal do + include_examples "New Comment Submission" + end + context "via Inline Form", form: :inline do + include_examples "New Comment Submission" + end + context "via the Stacked Form", form: :stacked, driver: js_selenium_driver do include_examples "New Comment Submission" end end diff --git a/spec/features/shared/contexts.rb b/spec/features/shared/contexts.rb index 3e0442bb..59354dbc 100644 --- a/spec/features/shared/contexts.rb +++ b/spec/features/shared/contexts.rb @@ -1,9 +1,12 @@ require "rails_helper" # Pages -shared_context "Main Page", page: :main do +shared_context "React Router Demo", page: :main do background { visit root_path } end +shared_context "React Demo", page: :react_demo do + background { visit no_router_path } +end shared_context "Simple Page", page: :simple do background { visit simple_path } end diff --git a/spec/rails_helper.rb b/spec/rails_helper.rb index f4b57bcd..1a0f253e 100644 --- a/spec/rails_helper.rb +++ b/spec/rails_helper.rb @@ -66,24 +66,19 @@ Capybara::Poltergeist::Driver.new(app, opts.merge(js_errors: false)) end when :selenium_chrome - Capybara.register_driver :selenium_chrome do |app| - Capybara::Selenium::Driver.new(app, browser: :chrome) - end - Capybara::Screenshot.register_driver(:selenium_chrome) do |js_driver, path| - js_driver.browser.save_screenshot(path) - end + DriverRegistration.register_selenium_chrome when :selenium_firefox, :selenium - Capybara.register_driver :selenium_firefox do |app| - Capybara::Selenium::Driver.new(app, browser: :firefox) - end - Capybara::Screenshot.register_driver(:selenium_firefox) do |js_driver, path| - js_driver.browser.save_screenshot(path) - end + DriverRegistration.register_selenium_firefox driver = :selenium_firefox end Capybara.javascript_driver = driver + Capybara.server do |app, port| + require "rack/handler/puma" + Rack::Handler::Puma.run(app, Port: port) + end + # Capybara.default_max_wait_time = 15 puts "Capybara using driver: #{Capybara.javascript_driver}" @@ -132,4 +127,18 @@ config.after(:each) do DatabaseCleaner.clean end + + def js_errors_driver + Capybara.javascript_driver == :poltergeist ? :poltergeist_errors_ok : Capybara.javascript_driver + end + + def js_selenium_driver + driver = Capybara.javascript_driver == :selenium_firefox ? :selenium_firefox : :selenium_chrome + if driver == :selenium_firefox + DriverRegistration.register_selenium_firefox + else + DriverRegistration.register_selenium_chrome + end + driver + end end diff --git a/spec/support/driver_registration.rb b/spec/support/driver_registration.rb new file mode 100644 index 00000000..38c218c9 --- /dev/null +++ b/spec/support/driver_registration.rb @@ -0,0 +1,23 @@ +module DriverRegistration + def self.register_selenium_chrome + return if @selenium_chrome_registered + Capybara.register_driver :selenium_chrome do |app| + Capybara::Selenium::Driver.new(app, browser: :chrome) + end + Capybara::Screenshot.register_driver(:selenium_chrome) do |js_driver, path| + js_driver.browser.save_screenshot(path) + end + @selenium_chrome_registered = true + end + + def self.register_selenium_firefox + return if @selenium_firefox_registered + Capybara.register_driver :selenium_firefox do |app| + Capybara::Selenium::Driver.new(app, browser: :firefox) + end + Capybara::Screenshot.register_driver(:selenium_firefox) do |js_driver, path| + js_driver.browser.save_screenshot(path) + end + @selenium_firefox_registered = true + end +end From 5d71f8fe9cc85b36d1c39d05741d9e0453f57eeb Mon Sep 17 00:00:00 2001 From: Justin Gordon Date: Tue, 15 Mar 2016 03:26:31 -0700 Subject: [PATCH 016/246] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 461ebefe..67addb11 100644 --- a/README.md +++ b/README.md @@ -84,7 +84,7 @@ See package.json and Gemfile for versions 1. Open a browser tab to http://localhost:3000 for the Rails app example. 2. When you make changes, you have to refresh the browser page. -## Hot Reloading Example (applies to both `Procfile.hot` and `Procfile.express`. +## Hot Reloading Example: applies to both `Procfile.hot` and `Procfile.express` 1. With the browser open to any JSX file, such as [client/app/bundles/comments/components/CommentBox/CommentBox.jsx](client/app/bundles/comments/components/CommentBox/CommentBox.jsx) and you can change the JSX code, hit save, and you will see the sceen update without refreshing the window. This applies to port 3000 and port 4000. 1. Try changing a `.scss` file, such as a color in [client/app/bundles/comments/components/CommentBox/CommentList/Comment/Comment.scss](client/app/bundles/comments/components/CommentBox/CommentList/Comment/Comment.scss). You can see port 3000 or 4000 update automatically. 1. Be sure to take a look at the different Procfiles in this directory, as described below. From 61812c5b7ee904c2ca84c904b43f40de0d853ce6 Mon Sep 17 00:00:00 2001 From: Justin Gordon Date: Thu, 17 Mar 2016 22:42:39 -1000 Subject: [PATCH 017/246] Make assets.rb cleaner --- ...plication_static.js.erb => application_static.js} | 6 ++---- config/initializers/assets.rb | 12 ++++++++---- 2 files changed, 10 insertions(+), 8 deletions(-) rename app/assets/javascripts/{application_static.js.erb => application_static.js} (83%) diff --git a/app/assets/javascripts/application_static.js.erb b/app/assets/javascripts/application_static.js similarity index 83% rename from app/assets/javascripts/application_static.js.erb rename to app/assets/javascripts/application_static.js index 40ae3907..6cd2fca4 100644 --- a/app/assets/javascripts/application_static.js.erb +++ b/app/assets/javascripts/application_static.js @@ -7,10 +7,8 @@ // CRITICAL that webpack/vendor-bundle must be BEFORE turbolinks // since it is exposing jQuery and jQuery-ujs -<% if ENV["REACT_ON_RAILS_ENV"] != "HOT" %> - <% require_asset "vendor-bundle" %> - <% require_asset "app-bundle" %> -<% end %> +//= require vendor-bundle +//= require app-bundle // Non-webpack assets incl turbolinks //= require application_non_webpack diff --git a/config/initializers/assets.rb b/config/initializers/assets.rb index af391c3c..acd1182d 100644 --- a/config/initializers/assets.rb +++ b/config/initializers/assets.rb @@ -8,7 +8,11 @@ # Precompile additional assets. # application.js, application.css, and all non-JS/CSS in app/assets folder are already added. -Rails.application.config.assets.precompile += %w( - application_*.* - server-bundle.js -) +Rails.application.config.assets.precompile << "server-bundle.js" + +type = ENV["REACT_ON_RAILS_ENV"] == "HOT" ? "non_webpack" : "static" +Rails.application.config.assets.precompile += + [ + "application_#{type}.js", + "application_#{type}.css" + ] From a02ecbca676b1aeac6df0924b3c6cb72472d1a9f Mon Sep 17 00:00:00 2001 From: Justin Gordon Date: Sat, 19 Mar 2016 21:40:25 -1000 Subject: [PATCH 018/246] Remove unnecessary erb suffix --- ...{application_static.scss.erb => application_static.scss} | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) rename app/assets/stylesheets/{application_static.scss.erb => application_static.scss} (76%) diff --git a/app/assets/stylesheets/application_static.scss.erb b/app/assets/stylesheets/application_static.scss similarity index 76% rename from app/assets/stylesheets/application_static.scss.erb rename to app/assets/stylesheets/application_static.scss index 86230d94..3276322b 100644 --- a/app/assets/stylesheets/application_static.scss.erb +++ b/app/assets/stylesheets/application_static.scss @@ -3,10 +3,8 @@ // Super important: This file is loaded even for hot loading only, so we need to be sure // that we don't reference the static generated CSS files. -<% unless ENV["REACT_ON_RAILS_ENV"] == "HOT" %> - @import 'vendor-bundle'; - @import 'app-bundle'; -<% end %> +@import 'vendor-bundle'; +@import 'app-bundle'; // Non-webpack assets @import 'application_non_webpack'; From 71ea400c796708a501e4c4e94f8b2d4fe4dd19ea Mon Sep 17 00:00:00 2001 From: Justin Gordon Date: Sat, 26 Mar 2016 17:59:54 -1000 Subject: [PATCH 019/246] Add turbolinks 5 from npm --- Gemfile | 3 ++- Gemfile.lock | 4 ---- app/assets/javascripts/application_non_webpack.js | 4 +--- client/npm-shrinkwrap.json | 9 +++++++-- client/package.json | 3 ++- client/webpack.client.base.config.js | 2 ++ 6 files changed, 14 insertions(+), 11 deletions(-) diff --git a/Gemfile b/Gemfile index 7eb8953b..9bcb0161 100644 --- a/Gemfile +++ b/Gemfile @@ -25,7 +25,8 @@ gem "coffee-rails" # Turbolinks makes following links in your web application faster. # Read more: https://github.com/turbolinks/turbolinks -gem 'turbolinks', '>= 5.0.0.beta2' +# Get turbolinks from npm! +# gem 'turbolinks', '>= 5.0.0.beta2' # Build JSON APIs with ease. Read more: https://github.com/rails/jbuilder gem "jbuilder" diff --git a/Gemfile.lock b/Gemfile.lock index 9345d95b..41a52b64 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -296,9 +296,6 @@ GEM thread_safe (0.3.5) tilt (2.0.2) tins (1.6.0) - turbolinks (5.0.0.beta2) - turbolinks-source - turbolinks-source (5.0.0.beta2) tzinfo (1.2.2) thread_safe (~> 0.1) uglifier (2.7.2) @@ -363,7 +360,6 @@ DEPENDENCIES spring-commands-rspec sqlite3 therubyracer - turbolinks (>= 5.0.0.beta2) uglifier web-console diff --git a/app/assets/javascripts/application_non_webpack.js b/app/assets/javascripts/application_non_webpack.js index 855ebb65..a761af07 100644 --- a/app/assets/javascripts/application_non_webpack.js +++ b/app/assets/javascripts/application_non_webpack.js @@ -1,7 +1,5 @@ // All webpack assets in development will be loaded via webpack dev server -// It's important to include them in layout view above this asset -// b/c it exposes jQuery for turbolinks and another non-webpack JS (if any) -//= require turbolinks +// turbolinks comes from npm and is listed in webpack.client.base.config.js //= require rails_startup diff --git a/client/npm-shrinkwrap.json b/client/npm-shrinkwrap.json index ea56ace5..458b6fb4 100644 --- a/client/npm-shrinkwrap.json +++ b/client/npm-shrinkwrap.json @@ -4151,8 +4151,9 @@ "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-0.14.7.tgz" }, "react-on-rails": { - "version": "4.0.0", - "from": "react-on-rails@>=4.0.0 <5.0.0" + "version": "4.0.2", + "from": "react-on-rails@4.0.2", + "resolved": "https://registry.npmjs.org/react-on-rails/-/react-on-rails-4.0.2.tgz" }, "react-overlays": { "version": "0.6.0", @@ -4913,6 +4914,10 @@ "from": "tunnel-agent@>=0.4.1 <0.5.0", "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.4.2.tgz" }, + "turbolinks": { + "version": "0.0.2", + "from": "turbolinks@latest" + }, "tv4": { "version": "1.2.7", "from": "tv4@>=1.2.7 <2.0.0", diff --git a/client/package.json b/client/package.json index 2b39b106..bc4ed51e 100644 --- a/client/package.json +++ b/client/package.json @@ -73,14 +73,15 @@ "react-on-rails": "^4.0.0", "react-redux": "^4.4.0", "react-router": "^2.0.0", - "redux": "^3.3.1", "react-router-redux": "^4.0.0", + "redux": "^3.3.1", "redux-promise": "^0.5.1", "redux-thunk": "^1.0.3", "resolve-url-loader": "^1.4.3", "sass-loader": "^3.1.2", "sass-resources-loader": "1.0.2", "style-loader": "^0.13.0", + "turbolinks": "0.0.2", "url-loader": "^0.5.7", "webpack": "^1.12.14" }, diff --git a/client/webpack.client.base.config.js b/client/webpack.client.base.config.js index 303b68bb..65db6b07 100644 --- a/client/webpack.client.base.config.js +++ b/client/webpack.client.base.config.js @@ -19,6 +19,7 @@ module.exports = { 'es5-shim/es5-shim', 'es5-shim/es5-sham', 'jquery', + 'turbolinks', ], // This will contain the app entry points defined by webpack.hot.config and webpack.rails.config @@ -65,6 +66,7 @@ module.exports = { { test: require.resolve('jquery'), loader: 'expose?jQuery' }, { test: require.resolve('jquery'), loader: 'expose?$' }, + { test: require.resolve('turbolinks'), loader: 'imports?this=>window' }, // Use one of these to serve jQuery for Bootstrap scripts: From 2854b294ed31147851bad9cbcb3e3cf049229791 Mon Sep 17 00:00:00 2001 From: Justin Gordon Date: Sat, 26 Mar 2016 18:40:48 -1000 Subject: [PATCH 020/246] estraverse-fb is needed for eslint --- client/package.json | 1 + 1 file changed, 1 insertion(+) diff --git a/client/package.json b/client/package.json index bc4ed51e..cd9a9ddc 100644 --- a/client/package.json +++ b/client/package.json @@ -93,6 +93,7 @@ "eslint": "^2.3.0", "eslint-config-shakacode": "^3.0.0", "eslint-plugin-react": "^4.2.0", + "estraverse-fb": "^1.3.1", "express": "^4.13.4", "jade": "^1.11.0", "jscs": "^2.11.0", From 03437b54daf7877868c57231c51e08e217c9abde Mon Sep 17 00:00:00 2001 From: Justin Gordon Date: Mon, 28 Mar 2016 00:12:31 -1000 Subject: [PATCH 021/246] Update to 5.0.0.rc.1 of ReactOnRails --- Gemfile | 2 +- Gemfile.lock | 4 +- .../comments/startup/ServerRouterApp.jsx | 3 +- client/npm-shrinkwrap.json | 136 ++++-------------- client/package.json | 4 +- package.json | 5 +- 6 files changed, 39 insertions(+), 115 deletions(-) diff --git a/Gemfile b/Gemfile index 9bcb0161..49d523e7 100644 --- a/Gemfile +++ b/Gemfile @@ -40,7 +40,7 @@ gem "sdoc", group: :doc # Use Rails Html Sanitizer for HTML sanitization gem "rails-html-sanitizer" -gem "react_on_rails", "~> 4.0.0" +gem "react_on_rails", "~> 5.0.0.rc.1" # See https://github.com/sstephenson/execjs#readme for more supported runtimes gem "therubyracer" diff --git a/Gemfile.lock b/Gemfile.lock index 41a52b64..7dc9f638 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -203,7 +203,7 @@ GEM rake (10.5.0) rdoc (4.2.2) json (~> 1.4) - react_on_rails (4.0.0) + react_on_rails (5.0.0.rc.1) connection_pool execjs (~> 2.5) foreman @@ -347,7 +347,7 @@ DEPENDENCIES rails-html-sanitizer rails_12factor rainbow - react_on_rails (~> 4.0.0) + react_on_rails (~> 5.0.0.rc.1) rspec-rails rspec-retry rubocop diff --git a/client/app/bundles/comments/startup/ServerRouterApp.jsx b/client/app/bundles/comments/startup/ServerRouterApp.jsx index 29ebcbea..faef88f6 100644 --- a/client/app/bundles/comments/startup/ServerRouterApp.jsx +++ b/client/app/bundles/comments/startup/ServerRouterApp.jsx @@ -5,12 +5,13 @@ import { match, RouterContext } from 'react-router'; import createStore from '../store/commentsStore'; import routes from '../routes/routes'; -export default (props, location) => { +export default (props, railsContext) => { const store = createStore(props); let error; let redirectLocation; let routeProps; + const location = { railsContext }; // See https://github.com/reactjs/react-router/blob/master/docs/guides/ServerRendering.md match({ routes, location }, (_error, _redirectLocation, _routeProps) => { diff --git a/client/npm-shrinkwrap.json b/client/npm-shrinkwrap.json index 458b6fb4..1c3f9d48 100644 --- a/client/npm-shrinkwrap.json +++ b/client/npm-shrinkwrap.json @@ -29,8 +29,7 @@ "dependencies": { "acorn": { "version": "2.7.0", - "from": "acorn@>=2.1.0 <3.0.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-2.7.0.tgz" + "from": "acorn@>=2.1.0 <3.0.0" } } }, @@ -193,7 +192,7 @@ }, "async": { "version": "1.5.2", - "from": "async@>=1.4.0 <2.0.0", + "from": "async@>=1.5.2 <2.0.0", "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz" }, "async-each": { @@ -384,19 +383,21 @@ "resolved": "https://registry.npmjs.org/babel-jscs/-/babel-jscs-2.0.5.tgz", "dependencies": { "babel-core": { - "version": "5.8.35", + "version": "5.8.38", "from": "babel-core@>=5.8.3 <5.9.0", - "resolved": "https://registry.npmjs.org/babel-core/-/babel-core-5.8.35.tgz" + "resolved": "https://registry.npmjs.org/babel-core/-/babel-core-5.8.38.tgz", + "dependencies": { + "bluebird": { + "version": "2.10.2", + "from": "bluebird@>=2.9.33 <3.0.0", + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-2.10.2.tgz" + } + } }, "babylon": { - "version": "5.8.35", - "from": "babylon@>=5.8.35 <6.0.0", - "resolved": "https://registry.npmjs.org/babylon/-/babylon-5.8.35.tgz" - }, - "bluebird": { - "version": "2.10.2", - "from": "bluebird@>=2.9.33 <3.0.0", - "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-2.10.2.tgz" + "version": "5.8.38", + "from": "babylon@>=5.8.38 <6.0.0", + "resolved": "https://registry.npmjs.org/babylon/-/babylon-5.8.38.tgz" }, "globals": { "version": "6.4.1", @@ -802,9 +803,9 @@ "resolved": "https://registry.npmjs.org/babel-register/-/babel-register-6.7.2.tgz", "dependencies": { "core-js": { - "version": "2.1.5", + "version": "2.2.1", "from": "core-js@>=2.1.0 <3.0.0", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.1.5.tgz" + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.2.1.tgz" }, "lodash": { "version": "3.10.1", @@ -1500,23 +1501,6 @@ "from": "diff@1.4.0", "resolved": "https://registry.npmjs.org/diff/-/diff-1.4.0.tgz" }, - "doctrine": { - "version": "1.2.0", - "from": "doctrine@>=1.2.0 <2.0.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-1.2.0.tgz", - "dependencies": { - "esutils": { - "version": "1.1.6", - "from": "esutils@>=1.1.6 <2.0.0", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-1.1.6.tgz" - }, - "isarray": { - "version": "1.0.0", - "from": "isarray@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz" - } - } - }, "dom-helpers": { "version": "2.4.0", "from": "dom-helpers@>=2.4.0 <3.0.0", @@ -1675,7 +1659,7 @@ }, "escope": { "version": "3.6.0", - "from": "escope@>=3.6.0 <4.0.0", + "from": "escope@>=3.2.0 <4.0.0", "resolved": "https://registry.npmjs.org/escope/-/escope-3.6.0.tgz" }, "eslint-config-airbnb": { @@ -1683,11 +1667,6 @@ "from": "eslint-config-airbnb@>=6.0.2 <7.0.0", "resolved": "https://registry.npmjs.org/eslint-config-airbnb/-/eslint-config-airbnb-6.1.0.tgz" }, - "espree": { - "version": "3.1.2", - "from": "espree@>=3.1.1 <4.0.0", - "resolved": "https://registry.npmjs.org/espree/-/espree-3.1.2.tgz" - }, "esprima": { "version": "2.7.2", "from": "esprima@>=2.6.0 <3.0.0", @@ -1707,7 +1686,7 @@ }, "estraverse": { "version": "4.2.0", - "from": "estraverse@>=4.2.0 <5.0.0", + "from": "estraverse@>=4.1.0 <5.0.0", "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.2.0.tgz" }, "esutils": { @@ -1827,11 +1806,6 @@ "from": "figures@>=1.3.5 <2.0.0", "resolved": "https://registry.npmjs.org/figures/-/figures-1.4.0.tgz" }, - "file-entry-cache": { - "version": "1.2.4", - "from": "file-entry-cache@>=1.1.1 <2.0.0", - "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-1.2.4.tgz" - }, "file-loader": { "version": "0.8.5", "from": "file-loader@>=0.8.5 <0.9.0", @@ -1961,7 +1935,7 @@ }, "async": { "version": "1.5.2", - "from": "async@^1.4.0", + "from": "async@^1.5.2", "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz" }, "aws-sign2": { @@ -2333,7 +2307,7 @@ }, "once": { "version": "1.3.3", - "from": "once@~1.3.3", + "from": "once@^1.3.0", "resolved": "https://registry.npmjs.org/once/-/once-1.3.3.tgz" }, "pinkie": { @@ -2785,11 +2759,6 @@ "from": "ieee754@>=1.1.4 <2.0.0", "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.6.tgz" }, - "ignore": { - "version": "2.2.19", - "from": "ignore@>=2.2.19 <3.0.0", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-2.2.19.tgz" - }, "immutable": { "version": "3.7.6", "from": "immutable@>=3.7.6 <4.0.0", @@ -2849,11 +2818,6 @@ "from": "ini@>=1.2.0 <2.0.0", "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.4.tgz" }, - "inquirer": { - "version": "0.12.0", - "from": "inquirer@>=0.12.0 <0.13.0", - "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-0.12.0.tgz" - }, "interpret": { "version": "0.6.6", "from": "interpret@>=0.6.4 <0.7.0", @@ -2994,11 +2958,6 @@ "from": "is-relative@>=0.1.0 <0.2.0", "resolved": "https://registry.npmjs.org/is-relative/-/is-relative-0.1.3.tgz" }, - "is-resolvable": { - "version": "1.0.0", - "from": "is-resolvable@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/is-resolvable/-/is-resolvable-1.0.0.tgz" - }, "is-svg": { "version": "1.1.1", "from": "is-svg@>=1.1.1 <2.0.0", @@ -3101,11 +3060,6 @@ "from": "json-schema@0.2.2", "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.2.tgz" }, - "json-stable-stringify": { - "version": "1.0.1", - "from": "json-stable-stringify@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz" - }, "json-stringify-safe": { "version": "5.0.1", "from": "json-stringify-safe@>=5.0.1 <5.1.0", @@ -3838,14 +3792,9 @@ "from": "pkginfo@>=0.0.0 <1.0.0", "resolved": "https://registry.npmjs.org/pkginfo/-/pkginfo-0.4.0.tgz" }, - "pluralize": { - "version": "1.2.1", - "from": "pluralize@>=1.2.1 <2.0.0", - "resolved": "https://registry.npmjs.org/pluralize/-/pluralize-1.2.1.tgz" - }, "postcss": { "version": "5.0.19", - "from": "postcss@>=5.0.15 <6.0.0", + "from": "postcss@>=5.0.19 <6.0.0", "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.0.19.tgz" }, "postcss-calc": { @@ -3890,7 +3839,7 @@ }, "postcss-loader": { "version": "0.8.2", - "from": "postcss-loader@>=0.8.1 <0.9.0", + "from": "postcss-loader@>=0.8.2 <0.9.0", "resolved": "https://registry.npmjs.org/postcss-loader/-/postcss-loader-0.8.2.tgz" }, "postcss-merge-idents": { @@ -4033,11 +3982,6 @@ "from": "process-nextick-args@>=1.0.6 <1.1.0", "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.6.tgz" }, - "progress": { - "version": "1.1.8", - "from": "progress@>=1.1.8 <2.0.0", - "resolved": "https://registry.npmjs.org/progress/-/progress-1.1.8.tgz" - }, "promise": { "version": "7.1.1", "from": "promise@>=7.0.3 <8.0.0", @@ -4151,9 +4095,8 @@ "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-0.14.7.tgz" }, "react-on-rails": { - "version": "4.0.2", - "from": "react-on-rails@4.0.2", - "resolved": "https://registry.npmjs.org/react-on-rails/-/react-on-rails-4.0.2.tgz" + "version": "5.0.0-rc.1", + "from": "react-on-rails@5.0.0-rc.1" }, "react-overlays": { "version": "0.6.0", @@ -4179,12 +4122,12 @@ }, "react-redux": { "version": "4.4.1", - "from": "react-redux@>=4.4.0 <5.0.0", + "from": "react-redux@>=4.4.1 <5.0.0", "resolved": "https://registry.npmjs.org/react-redux/-/react-redux-4.4.1.tgz" }, "react-router": { "version": "2.0.1", - "from": "react-router@>=2.0.0 <3.0.0", + "from": "react-router@>=2.0.1 <3.0.0", "resolved": "https://registry.npmjs.org/react-router/-/react-router-2.0.1.tgz" }, "react-router-redux": { @@ -4352,11 +4295,6 @@ "from": "request@>=2.65.0 <3.0.0", "resolved": "https://registry.npmjs.org/request/-/request-2.69.0.tgz" }, - "require-uncached": { - "version": "1.0.2", - "from": "require-uncached@>=1.0.2 <2.0.0", - "resolved": "https://registry.npmjs.org/require-uncached/-/require-uncached-1.0.2.tgz" - }, "requires-port": { "version": "1.0.0", "from": "requires-port@>=1.0.0 <2.0.0", @@ -4472,7 +4410,7 @@ }, "sass-loader": { "version": "3.2.0", - "from": "sass-loader@>=3.1.2 <4.0.0", + "from": "sass-loader@>=3.2.0 <4.0.0", "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-3.2.0.tgz" }, "sass-resources-loader": { @@ -4551,11 +4489,6 @@ "from": "shebang-regex@>=1.0.0 <2.0.0", "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz" }, - "shelljs": { - "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", "from": "sigmund@>=1.0.0 <1.1.0", @@ -4787,11 +4720,6 @@ "from": "symbol-tree@>=3.1.0 <4.0.0", "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.1.4.tgz" }, - "table": { - "version": "3.7.8", - "from": "table@>=3.7.8 <4.0.0", - "resolved": "https://registry.npmjs.org/table/-/table-3.7.8.tgz" - }, "tapable": { "version": "0.1.10", "from": "tapable@>=0.1.8 <0.2.0", @@ -4802,11 +4730,6 @@ "from": "tar@>=2.0.0 <3.0.0", "resolved": "https://registry.npmjs.org/tar/-/tar-2.2.1.tgz" }, - "text-table": { - "version": "0.2.0", - "from": "text-table@>=0.2.0 <0.3.0", - "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz" - }, "through": { "version": "2.3.8", "from": "through@>=2.3.4 <2.4.0", @@ -4915,8 +4838,9 @@ "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.4.2.tgz" }, "turbolinks": { - "version": "0.0.2", - "from": "turbolinks@latest" + "version": "5.0.0-beta3", + "from": "turbolinks@5.0.0-beta3", + "resolved": "https://registry.npmjs.org/turbolinks/-/turbolinks-5.0.0-beta3.tgz" }, "tv4": { "version": "1.2.7", diff --git a/client/package.json b/client/package.json index cd9a9ddc..d90a29d7 100644 --- a/client/package.json +++ b/client/package.json @@ -70,7 +70,7 @@ "react-addons-pure-render-mixin": "^0.14.7", "react-bootstrap": "^0.28.3", "react-dom": "^0.14.7", - "react-on-rails": "^4.0.0", + "react-on-rails": "^5.0.0-rc.1", "react-redux": "^4.4.0", "react-router": "^2.0.0", "react-router-redux": "^4.0.0", @@ -81,7 +81,7 @@ "sass-loader": "^3.1.2", "sass-resources-loader": "1.0.2", "style-loader": "^0.13.0", - "turbolinks": "0.0.2", + "turbolinks": "^5.0.0-beta3", "url-loader": "^0.5.7", "webpack": "^1.12.14" }, diff --git a/package.json b/package.json index 844b9661..2d8d72b9 100644 --- a/package.json +++ b/package.json @@ -39,8 +39,7 @@ }, "homepage": "https://github.com/shakacode/react-webpack-rails-tutorial", "dependencies": { - "babel-polyfill": "^6.6.1", - "estraverse": "^4.1.1", - "estraverse-fb": "^1.3.1" + }, + "devDependencies": { } } From 7878af76e9a5c8c7973c3d2743a242a62fa92363 Mon Sep 17 00:00:00 2001 From: Eric Skogen Date: Mon, 28 Mar 2016 17:35:00 -0400 Subject: [PATCH 022/246] update README with instructions for installing qmake --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 67addb11..4f06dee6 100644 --- a/README.md +++ b/README.md @@ -71,6 +71,7 @@ See package.json and Gemfile for versions 1. Check that you have Ruby 2.2.4 or greater 1. Check that you're using the right version of node. Run `nvm list` to check. Use 5.5 or greater. 1. Check that you have Postgres installed. Run `which postgres` to check. Use 9.4 or greater. +1. Check that you have `qmake` installed. Run `which qmake` to check. If missing, follow these instructions: [Installing Qt and compiling capybara-webkit](https://github.com/thoughtbot/capybara-webkit/wiki/Installing-Qt-and-compiling-capybara-webkit) 1. `bundle install` 1. `npm install` 1. `rake db:setup` From 9b01eda80961afee4f8e30bb29fb79e4e5f65b1b Mon Sep 17 00:00:00 2001 From: Bruce Krysiak Date: Wed, 30 Mar 2016 23:32:42 -0700 Subject: [PATCH 023/246] Updating ruby version and some docs --- .ruby-version | 2 +- .travis.yml | 2 +- Gemfile | 2 +- README.md | 13 +++++++------ config/initializers/react_on_rails.rb | 3 ++- 5 files changed, 12 insertions(+), 10 deletions(-) diff --git a/.ruby-version b/.ruby-version index 530cdd91..276cbf9e 100644 --- a/.ruby-version +++ b/.ruby-version @@ -1 +1 @@ -2.2.4 +2.3.0 diff --git a/.travis.yml b/.travis.yml index 94713fd7..e1336672 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,7 +1,7 @@ language: - ruby rvm: - - 2.2.4 + - 2.3.0 sudo: false addons: apt: diff --git a/Gemfile b/Gemfile index 49d523e7..47422ea7 100644 --- a/Gemfile +++ b/Gemfile @@ -1,5 +1,5 @@ source "https://rubygems.org" -ruby "2.2.4" +ruby "2.3.0" # # Bundle edge Rails instead: gem "rails", github: "rails/rails" diff --git a/README.md b/README.md index 4f06dee6..25e97fb1 100644 --- a/README.md +++ b/README.md @@ -68,11 +68,12 @@ See package.json and Gemfile for versions 1. Be sure that you have Node installed! We suggest [nvm](https://github.com/creationix/nvm), with node version `v5.0` or above. See this article [Updating and using nvm](http://forum.shakacode.com/t/updating-and-using-nvm/293). 1. `git clone git@github.com:shakacode/react-webpack-rails-tutorial.git` 1. `cd react-webpack-rails-tutorial` -1. Check that you have Ruby 2.2.4 or greater +1. Check that you have Ruby 2.3.0 or greater 1. Check that you're using the right version of node. Run `nvm list` to check. Use 5.5 or greater. 1. Check that you have Postgres installed. Run `which postgres` to check. Use 9.4 or greater. 1. Check that you have `qmake` installed. Run `which qmake` to check. If missing, follow these instructions: [Installing Qt and compiling capybara-webkit](https://github.com/thoughtbot/capybara-webkit/wiki/Installing-Qt-and-compiling-capybara-webkit) 1. `bundle install` + 1. If you get an error installing libv8 on OSX El Capitan, follow these instructions: [Install therubyracer gem on OSX 10.11 El Capitan](http://stackoverflow.com/questions/33475709/install-therubyracer-gem-on-osx-10-11-el-capitan/33475710#33475710) 1. `npm install` 1. `rake db:setup` 1. `foreman start -f Procfile.hot` @@ -86,7 +87,7 @@ See package.json and Gemfile for versions 2. When you make changes, you have to refresh the browser page. ## Hot Reloading Example: applies to both `Procfile.hot` and `Procfile.express` -1. With the browser open to any JSX file, such as [client/app/bundles/comments/components/CommentBox/CommentBox.jsx](client/app/bundles/comments/components/CommentBox/CommentBox.jsx) and you can change the JSX code, hit save, and you will see the sceen update without refreshing the window. This applies to port 3000 and port 4000. +1. With the browser open to any JSX file, such as [client/app/bundles/comments/components/CommentBox/CommentBox.jsx](client/app/bundles/comments/components/CommentBox/CommentBox.jsx) and you can change the JSX code, hit save, and you will see the screen update without refreshing the window. This applies to port 3000 and port 4000. 1. Try changing a `.scss` file, such as a color in [client/app/bundles/comments/components/CommentBox/CommentList/Comment/Comment.scss](client/app/bundles/comments/components/CommentBox/CommentList/Comment/Comment.scss). You can see port 3000 or 4000 update automatically. 1. Be sure to take a look at the different Procfiles in this directory, as described below. @@ -171,11 +172,11 @@ bundle exec foreman start -f 1. [`Procfile.dev`](Procfile.dev): Starts the Webpack Dev Server and Rails with Hot Reloading. 2. [`Procfile.hot`](Procfile.hot): Starts the Rails server and the webpack server to provide hot reloading of assets, JavaScript and CSS. 3. [`Procfile.static`](Procfile.static): Starts the Rails server and generates static assets that are used for tests. -4. [`Procfile.express`(Procfile.express): Starts only the Webpack Dev Server. -5. [`Procfile.spec`](Procfile.spec]: Starts webpack to create the static files for tests. **Good to know:** If you want to start `rails s` separately to debug in `pry`, then run `Procfile.spec` to generate the assets and run `rails s` in a separate console. -6. [`Procfile.static.trace`][Procfile.static.trace]: Same as `Procfile.static` but prints tracing information useful for debugging server rendering. +4. [`Procfile.express`](Procfile.express): Starts only the Webpack Dev Server. +5. [`Procfile.spec`](Procfile.spec): Starts webpack to create the static files for tests. **Good to know:** If you want to start `rails s` separately to debug in `pry`, then run `Procfile.spec` to generate the assets and run `rails s` in a separate console. +6. [`Procfile.static.trace`](Procfile.static.trace): Same as `Procfile.static` but prints tracing information useful for debugging server rendering. -In genereral, you want to avoid running more webpack watch processes than you need. The `Procfile.dev`, for example, runs both the express server (Webpack dev server) and the Rails hot assets reloading server. +In general, you want to avoid running more webpack watch processes than you need. The `Procfile.dev`, for example, runs both the express server (Webpack dev server) and the Rails hot assets reloading server. ## Contributors [The Shaka Code team!](http://www.shakacode.com/about/), led by [Justin Gordon](https://github.com/justin808/), along with with many others. See [contributors.md](docs/contributors.md) diff --git a/config/initializers/react_on_rails.rb b/config/initializers/react_on_rails.rb index 702d675d..87a961d8 100644 --- a/config/initializers/react_on_rails.rb +++ b/config/initializers/react_on_rails.rb @@ -10,7 +10,8 @@ # Server bundle is a single file for all server rendering of components. # If you wish to use render_js in your views without any file, set this to "" to avoid warnings. - config.server_bundle_js_file = "app/assets/webpack/server-bundle.js" # This is the default + # Note this is under app/assets/webpack/ + config.server_bundle_js_file = "server-bundle.js" # This is the default # Below options can be overriden by passing to the helper method. config.prerender = true # default is false From 7e6b9fc4ac7352e4ef0c47b077d7e2bf275bf5df Mon Sep 17 00:00:00 2001 From: Justin Gordon Date: Sun, 3 Apr 2016 20:08:54 -1000 Subject: [PATCH 024/246] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 25e97fb1..becf94c1 100644 --- a/README.md +++ b/README.md @@ -73,7 +73,7 @@ See package.json and Gemfile for versions 1. Check that you have Postgres installed. Run `which postgres` to check. Use 9.4 or greater. 1. Check that you have `qmake` installed. Run `which qmake` to check. If missing, follow these instructions: [Installing Qt and compiling capybara-webkit](https://github.com/thoughtbot/capybara-webkit/wiki/Installing-Qt-and-compiling-capybara-webkit) 1. `bundle install` - 1. If you get an error installing libv8 on OSX El Capitan, follow these instructions: [Install therubyracer gem on OSX 10.11 El Capitan](http://stackoverflow.com/questions/33475709/install-therubyracer-gem-on-osx-10-11-el-capitan/33475710#33475710) + 1. If you get an error installing libv8 on OSX El Capitan, follow these instructions: [Install therubyracer gem on OSX 10.11 El Capitan](http://stackoverflow.com/a/36388150/1009332) or [this one](http://stackoverflow.com/questions/33475709/install-therubyracer-gem-on-osx-10-11-el-capitan/33475710#33475710). 1. `npm install` 1. `rake db:setup` 1. `foreman start -f Procfile.hot` From 91b8f61bb6424d57215e69918f0e953c63318bc5 Mon Sep 17 00:00:00 2001 From: Justin Gordon Date: Sun, 3 Apr 2016 21:48:32 -1000 Subject: [PATCH 025/246] Enable hot reloading See discussion: https://github.com/shakacode/react-webpack-rails-tutorial/issues/245 --- client/webpack.client.rails.hot.config.js | 1 + 1 file changed, 1 insertion(+) diff --git a/client/webpack.client.rails.hot.config.js b/client/webpack.client.rails.hot.config.js index e071bac4..88f1c352 100644 --- a/client/webpack.client.rails.hot.config.js +++ b/client/webpack.client.rails.hot.config.js @@ -37,6 +37,7 @@ config.module.loaders.push( [ 'react-transform', { + superClasses: ['React.Component', 'BaseComponent', 'Component'], transforms: [ { transform: 'react-transform-hmr', From 2baa5443ca7b75ff50c26951c2100857521c833b Mon Sep 17 00:00:00 2001 From: Justin Gordon Date: Wed, 6 Apr 2016 14:31:31 -1000 Subject: [PATCH 026/246] Update to latest versions of React on Rails * And other ruby and npm dependencies --- Gemfile | 2 +- Gemfile.lock | 106 ++--- client/npm-shrinkwrap.json | 890 +++++++++++++++++++++++++++++++------ client/package.json | 59 +-- 4 files changed, 829 insertions(+), 228 deletions(-) diff --git a/Gemfile b/Gemfile index 47422ea7..260ff023 100644 --- a/Gemfile +++ b/Gemfile @@ -40,7 +40,7 @@ gem "sdoc", group: :doc # Use Rails Html Sanitizer for HTML sanitization gem "rails-html-sanitizer" -gem "react_on_rails", "~> 5.0.0.rc.1" +gem "react_on_rails", "~> 5.1.1" # See https://github.com/sstephenson/execjs#readme for more supported runtimes gem "therubyracer" diff --git a/Gemfile.lock b/Gemfile.lock index 7dc9f638..09298a1c 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -1,36 +1,36 @@ GEM remote: https://rubygems.org/ specs: - actionmailer (4.2.5.2) - actionpack (= 4.2.5.2) - actionview (= 4.2.5.2) - activejob (= 4.2.5.2) + actionmailer (4.2.6) + actionpack (= 4.2.6) + actionview (= 4.2.6) + activejob (= 4.2.6) mail (~> 2.5, >= 2.5.4) rails-dom-testing (~> 1.0, >= 1.0.5) - actionpack (4.2.5.2) - actionview (= 4.2.5.2) - activesupport (= 4.2.5.2) + actionpack (4.2.6) + actionview (= 4.2.6) + activesupport (= 4.2.6) rack (~> 1.6) rack-test (~> 0.6.2) rails-dom-testing (~> 1.0, >= 1.0.5) rails-html-sanitizer (~> 1.0, >= 1.0.2) - actionview (4.2.5.2) - activesupport (= 4.2.5.2) + actionview (4.2.6) + activesupport (= 4.2.6) builder (~> 3.1) erubis (~> 2.7.0) rails-dom-testing (~> 1.0, >= 1.0.5) rails-html-sanitizer (~> 1.0, >= 1.0.2) - activejob (4.2.5.2) - activesupport (= 4.2.5.2) + activejob (4.2.6) + activesupport (= 4.2.6) globalid (>= 0.3.0) - activemodel (4.2.5.2) - activesupport (= 4.2.5.2) + activemodel (4.2.6) + activesupport (= 4.2.6) builder (~> 3.1) - activerecord (4.2.5.2) - activemodel (= 4.2.5.2) - activesupport (= 4.2.5.2) + activerecord (4.2.6) + activemodel (= 4.2.6) + activesupport (= 4.2.6) arel (~> 6.0) - activesupport (4.2.5.2) + activesupport (4.2.6) i18n (~> 0.7) json (~> 1.7, >= 1.7.7) minitest (~> 5.1) @@ -41,7 +41,7 @@ GEM io-like (~> 0.3.0) arel (6.0.3) ast (2.2.0) - autoprefixer-rails (6.3.3.1) + autoprefixer-rails (6.3.6) execjs awesome_print (1.6.1) binding_of_caller (0.7.2) @@ -68,10 +68,10 @@ GEM rack (>= 1.0.0) rack-test (>= 0.5.4) xpath (~> 2.0) - capybara-screenshot (1.0.11) + capybara-screenshot (1.0.12) capybara (>= 1.0, < 3) launchy - capybara-webkit (1.8.0) + capybara-webkit (1.9.0) capybara (>= 2.3.0, < 2.7.0) json childprocess (0.5.9) @@ -130,16 +130,18 @@ GEM libv8 (3.16.14.13) loofah (2.0.3) nokogiri (>= 1.5.9) - mail (2.6.3) - mime-types (>= 1.16, < 3) + mail (2.6.4) + mime-types (>= 1.16, < 4) method_source (0.8.2) - mime-types (2.99.1) + mime-types (3.0) + mime-types-data (~> 3.2015) + mime-types-data (3.2016.0221) mini_portile2 (2.0.0) minitest (5.8.4) multi_json (1.11.2) nokogiri (1.6.7.2) mini_portile2 (~> 2.0.0.rc2) - parser (2.3.0.6) + parser (2.3.0.7) ast (~> 2.2) pg (0.18.4) poltergeist (1.9.0) @@ -166,20 +168,20 @@ GEM pry-stack_explorer (0.4.9.2) binding_of_caller (>= 0.7) pry (>= 0.9.11) - puma (3.1.0) + puma (3.3.0) rack (1.6.4) rack-test (0.6.3) rack (>= 1.0) - rails (4.2.5.2) - actionmailer (= 4.2.5.2) - actionpack (= 4.2.5.2) - actionview (= 4.2.5.2) - activejob (= 4.2.5.2) - activemodel (= 4.2.5.2) - activerecord (= 4.2.5.2) - activesupport (= 4.2.5.2) + rails (4.2.6) + actionmailer (= 4.2.6) + actionpack (= 4.2.6) + actionview (= 4.2.6) + activejob (= 4.2.6) + activemodel (= 4.2.6) + activerecord (= 4.2.6) + activesupport (= 4.2.6) bundler (>= 1.3.0, < 2.0) - railties (= 4.2.5.2) + railties (= 4.2.6) sprockets-rails rails-deprecated_sanitizer (1.0.3) activesupport (>= 4.2.0.alpha) @@ -193,24 +195,24 @@ GEM rails_serve_static_assets rails_stdout_logging rails_serve_static_assets (0.0.5) - rails_stdout_logging (0.0.4) - railties (4.2.5.2) - actionpack (= 4.2.5.2) - activesupport (= 4.2.5.2) + rails_stdout_logging (0.0.5) + railties (4.2.6) + actionpack (= 4.2.6) + activesupport (= 4.2.6) rake (>= 0.8.7) thor (>= 0.18.1, < 2.0) rainbow (2.1.0) rake (10.5.0) rdoc (4.2.2) json (~> 1.4) - react_on_rails (5.0.0.rc.1) + react_on_rails (5.1.1) connection_pool execjs (~> 2.5) foreman rails (>= 3.2) rainbow (~> 2.1) ref (2.0.0) - rspec-core (3.4.3) + rspec-core (3.4.4) rspec-support (~> 3.4.0) rspec-expectations (3.4.0) diff-lcs (>= 1.2.0, < 2.0) @@ -229,12 +231,12 @@ GEM rspec-retry (0.4.5) rspec-core rspec-support (3.4.1) - rubocop (0.37.2) - parser (>= 2.3.0.4, < 3.0) + rubocop (0.39.0) + parser (>= 2.3.0.7, < 3.0) powerpack (~> 0.1) rainbow (>= 1.99.1, < 3.0) ruby-progressbar (~> 1.7) - unicode-display_width (~> 0.3) + unicode-display_width (~> 1.0, >= 1.0.1) ruby-lint (2.1.0) parser (~> 2.2) slop (~> 3.4, >= 3.4.7) @@ -246,7 +248,7 @@ GEM sexp_processor (~> 4.1) rubyzip (1.2.0) safe_yaml (1.0.4) - sass (3.4.21) + sass (3.4.22) sass-rails (5.0.4) railties (>= 4.0.0, < 5.0) sass (~> 3.1) @@ -259,9 +261,8 @@ GEM sdoc (0.4.1) json (~> 1.7, >= 1.7.7) rdoc (~> 4.0) - selenium-webdriver (2.52.0) + selenium-webdriver (2.53.0) childprocess (~> 0.5) - multi_json (~> 1.0) rubyzip (~> 1.0) websocket (~> 1.0) sexp_processor (4.7.0) @@ -277,7 +278,7 @@ GEM spring (1.6.4) spring-commands-rspec (1.0.4) spring (>= 0.9.1) - sprockets (3.5.2) + sprockets (3.6.0) concurrent-ruby (~> 1.0) rack (> 1, < 3) sprockets-rails (3.0.4) @@ -298,15 +299,14 @@ GEM tins (1.6.0) tzinfo (1.2.2) thread_safe (~> 0.1) - uglifier (2.7.2) - execjs (>= 0.3.0) - json (>= 1.8.0) - unicode-display_width (0.3.1) + uglifier (3.0.0) + execjs (>= 0.3.0, < 3) + unicode-display_width (1.0.3) web-console (3.1.1) activemodel (>= 4.2) debug_inspector railties (>= 4.2) - websocket (1.2.2) + websocket (1.2.3) websocket-driver (0.6.3) websocket-extensions (>= 0.1.0) websocket-extensions (0.1.2) @@ -347,7 +347,7 @@ DEPENDENCIES rails-html-sanitizer rails_12factor rainbow - react_on_rails (~> 5.0.0.rc.1) + react_on_rails (~> 5.1.1) rspec-rails rspec-retry rubocop diff --git a/client/npm-shrinkwrap.json b/client/npm-shrinkwrap.json index 1c3f9d48..2314bf08 100644 --- a/client/npm-shrinkwrap.json +++ b/client/npm-shrinkwrap.json @@ -45,11 +45,6 @@ } } }, - "acorn-to-esprima": { - "version": "2.0.8", - "from": "acorn-to-esprima@>=2.0.4 <3.0.0", - "resolved": "https://registry.npmjs.org/acorn-to-esprima/-/acorn-to-esprima-2.0.8.tgz" - }, "align-text": { "version": "0.1.4", "from": "align-text@>=0.1.3 <0.2.0", @@ -211,9 +206,9 @@ "resolved": "https://registry.npmjs.org/atob/-/atob-1.1.3.tgz" }, "autoprefixer": { - "version": "6.3.3", - "from": "autoprefixer@>=6.3.3 <7.0.0", - "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-6.3.3.tgz" + "version": "6.3.6", + "from": "autoprefixer@>=6.3.6 <7.0.0", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-6.3.6.tgz" }, "aws-sign2": { "version": "0.6.0", @@ -240,6 +235,11 @@ "from": "babel-cli@>=6.6.5 <7.0.0", "resolved": "https://registry.npmjs.org/babel-cli/-/babel-cli-6.6.5.tgz", "dependencies": { + "babel-runtime": { + "version": "5.8.38", + "from": "babel-runtime@>=5.0.0 <6.0.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-5.8.38.tgz" + }, "lodash": { "version": "3.10.1", "from": "lodash@>=3.2.0 <4.0.0", @@ -250,13 +250,35 @@ "babel-code-frame": { "version": "6.7.2", "from": "babel-code-frame@>=6.7.2 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.7.2.tgz" + "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.7.2.tgz", + "dependencies": { + "babel-runtime": { + "version": "5.8.38", + "from": "babel-runtime@>=5.0.0 <6.0.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-5.8.38.tgz" + } + } }, "babel-core": { - "version": "6.7.2", - "from": "babel-core@>=6.6.5 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-core/-/babel-core-6.7.2.tgz", + "version": "6.7.4", + "from": "babel-core@>=6.7.4 <7.0.0", + "resolved": "https://registry.npmjs.org/babel-core/-/babel-core-6.7.4.tgz", "dependencies": { + "babel-code-frame": { + "version": "6.7.4", + "from": "babel-code-frame@>=6.7.4 <7.0.0", + "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.7.4.tgz" + }, + "babel-runtime": { + "version": "5.8.38", + "from": "babel-runtime@>=5.0.0 <6.0.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-5.8.38.tgz" + }, + "babel-traverse": { + "version": "6.7.4", + "from": "babel-traverse@>=6.7.4 <7.0.0", + "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.7.4.tgz" + }, "lodash": { "version": "3.10.1", "from": "lodash@>=3.10.0 <4.0.0", @@ -265,15 +287,20 @@ } }, "babel-eslint": { - "version": "5.0.0", - "from": "babel-eslint@>=5.0.0 <6.0.0", - "resolved": "https://registry.npmjs.org/babel-eslint/-/babel-eslint-5.0.0.tgz" + "version": "6.0.2", + "from": "babel-eslint@>=6.0.0 <7.0.0", + "resolved": "https://registry.npmjs.org/babel-eslint/-/babel-eslint-6.0.2.tgz" }, "babel-generator": { "version": "6.7.2", "from": "babel-generator@>=6.7.2 <7.0.0", "resolved": "https://registry.npmjs.org/babel-generator/-/babel-generator-6.7.2.tgz", "dependencies": { + "babel-runtime": { + "version": "5.8.38", + "from": "babel-runtime@>=5.0.0 <6.0.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-5.8.38.tgz" + }, "lodash": { "version": "3.10.1", "from": "lodash@>=3.10.1 <4.0.0", @@ -284,18 +311,37 @@ "babel-helper-bindify-decorators": { "version": "6.6.5", "from": "babel-helper-bindify-decorators@>=6.6.5 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-helper-bindify-decorators/-/babel-helper-bindify-decorators-6.6.5.tgz" + "resolved": "https://registry.npmjs.org/babel-helper-bindify-decorators/-/babel-helper-bindify-decorators-6.6.5.tgz", + "dependencies": { + "babel-runtime": { + "version": "5.8.38", + "from": "babel-runtime@>=5.0.0 <6.0.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-5.8.38.tgz" + } + } }, "babel-helper-builder-binary-assignment-operator-visitor": { "version": "6.6.5", "from": "babel-helper-builder-binary-assignment-operator-visitor@>=6.3.13 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-helper-builder-binary-assignment-operator-visitor/-/babel-helper-builder-binary-assignment-operator-visitor-6.6.5.tgz" + "resolved": "https://registry.npmjs.org/babel-helper-builder-binary-assignment-operator-visitor/-/babel-helper-builder-binary-assignment-operator-visitor-6.6.5.tgz", + "dependencies": { + "babel-runtime": { + "version": "5.8.38", + "from": "babel-runtime@>=5.0.0 <6.0.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-5.8.38.tgz" + } + } }, "babel-helper-builder-react-jsx": { "version": "6.6.5", "from": "babel-helper-builder-react-jsx@>=6.6.5 <7.0.0", "resolved": "https://registry.npmjs.org/babel-helper-builder-react-jsx/-/babel-helper-builder-react-jsx-6.6.5.tgz", "dependencies": { + "babel-runtime": { + "version": "5.8.38", + "from": "babel-runtime@>=5.0.0 <6.0.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-5.8.38.tgz" + }, "lodash": { "version": "3.10.1", "from": "lodash@>=3.10.0 <4.0.0", @@ -306,13 +352,25 @@ "babel-helper-call-delegate": { "version": "6.6.5", "from": "babel-helper-call-delegate@>=6.6.5 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-helper-call-delegate/-/babel-helper-call-delegate-6.6.5.tgz" + "resolved": "https://registry.npmjs.org/babel-helper-call-delegate/-/babel-helper-call-delegate-6.6.5.tgz", + "dependencies": { + "babel-runtime": { + "version": "5.8.38", + "from": "babel-runtime@>=5.0.0 <6.0.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-5.8.38.tgz" + } + } }, "babel-helper-define-map": { "version": "6.6.5", "from": "babel-helper-define-map@>=6.6.5 <7.0.0", "resolved": "https://registry.npmjs.org/babel-helper-define-map/-/babel-helper-define-map-6.6.5.tgz", "dependencies": { + "babel-runtime": { + "version": "5.8.38", + "from": "babel-runtime@>=5.0.0 <6.0.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-5.8.38.tgz" + }, "lodash": { "version": "3.10.1", "from": "lodash@>=3.10.0 <4.0.0", @@ -323,38 +381,85 @@ "babel-helper-explode-assignable-expression": { "version": "6.6.5", "from": "babel-helper-explode-assignable-expression@>=6.6.5 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-helper-explode-assignable-expression/-/babel-helper-explode-assignable-expression-6.6.5.tgz" + "resolved": "https://registry.npmjs.org/babel-helper-explode-assignable-expression/-/babel-helper-explode-assignable-expression-6.6.5.tgz", + "dependencies": { + "babel-runtime": { + "version": "5.8.38", + "from": "babel-runtime@>=5.0.0 <6.0.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-5.8.38.tgz" + } + } }, "babel-helper-explode-class": { "version": "6.6.5", "from": "babel-helper-explode-class@>=6.6.5 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-helper-explode-class/-/babel-helper-explode-class-6.6.5.tgz" + "resolved": "https://registry.npmjs.org/babel-helper-explode-class/-/babel-helper-explode-class-6.6.5.tgz", + "dependencies": { + "babel-runtime": { + "version": "5.8.38", + "from": "babel-runtime@>=5.0.0 <6.0.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-5.8.38.tgz" + } + } }, "babel-helper-function-name": { "version": "6.6.0", "from": "babel-helper-function-name@>=6.6.0 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-helper-function-name/-/babel-helper-function-name-6.6.0.tgz" + "resolved": "https://registry.npmjs.org/babel-helper-function-name/-/babel-helper-function-name-6.6.0.tgz", + "dependencies": { + "babel-runtime": { + "version": "5.8.38", + "from": "babel-runtime@>=5.0.0 <6.0.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-5.8.38.tgz" + } + } }, "babel-helper-get-function-arity": { "version": "6.6.5", "from": "babel-helper-get-function-arity@>=6.3.13 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-helper-get-function-arity/-/babel-helper-get-function-arity-6.6.5.tgz" + "resolved": "https://registry.npmjs.org/babel-helper-get-function-arity/-/babel-helper-get-function-arity-6.6.5.tgz", + "dependencies": { + "babel-runtime": { + "version": "5.8.38", + "from": "babel-runtime@>=5.0.0 <6.0.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-5.8.38.tgz" + } + } }, "babel-helper-hoist-variables": { "version": "6.6.5", "from": "babel-helper-hoist-variables@>=6.6.5 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-helper-hoist-variables/-/babel-helper-hoist-variables-6.6.5.tgz" + "resolved": "https://registry.npmjs.org/babel-helper-hoist-variables/-/babel-helper-hoist-variables-6.6.5.tgz", + "dependencies": { + "babel-runtime": { + "version": "5.8.38", + "from": "babel-runtime@>=5.0.0 <6.0.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-5.8.38.tgz" + } + } }, "babel-helper-optimise-call-expression": { "version": "6.6.0", "from": "babel-helper-optimise-call-expression@>=6.6.0 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-helper-optimise-call-expression/-/babel-helper-optimise-call-expression-6.6.0.tgz" + "resolved": "https://registry.npmjs.org/babel-helper-optimise-call-expression/-/babel-helper-optimise-call-expression-6.6.0.tgz", + "dependencies": { + "babel-runtime": { + "version": "5.8.38", + "from": "babel-runtime@>=5.0.0 <6.0.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-5.8.38.tgz" + } + } }, "babel-helper-regex": { "version": "6.6.5", "from": "babel-helper-regex@>=6.3.13 <7.0.0", "resolved": "https://registry.npmjs.org/babel-helper-regex/-/babel-helper-regex-6.6.5.tgz", "dependencies": { + "babel-runtime": { + "version": "5.8.38", + "from": "babel-runtime@>=5.0.0 <6.0.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-5.8.38.tgz" + }, "lodash": { "version": "3.10.1", "from": "lodash@>=3.10.0 <4.0.0", @@ -365,17 +470,38 @@ "babel-helper-remap-async-to-generator": { "version": "6.7.0", "from": "babel-helper-remap-async-to-generator@>=6.7.0 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-helper-remap-async-to-generator/-/babel-helper-remap-async-to-generator-6.7.0.tgz" + "resolved": "https://registry.npmjs.org/babel-helper-remap-async-to-generator/-/babel-helper-remap-async-to-generator-6.7.0.tgz", + "dependencies": { + "babel-runtime": { + "version": "5.8.38", + "from": "babel-runtime@>=5.0.0 <6.0.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-5.8.38.tgz" + } + } }, "babel-helper-replace-supers": { "version": "6.7.0", "from": "babel-helper-replace-supers@>=6.6.5 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-helper-replace-supers/-/babel-helper-replace-supers-6.7.0.tgz" + "resolved": "https://registry.npmjs.org/babel-helper-replace-supers/-/babel-helper-replace-supers-6.7.0.tgz", + "dependencies": { + "babel-runtime": { + "version": "5.8.38", + "from": "babel-runtime@>=5.0.0 <6.0.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-5.8.38.tgz" + } + } }, "babel-helpers": { "version": "6.6.0", "from": "babel-helpers@>=6.6.0 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-helpers/-/babel-helpers-6.6.0.tgz" + "resolved": "https://registry.npmjs.org/babel-helpers/-/babel-helpers-6.6.0.tgz", + "dependencies": { + "babel-runtime": { + "version": "5.8.38", + "from": "babel-runtime@>=5.0.0 <6.0.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-5.8.38.tgz" + } + } }, "babel-jscs": { "version": "2.0.5", @@ -424,12 +550,26 @@ "babel-messages": { "version": "6.7.2", "from": "babel-messages@>=6.7.2 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-6.7.2.tgz" + "resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-6.7.2.tgz", + "dependencies": { + "babel-runtime": { + "version": "5.8.38", + "from": "babel-runtime@>=5.0.0 <6.0.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-5.8.38.tgz" + } + } }, "babel-plugin-check-es2015-constants": { "version": "6.7.2", "from": "babel-plugin-check-es2015-constants@>=6.3.13 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-plugin-check-es2015-constants/-/babel-plugin-check-es2015-constants-6.7.2.tgz" + "resolved": "https://registry.npmjs.org/babel-plugin-check-es2015-constants/-/babel-plugin-check-es2015-constants-6.7.2.tgz", + "dependencies": { + "babel-runtime": { + "version": "5.8.38", + "from": "babel-runtime@>=5.0.0 <6.0.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-5.8.38.tgz" + } + } }, "babel-plugin-constant-folding": { "version": "1.0.1", @@ -506,103 +646,241 @@ "babel-plugin-syntax-async-functions": { "version": "6.5.0", "from": "babel-plugin-syntax-async-functions@>=6.3.13 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-plugin-syntax-async-functions/-/babel-plugin-syntax-async-functions-6.5.0.tgz" + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-async-functions/-/babel-plugin-syntax-async-functions-6.5.0.tgz", + "dependencies": { + "babel-runtime": { + "version": "5.8.38", + "from": "babel-runtime@>=5.0.0 <6.0.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-5.8.38.tgz" + } + } }, "babel-plugin-syntax-class-constructor-call": { "version": "6.5.0", "from": "babel-plugin-syntax-class-constructor-call@>=6.3.13 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-plugin-syntax-class-constructor-call/-/babel-plugin-syntax-class-constructor-call-6.5.0.tgz" + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-class-constructor-call/-/babel-plugin-syntax-class-constructor-call-6.5.0.tgz", + "dependencies": { + "babel-runtime": { + "version": "5.8.38", + "from": "babel-runtime@>=5.0.0 <6.0.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-5.8.38.tgz" + } + } }, "babel-plugin-syntax-class-properties": { "version": "6.5.0", "from": "babel-plugin-syntax-class-properties@>=6.3.13 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-plugin-syntax-class-properties/-/babel-plugin-syntax-class-properties-6.5.0.tgz" + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-class-properties/-/babel-plugin-syntax-class-properties-6.5.0.tgz", + "dependencies": { + "babel-runtime": { + "version": "5.8.38", + "from": "babel-runtime@>=5.0.0 <6.0.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-5.8.38.tgz" + } + } }, "babel-plugin-syntax-decorators": { "version": "6.5.0", "from": "babel-plugin-syntax-decorators@>=6.3.13 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-plugin-syntax-decorators/-/babel-plugin-syntax-decorators-6.5.0.tgz" + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-decorators/-/babel-plugin-syntax-decorators-6.5.0.tgz", + "dependencies": { + "babel-runtime": { + "version": "5.8.38", + "from": "babel-runtime@>=5.0.0 <6.0.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-5.8.38.tgz" + } + } }, "babel-plugin-syntax-do-expressions": { "version": "6.5.0", "from": "babel-plugin-syntax-do-expressions@>=6.3.13 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-plugin-syntax-do-expressions/-/babel-plugin-syntax-do-expressions-6.5.0.tgz" + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-do-expressions/-/babel-plugin-syntax-do-expressions-6.5.0.tgz", + "dependencies": { + "babel-runtime": { + "version": "5.8.38", + "from": "babel-runtime@>=5.0.0 <6.0.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-5.8.38.tgz" + } + } }, "babel-plugin-syntax-exponentiation-operator": { "version": "6.5.0", "from": "babel-plugin-syntax-exponentiation-operator@>=6.3.13 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-plugin-syntax-exponentiation-operator/-/babel-plugin-syntax-exponentiation-operator-6.5.0.tgz" + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-exponentiation-operator/-/babel-plugin-syntax-exponentiation-operator-6.5.0.tgz", + "dependencies": { + "babel-runtime": { + "version": "5.8.38", + "from": "babel-runtime@>=5.0.0 <6.0.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-5.8.38.tgz" + } + } }, "babel-plugin-syntax-export-extensions": { "version": "6.5.0", "from": "babel-plugin-syntax-export-extensions@>=6.3.13 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-plugin-syntax-export-extensions/-/babel-plugin-syntax-export-extensions-6.5.0.tgz" + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-export-extensions/-/babel-plugin-syntax-export-extensions-6.5.0.tgz", + "dependencies": { + "babel-runtime": { + "version": "5.8.38", + "from": "babel-runtime@>=5.0.0 <6.0.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-5.8.38.tgz" + } + } }, "babel-plugin-syntax-flow": { "version": "6.5.0", "from": "babel-plugin-syntax-flow@>=6.3.13 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-plugin-syntax-flow/-/babel-plugin-syntax-flow-6.5.0.tgz" + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-flow/-/babel-plugin-syntax-flow-6.5.0.tgz", + "dependencies": { + "babel-runtime": { + "version": "5.8.38", + "from": "babel-runtime@>=5.0.0 <6.0.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-5.8.38.tgz" + } + } }, "babel-plugin-syntax-function-bind": { "version": "6.5.0", "from": "babel-plugin-syntax-function-bind@>=6.3.13 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-plugin-syntax-function-bind/-/babel-plugin-syntax-function-bind-6.5.0.tgz" + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-function-bind/-/babel-plugin-syntax-function-bind-6.5.0.tgz", + "dependencies": { + "babel-runtime": { + "version": "5.8.38", + "from": "babel-runtime@>=5.0.0 <6.0.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-5.8.38.tgz" + } + } }, "babel-plugin-syntax-jsx": { "version": "6.5.0", "from": "babel-plugin-syntax-jsx@>=6.3.13 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-plugin-syntax-jsx/-/babel-plugin-syntax-jsx-6.5.0.tgz" + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-jsx/-/babel-plugin-syntax-jsx-6.5.0.tgz", + "dependencies": { + "babel-runtime": { + "version": "5.8.38", + "from": "babel-runtime@>=5.0.0 <6.0.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-5.8.38.tgz" + } + } }, "babel-plugin-syntax-object-rest-spread": { "version": "6.5.0", "from": "babel-plugin-syntax-object-rest-spread@>=6.3.13 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-plugin-syntax-object-rest-spread/-/babel-plugin-syntax-object-rest-spread-6.5.0.tgz" + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-object-rest-spread/-/babel-plugin-syntax-object-rest-spread-6.5.0.tgz", + "dependencies": { + "babel-runtime": { + "version": "5.8.38", + "from": "babel-runtime@>=5.0.0 <6.0.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-5.8.38.tgz" + } + } }, "babel-plugin-syntax-trailing-function-commas": { "version": "6.5.0", "from": "babel-plugin-syntax-trailing-function-commas@>=6.3.13 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-plugin-syntax-trailing-function-commas/-/babel-plugin-syntax-trailing-function-commas-6.5.0.tgz" + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-trailing-function-commas/-/babel-plugin-syntax-trailing-function-commas-6.5.0.tgz", + "dependencies": { + "babel-runtime": { + "version": "5.8.38", + "from": "babel-runtime@>=5.0.0 <6.0.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-5.8.38.tgz" + } + } }, "babel-plugin-transform-async-to-generator": { "version": "6.7.0", "from": "babel-plugin-transform-async-to-generator@>=6.3.13 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-async-to-generator/-/babel-plugin-transform-async-to-generator-6.7.0.tgz" + "resolved": "https://registry.npmjs.org/babel-plugin-transform-async-to-generator/-/babel-plugin-transform-async-to-generator-6.7.0.tgz", + "dependencies": { + "babel-runtime": { + "version": "5.8.38", + "from": "babel-runtime@>=5.0.0 <6.0.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-5.8.38.tgz" + } + } }, "babel-plugin-transform-class-constructor-call": { "version": "6.6.5", "from": "babel-plugin-transform-class-constructor-call@>=6.3.13 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-class-constructor-call/-/babel-plugin-transform-class-constructor-call-6.6.5.tgz" + "resolved": "https://registry.npmjs.org/babel-plugin-transform-class-constructor-call/-/babel-plugin-transform-class-constructor-call-6.6.5.tgz", + "dependencies": { + "babel-runtime": { + "version": "5.8.38", + "from": "babel-runtime@>=5.0.0 <6.0.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-5.8.38.tgz" + } + } }, "babel-plugin-transform-class-properties": { "version": "6.6.0", "from": "babel-plugin-transform-class-properties@>=6.3.13 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-class-properties/-/babel-plugin-transform-class-properties-6.6.0.tgz" + "resolved": "https://registry.npmjs.org/babel-plugin-transform-class-properties/-/babel-plugin-transform-class-properties-6.6.0.tgz", + "dependencies": { + "babel-runtime": { + "version": "5.8.38", + "from": "babel-runtime@>=5.0.0 <6.0.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-5.8.38.tgz" + } + } }, "babel-plugin-transform-decorators": { "version": "6.6.5", "from": "babel-plugin-transform-decorators@>=6.3.13 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-decorators/-/babel-plugin-transform-decorators-6.6.5.tgz" + "resolved": "https://registry.npmjs.org/babel-plugin-transform-decorators/-/babel-plugin-transform-decorators-6.6.5.tgz", + "dependencies": { + "babel-runtime": { + "version": "5.8.38", + "from": "babel-runtime@>=5.0.0 <6.0.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-5.8.38.tgz" + } + } }, "babel-plugin-transform-do-expressions": { "version": "6.5.0", "from": "babel-plugin-transform-do-expressions@>=6.3.13 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-do-expressions/-/babel-plugin-transform-do-expressions-6.5.0.tgz" + "resolved": "https://registry.npmjs.org/babel-plugin-transform-do-expressions/-/babel-plugin-transform-do-expressions-6.5.0.tgz", + "dependencies": { + "babel-runtime": { + "version": "5.8.38", + "from": "babel-runtime@>=5.0.0 <6.0.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-5.8.38.tgz" + } + } }, "babel-plugin-transform-es2015-arrow-functions": { "version": "6.5.2", "from": "babel-plugin-transform-es2015-arrow-functions@>=6.3.13 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-arrow-functions/-/babel-plugin-transform-es2015-arrow-functions-6.5.2.tgz" + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-arrow-functions/-/babel-plugin-transform-es2015-arrow-functions-6.5.2.tgz", + "dependencies": { + "babel-runtime": { + "version": "5.8.38", + "from": "babel-runtime@>=5.0.0 <6.0.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-5.8.38.tgz" + } + } }, "babel-plugin-transform-es2015-block-scoped-functions": { "version": "6.6.5", "from": "babel-plugin-transform-es2015-block-scoped-functions@>=6.3.13 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoped-functions/-/babel-plugin-transform-es2015-block-scoped-functions-6.6.5.tgz" + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoped-functions/-/babel-plugin-transform-es2015-block-scoped-functions-6.6.5.tgz", + "dependencies": { + "babel-runtime": { + "version": "5.8.38", + "from": "babel-runtime@>=5.0.0 <6.0.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-5.8.38.tgz" + } + } }, "babel-plugin-transform-es2015-block-scoping": { "version": "6.7.1", "from": "babel-plugin-transform-es2015-block-scoping@>=6.6.0 <7.0.0", "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoping/-/babel-plugin-transform-es2015-block-scoping-6.7.1.tgz", "dependencies": { + "babel-runtime": { + "version": "5.8.38", + "from": "babel-runtime@>=5.0.0 <6.0.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-5.8.38.tgz" + }, "lodash": { "version": "3.10.1", "from": "lodash@>=3.10.0 <4.0.0", @@ -613,132 +891,314 @@ "babel-plugin-transform-es2015-classes": { "version": "6.6.5", "from": "babel-plugin-transform-es2015-classes@>=6.6.0 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-classes/-/babel-plugin-transform-es2015-classes-6.6.5.tgz" + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-classes/-/babel-plugin-transform-es2015-classes-6.6.5.tgz", + "dependencies": { + "babel-runtime": { + "version": "5.8.38", + "from": "babel-runtime@>=5.0.0 <6.0.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-5.8.38.tgz" + } + } }, "babel-plugin-transform-es2015-computed-properties": { "version": "6.6.5", "from": "babel-plugin-transform-es2015-computed-properties@>=6.3.13 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-computed-properties/-/babel-plugin-transform-es2015-computed-properties-6.6.5.tgz" + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-computed-properties/-/babel-plugin-transform-es2015-computed-properties-6.6.5.tgz", + "dependencies": { + "babel-runtime": { + "version": "5.8.38", + "from": "babel-runtime@>=5.0.0 <6.0.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-5.8.38.tgz" + } + } }, "babel-plugin-transform-es2015-destructuring": { "version": "6.6.5", "from": "babel-plugin-transform-es2015-destructuring@>=6.6.0 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-destructuring/-/babel-plugin-transform-es2015-destructuring-6.6.5.tgz" + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-destructuring/-/babel-plugin-transform-es2015-destructuring-6.6.5.tgz", + "dependencies": { + "babel-runtime": { + "version": "5.8.38", + "from": "babel-runtime@>=5.0.0 <6.0.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-5.8.38.tgz" + } + } }, "babel-plugin-transform-es2015-duplicate-keys": { "version": "6.6.4", "from": "babel-plugin-transform-es2015-duplicate-keys@>=6.6.0 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-duplicate-keys/-/babel-plugin-transform-es2015-duplicate-keys-6.6.4.tgz" + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-duplicate-keys/-/babel-plugin-transform-es2015-duplicate-keys-6.6.4.tgz", + "dependencies": { + "babel-runtime": { + "version": "5.8.38", + "from": "babel-runtime@>=5.0.0 <6.0.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-5.8.38.tgz" + } + } }, "babel-plugin-transform-es2015-for-of": { "version": "6.6.0", "from": "babel-plugin-transform-es2015-for-of@>=6.6.0 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-for-of/-/babel-plugin-transform-es2015-for-of-6.6.0.tgz" + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-for-of/-/babel-plugin-transform-es2015-for-of-6.6.0.tgz", + "dependencies": { + "babel-runtime": { + "version": "5.8.38", + "from": "babel-runtime@>=5.0.0 <6.0.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-5.8.38.tgz" + } + } }, "babel-plugin-transform-es2015-function-name": { "version": "6.5.0", "from": "babel-plugin-transform-es2015-function-name@>=6.3.13 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-function-name/-/babel-plugin-transform-es2015-function-name-6.5.0.tgz" + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-function-name/-/babel-plugin-transform-es2015-function-name-6.5.0.tgz", + "dependencies": { + "babel-runtime": { + "version": "5.8.38", + "from": "babel-runtime@>=5.0.0 <6.0.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-5.8.38.tgz" + } + } }, "babel-plugin-transform-es2015-literals": { "version": "6.5.0", "from": "babel-plugin-transform-es2015-literals@>=6.3.13 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-literals/-/babel-plugin-transform-es2015-literals-6.5.0.tgz" + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-literals/-/babel-plugin-transform-es2015-literals-6.5.0.tgz", + "dependencies": { + "babel-runtime": { + "version": "5.8.38", + "from": "babel-runtime@>=5.0.0 <6.0.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-5.8.38.tgz" + } + } }, "babel-plugin-transform-es2015-modules-commonjs": { "version": "6.7.0", "from": "babel-plugin-transform-es2015-modules-commonjs@>=6.6.0 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-commonjs/-/babel-plugin-transform-es2015-modules-commonjs-6.7.0.tgz" + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-commonjs/-/babel-plugin-transform-es2015-modules-commonjs-6.7.0.tgz", + "dependencies": { + "babel-runtime": { + "version": "5.8.38", + "from": "babel-runtime@>=5.0.0 <6.0.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-5.8.38.tgz" + } + } }, "babel-plugin-transform-es2015-object-super": { "version": "6.6.5", "from": "babel-plugin-transform-es2015-object-super@>=6.3.13 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-object-super/-/babel-plugin-transform-es2015-object-super-6.6.5.tgz" + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-object-super/-/babel-plugin-transform-es2015-object-super-6.6.5.tgz", + "dependencies": { + "babel-runtime": { + "version": "5.8.38", + "from": "babel-runtime@>=5.0.0 <6.0.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-5.8.38.tgz" + } + } }, "babel-plugin-transform-es2015-parameters": { "version": "6.7.0", "from": "babel-plugin-transform-es2015-parameters@>=6.6.0 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-parameters/-/babel-plugin-transform-es2015-parameters-6.7.0.tgz" + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-parameters/-/babel-plugin-transform-es2015-parameters-6.7.0.tgz", + "dependencies": { + "babel-runtime": { + "version": "5.8.38", + "from": "babel-runtime@>=5.0.0 <6.0.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-5.8.38.tgz" + } + } }, "babel-plugin-transform-es2015-shorthand-properties": { "version": "6.5.0", "from": "babel-plugin-transform-es2015-shorthand-properties@>=6.3.13 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-shorthand-properties/-/babel-plugin-transform-es2015-shorthand-properties-6.5.0.tgz" + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-shorthand-properties/-/babel-plugin-transform-es2015-shorthand-properties-6.5.0.tgz", + "dependencies": { + "babel-runtime": { + "version": "5.8.38", + "from": "babel-runtime@>=5.0.0 <6.0.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-5.8.38.tgz" + } + } }, "babel-plugin-transform-es2015-spread": { "version": "6.6.5", "from": "babel-plugin-transform-es2015-spread@>=6.3.13 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-spread/-/babel-plugin-transform-es2015-spread-6.6.5.tgz" + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-spread/-/babel-plugin-transform-es2015-spread-6.6.5.tgz", + "dependencies": { + "babel-runtime": { + "version": "5.8.38", + "from": "babel-runtime@>=5.0.0 <6.0.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-5.8.38.tgz" + } + } }, "babel-plugin-transform-es2015-sticky-regex": { "version": "6.5.0", "from": "babel-plugin-transform-es2015-sticky-regex@>=6.3.13 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-sticky-regex/-/babel-plugin-transform-es2015-sticky-regex-6.5.0.tgz" + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-sticky-regex/-/babel-plugin-transform-es2015-sticky-regex-6.5.0.tgz", + "dependencies": { + "babel-runtime": { + "version": "5.8.38", + "from": "babel-runtime@>=5.0.0 <6.0.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-5.8.38.tgz" + } + } }, "babel-plugin-transform-es2015-template-literals": { "version": "6.6.5", "from": "babel-plugin-transform-es2015-template-literals@>=6.6.0 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-template-literals/-/babel-plugin-transform-es2015-template-literals-6.6.5.tgz" + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-template-literals/-/babel-plugin-transform-es2015-template-literals-6.6.5.tgz", + "dependencies": { + "babel-runtime": { + "version": "5.8.38", + "from": "babel-runtime@>=5.0.0 <6.0.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-5.8.38.tgz" + } + } }, "babel-plugin-transform-es2015-typeof-symbol": { "version": "6.6.0", "from": "babel-plugin-transform-es2015-typeof-symbol@>=6.6.0 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-typeof-symbol/-/babel-plugin-transform-es2015-typeof-symbol-6.6.0.tgz" + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-typeof-symbol/-/babel-plugin-transform-es2015-typeof-symbol-6.6.0.tgz", + "dependencies": { + "babel-runtime": { + "version": "5.8.38", + "from": "babel-runtime@>=5.0.0 <6.0.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-5.8.38.tgz" + } + } }, "babel-plugin-transform-es2015-unicode-regex": { "version": "6.5.0", "from": "babel-plugin-transform-es2015-unicode-regex@>=6.3.13 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-unicode-regex/-/babel-plugin-transform-es2015-unicode-regex-6.5.0.tgz" + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-unicode-regex/-/babel-plugin-transform-es2015-unicode-regex-6.5.0.tgz", + "dependencies": { + "babel-runtime": { + "version": "5.8.38", + "from": "babel-runtime@>=5.0.0 <6.0.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-5.8.38.tgz" + } + } }, "babel-plugin-transform-exponentiation-operator": { "version": "6.5.0", "from": "babel-plugin-transform-exponentiation-operator@>=6.3.13 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-exponentiation-operator/-/babel-plugin-transform-exponentiation-operator-6.5.0.tgz" + "resolved": "https://registry.npmjs.org/babel-plugin-transform-exponentiation-operator/-/babel-plugin-transform-exponentiation-operator-6.5.0.tgz", + "dependencies": { + "babel-runtime": { + "version": "5.8.38", + "from": "babel-runtime@>=5.0.0 <6.0.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-5.8.38.tgz" + } + } }, "babel-plugin-transform-export-extensions": { "version": "6.5.0", "from": "babel-plugin-transform-export-extensions@>=6.3.13 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-export-extensions/-/babel-plugin-transform-export-extensions-6.5.0.tgz" + "resolved": "https://registry.npmjs.org/babel-plugin-transform-export-extensions/-/babel-plugin-transform-export-extensions-6.5.0.tgz", + "dependencies": { + "babel-runtime": { + "version": "5.8.38", + "from": "babel-runtime@>=5.0.0 <6.0.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-5.8.38.tgz" + } + } }, "babel-plugin-transform-flow-strip-types": { "version": "6.7.0", "from": "babel-plugin-transform-flow-strip-types@>=6.3.13 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-flow-strip-types/-/babel-plugin-transform-flow-strip-types-6.7.0.tgz" + "resolved": "https://registry.npmjs.org/babel-plugin-transform-flow-strip-types/-/babel-plugin-transform-flow-strip-types-6.7.0.tgz", + "dependencies": { + "babel-runtime": { + "version": "5.8.38", + "from": "babel-runtime@>=5.0.0 <6.0.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-5.8.38.tgz" + } + } }, "babel-plugin-transform-function-bind": { "version": "6.5.2", "from": "babel-plugin-transform-function-bind@>=6.3.13 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-function-bind/-/babel-plugin-transform-function-bind-6.5.2.tgz" + "resolved": "https://registry.npmjs.org/babel-plugin-transform-function-bind/-/babel-plugin-transform-function-bind-6.5.2.tgz", + "dependencies": { + "babel-runtime": { + "version": "5.8.38", + "from": "babel-runtime@>=5.0.0 <6.0.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-5.8.38.tgz" + } + } }, "babel-plugin-transform-object-rest-spread": { "version": "6.6.5", "from": "babel-plugin-transform-object-rest-spread@>=6.3.13 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-object-rest-spread/-/babel-plugin-transform-object-rest-spread-6.6.5.tgz" + "resolved": "https://registry.npmjs.org/babel-plugin-transform-object-rest-spread/-/babel-plugin-transform-object-rest-spread-6.6.5.tgz", + "dependencies": { + "babel-runtime": { + "version": "5.8.38", + "from": "babel-runtime@>=5.0.0 <6.0.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-5.8.38.tgz" + } + } }, "babel-plugin-transform-react-display-name": { "version": "6.5.0", "from": "babel-plugin-transform-react-display-name@>=6.3.13 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-react-display-name/-/babel-plugin-transform-react-display-name-6.5.0.tgz" + "resolved": "https://registry.npmjs.org/babel-plugin-transform-react-display-name/-/babel-plugin-transform-react-display-name-6.5.0.tgz", + "dependencies": { + "babel-runtime": { + "version": "5.8.38", + "from": "babel-runtime@>=5.0.0 <6.0.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-5.8.38.tgz" + } + } }, "babel-plugin-transform-react-jsx": { "version": "6.6.5", "from": "babel-plugin-transform-react-jsx@>=6.3.13 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-react-jsx/-/babel-plugin-transform-react-jsx-6.6.5.tgz" + "resolved": "https://registry.npmjs.org/babel-plugin-transform-react-jsx/-/babel-plugin-transform-react-jsx-6.6.5.tgz", + "dependencies": { + "babel-runtime": { + "version": "5.8.38", + "from": "babel-runtime@>=5.0.0 <6.0.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-5.8.38.tgz" + } + } }, "babel-plugin-transform-react-jsx-source": { "version": "6.5.0", "from": "babel-plugin-transform-react-jsx-source@>=6.3.13 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-react-jsx-source/-/babel-plugin-transform-react-jsx-source-6.5.0.tgz" + "resolved": "https://registry.npmjs.org/babel-plugin-transform-react-jsx-source/-/babel-plugin-transform-react-jsx-source-6.5.0.tgz", + "dependencies": { + "babel-runtime": { + "version": "5.8.38", + "from": "babel-runtime@>=5.0.0 <6.0.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-5.8.38.tgz" + } + } }, "babel-plugin-transform-regenerator": { "version": "6.6.5", "from": "babel-plugin-transform-regenerator@>=6.6.0 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-regenerator/-/babel-plugin-transform-regenerator-6.6.5.tgz" + "resolved": "https://registry.npmjs.org/babel-plugin-transform-regenerator/-/babel-plugin-transform-regenerator-6.6.5.tgz", + "dependencies": { + "babel-runtime": { + "version": "5.8.38", + "from": "babel-runtime@>=5.0.0 <6.0.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-5.8.38.tgz" + } + } }, "babel-plugin-transform-strict-mode": { "version": "6.6.5", "from": "babel-plugin-transform-strict-mode@>=6.6.5 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-strict-mode/-/babel-plugin-transform-strict-mode-6.6.5.tgz" + "resolved": "https://registry.npmjs.org/babel-plugin-transform-strict-mode/-/babel-plugin-transform-strict-mode-6.6.5.tgz", + "dependencies": { + "babel-runtime": { + "version": "5.8.38", + "from": "babel-runtime@>=5.0.0 <6.0.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-5.8.38.tgz" + } + } }, "babel-plugin-undeclared-variables-check": { "version": "1.0.2", @@ -751,14 +1211,26 @@ "resolved": "https://registry.npmjs.org/babel-plugin-undefined-to-void/-/babel-plugin-undefined-to-void-1.1.6.tgz" }, "babel-polyfill": { - "version": "6.7.2", - "from": "babel-polyfill@>=6.6.1 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-polyfill/-/babel-polyfill-6.7.2.tgz", + "version": "6.7.4", + "from": "babel-polyfill@>=6.7.4 <7.0.0", + "resolved": "https://registry.npmjs.org/babel-polyfill/-/babel-polyfill-6.7.4.tgz", "dependencies": { + "babel-runtime": { + "version": "5.8.38", + "from": "babel-runtime@>=5.0.0 <6.0.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-5.8.38.tgz", + "dependencies": { + "core-js": { + "version": "1.2.6", + "from": "core-js@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-1.2.6.tgz" + } + } + }, "core-js": { - "version": "2.1.5", + "version": "2.2.2", "from": "core-js@>=2.1.0 <3.0.0", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.1.5.tgz" + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.2.2.tgz" } } }, @@ -802,6 +1274,18 @@ "from": "babel-register@>=6.6.5 <7.0.0", "resolved": "https://registry.npmjs.org/babel-register/-/babel-register-6.7.2.tgz", "dependencies": { + "babel-runtime": { + "version": "5.8.38", + "from": "babel-runtime@>=5.0.0 <6.0.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-5.8.38.tgz", + "dependencies": { + "core-js": { + "version": "1.2.6", + "from": "core-js@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-1.2.6.tgz" + } + } + }, "core-js": { "version": "2.2.1", "from": "core-js@>=2.1.0 <3.0.0", @@ -815,15 +1299,27 @@ } }, "babel-runtime": { - "version": "5.8.35", - "from": "babel-runtime@>=5.0.0 <6.0.0", - "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-5.8.35.tgz" + "version": "6.6.1", + "from": "babel-runtime@latest", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.6.1.tgz", + "dependencies": { + "core-js": { + "version": "2.2.2", + "from": "core-js@>=2.1.0 <3.0.0", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.2.2.tgz" + } + } }, "babel-template": { "version": "6.7.0", "from": "babel-template@>=6.7.0 <7.0.0", "resolved": "https://registry.npmjs.org/babel-template/-/babel-template-6.7.0.tgz", "dependencies": { + "babel-runtime": { + "version": "5.8.38", + "from": "babel-runtime@>=5.0.0 <6.0.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-5.8.38.tgz" + }, "lodash": { "version": "3.10.1", "from": "lodash@>=3.10.1 <4.0.0", @@ -836,6 +1332,11 @@ "from": "babel-traverse@>=6.7.2 <7.0.0", "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.7.3.tgz", "dependencies": { + "babel-runtime": { + "version": "5.8.38", + "from": "babel-runtime@>=5.0.0 <6.0.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-5.8.38.tgz" + }, "lodash": { "version": "3.10.1", "from": "lodash@>=3.10.1 <4.0.0", @@ -848,6 +1349,11 @@ "from": "babel-types@>=6.7.2 <7.0.0", "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.7.2.tgz", "dependencies": { + "babel-runtime": { + "version": "5.8.38", + "from": "babel-runtime@>=5.0.0 <6.0.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-5.8.38.tgz" + }, "lodash": { "version": "3.10.1", "from": "lodash@>=3.10.1 <4.0.0", @@ -858,7 +1364,14 @@ "babylon": { "version": "6.7.0", "from": "babylon@>=6.7.0 <7.0.0", - "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.7.0.tgz" + "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.7.0.tgz", + "dependencies": { + "babel-runtime": { + "version": "5.8.38", + "from": "babel-runtime@>=5.0.0 <6.0.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-5.8.38.tgz" + } + } }, "balanced-match": { "version": "0.3.0", @@ -926,9 +1439,8 @@ "resolved": "https://registry.npmjs.org/boom/-/boom-2.10.1.tgz" }, "bootstrap-loader": { - "version": "1.0.9", - "from": "bootstrap-loader@>=1.0.9 <2.0.0", - "resolved": "https://registry.npmjs.org/bootstrap-loader/-/bootstrap-loader-1.0.9.tgz", + "version": "1.0.10", + "from": "bootstrap-loader@>=1.0.10 <2.0.0", "dependencies": { "semver": { "version": "5.1.0", @@ -963,9 +1475,9 @@ "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.1.4.tgz" }, "browserslist": { - "version": "1.1.3", - "from": "browserslist@>=1.1.3 <1.2.0", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-1.1.3.tgz" + "version": "1.3.1", + "from": "browserslist@>=1.3.1 <1.4.0", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-1.3.1.tgz" }, "buffer": { "version": "3.6.0", @@ -1010,9 +1522,9 @@ "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-2.0.0.tgz" }, "caniuse-db": { - "version": "1.0.30000430", - "from": "caniuse-db@>=1.0.30000409 <2.0.0", - "resolved": "https://registry.npmjs.org/caniuse-db/-/caniuse-db-1.0.30000430.tgz" + "version": "1.0.30000448", + "from": "caniuse-db@>=1.0.30000444 <2.0.0", + "resolved": "https://registry.npmjs.org/caniuse-db/-/caniuse-db-1.0.30000448.tgz" }, "caseless": { "version": "0.11.0", @@ -1501,6 +2013,23 @@ "from": "diff@1.4.0", "resolved": "https://registry.npmjs.org/diff/-/diff-1.4.0.tgz" }, + "doctrine": { + "version": "1.2.1", + "from": "doctrine@>=1.2.1 <2.0.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-1.2.1.tgz", + "dependencies": { + "esutils": { + "version": "1.1.6", + "from": "esutils@>=1.1.6 <2.0.0", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-1.1.6.tgz" + }, + "isarray": { + "version": "1.0.0", + "from": "isarray@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz" + } + } + }, "dom-helpers": { "version": "2.4.0", "from": "dom-helpers@>=2.4.0 <3.0.0", @@ -1663,9 +2192,14 @@ "resolved": "https://registry.npmjs.org/escope/-/escope-3.6.0.tgz" }, "eslint-config-airbnb": { - "version": "6.1.0", - "from": "eslint-config-airbnb@>=6.0.2 <7.0.0", - "resolved": "https://registry.npmjs.org/eslint-config-airbnb/-/eslint-config-airbnb-6.1.0.tgz" + "version": "6.2.0", + "from": "eslint-config-airbnb@>=6.2.0 <7.0.0", + "resolved": "https://registry.npmjs.org/eslint-config-airbnb/-/eslint-config-airbnb-6.2.0.tgz" + }, + "espree": { + "version": "3.1.3", + "from": "espree@3.1.3", + "resolved": "https://registry.npmjs.org/espree/-/espree-3.1.3.tgz" }, "esprima": { "version": "2.7.2", @@ -1802,9 +2336,14 @@ "resolved": "https://registry.npmjs.org/fbjs/-/fbjs-0.6.1.tgz" }, "figures": { - "version": "1.4.0", + "version": "1.5.0", "from": "figures@>=1.3.5 <2.0.0", - "resolved": "https://registry.npmjs.org/figures/-/figures-1.4.0.tgz" + "resolved": "https://registry.npmjs.org/figures/-/figures-1.5.0.tgz" + }, + "file-entry-cache": { + "version": "1.2.4", + "from": "file-entry-cache@>=1.1.1 <2.0.0", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-1.2.4.tgz" }, "file-loader": { "version": "0.8.5", @@ -1854,9 +2393,9 @@ "resolved": "https://registry.npmjs.org/flatten/-/flatten-1.0.2.tgz" }, "flux-standard-action": { - "version": "0.6.0", - "from": "flux-standard-action@0.6.0", - "resolved": "https://registry.npmjs.org/flux-standard-action/-/flux-standard-action-0.6.0.tgz" + "version": "0.6.1", + "from": "flux-standard-action@>=0.6.1 <0.7.0", + "resolved": "https://registry.npmjs.org/flux-standard-action/-/flux-standard-action-0.6.1.tgz" }, "follow-redirects": { "version": "0.0.7", @@ -2759,6 +3298,11 @@ "from": "ieee754@>=1.1.4 <2.0.0", "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.6.tgz" }, + "ignore": { + "version": "3.0.14", + "from": "ignore@>=3.0.10 <4.0.0", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-3.0.14.tgz" + }, "immutable": { "version": "3.7.6", "from": "immutable@>=3.7.6 <4.0.0", @@ -2776,6 +3320,11 @@ } } }, + "imurmurhash": { + "version": "0.1.4", + "from": "imurmurhash@>=0.1.4 <0.2.0", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz" + }, "indent-string": { "version": "2.1.0", "from": "indent-string@>=2.1.0 <3.0.0", @@ -2818,6 +3367,11 @@ "from": "ini@>=1.2.0 <2.0.0", "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.4.tgz" }, + "inquirer": { + "version": "0.12.0", + "from": "inquirer@>=0.12.0 <0.13.0", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-0.12.0.tgz" + }, "interpret": { "version": "0.6.6", "from": "interpret@>=0.6.4 <0.7.0", @@ -2958,6 +3512,11 @@ "from": "is-relative@>=0.1.0 <0.2.0", "resolved": "https://registry.npmjs.org/is-relative/-/is-relative-0.1.3.tgz" }, + "is-resolvable": { + "version": "1.0.0", + "from": "is-resolvable@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/is-resolvable/-/is-resolvable-1.0.0.tgz" + }, "is-svg": { "version": "1.1.1", "from": "is-svg@>=1.1.1 <2.0.0", @@ -2999,14 +3558,13 @@ "resolved": "https://registry.npmjs.org/jodid25519/-/jodid25519-1.0.2.tgz" }, "jquery": { - "version": "2.2.1", - "from": "jquery@>=2.2.1 <3.0.0", - "resolved": "https://registry.npmjs.org/jquery/-/jquery-2.2.1.tgz" + "version": "2.2.3", + "from": "jquery@>=2.2.3 <3.0.0", + "resolved": "https://registry.npmjs.org/jquery/-/jquery-2.2.3.tgz" }, "jquery-ujs": { - "version": "1.2.0", - "from": "jquery-ujs@>=1.2.0 <2.0.0", - "resolved": "https://registry.npmjs.org/jquery-ujs/-/jquery-ujs-1.2.0.tgz" + "version": "1.2.1", + "from": "jquery-ujs@>=1.2.1 <2.0.0" }, "js-base64": { "version": "2.1.9", @@ -3060,6 +3618,11 @@ "from": "json-schema@0.2.2", "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.2.tgz" }, + "json-stable-stringify": { + "version": "1.0.1", + "from": "json-stable-stringify@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz" + }, "json-stringify-safe": { "version": "5.0.1", "from": "json-stringify-safe@>=5.0.1 <5.1.0", @@ -3180,14 +3743,14 @@ "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz" }, "loader-utils": { - "version": "0.2.12", - "from": "loader-utils@>=0.2.12 <0.3.0", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-0.2.12.tgz" + "version": "0.2.13", + "from": "loader-utils@>=0.2.13 <0.3.0", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-0.2.13.tgz" }, "lodash": { - "version": "4.6.1", - "from": "lodash@>=4.6.1 <5.0.0", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.6.1.tgz" + "version": "4.8.2", + "from": "lodash@>=4.8.2 <5.0.0", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.8.2.tgz" }, "lodash-compat": { "version": "3.10.2", @@ -3792,6 +4355,11 @@ "from": "pkginfo@>=0.0.0 <1.0.0", "resolved": "https://registry.npmjs.org/pkginfo/-/pkginfo-0.4.0.tgz" }, + "pluralize": { + "version": "1.2.1", + "from": "pluralize@>=1.2.1 <2.0.0", + "resolved": "https://registry.npmjs.org/pluralize/-/pluralize-1.2.1.tgz" + }, "postcss": { "version": "5.0.19", "from": "postcss@>=5.0.19 <6.0.0", @@ -3982,6 +4550,11 @@ "from": "process-nextick-args@>=1.0.6 <1.1.0", "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.6.tgz" }, + "progress": { + "version": "1.1.8", + "from": "progress@>=1.1.8 <2.0.0", + "resolved": "https://registry.npmjs.org/progress/-/progress-1.1.8.tgz" + }, "promise": { "version": "7.1.1", "from": "promise@>=7.0.3 <8.0.0", @@ -4070,19 +4643,26 @@ } }, "react": { - "version": "0.14.7", - "from": "react@>=0.14.7 <0.15.0", - "resolved": "https://registry.npmjs.org/react/-/react-0.14.7.tgz" + "version": "0.14.8", + "from": "react@>=0.14.8 <0.15.0", + "resolved": "https://registry.npmjs.org/react/-/react-0.14.8.tgz" }, "react-addons-pure-render-mixin": { - "version": "0.14.7", - "from": "react-addons-pure-render-mixin@>=0.14.7 <0.15.0", - "resolved": "https://registry.npmjs.org/react-addons-pure-render-mixin/-/react-addons-pure-render-mixin-0.14.7.tgz" + "version": "0.14.8", + "from": "react-addons-pure-render-mixin@>=0.14.8 <0.15.0", + "resolved": "https://registry.npmjs.org/react-addons-pure-render-mixin/-/react-addons-pure-render-mixin-0.14.8.tgz" }, "react-bootstrap": { - "version": "0.28.3", - "from": "react-bootstrap@>=0.28.3 <0.29.0", - "resolved": "https://registry.npmjs.org/react-bootstrap/-/react-bootstrap-0.28.3.tgz" + "version": "0.28.5", + "from": "react-bootstrap@>=0.28.5 <0.29.0", + "resolved": "https://registry.npmjs.org/react-bootstrap/-/react-bootstrap-0.28.5.tgz", + "dependencies": { + "babel-runtime": { + "version": "5.8.38", + "from": "babel-runtime@>=5.8.25 <6.0.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-5.8.38.tgz" + } + } }, "react-deep-force-update": { "version": "1.0.1", @@ -4090,18 +4670,18 @@ "resolved": "https://registry.npmjs.org/react-deep-force-update/-/react-deep-force-update-1.0.1.tgz" }, "react-dom": { - "version": "0.14.7", - "from": "react-dom@>=0.14.7 <0.15.0", - "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-0.14.7.tgz" + "version": "0.14.8", + "from": "react-dom@>=0.14.8 <0.15.0", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-0.14.8.tgz" }, "react-on-rails": { - "version": "5.0.0-rc.1", - "from": "react-on-rails@5.0.0-rc.1" + "version": "5.1.1", + "from": "react-on-rails@>=5.1.1 <6.0.0" }, "react-overlays": { - "version": "0.6.0", + "version": "0.6.2", "from": "react-overlays@>=0.6.0 <0.7.0", - "resolved": "https://registry.npmjs.org/react-overlays/-/react-overlays-0.6.0.tgz", + "resolved": "https://registry.npmjs.org/react-overlays/-/react-overlays-0.6.2.tgz", "dependencies": { "react-prop-types": { "version": "0.2.2", @@ -4131,9 +4711,9 @@ "resolved": "https://registry.npmjs.org/react-router/-/react-router-2.0.1.tgz" }, "react-router-redux": { - "version": "4.0.0", - "from": "react-router-redux@>=4.0.0 <5.0.0", - "resolved": "https://registry.npmjs.org/react-router-redux/-/react-router-redux-4.0.0.tgz" + "version": "4.0.1", + "from": "react-router-redux@>=4.0.1 <5.0.0", + "resolved": "https://registry.npmjs.org/react-router-redux/-/react-router-redux-4.0.1.tgz" }, "read": { "version": "1.0.7", @@ -4224,14 +4804,14 @@ "resolved": "https://registry.npmjs.org/redux/-/redux-3.3.1.tgz" }, "redux-promise": { - "version": "0.5.1", - "from": "redux-promise@>=0.5.1 <0.6.0", - "resolved": "https://registry.npmjs.org/redux-promise/-/redux-promise-0.5.1.tgz" + "version": "0.5.3", + "from": "redux-promise@>=0.5.3 <0.6.0", + "resolved": "https://registry.npmjs.org/redux-promise/-/redux-promise-0.5.3.tgz" }, "redux-thunk": { - "version": "1.0.3", - "from": "redux-thunk@>=1.0.3 <2.0.0", - "resolved": "https://registry.npmjs.org/redux-thunk/-/redux-thunk-1.0.3.tgz" + "version": "2.0.1", + "from": "redux-thunk@>=2.0.1 <3.0.0", + "resolved": "https://registry.npmjs.org/redux-thunk/-/redux-thunk-2.0.1.tgz" }, "regenerate": { "version": "1.2.1", @@ -4295,6 +4875,11 @@ "from": "request@>=2.65.0 <3.0.0", "resolved": "https://registry.npmjs.org/request/-/request-2.69.0.tgz" }, + "require-uncached": { + "version": "1.0.2", + "from": "require-uncached@>=1.0.2 <2.0.0", + "resolved": "https://registry.npmjs.org/require-uncached/-/require-uncached-1.0.2.tgz" + }, "requires-port": { "version": "1.0.0", "from": "requires-port@>=1.0.0 <2.0.0", @@ -4489,6 +5074,11 @@ "from": "shebang-regex@>=1.0.0 <2.0.0", "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz" }, + "shelljs": { + "version": "0.6.0", + "from": "shelljs@>=0.6.0 <0.7.0", + "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.6.0.tgz" + }, "sigmund": { "version": "1.0.1", "from": "sigmund@>=1.0.0 <1.1.0", @@ -4701,9 +5291,9 @@ "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-1.0.4.tgz" }, "style-loader": { - "version": "0.13.0", - "from": "style-loader@>=0.13.0 <0.14.0", - "resolved": "https://registry.npmjs.org/style-loader/-/style-loader-0.13.0.tgz" + "version": "0.13.1", + "from": "style-loader@>=0.13.1 <0.14.0", + "resolved": "https://registry.npmjs.org/style-loader/-/style-loader-0.13.1.tgz" }, "supports-color": { "version": "3.1.2", @@ -4720,6 +5310,11 @@ "from": "symbol-tree@>=3.1.0 <4.0.0", "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.1.4.tgz" }, + "table": { + "version": "3.7.8", + "from": "table@>=3.7.8 <4.0.0", + "resolved": "https://registry.npmjs.org/table/-/table-3.7.8.tgz" + }, "tapable": { "version": "0.1.10", "from": "tapable@>=0.1.8 <0.2.0", @@ -4730,6 +5325,11 @@ "from": "tar@>=2.0.0 <3.0.0", "resolved": "https://registry.npmjs.org/tar/-/tar-2.2.1.tgz" }, + "text-table": { + "version": "0.2.0", + "from": "text-table@>=0.2.0 <0.3.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz" + }, "through": { "version": "2.3.8", "from": "through@>=2.3.4 <2.4.0", @@ -4838,9 +5438,9 @@ "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.4.2.tgz" }, "turbolinks": { - "version": "5.0.0-beta3", - "from": "turbolinks@5.0.0-beta3", - "resolved": "https://registry.npmjs.org/turbolinks/-/turbolinks-5.0.0-beta3.tgz" + "version": "5.0.0-beta4", + "from": "turbolinks@>=5.0.0-beta4 <6.0.0", + "resolved": "https://registry.npmjs.org/turbolinks/-/turbolinks-5.0.0-beta4.tgz" }, "tv4": { "version": "1.2.7", @@ -4925,9 +5525,9 @@ "resolved": "https://registry.npmjs.org/uid-number/-/uid-number-0.0.5.tgz" }, "uncontrollable": { - "version": "3.2.1", + "version": "3.2.3", "from": "uncontrollable@>=3.1.3 <4.0.0", - "resolved": "https://registry.npmjs.org/uncontrollable/-/uncontrollable-3.2.1.tgz" + "resolved": "https://registry.npmjs.org/uncontrollable/-/uncontrollable-3.2.3.tgz" }, "underscore": { "version": "1.6.0", diff --git a/client/package.json b/client/package.json index d90a29d7..72eac967 100644 --- a/client/package.json +++ b/client/package.json @@ -39,17 +39,18 @@ "jscs": "jscs --verbose ." }, "dependencies": { - "autoprefixer": "^6.3.3", + "autoprefixer": "^6.3.6", "axios": "^0.9.1", "babel": "^6.5.2", "babel-cli": "^6.6.5", - "babel-core": "^6.6.5", + "babel-core": "^6.7.4", "babel-loader": "^6.2.4", - "babel-polyfill": "^6.6.1", + "babel-polyfill": "^6.7.4", "babel-preset-es2015": "^6.6.0", "babel-preset-react": "^6.5.0", "babel-preset-stage-0": "^6.5.0", - "bootstrap-loader": "^1.0.9", + "babel-runtime": "^6.6.1", + "bootstrap-loader": "^1.0.10", "bootstrap-sass": "^3.3.6", "css-loader": "^0.23.1", "es5-shim": "^4.5.7", @@ -58,30 +59,30 @@ "file-loader": "^0.8.5", "immutable": "^3.7.6", "imports-loader": "^0.6.5", - "jquery": "^2.2.1", - "jquery-ujs": "^1.2.0", - "loader-utils": "^0.2.12", - "lodash": "^4.6.1", + "jquery": "^2.2.3", + "jquery-ujs": "^1.2.1", + "loader-utils": "^0.2.13", + "lodash": "^4.8.2", "marked": "^0.3.5", "node-sass": "^3.4.2", "node-uuid": "^1.4.7", - "postcss-loader": "^0.8.1", - "react": "^0.14.7", - "react-addons-pure-render-mixin": "^0.14.7", - "react-bootstrap": "^0.28.3", - "react-dom": "^0.14.7", - "react-on-rails": "^5.0.0-rc.1", - "react-redux": "^4.4.0", - "react-router": "^2.0.0", - "react-router-redux": "^4.0.0", + "postcss-loader": "^0.8.2", + "react": "^0.14.8", + "react-addons-pure-render-mixin": "^0.14.8", + "react-bootstrap": "^0.28.5", + "react-dom": "^0.14.8", + "react-on-rails": "^5.1.1", + "react-redux": "^4.4.1", + "react-router": "^2.0.1", + "react-router-redux": "^4.0.1", "redux": "^3.3.1", - "redux-promise": "^0.5.1", - "redux-thunk": "^1.0.3", + "redux-promise": "^0.5.3", + "redux-thunk": "^2.0.1", "resolve-url-loader": "^1.4.3", - "sass-loader": "^3.1.2", + "sass-loader": "^3.2.0", "sass-resources-loader": "1.0.2", - "style-loader": "^0.13.0", - "turbolinks": "^5.0.0-beta3", + "style-loader": "^0.13.1", + "turbolinks": "^5.0.0-beta4", "url-loader": "^0.5.7", "webpack": "^1.12.14" }, @@ -89,18 +90,18 @@ "babel-plugin-react-transform": "^2.0.2", "body-parser": "^1.15.0", "chai": "^3.5.0", - "chai-immutable": "^1.5.3", - "eslint": "^2.3.0", - "eslint-config-shakacode": "^3.0.0", - "eslint-plugin-react": "^4.2.0", + "chai-immutable": "^1.5.4", + "eslint": "^2.7.0", + "eslint-config-shakacode": "^4.0.0", + "eslint-plugin-react": "^4.3.0", "estraverse-fb": "^1.3.1", "express": "^4.13.4", "jade": "^1.11.0", "jscs": "^2.11.0", - "jsdom": "^8.1.0", + "jsdom": "^8.3.0", "mocha": "^2.4.5", - "react-addons-test-utils": "^0.14.7", - "react-transform-hmr": "^1.0.2", + "react-addons-test-utils": "^0.14.8", + "react-transform-hmr": "^1.0.4", "sleep": "^3.0.1", "webpack-dev-server": "^1.14.1" } From 9ee3fe0a935a391c896d1b1b2aa1a9326cae16d0 Mon Sep 17 00:00:00 2001 From: Eric Skogen Date: Fri, 8 Apr 2016 14:20:21 -0500 Subject: [PATCH 027/246] upgrade to rails 5.0.0.beta3 - ran `rails rails:update` - also updated rspec-rails to 3.5.0.beta3 for rails 5 compatibility - modified puma config --- Gemfile | 4 +- Gemfile.lock | 128 +++++++++--------- bin/rails | 5 - bin/rake | 5 - bin/setup | 29 ++-- bin/update | 29 ++++ config/application.rb | 15 +- config/boot.rb | 4 +- config/cable.yml | 10 ++ config/environment.rb | 2 +- config/environments/development.rb | 25 +++- config/environments/production.rb | 41 ++++-- config/environments/test.rb | 9 +- .../application_controller_renderer.rb | 6 + config/initializers/assets.rb | 2 +- config/initializers/cookies_serializer.rb | 2 + config/initializers/cors.rb | 16 +++ config/initializers/inflections.rb | 8 +- config/initializers/per_form_csrf_tokens.rb | 4 + .../request_forgery_protection.rb | 4 + config/initializers/wrap_parameters.rb | 4 +- config/puma.rb | 50 +++++-- config/routes.rb | 5 + 23 files changed, 270 insertions(+), 137 deletions(-) create mode 100755 bin/update create mode 100644 config/cable.yml create mode 100644 config/initializers/application_controller_renderer.rb create mode 100644 config/initializers/cors.rb create mode 100644 config/initializers/per_form_csrf_tokens.rb create mode 100644 config/initializers/request_forgery_protection.rb diff --git a/Gemfile b/Gemfile index 260ff023..a7101547 100644 --- a/Gemfile +++ b/Gemfile @@ -3,7 +3,7 @@ ruby "2.3.0" # # Bundle edge Rails instead: gem "rails", github: "rails/rails" -gem "rails", "~>4.2" +gem "rails", "5.0.0.beta3" # Note: We're using sqllite3 for development and testing gem "sqlite3", group: [:development, :test] @@ -102,7 +102,7 @@ group :test do gem "generator_spec" gem "launchy" gem "poltergeist" - gem "rspec-rails" + gem "rspec-rails", "3.5.0.beta3" gem "rspec-retry" gem "selenium-webdriver", require: !["poltergeist", "poltergeist_errors_ok", "webkit"].include?(ENV["DRIVER"]) end diff --git a/Gemfile.lock b/Gemfile.lock index 09298a1c..39782001 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -1,45 +1,47 @@ GEM remote: https://rubygems.org/ specs: - actionmailer (4.2.6) - actionpack (= 4.2.6) - actionview (= 4.2.6) - activejob (= 4.2.6) + actioncable (5.0.0.beta3) + actionpack (= 5.0.0.beta3) + nio4r (~> 1.2) + websocket-driver (~> 0.6.1) + actionmailer (5.0.0.beta3) + actionpack (= 5.0.0.beta3) + actionview (= 5.0.0.beta3) + activejob (= 5.0.0.beta3) mail (~> 2.5, >= 2.5.4) rails-dom-testing (~> 1.0, >= 1.0.5) - actionpack (4.2.6) - actionview (= 4.2.6) - activesupport (= 4.2.6) - rack (~> 1.6) - rack-test (~> 0.6.2) + actionpack (5.0.0.beta3) + actionview (= 5.0.0.beta3) + activesupport (= 5.0.0.beta3) + rack (~> 2.x) + rack-test (~> 0.6.3) rails-dom-testing (~> 1.0, >= 1.0.5) rails-html-sanitizer (~> 1.0, >= 1.0.2) - actionview (4.2.6) - activesupport (= 4.2.6) + actionview (5.0.0.beta3) + activesupport (= 5.0.0.beta3) builder (~> 3.1) erubis (~> 2.7.0) rails-dom-testing (~> 1.0, >= 1.0.5) rails-html-sanitizer (~> 1.0, >= 1.0.2) - activejob (4.2.6) - activesupport (= 4.2.6) - globalid (>= 0.3.0) - activemodel (4.2.6) - activesupport (= 4.2.6) - builder (~> 3.1) - activerecord (4.2.6) - activemodel (= 4.2.6) - activesupport (= 4.2.6) - arel (~> 6.0) - activesupport (4.2.6) + activejob (5.0.0.beta3) + activesupport (= 5.0.0.beta3) + globalid (>= 0.3.6) + activemodel (5.0.0.beta3) + activesupport (= 5.0.0.beta3) + activerecord (5.0.0.beta3) + activemodel (= 5.0.0.beta3) + activesupport (= 5.0.0.beta3) + arel (~> 7.0) + activesupport (5.0.0.beta3) + concurrent-ruby (~> 1.0) i18n (~> 0.7) - json (~> 1.7, >= 1.7.7) minitest (~> 5.1) - thread_safe (~> 0.3, >= 0.3.4) tzinfo (~> 1.1) addressable (2.4.0) archive-zip (0.7.0) io-like (~> 0.3.0) - arel (6.0.3) + arel (7.0.0) ast (2.2.0) autoprefixer-rails (6.3.6) execjs @@ -60,8 +62,8 @@ GEM bundler-audit (0.5.0) bundler (~> 1.2) thor (~> 0.18) - byebug (8.2.2) - capybara (2.6.2) + byebug (8.2.3) + capybara (2.7.0) addressable mime-types (>= 1.16) nokogiri (>= 1.3.3) @@ -71,8 +73,8 @@ GEM capybara-screenshot (1.0.12) capybara (>= 1.0, < 3) launchy - capybara-webkit (1.9.0) - capybara (>= 2.3.0, < 2.7.0) + capybara-webkit (1.10.0) + capybara (>= 2.3.0, < 2.8.0) json childprocess (0.5.9) ffi (~> 1.0, >= 1.0.11) @@ -139,6 +141,7 @@ GEM mini_portile2 (2.0.0) minitest (5.8.4) multi_json (1.11.2) + nio4r (1.2.1) nokogiri (1.6.7.2) mini_portile2 (~> 2.0.0.rc2) parser (2.3.0.7) @@ -168,21 +171,23 @@ GEM pry-stack_explorer (0.4.9.2) binding_of_caller (>= 0.7) pry (>= 0.9.11) - puma (3.3.0) - rack (1.6.4) + puma (3.4.0) + rack (2.0.0.alpha) + json rack-test (0.6.3) rack (>= 1.0) - rails (4.2.6) - actionmailer (= 4.2.6) - actionpack (= 4.2.6) - actionview (= 4.2.6) - activejob (= 4.2.6) - activemodel (= 4.2.6) - activerecord (= 4.2.6) - activesupport (= 4.2.6) + rails (5.0.0.beta3) + actioncable (= 5.0.0.beta3) + actionmailer (= 5.0.0.beta3) + actionpack (= 5.0.0.beta3) + actionview (= 5.0.0.beta3) + activejob (= 5.0.0.beta3) + activemodel (= 5.0.0.beta3) + activerecord (= 5.0.0.beta3) + activesupport (= 5.0.0.beta3) bundler (>= 1.3.0, < 2.0) - railties (= 4.2.6) - sprockets-rails + railties (= 5.0.0.beta3) + sprockets-rails (>= 2.0.0) rails-deprecated_sanitizer (1.0.3) activesupport (>= 4.2.0.alpha) rails-dom-testing (1.0.7) @@ -196,9 +201,10 @@ GEM rails_stdout_logging rails_serve_static_assets (0.0.5) rails_stdout_logging (0.0.5) - railties (4.2.6) - actionpack (= 4.2.6) - activesupport (= 4.2.6) + railties (5.0.0.beta3) + actionpack (= 5.0.0.beta3) + activesupport (= 5.0.0.beta3) + method_source rake (>= 0.8.7) thor (>= 0.18.1, < 2.0) rainbow (2.1.0) @@ -212,25 +218,25 @@ GEM rails (>= 3.2) rainbow (~> 2.1) ref (2.0.0) - rspec-core (3.4.4) - rspec-support (~> 3.4.0) - rspec-expectations (3.4.0) + rspec-core (3.5.0.beta3) + rspec-support (= 3.5.0.beta3) + rspec-expectations (3.5.0.beta3) diff-lcs (>= 1.2.0, < 2.0) - rspec-support (~> 3.4.0) - rspec-mocks (3.4.1) + rspec-support (= 3.5.0.beta3) + rspec-mocks (3.5.0.beta3) diff-lcs (>= 1.2.0, < 2.0) - rspec-support (~> 3.4.0) - rspec-rails (3.4.2) - actionpack (>= 3.0, < 4.3) - activesupport (>= 3.0, < 4.3) - railties (>= 3.0, < 4.3) - rspec-core (~> 3.4.0) - rspec-expectations (~> 3.4.0) - rspec-mocks (~> 3.4.0) - rspec-support (~> 3.4.0) + rspec-support (= 3.5.0.beta3) + rspec-rails (3.5.0.beta3) + actionpack (>= 3.0) + activesupport (>= 3.0) + railties (>= 3.0) + rspec-core (= 3.5.0.beta3) + rspec-expectations (= 3.5.0.beta3) + rspec-mocks (= 3.5.0.beta3) + rspec-support (= 3.5.0.beta3) rspec-retry (0.4.5) rspec-core - rspec-support (3.4.1) + rspec-support (3.5.0.beta3) rubocop (0.39.0) parser (>= 2.3.0.7, < 3.0) powerpack (~> 0.1) @@ -343,12 +349,12 @@ DEPENDENCIES pry-rescue pry-stack_explorer puma - rails (~> 4.2) + rails (= 5.0.0.beta3) rails-html-sanitizer rails_12factor rainbow react_on_rails (~> 5.1.1) - rspec-rails + rspec-rails (= 3.5.0.beta3) rspec-retry rubocop ruby-lint diff --git a/bin/rails b/bin/rails index 0138d79b..5191e692 100755 --- a/bin/rails +++ b/bin/rails @@ -1,9 +1,4 @@ #!/usr/bin/env ruby -begin - load File.expand_path('../spring', __FILE__) -rescue LoadError => e - raise unless e.message.include?('spring') -end APP_PATH = File.expand_path('../../config/application', __FILE__) require_relative '../config/boot' require 'rails/commands' diff --git a/bin/rake b/bin/rake index d87d5f57..17240489 100755 --- a/bin/rake +++ b/bin/rake @@ -1,9 +1,4 @@ #!/usr/bin/env ruby -begin - load File.expand_path('../spring', __FILE__) -rescue LoadError => e - raise unless e.message.include?('spring') -end require_relative '../config/boot' require 'rake' Rake.application.run diff --git a/bin/setup b/bin/setup index acdb2c13..589bee82 100755 --- a/bin/setup +++ b/bin/setup @@ -1,29 +1,34 @@ #!/usr/bin/env ruby require 'pathname' +require 'fileutils' +include FileUtils # path to your application root. -APP_ROOT = Pathname.new File.expand_path('../../', __FILE__) +APP_ROOT = Pathname.new File.expand_path('../../', __FILE__) -Dir.chdir APP_ROOT do +def system!(*args) + system(*args) || abort("\n== Command #{args} failed ==") +end + +chdir APP_ROOT do # This script is a starting point to setup your application. - # Add necessary setup steps to this file: + # Add necessary setup steps to this file. - puts "== Installing dependencies ==" - system "gem install bundler --conservative" - system "bundle check || bundle install" + puts '== Installing dependencies ==' + system! 'gem install bundler --conservative' + system('bundle check') or system!('bundle install') # puts "\n== Copying sample files ==" - # unless File.exist?("config/database.yml") - # system "cp config/database.yml.sample config/database.yml" + # unless File.exist?('config/database.yml') + # cp 'config/database.yml.sample', 'config/database.yml' # end puts "\n== Preparing database ==" - system "bin/rake db:setup" + system! 'bin/rails db:setup' puts "\n== Removing old logs and tempfiles ==" - system "rm -f log/*" - system "rm -rf tmp/cache" + system! 'bin/rails log:clear tmp:clear' puts "\n== Restarting application server ==" - system "touch tmp/restart.txt" + system! 'bin/rails restart' end diff --git a/bin/update b/bin/update new file mode 100755 index 00000000..98519237 --- /dev/null +++ b/bin/update @@ -0,0 +1,29 @@ +#!/usr/bin/env ruby +require 'pathname' +require 'fileutils' +include FileUtils + +# path to your application root. +APP_ROOT = Pathname.new File.expand_path('../../', __FILE__) + +def system!(*args) + system(*args) || abort("\n== Command #{args} failed ==") +end + +chdir APP_ROOT do + # This script is a way to update your development environment automatically. + # Add necessary update steps to this file. + + puts '== Installing dependencies ==' + system! 'gem install bundler --conservative' + system 'bundle check' or system! 'bundle install' + + puts "\n== Updating database ==" + system! 'bin/rails db:migrate' + + puts "\n== Removing old logs and tempfiles ==" + system! 'bin/rails log:clear tmp:clear' + + puts "\n== Restarting application server ==" + system! 'bin/rails restart' +end diff --git a/config/application.rb b/config/application.rb index 4638d1ab..a37b6f33 100644 --- a/config/application.rb +++ b/config/application.rb @@ -1,6 +1,6 @@ -require File.expand_path("../boot", __FILE__) +require File.expand_path('../boot', __FILE__) -require "rails/all" +require 'rails/all' # Require the gems listed in Gemfile, including any gems # you've limited to :test, :development, or :production. @@ -11,16 +11,5 @@ class Application < Rails::Application # Settings in config/environments/* take precedence over those specified here. # Application configuration should go into files in config/initializers # -- all .rb files in that directory are automatically loaded. - - # Set Time.zone default to the specified zone and make Active Record auto-convert to this zone. - # Run "rake -D time" for a list of tasks for finding time zone names. Default is UTC. - # config.time_zone = "Central Time (US & Canada)" - - # The default locale is :en and all translations from config/locales/*.rb,yml are auto loaded. - # config.i18n.load_path += Dir[Rails.root.join("my", "locales", "*.{rb,yml}").to_s] - # config.i18n.default_locale = :de - - # For not swallow errors in after_commit/after_rollback callbacks. - config.active_record.raise_in_transactional_callbacks = true end end diff --git a/config/boot.rb b/config/boot.rb index fb24cf2e..6b750f00 100644 --- a/config/boot.rb +++ b/config/boot.rb @@ -1,3 +1,3 @@ -ENV["BUNDLE_GEMFILE"] ||= File.expand_path("../../Gemfile", __FILE__) +ENV['BUNDLE_GEMFILE'] ||= File.expand_path('../../Gemfile', __FILE__) -require "bundler/setup" # Set up gems listed in the Gemfile. +require 'bundler/setup' # Set up gems listed in the Gemfile. diff --git a/config/cable.yml b/config/cable.yml new file mode 100644 index 00000000..aa4e8327 --- /dev/null +++ b/config/cable.yml @@ -0,0 +1,10 @@ +# Action Cable uses Redis by default to administer connections, channels, and sending/receiving messages over the WebSocket. +production: + adapter: redis + url: redis://localhost:6379/1 + +development: + adapter: async + +test: + adapter: async diff --git a/config/environment.rb b/config/environment.rb index 17119856..ee8d90dc 100644 --- a/config/environment.rb +++ b/config/environment.rb @@ -1,5 +1,5 @@ # Load the Rails application. -require File.expand_path("../application", __FILE__) +require File.expand_path('../application', __FILE__) # Initialize the Rails application. Rails.application.initialize! diff --git a/config/environments/development.rb b/config/environments/development.rb index 8b0e6d8c..0db07e7b 100644 --- a/config/environments/development.rb +++ b/config/environments/development.rb @@ -9,9 +9,26 @@ # Do not eager load code on boot. config.eager_load = false - # Show full error reports and disable caching. + # Show full error reports. config.consider_all_requests_local = true - config.action_controller.perform_caching = false + + # Enable/disable caching. By default caching is disabled. + if Rails.root.join('tmp/caching-dev.txt').exist? + config.action_controller.perform_caching = true + + config.action_mailer.perform_caching = false + + config.cache_store = :memory_store + config.public_file_server.headers = { + 'Cache-Control' => 'public, max-age=172800' + } + else + config.action_controller.perform_caching = false + + config.action_mailer.perform_caching = false + + config.cache_store = :null_store + end # Don't care if the mailer can't send. config.action_mailer.raise_delivery_errors = false @@ -38,4 +55,8 @@ # Raises error for missing translations # config.action_view.raise_on_missing_translations = true + + # Use an evented file watcher to asynchronously detect changes in source code, + # routes, locales, etc. This feature depends on the listen gem. + config.file_watcher = ActiveSupport::EventedFileUpdateChecker end diff --git a/config/environments/production.rb b/config/environments/production.rb index 5f48f9b9..087b93b7 100644 --- a/config/environments/production.rb +++ b/config/environments/production.rb @@ -11,16 +11,12 @@ config.eager_load = true # Full error reports are disabled and caching is turned on. - config.consider_all_requests_local = false + config.consider_all_requests_local = false config.action_controller.perform_caching = true - # Enable Rack::Cache to put a simple HTTP cache in front of your application - # Add `rack-cache` to your Gemfile before enabling this. - # For large-scale production use, consider using a caching reverse proxy like NGINX, varnish or squid. - # config.action_dispatch.rack_cache = true - - # Disable Rails's static asset server (Apache or NGINX will already do this). - config.serve_static_files = false + # Disable serving static files from the `/public` folder by default since + # Apache or NGINX already handles this. + config.public_file_server.enabled = ENV['RAILS_SERVE_STATIC_FILES'].present? # Compress JavaScripts and CSS. config.assets.js_compressor = :uglifier @@ -35,27 +31,42 @@ # `config.assets.precompile` and `config.assets.version` have moved to config/initializers/assets.rb + # Enable serving of images, stylesheets, and JavaScripts from an asset server. + # config.action_controller.asset_host = 'http://assets.example.com' + # Specifies the header that your server uses for sending files. - # config.action_dispatch.x_sendfile_header = "X-Sendfile" # for Apache - # config.action_dispatch.x_sendfile_header = "X-Accel-Redirect" # for NGINX + # config.action_dispatch.x_sendfile_header = 'X-Sendfile' # for Apache + # config.action_dispatch.x_sendfile_header = 'X-Accel-Redirect' # for NGINX + + # Action Cable endpoint configuration + # config.action_cable.url = 'wss://example.com/cable' + # config.action_cable.allowed_request_origins = [ 'http://example.com', /https:\/\/fanyv88.com:443\/http\/example.*/ ] # Force all access to the app over SSL, use Strict-Transport-Security, and use secure cookies. # config.force_ssl = true - # Set to :info to decrease the log volume. + # Use the lowest log level to ensure availability of diagnostic information + # when problems arise. config.log_level = :debug # Prepend all log lines with the following tags. - # config.log_tags = [ :subdomain, :uuid ] + config.log_tags = [ :request_id ] # Use a different logger for distributed setups. - # config.logger = ActiveSupport::TaggedLogging.new(SyslogLogger.new) + # require 'syslog/logger' + # config.logger = ActiveSupport::TaggedLogging.new(Syslog::Logger.new 'app-name') + + if ENV["RAILS_LOG_TO_STDOUT"].present? + config.logger = ActiveSupport::TaggedLogging.new(Logger.new(STDOUT)) + end # Use a different cache store in production. # config.cache_store = :mem_cache_store - # Enable serving of images, stylesheets, and JavaScripts from an asset server. - # config.action_controller.asset_host = "http://assets.example.com" + # Use a real queuing backend for Active Job (and separate queues per environment) + # config.active_job.queue_adapter = :resque + # config.active_job.queue_name_prefix = "rails_react_tutorial_#{Rails.env}" + config.action_mailer.perform_caching = false # Ignore bad email addresses and do not raise email delivery errors. # Set this to true and configure the email server for immediate delivery to raise delivery errors. diff --git a/config/environments/test.rb b/config/environments/test.rb index 5b8ff8ce..30587ef6 100644 --- a/config/environments/test.rb +++ b/config/environments/test.rb @@ -12,9 +12,11 @@ # preloads Rails for running tests, you may have to set it to true. config.eager_load = false - # Configure static asset server for tests with Cache-Control for performance. - config.serve_static_files = true - config.static_cache_control = "public, max-age=3600" + # Configure public file server for tests with Cache-Control for performance. + config.public_file_server.enabled = true + config.public_file_server.headers = { + 'Cache-Control' => 'public, max-age=3600' + } # Show full error reports and disable caching. config.consider_all_requests_local = true @@ -25,6 +27,7 @@ # Disable request forgery protection in test environment. config.action_controller.allow_forgery_protection = false + config.action_mailer.perform_caching = false # Tell Action Mailer not to deliver emails to the real world. # The :test delivery method accumulates sent emails in the diff --git a/config/initializers/application_controller_renderer.rb b/config/initializers/application_controller_renderer.rb new file mode 100644 index 00000000..51639b67 --- /dev/null +++ b/config/initializers/application_controller_renderer.rb @@ -0,0 +1,6 @@ +# Be sure to restart your server when you modify this file. + +# ApplicationController.renderer.defaults.merge!( +# http_host: 'example.org', +# https: false +# ) diff --git a/config/initializers/assets.rb b/config/initializers/assets.rb index acd1182d..baf4789d 100644 --- a/config/initializers/assets.rb +++ b/config/initializers/assets.rb @@ -1,7 +1,7 @@ # Be sure to restart your server when you modify this file. # Version of your assets, change this if you want to expire all your assets. -Rails.application.config.assets.version = "1.0" +Rails.application.config.assets.version = '1.0' # Add folder with webpack generated assets to assets.paths Rails.application.config.assets.paths << Rails.root.join("app", "assets", "webpack") diff --git a/config/initializers/cookies_serializer.rb b/config/initializers/cookies_serializer.rb index 7f70458d..5a6a32d3 100644 --- a/config/initializers/cookies_serializer.rb +++ b/config/initializers/cookies_serializer.rb @@ -1,3 +1,5 @@ # Be sure to restart your server when you modify this file. +# Specify a serializer for the signed and encrypted cookie jars. +# Valid options are :json, :marshal, and :hybrid. Rails.application.config.action_dispatch.cookies_serializer = :json diff --git a/config/initializers/cors.rb b/config/initializers/cors.rb new file mode 100644 index 00000000..3b1c1b5e --- /dev/null +++ b/config/initializers/cors.rb @@ -0,0 +1,16 @@ +# Be sure to restart your server when you modify this file. + +# Avoid CORS issues when API is called from the frontend app. +# Handle Cross-Origin Resource Sharing (CORS) in order to accept cross-origin AJAX requests. + +# Read more: https://github.com/cyu/rack-cors + +# Rails.application.config.middleware.insert_before 0, Rack::Cors do +# allow do +# origins 'example.com' +# +# resource '*', +# headers: :any, +# methods: [:get, :post, :put, :patch, :delete, :options, :head] +# end +# end diff --git a/config/initializers/inflections.rb b/config/initializers/inflections.rb index ceb4902f..ac033bf9 100644 --- a/config/initializers/inflections.rb +++ b/config/initializers/inflections.rb @@ -4,13 +4,13 @@ # are locale specific, and you may define rules for as many different # locales as you wish. All of these examples are active by default: # ActiveSupport::Inflector.inflections(:en) do |inflect| -# inflect.plural /^(ox)$/i, "\1en" -# inflect.singular /^(ox)en/i, "\1" -# inflect.irregular "person", "people" +# inflect.plural /^(ox)$/i, '\1en' +# inflect.singular /^(ox)en/i, '\1' +# inflect.irregular 'person', 'people' # inflect.uncountable %w( fish sheep ) # end # These inflection rules are supported but not enabled by default: # ActiveSupport::Inflector.inflections(:en) do |inflect| -# inflect.acronym "RESTful" +# inflect.acronym 'RESTful' # end diff --git a/config/initializers/per_form_csrf_tokens.rb b/config/initializers/per_form_csrf_tokens.rb new file mode 100644 index 00000000..1f569ded --- /dev/null +++ b/config/initializers/per_form_csrf_tokens.rb @@ -0,0 +1,4 @@ +# Be sure to restart your server when you modify this file. + +# Enable per-form CSRF tokens. +Rails.application.config.action_controller.per_form_csrf_tokens = true diff --git a/config/initializers/request_forgery_protection.rb b/config/initializers/request_forgery_protection.rb new file mode 100644 index 00000000..3eab78a8 --- /dev/null +++ b/config/initializers/request_forgery_protection.rb @@ -0,0 +1,4 @@ +# Be sure to restart your server when you modify this file. + +# Enable origin-checking CSRF mitigation. +Rails.application.config.action_controller.forgery_protection_origin_check = true diff --git a/config/initializers/wrap_parameters.rb b/config/initializers/wrap_parameters.rb index 33725e95..bbfc3961 100644 --- a/config/initializers/wrap_parameters.rb +++ b/config/initializers/wrap_parameters.rb @@ -5,10 +5,10 @@ # Enable parameter wrapping for JSON. You can disable this by setting :format to an empty array. ActiveSupport.on_load(:action_controller) do - wrap_parameters format: [:json] if respond_to?(:wrap_parameters) + wrap_parameters format: [:json] end # To enable root element in JSON for ActiveRecord objects. # ActiveSupport.on_load(:active_record) do -# self.include_root_in_json = true +# self.include_root_in_json = true # end diff --git a/config/puma.rb b/config/puma.rb index c4b72c07..fa11fb8f 100644 --- a/config/puma.rb +++ b/config/puma.rb @@ -1,15 +1,47 @@ -workers Integer(ENV["WEB_CONCURRENCY"] || 2) -threads_count = Integer(ENV["MAX_THREADS"] || 5) +# Puma can serve each request in a thread from an internal thread pool. +# The `threads` method setting takes two numbers a minimum and maximum. +# Any libraries that use thread pools should be configured to match +# the maximum value specified for Puma. Default is set to 5 threads for minimum +# and maximum, this matches the default thread size of Active Record. +# +threads_count = ENV.fetch("RAILS_MAX_THREADS") { 5 }.to_i threads threads_count, threads_count -preload_app! +# Specifies the `port` that Puma will listen on to receive requests, default is 3000. +# +port ENV.fetch("PORT") { 3000 } + +# Specifies the `environment` that Puma will run in. +# +environment ENV.fetch("RAILS_ENV") { "development" } -rackup DefaultRackup -port ENV["PORT"] || 3000 -environment ENV["RACK_ENV"] || "development" +# Specifies the number of `workers` to boot in clustered mode. +# Workers are forked webserver processes. If using threads and workers together +# the concurrency of the application would be max `threads` * `workers`. +# Workers do not work on JRuby or Windows (both of which do not support +# processes). +# +workers ENV.fetch("WEB_CONCURRENCY") { 2 } +# Use the `preload_app!` method when specifying a `workers` number. +# This directive tells Puma to first boot the application and load code +# before forking the application. This takes advantage of Copy On Write +# process behavior so workers use less memory. If you use this option +# you need to make sure to reconnect any threads in the `on_worker_boot` +# block. +# +preload_app! + +# The code in the `on_worker_boot` will be called if you are using +# clustered mode by specifying a number of `workers`. After each worker +# process is booted this block will be run, if you are using `preload_app!` +# option you will want to use this block to reconnect to any threads +# or connections that may have been created at application boot, Ruby +# cannot share connections between processes. +# on_worker_boot do - # Worker specific setup for Rails 4.1+ - # See: https://devcenter.heroku.com/articles/deploying-rails-applications-with-the-puma-web-server#on-worker-boot - ActiveRecord::Base.establish_connection + ActiveRecord::Base.establish_connection if defined?(ActiveRecord) end + +# Allow puma to be restarted by `rails restart` command. +plugin :tmp_restart diff --git a/config/routes.rb b/config/routes.rb index d23f5d39..1ceda447 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -1,4 +1,9 @@ Rails.application.routes.draw do + # For details on the DSL available within this file, see http://guides.rubyonrails.org/routing.html + + # Serve websocket cable requests in-process + # mount ActionCable.server => '/cable' + root "pages#index" get "simple", to: "pages#simple" From 0cf18d8218043038cac33e68e69f23ac5d0ca373 Mon Sep 17 00:00:00 2001 From: Eric Skogen Date: Fri, 8 Apr 2016 14:51:19 -0500 Subject: [PATCH 028/246] Ask Travis to use a newer version of SQLite Fixes ActiveRecord::StatementInvalid: SQLite3::SQLException: near ",": syntax error: INSERT INTO "schema_migrations" see: https://github.com/rails/rails/issues/24288 --- .travis.yml | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/.travis.yml b/.travis.yml index e1336672..2d3328f9 100644 --- a/.travis.yml +++ b/.travis.yml @@ -6,9 +6,11 @@ sudo: false addons: apt: sources: - ubuntu-toolchain-r-test + - ubuntu-toolchain-r-test + - travis-ci/sqlite3 packages: - g++-4.9 + - g++-4.9 + - sqlite3 env: global: - RAILS_ENV=test From a5af8e2a17780b589d10a8cebe99f7853fd17fba Mon Sep 17 00:00:00 2001 From: Eric Skogen Date: Fri, 8 Apr 2016 18:51:12 -0500 Subject: [PATCH 029/246] fix a few code style offenses per rubocop --- config/application.rb | 4 ++-- config/boot.rb | 4 ++-- config/environment.rb | 2 +- config/environments/development.rb | 4 ++-- config/environments/production.rb | 4 ++-- config/environments/test.rb | 2 +- config/initializers/assets.rb | 2 +- 7 files changed, 11 insertions(+), 11 deletions(-) diff --git a/config/application.rb b/config/application.rb index a37b6f33..57d8053f 100644 --- a/config/application.rb +++ b/config/application.rb @@ -1,6 +1,6 @@ -require File.expand_path('../boot', __FILE__) +require File.expand_path("../boot", __FILE__) -require 'rails/all' +require "rails/all" # Require the gems listed in Gemfile, including any gems # you've limited to :test, :development, or :production. diff --git a/config/boot.rb b/config/boot.rb index 6b750f00..fb24cf2e 100644 --- a/config/boot.rb +++ b/config/boot.rb @@ -1,3 +1,3 @@ -ENV['BUNDLE_GEMFILE'] ||= File.expand_path('../../Gemfile', __FILE__) +ENV["BUNDLE_GEMFILE"] ||= File.expand_path("../../Gemfile", __FILE__) -require 'bundler/setup' # Set up gems listed in the Gemfile. +require "bundler/setup" # Set up gems listed in the Gemfile. diff --git a/config/environment.rb b/config/environment.rb index ee8d90dc..17119856 100644 --- a/config/environment.rb +++ b/config/environment.rb @@ -1,5 +1,5 @@ # Load the Rails application. -require File.expand_path('../application', __FILE__) +require File.expand_path("../application", __FILE__) # Initialize the Rails application. Rails.application.initialize! diff --git a/config/environments/development.rb b/config/environments/development.rb index 0db07e7b..09d7964f 100644 --- a/config/environments/development.rb +++ b/config/environments/development.rb @@ -13,14 +13,14 @@ config.consider_all_requests_local = true # Enable/disable caching. By default caching is disabled. - if Rails.root.join('tmp/caching-dev.txt').exist? + if Rails.root.join("tmp/caching-dev.txt").exist? config.action_controller.perform_caching = true config.action_mailer.perform_caching = false config.cache_store = :memory_store config.public_file_server.headers = { - 'Cache-Control' => 'public, max-age=172800' + "Cache-Control" => "public, max-age=172800" } else config.action_controller.perform_caching = false diff --git a/config/environments/production.rb b/config/environments/production.rb index 087b93b7..c61b82cc 100644 --- a/config/environments/production.rb +++ b/config/environments/production.rb @@ -16,7 +16,7 @@ # Disable serving static files from the `/public` folder by default since # Apache or NGINX already handles this. - config.public_file_server.enabled = ENV['RAILS_SERVE_STATIC_FILES'].present? + config.public_file_server.enabled = ENV["RAILS_SERVE_STATIC_FILES"].present? # Compress JavaScripts and CSS. config.assets.js_compressor = :uglifier @@ -50,7 +50,7 @@ config.log_level = :debug # Prepend all log lines with the following tags. - config.log_tags = [ :request_id ] + config.log_tags = [:request_id] # Use a different logger for distributed setups. # require 'syslog/logger' diff --git a/config/environments/test.rb b/config/environments/test.rb index 30587ef6..a3a92fb8 100644 --- a/config/environments/test.rb +++ b/config/environments/test.rb @@ -15,7 +15,7 @@ # Configure public file server for tests with Cache-Control for performance. config.public_file_server.enabled = true config.public_file_server.headers = { - 'Cache-Control' => 'public, max-age=3600' + "Cache-Control" => "public, max-age=3600" } # Show full error reports and disable caching. diff --git a/config/initializers/assets.rb b/config/initializers/assets.rb index baf4789d..acd1182d 100644 --- a/config/initializers/assets.rb +++ b/config/initializers/assets.rb @@ -1,7 +1,7 @@ # Be sure to restart your server when you modify this file. # Version of your assets, change this if you want to expire all your assets. -Rails.application.config.assets.version = '1.0' +Rails.application.config.assets.version = "1.0" # Add folder with webpack generated assets to assets.paths Rails.application.config.assets.paths << Rails.root.join("app", "assets", "webpack") From 575fd0088537b931c81de0c6cdf2bbf2bf7d1826 Mon Sep 17 00:00:00 2001 From: Eric Skogen Date: Fri, 8 Apr 2016 19:12:24 -0500 Subject: [PATCH 030/246] update README to reference Rails 5 --- README.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index becf94c1..bfaf148f 100644 --- a/README.md +++ b/README.md @@ -41,7 +41,7 @@ In no particular order: - Example of using the [react_on_rails gem](https://github.com/shakacode/react_on_rails) for easy react/webpack integration with Rails. - Example of React with [CSS Modules](http://glenmaddern.com/articles/css-modules) inside of Rails using Webpack as described in [Smarter CSS builds with Webpack](http://bensmithett.com/smarter-css-builds-with-webpack/). - Example of enabling hot reloading of both JS and CSS (modules) from your Rails app in development mode. Change your code. Save. Browser updates without a refresh! -- Example of Rails 4.2 with ReactJs/Redux/React-Router with Webpack and ES7. +- Example of Rails 5 with ReactJs/Redux/React-Router with Webpack and ES7. - Enabling development of a JS client independently from Rails using the [Webpack Dev Server](https://webpack.github.io/docs/webpack-dev-server.html). You can see this by starting the app and visiting http://localhost:4000 - Enabling the use of npm modules and [Babel](https://babeljs.io/) with a Rails application using [Webpack](https://webpack.github.io/). - Easily enable retrofitting such a JS framework into an existing Rails app. You don't need a brand new single page app! @@ -60,8 +60,8 @@ See package.json and Gemfile for versions 1. [react-router-redux](https://github.com/reactjs/react-router-redux) 1. [Webpack with hot-reload](https://github.com/webpack/docs/wiki/hot-module-replacement-with-webpack) (for local dev) 1. [Babel transpiler](https://github.com/babel/babel) -1. [Ruby on Rails 4.2](http://rubyonrails.org/) for backend app and comparision with plain HTML -1. [Heroku for Rails 4.2 deployment](https://devcenter.heroku.com/articles/getting-started-with-rails4) +1. [Ruby on Rails 5](http://rubyonrails.org/) for backend app and comparison with plain HTML +1. [Heroku for Rails 5 deployment](https://devcenter.heroku.com/articles/getting-started-with-rails5) 1. [Turbolinks 5](https://github.com/turbolinks/turbolinks) # Basic Setup From ff36d1a1a534399c0d7e3f8d3721ffa4a7807a9f Mon Sep 17 00:00:00 2001 From: Justin Gordon Date: Sun, 10 Apr 2016 14:20:32 -1000 Subject: [PATCH 031/246] Need listen gem for Rails 5 --- Gemfile | 1 + Gemfile.lock | 7 +++++++ 2 files changed, 8 insertions(+) diff --git a/Gemfile b/Gemfile index a7101547..dd464e45 100644 --- a/Gemfile +++ b/Gemfile @@ -4,6 +4,7 @@ ruby "2.3.0" # # Bundle edge Rails instead: gem "rails", github: "rails/rails" gem "rails", "5.0.0.beta3" +gem "listen" # Note: We're using sqllite3 for development and testing gem "sqlite3", group: [:development, :test] diff --git a/Gemfile.lock b/Gemfile.lock index 39782001..6347e00e 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -130,6 +130,9 @@ GEM launchy (2.4.3) addressable (~> 2.3) libv8 (3.16.14.13) + listen (3.0.6) + rb-fsevent (>= 0.9.3) + rb-inotify (>= 0.9.7) loofah (2.0.3) nokogiri (>= 1.5.9) mail (2.6.4) @@ -209,6 +212,9 @@ GEM thor (>= 0.18.1, < 2.0) rainbow (2.1.0) rake (10.5.0) + rb-fsevent (0.9.7) + rb-inotify (0.9.7) + ffi (>= 0.5.0) rdoc (4.2.2) json (~> 1.4) react_on_rails (5.1.1) @@ -340,6 +346,7 @@ DEPENDENCIES generator_spec jbuilder launchy + listen pg poltergeist pry From 703cbdc0d3e938ff8d957cb5bac2c3476402f386 Mon Sep 17 00:00:00 2001 From: Aaron Van Bokhoven Date: Thu, 14 Apr 2016 11:36:52 -1000 Subject: [PATCH 032/246] Fix mispelling --- client/app/bundles/comments/reducers/index.js | 2 +- client/app/bundles/comments/store/commentsStore.js | 4 ++-- client/app/bundles/comments/store/routerCommentsStore.js | 4 ++-- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/client/app/bundles/comments/reducers/index.js b/client/app/bundles/comments/reducers/index.js index 028795b5..406d0ff1 100644 --- a/client/app/bundles/comments/reducers/index.js +++ b/client/app/bundles/comments/reducers/index.js @@ -5,6 +5,6 @@ export default { $$commentsStore: commentsReducer, }; -export const initalStates = { +export const initialStates = { $$commentsState, }; diff --git a/client/app/bundles/comments/store/commentsStore.js b/client/app/bundles/comments/store/commentsStore.js index a28ba887..b124621f 100644 --- a/client/app/bundles/comments/store/commentsStore.js +++ b/client/app/bundles/comments/store/commentsStore.js @@ -2,11 +2,11 @@ import { compose, createStore, applyMiddleware, combineReducers } from 'redux'; import thunkMiddleware from 'redux-thunk'; import loggerMiddleware from 'libs/middlewares/loggerMiddleware'; import reducers from '../reducers'; -import { initalStates } from '../reducers'; +import { initialStates } from '../reducers'; export default props => { const initialComments = props.comments; - const { $$commentsState } = initalStates; + const { $$commentsState } = initialStates; const initialState = { $$commentsStore: $$commentsState.merge({ $$comments: initialComments, diff --git a/client/app/bundles/comments/store/routerCommentsStore.js b/client/app/bundles/comments/store/routerCommentsStore.js index e290864a..8e3f8238 100644 --- a/client/app/bundles/comments/store/routerCommentsStore.js +++ b/client/app/bundles/comments/store/routerCommentsStore.js @@ -3,11 +3,11 @@ import thunkMiddleware from 'redux-thunk'; import loggerMiddleware from 'libs/middlewares/loggerMiddleware'; import reducers from '../reducers'; import { routerReducer } from 'react-router-redux'; -import { initalStates } from '../reducers'; +import { initialStates } from '../reducers'; export default props => { const initialComments = props.comments; - const { $$commentsState } = initalStates; + const { $$commentsState } = initialStates; const initialState = { $$commentsStore: $$commentsState.merge({ $$comments: initialComments, From ff36890cee1175142988622caba9be1241f5e84f Mon Sep 17 00:00:00 2001 From: Bruce Krysiak Date: Wed, 13 Apr 2016 23:37:19 -0700 Subject: [PATCH 033/246] updating deps, also putting capybara screenshots somewhere sane --- Gemfile.lock | 12 ++++++------ client/{index.jade => index.pug} | 0 client/package.json | 27 ++++++++++++++------------- client/server-express.js | 6 +++--- spec/rails_helper.rb | 1 + 5 files changed, 24 insertions(+), 22 deletions(-) rename client/{index.jade => index.pug} (100%) diff --git a/Gemfile.lock b/Gemfile.lock index 6347e00e..79fceb4f 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -62,7 +62,7 @@ GEM bundler-audit (0.5.0) bundler (~> 1.2) thor (~> 0.18) - byebug (8.2.3) + byebug (8.2.4) capybara (2.7.0) addressable mime-types (>= 1.16) @@ -73,7 +73,7 @@ GEM capybara-screenshot (1.0.12) capybara (>= 1.0, < 3) launchy - capybara-webkit (1.10.0) + capybara-webkit (1.10.1) capybara (>= 2.3.0, < 2.8.0) json childprocess (0.5.9) @@ -104,10 +104,10 @@ GEM docile (1.1.5) erubis (2.7.0) execjs (2.6.0) - factory_girl (4.5.0) + factory_girl (4.7.0) activesupport (>= 3.0.0) - factory_girl_rails (4.6.0) - factory_girl (~> 4.5.0) + factory_girl_rails (4.7.0) + factory_girl (~> 4.7.0) railties (>= 3.0.0) ffi (1.9.10) foreman (0.78.0) @@ -287,7 +287,7 @@ GEM temple (~> 0.7.3) tilt (>= 1.3.3, < 2.1) slop (3.6.0) - spring (1.6.4) + spring (1.7.1) spring-commands-rspec (1.0.4) spring (>= 0.9.1) sprockets (3.6.0) diff --git a/client/index.jade b/client/index.pug similarity index 100% rename from client/index.jade rename to client/index.pug diff --git a/client/package.json b/client/package.json index 72eac967..413735e4 100644 --- a/client/package.json +++ b/client/package.json @@ -42,9 +42,10 @@ "autoprefixer": "^6.3.6", "axios": "^0.9.1", "babel": "^6.5.2", - "babel-cli": "^6.6.5", - "babel-core": "^6.7.4", + "babel-cli": "^6.7.5", + "babel-core": "^6.7.6", "babel-loader": "^6.2.4", + "babel-plugin-transform-es2015-modules-amd": "^6.6.5", "babel-polyfill": "^6.7.4", "babel-preset-es2015": "^6.6.0", "babel-preset-react": "^6.5.0", @@ -53,7 +54,7 @@ "bootstrap-loader": "^1.0.10", "bootstrap-sass": "^3.3.6", "css-loader": "^0.23.1", - "es5-shim": "^4.5.7", + "es5-shim": "^4.5.8", "expose-loader": "^0.7.1", "extract-text-webpack-plugin": "^1.0.1", "file-loader": "^0.8.5", @@ -61,8 +62,8 @@ "imports-loader": "^0.6.5", "jquery": "^2.2.3", "jquery-ujs": "^1.2.1", - "loader-utils": "^0.2.13", - "lodash": "^4.8.2", + "loader-utils": "^0.2.14", + "lodash": "^4.11.0", "marked": "^0.3.5", "node-sass": "^3.4.2", "node-uuid": "^1.4.7", @@ -71,11 +72,11 @@ "react-addons-pure-render-mixin": "^0.14.8", "react-bootstrap": "^0.28.5", "react-dom": "^0.14.8", - "react-on-rails": "^5.1.1", - "react-redux": "^4.4.1", - "react-router": "^2.0.1", - "react-router-redux": "^4.0.1", - "redux": "^3.3.1", + "react-on-rails": "^5.2.0", + "react-redux": "^4.4.4", + "react-router": "^2.2.1", + "react-router-redux": "^4.0.2", + "redux": "^3.4.0", "redux-promise": "^0.5.3", "redux-thunk": "^2.0.1", "resolve-url-loader": "^1.4.3", @@ -84,7 +85,7 @@ "style-loader": "^0.13.1", "turbolinks": "^5.0.0-beta4", "url-loader": "^0.5.7", - "webpack": "^1.12.14" + "webpack": "^1.12.15" }, "devDependencies": { "babel-plugin-react-transform": "^2.0.2", @@ -96,9 +97,9 @@ "eslint-plugin-react": "^4.3.0", "estraverse-fb": "^1.3.1", "express": "^4.13.4", - "jade": "^1.11.0", + "pug": "^2.0.0-alpha3", "jscs": "^2.11.0", - "jsdom": "^8.3.0", + "jsdom": "^8.3.1", "mocha": "^2.4.5", "react-addons-test-utils": "^0.14.8", "react-transform-hmr": "^1.0.4", diff --git a/client/server-express.js b/client/server-express.js index 817047e6..7f5c3a84 100644 --- a/client/server-express.js +++ b/client/server-express.js @@ -2,7 +2,7 @@ var bodyParser = require('body-parser'); var webpack = require('webpack'); var WebpackDevServer = require('webpack-dev-server'); -var jade = require('jade'); +var pug = require('pug'); var sleep = require('sleep'); var config = require('./webpack.client.express.config'); var uuid = require('node-uuid'); @@ -51,8 +51,8 @@ server.app.use('/', (req, res) => { var locals = { props: JSON.stringify(comments), }; - var layout = `${process.cwd()}/index.jade`; - var html = jade.compileFile(layout, { pretty: true })(locals); + var layout = `${process.cwd()}/index.pug`; + var html = pug.compileFile(layout, { pretty: true })(locals); res.send(html); }); diff --git a/spec/rails_helper.rb b/spec/rails_helper.rb index 1a0f253e..cc3a24ec 100644 --- a/spec/rails_helper.rb +++ b/spec/rails_helper.rb @@ -82,6 +82,7 @@ # Capybara.default_max_wait_time = 15 puts "Capybara using driver: #{Capybara.javascript_driver}" + Capybara.save_path = "#{$APPLICATION_ROOT}/tmp/capybara" Capybara::Screenshot.prune_strategy = { keep: 10 } # Remove this line if you're not using ActiveRecord or ActiveRecord fixtures From 8cd7f9fa7e1d5992ed29d6044380cf7816ceb400 Mon Sep 17 00:00:00 2001 From: Bruce Krysiak Date: Thu, 14 Apr 2016 00:10:22 -0700 Subject: [PATCH 034/246] Fixing Capybara issue, handling one deprecation warning --- spec/rails_helper.rb | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/spec/rails_helper.rb b/spec/rails_helper.rb index cc3a24ec..09ec5733 100644 --- a/spec/rails_helper.rb +++ b/spec/rails_helper.rb @@ -74,7 +74,7 @@ Capybara.javascript_driver = driver - Capybara.server do |app, port| + Capybara.register_server(Capybara.javascript_driver) do |app, port| require "rack/handler/puma" Rack::Handler::Puma.run(app, Port: port) end @@ -82,7 +82,7 @@ # Capybara.default_max_wait_time = 15 puts "Capybara using driver: #{Capybara.javascript_driver}" - Capybara.save_path = "#{$APPLICATION_ROOT}/tmp/capybara" + Capybara.save_and_open_page_path = Rails.root.join(*%w( tmp capybara )) Capybara::Screenshot.prune_strategy = { keep: 10 } # Remove this line if you're not using ActiveRecord or ActiveRecord fixtures From 85606e89d381cf5624831a329f615941b6d08897 Mon Sep 17 00:00:00 2001 From: Chad Woolley Date: Wed, 6 Apr 2016 06:24:18 -0700 Subject: [PATCH 035/246] fix require issues causing 'bin/rake ci' to fail --- spec/rails_helper.rb | 1 + 1 file changed, 1 insertion(+) diff --git a/spec/rails_helper.rb b/spec/rails_helper.rb index 09ec5733..a072c21f 100644 --- a/spec/rails_helper.rb +++ b/spec/rails_helper.rb @@ -7,6 +7,7 @@ require "rspec/rails" require "capybara/rspec" require "capybara-screenshot/rspec" +require "database_cleaner" # Add additional requires below this line. Rails is not loaded until this point! From c31feb5135a97112715095962ecbaf1b6b73940a Mon Sep 17 00:00:00 2001 From: Wen Hsiao Date: Fri, 22 Apr 2016 17:46:07 +0900 Subject: [PATCH 036/246] Fixed missing parenthesis in package.json --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 2d8d72b9..2063baff 100644 --- a/package.json +++ b/package.json @@ -15,7 +15,7 @@ "build:clean": "rm app/assets/webpack/*", "build:production:client": "(cd client && npm run build:production:client --silent)", "build:production:server": "(cd client && npm run build:production:server --silent)", - "build:client": "(cd client && npm run build:client --silent", + "build:client": "(cd client && npm run build:client --silent)", "build:server": "(cd client && npm run build:server --silent)", "build:dev:client": "(cd client && npm run build:dev:client --silent)", "build:dev:server": "(cd client && npm run build:dev:server --silent)", From 23ec73c03f36cf9c8bf7ebbf0cb5d5387d088c79 Mon Sep 17 00:00:00 2001 From: Viktor Kotusenko Date: Wed, 27 Apr 2016 14:44:52 +0300 Subject: [PATCH 037/246] some minor grammar correction re: plural subject --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index bfaf148f..7d56ce73 100644 --- a/README.md +++ b/README.md @@ -113,7 +113,7 @@ We're now using Webpack for all Sass and JavaScript assets so we can do CSS Modu 1. **Production Deployment**: See [assets.rake](lib/tasks/assets.rake) for we modify the Rails precompile task to deploy assets for production. 1. **Development Mode**: Two flavors: Hot reloading assets (JavaScript & CSS) and Static loading. - 1. **Hot Loading**: We modify the URL in [application.html.erb](app/views/layouts/application.html.erb) based on whether or not we're in production mode using the helpers `env_stylesheet_link_tag` and `env_javascript_include_tag`. *Development mode* uses the Webpack Dev server running on port 3500. Other modes (production/test) uses precompiled files. See `Procfile.hot`. `Procfile.dev` also starts this mode. Note, *you don't have to refresh a Rails web page to view changes to JavaScript or CSS*. + 1. **Hot Loading**: We modify the URL in [application.html.erb](app/views/layouts/application.html.erb) based on whether or not we're in production mode using the helpers `env_stylesheet_link_tag` and `env_javascript_include_tag`. *Development mode* uses the Webpack Dev server running on port 3500. Other modes (production/test) use precompiled files. See `Procfile.hot`. `Procfile.dev` also starts this mode. Note, *you don't have to refresh a Rails web page to view changes to JavaScript or CSS*. 2. **Static Loading**: This uses webpack to create physical files of the assets, both JavaScript and CSS. This is essentially what we had before we enabled *Hot Loading*. You have to *refresh* the page to see changes to JavaScript or CSS. See `Procfile.static`. It is important to note that tests will use the same statically generated files. 3. Note, the following view helpers do the magic to make this work: ```erb From 9664363781b2afda61ebb3f083c3ec2f57bbeaf4 Mon Sep 17 00:00:00 2001 From: Justin Gordon Date: Thu, 5 May 2016 22:00:40 -1000 Subject: [PATCH 038/246] Fixed the setting of the location react-router Previously not set correctly. --- client/app/bundles/comments/startup/ServerRouterApp.jsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/client/app/bundles/comments/startup/ServerRouterApp.jsx b/client/app/bundles/comments/startup/ServerRouterApp.jsx index faef88f6..adc614f3 100644 --- a/client/app/bundles/comments/startup/ServerRouterApp.jsx +++ b/client/app/bundles/comments/startup/ServerRouterApp.jsx @@ -11,7 +11,7 @@ export default (props, railsContext) => { let error; let redirectLocation; let routeProps; - const location = { railsContext }; + const { location } = railsContext; // See https://github.com/reactjs/react-router/blob/master/docs/guides/ServerRendering.md match({ routes, location }, (_error, _redirectLocation, _routeProps) => { From 26bae3310df49e6e87703cdaf6dcbb6249828112 Mon Sep 17 00:00:00 2001 From: Justin Gordon Date: Tue, 10 May 2016 00:16:03 -1000 Subject: [PATCH 039/246] update RoR to 6.0.0.rc.5 * update travis to ruby 2.3.1 --- .ruby-version | 2 +- .travis.yml | 2 +- Gemfile | 6 +- Gemfile.lock | 146 ++- client/npm-shrinkwrap.json | 1359 ++++++++++++++----------- client/package.json | 4 +- config/initializers/react_on_rails.rb | 80 +- lib/tasks/assets.rake | 30 - package.json | 6 +- spec/features/edit_comment_spec.rb | 4 +- 10 files changed, 924 insertions(+), 715 deletions(-) delete mode 100644 lib/tasks/assets.rake diff --git a/.ruby-version b/.ruby-version index 276cbf9e..2bf1c1cc 100644 --- a/.ruby-version +++ b/.ruby-version @@ -1 +1 @@ -2.3.0 +2.3.1 diff --git a/.travis.yml b/.travis.yml index 2d3328f9..73042157 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,7 +1,7 @@ language: - ruby rvm: - - 2.3.0 + - 2.3.1 sudo: false addons: apt: diff --git a/Gemfile b/Gemfile index dd464e45..8c5d0904 100644 --- a/Gemfile +++ b/Gemfile @@ -1,9 +1,9 @@ source "https://rubygems.org" -ruby "2.3.0" +ruby "2.3.1" # # Bundle edge Rails instead: gem "rails", github: "rails/rails" -gem "rails", "5.0.0.beta3" +gem "rails", "5.0.0.rc1" gem "listen" # Note: We're using sqllite3 for development and testing @@ -41,7 +41,7 @@ gem "sdoc", group: :doc # Use Rails Html Sanitizer for HTML sanitization gem "rails-html-sanitizer" -gem "react_on_rails", "~> 5.1.1" +gem "react_on_rails", "6.0.0.rc.5" # See https://github.com/sstephenson/execjs#readme for more supported runtimes gem "therubyracer" diff --git a/Gemfile.lock b/Gemfile.lock index 79fceb4f..1d7ba584 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -1,40 +1,40 @@ GEM remote: https://rubygems.org/ specs: - actioncable (5.0.0.beta3) - actionpack (= 5.0.0.beta3) + actioncable (5.0.0.rc1) + actionpack (= 5.0.0.rc1) nio4r (~> 1.2) websocket-driver (~> 0.6.1) - actionmailer (5.0.0.beta3) - actionpack (= 5.0.0.beta3) - actionview (= 5.0.0.beta3) - activejob (= 5.0.0.beta3) + actionmailer (5.0.0.rc1) + actionpack (= 5.0.0.rc1) + actionview (= 5.0.0.rc1) + activejob (= 5.0.0.rc1) mail (~> 2.5, >= 2.5.4) rails-dom-testing (~> 1.0, >= 1.0.5) - actionpack (5.0.0.beta3) - actionview (= 5.0.0.beta3) - activesupport (= 5.0.0.beta3) + actionpack (5.0.0.rc1) + actionview (= 5.0.0.rc1) + activesupport (= 5.0.0.rc1) rack (~> 2.x) rack-test (~> 0.6.3) rails-dom-testing (~> 1.0, >= 1.0.5) rails-html-sanitizer (~> 1.0, >= 1.0.2) - actionview (5.0.0.beta3) - activesupport (= 5.0.0.beta3) + actionview (5.0.0.rc1) + activesupport (= 5.0.0.rc1) builder (~> 3.1) erubis (~> 2.7.0) rails-dom-testing (~> 1.0, >= 1.0.5) rails-html-sanitizer (~> 1.0, >= 1.0.2) - activejob (5.0.0.beta3) - activesupport (= 5.0.0.beta3) + activejob (5.0.0.rc1) + activesupport (= 5.0.0.rc1) globalid (>= 0.3.6) - activemodel (5.0.0.beta3) - activesupport (= 5.0.0.beta3) - activerecord (5.0.0.beta3) - activemodel (= 5.0.0.beta3) - activesupport (= 5.0.0.beta3) + activemodel (5.0.0.rc1) + activesupport (= 5.0.0.rc1) + activerecord (5.0.0.rc1) + activemodel (= 5.0.0.rc1) + activesupport (= 5.0.0.rc1) arel (~> 7.0) - activesupport (5.0.0.beta3) - concurrent-ruby (~> 1.0) + activesupport (5.0.0.rc1) + concurrent-ruby (~> 1.0, >= 1.0.2) i18n (~> 0.7) minitest (~> 5.1) tzinfo (~> 1.1) @@ -48,22 +48,13 @@ GEM awesome_print (1.6.1) binding_of_caller (0.7.2) debug_inspector (>= 0.0.1) - brakeman (3.2.1) - erubis (~> 2.6) - haml (>= 3.0, < 5.0) - highline (>= 1.6.20, < 2.0) - ruby2ruby (~> 2.3.0) - ruby_parser (~> 3.8.1) - safe_yaml (>= 1.0) - sass (~> 3.0) - slim (>= 1.3.6, < 4.0) - terminal-table (~> 1.4) + brakeman (3.3.0) builder (3.2.2) bundler-audit (0.5.0) bundler (~> 1.2) thor (~> 0.18) - byebug (8.2.4) - capybara (2.7.0) + byebug (8.2.5) + capybara (2.7.1) addressable mime-types (>= 1.16) nokogiri (>= 1.3.3) @@ -73,7 +64,7 @@ GEM capybara-screenshot (1.0.12) capybara (>= 1.0, < 3) launchy - capybara-webkit (1.10.1) + capybara-webkit (1.11.1) capybara (>= 2.3.0, < 2.8.0) json childprocess (0.5.9) @@ -90,7 +81,7 @@ GEM coffee-script-source execjs coffee-script-source (1.10.0) - concurrent-ruby (1.0.1) + concurrent-ruby (1.0.2) connection_pool (2.2.0) coveralls (0.8.13) json (~> 1.8) @@ -98,7 +89,7 @@ GEM term-ansicolor (~> 1.3) thor (~> 0.19.1) tins (~> 1.6.0) - database_cleaner (1.5.1) + database_cleaner (1.5.3) debug_inspector (0.0.2) diff-lcs (1.2.5) docile (1.1.5) @@ -110,16 +101,13 @@ GEM factory_girl (~> 4.7.0) railties (>= 3.0.0) ffi (1.9.10) - foreman (0.78.0) + foreman (0.81.0) thor (~> 0.19.1) generator_spec (0.9.3) activesupport (>= 3.0.0) railties (>= 3.0.0) globalid (0.3.6) activesupport (>= 4.1.0) - haml (4.0.7) - tilt - highline (1.7.8) i18n (0.7.0) interception (0.5) io-like (0.3.0) @@ -129,10 +117,11 @@ GEM json (1.8.3) launchy (2.4.3) addressable (~> 2.3) - libv8 (3.16.14.13) - listen (3.0.6) - rb-fsevent (>= 0.9.3) - rb-inotify (>= 0.9.7) + libv8 (3.16.14.15) + listen (3.1.3) + rb-fsevent (~> 0.9, >= 0.9.7) + rb-inotify (~> 0.9, >= 0.9.7) + ruby_dep (~> 1.2) loofah (2.0.3) nokogiri (>= 1.5.9) mail (2.6.4) @@ -143,11 +132,11 @@ GEM mime-types-data (3.2016.0221) mini_portile2 (2.0.0) minitest (5.8.4) - multi_json (1.11.2) + multi_json (1.12.0) nio4r (1.2.1) nokogiri (1.6.7.2) mini_portile2 (~> 2.0.0.rc2) - parser (2.3.0.7) + parser (2.3.1.0) ast (~> 2.2) pg (0.18.4) poltergeist (1.9.0) @@ -175,21 +164,21 @@ GEM binding_of_caller (>= 0.7) pry (>= 0.9.11) puma (3.4.0) - rack (2.0.0.alpha) + rack (2.0.0.rc1) json rack-test (0.6.3) rack (>= 1.0) - rails (5.0.0.beta3) - actioncable (= 5.0.0.beta3) - actionmailer (= 5.0.0.beta3) - actionpack (= 5.0.0.beta3) - actionview (= 5.0.0.beta3) - activejob (= 5.0.0.beta3) - activemodel (= 5.0.0.beta3) - activerecord (= 5.0.0.beta3) - activesupport (= 5.0.0.beta3) + rails (5.0.0.rc1) + actioncable (= 5.0.0.rc1) + actionmailer (= 5.0.0.rc1) + actionpack (= 5.0.0.rc1) + actionview (= 5.0.0.rc1) + activejob (= 5.0.0.rc1) + activemodel (= 5.0.0.rc1) + activerecord (= 5.0.0.rc1) + activesupport (= 5.0.0.rc1) bundler (>= 1.3.0, < 2.0) - railties (= 5.0.0.beta3) + railties (= 5.0.0.rc1) sprockets-rails (>= 2.0.0) rails-deprecated_sanitizer (1.0.3) activesupport (>= 4.2.0.alpha) @@ -204,20 +193,21 @@ GEM rails_stdout_logging rails_serve_static_assets (0.0.5) rails_stdout_logging (0.0.5) - railties (5.0.0.beta3) - actionpack (= 5.0.0.beta3) - activesupport (= 5.0.0.beta3) + railties (5.0.0.rc1) + actionpack (= 5.0.0.rc1) + activesupport (= 5.0.0.rc1) method_source rake (>= 0.8.7) thor (>= 0.18.1, < 2.0) rainbow (2.1.0) - rake (10.5.0) + rake (11.1.2) rb-fsevent (0.9.7) rb-inotify (0.9.7) ffi (>= 0.5.0) rdoc (4.2.2) json (~> 1.4) - react_on_rails (5.1.1) + react_on_rails (6.0.0.rc.5) + addressable connection_pool execjs (~> 2.5) foreman @@ -243,8 +233,8 @@ GEM rspec-retry (0.4.5) rspec-core rspec-support (3.5.0.beta3) - rubocop (0.39.0) - parser (>= 2.3.0.7, < 3.0) + rubocop (0.40.0) + parser (>= 2.3.1.0, < 3.0) powerpack (~> 0.1) rainbow (>= 1.99.1, < 3.0) ruby-progressbar (~> 1.7) @@ -252,14 +242,9 @@ GEM ruby-lint (2.1.0) parser (~> 2.2) slop (~> 3.4, >= 3.4.7) - ruby-progressbar (1.7.5) - ruby2ruby (2.3.0) - ruby_parser (~> 3.1) - sexp_processor (~> 4.0) - ruby_parser (3.8.1) - sexp_processor (~> 4.1) + ruby-progressbar (1.8.0) + ruby_dep (1.3.1) rubyzip (1.2.0) - safe_yaml (1.0.4) sass (3.4.22) sass-rails (5.0.4) railties (>= 4.0.0, < 5.0) @@ -267,8 +252,8 @@ GEM sprockets (>= 2.8, < 4.0) sprockets-rails (>= 2.0, < 4.0) tilt (>= 1.1, < 3) - scss_lint (0.47.1) - rake (>= 0.9, < 11) + scss_lint (0.48.0) + rake (>= 0.9, < 12) sass (~> 3.4.15) sdoc (0.4.1) json (~> 1.7, >= 1.7.7) @@ -277,15 +262,11 @@ GEM childprocess (~> 0.5) rubyzip (~> 1.0) websocket (~> 1.0) - sexp_processor (4.7.0) simplecov (0.11.2) docile (~> 1.1.0) json (~> 1.8) simplecov-html (~> 0.10.0) simplecov-html (0.10.0) - slim (3.0.6) - temple (~> 0.7.3) - tilt (>= 1.3.3, < 2.1) slop (3.6.0) spring (1.7.1) spring-commands-rspec (1.0.4) @@ -298,10 +279,8 @@ GEM activesupport (>= 4.0) sprockets (>= 3.0.0) sqlite3 (1.3.11) - temple (0.7.6) term-ansicolor (1.3.2) tins (~> 1.0) - terminal-table (1.5.2) therubyracer (0.12.2) libv8 (~> 3.16.14.0) ref @@ -313,7 +292,7 @@ GEM thread_safe (~> 0.1) uglifier (3.0.0) execjs (>= 0.3.0, < 3) - unicode-display_width (1.0.3) + unicode-display_width (1.0.5) web-console (3.1.1) activemodel (>= 4.2) debug_inspector @@ -356,11 +335,11 @@ DEPENDENCIES pry-rescue pry-stack_explorer puma - rails (= 5.0.0.beta3) + rails (= 5.0.0.rc1) rails-html-sanitizer rails_12factor rainbow - react_on_rails (~> 5.1.1) + react_on_rails (= 6.0.0.rc.5) rspec-rails (= 3.5.0.beta3) rspec-retry rubocop @@ -376,5 +355,8 @@ DEPENDENCIES uglifier web-console +RUBY VERSION + ruby 2.3.1p112 + BUNDLED WITH - 1.11.2 + 1.12.3 diff --git a/client/npm-shrinkwrap.json b/client/npm-shrinkwrap.json index 2314bf08..b54551ac 100644 --- a/client/npm-shrinkwrap.json +++ b/client/npm-shrinkwrap.json @@ -18,32 +18,26 @@ "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.2.13.tgz" }, "acorn": { - "version": "3.0.4", - "from": "acorn@>=3.0.4 <4.0.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-3.0.4.tgz" + "version": "3.1.0", + "from": "acorn@>=3.0.0 <4.0.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-3.1.0.tgz" }, "acorn-globals": { "version": "1.0.9", - "from": "acorn-globals@>=1.0.3 <2.0.0", + "from": "acorn-globals@>=1.0.4 <2.0.0", "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-1.0.9.tgz", "dependencies": { "acorn": { "version": "2.7.0", - "from": "acorn@>=2.1.0 <3.0.0" + "from": "acorn@>=2.1.0 <3.0.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-2.7.0.tgz" } } }, "acorn-jsx": { - "version": "2.0.1", - "from": "acorn-jsx@>=2.0.1 <3.0.0", - "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-2.0.1.tgz", - "dependencies": { - "acorn": { - "version": "2.7.0", - "from": "acorn@>=2.0.1 <3.0.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-2.7.0.tgz" - } - } + "version": "3.0.1", + "from": "acorn-jsx@>=3.0.0 <4.0.0", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-3.0.1.tgz" }, "align-text": { "version": "0.1.4", @@ -71,9 +65,9 @@ "resolved": "https://registry.npmjs.org/ansi/-/ansi-0.3.1.tgz" }, "ansi-escapes": { - "version": "1.3.0", + "version": "1.4.0", "from": "ansi-escapes@>=1.1.0 <2.0.0", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-1.3.0.tgz" + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-1.4.0.tgz" }, "ansi-regex": { "version": "2.0.0", @@ -81,9 +75,9 @@ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.0.0.tgz" }, "ansi-styles": { - "version": "2.2.0", + "version": "2.2.1", "from": "ansi-styles@>=2.1.0 <3.0.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.0.tgz" + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz" }, "anymatch": { "version": "1.3.0", @@ -96,9 +90,9 @@ "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.0.6.tgz" }, "argparse": { - "version": "1.0.6", + "version": "1.0.7", "from": "argparse@>=1.0.2 <2.0.0", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.6.tgz" + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.7.tgz" }, "arr-diff": { "version": "2.0.0", @@ -187,7 +181,7 @@ }, "async": { "version": "1.5.2", - "from": "async@>=1.5.2 <2.0.0", + "from": "async@>=1.4.0 <2.0.0", "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz" }, "async-each": { @@ -216,9 +210,9 @@ "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.6.0.tgz" }, "aws4": { - "version": "1.3.2", + "version": "1.4.1", "from": "aws4@>=1.2.1 <2.0.0", - "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.3.2.tgz" + "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.4.1.tgz" }, "axios": { "version": "0.9.1", @@ -231,14 +225,24 @@ "resolved": "https://registry.npmjs.org/babel/-/babel-6.5.2.tgz" }, "babel-cli": { - "version": "6.6.5", - "from": "babel-cli@>=6.6.5 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-cli/-/babel-cli-6.6.5.tgz", + "version": "6.8.0", + "from": "babel-cli@>=6.7.5 <7.0.0", + "resolved": "https://registry.npmjs.org/babel-cli/-/babel-cli-6.8.0.tgz", "dependencies": { - "babel-runtime": { - "version": "5.8.38", - "from": "babel-runtime@>=5.0.0 <6.0.0", - "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-5.8.38.tgz" + "babel-polyfill": { + "version": "6.8.0", + "from": "babel-polyfill@>=6.8.0 <7.0.0", + "resolved": "https://registry.npmjs.org/babel-polyfill/-/babel-polyfill-6.8.0.tgz" + }, + "babel-register": { + "version": "6.8.0", + "from": "babel-register@>=6.8.0 <7.0.0", + "resolved": "https://registry.npmjs.org/babel-register/-/babel-register-6.8.0.tgz" + }, + "core-js": { + "version": "2.4.0", + "from": "core-js@2.4.0", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.4.0.tgz" }, "lodash": { "version": "3.10.1", @@ -248,36 +252,39 @@ } }, "babel-code-frame": { - "version": "6.7.2", - "from": "babel-code-frame@>=6.7.2 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.7.2.tgz", - "dependencies": { - "babel-runtime": { - "version": "5.8.38", - "from": "babel-runtime@>=5.0.0 <6.0.0", - "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-5.8.38.tgz" - } - } + "version": "6.8.0", + "from": "babel-code-frame@>=6.8.0 <7.0.0", + "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.8.0.tgz" }, "babel-core": { - "version": "6.7.4", - "from": "babel-core@>=6.7.4 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-core/-/babel-core-6.7.4.tgz", + "version": "6.8.0", + "from": "babel-core@>=6.7.6 <7.0.0", + "resolved": "https://registry.npmjs.org/babel-core/-/babel-core-6.8.0.tgz", "dependencies": { - "babel-code-frame": { - "version": "6.7.4", - "from": "babel-code-frame@>=6.7.4 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.7.4.tgz" + "babel-register": { + "version": "6.8.0", + "from": "babel-register@6.8.0", + "resolved": "https://registry.npmjs.org/babel-register/-/babel-register-6.8.0.tgz" }, - "babel-runtime": { - "version": "5.8.38", - "from": "babel-runtime@>=5.0.0 <6.0.0", - "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-5.8.38.tgz" + "babel-template": { + "version": "6.8.0", + "from": "babel-template@>=6.8.0 <7.0.0", + "resolved": "https://registry.npmjs.org/babel-template/-/babel-template-6.8.0.tgz" }, "babel-traverse": { - "version": "6.7.4", - "from": "babel-traverse@>=6.7.4 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.7.4.tgz" + "version": "6.8.0", + "from": "babel-traverse@>=6.8.0 <7.0.0", + "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.8.0.tgz" + }, + "babel-types": { + "version": "6.8.1", + "from": "babel-types@>=6.8.0 <7.0.0", + "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.8.1.tgz" + }, + "core-js": { + "version": "2.4.0", + "from": "core-js@>=2.1.0 <3.0.0", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.4.0.tgz" }, "lodash": { "version": "3.10.1", @@ -287,19 +294,36 @@ } }, "babel-eslint": { - "version": "6.0.2", + "version": "6.0.4", "from": "babel-eslint@>=6.0.0 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-eslint/-/babel-eslint-6.0.2.tgz" + "resolved": "https://registry.npmjs.org/babel-eslint/-/babel-eslint-6.0.4.tgz", + "dependencies": { + "lodash.assign": { + "version": "4.0.8", + "from": "lodash.assign@>=4.0.0 <5.0.0", + "resolved": "https://registry.npmjs.org/lodash.assign/-/lodash.assign-4.0.8.tgz" + }, + "lodash.keys": { + "version": "4.0.6", + "from": "lodash.keys@>=4.0.0 <5.0.0", + "resolved": "https://registry.npmjs.org/lodash.keys/-/lodash.keys-4.0.6.tgz" + } + } }, "babel-generator": { - "version": "6.7.2", - "from": "babel-generator@>=6.7.2 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-generator/-/babel-generator-6.7.2.tgz", + "version": "6.8.0", + "from": "babel-generator@>=6.8.0 <7.0.0", + "resolved": "https://registry.npmjs.org/babel-generator/-/babel-generator-6.8.0.tgz", "dependencies": { - "babel-runtime": { - "version": "5.8.38", - "from": "babel-runtime@>=5.0.0 <6.0.0", - "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-5.8.38.tgz" + "babel-traverse": { + "version": "6.8.0", + "from": "babel-traverse@6.8.0", + "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.8.0.tgz" + }, + "babel-types": { + "version": "6.8.1", + "from": "babel-types@6.8.1", + "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.8.1.tgz" }, "lodash": { "version": "3.10.1", @@ -309,38 +333,63 @@ } }, "babel-helper-bindify-decorators": { - "version": "6.6.5", - "from": "babel-helper-bindify-decorators@>=6.6.5 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-helper-bindify-decorators/-/babel-helper-bindify-decorators-6.6.5.tgz", + "version": "6.8.0", + "from": "babel-helper-bindify-decorators@>=6.8.0 <7.0.0", + "resolved": "https://registry.npmjs.org/babel-helper-bindify-decorators/-/babel-helper-bindify-decorators-6.8.0.tgz", "dependencies": { - "babel-runtime": { - "version": "5.8.38", - "from": "babel-runtime@>=5.0.0 <6.0.0", - "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-5.8.38.tgz" + "babel-traverse": { + "version": "6.8.0", + "from": "babel-traverse@6.8.0", + "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.8.0.tgz" + }, + "babel-types": { + "version": "6.8.1", + "from": "babel-types@6.8.1", + "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.8.1.tgz" + }, + "lodash": { + "version": "3.10.1", + "from": "lodash@>=3.10.1 <4.0.0", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-3.10.1.tgz" } } }, "babel-helper-builder-binary-assignment-operator-visitor": { - "version": "6.6.5", + "version": "6.8.0", "from": "babel-helper-builder-binary-assignment-operator-visitor@>=6.3.13 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-helper-builder-binary-assignment-operator-visitor/-/babel-helper-builder-binary-assignment-operator-visitor-6.6.5.tgz", + "resolved": "https://registry.npmjs.org/babel-helper-builder-binary-assignment-operator-visitor/-/babel-helper-builder-binary-assignment-operator-visitor-6.8.0.tgz", "dependencies": { - "babel-runtime": { - "version": "5.8.38", - "from": "babel-runtime@>=5.0.0 <6.0.0", - "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-5.8.38.tgz" + "babel-traverse": { + "version": "6.8.0", + "from": "babel-traverse@6.8.0", + "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.8.0.tgz" + }, + "babel-types": { + "version": "6.8.1", + "from": "babel-types@6.8.1", + "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.8.1.tgz" + }, + "lodash": { + "version": "3.10.1", + "from": "lodash@>=3.10.1 <4.0.0", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-3.10.1.tgz" } } }, "babel-helper-builder-react-jsx": { - "version": "6.6.5", + "version": "6.8.0", "from": "babel-helper-builder-react-jsx@>=6.6.5 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-helper-builder-react-jsx/-/babel-helper-builder-react-jsx-6.6.5.tgz", + "resolved": "https://registry.npmjs.org/babel-helper-builder-react-jsx/-/babel-helper-builder-react-jsx-6.8.0.tgz", "dependencies": { - "babel-runtime": { - "version": "5.8.38", - "from": "babel-runtime@>=5.0.0 <6.0.0", - "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-5.8.38.tgz" + "babel-traverse": { + "version": "6.8.0", + "from": "babel-traverse@6.8.0", + "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.8.0.tgz" + }, + "babel-types": { + "version": "6.8.1", + "from": "babel-types@6.8.1", + "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.8.1.tgz" }, "lodash": { "version": "3.10.1", @@ -350,26 +399,41 @@ } }, "babel-helper-call-delegate": { - "version": "6.6.5", + "version": "6.8.0", "from": "babel-helper-call-delegate@>=6.6.5 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-helper-call-delegate/-/babel-helper-call-delegate-6.6.5.tgz", + "resolved": "https://registry.npmjs.org/babel-helper-call-delegate/-/babel-helper-call-delegate-6.8.0.tgz", "dependencies": { - "babel-runtime": { - "version": "5.8.38", - "from": "babel-runtime@>=5.0.0 <6.0.0", - "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-5.8.38.tgz" + "babel-traverse": { + "version": "6.8.0", + "from": "babel-traverse@6.8.0", + "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.8.0.tgz" + }, + "babel-types": { + "version": "6.8.1", + "from": "babel-types@6.8.1", + "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.8.1.tgz" + }, + "lodash": { + "version": "3.10.1", + "from": "lodash@>=3.10.1 <4.0.0", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-3.10.1.tgz" } } }, "babel-helper-define-map": { - "version": "6.6.5", + "version": "6.8.0", "from": "babel-helper-define-map@>=6.6.5 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-helper-define-map/-/babel-helper-define-map-6.6.5.tgz", + "resolved": "https://registry.npmjs.org/babel-helper-define-map/-/babel-helper-define-map-6.8.0.tgz", "dependencies": { - "babel-runtime": { - "version": "5.8.38", - "from": "babel-runtime@>=5.0.0 <6.0.0", - "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-5.8.38.tgz" + "babel-traverse": { + "version": "6.8.0", + "from": "babel-traverse@6.8.0", + "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.8.0.tgz" + }, + "babel-types": { + "version": "6.8.1", + "from": "babel-types@6.8.1", + "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.8.1.tgz" }, "lodash": { "version": "3.10.1", @@ -379,86 +443,156 @@ } }, "babel-helper-explode-assignable-expression": { - "version": "6.6.5", - "from": "babel-helper-explode-assignable-expression@>=6.6.5 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-helper-explode-assignable-expression/-/babel-helper-explode-assignable-expression-6.6.5.tgz", + "version": "6.8.0", + "from": "babel-helper-explode-assignable-expression@>=6.8.0 <7.0.0", + "resolved": "https://registry.npmjs.org/babel-helper-explode-assignable-expression/-/babel-helper-explode-assignable-expression-6.8.0.tgz", "dependencies": { - "babel-runtime": { - "version": "5.8.38", - "from": "babel-runtime@>=5.0.0 <6.0.0", - "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-5.8.38.tgz" + "babel-traverse": { + "version": "6.8.0", + "from": "babel-traverse@6.8.0", + "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.8.0.tgz" + }, + "babel-types": { + "version": "6.8.1", + "from": "babel-types@6.8.1", + "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.8.1.tgz" + }, + "lodash": { + "version": "3.10.1", + "from": "lodash@>=3.10.1 <4.0.0", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-3.10.1.tgz" } } }, "babel-helper-explode-class": { - "version": "6.6.5", + "version": "6.8.0", "from": "babel-helper-explode-class@>=6.6.5 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-helper-explode-class/-/babel-helper-explode-class-6.6.5.tgz", + "resolved": "https://registry.npmjs.org/babel-helper-explode-class/-/babel-helper-explode-class-6.8.0.tgz", "dependencies": { - "babel-runtime": { - "version": "5.8.38", - "from": "babel-runtime@>=5.0.0 <6.0.0", - "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-5.8.38.tgz" + "babel-traverse": { + "version": "6.8.0", + "from": "babel-traverse@6.8.0", + "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.8.0.tgz" + }, + "babel-types": { + "version": "6.8.1", + "from": "babel-types@6.8.1", + "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.8.1.tgz" + }, + "lodash": { + "version": "3.10.1", + "from": "lodash@>=3.10.1 <4.0.0", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-3.10.1.tgz" } } }, "babel-helper-function-name": { - "version": "6.6.0", + "version": "6.8.0", "from": "babel-helper-function-name@>=6.6.0 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-helper-function-name/-/babel-helper-function-name-6.6.0.tgz", + "resolved": "https://registry.npmjs.org/babel-helper-function-name/-/babel-helper-function-name-6.8.0.tgz", "dependencies": { - "babel-runtime": { - "version": "5.8.38", - "from": "babel-runtime@>=5.0.0 <6.0.0", - "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-5.8.38.tgz" + "babel-template": { + "version": "6.8.0", + "from": "babel-template@6.8.0", + "resolved": "https://registry.npmjs.org/babel-template/-/babel-template-6.8.0.tgz" + }, + "babel-traverse": { + "version": "6.8.0", + "from": "babel-traverse@6.8.0", + "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.8.0.tgz" + }, + "babel-types": { + "version": "6.8.1", + "from": "babel-types@6.8.1", + "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.8.1.tgz" + }, + "lodash": { + "version": "3.10.1", + "from": "lodash@>=3.10.1 <4.0.0", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-3.10.1.tgz" } } }, "babel-helper-get-function-arity": { - "version": "6.6.5", - "from": "babel-helper-get-function-arity@>=6.3.13 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-helper-get-function-arity/-/babel-helper-get-function-arity-6.6.5.tgz", + "version": "6.8.0", + "from": "babel-helper-get-function-arity@>=6.8.0 <7.0.0", + "resolved": "https://registry.npmjs.org/babel-helper-get-function-arity/-/babel-helper-get-function-arity-6.8.0.tgz", "dependencies": { - "babel-runtime": { - "version": "5.8.38", - "from": "babel-runtime@>=5.0.0 <6.0.0", - "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-5.8.38.tgz" + "babel-traverse": { + "version": "6.8.0", + "from": "babel-traverse@6.8.0", + "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.8.0.tgz" + }, + "babel-types": { + "version": "6.8.1", + "from": "babel-types@6.8.1", + "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.8.1.tgz" + }, + "lodash": { + "version": "3.10.1", + "from": "lodash@>=3.10.1 <4.0.0", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-3.10.1.tgz" } } }, "babel-helper-hoist-variables": { - "version": "6.6.5", - "from": "babel-helper-hoist-variables@>=6.6.5 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-helper-hoist-variables/-/babel-helper-hoist-variables-6.6.5.tgz", + "version": "6.8.0", + "from": "babel-helper-hoist-variables@>=6.8.0 <7.0.0", + "resolved": "https://registry.npmjs.org/babel-helper-hoist-variables/-/babel-helper-hoist-variables-6.8.0.tgz", "dependencies": { - "babel-runtime": { - "version": "5.8.38", - "from": "babel-runtime@>=5.0.0 <6.0.0", - "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-5.8.38.tgz" + "babel-traverse": { + "version": "6.8.0", + "from": "babel-traverse@6.8.0", + "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.8.0.tgz" + }, + "babel-types": { + "version": "6.8.1", + "from": "babel-types@6.8.1", + "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.8.1.tgz" + }, + "lodash": { + "version": "3.10.1", + "from": "lodash@>=3.10.1 <4.0.0", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-3.10.1.tgz" } } }, "babel-helper-optimise-call-expression": { - "version": "6.6.0", + "version": "6.8.0", "from": "babel-helper-optimise-call-expression@>=6.6.0 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-helper-optimise-call-expression/-/babel-helper-optimise-call-expression-6.6.0.tgz", + "resolved": "https://registry.npmjs.org/babel-helper-optimise-call-expression/-/babel-helper-optimise-call-expression-6.8.0.tgz", "dependencies": { - "babel-runtime": { - "version": "5.8.38", - "from": "babel-runtime@>=5.0.0 <6.0.0", - "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-5.8.38.tgz" + "babel-traverse": { + "version": "6.8.0", + "from": "babel-traverse@6.8.0", + "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.8.0.tgz" + }, + "babel-types": { + "version": "6.8.1", + "from": "babel-types@6.8.1", + "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.8.1.tgz" + }, + "lodash": { + "version": "3.10.1", + "from": "lodash@>=3.10.1 <4.0.0", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-3.10.1.tgz" } } }, "babel-helper-regex": { - "version": "6.6.5", + "version": "6.8.0", "from": "babel-helper-regex@>=6.3.13 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-helper-regex/-/babel-helper-regex-6.6.5.tgz", + "resolved": "https://registry.npmjs.org/babel-helper-regex/-/babel-helper-regex-6.8.0.tgz", "dependencies": { - "babel-runtime": { - "version": "5.8.38", - "from": "babel-runtime@>=5.0.0 <6.0.0", - "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-5.8.38.tgz" + "babel-traverse": { + "version": "6.8.0", + "from": "babel-traverse@6.8.0", + "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.8.0.tgz" + }, + "babel-types": { + "version": "6.8.1", + "from": "babel-types@6.8.1", + "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.8.1.tgz" }, "lodash": { "version": "3.10.1", @@ -468,38 +602,83 @@ } }, "babel-helper-remap-async-to-generator": { - "version": "6.7.0", + "version": "6.8.0", "from": "babel-helper-remap-async-to-generator@>=6.7.0 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-helper-remap-async-to-generator/-/babel-helper-remap-async-to-generator-6.7.0.tgz", + "resolved": "https://registry.npmjs.org/babel-helper-remap-async-to-generator/-/babel-helper-remap-async-to-generator-6.8.0.tgz", "dependencies": { - "babel-runtime": { - "version": "5.8.38", - "from": "babel-runtime@>=5.0.0 <6.0.0", - "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-5.8.38.tgz" + "babel-template": { + "version": "6.8.0", + "from": "babel-template@6.8.0", + "resolved": "https://registry.npmjs.org/babel-template/-/babel-template-6.8.0.tgz" + }, + "babel-traverse": { + "version": "6.8.0", + "from": "babel-traverse@6.8.0", + "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.8.0.tgz" + }, + "babel-types": { + "version": "6.8.1", + "from": "babel-types@6.8.1", + "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.8.1.tgz" + }, + "lodash": { + "version": "3.10.1", + "from": "lodash@>=3.10.1 <4.0.0", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-3.10.1.tgz" } } }, "babel-helper-replace-supers": { - "version": "6.7.0", + "version": "6.8.0", "from": "babel-helper-replace-supers@>=6.6.5 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-helper-replace-supers/-/babel-helper-replace-supers-6.7.0.tgz", + "resolved": "https://registry.npmjs.org/babel-helper-replace-supers/-/babel-helper-replace-supers-6.8.0.tgz", "dependencies": { - "babel-runtime": { - "version": "5.8.38", - "from": "babel-runtime@>=5.0.0 <6.0.0", - "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-5.8.38.tgz" + "babel-template": { + "version": "6.8.0", + "from": "babel-template@6.8.0", + "resolved": "https://registry.npmjs.org/babel-template/-/babel-template-6.8.0.tgz" + }, + "babel-traverse": { + "version": "6.8.0", + "from": "babel-traverse@6.8.0", + "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.8.0.tgz" + }, + "babel-types": { + "version": "6.8.1", + "from": "babel-types@6.8.1", + "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.8.1.tgz" + }, + "lodash": { + "version": "3.10.1", + "from": "lodash@>=3.10.1 <4.0.0", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-3.10.1.tgz" } } }, "babel-helpers": { - "version": "6.6.0", - "from": "babel-helpers@>=6.6.0 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-helpers/-/babel-helpers-6.6.0.tgz", + "version": "6.8.0", + "from": "babel-helpers@>=6.8.0 <7.0.0", + "resolved": "https://registry.npmjs.org/babel-helpers/-/babel-helpers-6.8.0.tgz", "dependencies": { - "babel-runtime": { - "version": "5.8.38", - "from": "babel-runtime@>=5.0.0 <6.0.0", - "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-5.8.38.tgz" + "babel-template": { + "version": "6.8.0", + "from": "babel-template@6.8.0", + "resolved": "https://registry.npmjs.org/babel-template/-/babel-template-6.8.0.tgz" + }, + "babel-traverse": { + "version": "6.8.0", + "from": "babel-traverse@6.8.0", + "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.8.0.tgz" + }, + "babel-types": { + "version": "6.8.1", + "from": "babel-types@6.8.1", + "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.8.1.tgz" + }, + "lodash": { + "version": "3.10.1", + "from": "lodash@>=3.10.1 <4.0.0", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-3.10.1.tgz" } } }, @@ -511,20 +690,18 @@ "babel-core": { "version": "5.8.38", "from": "babel-core@>=5.8.3 <5.9.0", - "resolved": "https://registry.npmjs.org/babel-core/-/babel-core-5.8.38.tgz", - "dependencies": { - "bluebird": { - "version": "2.10.2", - "from": "bluebird@>=2.9.33 <3.0.0", - "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-2.10.2.tgz" - } - } + "resolved": "https://registry.npmjs.org/babel-core/-/babel-core-5.8.38.tgz" }, "babylon": { "version": "5.8.38", "from": "babylon@>=5.8.38 <6.0.0", "resolved": "https://registry.npmjs.org/babylon/-/babylon-5.8.38.tgz" }, + "bluebird": { + "version": "2.10.2", + "from": "bluebird@>=2.9.33 <3.0.0", + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-2.10.2.tgz" + }, "globals": { "version": "6.4.1", "from": "globals@>=6.4.0 <7.0.0", @@ -548,28 +725,14 @@ "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-6.2.4.tgz" }, "babel-messages": { - "version": "6.7.2", - "from": "babel-messages@>=6.7.2 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-6.7.2.tgz", - "dependencies": { - "babel-runtime": { - "version": "5.8.38", - "from": "babel-runtime@>=5.0.0 <6.0.0", - "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-5.8.38.tgz" - } - } + "version": "6.8.0", + "from": "babel-messages@>=6.8.0 <7.0.0", + "resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-6.8.0.tgz" }, "babel-plugin-check-es2015-constants": { - "version": "6.7.2", + "version": "6.8.0", "from": "babel-plugin-check-es2015-constants@>=6.3.13 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-plugin-check-es2015-constants/-/babel-plugin-check-es2015-constants-6.7.2.tgz", - "dependencies": { - "babel-runtime": { - "version": "5.8.38", - "from": "babel-runtime@>=5.0.0 <6.0.0", - "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-5.8.38.tgz" - } - } + "resolved": "https://registry.npmjs.org/babel-plugin-check-es2015-constants/-/babel-plugin-check-es2015-constants-6.8.0.tgz" }, "babel-plugin-constant-folding": { "version": "1.0.1", @@ -644,124 +807,54 @@ "resolved": "https://registry.npmjs.org/babel-plugin-runtime/-/babel-plugin-runtime-1.0.7.tgz" }, "babel-plugin-syntax-async-functions": { - "version": "6.5.0", + "version": "6.8.0", "from": "babel-plugin-syntax-async-functions@>=6.3.13 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-plugin-syntax-async-functions/-/babel-plugin-syntax-async-functions-6.5.0.tgz", - "dependencies": { - "babel-runtime": { - "version": "5.8.38", - "from": "babel-runtime@>=5.0.0 <6.0.0", - "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-5.8.38.tgz" - } - } + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-async-functions/-/babel-plugin-syntax-async-functions-6.8.0.tgz" }, "babel-plugin-syntax-class-constructor-call": { - "version": "6.5.0", + "version": "6.8.0", "from": "babel-plugin-syntax-class-constructor-call@>=6.3.13 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-plugin-syntax-class-constructor-call/-/babel-plugin-syntax-class-constructor-call-6.5.0.tgz", - "dependencies": { - "babel-runtime": { - "version": "5.8.38", - "from": "babel-runtime@>=5.0.0 <6.0.0", - "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-5.8.38.tgz" - } - } + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-class-constructor-call/-/babel-plugin-syntax-class-constructor-call-6.8.0.tgz" }, "babel-plugin-syntax-class-properties": { - "version": "6.5.0", + "version": "6.8.0", "from": "babel-plugin-syntax-class-properties@>=6.3.13 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-plugin-syntax-class-properties/-/babel-plugin-syntax-class-properties-6.5.0.tgz", - "dependencies": { - "babel-runtime": { - "version": "5.8.38", - "from": "babel-runtime@>=5.0.0 <6.0.0", - "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-5.8.38.tgz" - } - } + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-class-properties/-/babel-plugin-syntax-class-properties-6.8.0.tgz" }, "babel-plugin-syntax-decorators": { - "version": "6.5.0", + "version": "6.8.0", "from": "babel-plugin-syntax-decorators@>=6.3.13 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-plugin-syntax-decorators/-/babel-plugin-syntax-decorators-6.5.0.tgz", - "dependencies": { - "babel-runtime": { - "version": "5.8.38", - "from": "babel-runtime@>=5.0.0 <6.0.0", - "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-5.8.38.tgz" - } - } + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-decorators/-/babel-plugin-syntax-decorators-6.8.0.tgz" }, "babel-plugin-syntax-do-expressions": { - "version": "6.5.0", + "version": "6.8.0", "from": "babel-plugin-syntax-do-expressions@>=6.3.13 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-plugin-syntax-do-expressions/-/babel-plugin-syntax-do-expressions-6.5.0.tgz", - "dependencies": { - "babel-runtime": { - "version": "5.8.38", - "from": "babel-runtime@>=5.0.0 <6.0.0", - "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-5.8.38.tgz" - } - } + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-do-expressions/-/babel-plugin-syntax-do-expressions-6.8.0.tgz" }, "babel-plugin-syntax-exponentiation-operator": { - "version": "6.5.0", - "from": "babel-plugin-syntax-exponentiation-operator@>=6.3.13 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-plugin-syntax-exponentiation-operator/-/babel-plugin-syntax-exponentiation-operator-6.5.0.tgz", - "dependencies": { - "babel-runtime": { - "version": "5.8.38", - "from": "babel-runtime@>=5.0.0 <6.0.0", - "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-5.8.38.tgz" - } - } - }, - "babel-plugin-syntax-export-extensions": { - "version": "6.5.0", - "from": "babel-plugin-syntax-export-extensions@>=6.3.13 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-plugin-syntax-export-extensions/-/babel-plugin-syntax-export-extensions-6.5.0.tgz", - "dependencies": { - "babel-runtime": { - "version": "5.8.38", - "from": "babel-runtime@>=5.0.0 <6.0.0", - "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-5.8.38.tgz" - } - } + "version": "6.8.0", + "from": "babel-plugin-syntax-exponentiation-operator@>=6.3.13 <7.0.0", + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-exponentiation-operator/-/babel-plugin-syntax-exponentiation-operator-6.8.0.tgz" + }, + "babel-plugin-syntax-export-extensions": { + "version": "6.8.0", + "from": "babel-plugin-syntax-export-extensions@>=6.3.13 <7.0.0", + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-export-extensions/-/babel-plugin-syntax-export-extensions-6.8.0.tgz" }, "babel-plugin-syntax-flow": { - "version": "6.5.0", + "version": "6.8.0", "from": "babel-plugin-syntax-flow@>=6.3.13 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-plugin-syntax-flow/-/babel-plugin-syntax-flow-6.5.0.tgz", - "dependencies": { - "babel-runtime": { - "version": "5.8.38", - "from": "babel-runtime@>=5.0.0 <6.0.0", - "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-5.8.38.tgz" - } - } + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-flow/-/babel-plugin-syntax-flow-6.8.0.tgz" }, "babel-plugin-syntax-function-bind": { - "version": "6.5.0", + "version": "6.8.0", "from": "babel-plugin-syntax-function-bind@>=6.3.13 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-plugin-syntax-function-bind/-/babel-plugin-syntax-function-bind-6.5.0.tgz", - "dependencies": { - "babel-runtime": { - "version": "5.8.38", - "from": "babel-runtime@>=5.0.0 <6.0.0", - "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-5.8.38.tgz" - } - } + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-function-bind/-/babel-plugin-syntax-function-bind-6.8.0.tgz" }, "babel-plugin-syntax-jsx": { - "version": "6.5.0", + "version": "6.8.0", "from": "babel-plugin-syntax-jsx@>=6.3.13 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-plugin-syntax-jsx/-/babel-plugin-syntax-jsx-6.5.0.tgz", - "dependencies": { - "babel-runtime": { - "version": "5.8.38", - "from": "babel-runtime@>=5.0.0 <6.0.0", - "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-5.8.38.tgz" - } - } + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-jsx/-/babel-plugin-syntax-jsx-6.8.0.tgz" }, "babel-plugin-syntax-object-rest-spread": { "version": "6.5.0", @@ -972,6 +1065,53 @@ } } }, + "babel-plugin-transform-es2015-modules-amd": { + "version": "6.8.0", + "from": "babel-plugin-transform-es2015-modules-amd@>=6.6.5 <7.0.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-amd/-/babel-plugin-transform-es2015-modules-amd-6.8.0.tgz", + "dependencies": { + "babel-code-frame": { + "version": "6.8.0", + "from": "babel-code-frame@>=6.8.0 <7.0.0", + "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.8.0.tgz" + }, + "babel-messages": { + "version": "6.8.0", + "from": "babel-messages@>=6.8.0 <7.0.0", + "resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-6.8.0.tgz" + }, + "babel-plugin-transform-es2015-modules-commonjs": { + "version": "6.8.0", + "from": "babel-plugin-transform-es2015-modules-commonjs@>=6.8.0 <7.0.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-commonjs/-/babel-plugin-transform-es2015-modules-commonjs-6.8.0.tgz" + }, + "babel-plugin-transform-strict-mode": { + "version": "6.8.0", + "from": "babel-plugin-transform-strict-mode@>=6.8.0 <7.0.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-strict-mode/-/babel-plugin-transform-strict-mode-6.8.0.tgz" + }, + "babel-template": { + "version": "6.8.0", + "from": "babel-template@>=6.8.0 <7.0.0", + "resolved": "https://registry.npmjs.org/babel-template/-/babel-template-6.8.0.tgz" + }, + "babel-traverse": { + "version": "6.8.0", + "from": "babel-traverse@>=6.8.0 <7.0.0", + "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.8.0.tgz" + }, + "babel-types": { + "version": "6.8.1", + "from": "babel-types@>=6.8.0 <7.0.0", + "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.8.1.tgz" + }, + "lodash": { + "version": "3.10.1", + "from": "lodash@>=3.10.1 <4.0.0", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-3.10.1.tgz" + } + } + }, "babel-plugin-transform-es2015-modules-commonjs": { "version": "6.7.0", "from": "babel-plugin-transform-es2015-modules-commonjs@>=6.6.0 <7.0.0", @@ -1222,7 +1362,7 @@ "dependencies": { "core-js": { "version": "1.2.6", - "from": "core-js@>=1.0.0 <2.0.0", + "from": "core-js@1.2.6", "resolved": "https://registry.npmjs.org/core-js/-/core-js-1.2.6.tgz" } } @@ -1269,38 +1409,9 @@ "from": "babel-regenerator-runtime@>=6.3.13 <7.0.0", "resolved": "https://registry.npmjs.org/babel-regenerator-runtime/-/babel-regenerator-runtime-6.5.0.tgz" }, - "babel-register": { - "version": "6.7.2", - "from": "babel-register@>=6.6.5 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-register/-/babel-register-6.7.2.tgz", - "dependencies": { - "babel-runtime": { - "version": "5.8.38", - "from": "babel-runtime@>=5.0.0 <6.0.0", - "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-5.8.38.tgz", - "dependencies": { - "core-js": { - "version": "1.2.6", - "from": "core-js@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-1.2.6.tgz" - } - } - }, - "core-js": { - "version": "2.2.1", - "from": "core-js@>=2.1.0 <3.0.0", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.2.1.tgz" - }, - "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-runtime": { "version": "6.6.1", - "from": "babel-runtime@latest", + "from": "babel-runtime@>=6.6.1 <7.0.0", "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.6.1.tgz", "dependencies": { "core-js": { @@ -1400,7 +1511,7 @@ }, "big.js": { "version": "3.1.3", - "from": "big.js@>=3.0.2 <4.0.0", + "from": "big.js@>=3.1.3 <4.0.0", "resolved": "https://registry.npmjs.org/big.js/-/big.js-3.1.3.tgz" }, "bin-version": { @@ -1441,6 +1552,7 @@ "bootstrap-loader": { "version": "1.0.10", "from": "bootstrap-loader@>=1.0.10 <2.0.0", + "resolved": "https://registry.npmjs.org/bootstrap-loader/-/bootstrap-loader-1.0.10.tgz", "dependencies": { "semver": { "version": "5.1.0", @@ -1548,11 +1660,6 @@ } } }, - "character-parser": { - "version": "1.2.1", - "from": "character-parser@1.2.1", - "resolved": "https://registry.npmjs.org/character-parser/-/character-parser-1.2.1.tgz" - }, "chokidar": { "version": "1.4.3", "from": "chokidar@>=1.0.0 <2.0.0", @@ -1565,7 +1672,7 @@ }, "classnames": { "version": "2.2.3", - "from": "classnames@>=2.1.5 <3.0.0", + "from": "classnames@>=2.2.3 <3.0.0", "resolved": "https://registry.npmjs.org/classnames/-/classnames-2.2.3.tgz" }, "clean-css": { @@ -1639,11 +1746,6 @@ } } }, - "color-convert": { - "version": "1.0.0", - "from": "color-convert@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.0.0.tgz" - }, "color-name": { "version": "1.1.1", "from": "color-name@>=1.0.0 <2.0.0", @@ -1830,21 +1932,11 @@ "from": "css-loader@>=0.23.1 <0.24.0", "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-0.23.1.tgz" }, - "css-parse": { - "version": "1.0.4", - "from": "css-parse@1.0.4", - "resolved": "https://registry.npmjs.org/css-parse/-/css-parse-1.0.4.tgz" - }, "css-selector-tokenizer": { "version": "0.5.4", "from": "css-selector-tokenizer@>=0.5.1 <0.6.0", "resolved": "https://registry.npmjs.org/css-selector-tokenizer/-/css-selector-tokenizer-0.5.4.tgz" }, - "css-stringify": { - "version": "1.0.5", - "from": "css-stringify@1.0.5", - "resolved": "https://registry.npmjs.org/css-stringify/-/css-stringify-1.0.5.tgz" - }, "cssesc": { "version": "0.1.0", "from": "cssesc@>=0.1.0 <0.2.0", @@ -1951,8 +2043,7 @@ }, "esprima-fb": { "version": "15001.1001.0-dev-harmony-fb", - "from": "esprima-fb@>=15001.1001.0-dev-harmony-fb <15001.1002.0", - "resolved": "https://registry.npmjs.org/esprima-fb/-/esprima-fb-15001.1001.0-dev-harmony-fb.tgz" + "from": "esprima-fb@>=15001.1001.0-dev-harmony-fb <15001.1002.0" }, "wordwrap": { "version": "0.0.2", @@ -2030,6 +2121,11 @@ } } }, + "doctypes": { + "version": "1.0.0", + "from": "doctypes@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/doctypes/-/doctypes-1.0.0.tgz" + }, "dom-helpers": { "version": "2.4.0", "from": "dom-helpers@>=2.4.0 <3.0.0", @@ -2087,6 +2183,11 @@ "from": "ee-first@1.1.1", "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz" }, + "emojis-list": { + "version": "1.0.2", + "from": "emojis-list@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-1.0.2.tgz" + }, "enhanced-resolve": { "version": "0.9.1", "from": "enhanced-resolve@>=0.9.0 <0.10.0", @@ -2125,9 +2226,9 @@ "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.11.tgz" }, "es5-shim": { - "version": "4.5.7", - "from": "es5-shim@>=4.5.7 <5.0.0", - "resolved": "https://registry.npmjs.org/es5-shim/-/es5-shim-4.5.7.tgz" + "version": "4.5.8", + "from": "es5-shim@>=4.5.8 <5.0.0", + "resolved": "https://registry.npmjs.org/es5-shim/-/es5-shim-4.5.8.tgz" }, "es6-iterator": { "version": "2.0.0", @@ -2188,7 +2289,7 @@ }, "escope": { "version": "3.6.0", - "from": "escope@>=3.2.0 <4.0.0", + "from": "escope@>=3.6.0 <4.0.0", "resolved": "https://registry.npmjs.org/escope/-/escope-3.6.0.tgz" }, "eslint-config-airbnb": { @@ -2197,9 +2298,9 @@ "resolved": "https://registry.npmjs.org/eslint-config-airbnb/-/eslint-config-airbnb-6.2.0.tgz" }, "espree": { - "version": "3.1.3", - "from": "espree@3.1.3", - "resolved": "https://registry.npmjs.org/espree/-/espree-3.1.3.tgz" + "version": "3.1.4", + "from": "espree@3.1.4", + "resolved": "https://registry.npmjs.org/espree/-/espree-3.1.4.tgz" }, "esprima": { "version": "2.7.2", @@ -2220,7 +2321,7 @@ }, "estraverse": { "version": "4.2.0", - "from": "estraverse@>=4.1.0 <5.0.0", + "from": "estraverse@>=4.2.0 <5.0.0", "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.2.0.tgz" }, "esutils": { @@ -2438,9 +2539,9 @@ "resolved": "https://registry.npmjs.org/fs-readdir-recursive/-/fs-readdir-recursive-0.1.2.tgz" }, "fsevents": { - "version": "1.0.8", + "version": "1.0.12", "from": "fsevents@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.0.8.tgz", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.0.12.tgz", "dependencies": { "ansi": { "version": "0.3.1", @@ -2453,14 +2554,14 @@ "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" + "version": "2.2.1", + "from": "ansi-styles@^2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz" }, "are-we-there-yet": { - "version": "1.0.6", - "from": "are-we-there-yet@~1.0.6", - "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.0.6.tgz" + "version": "1.1.2", + "from": "are-we-there-yet@~1.1.2", + "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.2.tgz" }, "asn1": { "version": "0.2.3", @@ -2483,21 +2584,33 @@ "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.6.0.tgz" }, "aws4": { - "version": "1.2.1", + "version": "1.3.2", "from": "aws4@^1.2.1", - "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.2.1.tgz", + "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.3.2.tgz", "dependencies": { "lru-cache": { - "version": "2.7.3", - "from": "lru-cache@^2.6.5", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-2.7.3.tgz" + "version": "4.0.1", + "from": "lru-cache@^4.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.0.1.tgz", + "dependencies": { + "pseudomap": { + "version": "1.0.2", + "from": "pseudomap@^1.0.1", + "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz" + }, + "yallist": { + "version": "2.0.0", + "from": "yallist@^2.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.0.0.tgz" + } + } } } }, "bl": { - "version": "1.0.2", + "version": "1.0.3", "from": "bl@~1.0.0", - "resolved": "https://registry.npmjs.org/bl/-/bl-1.0.2.tgz" + "resolved": "https://registry.npmjs.org/bl/-/bl-1.0.3.tgz" }, "block-stream": { "version": "0.0.8", @@ -2515,9 +2628,9 @@ "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.11.0.tgz" }, "chalk": { - "version": "1.1.1", + "version": "1.1.3", "from": "chalk@^1.1.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.1.tgz" + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz" }, "combined-stream": { "version": "1.0.5", @@ -2540,9 +2653,16 @@ "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-2.0.5.tgz" }, "dashdash": { - "version": "1.12.2", + "version": "1.13.0", "from": "dashdash@>=1.10.1 <2.0.0", - "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.12.2.tgz" + "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.13.0.tgz", + "dependencies": { + "assert-plus": { + "version": "1.0.0", + "from": "assert-plus@^1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz" + } + } }, "debug": { "version": "2.2.0", @@ -2570,9 +2690,9 @@ "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz" }, "escape-string-regexp": { - "version": "1.0.4", + "version": "1.0.5", "from": "escape-string-regexp@^1.0.2", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.4.tgz" + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz" }, "extend": { "version": "3.0.0", @@ -2590,9 +2710,9 @@ "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz" }, "form-data": { - "version": "1.0.0-rc3", + "version": "1.0.0-rc4", "from": "form-data@~1.0.0-rc3", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-1.0.0-rc3.tgz" + "resolved": "https://registry.npmjs.org/form-data/-/form-data-1.0.0-rc4.tgz" }, "fstream": { "version": "1.0.8", @@ -2610,9 +2730,9 @@ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.0.tgz", "dependencies": { "brace-expansion": { - "version": "1.1.2", + "version": "1.1.3", "from": "brace-expansion@^1.0.0", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.2.tgz", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.3.tgz", "dependencies": { "balanced-match": { "version": "0.3.0", @@ -2631,9 +2751,9 @@ } }, "gauge": { - "version": "1.2.5", + "version": "1.2.7", "from": "gauge@~1.2.5", - "resolved": "https://registry.npmjs.org/gauge/-/gauge-1.2.5.tgz" + "resolved": "https://registry.npmjs.org/gauge/-/gauge-1.2.7.tgz" }, "generate-function": { "version": "2.0.0", @@ -2696,9 +2816,9 @@ "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.4.tgz" }, "is-my-json-valid": { - "version": "2.12.4", + "version": "2.13.1", "from": "is-my-json-valid@^2.12.4", - "resolved": "https://registry.npmjs.org/is-my-json-valid/-/is-my-json-valid-2.12.4.tgz" + "resolved": "https://registry.npmjs.org/is-my-json-valid/-/is-my-json-valid-2.13.1.tgz" }, "is-property": { "version": "1.0.2", @@ -2711,9 +2831,9 @@ "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz" }, "isarray": { - "version": "0.0.1", - "from": "isarray@0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz" + "version": "1.0.0", + "from": "isarray@~1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz" }, "isstream": { "version": "0.1.2", @@ -2750,50 +2870,40 @@ "from": "jsprim@^1.2.2", "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.2.2.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._root": { - "version": "3.0.0", - "from": "lodash._root@^3.0.0", - "resolved": "https://registry.npmjs.org/lodash._root/-/lodash._root-3.0.0.tgz" - }, "lodash.pad": { - "version": "3.3.0", - "from": "lodash.pad@^3.0.0", - "resolved": "https://registry.npmjs.org/lodash.pad/-/lodash.pad-3.3.0.tgz" + "version": "4.1.0", + "from": "lodash.pad@^4.1.0", + "resolved": "https://registry.npmjs.org/lodash.pad/-/lodash.pad-4.1.0.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.padend": { + "version": "4.2.0", + "from": "lodash.padend@^4.1.0", + "resolved": "https://registry.npmjs.org/lodash.padend/-/lodash.padend-4.2.0.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.padstart": { + "version": "4.2.0", + "from": "lodash.padstart@^4.1.0", + "resolved": "https://registry.npmjs.org/lodash.padstart/-/lodash.padstart-4.2.0.tgz" }, "lodash.repeat": { - "version": "3.2.0", - "from": "lodash.repeat@^3.0.0", - "resolved": "https://registry.npmjs.org/lodash.repeat/-/lodash.repeat-3.2.0.tgz" + "version": "4.0.0", + "from": "lodash.repeat@^4.0.0", + "resolved": "https://registry.npmjs.org/lodash.repeat/-/lodash.repeat-4.0.0.tgz" + }, + "lodash.tostring": { + "version": "4.1.2", + "from": "lodash.tostring@^4.0.0", + "resolved": "https://registry.npmjs.org/lodash.tostring/-/lodash.tostring-4.1.2.tgz" }, "mime-db": { - "version": "1.21.0", - "from": "mime-db@~1.21.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.21.0.tgz" + "version": "1.22.0", + "from": "mime-db@~1.22.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.22.0.tgz" }, "mime-types": { - "version": "2.1.9", + "version": "2.1.10", "from": "mime-types@~2.1.7", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.9.tgz" + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.10.tgz" }, "minimist": { "version": "0.0.8", @@ -2810,10 +2920,15 @@ "from": "ms@0.7.1", "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.1.tgz" }, + "nan": { + "version": "2.3.3", + "from": "nan@>=2.3.0 <3.0.0", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.3.3.tgz" + }, "node-pre-gyp": { - "version": "0.6.21", - "from": "node-pre-gyp@>=0.6.21 <0.7.0", - "resolved": "https://registry.npmjs.org/node-pre-gyp/-/node-pre-gyp-0.6.21.tgz", + "version": "0.6.25", + "from": "node-pre-gyp@0.6.25", + "resolved": "https://registry.npmjs.org/node-pre-gyp/-/node-pre-gyp-0.6.25.tgz", "dependencies": { "nopt": { "version": "3.0.6", @@ -2835,9 +2950,9 @@ "resolved": "https://registry.npmjs.org/node-uuid/-/node-uuid-1.4.7.tgz" }, "npmlog": { - "version": "2.0.2", + "version": "2.0.3", "from": "npmlog@~2.0.0", - "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-2.0.2.tgz" + "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-2.0.3.tgz" }, "oauth-sign": { "version": "0.8.1", @@ -2846,7 +2961,7 @@ }, "once": { "version": "1.3.3", - "from": "once@^1.3.0", + "from": "once@~1.3.3", "resolved": "https://registry.npmjs.org/once/-/once-1.3.3.tgz" }, "pinkie": { @@ -2882,9 +2997,9 @@ } }, "readable-stream": { - "version": "2.0.5", + "version": "2.0.6", "from": "readable-stream@^2.0.0 || ^1.1.13", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.0.5.tgz" + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.0.6.tgz" }, "request": { "version": "2.69.0", @@ -2892,14 +3007,14 @@ "resolved": "https://registry.npmjs.org/request/-/request-2.69.0.tgz" }, "rimraf": { - "version": "2.5.1", + "version": "2.5.2", "from": "rimraf@~2.5.0", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.5.1.tgz", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.5.2.tgz", "dependencies": { "glob": { - "version": "6.0.4", - "from": "glob@^6.0.1", - "resolved": "https://registry.npmjs.org/glob/-/glob-6.0.4.tgz", + "version": "7.0.3", + "from": "glob@^7.0.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.0.3.tgz", "dependencies": { "inflight": { "version": "1.0.4", @@ -2924,9 +3039,9 @@ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.0.tgz", "dependencies": { "brace-expansion": { - "version": "1.1.2", + "version": "1.1.3", "from": "brace-expansion@^1.0.0", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.2.tgz", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.3.tgz", "dependencies": { "balanced-match": { "version": "0.3.0", @@ -2974,9 +3089,9 @@ "resolved": "https://registry.npmjs.org/sntp/-/sntp-1.0.9.tgz" }, "sshpk": { - "version": "1.7.3", + "version": "1.7.4", "from": "sshpk@^1.7.0", - "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.7.3.tgz" + "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.7.4.tgz" }, "string_decoder": { "version": "0.10.31", @@ -2989,9 +3104,9 @@ "resolved": "https://registry.npmjs.org/stringstream/-/stringstream-0.0.5.tgz" }, "strip-ansi": { - "version": "3.0.0", + "version": "3.0.1", "from": "strip-ansi@^3.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.0.tgz" + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz" }, "strip-json-comments": { "version": "1.0.4", @@ -3014,9 +3129,9 @@ "resolved": "https://registry.npmjs.org/tar-pack/-/tar-pack-3.1.3.tgz" }, "tough-cookie": { - "version": "2.2.1", + "version": "2.2.2", "from": "tough-cookie@~2.2.0", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.2.1.tgz" + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.2.2.tgz" }, "tunnel-agent": { "version": "0.4.2", @@ -3024,9 +3139,9 @@ "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.4.2.tgz" }, "tweetnacl": { - "version": "0.13.3", + "version": "0.14.3", "from": "tweetnacl@>=0.13.0 <1.0.0", - "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.13.3.tgz" + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.3.tgz" }, "uid-number": { "version": "0.0.6", @@ -3213,13 +3328,13 @@ }, "hawk": { "version": "3.1.3", - "from": "hawk@>=3.1.0 <3.2.0", + "from": "hawk@>=3.1.3 <3.2.0", "resolved": "https://registry.npmjs.org/hawk/-/hawk-3.1.3.tgz" }, "history": { - "version": "2.0.1", - "from": "history@>=2.0.0 <3.0.0", - "resolved": "https://registry.npmjs.org/history/-/history-2.0.1.tgz" + "version": "2.1.1", + "from": "history@>=2.0.1 <3.0.0", + "resolved": "https://registry.npmjs.org/history/-/history-2.1.1.tgz" }, "hoek": { "version": "2.16.3", @@ -3285,7 +3400,7 @@ }, "iconv-lite": { "version": "0.4.13", - "from": "iconv-lite@0.4.13", + "from": "iconv-lite@>=0.4.13 <0.5.0", "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.13.tgz" }, "icss-replace-symbols": { @@ -3299,9 +3414,9 @@ "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.6.tgz" }, "ignore": { - "version": "3.0.14", - "from": "ignore@>=3.0.10 <4.0.0", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-3.0.14.tgz" + "version": "3.1.2", + "from": "ignore@>=3.1.2 <4.0.0", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-3.1.2.tgz" }, "immutable": { "version": "3.7.6", @@ -3429,9 +3544,21 @@ }, "is-equal-shallow": { "version": "0.1.3", - "from": "is-equal-shallow@>=0.1.1 <0.2.0", + "from": "is-equal-shallow@>=0.1.3 <0.2.0", "resolved": "https://registry.npmjs.org/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz" }, + "is-expression": { + "version": "2.0.0", + "from": "is-expression@>=2.0.0 <3.0.0", + "resolved": "https://registry.npmjs.org/is-expression/-/is-expression-2.0.0.tgz", + "dependencies": { + "acorn": { + "version": "3.0.4", + "from": "acorn@>=3.0.2 <3.1.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-3.0.4.tgz" + } + } + }, "is-extendable": { "version": "0.1.1", "from": "is-extendable@>=0.1.1 <0.2.0", @@ -3507,6 +3634,11 @@ "from": "is-property@>=1.0.0 <2.0.0", "resolved": "https://registry.npmjs.org/is-property/-/is-property-1.0.2.tgz" }, + "is-regex": { + "version": "1.0.3", + "from": "is-regex@>=1.0.3 <2.0.0", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.3.tgz" + }, "is-relative": { "version": "0.1.3", "from": "is-relative@>=0.1.0 <0.2.0", @@ -3552,6 +3684,23 @@ "from": "isstream@>=0.1.2 <0.2.0", "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz" }, + "jade": { + "version": "0.26.3", + "from": "jade@0.26.3", + "resolved": "https://registry.npmjs.org/jade/-/jade-0.26.3.tgz", + "dependencies": { + "commander": { + "version": "0.6.1", + "from": "commander@0.6.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-0.6.1.tgz" + }, + "mkdirp": { + "version": "0.3.0", + "from": "mkdirp@0.3.0", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.3.0.tgz" + } + } + }, "jodid25519": { "version": "1.0.2", "from": "jodid25519@>=1.0.0 <2.0.0", @@ -3564,13 +3713,19 @@ }, "jquery-ujs": { "version": "1.2.1", - "from": "jquery-ujs@>=1.2.1 <2.0.0" + "from": "jquery-ujs@>=1.2.1 <2.0.0", + "resolved": "https://registry.npmjs.org/jquery-ujs/-/jquery-ujs-1.2.1.tgz" }, "js-base64": { "version": "2.1.9", "from": "js-base64@>=2.1.9 <3.0.0", "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-2.1.9.tgz" }, + "js-stringify": { + "version": "1.0.2", + "from": "js-stringify@>=1.0.1 <2.0.0", + "resolved": "https://registry.npmjs.org/js-stringify/-/js-stringify-1.0.2.tgz" + }, "js-tokens": { "version": "1.0.2", "from": "js-tokens@>=1.0.1 <2.0.0", @@ -3675,23 +3830,6 @@ } } }, - "jstransformer": { - "version": "0.0.2", - "from": "jstransformer@0.0.2", - "resolved": "https://registry.npmjs.org/jstransformer/-/jstransformer-0.0.2.tgz", - "dependencies": { - "asap": { - "version": "1.0.0", - "from": "asap@>=1.0.0 <1.1.0", - "resolved": "https://registry.npmjs.org/asap/-/asap-1.0.0.tgz" - }, - "promise": { - "version": "6.1.0", - "from": "promise@>=6.0.1 <7.0.0", - "resolved": "https://registry.npmjs.org/promise/-/promise-6.1.0.tgz" - } - } - }, "JSV": { "version": "4.0.2", "from": "JSV@>=4.0.0", @@ -3717,11 +3855,6 @@ "from": "lcid@>=1.0.0 <2.0.0", "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz" }, - "left-pad": { - "version": "0.0.3", - "from": "left-pad@0.0.3", - "resolved": "https://registry.npmjs.org/left-pad/-/left-pad-0.0.3.tgz" - }, "leven": { "version": "1.0.2", "from": "leven@>=1.0.2 <2.0.0", @@ -3732,25 +3865,27 @@ "from": "levn@>=0.3.0 <0.4.0", "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz" }, - "line-numbers": { - "version": "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.1.0", "from": "load-json-file@>=1.0.0 <2.0.0", "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz" }, "loader-utils": { - "version": "0.2.13", - "from": "loader-utils@>=0.2.13 <0.3.0", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-0.2.13.tgz" + "version": "0.2.14", + "from": "loader-utils@>=0.2.14 <0.3.0", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-0.2.14.tgz", + "dependencies": { + "json5": { + "version": "0.5.0", + "from": "json5@>=0.5.0 <0.6.0", + "resolved": "https://registry.npmjs.org/json5/-/json5-0.5.0.tgz" + } + } }, "lodash": { - "version": "4.8.2", - "from": "lodash@>=4.8.2 <5.0.0", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.8.2.tgz" + "version": "4.12.0", + "from": "lodash@>=4.11.0 <5.0.0", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.12.0.tgz" }, "lodash-compat": { "version": "3.10.2", @@ -3758,9 +3893,9 @@ "resolved": "https://registry.npmjs.org/lodash-compat/-/lodash-compat-3.10.2.tgz" }, "lodash-es": { - "version": "4.6.1", + "version": "4.12.0", "from": "lodash-es@>=4.2.1 <5.0.0", - "resolved": "https://registry.npmjs.org/lodash-es/-/lodash-es-4.6.1.tgz" + "resolved": "https://registry.npmjs.org/lodash-es/-/lodash-es-4.12.0.tgz" }, "lodash._baseassign": { "version": "3.2.0", @@ -3772,16 +3907,16 @@ "from": "lodash._basecopy@>=3.0.0 <4.0.0", "resolved": "https://registry.npmjs.org/lodash._basecopy/-/lodash._basecopy-3.0.1.tgz" }, - "lodash._baseflatten": { - "version": "3.1.4", - "from": "lodash._baseflatten@>=3.0.0 <4.0.0", - "resolved": "https://registry.npmjs.org/lodash._baseflatten/-/lodash._baseflatten-3.1.4.tgz" - }, "lodash._basefor": { "version": "3.0.3", "from": "lodash._basefor@>=3.0.0 <4.0.0", "resolved": "https://registry.npmjs.org/lodash._basefor/-/lodash._basefor-3.0.3.tgz" }, + "lodash._baseiteratee": { + "version": "4.6.1", + "from": "lodash._baseiteratee@>=4.6.0 <4.7.0", + "resolved": "https://registry.npmjs.org/lodash._baseiteratee/-/lodash._baseiteratee-4.6.1.tgz" + }, "lodash._bindcallback": { "version": "3.0.1", "from": "lodash._bindcallback@>=3.0.0 <4.0.0", @@ -3807,21 +3942,16 @@ "from": "lodash._isiterateecall@>=3.0.0 <4.0.0", "resolved": "https://registry.npmjs.org/lodash._isiterateecall/-/lodash._isiterateecall-3.0.9.tgz" }, - "lodash._pickbyarray": { - "version": "3.0.2", - "from": "lodash._pickbyarray@>=3.0.0 <4.0.0", - "resolved": "https://registry.npmjs.org/lodash._pickbyarray/-/lodash._pickbyarray-3.0.2.tgz" - }, - "lodash._pickbycallback": { - "version": "3.0.0", - "from": "lodash._pickbycallback@>=3.0.0 <4.0.0", - "resolved": "https://registry.npmjs.org/lodash._pickbycallback/-/lodash._pickbycallback-3.0.0.tgz" - }, "lodash._root": { "version": "3.0.1", "from": "lodash._root@>=3.0.0 <4.0.0", "resolved": "https://registry.npmjs.org/lodash._root/-/lodash._root-3.0.1.tgz" }, + "lodash._stringtopath": { + "version": "4.7.1", + "from": "lodash._stringtopath@>=4.7.0 <4.8.0", + "resolved": "https://registry.npmjs.org/lodash._stringtopath/-/lodash._stringtopath-4.7.1.tgz" + }, "lodash.assign": { "version": "3.2.0", "from": "lodash.assign@>=3.0.0 <4.0.0", @@ -3882,16 +4012,28 @@ "from": "lodash.padstart@>=4.1.0 <5.0.0", "resolved": "https://registry.npmjs.org/lodash.padstart/-/lodash.padstart-4.2.0.tgz" }, - "lodash.pick": { - "version": "3.1.0", - "from": "lodash.pick@>=3.1.0 <4.0.0", - "resolved": "https://registry.npmjs.org/lodash.pick/-/lodash.pick-3.1.0.tgz" + "lodash.pickby": { + "version": "4.3.0", + "from": "lodash.pickby@>=4.0.0 <5.0.0", + "resolved": "https://registry.npmjs.org/lodash.pickby/-/lodash.pickby-4.3.0.tgz", + "dependencies": { + "lodash.keysin": { + "version": "4.1.3", + "from": "lodash.keysin@>=4.0.0 <5.0.0", + "resolved": "https://registry.npmjs.org/lodash.keysin/-/lodash.keysin-4.1.3.tgz" + } + } }, "lodash.repeat": { "version": "4.0.0", "from": "lodash.repeat@>=4.0.0 <5.0.0", "resolved": "https://registry.npmjs.org/lodash.repeat/-/lodash.repeat-4.0.0.tgz" }, + "lodash.rest": { + "version": "4.0.2", + "from": "lodash.rest@>=4.0.0 <5.0.0", + "resolved": "https://registry.npmjs.org/lodash.rest/-/lodash.rest-4.0.2.tgz" + }, "lodash.restparam": { "version": "3.6.1", "from": "lodash.restparam@>=3.0.0 <4.0.0", @@ -4056,7 +4198,8 @@ "dependencies": { "minimatch": { "version": "2.0.10", - "from": "minimatch@>=2.0.1 <3.0.0" + "from": "minimatch@2.0.10", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-2.0.10.tgz" } } }, @@ -4078,9 +4221,9 @@ "resolved": "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-0.5.3.tgz", "dependencies": { "readable-stream": { - "version": "1.1.13", + "version": "1.1.14", "from": "readable-stream@>=1.1.13 <2.0.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.13.tgz" + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz" } } }, @@ -4168,7 +4311,7 @@ }, "oauth-sign": { "version": "0.8.1", - "from": "oauth-sign@>=0.8.0 <0.9.0", + "from": "oauth-sign@>=0.8.1 <0.9.0", "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.8.1.tgz" }, "object-assign": { @@ -4228,7 +4371,14 @@ "original": { "version": "1.0.0", "from": "original@>=0.0.5", - "resolved": "https://registry.npmjs.org/original/-/original-1.0.0.tgz" + "resolved": "https://registry.npmjs.org/original/-/original-1.0.0.tgz", + "dependencies": { + "url-parse": { + "version": "1.0.5", + "from": "url-parse@>=1.0.0 <1.1.0", + "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.0.5.tgz" + } + } }, "os-browserify": { "version": "0.1.2", @@ -4541,9 +4691,9 @@ "resolved": "https://registry.npmjs.org/private/-/private-0.1.6.tgz" }, "process": { - "version": "0.11.2", + "version": "0.11.3", "from": "process@>=0.11.0 <0.12.0", - "resolved": "https://registry.npmjs.org/process/-/process-0.11.2.tgz" + "resolved": "https://registry.npmjs.org/process/-/process-0.11.3.tgz" }, "process-nextick-args": { "version": "1.0.6", @@ -4557,7 +4707,7 @@ }, "promise": { "version": "7.1.1", - "from": "promise@>=7.0.3 <8.0.0", + "from": "promise@>=7.1.1 <8.0.0", "resolved": "https://registry.npmjs.org/promise/-/promise-7.1.1.tgz" }, "prompt": { @@ -4585,10 +4735,98 @@ "from": "pseudomap@>=1.0.1 <2.0.0", "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz" }, + "pug-attrs": { + "version": "2.0.1", + "from": "pug-attrs@>=2.0.1 <3.0.0", + "resolved": "https://registry.npmjs.org/pug-attrs/-/pug-attrs-2.0.1.tgz" + }, + "pug-code-gen": { + "version": "0.0.7", + "from": "pug-code-gen@0.0.7", + "resolved": "https://registry.npmjs.org/pug-code-gen/-/pug-code-gen-0.0.7.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" + }, + "with": { + "version": "5.0.0", + "from": "with@>=5.0.0 <6.0.0", + "resolved": "https://registry.npmjs.org/with/-/with-5.0.0.tgz" + } + } + }, + "pug-error": { + "version": "1.3.0", + "from": "pug-error@>=1.3.0 <2.0.0", + "resolved": "https://registry.npmjs.org/pug-error/-/pug-error-1.3.0.tgz" + }, + "pug-filters": { + "version": "1.2.1", + "from": "pug-filters@>=1.2.1 <2.0.0", + "resolved": "https://registry.npmjs.org/pug-filters/-/pug-filters-1.2.1.tgz", + "dependencies": { + "jstransformer": { + "version": "0.0.3", + "from": "jstransformer@0.0.3", + "resolved": "https://registry.npmjs.org/jstransformer/-/jstransformer-0.0.3.tgz" + } + } + }, + "pug-lexer": { + "version": "1.0.1", + "from": "pug-lexer@>=1.0.1 <2.0.0", + "resolved": "https://registry.npmjs.org/pug-lexer/-/pug-lexer-1.0.1.tgz", + "dependencies": { + "character-parser": { + "version": "2.2.0", + "from": "character-parser@>=2.1.1 <3.0.0", + "resolved": "https://registry.npmjs.org/character-parser/-/character-parser-2.2.0.tgz" + } + } + }, + "pug-linker": { + "version": "0.0.4", + "from": "pug-linker@0.0.4", + "resolved": "https://registry.npmjs.org/pug-linker/-/pug-linker-0.0.4.tgz" + }, + "pug-load": { + "version": "1.0.3", + "from": "pug-load@>=1.0.3 <2.0.0", + "resolved": "https://registry.npmjs.org/pug-load/-/pug-load-1.0.3.tgz" + }, + "pug-parser": { + "version": "1.0.0", + "from": "pug-parser@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/pug-parser/-/pug-parser-1.0.0.tgz" + }, + "pug-runtime": { + "version": "2.0.1", + "from": "pug-runtime@>=2.0.1 <3.0.0", + "resolved": "https://registry.npmjs.org/pug-runtime/-/pug-runtime-2.0.1.tgz" + }, + "pug-strip-comments": { + "version": "0.0.1", + "from": "pug-strip-comments@0.0.1", + "resolved": "https://registry.npmjs.org/pug-strip-comments/-/pug-strip-comments-0.0.1.tgz", + "dependencies": { + "pug-error": { + "version": "0.0.0", + "from": "pug-error@>=0.0.0 <0.0.1", + "resolved": "https://registry.npmjs.org/pug-error/-/pug-error-0.0.0.tgz" + } + } + }, + "pug-walk": { + "version": "0.0.3", + "from": "pug-walk@>=0.0.3 <0.0.4", + "resolved": "https://registry.npmjs.org/pug-walk/-/pug-walk-0.0.3.tgz" + }, "punycode": { - "version": "1.4.0", + "version": "1.4.1", "from": "punycode@>=1.2.4 <2.0.0", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.0.tgz" + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz" }, "q": { "version": "1.4.1", @@ -4675,8 +4913,8 @@ "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-0.14.8.tgz" }, "react-on-rails": { - "version": "5.1.1", - "from": "react-on-rails@>=5.1.1 <6.0.0" + "version": "6.0.0-rc.5", + "from": "react-on-rails@6.0.0-rc.5" }, "react-overlays": { "version": "0.6.2", @@ -4701,19 +4939,19 @@ "resolved": "https://registry.npmjs.org/react-proxy/-/react-proxy-1.1.8.tgz" }, "react-redux": { - "version": "4.4.1", - "from": "react-redux@>=4.4.1 <5.0.0", - "resolved": "https://registry.npmjs.org/react-redux/-/react-redux-4.4.1.tgz" + "version": "4.4.5", + "from": "react-redux@>=4.4.4 <5.0.0", + "resolved": "https://registry.npmjs.org/react-redux/-/react-redux-4.4.5.tgz" }, "react-router": { - "version": "2.0.1", - "from": "react-router@>=2.0.1 <3.0.0", - "resolved": "https://registry.npmjs.org/react-router/-/react-router-2.0.1.tgz" + "version": "2.4.0", + "from": "react-router@>=2.2.1 <3.0.0", + "resolved": "https://registry.npmjs.org/react-router/-/react-router-2.4.0.tgz" }, "react-router-redux": { - "version": "4.0.1", - "from": "react-router-redux@>=4.0.1 <5.0.0", - "resolved": "https://registry.npmjs.org/react-router-redux/-/react-router-redux-4.0.1.tgz" + "version": "4.0.4", + "from": "react-router-redux@>=4.0.2 <5.0.0", + "resolved": "https://registry.npmjs.org/react-router-redux/-/react-router-redux-4.0.4.tgz" }, "read": { "version": "1.0.7", @@ -4764,7 +5002,7 @@ "dependencies": { "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", "resolved": "https://registry.npmjs.org/esprima-fb/-/esprima-fb-15001.1001.0-dev-harmony-fb.tgz" } } @@ -4799,9 +5037,9 @@ } }, "redux": { - "version": "3.3.1", - "from": "redux@>=3.3.1 <4.0.0", - "resolved": "https://registry.npmjs.org/redux/-/redux-3.3.1.tgz" + "version": "3.5.2", + "from": "redux@>=3.4.0 <4.0.0", + "resolved": "https://registry.npmjs.org/redux/-/redux-3.5.2.tgz" }, "redux-promise": { "version": "0.5.3", @@ -5224,9 +5462,9 @@ "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-1.0.0.tgz", "dependencies": { "readable-stream": { - "version": "1.1.13", - "from": "readable-stream@>=1.0.27-1 <2.0.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.13.tgz" + "version": "1.1.14", + "from": "readable-stream@1.1.14", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz" } } }, @@ -5305,6 +5543,11 @@ "from": "svgo@>=0.6.1 <0.7.0", "resolved": "https://registry.npmjs.org/svgo/-/svgo-0.6.2.tgz" }, + "symbol-observable": { + "version": "0.2.4", + "from": "symbol-observable@>=0.2.3 <0.3.0", + "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-0.2.4.tgz" + }, "symbol-tree": { "version": "3.1.4", "from": "symbol-tree@>=3.1.0 <4.0.0", @@ -5332,7 +5575,7 @@ }, "through": { "version": "2.3.8", - "from": "through@>=2.3.4 <2.4.0", + "from": "through@>=2.3.6 <3.0.0", "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz" }, "timers-browserify": { @@ -5355,6 +5598,11 @@ "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" }, + "token-stream": { + "version": "0.0.1", + "from": "token-stream@0.0.1", + "resolved": "https://registry.npmjs.org/token-stream/-/token-stream-0.0.1.tgz" + }, "tough-cookie": { "version": "2.2.2", "from": "tough-cookie@>=2.2.0 <2.3.0", @@ -5365,43 +5613,6 @@ "from": "tr46@>=0.0.3 <0.1.0", "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz" }, - "transformers": { - "version": "2.1.0", - "from": "transformers@2.1.0", - "resolved": "https://registry.npmjs.org/transformers/-/transformers-2.1.0.tgz", - "dependencies": { - "css": { - "version": "1.0.8", - "from": "css@>=1.0.8 <1.1.0", - "resolved": "https://registry.npmjs.org/css/-/css-1.0.8.tgz" - }, - "is-promise": { - "version": "1.0.1", - "from": "is-promise@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-1.0.1.tgz" - }, - "optimist": { - "version": "0.3.7", - "from": "optimist@>=0.3.5 <0.4.0", - "resolved": "https://registry.npmjs.org/optimist/-/optimist-0.3.7.tgz" - }, - "promise": { - "version": "2.0.0", - "from": "promise@>=2.0.0 <2.1.0", - "resolved": "https://registry.npmjs.org/promise/-/promise-2.0.0.tgz" - }, - "source-map": { - "version": "0.1.43", - "from": "source-map@>=0.1.7 <0.2.0", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.1.43.tgz" - }, - "uglify-js": { - "version": "2.2.5", - "from": "uglify-js@>=2.2.5 <2.3.0", - "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.2.5.tgz" - } - } - }, "trim-newlines": { "version": "1.0.0", "from": "trim-newlines@>=1.0.0 <2.0.0", @@ -5688,9 +5899,9 @@ "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz" }, "webpack": { - "version": "1.12.14", - "from": "webpack@>=1.12.14 <2.0.0", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-1.12.14.tgz" + "version": "1.13.0", + "from": "webpack@>=1.12.15 <2.0.0", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-1.13.0.tgz" }, "webpack-core": { "version": "0.6.8", @@ -5737,9 +5948,9 @@ "resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-0.9.0.tgz" }, "whatwg-url": { - "version": "1.0.1", - "from": "whatwg-url@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-1.0.1.tgz" + "version": "2.0.1", + "from": "whatwg-url@>=2.0.1 <3.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-2.0.1.tgz" }, "whet.extend": { "version": "0.9.9", @@ -5778,18 +5989,6 @@ } } }, - "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" - } - } - }, "wordwrap": { "version": "0.0.3", "from": "wordwrap@>=0.0.2 <0.1.0", diff --git a/client/package.json b/client/package.json index 413735e4..8769957e 100644 --- a/client/package.json +++ b/client/package.json @@ -33,6 +33,8 @@ "build:dev:client": "webpack -w --config webpack.client.rails.build.config.js", "build:dev:server": "webpack -w --config webpack.server.rails.build.config.js", "build:server": "webpack --config webpack.server.rails.build.config.js", + "build:test": "npm run build:client && npm run build:server", + "build:production": "npm run build:production:client && npm run build:production:server", "hot-assets": "babel-node server-rails-hot.js", "lint": "npm run eslint && npm run jscs", "eslint": "eslint --ext .js,.jsx .", @@ -72,7 +74,7 @@ "react-addons-pure-render-mixin": "^0.14.8", "react-bootstrap": "^0.28.5", "react-dom": "^0.14.8", - "react-on-rails": "^5.2.0", + "react-on-rails": "^6.0.0-rc.5", "react-redux": "^4.4.4", "react-router": "^2.2.1", "react-router-redux": "^4.0.2", diff --git a/config/initializers/react_on_rails.rb b/config/initializers/react_on_rails.rb index 87a961d8..e68dbed6 100644 --- a/config/initializers/react_on_rails.rb +++ b/config/initializers/react_on_rails.rb @@ -1,27 +1,79 @@ # Shown below are the defaults for configuration ReactOnRails.configure do |config| - # Client bundles are configured in application.js - + # Directory where your generated assets go. All generated assets must go to the same directory. + # Configure this in your webpack config files. This relative to your Rails root directory. config.generated_assets_dir = File.join(%w(app assets webpack)) # Define the files for we need to check for webpack compilation when running tests config.webpack_generated_files = %w( app-bundle.js vendor-bundle.js app-bundle.css vendor-bundle.css server-bundle.js ) - # Server bundle is a single file for all server rendering of components. - # If you wish to use render_js in your views without any file, set this to "" to avoid warnings. - # Note this is under app/assets/webpack/ - config.server_bundle_js_file = "server-bundle.js" # This is the default + # This is the file used for server rendering of React when using `(prerender: true)` + # If you are never using server rendering, you may set this to "". + # If you are using the same file for client and server rendering, having this set probably does + # not affect performance. + config.server_bundle_js_file = "server-bundle.js" + + # If you are using the ReactOnRails::TestHelper.configure_rspec_to_compile_assets(config) + # with rspec then this controls what npm command is run + # to automatically refresh your webpack assets on every test run. + config.npm_build_test_command = "npm run build:test" + + # This configures the script to run to build the production assets by webpack. Set this to nil + # if you don't want react_on_rails building this file for you. + config.npm_build_production_command = "npm run build:production" + + ################################################################################ + # CLIENT RENDERING OPTIONS + # Below options can be overriden by passing options to the react_on_rails + # `render_component` view helper method. + ################################################################################ + # default is false + config.prerender = true + + # default is true for development, off otherwise + config.trace = Rails.env.development? + + ################################################################################ + # SERVER RENDERING OPTIONS + ################################################################################ - # Below options can be overriden by passing to the helper method. - config.prerender = true # default is false - config.trace = Rails.env.development? # default is true for development, off otherwise + # If set to true, this forces Rails to reload the server bundle if it is modified + config.development_mode = Rails.env.development? # For server rendering. This can be set to false so that server side messages are discarded. - config.replay_console = true # Default is true. Be cautious about turning this off. - config.logging_on_server = true # Default is true. Logs server rendering messags to Rails.logger.info + # Default is true. Be cautious about turning this off. + config.replay_console = true + + # Default is true. Logs server rendering messages to Rails.logger.info + config.logging_on_server = true + + config.raise_on_prerender_error = false # change to true to raise exception on server if the JS code throws + + # Server rendering only (not for render_component helper) + # You can configure your pool of JS virtual machines and specify where it should load code: + # On MRI, use `therubyracer` for the best performance + # (see [discussion](https://github.com/reactjs/react-rails/pull/290)) + # On MRI, you'll get a deadlock with `pool_size` > 1 + # If you're using JRuby, you can increase `pool_size` to have real multi-threaded rendering. + config.server_renderer_pool_size = 1 # increase if you're on JRuby + config.server_renderer_timeout = 20 # seconds + + ################################################################################ + # MISCELLANEOUS OPTIONS + ################################################################################ + # Default is false, enable if your content security policy doesn't include `style-src: 'unsafe-inline'` + config.skip_display_none = false + + # This allows you to add additional values to the Rails Context. Implement one static method + # called `custom_context(view_context)` and return a Hash. + config.rendering_extension = nil + + # The server render method - either ExecJS or NodeJS + config.server_render_method = "ExecJS" - # Server rendering: - config.server_renderer_pool_size = 1 # increase if you're on JRuby - config.server_renderer_timeout = 20 # seconds + # Client js uses assets not digested by rails. + # For any asset matching this regex, non-digested symlink will be created + # To disable symlinks set this parameter to nil. + config.symlink_non_digested_assets_regex = /\.(png|jpg|jpeg|gif|tiff|woff|ttf|eot|svg)/ end diff --git a/lib/tasks/assets.rake b/lib/tasks/assets.rake deleted file mode 100644 index cc6607d5..00000000 --- a/lib/tasks/assets.rake +++ /dev/null @@ -1,30 +0,0 @@ -# lib/tasks/assets.rake -# The webpack task must run before assets:environment task. -# Otherwise Sprockets cannot find the files that webpack produces. -Rake::Task["assets:precompile"] - .clear_prerequisites - .enhance(["assets:compile_environment"]) - -namespace :assets do - # In this task, set prerequisites for the assets:precompile task - task compile_environment: :webpack do - Rake::Task["assets:environment"].invoke - end - - desc "Compile assets with webpack" - task :webpack do - sh "cd client && npm run build:production:client" - sh "cd client && npm run build:production:server" - sh "mkdir -p public/assets" - - # Critical to manually copy non js/css assets to public/assets as we don't want to fingerprint them - sh "cp -rf app/assets/webpack/*.woff* app/assets/webpack/*.svg app/assets/webpack/*.ttf "\ - "app/assets/webpack/*.eot* public/assets" - - # TODO: We should be gzipping these - end - - task :clobber do - rm_rf "#{Rails.application.config.root}/app/assets/webpack" - end -end diff --git a/package.json b/package.json index 2063baff..994fd7d3 100644 --- a/package.json +++ b/package.json @@ -41,5 +41,9 @@ "dependencies": { }, "devDependencies": { - } + }, + "cacheDirectories": [ + "node_modules", + "client/node_modules" + ] } diff --git a/spec/features/edit_comment_spec.rb b/spec/features/edit_comment_spec.rb index 9637e70f..a0a785bb 100644 --- a/spec/features/edit_comment_spec.rb +++ b/spec/features/edit_comment_spec.rb @@ -30,10 +30,10 @@ private -def have_success_message # rubocop:disable Style/PredicateName +def have_success_message have_css("#notice", "Comment was successfully created.") end -def have_failure_message # rubocop:disable Style/PredicateName +def have_failure_message have_css("#error_explanation") end From a0ff055ece8bf66e307d9af72d2193548fc6443d Mon Sep 17 00:00:00 2001 From: Andrew Ralston Date: Mon, 16 May 2016 11:15:45 -0500 Subject: [PATCH 040/246] Update lint dependencies and configure for project --- client/.eslintrc.yml | 4 ++++ client/app/bundles/comments/reducers/index.js | 3 +-- client/app/bundles/comments/startup/ClientApp.jsx | 6 +++--- client/app/bundles/comments/startup/ServerApp.jsx | 6 +++--- client/app/bundles/comments/store/commentsStore.js | 3 +-- .../bundles/comments/store/routerCommentsStore.js | 3 +-- client/app/libs/middlewares/loggerMiddleware.js | 14 +++++++------- client/app/libs/testHelper.js | 8 +++----- client/package.json | 8 +++++--- 9 files changed, 28 insertions(+), 27 deletions(-) diff --git a/client/.eslintrc.yml b/client/.eslintrc.yml index 89d43dc3..fb2d30be 100644 --- a/client/.eslintrc.yml +++ b/client/.eslintrc.yml @@ -24,6 +24,10 @@ rules: indent: [1, 2, { SwitchCase: 1, VariableDeclarator: 2 }] id-length: [1, { min: 2, exceptions: [_, e, i, k, v] }] space-before-function-paren: [1, "never"] + no-underscore-dangle: 0 + + ### Imports + import/no-unresolved: 0 ### React jsx-quotes: [1, prefer-double] diff --git a/client/app/bundles/comments/reducers/index.js b/client/app/bundles/comments/reducers/index.js index 406d0ff1..8d8e6730 100644 --- a/client/app/bundles/comments/reducers/index.js +++ b/client/app/bundles/comments/reducers/index.js @@ -1,5 +1,4 @@ -import commentsReducer from './commentsReducer'; -import { $$initialState as $$commentsState } from './commentsReducer'; +import commentsReducer, { $$initialState as $$commentsState } from './commentsReducer'; export default { $$commentsStore: commentsReducer, diff --git a/client/app/bundles/comments/startup/ClientApp.jsx b/client/app/bundles/comments/startup/ClientApp.jsx index 22b32b2f..0571b559 100644 --- a/client/app/bundles/comments/startup/ClientApp.jsx +++ b/client/app/bundles/comments/startup/ClientApp.jsx @@ -7,8 +7,8 @@ import NonRouterCommentsContainer from '../containers/NonRouterCommentsContainer export default props => { const store = createStore(props); return ( - - - + + + ); }; diff --git a/client/app/bundles/comments/startup/ServerApp.jsx b/client/app/bundles/comments/startup/ServerApp.jsx index 22b32b2f..0571b559 100644 --- a/client/app/bundles/comments/startup/ServerApp.jsx +++ b/client/app/bundles/comments/startup/ServerApp.jsx @@ -7,8 +7,8 @@ import NonRouterCommentsContainer from '../containers/NonRouterCommentsContainer export default props => { const store = createStore(props); return ( - - - + + + ); }; diff --git a/client/app/bundles/comments/store/commentsStore.js b/client/app/bundles/comments/store/commentsStore.js index b124621f..f0882240 100644 --- a/client/app/bundles/comments/store/commentsStore.js +++ b/client/app/bundles/comments/store/commentsStore.js @@ -1,8 +1,7 @@ import { compose, createStore, applyMiddleware, combineReducers } from 'redux'; import thunkMiddleware from 'redux-thunk'; import loggerMiddleware from 'libs/middlewares/loggerMiddleware'; -import reducers from '../reducers'; -import { initialStates } from '../reducers'; +import reducers, { initialStates } from '../reducers'; export default props => { const initialComments = props.comments; diff --git a/client/app/bundles/comments/store/routerCommentsStore.js b/client/app/bundles/comments/store/routerCommentsStore.js index 8e3f8238..0794fea5 100644 --- a/client/app/bundles/comments/store/routerCommentsStore.js +++ b/client/app/bundles/comments/store/routerCommentsStore.js @@ -1,9 +1,8 @@ import { applyMiddleware, compose, createStore, combineReducers } from 'redux'; import thunkMiddleware from 'redux-thunk'; import loggerMiddleware from 'libs/middlewares/loggerMiddleware'; -import reducers from '../reducers'; +import reducers, { initialStates } from '../reducers'; import { routerReducer } from 'react-router-redux'; -import { initialStates } from '../reducers'; export default props => { const initialComments = props.comments; diff --git a/client/app/libs/middlewares/loggerMiddleware.js b/client/app/libs/middlewares/loggerMiddleware.js index 48fe3964..1edc4d44 100644 --- a/client/app/libs/middlewares/loggerMiddleware.js +++ b/client/app/libs/middlewares/loggerMiddleware.js @@ -10,13 +10,13 @@ export default function logger({ getState }) { // We can't _read_ immutable objects in console out-of-the-box. const state = getState(); const readableState = {}; - for (const storeItem in state) { - if (state.hasOwnProperty(storeItem)) { - readableState[storeItem] = ( - state[storeItem].toJS ? state[storeItem].toJS() : state[storeItem] - ); - } - } + + Object.keys(state).forEach(storeItem => { + readableState[storeItem] = ( + state[storeItem].toJS ? state[storeItem].toJS() : state[storeItem] + ); + return; + }); console.log('state after dispatch', readableState); diff --git a/client/app/libs/testHelper.js b/client/app/libs/testHelper.js index 84c91065..f623bb30 100644 --- a/client/app/libs/testHelper.js +++ b/client/app/libs/testHelper.js @@ -12,12 +12,10 @@ 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; - + Object.keys(window).forEach(key => { + if (key in global) return; global[key] = window[key]; - } + }); } // take all properties of the window object and also attach it to the diff --git a/client/package.json b/client/package.json index 8769957e..13dbe85c 100644 --- a/client/package.json +++ b/client/package.json @@ -94,9 +94,11 @@ "body-parser": "^1.15.0", "chai": "^3.5.0", "chai-immutable": "^1.5.4", - "eslint": "^2.7.0", - "eslint-config-shakacode": "^4.0.0", - "eslint-plugin-react": "^4.3.0", + "eslint": "^2.10.1", + "eslint-config-shakacode": "^5.0.0", + "eslint-plugin-import": "^1.8.0", + "eslint-plugin-jsx-a11y": "^1.2.0", + "eslint-plugin-react": "^5.1.1", "estraverse-fb": "^1.3.1", "express": "^4.13.4", "pug": "^2.0.0-alpha3", From 4facc62772422ac7b74399f32ec0709691353382 Mon Sep 17 00:00:00 2001 From: Justin Gordon Date: Tue, 24 May 2016 11:02:09 -1000 Subject: [PATCH 041/246] Updated to React on Rails v6 --- Gemfile | 2 +- Gemfile.lock | 4 +- client/npm-shrinkwrap.json | 119 ++++++++++++++++++++++++++----------- client/package.json | 2 +- 4 files changed, 89 insertions(+), 38 deletions(-) diff --git a/Gemfile b/Gemfile index 8c5d0904..828eadae 100644 --- a/Gemfile +++ b/Gemfile @@ -41,7 +41,7 @@ gem "sdoc", group: :doc # Use Rails Html Sanitizer for HTML sanitization gem "rails-html-sanitizer" -gem "react_on_rails", "6.0.0.rc.5" +gem "react_on_rails", "~> 6.0.0.rc.6" # See https://github.com/sstephenson/execjs#readme for more supported runtimes gem "therubyracer" diff --git a/Gemfile.lock b/Gemfile.lock index 1d7ba584..80806515 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -206,7 +206,7 @@ GEM ffi (>= 0.5.0) rdoc (4.2.2) json (~> 1.4) - react_on_rails (6.0.0.rc.5) + react_on_rails (6.0.0.rc.6) addressable connection_pool execjs (~> 2.5) @@ -339,7 +339,7 @@ DEPENDENCIES rails-html-sanitizer rails_12factor rainbow - react_on_rails (= 6.0.0.rc.5) + react_on_rails (~> 6.0.0.rc.6) rspec-rails (= 3.5.0.beta3) rspec-retry rubocop diff --git a/client/npm-shrinkwrap.json b/client/npm-shrinkwrap.json index b54551ac..7f7b616a 100644 --- a/client/npm-shrinkwrap.json +++ b/client/npm-shrinkwrap.json @@ -1660,6 +1660,11 @@ } } }, + "character-parser": { + "version": "2.2.0", + "from": "character-parser@>=2.1.1 <3.0.0", + "resolved": "https://registry.npmjs.org/character-parser/-/character-parser-2.2.0.tgz" + }, "chokidar": { "version": "1.4.3", "from": "chokidar@>=1.0.0 <2.0.0", @@ -2043,7 +2048,8 @@ }, "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", + "resolved": "https://registry.npmjs.org/esprima-fb/-/esprima-fb-15001.1001.0-dev-harmony-fb.tgz" }, "wordwrap": { "version": "0.0.2", @@ -2292,10 +2298,15 @@ "from": "escope@>=3.6.0 <4.0.0", "resolved": "https://registry.npmjs.org/escope/-/escope-3.6.0.tgz" }, - "eslint-config-airbnb": { - "version": "6.2.0", - "from": "eslint-config-airbnb@>=6.2.0 <7.0.0", - "resolved": "https://registry.npmjs.org/eslint-config-airbnb/-/eslint-config-airbnb-6.2.0.tgz" + "eslint-config-airbnb-base": { + "version": "3.0.1", + "from": "eslint-config-airbnb-base@>=3.0.0 <4.0.0", + "resolved": "https://registry.npmjs.org/eslint-config-airbnb-base/-/eslint-config-airbnb-base-3.0.1.tgz" + }, + "eslint-import-resolver-node": { + "version": "0.2.0", + "from": "eslint-import-resolver-node@>=0.2.0 <0.3.0", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.2.0.tgz" }, "espree": { "version": "3.1.4", @@ -3291,11 +3302,6 @@ "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" - }, "har-validator": { "version": "2.0.6", "from": "har-validator@>=2.0.6 <2.1.0", @@ -3907,6 +3913,21 @@ "from": "lodash._basecopy@>=3.0.0 <4.0.0", "resolved": "https://registry.npmjs.org/lodash._basecopy/-/lodash._basecopy-3.0.1.tgz" }, + "lodash._baseeach": { + "version": "4.1.3", + "from": "lodash._baseeach@>=4.1.0 <4.2.0", + "resolved": "https://registry.npmjs.org/lodash._baseeach/-/lodash._baseeach-4.1.3.tgz" + }, + "lodash._basefind": { + "version": "3.0.0", + "from": "lodash._basefind@>=3.0.0 <3.1.0", + "resolved": "https://registry.npmjs.org/lodash._basefind/-/lodash._basefind-3.0.0.tgz" + }, + "lodash._basefindindex": { + "version": "3.6.0", + "from": "lodash._basefindindex@>=3.6.0 <3.7.0", + "resolved": "https://registry.npmjs.org/lodash._basefindindex/-/lodash._basefindindex-3.6.0.tgz" + }, "lodash._basefor": { "version": "3.0.3", "from": "lodash._basefor@>=3.0.0 <4.0.0", @@ -3917,6 +3938,11 @@ "from": "lodash._baseiteratee@>=4.6.0 <4.7.0", "resolved": "https://registry.npmjs.org/lodash._baseiteratee/-/lodash._baseiteratee-4.6.1.tgz" }, + "lodash._basetostring": { + "version": "4.12.0", + "from": "lodash._basetostring@>=4.12.0 <4.13.0", + "resolved": "https://registry.npmjs.org/lodash._basetostring/-/lodash._basetostring-4.12.0.tgz" + }, "lodash._bindcallback": { "version": "3.0.1", "from": "lodash._bindcallback@>=3.0.0 <4.0.0", @@ -3962,6 +3988,23 @@ "from": "lodash.camelcase@>=3.0.1 <4.0.0", "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-3.0.1.tgz" }, + "lodash.cond": { + "version": "4.4.0", + "from": "lodash.cond@>=4.3.0 <5.0.0", + "resolved": "https://registry.npmjs.org/lodash.cond/-/lodash.cond-4.4.0.tgz", + "dependencies": { + "lodash._baseiteratee": { + "version": "4.7.0", + "from": "lodash._baseiteratee@>=4.7.0 <4.8.0", + "resolved": "https://registry.npmjs.org/lodash._baseiteratee/-/lodash._baseiteratee-4.7.0.tgz" + }, + "lodash._stringtopath": { + "version": "4.8.0", + "from": "lodash._stringtopath@>=4.8.0 <4.9.0", + "resolved": "https://registry.npmjs.org/lodash._stringtopath/-/lodash._stringtopath-4.8.0.tgz" + } + } + }, "lodash.deburr": { "version": "3.2.0", "from": "lodash.deburr@>=3.0.0 <4.0.0", @@ -3972,6 +4015,26 @@ "from": "lodash.defaults@>=3.1.2 <4.0.0", "resolved": "https://registry.npmjs.org/lodash.defaults/-/lodash.defaults-3.1.2.tgz" }, + "lodash.endswith": { + "version": "4.1.0", + "from": "lodash.endswith@>=4.0.1 <5.0.0", + "resolved": "https://registry.npmjs.org/lodash.endswith/-/lodash.endswith-4.1.0.tgz" + }, + "lodash.find": { + "version": "4.4.0", + "from": "lodash.find@>=4.3.0 <5.0.0", + "resolved": "https://registry.npmjs.org/lodash.find/-/lodash.find-4.4.0.tgz", + "dependencies": { + "lodash._baseiteratee": { + "version": "4.7.0", + "from": "lodash._baseiteratee@>=4.7.0 <4.8.0" + }, + "lodash._stringtopath": { + "version": "4.8.0", + "from": "lodash._stringtopath@>=4.8.0 <4.9.0" + } + } + }, "lodash.isarguments": { "version": "3.0.8", "from": "lodash.isarguments@>=3.0.0 <4.0.0", @@ -4500,6 +4563,11 @@ "from": "pinkie-promise@>=2.0.0 <3.0.0", "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.0.tgz" }, + "pkg-up": { + "version": "1.0.0", + "from": "pkg-up@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/pkg-up/-/pkg-up-1.0.0.tgz" + }, "pkginfo": { "version": "0.4.0", "from": "pkginfo@>=0.0.0 <1.0.0", @@ -4774,33 +4842,11 @@ } } }, - "pug-lexer": { - "version": "1.0.1", - "from": "pug-lexer@>=1.0.1 <2.0.0", - "resolved": "https://registry.npmjs.org/pug-lexer/-/pug-lexer-1.0.1.tgz", - "dependencies": { - "character-parser": { - "version": "2.2.0", - "from": "character-parser@>=2.1.1 <3.0.0", - "resolved": "https://registry.npmjs.org/character-parser/-/character-parser-2.2.0.tgz" - } - } - }, "pug-linker": { "version": "0.0.4", "from": "pug-linker@0.0.4", "resolved": "https://registry.npmjs.org/pug-linker/-/pug-linker-0.0.4.tgz" }, - "pug-load": { - "version": "1.0.3", - "from": "pug-load@>=1.0.3 <2.0.0", - "resolved": "https://registry.npmjs.org/pug-load/-/pug-load-1.0.3.tgz" - }, - "pug-parser": { - "version": "1.0.0", - "from": "pug-parser@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/pug-parser/-/pug-parser-1.0.0.tgz" - }, "pug-runtime": { "version": "2.0.1", "from": "pug-runtime@>=2.0.1 <3.0.0", @@ -4913,8 +4959,8 @@ "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-0.14.8.tgz" }, "react-on-rails": { - "version": "6.0.0-rc.5", - "from": "react-on-rails@6.0.0-rc.5" + "version": "6.0.0-rc.6", + "from": "react-on-rails@>=6.0.0-rc.6 <7.0.0" }, "react-overlays": { "version": "0.6.2", @@ -5593,6 +5639,11 @@ "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-iso-string": { + "version": "0.0.2", + "from": "to-iso-string@0.0.2", + "resolved": "https://registry.npmjs.org/to-iso-string/-/to-iso-string-0.0.2.tgz" + }, "to-single-quotes": { "version": "2.0.0", "from": "to-single-quotes@>=2.0.0 <3.0.0", diff --git a/client/package.json b/client/package.json index 13dbe85c..290f4a12 100644 --- a/client/package.json +++ b/client/package.json @@ -74,7 +74,7 @@ "react-addons-pure-render-mixin": "^0.14.8", "react-bootstrap": "^0.28.5", "react-dom": "^0.14.8", - "react-on-rails": "^6.0.0-rc.5", + "react-on-rails": "^6.0.0-rc.6", "react-redux": "^4.4.4", "react-router": "^2.2.1", "react-router-redux": "^4.0.2", From d333fa72a2bb5da7cb4e195a6c5167788f2e0677 Mon Sep 17 00:00:00 2001 From: Viktor Kotusenko Date: Wed, 25 May 2016 12:45:16 +0300 Subject: [PATCH 042/246] Fixing references among procfiles & in README --- Procfile.dev | 2 +- Procfile.hot | 5 ++--- README.md | 8 ++++---- 3 files changed, 7 insertions(+), 8 deletions(-) diff --git a/Procfile.dev b/Procfile.dev index 7f759fe8..f8eb2675 100644 --- a/Procfile.dev +++ b/Procfile.dev @@ -1,6 +1,6 @@ # Basic procfile for dev work. # Runs all processes. Development is faster if you pick one of the other Procfiles if you don't need -# some of the processes: Procfile.rails or Procfile.express +# some of the processes: Procfile.hot or Procfile.express # Development rails requires both rails and rails-assets # (and rails-server-assets if server rendering) diff --git a/Procfile.hot b/Procfile.hot index a2023808..fe4dd92e 100644 --- a/Procfile.hot +++ b/Procfile.hot @@ -1,6 +1,5 @@ -# Basic procfile for dev work. -# Runs all processes. Development is faster if you pick one of the other Procfiles if you don't need -# some of the processes: Procfile.rails or Procfile.express +# Basic procfile for rails-related part of dev processes +# using a webpack development server to load JavaScript and CSS # Development rails requires both rails and rails-assets # (and rails-server-assets if server rendering) diff --git a/README.md b/README.md index 7d56ce73..f111d834 100644 --- a/README.md +++ b/README.md @@ -18,7 +18,7 @@ By Justin Gordon and the Shaka Code Team, [www.shakacode.com](http://www.shakaco - Check out the [react_on_rails gem](https://github.com/shakacode/react_on_rails) for easy webpack integration. - If you came to here from the blog article, this example project has evolved. See [merged pull requests](https://github.com/shakacode/react-webpack-rails-tutorial/pulls?utf8=%E2%9C%93&q=is%3Apr+is%3Amerged) and the [CHANGELOG.md](./CHANGELOG.md). -An outdated full tutorial article behind of the motivation of this system can be found at: [Fast Rich Client Rails Development With Webpack and the ES6 Transpiler](http://www.railsonmaui.com/blog/2014/10/03/integrating-webpack-and-the-es6-transpiler-into-an-existing-rails-project/). Note, this source code repository is way ahead of the tutorial. +An outdated full tutorial article behind of the motivation of this system can be found at: [Fast Rich Client Rails Development With Webpack and the ES6 Transpiler](http://www.railsonmaui.com/blog/2014/10/03/integrating-webpack-and-the-es6-transpiler-into-an-existing-rails-project/). Note, this source code repository is way ahead of the tutorial. # NEWS We have not yet updated the `react_on_rails` gem generators for the following tasks. We're looking for help to migrate this, if you're interested in contributing to the project. *The tutorial* refers to this repo. The following changes have resulted in lots of differences for the webpack files and visual assets: @@ -78,10 +78,10 @@ See package.json and Gemfile for versions 1. `rake db:setup` 1. `foreman start -f Procfile.hot` 1. Open a browser tab to http://localhost:3000 for the Rails app example with HOT RELOADING - 2. Try Hot Reloading steps below! + 2. Try Hot Reloading steps below! 1. `foreman start -f Procfile.express` 1. Open a browser tab to http://localhost:4000 for the Hot Module Replacement Example just using an express server (no Rails involved). This is good for fast prototyping of React components. However, this setup is not as useful now that we have hot reloading working for Rails! - 2. Try Hot Reloading steps below! + 2. Try Hot Reloading steps below! 1. `foreman start -f Procfile.static` 1. Open a browser tab to http://localhost:3000 for the Rails app example. 2. When you make changes, you have to refresh the browser page. @@ -95,7 +95,7 @@ See package.json and Gemfile for versions 1. Run all linters and tests: `rake` 1. See all npm commands: `npm run` 1. Start all development processes: `foreman start -f Procfile.dev` -1. Start all Rails only development processes: `foreman start -f Procfile.rails` +1. Start all Rails only development processes: `foreman start -f Procfile.hot` 1. Start development without Rails, using the Webpack Dev Server only: `npm start` (or `foreman start -f Procfile.express`) From 1609e283579e5a71f64e64015ced67cb795767ef Mon Sep 17 00:00:00 2001 From: Camila Date: Fri, 27 May 2016 18:25:55 -0300 Subject: [PATCH 043/246] Fix broken link to blog post --- app/views/pages/_header.html.erb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/views/pages/_header.html.erb b/app/views/pages/_header.html.erb index c1973ccf..d6b54b76 100644 --- a/app/views/pages/_header.html.erb +++ b/app/views/pages/_header.html.erb @@ -28,7 +28,7 @@
  • Be sure to read our new article <%= link_to "The React on Rails Doctrine", - "http://www.shakacode.com/2016/01/26/the-react-on-rails-doctrine.html" %>. + "http://www.shakacode.com/2016/01/27/the-react-on-rails-doctrine.html" %>.

  • From d6e46a519d40b225a4d912cf812ebaa61f1b3ecc Mon Sep 17 00:00:00 2001 From: Justin Gordon Date: Sun, 5 Jun 2016 23:57:40 -1000 Subject: [PATCH 044/246] Update to 6.0.2 Had to manually set the DOM ID on the react component call in order to fix a broken test. --- Gemfile | 2 +- Gemfile.lock | 16 ++++++++-------- app/views/pages/index.html.erb | 2 +- client/npm-shrinkwrap.json | 4 ++-- client/package.json | 2 +- 5 files changed, 13 insertions(+), 13 deletions(-) diff --git a/Gemfile b/Gemfile index 828eadae..25ff329c 100644 --- a/Gemfile +++ b/Gemfile @@ -41,7 +41,7 @@ gem "sdoc", group: :doc # Use Rails Html Sanitizer for HTML sanitization gem "rails-html-sanitizer" -gem "react_on_rails", "~> 6.0.0.rc.6" +gem "react_on_rails", "~> 6.0.2" # See https://github.com/sstephenson/execjs#readme for more supported runtimes gem "therubyracer" diff --git a/Gemfile.lock b/Gemfile.lock index 80806515..ecc48d6b 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -94,14 +94,14 @@ GEM diff-lcs (1.2.5) docile (1.1.5) erubis (2.7.0) - execjs (2.6.0) + execjs (2.7.0) factory_girl (4.7.0) activesupport (>= 3.0.0) factory_girl_rails (4.7.0) factory_girl (~> 4.7.0) railties (>= 3.0.0) ffi (1.9.10) - foreman (0.81.0) + foreman (0.82.0) thor (~> 0.19.1) generator_spec (0.9.3) activesupport (>= 3.0.0) @@ -127,11 +127,11 @@ GEM mail (2.6.4) mime-types (>= 1.16, < 4) method_source (0.8.2) - mime-types (3.0) + mime-types (3.1) mime-types-data (~> 3.2015) - mime-types-data (3.2016.0221) + mime-types-data (3.2016.0521) mini_portile2 (2.0.0) - minitest (5.8.4) + minitest (5.9.0) multi_json (1.12.0) nio4r (1.2.1) nokogiri (1.6.7.2) @@ -206,7 +206,7 @@ GEM ffi (>= 0.5.0) rdoc (4.2.2) json (~> 1.4) - react_on_rails (6.0.0.rc.6) + react_on_rails (6.0.2) addressable connection_pool execjs (~> 2.5) @@ -298,7 +298,7 @@ GEM debug_inspector railties (>= 4.2) websocket (1.2.3) - websocket-driver (0.6.3) + websocket-driver (0.6.4) websocket-extensions (>= 0.1.0) websocket-extensions (0.1.2) xpath (2.0.0) @@ -339,7 +339,7 @@ DEPENDENCIES rails-html-sanitizer rails_12factor rainbow - react_on_rails (~> 6.0.0.rc.6) + react_on_rails (~> 6.0.2) rspec-rails (= 3.5.0.beta3) rspec-retry rubocop diff --git a/app/views/pages/index.html.erb b/app/views/pages/index.html.erb index 89b81923..07022d4a 100644 --- a/app/views/pages/index.html.erb +++ b/app/views/pages/index.html.erb @@ -10,4 +10,4 @@ <%= render "header" %> <%= react_component('RouterApp', props: render(template: "/comments/index.json.jbuilder"), - prerender: true, raise_on_prerender_error: true) %> + prerender: true, raise_on_prerender_error: true, id: "RouterApp-react-component-0") %> diff --git a/client/npm-shrinkwrap.json b/client/npm-shrinkwrap.json index 7f7b616a..eb8c0f8a 100644 --- a/client/npm-shrinkwrap.json +++ b/client/npm-shrinkwrap.json @@ -4959,8 +4959,8 @@ "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-0.14.8.tgz" }, "react-on-rails": { - "version": "6.0.0-rc.6", - "from": "react-on-rails@>=6.0.0-rc.6 <7.0.0" + "version": "6.0.2", + "from": "react-on-rails@6.0.2" }, "react-overlays": { "version": "0.6.2", diff --git a/client/package.json b/client/package.json index 290f4a12..a27f36f8 100644 --- a/client/package.json +++ b/client/package.json @@ -74,7 +74,7 @@ "react-addons-pure-render-mixin": "^0.14.8", "react-bootstrap": "^0.28.5", "react-dom": "^0.14.8", - "react-on-rails": "^6.0.0-rc.6", + "react-on-rails": "^6.0.2", "react-redux": "^4.4.4", "react-router": "^2.2.1", "react-router-redux": "^4.0.2", From 38bbb77fa6f05d1b2a9b14ac1f6606fe1f412822 Mon Sep 17 00:00:00 2001 From: Justin Gordon Date: Tue, 21 Jun 2016 19:14:11 -1000 Subject: [PATCH 045/246] Update README.md --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index f111d834..02c92333 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,8 @@ [![Codeship Status for justin808/react-webpack-rails-tutorial](https://codeship.com/projects/287b26d0-0c05-0133-7a33-02e67aca5f06/status?branch=master)](https://codeship.com/projects/90975) [![Build Status](https://travis-ci.org/shakacode/react-webpack-rails-tutorial.svg?branch=code_coverage-linting)](https://travis-ci.org/shakacode/react-webpack-rails-tutorial) [![Dependency Status](https://gemnasium.com/shakacode/react-webpack-rails-tutorial.svg)](https://gemnasium.com/shakacode/react-webpack-rails-tutorial) [![Code Climate](https://codeclimate.com/github/shakacode/react-webpack-rails-tutorial/badges/gpa.svg)](https://codeclimate.com/github/shakacode/react-webpack-rails-tutorial) [![Coverage Status](https://coveralls.io/repos/shakacode/react-webpack-rails-tutorial/badge.svg?branch=master&service=github)](https://coveralls.io/github/shakacode/react-webpack-rails-tutorial?branch=master) +Aloha from Justin Gordon and the [ShakaCode](http://www.shakacode.com) Team! We need your help. Venture capital funding has slowed and, for the first time, my ShakaCode team is actively looking for our next project. If you like **React on Rails**, please consider contacting me if we could potentially help you in any way. I'm offering a free half hour project consultation, on anything from React on Rails to any aspect of web application development, including both consumer and enterprise products. You can read more about my background [here](http://www.railsonmaui.com/about). Whether you have a new project, or need help on an existing project, please email me directly at [justin@shakacode.com](mailto:justin@shakacode.com). And thanks in advance for any referrals! Your support keeps this project going. + # React, Redux, React-Bootstrap, ES7, Webpack Rails ## Server Rendering via the react_on_rails gem From 32f3b133267eedf7c238d7f8ce879453aa25e7b0 Mon Sep 17 00:00:00 2001 From: Justin Gordon Date: Sun, 10 Jul 2016 20:56:24 -1000 Subject: [PATCH 046/246] Updated all available dependencies * Rails 5 * React on Rails 6.0.4 * update to node 6.3 And change running of linters to run on the installed npm libraries, rather than any system linter. --- .nvmrc | 2 +- .travis.yml | 5 +- Gemfile | 4 +- Gemfile.lock | 186 +- README.md | 1 - app/views/layouts/application.html.erb | 4 +- client/npm-shrinkwrap.json | 2162 ++++++++++++------------ client/package.json | 84 +- lib/tasks/ci.rake | 3 +- lib/tasks/linters.rake | 4 +- spec/rails_helper.rb | 2 +- 11 files changed, 1188 insertions(+), 1269 deletions(-) diff --git a/.nvmrc b/.nvmrc index 0062ac97..09b254e9 100644 --- a/.nvmrc +++ b/.nvmrc @@ -1 +1 @@ -5.0.0 +6.0.0 diff --git a/.travis.yml b/.travis.yml index 73042157..e33a887c 100644 --- a/.travis.yml +++ b/.travis.yml @@ -17,8 +17,8 @@ env: - CXX=g++-4.9 install: - bundle install - - nvm install 5.5 - - nvm use 5.5 + - nvm install 6.3 + - nvm use 6.3 - npm install before_script: - export DISPLAY=:99.0 @@ -26,4 +26,3 @@ before_script: script: - bundle exec rake db:schema:load - DRIVER=selenium_firefox bundle exec rake - - bundle exec rake lint diff --git a/Gemfile b/Gemfile index 25ff329c..6791640b 100644 --- a/Gemfile +++ b/Gemfile @@ -3,7 +3,7 @@ ruby "2.3.1" # # Bundle edge Rails instead: gem "rails", github: "rails/rails" -gem "rails", "5.0.0.rc1" +gem "rails" gem "listen" # Note: We're using sqllite3 for development and testing @@ -41,7 +41,7 @@ gem "sdoc", group: :doc # Use Rails Html Sanitizer for HTML sanitization gem "rails-html-sanitizer" -gem "react_on_rails", "~> 6.0.2" +gem "react_on_rails", "~> 6" # See https://github.com/sstephenson/execjs#readme for more supported runtimes gem "therubyracer" diff --git a/Gemfile.lock b/Gemfile.lock index ecc48d6b..1404186f 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -1,39 +1,39 @@ GEM remote: https://rubygems.org/ specs: - actioncable (5.0.0.rc1) - actionpack (= 5.0.0.rc1) + actioncable (5.0.0) + actionpack (= 5.0.0) nio4r (~> 1.2) websocket-driver (~> 0.6.1) - actionmailer (5.0.0.rc1) - actionpack (= 5.0.0.rc1) - actionview (= 5.0.0.rc1) - activejob (= 5.0.0.rc1) + actionmailer (5.0.0) + actionpack (= 5.0.0) + actionview (= 5.0.0) + activejob (= 5.0.0) mail (~> 2.5, >= 2.5.4) - rails-dom-testing (~> 1.0, >= 1.0.5) - actionpack (5.0.0.rc1) - actionview (= 5.0.0.rc1) - activesupport (= 5.0.0.rc1) - rack (~> 2.x) + rails-dom-testing (~> 2.0) + actionpack (5.0.0) + actionview (= 5.0.0) + activesupport (= 5.0.0) + rack (~> 2.0) rack-test (~> 0.6.3) - rails-dom-testing (~> 1.0, >= 1.0.5) + rails-dom-testing (~> 2.0) rails-html-sanitizer (~> 1.0, >= 1.0.2) - actionview (5.0.0.rc1) - activesupport (= 5.0.0.rc1) + actionview (5.0.0) + activesupport (= 5.0.0) builder (~> 3.1) erubis (~> 2.7.0) - rails-dom-testing (~> 1.0, >= 1.0.5) + rails-dom-testing (~> 2.0) rails-html-sanitizer (~> 1.0, >= 1.0.2) - activejob (5.0.0.rc1) - activesupport (= 5.0.0.rc1) + activejob (5.0.0) + activesupport (= 5.0.0) globalid (>= 0.3.6) - activemodel (5.0.0.rc1) - activesupport (= 5.0.0.rc1) - activerecord (5.0.0.rc1) - activemodel (= 5.0.0.rc1) - activesupport (= 5.0.0.rc1) + activemodel (5.0.0) + activesupport (= 5.0.0) + activerecord (5.0.0) + activemodel (= 5.0.0) + activesupport (= 5.0.0) arel (~> 7.0) - activesupport (5.0.0.rc1) + activesupport (5.0.0) concurrent-ruby (~> 1.0, >= 1.0.2) i18n (~> 0.7) minitest (~> 5.1) @@ -42,18 +42,18 @@ GEM archive-zip (0.7.0) io-like (~> 0.3.0) arel (7.0.0) - ast (2.2.0) - autoprefixer-rails (6.3.6) + ast (2.3.0) + autoprefixer-rails (6.3.7) execjs - awesome_print (1.6.1) + awesome_print (1.7.0) binding_of_caller (0.7.2) debug_inspector (>= 0.0.1) - brakeman (3.3.0) + brakeman (3.3.2) builder (3.2.2) bundler-audit (0.5.0) bundler (~> 1.2) thor (~> 0.18) - byebug (8.2.5) + byebug (9.0.5) capybara (2.7.1) addressable mime-types (>= 1.16) @@ -61,7 +61,7 @@ GEM rack (>= 1.0.0) rack-test (>= 0.5.4) xpath (~> 2.0) - capybara-screenshot (1.0.12) + capybara-screenshot (1.0.13) capybara (>= 1.0, < 3) launchy capybara-webkit (1.11.1) @@ -74,18 +74,18 @@ GEM nokogiri (~> 1.6) cliver (0.3.2) coderay (1.1.1) - coffee-rails (4.1.1) + coffee-rails (4.2.1) coffee-script (>= 2.2.0) - railties (>= 4.0.0, < 5.1.x) + railties (>= 4.0.0, < 5.2.x) coffee-script (2.4.1) coffee-script-source execjs coffee-script-source (1.10.0) concurrent-ruby (1.0.2) connection_pool (2.2.0) - coveralls (0.8.13) - json (~> 1.8) - simplecov (~> 0.11.0) + coveralls (0.8.14) + json (>= 1.8, < 3) + simplecov (~> 0.12.0) term-ansicolor (~> 1.3) thor (~> 0.19.1) tins (~> 1.6.0) @@ -100,7 +100,7 @@ GEM factory_girl_rails (4.7.0) factory_girl (~> 4.7.0) railties (>= 3.0.0) - ffi (1.9.10) + ffi (1.9.13) foreman (0.82.0) thor (~> 0.19.1) generator_spec (0.9.3) @@ -111,15 +111,15 @@ GEM i18n (0.7.0) interception (0.5) io-like (0.3.0) - jbuilder (2.4.1) + jbuilder (2.5.0) activesupport (>= 3.0.0, < 5.1) multi_json (~> 1.2) json (1.8.3) launchy (2.4.3) addressable (~> 2.3) libv8 (3.16.14.15) - listen (3.1.3) - rb-fsevent (~> 0.9, >= 0.9.7) + listen (3.1.5) + rb-fsevent (~> 0.9, >= 0.9.4) rb-inotify (~> 0.9, >= 0.9.7) ruby_dep (~> 1.2) loofah (2.0.3) @@ -130,62 +130,59 @@ GEM mime-types (3.1) mime-types-data (~> 3.2015) mime-types-data (3.2016.0521) - mini_portile2 (2.0.0) + mini_portile2 (2.1.0) minitest (5.9.0) - multi_json (1.12.0) + multi_json (1.12.1) nio4r (1.2.1) - nokogiri (1.6.7.2) - mini_portile2 (~> 2.0.0.rc2) - parser (2.3.1.0) + nokogiri (1.6.8) + mini_portile2 (~> 2.1.0) + pkg-config (~> 1.1.7) + parser (2.3.1.2) ast (~> 2.2) pg (0.18.4) - poltergeist (1.9.0) + pkg-config (1.1.7) + poltergeist (1.10.0) capybara (~> 2.1) cliver (~> 0.3.1) - multi_json (~> 1.0) websocket-driver (>= 0.2.0) powerpack (0.1.1) - pry (0.10.3) + pry (0.10.4) coderay (~> 1.1.0) method_source (~> 0.8.1) slop (~> 3.4) - pry-byebug (3.3.0) - byebug (~> 8.0) + pry-byebug (3.4.0) + byebug (~> 9.0) pry (~> 0.10) - pry-doc (0.8.0) + pry-doc (0.9.0) pry (~> 0.9) yard (~> 0.8) pry-rails (0.3.4) pry (>= 0.9.10) - pry-rescue (1.4.2) + pry-rescue (1.4.4) interception (>= 0.5) pry pry-stack_explorer (0.4.9.2) binding_of_caller (>= 0.7) pry (>= 0.9.11) puma (3.4.0) - rack (2.0.0.rc1) - json + rack (2.0.1) rack-test (0.6.3) rack (>= 1.0) - rails (5.0.0.rc1) - actioncable (= 5.0.0.rc1) - actionmailer (= 5.0.0.rc1) - actionpack (= 5.0.0.rc1) - actionview (= 5.0.0.rc1) - activejob (= 5.0.0.rc1) - activemodel (= 5.0.0.rc1) - activerecord (= 5.0.0.rc1) - activesupport (= 5.0.0.rc1) + rails (5.0.0) + actioncable (= 5.0.0) + actionmailer (= 5.0.0) + actionpack (= 5.0.0) + actionview (= 5.0.0) + activejob (= 5.0.0) + activemodel (= 5.0.0) + activerecord (= 5.0.0) + activesupport (= 5.0.0) bundler (>= 1.3.0, < 2.0) - railties (= 5.0.0.rc1) + railties (= 5.0.0) sprockets-rails (>= 2.0.0) - rails-deprecated_sanitizer (1.0.3) - activesupport (>= 4.2.0.alpha) - rails-dom-testing (1.0.7) - activesupport (>= 4.2.0.beta, < 5.0) + rails-dom-testing (2.0.1) + activesupport (>= 4.2.0, < 6.0) nokogiri (~> 1.6.0) - rails-deprecated_sanitizer (>= 1.0.1) rails-html-sanitizer (1.0.3) loofah (~> 2.0) rails_12factor (0.0.3) @@ -193,20 +190,20 @@ GEM rails_stdout_logging rails_serve_static_assets (0.0.5) rails_stdout_logging (0.0.5) - railties (5.0.0.rc1) - actionpack (= 5.0.0.rc1) - activesupport (= 5.0.0.rc1) + railties (5.0.0) + actionpack (= 5.0.0) + activesupport (= 5.0.0) method_source rake (>= 0.8.7) thor (>= 0.18.1, < 2.0) rainbow (2.1.0) - rake (11.1.2) + rake (11.2.2) rb-fsevent (0.9.7) rb-inotify (0.9.7) ffi (>= 0.5.0) rdoc (4.2.2) json (~> 1.4) - react_on_rails (6.0.2) + react_on_rails (6.0.4) addressable connection_pool execjs (~> 2.5) @@ -233,48 +230,48 @@ GEM rspec-retry (0.4.5) rspec-core rspec-support (3.5.0.beta3) - rubocop (0.40.0) - parser (>= 2.3.1.0, < 3.0) + rubocop (0.41.2) + parser (>= 2.3.1.1, < 3.0) powerpack (~> 0.1) rainbow (>= 1.99.1, < 3.0) ruby-progressbar (~> 1.7) unicode-display_width (~> 1.0, >= 1.0.1) - ruby-lint (2.1.0) + ruby-lint (2.3.0) parser (~> 2.2) slop (~> 3.4, >= 3.4.7) - ruby-progressbar (1.8.0) + ruby-progressbar (1.8.1) ruby_dep (1.3.1) rubyzip (1.2.0) sass (3.4.22) - sass-rails (5.0.4) - railties (>= 4.0.0, < 5.0) + sass-rails (5.0.5) + railties (>= 4.0.0, < 6) sass (~> 3.1) sprockets (>= 2.8, < 4.0) sprockets-rails (>= 2.0, < 4.0) tilt (>= 1.1, < 3) - scss_lint (0.48.0) + scss_lint (0.49.0) rake (>= 0.9, < 12) - sass (~> 3.4.15) + sass (~> 3.4.20) sdoc (0.4.1) json (~> 1.7, >= 1.7.7) rdoc (~> 4.0) - selenium-webdriver (2.53.0) + selenium-webdriver (2.53.4) childprocess (~> 0.5) rubyzip (~> 1.0) websocket (~> 1.0) - simplecov (0.11.2) + simplecov (0.12.0) docile (~> 1.1.0) - json (~> 1.8) + json (>= 1.8, < 3) simplecov-html (~> 0.10.0) simplecov-html (0.10.0) slop (3.6.0) - spring (1.7.1) + spring (1.7.2) spring-commands-rspec (1.0.4) spring (>= 0.9.1) - sprockets (3.6.0) + sprockets (3.6.3) concurrent-ruby (~> 1.0) rack (> 1, < 3) - sprockets-rails (3.0.4) + sprockets-rails (3.1.1) actionpack (>= 4.0) activesupport (>= 4.0) sprockets (>= 3.0.0) @@ -286,24 +283,25 @@ GEM ref thor (0.19.1) thread_safe (0.3.5) - tilt (2.0.2) + tilt (2.0.5) tins (1.6.0) tzinfo (1.2.2) thread_safe (~> 0.1) uglifier (3.0.0) execjs (>= 0.3.0, < 3) - unicode-display_width (1.0.5) - web-console (3.1.1) - activemodel (>= 4.2) + unicode-display_width (1.1.0) + web-console (3.3.1) + actionview (>= 5.0) + activemodel (>= 5.0) debug_inspector - railties (>= 4.2) + railties (>= 5.0) websocket (1.2.3) websocket-driver (0.6.4) websocket-extensions (>= 0.1.0) websocket-extensions (0.1.2) xpath (2.0.0) nokogiri (~> 1.3) - yard (0.8.7.6) + yard (0.9.0) PLATFORMS ruby @@ -335,11 +333,11 @@ DEPENDENCIES pry-rescue pry-stack_explorer puma - rails (= 5.0.0.rc1) + rails rails-html-sanitizer rails_12factor rainbow - react_on_rails (~> 6.0.2) + react_on_rails (~> 6) rspec-rails (= 3.5.0.beta3) rspec-retry rubocop diff --git a/README.md b/README.md index 02c92333..052e62de 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,3 @@ -[![Codeship Status for justin808/react-webpack-rails-tutorial](https://codeship.com/projects/287b26d0-0c05-0133-7a33-02e67aca5f06/status?branch=master)](https://codeship.com/projects/90975) [![Build Status](https://travis-ci.org/shakacode/react-webpack-rails-tutorial.svg?branch=code_coverage-linting)](https://travis-ci.org/shakacode/react-webpack-rails-tutorial) [![Dependency Status](https://gemnasium.com/shakacode/react-webpack-rails-tutorial.svg)](https://gemnasium.com/shakacode/react-webpack-rails-tutorial) [![Code Climate](https://codeclimate.com/github/shakacode/react-webpack-rails-tutorial/badges/gpa.svg)](https://codeclimate.com/github/shakacode/react-webpack-rails-tutorial) [![Coverage Status](https://coveralls.io/repos/shakacode/react-webpack-rails-tutorial/badge.svg?branch=master&service=github)](https://coveralls.io/github/shakacode/react-webpack-rails-tutorial?branch=master) Aloha from Justin Gordon and the [ShakaCode](http://www.shakacode.com) Team! We need your help. Venture capital funding has slowed and, for the first time, my ShakaCode team is actively looking for our next project. If you like **React on Rails**, please consider contacting me if we could potentially help you in any way. I'm offering a free half hour project consultation, on anything from React on Rails to any aspect of web application development, including both consumer and enterprise products. You can read more about my background [here](http://www.railsonmaui.com/about). Whether you have a new project, or need help on an existing project, please email me directly at [justin@shakacode.com](mailto:justin@shakacode.com). And thanks in advance for any referrals! Your support keeps this project going. diff --git a/app/views/layouts/application.html.erb b/app/views/layouts/application.html.erb index d22d6243..9e26eae8 100644 --- a/app/views/layouts/application.html.erb +++ b/app/views/layouts/application.html.erb @@ -35,8 +35,8 @@