From 98db689eb65a6f39b340eca61e9f70d6b178fb5a Mon Sep 17 00:00:00 2001 From: Mario Perez Date: Sun, 19 Jul 2015 15:41:42 +0200 Subject: [PATCH 001/514] "scss-lint" has been renamed to "scss_lint" See attached image for the warning: https://cloudup.com/cZzMtRGE5oU --- Gemfile | 2 +- Gemfile.lock | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Gemfile b/Gemfile index 44ca6e4b..d48f7469 100644 --- a/Gemfile +++ b/Gemfile @@ -65,7 +65,7 @@ group :development, :test do gem "ruby-lint", require: false - gem "scss-lint", require: false + gem "scss_lint", require: false gem "brakeman", require: false diff --git a/Gemfile.lock b/Gemfile.lock index 8003a782..e6688c3a 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -205,7 +205,7 @@ GEM sprockets (>= 2.8, < 4.0) sprockets-rails (>= 2.0, < 4.0) tilt (~> 1.1) - scss-lint (0.38.0) + scss_lint (0.40.1) rainbow (~> 2.0) sass (~> 3.4.1) sdoc (0.4.1) @@ -274,7 +274,7 @@ DEPENDENCIES rubocop ruby-lint sass-rails - scss-lint + scss_lint sdoc spring spring-commands-rspec From 83766416e4dc539c957836f080b773c766137a14 Mon Sep 17 00:00:00 2001 From: Dylan Grafmyre Date: Tue, 28 Jul 2015 20:01:50 -1000 Subject: [PATCH 002/514] Remove reference to gemset Rails4.2 from README, Basic Setup --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 0b79a825..ab19b463 100644 --- a/README.md +++ b/README.md @@ -55,7 +55,7 @@ See package.json and Gemfile for versions 1. Be sure that you have Node installed. I use [nvm](https://github.com/creationix/nvm), with node version `v0.10.33`. 1. `git clone git@github.com:justin808/react-webpack-rails-tutorial.git` 1. `cd react-webpack-rails-tutorial` -1. Check that you have Ruby 2.2.1 and the gemset Rails 4.2 (this might change in the future) +1. Check that you have Ruby 2.2.1 1. `bundle install` 1. `npm install` 1. `rake db:setup` From fbed641f4997c7d2602abef87a2f54b091bebe76 Mon Sep 17 00:00:00 2001 From: Justin Gordon Date: Sat, 1 Aug 2015 14:40:35 -1000 Subject: [PATCH 003/514] Update versions of ruby, node, gems, npm --- .nvmrc | 1 + .ruby-version | 2 +- Gemfile | 4 +- Gemfile.lock | 154 +++--- client/.eslintrc | 258 +-------- client/README.md | 3 +- client/npm-shrinkwrap.json | 930 +++++++++++++++++--------------- client/package.json | 61 +-- client/webpack.common.config.js | 3 +- client/webpack.hot.config.js | 3 + 10 files changed, 620 insertions(+), 799 deletions(-) create mode 100644 .nvmrc diff --git a/.nvmrc b/.nvmrc new file mode 100644 index 00000000..9212624f --- /dev/null +++ b/.nvmrc @@ -0,0 +1 @@ +v0.12.7 diff --git a/.ruby-version b/.ruby-version index c043eea7..b1b25a5f 100644 --- a/.ruby-version +++ b/.ruby-version @@ -1 +1 @@ -2.2.1 +2.2.2 diff --git a/Gemfile b/Gemfile index 44ca6e4b..42d3f3ba 100644 --- a/Gemfile +++ b/Gemfile @@ -1,5 +1,5 @@ source "https://rubygems.org" -ruby "2.2.1" +ruby "2.2.2" # # Bundle edge Rails instead: gem "rails", github: "rails/rails" @@ -49,7 +49,7 @@ group :development, :test do gem "byebug" # Access an IRB console on exceptions page and /console in development - gem "web-console", "~> 2.0.0.beta2" + gem "web-console" # Spring speeds up development by keeping your application running in the background. Read more: https://github.com/rails/spring gem "spring" diff --git a/Gemfile.lock b/Gemfile.lock index 8003a782..ef948a2b 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -1,66 +1,66 @@ GEM remote: https://rubygems.org/ specs: - actionmailer (4.2.1) - actionpack (= 4.2.1) - actionview (= 4.2.1) - activejob (= 4.2.1) + actionmailer (4.2.3) + actionpack (= 4.2.3) + actionview (= 4.2.3) + activejob (= 4.2.3) mail (~> 2.5, >= 2.5.4) rails-dom-testing (~> 1.0, >= 1.0.5) - actionpack (4.2.1) - actionview (= 4.2.1) - activesupport (= 4.2.1) + actionpack (4.2.3) + actionview (= 4.2.3) + activesupport (= 4.2.3) rack (~> 1.6) rack-test (~> 0.6.2) rails-dom-testing (~> 1.0, >= 1.0.5) - rails-html-sanitizer (~> 1.0, >= 1.0.1) - actionview (4.2.1) - activesupport (= 4.2.1) + rails-html-sanitizer (~> 1.0, >= 1.0.2) + actionview (4.2.3) + activesupport (= 4.2.3) builder (~> 3.1) erubis (~> 2.7.0) rails-dom-testing (~> 1.0, >= 1.0.5) - rails-html-sanitizer (~> 1.0, >= 1.0.1) - activejob (4.2.1) - activesupport (= 4.2.1) + rails-html-sanitizer (~> 1.0, >= 1.0.2) + activejob (4.2.3) + activesupport (= 4.2.3) globalid (>= 0.3.0) - activemodel (4.2.1) - activesupport (= 4.2.1) + activemodel (4.2.3) + activesupport (= 4.2.3) builder (~> 3.1) - activerecord (4.2.1) - activemodel (= 4.2.1) - activesupport (= 4.2.1) + activerecord (4.2.3) + activemodel (= 4.2.3) + activesupport (= 4.2.3) arel (~> 6.0) - activesupport (4.2.1) + activesupport (4.2.3) i18n (~> 0.7) json (~> 1.7, >= 1.7.7) minitest (~> 5.1) thread_safe (~> 0.3, >= 0.3.4) tzinfo (~> 1.1) addressable (2.3.8) - arel (6.0.0) + arel (6.0.2) ast (2.0.0) - astrolabe (1.3.0) - parser (>= 2.2.0.pre.3, < 3.0) - autoprefixer-rails (5.1.11) + astrolabe (1.3.1) + parser (~> 2.2) + autoprefixer-rails (5.2.1.1) execjs json binding_of_caller (0.7.2) debug_inspector (>= 0.0.1) - bootstrap-sass (3.3.4.1) + bootstrap-sass (3.3.5.1) autoprefixer-rails (>= 5.0.0.1) - sass (>= 3.2.19) - brakeman (3.0.3) + sass (>= 3.3.0) + brakeman (3.0.5) erubis (~> 2.6) fastercsv (~> 1.5) haml (>= 3.0, < 5.0) highline (~> 1.6.20) multi_json (~> 1.2) ruby2ruby (~> 2.1.1) - ruby_parser (~> 3.6.2) + ruby_parser (~> 3.7.0) sass (~> 3.0) terminal-table (~> 1.4) builder (3.2.2) - bundler-audit (0.3.1) + bundler-audit (0.4.0) bundler (~> 1.2) thor (~> 0.18) byebug (5.0.0) @@ -71,10 +71,10 @@ GEM rack (>= 1.0.0) rack-test (>= 0.5.4) xpath (~> 2.0) - capybara-screenshot (1.0.9) + capybara-screenshot (1.0.11) capybara (>= 1.0, < 3) launchy - capybara-webkit (1.5.1) + capybara-webkit (1.6.0) capybara (>= 2.3.0, < 2.5.0) json coffee-rails (4.1.0) @@ -104,14 +104,14 @@ GEM tilt highline (1.6.21) i18n (0.7.0) - jbuilder (2.2.16) + jbuilder (2.3.1) activesupport (>= 3.0.0, < 5) multi_json (~> 1.2) - jquery-rails (4.0.3) + jquery-rails (4.0.4) rails-dom-testing (~> 1.0) railties (>= 4.2.0) thor (>= 0.14, < 2.0) - json (1.8.2) + json (1.8.3) kgio (2.9.3) launchy (2.4.3) addressable (~> 2.3) @@ -119,29 +119,29 @@ GEM nokogiri (>= 1.5.9) mail (2.6.3) mime-types (>= 1.16, < 3) - mime-types (2.5) + mime-types (2.6.1) mini_portile (0.6.2) - minitest (5.6.1) - multi_json (1.11.0) + minitest (5.7.0) + multi_json (1.11.2) nokogiri (1.6.6.2) mini_portile (~> 0.6.0) - parser (2.2.2.3) + parser (2.2.2.6) ast (>= 1.1, < 3.0) pg (0.18.2) powerpack (0.1.1) - rack (1.6.1) + rack (1.6.4) rack-test (0.6.3) rack (>= 1.0) - rails (4.2.1) - actionmailer (= 4.2.1) - actionpack (= 4.2.1) - actionview (= 4.2.1) - activejob (= 4.2.1) - activemodel (= 4.2.1) - activerecord (= 4.2.1) - activesupport (= 4.2.1) + rails (4.2.3) + actionmailer (= 4.2.3) + actionpack (= 4.2.3) + actionview (= 4.2.3) + activejob (= 4.2.3) + activemodel (= 4.2.3) + activerecord (= 4.2.3) + activesupport (= 4.2.3) bundler (>= 1.3.0, < 2.0) - railties (= 4.2.1) + railties (= 4.2.3) sprockets-rails rails-deprecated_sanitizer (1.0.3) activesupport (>= 4.2.0.alpha) @@ -156,36 +156,35 @@ GEM rails_stdout_logging rails_serve_static_assets (0.0.4) rails_stdout_logging (0.0.3) - railties (4.2.1) - actionpack (= 4.2.1) - activesupport (= 4.2.1) + railties (4.2.3) + actionpack (= 4.2.3) + activesupport (= 4.2.3) rake (>= 0.8.7) thor (>= 0.18.1, < 2.0) rainbow (2.0.0) - raindrops (0.13.0) + raindrops (0.15.0) rake (10.4.2) rdoc (4.2.0) - json (~> 1.4) - rspec-core (3.2.3) - rspec-support (~> 3.2.0) - rspec-expectations (3.2.1) + rspec-core (3.3.2) + rspec-support (~> 3.3.0) + rspec-expectations (3.3.1) diff-lcs (>= 1.2.0, < 2.0) - rspec-support (~> 3.2.0) - rspec-mocks (3.2.1) + rspec-support (~> 3.3.0) + rspec-mocks (3.3.2) diff-lcs (>= 1.2.0, < 2.0) - rspec-support (~> 3.2.0) - rspec-rails (3.2.1) + rspec-support (~> 3.3.0) + rspec-rails (3.3.3) actionpack (>= 3.0, < 4.3) activesupport (>= 3.0, < 4.3) railties (>= 3.0, < 4.3) - rspec-core (~> 3.2.0) - rspec-expectations (~> 3.2.0) - rspec-mocks (~> 3.2.0) - rspec-support (~> 3.2.0) - rspec-support (3.2.2) - rubocop (0.31.0) + rspec-core (~> 3.3.0) + rspec-expectations (~> 3.3.0) + rspec-mocks (~> 3.3.0) + rspec-support (~> 3.3.0) + rspec-support (3.3.0) + rubocop (0.32.1) astrolabe (~> 1.3) - parser (>= 2.2.2.1, < 3.0) + parser (>= 2.2.2.5, < 3.0) powerpack (~> 0.1) rainbow (>= 1.99.1, < 3.0) ruby-progressbar (~> 1.4) @@ -196,9 +195,9 @@ GEM ruby2ruby (2.1.4) ruby_parser (~> 3.1) sexp_processor (~> 4.0) - ruby_parser (3.6.6) + ruby_parser (3.7.0) sexp_processor (~> 4.1) - sass (3.4.13) + sass (3.4.16) sass-rails (5.0.3) railties (>= 4.0.0, < 5.0) sass (~> 3.1) @@ -211,19 +210,19 @@ GEM sdoc (0.4.1) json (~> 1.7, >= 1.7.7) rdoc (~> 4.0) - sexp_processor (4.5.1) + sexp_processor (4.6.0) slop (3.6.0) spring (1.3.6) spring-commands-rspec (1.0.4) spring (>= 0.9.1) - sprockets (3.1.0) + sprockets (3.2.0) rack (~> 1.0) - sprockets-rails (2.3.1) + sprockets-rails (2.3.2) actionpack (>= 3.0) activesupport (>= 3.0) sprockets (>= 2.8, < 4.0) sqlite3 (1.3.10) - terminal-table (1.4.5) + terminal-table (1.5.2) thor (0.19.1) thread_safe (0.3.5) tilt (1.4.1) @@ -238,10 +237,10 @@ GEM kgio (~> 2.6) rack raindrops (~> 0.7) - web-console (2.0.0) - activemodel (~> 4.0) + web-console (2.2.1) + activemodel (>= 4.0) binding_of_caller (>= 0.7.2) - railties (~> 4.0) + railties (>= 4.0) sprockets-rails (>= 2.0, < 4.0) xpath (2.0.0) nokogiri (~> 1.3) @@ -282,4 +281,7 @@ DEPENDENCIES turbolinks uglifier unicorn - web-console (~> 2.0.0.beta2) + web-console + +BUNDLED WITH + 1.10.5 diff --git a/client/.eslintrc b/client/.eslintrc index 4b4ba847..7c3ca0c7 100644 --- a/client/.eslintrc +++ b/client/.eslintrc @@ -1,260 +1,4 @@ { + "extends": "airbnb", -/** - * Slight changes from https://raw.githubusercontent.com/airbnb/javascript/master/linters/.eslintrc - */ - - "parser": "babel-eslint", - "env": { - "browser": true, - "node": true - }, - "plugins": ["react"], - - "ecmaFeatures": { - "arrowFunctions": true, - "blockBindings": true, - "classes": true, - "defaultParams": true, - "destructuring": true, - "forOf": true, - "generators": false, - "modules": true, - "objectLiteralComputedProperties": true, - "objectLiteralDuplicateProperties": false, - "objectLiteralShorthandMethods": true, - "objectLiteralShorthandProperties": true, - "spread": true, - "superInFunctions": true, - "templateStrings": true, - "jsx": true - }, - "rules": { -/** - * Strict mode - */ - // babel inserts "use strict"; for us - // http://eslint.org/docs/rules/strict - "strict": [2, "never"], - -/** - * ES6 - */ - "no-var": 2, // http://eslint.org/docs/rules/no-var - -/** - * Variables - */ - "no-shadow": 2, // http://eslint.org/docs/rules/no-shadow - "no-shadow-restricted-names": 2, // http://eslint.org/docs/rules/no-shadow-restricted-names - "no-unused-vars": [2, { // http://eslint.org/docs/rules/no-unused-vars - "vars": "local", - "args": "after-used" - }], - "no-use-before-define": 2, // http://eslint.org/docs/rules/no-use-before-define - -/** - * Possible errors - */ - "comma-dangle": [2, "never"], // http://eslint.org/docs/rules/comma-dangle - "no-cond-assign": [2, "always"], // http://eslint.org/docs/rules/no-cond-assign - "no-console": 1, // http://eslint.org/docs/rules/no-console - - // DEVIATION - "no-debugger": 2, // http://eslint.org/docs/rules/no-debugger - - "no-alert": 1, // http://eslint.org/docs/rules/no-alert - "no-constant-condition": 1, // http://eslint.org/docs/rules/no-constant-condition - "no-dupe-keys": 2, // http://eslint.org/docs/rules/no-dupe-keys - "no-duplicate-case": 2, // http://eslint.org/docs/rules/no-duplicate-case - "no-empty": 2, // http://eslint.org/docs/rules/no-empty - "no-ex-assign": 2, // http://eslint.org/docs/rules/no-ex-assign - "no-extra-boolean-cast": 0, // http://eslint.org/docs/rules/no-extra-boolean-cast - "no-extra-semi": 2, // http://eslint.org/docs/rules/no-extra-semi - "no-func-assign": 2, // http://eslint.org/docs/rules/no-func-assign - "no-inner-declarations": 2, // http://eslint.org/docs/rules/no-inner-declarations - "no-invalid-regexp": 2, // http://eslint.org/docs/rules/no-invalid-regexp - "no-irregular-whitespace": 2, // http://eslint.org/docs/rules/no-irregular-whitespace - "no-obj-calls": 2, // http://eslint.org/docs/rules/no-obj-calls - "no-reserved-keys": 2, // http://eslint.org/docs/rules/no-reserved-keys - "no-sparse-arrays": 2, // http://eslint.org/docs/rules/no-sparse-arrays - "no-unreachable": 2, // http://eslint.org/docs/rules/no-unreachable - "use-isnan": 2, // http://eslint.org/docs/rules/use-isnan - "block-scoped-var": 2, // http://eslint.org/docs/rules/block-scoped-var - -/** - * Best practices - */ - "consistent-return": 2, // http://eslint.org/docs/rules/consistent-return - "curly": [2, "multi-line"], // http://eslint.org/docs/rules/curly - "default-case": 2, // http://eslint.org/docs/rules/default-case - "dot-notation": [2, { // http://eslint.org/docs/rules/dot-notation - "allowKeywords": false - }], - "eqeqeq": 2, // http://eslint.org/docs/rules/eqeqeq - "guard-for-in": 2, // http://eslint.org/docs/rules/guard-for-in - "no-caller": 2, // http://eslint.org/docs/rules/no-caller - "no-else-return": 2, // http://eslint.org/docs/rules/no-else-return - "no-eq-null": 2, // http://eslint.org/docs/rules/no-eq-null - "no-eval": 2, // http://eslint.org/docs/rules/no-eval - "no-extend-native": 2, // http://eslint.org/docs/rules/no-extend-native - "no-extra-bind": 2, // http://eslint.org/docs/rules/no-extra-bind - "no-fallthrough": 2, // http://eslint.org/docs/rules/no-fallthrough - "no-floating-decimal": 2, // http://eslint.org/docs/rules/no-floating-decimal - "no-implied-eval": 2, // http://eslint.org/docs/rules/no-implied-eval - "no-lone-blocks": 2, // http://eslint.org/docs/rules/no-lone-blocks - "no-loop-func": 2, // http://eslint.org/docs/rules/no-loop-func - "no-multi-str": 2, // http://eslint.org/docs/rules/no-multi-str - "no-native-reassign": 2, // http://eslint.org/docs/rules/no-native-reassign - "no-new": 2, // http://eslint.org/docs/rules/no-new - "no-new-func": 2, // http://eslint.org/docs/rules/no-new-func - "no-new-wrappers": 2, // http://eslint.org/docs/rules/no-new-wrappers - "no-octal": 2, // http://eslint.org/docs/rules/no-octal - "no-octal-escape": 2, // http://eslint.org/docs/rules/no-octal-escape - "no-param-reassign": 2, // http://eslint.org/docs/rules/no-param-reassign - "no-proto": 2, // http://eslint.org/docs/rules/no-proto - "no-redeclare": 2, // http://eslint.org/docs/rules/no-redeclare - "no-return-assign": 2, // http://eslint.org/docs/rules/no-return-assign - "no-script-url": 2, // http://eslint.org/docs/rules/no-script-url - "no-self-compare": 2, // http://eslint.org/docs/rules/no-self-compare - "no-sequences": 2, // http://eslint.org/docs/rules/no-sequences - "no-throw-literal": 2, // http://eslint.org/docs/rules/no-throw-literal - "no-with": 2, // http://eslint.org/docs/rules/no-with - "radix": 2, // http://eslint.org/docs/rules/radix - "vars-on-top": 2, // http://eslint.org/docs/rules/vars-on-top - "wrap-iife": [2, "any"], // http://eslint.org/docs/rules/wrap-iife - "yoda": 2, // http://eslint.org/docs/rules/yoda - -/** - * Style - */ - "indent": [2, 2], // http://eslint.org/docs/rules/ - "brace-style": [2, // http://eslint.org/docs/rules/brace-style - "1tbs", { - "allowSingleLine": true - }], - "quotes": [ - 2, "single", "avoid-escape" // http://eslint.org/docs/rules/quotes - ], - "camelcase": [2, { // http://eslint.org/docs/rules/camelcase - "properties": "never" - }], - "comma-spacing": [2, { // http://eslint.org/docs/rules/comma-spacing - "before": false, - "after": true - }], - "comma-style": [2, "last"], // http://eslint.org/docs/rules/comma-style - "eol-last": 2, // http://eslint.org/docs/rules/eol-last - "func-names": 1, // http://eslint.org/docs/rules/func-names - "key-spacing": [2, { // http://eslint.org/docs/rules/key-spacing - "beforeColon": false, - "afterColon": true - }], - "new-cap": [2, { // http://eslint.org/docs/rules/new-cap - "newIsCap": true - }], - "no-multiple-empty-lines": [2, { // http://eslint.org/docs/rules/no-multiple-empty-lines - "max": 2 - }], - "no-nested-ternary": 2, // http://eslint.org/docs/rules/no-nested-ternary - "no-new-object": 2, // http://eslint.org/docs/rules/no-new-object - "no-spaced-func": 2, // http://eslint.org/docs/rules/no-spaced-func - "no-trailing-spaces": 2, // http://eslint.org/docs/rules/no-trailing-spaces - "no-wrap-func": 2, // http://eslint.org/docs/rules/no-wrap-func - "no-underscore-dangle": 0, // http://eslint.org/docs/rules/no-underscore-dangle - "one-var": [2, "never"], // http://eslint.org/docs/rules/one-var - - # This issue is fixed: https://github.com/babel/babel-eslint/issues/33 - "padded-blocks": [2, "never"], // http://eslint.org/docs/rules/padded-blocks - - "semi": [2, "always"], // http://eslint.org/docs/rules/semi - "semi-spacing": [2, { // http://eslint.org/docs/rules/semi-spacing - "before": false, - "after": true - }], - "space-after-keywords": 2, // http://eslint.org/docs/rules/space-after-keywords - "space-before-blocks": 2, // http://eslint.org/docs/rules/space-before-blocks - "space-before-function-paren": [2, "never"], // http://eslint.org/docs/rules/space-before-function-paren - "space-infix-ops": 2, // http://eslint.org/docs/rules/space-infix-ops - "space-return-throw-case": 2, // http://eslint.org/docs/rules/space-return-throw-case - "spaced-line-comment": 2, // http://eslint.org/docs/rules/spaced-line-comment - - // ONES BELOW HERE are NOT in the Air Bnb standards, so they should be removed if they seem unnecessary - "no-array-constructor": 2, - "no-bitwise": 0, - "no-catch-shadow": 2, - "no-comma-dangle": 2, - "no-control-regex": 2, - "no-delete-var": 2, - "no-div-regex": 0, - "no-dupe-args": 2, - "no-empty-class": 2, - "no-empty-label": 2, - "no-extra-parens": 0, - "no-inline-comments": 0, - "no-iterator": 2, - "no-label-var": 2, - "no-labels": 2, - "no-lonely-if": 2, - "no-mixed-requires": [0, false], - "no-mixed-spaces-and-tabs": [2, false], - "no-multi-spaces": 2, - "no-negated-in-lhs": 2, - "no-new-require": 0, - "no-path-concat": 0, - "no-plusplus": 0, - "no-process-env": 0, - "no-process-exit": 0, - "no-regex-spaces": 2, - "no-space-before-semi": 2, - "no-sync": 0, - "no-ternary": 0, - "no-undef": 2, - "no-undef-init": 2, - "no-undefined": 0, - "no-unused-expressions": 2, - "no-warning-comments": [0, {"terms": ['todo', 'fixme', 'xxx'], "location": 'start'}], - "complexity": [0, 11], - "consistent-this": [2, 'self'], - "func-style": [2, 'declaration'], - "generator-star": 0, - "handle-callback-err": 2, - "max-depth": [1, 4], - # Different from 80 chars of AirBnb Javascript, - "max-len": [2, 120], - "max-nested-callbacks": [1, 2], - "max-params": [1, 4], - "max-statements": [0, 10], - "new-parens": 2, - "operator-assignment": [0, 'always'], - "quote-props": 0, - "semi": 2, - "sort-vars": 0, - "space-after-function-name": [0, 'never'], - "space-before-function-parentheses": [2, "never"], - "space-in-brackets": 2, - "space-in-parens": 2, - "space-return-throw-case": 2, - "space-unary-ops": [2, {"words": true, "nonwords": false}], - "valid-jsdoc": 2, - "valid-typeof": 2, - "wrap-iife": 0, - "wrap-regex": 0, - -/** - * JSX (not in airbnb guide) - */ - "react/display-name": 1, - "react/jsx-quotes": 1, - "react/jsx-no-undef": 1, - "react/jsx-uses-react": 1, - "react/jsx-uses-vars": 1, - "react/no-did-mount-set-state": 1, - "react/no-did-update-set-state": 1, - "react/no-multi-comp": 1, - "react/prop-types": 1, - "react/react-in-jsx-scope": 1, - "react/self-closing-comp": 1, - "react/wrap-multilines": 1 - } } diff --git a/client/README.md b/client/README.md index aa2a47b0..30d0717d 100644 --- a/client/README.md +++ b/client/README.md @@ -29,9 +29,10 @@ Updating Node Dependenencies npm install -g npm-check-updates ``` -Make sure you are in the client directory, then run: ``` +# Make sure you are in the `client` directory, then run: +cd client rm npm-shrinkwrap.json npm-check-updates -u npm install diff --git a/client/npm-shrinkwrap.json b/client/npm-shrinkwrap.json index e8e7d73c..a895fef2 100644 --- a/client/npm-shrinkwrap.json +++ b/client/npm-shrinkwrap.json @@ -3,63 +3,128 @@ "version": "1.1.0", "dependencies": { "alt": { - "version": "0.16.5", - "from": "alt@>=0.16.5 <0.17.0", - "resolved": "https://registry.npmjs.org/alt/-/alt-0.16.5.tgz", + "version": "0.17.1", + "from": "alt@>=0.17.1 <0.18.0", + "resolved": "https://registry.npmjs.org/alt/-/alt-0.17.1.tgz", "dependencies": { - "es-symbol": { - "version": "1.1.2", - "from": "es-symbol@1.1.2", - "resolved": "https://registry.npmjs.org/es-symbol/-/es-symbol-1.1.2.tgz" - }, - "eventemitter3": { - "version": "0.1.6", - "from": "eventemitter3@0.1.6", - "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-0.1.6.tgz" - }, "flux": { "version": "2.0.3", "from": "flux@2.0.3", "resolved": "https://registry.npmjs.org/flux/-/flux-2.0.3.tgz" + }, + "transmitter": { + "version": "1.0.2", + "from": "transmitter@1.0.2", + "resolved": "https://registry.npmjs.org/transmitter/-/transmitter-1.0.2.tgz" } } }, "babel-core": { - "version": "5.4.5", - "from": "babel-core@>=5.4.5 <6.0.0", - "resolved": "https://registry.npmjs.org/babel-core/-/babel-core-5.4.5.tgz", + "version": "5.8.20", + "from": "babel-core@>=5.8.20 <6.0.0", + "resolved": "https://registry.npmjs.org/babel-core/-/babel-core-5.8.20.tgz", "dependencies": { - "acorn-jsx": { + "babel-plugin-constant-folding": { + "version": "1.0.1", + "from": "babel-plugin-constant-folding@>=1.0.1 <2.0.0", + "resolved": "https://registry.npmjs.org/babel-plugin-constant-folding/-/babel-plugin-constant-folding-1.0.1.tgz" + }, + "babel-plugin-dead-code-elimination": { + "version": "1.0.2", + "from": "babel-plugin-dead-code-elimination@>=1.0.2 <2.0.0", + "resolved": "https://registry.npmjs.org/babel-plugin-dead-code-elimination/-/babel-plugin-dead-code-elimination-1.0.2.tgz" + }, + "babel-plugin-eval": { + "version": "1.0.1", + "from": "babel-plugin-eval@>=1.0.1 <2.0.0", + "resolved": "https://registry.npmjs.org/babel-plugin-eval/-/babel-plugin-eval-1.0.1.tgz" + }, + "babel-plugin-inline-environment-variables": { + "version": "1.0.1", + "from": "babel-plugin-inline-environment-variables@>=1.0.1 <2.0.0", + "resolved": "https://registry.npmjs.org/babel-plugin-inline-environment-variables/-/babel-plugin-inline-environment-variables-1.0.1.tgz" + }, + "babel-plugin-jscript": { + "version": "1.0.4", + "from": "babel-plugin-jscript@>=1.0.4 <2.0.0", + "resolved": "https://registry.npmjs.org/babel-plugin-jscript/-/babel-plugin-jscript-1.0.4.tgz" + }, + "babel-plugin-member-expression-literals": { + "version": "1.0.1", + "from": "babel-plugin-member-expression-literals@>=1.0.1 <2.0.0", + "resolved": "https://registry.npmjs.org/babel-plugin-member-expression-literals/-/babel-plugin-member-expression-literals-1.0.1.tgz" + }, + "babel-plugin-property-literals": { "version": "1.0.1", - "from": "acorn-jsx@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-1.0.1.tgz", + "from": "babel-plugin-property-literals@>=1.0.1 <2.0.0", + "resolved": "https://registry.npmjs.org/babel-plugin-property-literals/-/babel-plugin-property-literals-1.0.1.tgz" + }, + "babel-plugin-proto-to-assign": { + "version": "1.0.4", + "from": "babel-plugin-proto-to-assign@>=1.0.3 <2.0.0", + "resolved": "https://registry.npmjs.org/babel-plugin-proto-to-assign/-/babel-plugin-proto-to-assign-1.0.4.tgz" + }, + "babel-plugin-react-constant-elements": { + "version": "1.0.3", + "from": "babel-plugin-react-constant-elements@>=1.0.3 <2.0.0", + "resolved": "https://registry.npmjs.org/babel-plugin-react-constant-elements/-/babel-plugin-react-constant-elements-1.0.3.tgz" + }, + "babel-plugin-react-display-name": { + "version": "1.0.3", + "from": "babel-plugin-react-display-name@>=1.0.3 <2.0.0", + "resolved": "https://registry.npmjs.org/babel-plugin-react-display-name/-/babel-plugin-react-display-name-1.0.3.tgz" + }, + "babel-plugin-remove-console": { + "version": "1.0.1", + "from": "babel-plugin-remove-console@>=1.0.1 <2.0.0", + "resolved": "https://registry.npmjs.org/babel-plugin-remove-console/-/babel-plugin-remove-console-1.0.1.tgz" + }, + "babel-plugin-remove-debugger": { + "version": "1.0.1", + "from": "babel-plugin-remove-debugger@>=1.0.1 <2.0.0", + "resolved": "https://registry.npmjs.org/babel-plugin-remove-debugger/-/babel-plugin-remove-debugger-1.0.1.tgz" + }, + "babel-plugin-runtime": { + "version": "1.0.7", + "from": "babel-plugin-runtime@>=1.0.7 <2.0.0", + "resolved": "https://registry.npmjs.org/babel-plugin-runtime/-/babel-plugin-runtime-1.0.7.tgz" + }, + "babel-plugin-undeclared-variables-check": { + "version": "1.0.2", + "from": "babel-plugin-undeclared-variables-check@>=1.0.2 <2.0.0", + "resolved": "https://registry.npmjs.org/babel-plugin-undeclared-variables-check/-/babel-plugin-undeclared-variables-check-1.0.2.tgz", "dependencies": { - "acorn": { - "version": "1.1.0", - "from": "acorn@>=1.0.3 <2.0.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-1.1.0.tgz" + "leven": { + "version": "1.0.2", + "from": "leven@>=1.0.2 <2.0.0", + "resolved": "https://registry.npmjs.org/leven/-/leven-1.0.2.tgz" } } }, - "ast-types": { - "version": "0.7.6", - "from": "ast-types@>=0.7.0 <0.8.0", - "resolved": "https://registry.npmjs.org/ast-types/-/ast-types-0.7.6.tgz" + "babel-plugin-undefined-to-void": { + "version": "1.1.6", + "from": "babel-plugin-undefined-to-void@>=1.1.6 <2.0.0", + "resolved": "https://registry.npmjs.org/babel-plugin-undefined-to-void/-/babel-plugin-undefined-to-void-1.1.6.tgz" + }, + "babylon": { + "version": "5.8.20", + "from": "babylon@>=5.8.20 <6.0.0", + "resolved": "https://registry.npmjs.org/babylon/-/babylon-5.8.20.tgz" }, "bluebird": { - "version": "2.9.25", - "from": "bluebird@>=2.9.25 <3.0.0", - "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-2.9.25.tgz" + "version": "2.9.34", + "from": "bluebird@>=2.9.33 <3.0.0", + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-2.9.34.tgz" }, "chalk": { - "version": "1.0.0", + "version": "1.1.0", "from": "chalk@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.0.0.tgz", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.0.tgz", "dependencies": { "ansi-styles": { - "version": "2.0.1", - "from": "ansi-styles@>=2.0.1 <3.0.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.0.1.tgz" + "version": "2.1.0", + "from": "ansi-styles@>=2.1.0 <3.0.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.1.0.tgz" }, "escape-string-regexp": { "version": "1.0.3", @@ -67,38 +132,33 @@ "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.3.tgz" }, "has-ansi": { - "version": "1.0.3", - "from": "has-ansi@>=1.0.3 <2.0.0", - "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-1.0.3.tgz", + "version": "2.0.0", + "from": "has-ansi@>=2.0.0 <3.0.0", + "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", "dependencies": { "ansi-regex": { - "version": "1.1.1", - "from": "ansi-regex@>=1.1.0 <2.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-1.1.1.tgz" - }, - "get-stdin": { - "version": "4.0.1", - "from": "get-stdin@>=4.0.1 <5.0.0", - "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz" + "version": "2.0.0", + "from": "ansi-regex@>=2.0.0 <3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.0.0.tgz" } } }, "strip-ansi": { - "version": "2.0.1", - "from": "strip-ansi@>=2.0.1 <3.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-2.0.1.tgz", + "version": "3.0.0", + "from": "strip-ansi@>=3.0.0 <4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.0.tgz", "dependencies": { "ansi-regex": { - "version": "1.1.1", - "from": "ansi-regex@>=1.1.0 <2.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-1.1.1.tgz" + "version": "2.0.0", + "from": "ansi-regex@>=2.0.0 <3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.0.0.tgz" } } }, "supports-color": { - "version": "1.3.1", - "from": "supports-color@>=1.3.0 <2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-1.3.1.tgz" + "version": "2.0.0", + "from": "supports-color@>=2.0.0 <3.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz" } } }, @@ -108,9 +168,9 @@ "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.1.1.tgz" }, "core-js": { - "version": "0.9.11", - "from": "core-js@>=0.9.0 <0.10.0", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-0.9.11.tgz" + "version": "1.0.1", + "from": "core-js@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-1.0.1.tgz" }, "debug": { "version": "2.2.0", @@ -135,22 +195,12 @@ "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz" }, "minimist": { - "version": "1.1.1", + "version": "1.1.2", "from": "minimist@>=1.1.0 <2.0.0", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.1.1.tgz" + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.1.2.tgz" } } }, - "esquery": { - "version": "0.4.0", - "from": "esquery@>=0.4.0 <0.5.0", - "resolved": "https://registry.npmjs.org/esquery/-/esquery-0.4.0.tgz" - }, - "estraverse": { - "version": "4.1.0", - "from": "estraverse@>=4.0.0 <5.0.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.1.0.tgz" - }, "esutils": { "version": "2.0.2", "from": "esutils@>=2.0.0 <3.0.0", @@ -201,21 +251,40 @@ } }, "is-nan": { - "version": "1.0.1", + "version": "1.1.0", "from": "is-nan@>=1.0.1 <2.0.0", - "resolved": "https://registry.npmjs.org/is-nan/-/is-nan-1.0.1.tgz" + "resolved": "https://registry.npmjs.org/is-nan/-/is-nan-1.1.0.tgz", + "dependencies": { + "define-properties": { + "version": "1.1.1", + "from": "define-properties@>=1.0.2 <2.0.0", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.1.tgz", + "dependencies": { + "foreach": { + "version": "2.0.5", + "from": "foreach@>=2.0.5 <3.0.0", + "resolved": "https://registry.npmjs.org/foreach/-/foreach-2.0.5.tgz" + }, + "object-keys": { + "version": "1.0.7", + "from": "object-keys@>=1.0.7 <2.0.0", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.0.7.tgz" + } + } + } + } } } }, "js-tokens": { - "version": "1.0.0", - "from": "js-tokens@1.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-1.0.0.tgz" + "version": "1.0.1", + "from": "js-tokens@1.0.1", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-1.0.1.tgz" }, - "leven": { - "version": "1.0.2", - "from": "leven@>=1.0.1 <2.0.0", - "resolved": "https://registry.npmjs.org/leven/-/leven-1.0.2.tgz" + "json5": { + "version": "0.4.0", + "from": "json5@>=0.4.0 <0.5.0", + "resolved": "https://registry.npmjs.org/json5/-/json5-0.4.0.tgz" }, "line-numbers": { "version": "0.2.0", @@ -230,14 +299,14 @@ } }, "lodash": { - "version": "3.9.1", - "from": "lodash@>=3.6.0 <4.0.0", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-3.9.1.tgz" + "version": "3.10.0", + "from": "lodash@>=3.10.0 <4.0.0", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-3.10.0.tgz" }, "minimatch": { - "version": "2.0.8", + "version": "2.0.10", "from": "minimatch@>=2.0.3 <3.0.0", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-2.0.8.tgz", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-2.0.10.tgz", "dependencies": { "brace-expansion": { "version": "1.1.0", @@ -259,13 +328,13 @@ } }, "output-file-sync": { - "version": "1.1.0", + "version": "1.1.1", "from": "output-file-sync@>=1.1.0 <2.0.0", - "resolved": "https://registry.npmjs.org/output-file-sync/-/output-file-sync-1.1.0.tgz", + "resolved": "https://registry.npmjs.org/output-file-sync/-/output-file-sync-1.1.1.tgz", "dependencies": { "mkdirp": { "version": "0.5.1", - "from": "mkdirp@>=0.5.0 <0.6.0", + "from": "mkdirp@>=0.5.1 <0.6.0", "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", "dependencies": { "minimist": { @@ -282,6 +351,11 @@ } } }, + "path-exists": { + "version": "1.0.0", + "from": "path-exists@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-1.0.0.tgz" + }, "path-is-absolute": { "version": "1.0.0", "from": "path-is-absolute@>=1.0.0 <2.0.0", @@ -293,58 +367,29 @@ "resolved": "https://registry.npmjs.org/private/-/private-0.1.6.tgz" }, "regenerator": { - "version": "0.8.26", - "from": "regenerator@>=0.8.20 <0.9.0", - "resolved": "https://registry.npmjs.org/regenerator/-/regenerator-0.8.26.tgz", + "version": "0.8.35", + "from": "regenerator@0.8.35", + "resolved": "https://registry.npmjs.org/regenerator/-/regenerator-0.8.35.tgz", "dependencies": { "commoner": { - "version": "0.10.1", + "version": "0.10.3", "from": "commoner@>=0.10.0 <0.11.0", - "resolved": "https://registry.npmjs.org/commoner/-/commoner-0.10.1.tgz", + "resolved": "https://registry.npmjs.org/commoner/-/commoner-0.10.3.tgz", "dependencies": { "q": { "version": "1.1.2", "from": "q@>=1.1.2 <1.2.0", "resolved": "https://registry.npmjs.org/q/-/q-1.1.2.tgz" }, - "recast": { - "version": "0.9.18", - "from": "recast@>=0.9.5 <0.10.0", - "resolved": "https://registry.npmjs.org/recast/-/recast-0.9.18.tgz", - "dependencies": { - "esprima-fb": { - "version": "10001.1.0-dev-harmony-fb", - "from": "esprima-fb@>=10001.1.0-dev-harmony-fb <10001.2.0", - "resolved": "https://registry.npmjs.org/esprima-fb/-/esprima-fb-10001.1.0-dev-harmony-fb.tgz" - }, - "source-map": { - "version": "0.1.43", - "from": "source-map@>=0.1.40 <0.2.0", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.1.43.tgz", - "dependencies": { - "amdefine": { - "version": "0.1.0", - "from": "amdefine@>=0.0.4", - "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-0.1.0.tgz" - } - } - }, - "ast-types": { - "version": "0.6.16", - "from": "ast-types@>=0.6.1 <0.7.0", - "resolved": "https://registry.npmjs.org/ast-types/-/ast-types-0.6.16.tgz" - } - } - }, "commander": { "version": "2.5.1", "from": "commander@>=2.5.0 <2.6.0", "resolved": "https://registry.npmjs.org/commander/-/commander-2.5.1.tgz" }, "graceful-fs": { - "version": "3.0.7", + "version": "3.0.8", "from": "graceful-fs@>=3.0.4 <3.1.0", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-3.0.7.tgz" + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-3.0.8.tgz" }, "glob": { "version": "4.2.2", @@ -374,9 +419,9 @@ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-1.0.0.tgz", "dependencies": { "lru-cache": { - "version": "2.6.4", + "version": "2.6.5", "from": "lru-cache@>=2.0.0 <3.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-2.6.4.tgz" + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-2.6.5.tgz" }, "sigmund": { "version": "1.0.1", @@ -417,34 +462,12 @@ "resolved": "https://registry.npmjs.org/install/-/install-0.1.8.tgz" }, "iconv-lite": { - "version": "0.4.8", + "version": "0.4.11", "from": "iconv-lite@>=0.4.5 <0.5.0", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.8.tgz" + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.11.tgz" } } }, - "esprima-fb": { - "version": "13001.1.0-dev-harmony-fb", - "from": "esprima-fb@>=13001.1.0-dev-harmony-fb <13001.2.0", - "resolved": "https://registry.npmjs.org/esprima-fb/-/esprima-fb-13001.1.0-dev-harmony-fb.tgz" - }, - "recast": { - "version": "0.10.12", - "from": "recast@>=0.10.3 <0.11.0", - "resolved": "https://registry.npmjs.org/recast/-/recast-0.10.12.tgz", - "dependencies": { - "esprima-fb": { - "version": "14001.1.0-dev-harmony-fb", - "from": "esprima-fb@>=14001.1.0-dev-harmony-fb <14001.2.0", - "resolved": "https://registry.npmjs.org/esprima-fb/-/esprima-fb-14001.1.0-dev-harmony-fb.tgz" - } - } - }, - "through": { - "version": "2.3.7", - "from": "through@>=2.3.6 <2.4.0", - "resolved": "https://registry.npmjs.org/through/-/through-2.3.7.tgz" - }, "defs": { "version": "1.1.0", "from": "defs@>=1.1.0 <1.2.0", @@ -508,23 +531,50 @@ "resolved": "https://registry.npmjs.org/yargs/-/yargs-1.3.3.tgz" } } + }, + "esprima-fb": { + "version": "15001.1.0-dev-harmony-fb", + "from": "esprima-fb@>=15001.1.0-dev-harmony-fb <15001.2.0", + "resolved": "https://registry.npmjs.org/esprima-fb/-/esprima-fb-15001.1.0-dev-harmony-fb.tgz" + }, + "recast": { + "version": "0.10.24", + "from": "recast@0.10.24", + "resolved": "https://registry.npmjs.org/recast/-/recast-0.10.24.tgz", + "dependencies": { + "ast-types": { + "version": "0.8.5", + "from": "ast-types@0.8.5", + "resolved": "https://registry.npmjs.org/ast-types/-/ast-types-0.8.5.tgz" + } + } + }, + "through": { + "version": "2.3.8", + "from": "through@>=2.3.6 <2.4.0", + "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz" } } }, "regexpu": { - "version": "1.1.2", + "version": "1.2.0", "from": "regexpu@>=1.1.2 <2.0.0", - "resolved": "https://registry.npmjs.org/regexpu/-/regexpu-1.1.2.tgz", + "resolved": "https://registry.npmjs.org/regexpu/-/regexpu-1.2.0.tgz", "dependencies": { "recast": { - "version": "0.10.12", - "from": "recast@>=0.10.1 <0.11.0", - "resolved": "https://registry.npmjs.org/recast/-/recast-0.10.12.tgz", + "version": "0.10.26", + "from": "recast@>=0.10.6 <0.11.0", + "resolved": "https://registry.npmjs.org/recast/-/recast-0.10.26.tgz", "dependencies": { "esprima-fb": { - "version": "14001.1.0-dev-harmony-fb", - "from": "esprima-fb@>=14001.1.0-dev-harmony-fb <14001.2.0", - "resolved": "https://registry.npmjs.org/esprima-fb/-/esprima-fb-14001.1.0-dev-harmony-fb.tgz" + "version": "15001.1.0-dev-harmony-fb", + "from": "esprima-fb@>=15001.1.0-dev-harmony-fb <15001.2.0", + "resolved": "https://registry.npmjs.org/esprima-fb/-/esprima-fb-15001.1.0-dev-harmony-fb.tgz" + }, + "ast-types": { + "version": "0.8.7", + "from": "ast-types@0.8.7", + "resolved": "https://registry.npmjs.org/ast-types/-/ast-types-0.8.7.tgz" } } }, @@ -553,9 +603,9 @@ } }, "repeating": { - "version": "1.1.2", + "version": "1.1.3", "from": "repeating@>=1.1.2 <2.0.0", - "resolved": "https://registry.npmjs.org/repeating/-/repeating-1.1.2.tgz", + "resolved": "https://registry.npmjs.org/repeating/-/repeating-1.1.3.tgz", "dependencies": { "is-finite": { "version": "1.0.1", @@ -568,52 +618,6 @@ "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.0.tgz" } } - }, - "meow": { - "version": "3.1.0", - "from": "meow@>=3.0.0 <4.0.0", - "resolved": "https://registry.npmjs.org/meow/-/meow-3.1.0.tgz", - "dependencies": { - "camelcase-keys": { - "version": "1.0.0", - "from": "camelcase-keys@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-1.0.0.tgz", - "dependencies": { - "camelcase": { - "version": "1.1.0", - "from": "camelcase@>=1.0.1 <2.0.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-1.1.0.tgz" - }, - "map-obj": { - "version": "1.0.1", - "from": "map-obj@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz" - } - } - }, - "indent-string": { - "version": "1.2.1", - "from": "indent-string@>=1.1.0 <2.0.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-1.2.1.tgz", - "dependencies": { - "get-stdin": { - "version": "4.0.1", - "from": "get-stdin@>=4.0.1 <5.0.0", - "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz" - } - } - }, - "minimist": { - "version": "1.1.1", - "from": "minimist@>=1.1.0 <2.0.0", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.1.1.tgz" - }, - "object-assign": { - "version": "2.0.0", - "from": "object-assign@>=2.0.0 <3.0.0", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-2.0.0.tgz" - } - } } } }, @@ -633,14 +637,14 @@ "resolved": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz" }, "source-map": { - "version": "0.4.2", + "version": "0.4.4", "from": "source-map@>=0.4.0 <0.5.0", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.4.2.tgz", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz", "dependencies": { "amdefine": { - "version": "0.1.0", + "version": "1.0.0", "from": "amdefine@>=0.0.4", - "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-0.1.0.tgz" + "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.0.tgz" } } }, @@ -655,52 +659,52 @@ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.1.32.tgz", "dependencies": { "amdefine": { - "version": "0.1.0", + "version": "1.0.0", "from": "amdefine@>=0.0.4", - "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-0.1.0.tgz" + "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.0.tgz" } } } } }, - "strip-json-comments": { - "version": "1.0.2", - "from": "strip-json-comments@>=1.0.2 <2.0.0", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-1.0.2.tgz" - }, "to-fast-properties": { "version": "1.0.1", "from": "to-fast-properties@>=1.0.0 <2.0.0", "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.1.tgz" }, "trim-right": { - "version": "1.0.0", + "version": "1.0.1", "from": "trim-right@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/trim-right/-/trim-right-1.0.0.tgz" + "resolved": "https://registry.npmjs.org/trim-right/-/trim-right-1.0.1.tgz" + }, + "try-resolve": { + "version": "1.0.1", + "from": "try-resolve@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/try-resolve/-/try-resolve-1.0.1.tgz" } } }, "babel-loader": { - "version": "5.1.3", - "from": "babel-loader@>=5.1.3 <6.0.0", - "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-5.1.3.tgz", + "version": "5.3.2", + "from": "babel-loader@>=5.3.2 <6.0.0", + "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-5.3.2.tgz", "dependencies": { "object-assign": { - "version": "2.0.0", - "from": "object-assign@>=2.0.0 <3.0.0", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-2.0.0.tgz" + "version": "3.0.0", + "from": "object-assign@>=3.0.0 <4.0.0", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-3.0.0.tgz" } } }, "body-parser": { - "version": "1.12.4", - "from": "body-parser@>=1.12.4 <2.0.0", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.12.4.tgz", + "version": "1.13.3", + "from": "body-parser@>=1.13.3 <2.0.0", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.13.3.tgz", "dependencies": { "bytes": { - "version": "1.0.0", - "from": "bytes@1.0.0", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-1.0.0.tgz" + "version": "2.1.0", + "from": "bytes@2.1.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-2.1.0.tgz" }, "content-type": { "version": "1.0.1", @@ -724,44 +728,61 @@ "from": "depd@>=1.0.1 <1.1.0", "resolved": "https://registry.npmjs.org/depd/-/depd-1.0.1.tgz" }, + "http-errors": { + "version": "1.3.1", + "from": "http-errors@>=1.3.1 <1.4.0", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.3.1.tgz", + "dependencies": { + "inherits": { + "version": "2.0.1", + "from": "inherits@>=2.0.1 <2.1.0", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz" + }, + "statuses": { + "version": "1.2.1", + "from": "statuses@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.2.1.tgz" + } + } + }, "iconv-lite": { - "version": "0.4.8", - "from": "iconv-lite@0.4.8", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.8.tgz" + "version": "0.4.11", + "from": "iconv-lite@0.4.11", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.11.tgz" }, "on-finished": { - "version": "2.2.1", - "from": "on-finished@>=2.2.1 <2.3.0", - "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.2.1.tgz", + "version": "2.3.0", + "from": "on-finished@>=2.3.0 <2.4.0", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", "dependencies": { "ee-first": { - "version": "1.1.0", - "from": "ee-first@1.1.0", - "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.0.tgz" + "version": "1.1.1", + "from": "ee-first@1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz" } } }, "qs": { - "version": "2.4.2", - "from": "qs@2.4.2", - "resolved": "https://registry.npmjs.org/qs/-/qs-2.4.2.tgz" + "version": "4.0.0", + "from": "qs@4.0.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-4.0.0.tgz" }, "raw-body": { - "version": "2.0.1", - "from": "raw-body@>=2.0.1 <2.1.0", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.0.1.tgz", + "version": "2.1.2", + "from": "raw-body@>=2.1.2 <2.2.0", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.1.2.tgz", "dependencies": { - "bytes": { - "version": "2.0.1", - "from": "bytes@2.0.1", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-2.0.1.tgz" + "unpipe": { + "version": "1.0.0", + "from": "unpipe@1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz" } } }, "type-is": { - "version": "1.6.2", - "from": "type-is@>=1.6.2 <1.7.0", - "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.2.tgz", + "version": "1.6.6", + "from": "type-is@>=1.6.6 <1.7.0", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.6.tgz", "dependencies": { "media-typer": { "version": "0.3.0", @@ -769,14 +790,14 @@ "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz" }, "mime-types": { - "version": "2.0.12", - "from": "mime-types@>=2.0.11 <2.1.0", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.0.12.tgz", + "version": "2.1.4", + "from": "mime-types@>=2.1.4 <2.2.0", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.4.tgz", "dependencies": { "mime-db": { - "version": "1.10.0", - "from": "mime-db@>=1.10.0 <1.11.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.10.0.tgz" + "version": "1.16.0", + "from": "mime-db@>=1.16.0 <1.17.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.16.0.tgz" } } } @@ -785,24 +806,24 @@ } }, "es5-shim": { - "version": "4.1.3", - "from": "es5-shim@>=4.1.3 <5.0.0", - "resolved": "https://registry.npmjs.org/es5-shim/-/es5-shim-4.1.3.tgz" + "version": "4.1.10", + "from": "es5-shim@>=4.1.10 <5.0.0", + "resolved": "https://registry.npmjs.org/es5-shim/-/es5-shim-4.1.10.tgz" }, "imports-loader": { - "version": "0.6.3", - "from": "https://registry.npmjs.org/imports-loader/-/imports-loader-0.6.3.tgz", - "resolved": "https://registry.npmjs.org/imports-loader/-/imports-loader-0.6.3.tgz", + "version": "0.6.4", + "from": "imports-loader@>=0.6.4 <0.7.0", + "resolved": "https://registry.npmjs.org/imports-loader/-/imports-loader-0.6.4.tgz", "dependencies": { "source-map": { "version": "0.1.43", - "from": "https://registry.npmjs.org/source-map/-/source-map-0.1.43.tgz", + "from": "source-map@>=0.1.0 <0.2.0", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.1.43.tgz", "dependencies": { "amdefine": { - "version": "0.1.0", - "from": "https://registry.npmjs.org/amdefine/-/amdefine-0.1.0.tgz", - "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-0.1.0.tgz" + "version": "1.0.0", + "from": "amdefine@>=0.0.4", + "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.0.tgz" } } } @@ -814,248 +835,248 @@ "resolved": "https://registry.npmjs.org/jquery/-/jquery-2.1.4.tgz" }, "loader-utils": { - "version": "0.2.7", - "from": "https://registry.npmjs.org/loader-utils/-/loader-utils-0.2.7.tgz", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-0.2.7.tgz", + "version": "0.2.11", + "from": "loader-utils@>=0.2.11 <0.3.0", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-0.2.11.tgz", "dependencies": { - "json5": { - "version": "0.1.0", - "from": "https://registry.npmjs.org/json5/-/json5-0.1.0.tgz", - "resolved": "https://registry.npmjs.org/json5/-/json5-0.1.0.tgz" - }, "big.js": { - "version": "2.5.1", - "from": "https://registry.npmjs.org/big.js/-/big.js-2.5.1.tgz", - "resolved": "https://registry.npmjs.org/big.js/-/big.js-2.5.1.tgz" + "version": "3.1.3", + "from": "big.js@>=3.0.2 <4.0.0", + "resolved": "https://registry.npmjs.org/big.js/-/big.js-3.1.3.tgz" + }, + "json5": { + "version": "0.4.0", + "from": "json5@>=0.4.0 <0.5.0", + "resolved": "https://registry.npmjs.org/json5/-/json5-0.4.0.tgz" } } }, "marked": { - "version": "0.3.3", - "from": "https://registry.npmjs.org/marked/-/marked-0.3.3.tgz", - "resolved": "https://registry.npmjs.org/marked/-/marked-0.3.3.tgz" + "version": "0.3.5", + "from": "marked@>=0.3.5 <0.4.0", + "resolved": "https://registry.npmjs.org/marked/-/marked-0.3.5.tgz" }, "node-libs-browser": { "version": "0.5.0", - "from": "node-libs-browser@>=0.4.0 <=0.5.0", + "from": "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-0.5.0.tgz", "resolved": "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-0.5.0.tgz", "dependencies": { "assert": { "version": "1.3.0", - "from": "assert@>=1.1.1 <2.0.0", + "from": "https://registry.npmjs.org/assert/-/assert-1.3.0.tgz", "resolved": "https://registry.npmjs.org/assert/-/assert-1.3.0.tgz" }, "browserify-zlib": { "version": "0.1.4", - "from": "browserify-zlib@>=0.1.4 <0.2.0", + "from": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.1.4.tgz", "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.1.4.tgz", "dependencies": { "pako": { "version": "0.2.6", - "from": "pako@>=0.2.0 <0.3.0", + "from": "https://registry.npmjs.org/pako/-/pako-0.2.6.tgz", "resolved": "https://registry.npmjs.org/pako/-/pako-0.2.6.tgz" } } }, "buffer": { "version": "3.2.2", - "from": "buffer@>=3.0.3 <4.0.0", + "from": "https://registry.npmjs.org/buffer/-/buffer-3.2.2.tgz", "resolved": "https://registry.npmjs.org/buffer/-/buffer-3.2.2.tgz", "dependencies": { "base64-js": { "version": "0.0.8", - "from": "base64-js@0.0.8", + "from": "https://registry.npmjs.org/base64-js/-/base64-js-0.0.8.tgz", "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-0.0.8.tgz" }, "ieee754": { "version": "1.1.5", - "from": "ieee754@>=1.1.4 <2.0.0", + "from": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.5.tgz", "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.5.tgz" }, "is-array": { "version": "1.0.1", - "from": "is-array@>=1.0.1 <2.0.0", + "from": "https://registry.npmjs.org/is-array/-/is-array-1.0.1.tgz", "resolved": "https://registry.npmjs.org/is-array/-/is-array-1.0.1.tgz" } } }, "console-browserify": { "version": "1.1.0", - "from": "console-browserify@>=1.1.0 <2.0.0", + "from": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.1.0.tgz", "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.1.0.tgz", "dependencies": { "date-now": { "version": "0.1.4", - "from": "date-now@>=0.1.4 <0.2.0", + "from": "https://registry.npmjs.org/date-now/-/date-now-0.1.4.tgz", "resolved": "https://registry.npmjs.org/date-now/-/date-now-0.1.4.tgz" } } }, "constants-browserify": { "version": "0.0.1", - "from": "constants-browserify@0.0.1", + "from": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-0.0.1.tgz", "resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-0.0.1.tgz" }, "crypto-browserify": { "version": "3.2.8", - "from": "crypto-browserify@>=3.2.6 <3.3.0", + "from": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.2.8.tgz", "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.2.8.tgz", "dependencies": { "pbkdf2-compat": { "version": "2.0.1", - "from": "pbkdf2-compat@2.0.1", + "from": "https://registry.npmjs.org/pbkdf2-compat/-/pbkdf2-compat-2.0.1.tgz", "resolved": "https://registry.npmjs.org/pbkdf2-compat/-/pbkdf2-compat-2.0.1.tgz" }, "ripemd160": { "version": "0.2.0", - "from": "ripemd160@0.2.0", + "from": "https://registry.npmjs.org/ripemd160/-/ripemd160-0.2.0.tgz", "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-0.2.0.tgz" }, "sha.js": { "version": "2.2.6", - "from": "sha.js@2.2.6", + "from": "https://registry.npmjs.org/sha.js/-/sha.js-2.2.6.tgz", "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.2.6.tgz" } } }, "domain-browser": { "version": "1.1.4", - "from": "domain-browser@>=1.1.1 <2.0.0", + "from": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.1.4.tgz", "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.1.4.tgz" }, "events": { "version": "1.0.2", - "from": "events@>=1.0.0 <2.0.0", + "from": "https://registry.npmjs.org/events/-/events-1.0.2.tgz", "resolved": "https://registry.npmjs.org/events/-/events-1.0.2.tgz" }, "http-browserify": { "version": "1.7.0", - "from": "http-browserify@>=1.3.2 <2.0.0", + "from": "https://registry.npmjs.org/http-browserify/-/http-browserify-1.7.0.tgz", "resolved": "https://registry.npmjs.org/http-browserify/-/http-browserify-1.7.0.tgz", "dependencies": { "Base64": { "version": "0.2.1", - "from": "Base64@>=0.2.0 <0.3.0", + "from": "https://registry.npmjs.org/Base64/-/Base64-0.2.1.tgz", "resolved": "https://registry.npmjs.org/Base64/-/Base64-0.2.1.tgz" }, "inherits": { "version": "2.0.1", - "from": "inherits@>=2.0.1 <2.1.0", + "from": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz" } } }, "https-browserify": { "version": "0.0.0", - "from": "https-browserify@0.0.0", + "from": "https://registry.npmjs.org/https-browserify/-/https-browserify-0.0.0.tgz", "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-0.0.0.tgz" }, "os-browserify": { "version": "0.1.2", - "from": "os-browserify@>=0.1.2 <0.2.0", + "from": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.1.2.tgz", "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.1.2.tgz" }, "path-browserify": { "version": "0.0.0", - "from": "path-browserify@0.0.0", + "from": "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.0.tgz", "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.0.tgz" }, "process": { "version": "0.11.0", - "from": "process@>=0.11.0 <0.12.0", + "from": "https://registry.npmjs.org/process/-/process-0.11.0.tgz", "resolved": "https://registry.npmjs.org/process/-/process-0.11.0.tgz" }, "punycode": { "version": "1.3.2", - "from": "punycode@>=1.2.4 <2.0.0", + "from": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz", "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz" }, "querystring-es3": { "version": "0.2.1", - "from": "querystring-es3@>=0.2.0 <0.3.0", + "from": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz", "resolved": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz" }, "readable-stream": { "version": "1.1.13", - "from": "readable-stream@>=1.1.13 <2.0.0", + "from": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.13.tgz", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.13.tgz", "dependencies": { "core-util-is": { "version": "1.0.1", - "from": "core-util-is@>=1.0.0 <1.1.0", + "from": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.1.tgz", "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.1.tgz" }, "isarray": { "version": "0.0.1", - "from": "isarray@0.0.1", + "from": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz" }, "inherits": { "version": "2.0.1", - "from": "inherits@>=2.0.1 <2.1.0", + "from": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz" } } }, "stream-browserify": { "version": "1.0.0", - "from": "stream-browserify@>=1.0.0 <2.0.0", + "from": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-1.0.0.tgz", "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-1.0.0.tgz", "dependencies": { "inherits": { "version": "2.0.1", - "from": "inherits@>=2.0.1 <2.1.0", + "from": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz" } } }, "string_decoder": { "version": "0.10.31", - "from": "string_decoder@>=0.10.25 <0.11.0", + "from": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz" }, "timers-browserify": { "version": "1.4.1", - "from": "timers-browserify@>=1.0.1 <2.0.0", + "from": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-1.4.1.tgz", "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-1.4.1.tgz" }, "tty-browserify": { "version": "0.0.0", - "from": "tty-browserify@0.0.0", + "from": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.0.tgz", "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.0.tgz" }, "url": { "version": "0.10.3", - "from": "url@>=0.10.1 <0.11.0", + "from": "https://registry.npmjs.org/url/-/url-0.10.3.tgz", "resolved": "https://registry.npmjs.org/url/-/url-0.10.3.tgz", "dependencies": { "querystring": { "version": "0.2.0", - "from": "querystring@0.2.0", + "from": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz" } } }, "util": { "version": "0.10.3", - "from": "util@>=0.10.3 <0.11.0", + "from": "https://registry.npmjs.org/util/-/util-0.10.3.tgz", "resolved": "https://registry.npmjs.org/util/-/util-0.10.3.tgz", "dependencies": { "inherits": { "version": "2.0.1", - "from": "inherits@2.0.1", + "from": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz" } } }, "vm-browserify": { "version": "0.0.4", - "from": "vm-browserify@0.0.4", + "from": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-0.0.4.tgz", "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-0.0.4.tgz", "dependencies": { "indexof": { "version": "0.0.1", - "from": "indexof@0.0.1", + "from": "https://registry.npmjs.org/indexof/-/indexof-0.0.1.tgz", "resolved": "https://registry.npmjs.org/indexof/-/indexof-0.0.1.tgz" } } @@ -1064,42 +1085,42 @@ }, "react": { "version": "0.13.3", - "from": "react@>=0.13.3 <0.14.0", + "from": "https://registry.npmjs.org/react/-/react-0.13.3.tgz", "resolved": "https://registry.npmjs.org/react/-/react-0.13.3.tgz", "dependencies": { "envify": { "version": "3.4.0", - "from": "envify@>=3.0.0 <4.0.0", + "from": "https://registry.npmjs.org/envify/-/envify-3.4.0.tgz", "resolved": "https://registry.npmjs.org/envify/-/envify-3.4.0.tgz", "dependencies": { "through": { "version": "2.3.7", - "from": "through@>=2.3.4 <2.4.0", + "from": "https://registry.npmjs.org/through/-/through-2.3.7.tgz", "resolved": "https://registry.npmjs.org/through/-/through-2.3.7.tgz" }, "jstransform": { "version": "10.1.0", - "from": "jstransform@>=10.0.1 <11.0.0", + "from": "https://registry.npmjs.org/jstransform/-/jstransform-10.1.0.tgz", "resolved": "https://registry.npmjs.org/jstransform/-/jstransform-10.1.0.tgz", "dependencies": { "base62": { "version": "0.1.1", - "from": "base62@0.1.1", + "from": "https://registry.npmjs.org/base62/-/base62-0.1.1.tgz", "resolved": "https://registry.npmjs.org/base62/-/base62-0.1.1.tgz" }, "esprima-fb": { "version": "13001.1001.0-dev-harmony-fb", - "from": "esprima-fb@13001.1001.0-dev-harmony-fb", + "from": "https://registry.npmjs.org/esprima-fb/-/esprima-fb-13001.1001.0-dev-harmony-fb.tgz", "resolved": "https://registry.npmjs.org/esprima-fb/-/esprima-fb-13001.1001.0-dev-harmony-fb.tgz" }, "source-map": { "version": "0.1.31", - "from": "source-map@0.1.31", + "from": "https://registry.npmjs.org/source-map/-/source-map-0.1.31.tgz", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.1.31.tgz", "dependencies": { "amdefine": { "version": "0.1.0", - "from": "amdefine@>=0.0.4", + "from": "https://registry.npmjs.org/amdefine/-/amdefine-0.1.0.tgz", "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-0.1.0.tgz" } } @@ -1111,65 +1132,82 @@ } }, "react-bootstrap": { - "version": "0.22.6", - "from": "react-bootstrap@>=0.22.6 <0.23.0", - "resolved": "https://registry.npmjs.org/react-bootstrap/-/react-bootstrap-0.22.6.tgz", + "version": "0.24.3", + "from": "react-bootstrap@>=0.24.3 <0.25.0", + "resolved": "https://registry.npmjs.org/react-bootstrap/-/react-bootstrap-0.24.3.tgz", "dependencies": { + "babel-runtime": { + "version": "5.8.20", + "from": "babel-runtime@>=5.8.19 <6.0.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-5.8.20.tgz", + "dependencies": { + "core-js": { + "version": "1.0.1", + "from": "core-js@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-1.0.1.tgz" + } + } + }, + "lodash": { + "version": "3.10.0", + "from": "lodash@>=3.10.0 <4.0.0", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-3.10.0.tgz" + }, "classnames": { - "version": "2.1.1", - "from": "classnames@>=2.0.0 <3.0.0", - "resolved": "https://registry.npmjs.org/classnames/-/classnames-2.1.1.tgz" + "version": "2.1.3", + "from": "classnames@>=2.1.3 <3.0.0", + "resolved": "https://registry.npmjs.org/classnames/-/classnames-2.1.3.tgz" } } }, "sleep": { - "version": "2.0.0", - "from": "https://registry.npmjs.org/sleep/-/sleep-2.0.0.tgz", - "resolved": "https://registry.npmjs.org/sleep/-/sleep-2.0.0.tgz", + "version": "3.0.0", + "from": "sleep@>=3.0.0 <4.0.0", + "resolved": "https://registry.npmjs.org/sleep/-/sleep-3.0.0.tgz", "dependencies": { "nan": { - "version": "1.8.4", - "from": "https://registry.npmjs.org/nan/-/nan-1.8.4.tgz", - "resolved": "https://registry.npmjs.org/nan/-/nan-1.8.4.tgz" + "version": "2.0.0", + "from": "nan@>=2.0.0", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.0.0.tgz" } } }, "webpack": { - "version": "1.9.7", - "from": "webpack@>=1.9.7 <2.0.0", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-1.9.7.tgz", + "version": "1.10.5", + "from": "webpack@>=1.10.5 <2.0.0", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-1.10.5.tgz", "dependencies": { "async": { - "version": "0.9.2", - "from": "async@>=0.9.0 <0.10.0", - "resolved": "https://registry.npmjs.org/async/-/async-0.9.2.tgz" + "version": "1.4.0", + "from": "async@>=1.3.0 <2.0.0", + "resolved": "https://registry.npmjs.org/async/-/async-1.4.0.tgz" }, "clone": { "version": "1.0.2", - "from": "clone@>=1.0.2 <1.1.0", + "from": "clone@>=1.0.2 <2.0.0", "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.2.tgz" }, "enhanced-resolve": { - "version": "0.8.6", - "from": "enhanced-resolve@>=0.8.2 <0.9.0", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-0.8.6.tgz", + "version": "0.9.0", + "from": "enhanced-resolve@>=0.9.0 <0.10.0", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-0.9.0.tgz", "dependencies": { "graceful-fs": { - "version": "3.0.7", - "from": "graceful-fs@>=3.0.5 <4.0.0", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-3.0.7.tgz" + "version": "3.0.8", + "from": "graceful-fs@>=3.0.2 <4.0.0", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-3.0.8.tgz" } } }, "esprima": { "version": "1.2.5", - "from": "esprima@>=1.2.0 <1.3.0", + "from": "esprima@>=1.2.0 <2.0.0", "resolved": "https://registry.npmjs.org/esprima/-/esprima-1.2.5.tgz" }, "interpret": { - "version": "0.5.2", - "from": "interpret@>=0.5.2 <0.6.0", - "resolved": "https://registry.npmjs.org/interpret/-/interpret-0.5.2.tgz" + "version": "0.6.5", + "from": "interpret@>=0.6.4 <0.7.0", + "resolved": "https://registry.npmjs.org/interpret/-/interpret-0.6.5.tgz" }, "memory-fs": { "version": "0.2.0", @@ -1206,9 +1244,16 @@ } }, "supports-color": { - "version": "1.3.1", - "from": "supports-color@>=1.2.0 <2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-1.3.1.tgz" + "version": "3.1.0", + "from": "supports-color@>=3.1.0 <4.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.1.0.tgz", + "dependencies": { + "has-flag": { + "version": "1.0.0", + "from": "has-flag@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz" + } + } }, "tapable": { "version": "0.1.9", @@ -1216,9 +1261,9 @@ "resolved": "https://registry.npmjs.org/tapable/-/tapable-0.1.9.tgz" }, "uglify-js": { - "version": "2.4.23", + "version": "2.4.24", "from": "uglify-js@>=2.4.13 <2.5.0", - "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.4.23.tgz", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.4.24.tgz", "dependencies": { "async": { "version": "0.2.10", @@ -1231,9 +1276,9 @@ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.1.34.tgz", "dependencies": { "amdefine": { - "version": "0.1.0", + "version": "1.0.0", "from": "amdefine@>=0.0.4", - "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-0.1.0.tgz" + "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.0.tgz" } } }, @@ -1248,9 +1293,9 @@ "resolved": "https://registry.npmjs.org/yargs/-/yargs-3.5.4.tgz", "dependencies": { "camelcase": { - "version": "1.1.0", + "version": "1.2.1", "from": "camelcase@>=1.0.2 <2.0.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-1.1.0.tgz" + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-1.2.1.tgz" }, "decamelize": { "version": "1.0.0", @@ -1276,10 +1321,15 @@ "from": "watchpack@>=0.2.1 <0.3.0", "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-0.2.8.tgz", "dependencies": { + "async": { + "version": "0.9.2", + "from": "async@>=0.9.0 <0.10.0", + "resolved": "https://registry.npmjs.org/async/-/async-0.9.2.tgz" + }, "chokidar": { - "version": "1.0.1", + "version": "1.0.5", "from": "chokidar@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-1.0.1.tgz", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-1.0.5.tgz", "dependencies": { "anymatch": { "version": "1.3.0", @@ -1287,9 +1337,9 @@ "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-1.3.0.tgz", "dependencies": { "micromatch": { - "version": "2.1.6", + "version": "2.2.0", "from": "micromatch@>=2.1.5 <3.0.0", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-2.1.6.tgz", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-2.2.0.tgz", "dependencies": { "arr-diff": { "version": "1.0.1", @@ -1303,6 +1353,11 @@ } } }, + "array-unique": { + "version": "0.2.1", + "from": "array-unique@>=0.2.1 <0.3.0", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.2.1.tgz" + }, "braces": { "version": "1.8.0", "from": "braces@>=1.8.0 <2.0.0", @@ -1324,9 +1379,9 @@ "resolved": "https://registry.npmjs.org/is-number/-/is-number-1.1.2.tgz" }, "isobject": { - "version": "1.0.0", + "version": "1.0.2", "from": "isobject@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-1.0.0.tgz" + "resolved": "https://registry.npmjs.org/isobject/-/isobject-1.0.2.tgz" }, "randomatic": { "version": "1.1.0", @@ -1335,7 +1390,7 @@ }, "repeat-string": { "version": "1.5.2", - "from": "repeat-string@>=1.5.0 <2.0.0", + "from": "repeat-string@>=1.5.2 <2.0.0", "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.5.2.tgz" } } @@ -1354,23 +1409,40 @@ } } }, - "debug": { - "version": "2.2.0", - "from": "debug@>=2.1.3 <3.0.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.2.0.tgz", + "expand-brackets": { + "version": "0.1.2", + "from": "expand-brackets@>=0.1.1 <0.2.0", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-0.1.2.tgz" + }, + "extglob": { + "version": "0.3.1", + "from": "extglob@>=0.3.0 <0.4.0", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-0.3.1.tgz", "dependencies": { - "ms": { - "version": "0.7.1", - "from": "ms@0.7.1", - "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.1.tgz" + "ansi-green": { + "version": "0.1.1", + "from": "ansi-green@>=0.1.1 <0.2.0", + "resolved": "https://registry.npmjs.org/ansi-green/-/ansi-green-0.1.1.tgz", + "dependencies": { + "ansi-wrap": { + "version": "0.1.0", + "from": "ansi-wrap@0.1.0", + "resolved": "https://registry.npmjs.org/ansi-wrap/-/ansi-wrap-0.1.0.tgz" + } + } + }, + "is-extglob": { + "version": "1.0.0", + "from": "is-extglob@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz" + }, + "success-symbol": { + "version": "0.1.0", + "from": "success-symbol@>=0.1.0 <0.2.0", + "resolved": "https://registry.npmjs.org/success-symbol/-/success-symbol-0.1.0.tgz" } } }, - "expand-brackets": { - "version": "0.1.1", - "from": "expand-brackets@>=0.1.1 <0.2.0", - "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-0.1.1.tgz" - }, "filename-regex": { "version": "2.0.0", "from": "filename-regex@>=2.0.0 <3.0.0", @@ -1382,13 +1454,13 @@ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-1.1.0.tgz" }, "object.omit": { - "version": "0.2.1", - "from": "object.omit@>=0.2.1 <0.3.0", - "resolved": "https://registry.npmjs.org/object.omit/-/object.omit-0.2.1.tgz", + "version": "1.1.0", + "from": "object.omit@>=1.1.0 <2.0.0", + "resolved": "https://registry.npmjs.org/object.omit/-/object.omit-1.1.0.tgz", "dependencies": { "for-own": { "version": "0.1.3", - "from": "for-own@>=0.1.1 <0.2.0", + "from": "for-own@>=0.1.3 <0.2.0", "resolved": "https://registry.npmjs.org/for-own/-/for-own-0.1.3.tgz", "dependencies": { "for-in": { @@ -1399,15 +1471,15 @@ } }, "isobject": { - "version": "0.2.0", - "from": "isobject@>=0.2.0 <0.3.0", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-0.2.0.tgz" + "version": "1.0.2", + "from": "isobject@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-1.0.2.tgz" } } }, "parse-glob": { "version": "3.0.2", - "from": "parse-glob@>=3.0.0 <4.0.0", + "from": "parse-glob@>=3.0.1 <4.0.0", "resolved": "https://registry.npmjs.org/parse-glob/-/parse-glob-3.0.2.tgz", "dependencies": { "glob-base": { @@ -1416,9 +1488,9 @@ "resolved": "https://registry.npmjs.org/glob-base/-/glob-base-0.2.0.tgz" }, "is-dotfile": { - "version": "1.0.0", + "version": "1.0.1", "from": "is-dotfile@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/is-dotfile/-/is-dotfile-1.0.0.tgz" + "resolved": "https://registry.npmjs.org/is-dotfile/-/is-dotfile-1.0.1.tgz" }, "is-extglob": { "version": "1.0.0", @@ -1429,20 +1501,13 @@ }, "regex-cache": { "version": "0.4.2", - "from": "regex-cache@>=0.4.0 <0.5.0", + "from": "regex-cache@>=0.4.2 <0.5.0", "resolved": "https://registry.npmjs.org/regex-cache/-/regex-cache-0.4.2.tgz", "dependencies": { "is-equal-shallow": { - "version": "0.1.2", + "version": "0.1.3", "from": "is-equal-shallow@>=0.1.1 <0.2.0", - "resolved": "https://registry.npmjs.org/is-equal-shallow/-/is-equal-shallow-0.1.2.tgz", - "dependencies": { - "is-primitive": { - "version": "1.0.0", - "from": "is-primitive@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/is-primitive/-/is-primitive-1.0.0.tgz" - } - } + "resolved": "https://registry.npmjs.org/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz" }, "is-primitive": { "version": "2.0.0", @@ -1471,9 +1536,9 @@ "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-1.2.0.tgz" }, "is-binary-path": { - "version": "1.0.0", + "version": "1.0.1", "from": "is-binary-path@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.0.tgz", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", "dependencies": { "binary-extensions": { "version": "1.3.1", @@ -1487,15 +1552,20 @@ "from": "is-glob@>=1.1.3 <2.0.0", "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-1.1.3.tgz" }, + "path-is-absolute": { + "version": "1.0.0", + "from": "path-is-absolute@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.0.tgz" + }, "readdirp": { - "version": "1.3.0", + "version": "1.4.0", "from": "readdirp@>=1.3.0 <2.0.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-1.3.0.tgz", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-1.4.0.tgz", "dependencies": { "graceful-fs": { - "version": "2.0.3", - "from": "graceful-fs@>=2.0.0 <2.1.0", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-2.0.3.tgz" + "version": "4.1.2", + "from": "graceful-fs@>=4.1.2 <4.2.0", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.2.tgz" }, "minimatch": { "version": "0.2.14", @@ -1503,9 +1573,9 @@ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-0.2.14.tgz", "dependencies": { "lru-cache": { - "version": "2.6.4", + "version": "2.6.5", "from": "lru-cache@>=2.0.0 <3.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-2.6.4.tgz" + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-2.6.5.tgz" }, "sigmund": { "version": "1.0.1", @@ -1544,40 +1614,40 @@ } }, "fsevents": { - "version": "0.3.6", + "version": "0.3.7", "from": "fsevents@>=0.3.1 <0.4.0", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-0.3.6.tgz", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-0.3.7.tgz", "dependencies": { "nan": { - "version": "1.8.4", + "version": "1.9.0", "from": "nan@>=1.8.0 <2.0.0", - "resolved": "https://registry.npmjs.org/nan/-/nan-1.8.4.tgz" + "resolved": "https://registry.npmjs.org/nan/-/nan-1.9.0.tgz" } } } } }, "graceful-fs": { - "version": "3.0.7", + "version": "3.0.8", "from": "graceful-fs@>=3.0.2 <4.0.0", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-3.0.7.tgz" + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-3.0.8.tgz" } } }, "webpack-core": { - "version": "0.6.5", + "version": "0.6.6", "from": "webpack-core@>=0.6.0 <0.7.0", - "resolved": "https://registry.npmjs.org/webpack-core/-/webpack-core-0.6.5.tgz", + "resolved": "https://registry.npmjs.org/webpack-core/-/webpack-core-0.6.6.tgz", "dependencies": { "source-map": { - "version": "0.4.2", + "version": "0.4.4", "from": "source-map@>=0.4.1 <0.5.0", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.4.2.tgz", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz", "dependencies": { "amdefine": { - "version": "0.1.0", + "version": "1.0.0", "from": "amdefine@>=0.0.4", - "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-0.1.0.tgz" + "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.0.tgz" } } }, diff --git a/client/package.json b/client/package.json index 73b98be9..d89c59a9 100644 --- a/client/package.json +++ b/client/package.json @@ -23,40 +23,41 @@ }, "homepage": "https://github.com/justin808/react-webpack-rails-tutorial", "dependencies": { - "alt": "^0.16.5", - "babel-core": "^5.4.5", - "babel-loader": "^5.1.3", - "body-parser": "^1.12.4", - "es5-shim": "^4.1.3", - "imports-loader": "^0.6.3", + "alt": "^0.17.1", + "babel-core": "^5.8.20", + "babel-loader": "^5.3.2", + "body-parser": "^1.13.3", + "es5-shim": "^4.1.10", + "imports-loader": "^0.6.4", "jquery": "^2.1.4", - "loader-utils": "^0.2.7", - "marked": "^0.3.3", + "loader-utils": "^0.2.11", + "marked": "^0.3.5", "react": "^0.13.3", - "react-bootstrap": "^0.22.6", - "sleep": "^2.0.0", - "webpack": "^1.9.7" + "react-bootstrap": "^0.24.3", + "sleep": "^3.0.0", + "webpack": "^1.10.5" }, "devDependencies": { - "babel-eslint": "^3.1.7", - "bootstrap-sass": "^3.3.4", - "bootstrap-sass-loader": "^1.0.4", - "css-loader": "^0.13.1", - "eslint": "^0.21.2", - "eslint-plugin-react": "^2.3.0", - "esprima-fb": "^15001.1.0-dev-harmony-fb", - "expose-loader": "^0.6.0", - "express": "^4.12.4", - "file-loader": "^0.8.1", - "gulp": "^3.8.11", - "gulp-eslint": "^0.12.0", - "jscs": "^1.13.1", - "node-sass": "^3.1.2", - "react-hot-loader": "^1.2.7", - "sass-loader": "^1.0.2", - "style-loader": "^0.12.2", - "url-loader": "^0.5.5", - "webpack-dev-server": "^1.8.2" + "babel-eslint": "^4.0.5", + "bootstrap-sass": "^3.3.5", + "bootstrap-sass-loader": "^1.0.8", + "css-loader": "^0.15.6", + "eslint": "^1.0.0", + "eslint-config-airbnb": "0.0.7", + "eslint-plugin-react": "^3.1.0", + "esprima-fb": "^15001.1001.0-dev-harmony-fb", + "expose-loader": "^0.7.0", + "express": "^4.13.2", + "file-loader": "^0.8.4", + "gulp": "^3.9.0", + "gulp-eslint": "^1.0.0", + "jscs": "^2.0.0", + "node-sass": "^3.2.0", + "react-hot-loader": "^1.2.8", + "sass-loader": "^1.0.3", + "style-loader": "^0.12.3", + "url-loader": "^0.5.6", + "webpack-dev-server": "^1.10.1" }, "scripts": { "test": "echo \"Error: no test specified\" && exit 1", diff --git a/client/webpack.common.config.js b/client/webpack.common.config.js index 2b532144..3316f191 100644 --- a/client/webpack.common.config.js +++ b/client/webpack.common.config.js @@ -14,8 +14,7 @@ module.exports = { // }, resolve: { root: [path.join(__dirname, 'scripts'), - path.join(__dirname, 'assets/javascripts'), - path.join(__dirname, 'assets/stylesheets')], + path.join(__dirname, 'assets/javascripts')], extensions: ['', '.webpack.js', '.web.js', '.js', '.jsx', '.scss', '.css', 'config.js'] }, module: { diff --git a/client/webpack.hot.config.js b/client/webpack.hot.config.js index ef4f80b7..9cbe9b42 100644 --- a/client/webpack.hot.config.js +++ b/client/webpack.hot.config.js @@ -22,6 +22,9 @@ config.output = { config.plugins = [new webpack.HotModuleReplacementPlugin()]; config.devtool = 'eval-source-map'; +// Add the styles +config.resolve.root.push(path.join(__dirname, 'assets/stylesheets')); + // All the styling loaders only apply to hot-reload, not rails config.module.loaders.push( {test: /\.jsx?$/, loaders: ['react-hot', 'babel'], exclude: /node_modules/}, From 78a6df8688257354c9797c718ee30abc95c1cff0 Mon Sep 17 00:00:00 2001 From: Justin Gordon Date: Sat, 1 Aug 2015 14:53:31 -1000 Subject: [PATCH 004/514] Added jscs linting support --- client/.jscsrc | 3 +-- .../assets/javascripts/components/Comment.jsx | 4 ++-- .../javascripts/components/CommentBox.jsx | 8 ++++---- .../javascripts/components/CommentForm.jsx | 12 ++++++------ .../javascripts/components/CommentList.jsx | 6 +++--- .../assets/javascripts/stores/CommentStore.js | 2 +- client/assets/javascripts/stores/FormStore.js | 2 +- .../javascripts/utils/CommentsManager.js | 6 +++--- client/bootstrap-sass.config.js | 6 +++--- client/karma.conf.js | 18 +++++++++--------- client/server.js | 4 ++-- client/webpack.common.config.js | 8 ++++---- client/webpack.hot.config.js | 4 ++-- client/webpack.rails.config.js | 2 +- 14 files changed, 42 insertions(+), 43 deletions(-) diff --git a/client/.jscsrc b/client/.jscsrc index 8caea913..0be7eea1 100644 --- a/client/.jscsrc +++ b/client/.jscsrc @@ -1,6 +1,5 @@ { "preset": "airbnb", "fileExtensions": [".js", ".jsx"], - "excludeFiles": ["build/**", "node_modules/**"], - "esprima": "esprima-fb" + "excludeFiles": ["build/**", "node_modules/**"] } diff --git a/client/assets/javascripts/components/Comment.jsx b/client/assets/javascripts/components/Comment.jsx index c93c9ff0..b1783fc4 100644 --- a/client/assets/javascripts/components/Comment.jsx +++ b/client/assets/javascripts/components/Comment.jsx @@ -6,7 +6,7 @@ const Comment = React.createClass({ propTypes: { author: React.PropTypes.string.isRequired, - text: React.PropTypes.string.isRequired + text: React.PropTypes.string.isRequired, }, render() { @@ -19,7 +19,7 @@ const Comment = React.createClass({ ); - } + }, }); export default Comment; diff --git a/client/assets/javascripts/components/CommentBox.jsx b/client/assets/javascripts/components/CommentBox.jsx index 82af0fd6..0d25f563 100644 --- a/client/assets/javascripts/components/CommentBox.jsx +++ b/client/assets/javascripts/components/CommentBox.jsx @@ -10,13 +10,13 @@ const CommentBox = React.createClass({ propTypes: { url: React.PropTypes.string.isRequired, - pollInterval: React.PropTypes.number.isRequired + pollInterval: React.PropTypes.number.isRequired, }, getStoreState() { return { comments: CommentStore.getState(), - form: FormStore.getState() + form: FormStore.getState(), }; }, @@ -45,7 +45,7 @@ const CommentBox = React.createClass({ render() { return ( -
+

Comments { this.state.form.ajaxSending ? 'SENDING AJAX REQUEST!' : '' }

); - } + }, }); export default CommentBox; diff --git a/client/assets/javascripts/components/CommentForm.jsx b/client/assets/javascripts/components/CommentForm.jsx index 7a8ffc9f..bc7b77f6 100644 --- a/client/assets/javascripts/components/CommentForm.jsx +++ b/client/assets/javascripts/components/CommentForm.jsx @@ -13,12 +13,12 @@ const CommentForm = React.createClass({ propTypes: { url: React.PropTypes.string.isRequired, formData: React.PropTypes.object.isRequired, - ajaxSending: React.PropTypes.bool.isRequired + ajaxSending: React.PropTypes.bool.isRequired, }, getInitialState() { return { - formMode: 0 + formMode: 0, }; }, @@ -34,14 +34,14 @@ const CommentForm = React.createClass({ if (this.state.formMode < 2) { obj = { author: this.refs.author.getValue(), - text: this.refs.text.getValue() + text: this.refs.text.getValue(), }; } else { obj = { // This is different because the input is a native HTML element // rather than a React element. author: this.refs.inlineAuthor.getDOMNode().value, - text: this.refs.inlineText.getDOMNode().value + text: this.refs.inlineText.getDOMNode().value, }; } @@ -145,7 +145,7 @@ const CommentForm = React.createClass({ } return (
-
); - } + }, }); export default CommentForm; diff --git a/client/assets/javascripts/components/CommentList.jsx b/client/assets/javascripts/components/CommentList.jsx index c1a496b7..05c4151c 100644 --- a/client/assets/javascripts/components/CommentList.jsx +++ b/client/assets/javascripts/components/CommentList.jsx @@ -5,7 +5,7 @@ const CommentList = React.createClass({ displayName: 'CommentList', propTypes: { - comments: React.PropTypes.array + comments: React.PropTypes.array, }, render() { @@ -20,11 +20,11 @@ const CommentList = React.createClass({ }); return ( -
+
{commentNodes}
); - } + }, }); export default CommentList; diff --git a/client/assets/javascripts/stores/CommentStore.js b/client/assets/javascripts/stores/CommentStore.js index 392f2e8f..8f4d186a 100644 --- a/client/assets/javascripts/stores/CommentStore.js +++ b/client/assets/javascripts/stores/CommentStore.js @@ -10,7 +10,7 @@ class CommentStore { handleFetchComments: CommentActions.FETCH_COMMENTS, handleUpdateComments: CommentActions.UPDATE_COMMENTS, handleUpdateCommentsError: CommentActions.UPDATE_COMMENTS_ERROR, - handleAddComment: CommentActions.ADD_COMMENT + handleAddComment: CommentActions.ADD_COMMENT, }); } diff --git a/client/assets/javascripts/stores/FormStore.js b/client/assets/javascripts/stores/FormStore.js index c5df8aa6..78d80217 100644 --- a/client/assets/javascripts/stores/FormStore.js +++ b/client/assets/javascripts/stores/FormStore.js @@ -15,7 +15,7 @@ class FormStore { handleFetchComments: CommentActions.FETCH_COMMENTS, handleUpdateComments: CommentActions.UPDATE_COMMENTS, handleUpdateCommentsError: CommentActions.UPDATE_COMMENTS_ERROR, - handleAddComment: CommentActions.ADD_COMMENT + handleAddComment: CommentActions.ADD_COMMENT, }); } diff --git a/client/assets/javascripts/utils/CommentsManager.js b/client/assets/javascripts/utils/CommentsManager.js index 3f30ba3d..61f74109 100644 --- a/client/assets/javascripts/utils/CommentsManager.js +++ b/client/assets/javascripts/utils/CommentsManager.js @@ -10,7 +10,7 @@ const CommentsManager = { fetchComments(url) { return $.ajax({ url: url, - dataType: 'json' + dataType: 'json', }); }, @@ -26,9 +26,9 @@ const CommentsManager = { url: url, dataType: 'json', type: 'POST', - data: {comment: comment} + data: {comment: comment}, }); - } + }, }; export default CommentsManager; diff --git a/client/bootstrap-sass.config.js b/client/bootstrap-sass.config.js index 08dab813..f7718848 100644 --- a/client/bootstrap-sass.config.js +++ b/client/bootstrap-sass.config.js @@ -31,7 +31,7 @@ module.exports = { popover: true, scrollspy: true, tab: true, - affix: true + affix: true, }, // ### Styles @@ -83,6 +83,6 @@ module.exports = { carousel: true, utilities: true, - 'responsive-utilities': true - } + 'responsive-utilities': true, + }, }; diff --git a/client/karma.conf.js b/client/karma.conf.js index d6d592b6..138c1d55 100644 --- a/client/karma.conf.js +++ b/client/karma.conf.js @@ -12,11 +12,11 @@ module.exports = function karmaMain(config) { frameworks: ['mocha'], files: [ - 'tests.webpack.js' + 'tests.webpack.js', ], preprocessors: { - 'tests.webpack.js': ['webpack', 'sourcemap'] + 'tests.webpack.js': ['webpack', 'sourcemap'], }, reporters: ['dots'], @@ -25,19 +25,19 @@ module.exports = function karmaMain(config) { devtool: 'inline-source-map', module: { loaders: [ - {test: /\.js$/, loader: 'babel-loader'} - ] + {test: /\.js$/, loader: 'babel-loader'}, + ], }, plugins: [ new webpack.DefinePlugin({ - 'process.env.NODE_ENV': JSON.stringify('test') - }) - ] + 'process.env.NODE_ENV': JSON.stringify('test'), + }), + ], }, webpackServer: { - noInfo: true - } + noInfo: true, + }, }); }; diff --git a/client/server.js b/client/server.js index d0b95802..1e1c3d52 100644 --- a/client/server.js +++ b/client/server.js @@ -6,13 +6,13 @@ var config = require('./webpack.hot.config'); var sleep = require('sleep'); var comments = [{author: 'Pete Hunt', text: 'Hey there!'}, - {author: 'Justin Gordon', text: 'Aloha from @railsonmaui'}]; + {author: 'Justin Gordon', text: 'Aloha from @railsonmaui'},]; var server = new WebpackDevServer(webpack(config), { publicPath: config.output.publicPath, hot: true, noInfo: false, - stats: {colors: true} + stats: {colors: true}, }); server.app.use(bodyParser.json(null)); diff --git a/client/webpack.common.config.js b/client/webpack.common.config.js index 3316f191..9ed8b42b 100644 --- a/client/webpack.common.config.js +++ b/client/webpack.common.config.js @@ -14,10 +14,10 @@ module.exports = { // }, resolve: { root: [path.join(__dirname, 'scripts'), - path.join(__dirname, 'assets/javascripts')], - extensions: ['', '.webpack.js', '.web.js', '.js', '.jsx', '.scss', '.css', 'config.js'] + path.join(__dirname, 'assets/javascripts'),], + extensions: ['', '.webpack.js', '.web.js', '.js', '.jsx', '.scss', '.css', 'config.js'], }, module: { - loaders: [] - } + loaders: [], + }, }; diff --git a/client/webpack.hot.config.js b/client/webpack.hot.config.js index 9cbe9b42..dff158ec 100644 --- a/client/webpack.hot.config.js +++ b/client/webpack.hot.config.js @@ -17,7 +17,7 @@ config.output = { // this file is served directly by webpack filename: 'express-bundle.js', - path: __dirname + path: __dirname, }; config.plugins = [new webpack.HotModuleReplacementPlugin()]; config.devtool = 'eval-source-map'; @@ -32,7 +32,7 @@ config.module.loaders.push( { test: /\.scss$/, loader: 'style!css!sass?outputStyle=expanded&imagePath=/assets/images&includePaths[]=' + - path.resolve(__dirname, './assets/stylesheets') + path.resolve(__dirname, './assets/stylesheets'), }, // The url-loader uses DataUrls. The file-loader emits files. diff --git a/client/webpack.rails.config.js b/client/webpack.rails.config.js index de4c32e1..5ee60ac2 100644 --- a/client/webpack.rails.config.js +++ b/client/webpack.rails.config.js @@ -8,7 +8,7 @@ const config = require('./webpack.common.config'); config.output = { filename: 'client-bundle.js', - path: '../app/assets/javascripts/generated' + path: '../app/assets/javascripts/generated', }; // load jQuery from cdn or rails asset pipeline From cba0f74e75eea8c745ea4b319392329c1338ba34 Mon Sep 17 00:00:00 2001 From: Justin Gordon Date: Sat, 1 Aug 2015 14:59:34 -1000 Subject: [PATCH 005/514] Updated README.md --- README.md | 22 +++++++++++++++------- 1 file changed, 15 insertions(+), 7 deletions(-) diff --git a/README.md b/README.md index ab19b463..512b39c1 100644 --- a/README.md +++ b/README.md @@ -26,7 +26,7 @@ choose the form layout. `react-bootstrap` is used for the React components. A pure Rails UI generated from scaffolding is shown for comparison. -You can see this tutorial live here: [http://react-webpack-rails-tutorial.herokuapp.com/](http://react-webpack-rails-tutorial.herokuapp.com/) +You can see this tutorial live here: [http://reactrails.com/](http://reactrails.com/) # Motivation @@ -38,6 +38,7 @@ In no particular order: - Easily enable retrofitting such a JS framework into an existing Rails app. - Enable the use of the JavaScript ES6 transpiler. - Example setting up Ruby and ES6 linting in a real project. +- Example of thorough use of Ruby and JavaScript linters, and other CI tasks. # Technologies involved @@ -52,10 +53,12 @@ See package.json and Gemfile for versions 7. Heroku (for deployment) # Basic Setup -1. Be sure that you have Node installed. I use [nvm](https://github.com/creationix/nvm), with node version `v0.10.33`. +1. Be sure that you have Node installed. I use [nvm](https://github.com/creationix/nvm), with node + version `v0.12.7`. See this article [Updating and using nvm](http://forum.railsonmaui.com/t/updating-and-using-nvm/293). 1. `git clone git@github.com:justin808/react-webpack-rails-tutorial.git` 1. `cd react-webpack-rails-tutorial` -1. Check that you have Ruby 2.2.1 +1. Check that you have Ruby 2.2.2 +1. Check that you're using the right version of node. Run `nvm list` to check. 1. `bundle install` 1. `npm install` 1. `rake db:setup` @@ -251,13 +254,18 @@ Then run `rspec` and you should see the tests have passed. * Default rake task runs tests and linting (yes, repeating this!) (see `ci.rake`) * See file [README.md](client/README.md) for how to run ESLint and JSCS * See scripts `scripts/lint` and `client/bin/lint`. -* Create a custom scope like this for RubyMine, named "Inspection Scope" +* We're using the [AirBnb JavaScript style guidelines](https://github.com/airbnb/javascript). + +### RubyMine/Webstorm Linting Configuration + * I started out trying to make RubyMine and WebStorm catch and fix linting errors. However, I find + it faster to just do this with the command line. Your mileage may vary. + * Create a custom scope like this for RubyMine, named "Inspection Scope" file[react-rails-tutorial]:*/&&!file[react-rails-tutorial]:tmp//*&&!file[react-rails-tutorial]:log//*&&!file[react-rails-tutorial]:client/node_modules//*&&!file[react-rails-tutorial]:client/assets/fonts//*&&!file[react-rails-tutorial]:app/assets/fonts//*&&!file[react-rails-tutorial]:bin//*&&!file[react-rails-tutorial]:app/assets/javascripts//* -* Install the code style and inspection files in [client/jetbrains](client/jetbrains) -* Use the installed inspection settings and new Inspection Scope for code inspection. -* RubyMine configuration is optional. All linters run from the command line. + * Install the code style and inspection files in [client/jetbrains](client/jetbrains) + * Use the installed inspection settings and new Inspection Scope for code inspection. + * RubyMine configuration is optional. All linters run from the command line. ## Linters 1. [Rubocop](https://github.com/bbatsov/rubocop) From 5bdca4e51b6d2ac4c5643e62bd9a78655ddf51aa Mon Sep 17 00:00:00 2001 From: Justin Gordon Date: Sat, 1 Aug 2015 15:43:11 -1000 Subject: [PATCH 006/514] Updated version of node in enginees section --- .nvmrc | 2 +- client/package.json | 2 +- package.json | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.nvmrc b/.nvmrc index 9212624f..e2e3067d 100644 --- a/.nvmrc +++ b/.nvmrc @@ -1 +1 @@ -v0.12.7 +0.12.7 diff --git a/client/package.json b/client/package.json index d89c59a9..f90b9d5c 100644 --- a/client/package.json +++ b/client/package.json @@ -4,7 +4,7 @@ "description": "Code from the React Webpack tutorial.", "main": "server.js", "engines": { - "node": "0.12.2" + "node": "0.12.7" }, "repository": { "type": "git", diff --git a/package.json b/package.json index b23d269b..91d56bae 100644 --- a/package.json +++ b/package.json @@ -4,7 +4,7 @@ "description": "Code from the React Webpack tutorial.", "main": "server.js", "engines": { - "node": "0.12.2" + "node": "0.12.7" }, "scripts": { "postinstall": "cd ./client && npm install", From ea00715eeacf4220be09aa8dacf5c473c8bd0c2f Mon Sep 17 00:00:00 2001 From: dylangrafmyre Date: Sat, 1 Aug 2015 17:38:15 -1000 Subject: [PATCH 007/514] Move from capybara-webkit to Poltergeist for Capybara js driver Add Gem Poltergeist and es5-shim-rails Add require es5-shim to application.js Change capybara driver to poltergeist within rails_helper. --- Gemfile | 3 ++- Gemfile.lock | 20 +++++++++++++++----- app/assets/javascripts/application.js | 1 + db/schema.rb | 2 +- spec/rails_helper.rb | 4 +++- 5 files changed, 22 insertions(+), 8 deletions(-) diff --git a/Gemfile b/Gemfile index 42d3f3ba..8985da68 100644 --- a/Gemfile +++ b/Gemfile @@ -26,6 +26,7 @@ gem "turbolinks" gem "jbuilder" # bundle exec rake doc:rails generates the API under doc/api. gem "sdoc", group: :doc +gem "es5-shim-rails" # Use ActiveModel has_secure_password # gem "bcrypt", "~> 3.1.7" @@ -78,7 +79,7 @@ group :test do gem "rspec-rails" gem "capybara" gem "capybara-screenshot" - gem "capybara-webkit" + gem "poltergeist" gem "database_cleaner" gem "launchy" end diff --git a/Gemfile.lock b/Gemfile.lock index ef948a2b..22d40b8a 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -74,9 +74,7 @@ GEM capybara-screenshot (1.0.11) capybara (>= 1.0, < 3) launchy - capybara-webkit (1.6.0) - capybara (>= 2.3.0, < 2.5.0) - json + cliver (0.3.2) coffee-rails (4.1.0) coffee-script (>= 2.2.0) railties (>= 4.0.0, < 5.0) @@ -89,6 +87,9 @@ GEM debug_inspector (0.0.2) diff-lcs (1.2.5) erubis (2.7.0) + es5-shim-rails (4.0.1) + actionpack (>= 3.1) + railties (>= 3.1) execjs (2.5.2) factory_girl (4.5.0) activesupport (>= 3.0.0) @@ -128,6 +129,11 @@ GEM parser (2.2.2.6) ast (>= 1.1, < 3.0) pg (0.18.2) + poltergeist (1.6.0) + capybara (~> 2.1) + cliver (~> 0.3.1) + multi_json (~> 1.0) + websocket-driver (>= 0.2.0) powerpack (0.1.1) rack (1.6.4) rack-test (0.6.3) @@ -242,6 +248,9 @@ GEM binding_of_caller (>= 0.7.2) railties (>= 4.0) sprockets-rails (>= 2.0, < 4.0) + websocket-driver (0.6.2) + websocket-extensions (>= 0.1.0) + websocket-extensions (0.1.2) xpath (2.0.0) nokogiri (~> 1.3) @@ -256,15 +265,16 @@ DEPENDENCIES byebug capybara capybara-screenshot - capybara-webkit coffee-rails database_cleaner + es5-shim-rails factory_girl_rails foreman jbuilder jquery-rails launchy pg + poltergeist rails (~> 4.2) rails-html-sanitizer rails_12factor @@ -284,4 +294,4 @@ DEPENDENCIES web-console BUNDLED WITH - 1.10.5 + 1.10.6 diff --git a/app/assets/javascripts/application.js b/app/assets/javascripts/application.js index c5f3f132..64b09469 100644 --- a/app/assets/javascripts/application.js +++ b/app/assets/javascripts/application.js @@ -17,5 +17,6 @@ // Important to import jquery_ujs before rails-bundle as that patches jquery xhr to use the authenticity token! +//= require es5-shim/es5-shim //= require generated/client-bundle //= require turbolinks diff --git a/db/schema.rb b/db/schema.rb index 7e4e95da..d7f2834b 100644 --- a/db/schema.rb +++ b/db/schema.rb @@ -13,7 +13,7 @@ ActiveRecord::Schema.define(version: 20140823052830) do - create_table "comments", force: true do |t| + create_table "comments", force: :cascade do |t| t.string "author" t.text "text" t.datetime "created_at", null: false diff --git a/spec/rails_helper.rb b/spec/rails_helper.rb index 003b310d..76361e85 100644 --- a/spec/rails_helper.rb +++ b/spec/rails_helper.rb @@ -4,6 +4,7 @@ require File.expand_path("../../config/environment", __FILE__) require "rspec/rails" require "capybara/rspec" +require "capybara/poltergeist" require "capybara-screenshot/rspec" # Add additional requires below this line. Rails is not loaded until this point! @@ -47,7 +48,8 @@ DatabaseCleaner.clean end - Capybara.javascript_driver = :webkit + + Capybara.javascript_driver = :poltergeist # Remove this line if you're not using ActiveRecord or ActiveRecord fixtures config.fixture_path = "#{::Rails.root}/spec/fixtures" From 63c6906c3f80247f69d820424307ef9638dbbf03 Mon Sep 17 00:00:00 2001 From: Justin Gordon Date: Sat, 8 Aug 2015 22:49:47 -1000 Subject: [PATCH 008/514] Several slight enhancements, most importantly sanitization 1. Markdown is github flavored and sanitized 2. Some help text explaining that text is treated as markdown 3. Rake task to delete tasks older than 24 hours --- client/assets/javascripts/components/Comment.jsx | 2 +- client/assets/javascripts/components/CommentBox.jsx | 1 + lib/tasks/daily.rake | 8 ++++++++ spec/features/comments_spec.rb | 8 ++++++++ 4 files changed, 18 insertions(+), 1 deletion(-) create mode 100644 lib/tasks/daily.rake diff --git a/client/assets/javascripts/components/Comment.jsx b/client/assets/javascripts/components/Comment.jsx index b1783fc4..d6d5a4e9 100644 --- a/client/assets/javascripts/components/Comment.jsx +++ b/client/assets/javascripts/components/Comment.jsx @@ -10,7 +10,7 @@ const Comment = React.createClass({ }, render() { - const rawMarkup = marked(this.props.text); + const rawMarkup = marked(this.props.text, { gfm: true, sanitize: true }); return (

diff --git a/client/assets/javascripts/components/CommentBox.jsx b/client/assets/javascripts/components/CommentBox.jsx index 0d25f563..c14fe9eb 100644 --- a/client/assets/javascripts/components/CommentBox.jsx +++ b/client/assets/javascripts/components/CommentBox.jsx @@ -47,6 +47,7 @@ const CommentBox = React.createClass({ return (

Comments { this.state.form.ajaxSending ? 'SENDING AJAX REQUEST!' : '' }

+

Text take Github Flavored Markdown. Comments older than 24 hours are deleted.

diff --git a/lib/tasks/daily.rake b/lib/tasks/daily.rake new file mode 100644 index 00000000..3a0ba11a --- /dev/null +++ b/lib/tasks/daily.rake @@ -0,0 +1,8 @@ +task daily: :environment do + t = 1.day.ago + older_comments = Comment.where("created_at < ?", t) + newer_comments = Comment.where("created_at >= ?", t) + Rails.logger.info "Deleting #{older_comments.count} comments older than #{t}" + Rails.logger.info "Keeping #{newer_comments.count} comments newer than #{t}" + older_comments.delete_all +end diff --git a/spec/features/comments_spec.rb b/spec/features/comments_spec.rb index e9e53ce5..22f0c679 100644 --- a/spec/features/comments_spec.rb +++ b/spec/features/comments_spec.rb @@ -11,6 +11,14 @@ expect(page).to have_css(".commentList .comment", text: "Tommy") expect(page).to have_css(".commentList .comment", text: "Surf's up dude!") + click_link "Horizontal Form" + fill_in "Your Name", with: "Jason" + fill_in "Say something...", with: "" + click_button "Post" + expect(page).to have_css(".commentList .comment", text: "Jason") + expect(page).not_to have_css("iframe") + expect(page).to have_css(".commentList .comment", text: "" - click_button "Post" - expect(page).to have_css(".commentList .comment", text: "Jason") - expect(page).not_to have_css("iframe") - expect(page).to have_css(".commentList .comment", text: "" } - click_link "Inline Form" - fill_in "Your Name", with: "Wilbur Kookmeyer" - fill_in hint_text, with: "dude!" - click_button "Post" - expect(page).to have_css(".commentList .comment", text: "Wilbur Kookmeyer") - expect(page).to have_css(".commentList .comment", text: "dude!") + include_context "Form Submitted", text: :iframe_text + + scenario "doesn't add an iframe", js: true do + expect(page).not_to have_css("iframe") + end + end + end + + context "Inline Form" do + background do + click_link "Inline Form" + end + + it_behaves_like "Form" + end + + context "Stacked Form" do + background do + click_link "Stacked Form" + end + + it_behaves_like "Form" end end From 22d2809ddbe1c32fda8e9b6d0c67bb36fe828597 Mon Sep 17 00:00:00 2001 From: Justin Gordon Date: Mon, 24 Aug 2015 19:32:18 -1000 Subject: [PATCH 023/514] Added explanatory text on behavior, improved linter * Still some js linting failures * Run rake lint to see them --- client/.eslintrc | 1 - .../javascripts/components/CommentBox.jsx | 4 +- lib/tasks/linters.rake | 92 ++++++++++++------- 3 files changed, 63 insertions(+), 34 deletions(-) diff --git a/client/.eslintrc b/client/.eslintrc index 7c3ca0c7..552147c3 100644 --- a/client/.eslintrc +++ b/client/.eslintrc @@ -1,4 +1,3 @@ { "extends": "airbnb", - } diff --git a/client/assets/javascripts/components/CommentBox.jsx b/client/assets/javascripts/components/CommentBox.jsx index bf7ef8bf..73dcc56d 100644 --- a/client/assets/javascripts/components/CommentBox.jsx +++ b/client/assets/javascripts/components/CommentBox.jsx @@ -34,7 +34,9 @@ const CommentBox = React.createClass({

Comments { this.isSendingAjax() ? `SENDING AJAX REQUEST! Ajax Counter is ${this.ajaxCounter()}` : '' }

-

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.

[] do |_t, args| + def to_bool(str) + return true if str =~ (/^(true|t|yes|y|1)$/i) + return false if str.blank? || str =~ (/^(false|f|no|n|0)$/i) + fail ArgumentError, "invalid value for Boolean: \"#{str}\"" + end - # If we had slim - # require "slim_lint/rake_task" - # SlimLint::RakeTask.new + fix = (args.fix == "fix") || to_bool(args.fix) + cmd = "rubocop -S -D#{fix ? ' -a' : ''} ." + puts "Running Rubocop Linters via `#{cmd}`#{fix ? ' auto-correct is turned on!' : ''}" + sh cmd + end - SCSSLint::RakeTask.new do |t| - t.files = ["app/assets/stylesheets/", "client/assets/stylesheets/"] - end + desc "Run ruby-lint as shell" + task :ruby do + cmd = "ruby-lint app config spec lib" + puts "Running ruby-lint Linters via `#{cmd}`" + sh cmd + end - desc "eslint" - task :eslint_lint do - puts "Running eslint" - sh "cd client && npm run eslint . -- --ext .jsx,.js" - end + # SlimLint::RakeTask.new do |t| + # t.files = ["app/views"] + # end - desc "jscs" - task :jscs_lint do - puts "Running jscs" - sh "cd client && npm run jscs ." - end + SCSSLint::RakeTask.new do |t| + t.files = ["app/assets/stylesheets/", "client/assets/stylesheets/"] + end - desc "JS Linting" - task js_lint: [:eslint_lint, :jscs_lint] do - puts "Running JavaScript Linters" - end + desc "eslint" + task :eslint do + cmd = "cd client && npm run eslint . -- --ext .jsx,.js" + puts "Running eslint via `#{cmd}`" + sh cmd + end - # could add :slim_lint here - task lint: [:rubocop_lint, :js_lint, :scss_lint] do - puts "Completed All Linting" + desc "jscs" + task :jscs do + cmd = "cd client && npm run jscs ." + puts "Running jscs via `#{cmd}`" + sh cmd + end + + desc "JS Linting" + task js: [:eslint, :jscs] do + puts "Completed running all JavaScript Linters" + end + + # desc "See docs for task 'slim_lint'" + # task slim: :slim_lint + + desc "See docs for task 'scss_lint'" + task scss: :scss_lint + + task lint: [:rubocop, :ruby, :js, :scss] do + puts "Completed all linting" + end end + + desc "Runs all linters. Run `rake -D lint` to see all available lint options" + task lint: ["lint:lint"] end From f31305c0d9a466967171c44c1c0dd144bb323323 Mon Sep 17 00:00:00 2001 From: Mario Perez Date: Tue, 25 Aug 2015 18:29:26 +0200 Subject: [PATCH 024/514] Fix lint errors - Updated eslint file --- client/.eslintrc | 19 +++++++++++--- .../actions/CommentActionCreators.js | 2 +- .../assets/javascripts/components/Comment.jsx | 4 +-- .../javascripts/components/CommentBox.jsx | 2 +- .../javascripts/components/CommentForm.jsx | 25 +++++++++++-------- .../javascripts/components/CommentList.jsx | 4 +-- .../javascripts/components/CommentScreen.jsx | 3 ++- .../middleware/loggerMiddleware.js | 1 + .../javascripts/reducers/commentReducer.js | 3 +++ .../_app-styling-post-bootstrap-loading.scss | 18 ++++++------- 10 files changed, 51 insertions(+), 30 deletions(-) diff --git a/client/.eslintrc b/client/.eslintrc index 552147c3..659178c0 100644 --- a/client/.eslintrc +++ b/client/.eslintrc @@ -1,3 +1,16 @@ -{ - "extends": "airbnb", -} +--- +parser: babel-eslint + +extends: eslint-config-airbnb + +plugins: + - react + +env: + browser: true + node: true + +rules: + indent: [1, 2, { SwitchCase: 1, VariableDeclarator: 2 }] + react/sort-comp: 0 + react/jsx-quotes: 0 diff --git a/client/assets/javascripts/actions/CommentActionCreators.js b/client/assets/javascripts/actions/CommentActionCreators.js index 4edc5420..4b4c38e1 100644 --- a/client/assets/javascripts/actions/CommentActionCreators.js +++ b/client/assets/javascripts/actions/CommentActionCreators.js @@ -59,7 +59,7 @@ export function submitComment(comment) { dispatch(incrementAjaxCounter()); return CommentsManager.submitComment(comment) .then( - comment => dispatch(submitCommentSuccess(comment)), + _comment => dispatch(submitCommentSuccess(_comment)), error => dispatch(submitCommentFailure(error))) .then(() => dispatchDecrementAjaxCounter(dispatch)); }; diff --git a/client/assets/javascripts/components/Comment.jsx b/client/assets/javascripts/components/Comment.jsx index 3d909c30..d6d5a4e9 100644 --- a/client/assets/javascripts/components/Comment.jsx +++ b/client/assets/javascripts/components/Comment.jsx @@ -12,8 +12,8 @@ const Comment = React.createClass({ render() { const rawMarkup = marked(this.props.text, { gfm: true, sanitize: true }); return ( -
-

+
+

{this.props.author}

diff --git a/client/assets/javascripts/components/CommentBox.jsx b/client/assets/javascripts/components/CommentBox.jsx index 73dcc56d..33870dc8 100644 --- a/client/assets/javascripts/components/CommentBox.jsx +++ b/client/assets/javascripts/components/CommentBox.jsx @@ -12,7 +12,7 @@ const CommentBox = React.createClass({ }, componentDidMount() { - let fetchComments = this.props.actions.fetchComments; + const { fetchComments } = this.props.actions; fetchComments(); setInterval(fetchComments, this.props.pollInterval); diff --git a/client/assets/javascripts/components/CommentForm.jsx b/client/assets/javascripts/components/CommentForm.jsx index 4a31eaaa..1533415b 100644 --- a/client/assets/javascripts/components/CommentForm.jsx +++ b/client/assets/javascripts/components/CommentForm.jsx @@ -60,16 +60,19 @@ const CommentForm = React.createClass({ }, resetAndFocus() { - //don't reset a form that didn't submit, this results in data loss + // Don't reset a form that didn't submit, this results in data loss if (this.props.error) return; - const comment = {author:this.state.comment.author,text:''} + + const comment = {author: this.state.comment.author, text: ''}; this.setState({comment}); + let ref; - if (this.state.formMode < 2){ - ref = this.refs.text.getInputDOMNode() + if (this.state.formMode < 2) { + ref = this.refs.text.getInputDOMNode(); } else { - ref = React.findDOMNode(this.refs.inlineText) + ref = React.findDOMNode(this.refs.inlineText); } + ref.focus(); }, @@ -149,16 +152,16 @@ const CommentForm = React.createClass({ }, errorWarning() { - //If there is no error, there is nothing to add to the DOM + // If there is no error, there is nothing to add to the DOM if (!this.props.error) return undefined; return ( - Your comment was not saved! A server error prevented your comment from being saved. Please try again. + Your comment was not saved! A server error prevented your comment from being saved. Please try + again. - ) + ); }, - render() { let inputForm; switch (this.state.formMode) { @@ -172,12 +175,12 @@ const CommentForm = React.createClass({ inputForm = this.formInline(); break; default: - throw `Unknown form mode: ${this.state.formMode}.`; + throw new Error(`Unknown form mode: ${this.state.formMode}.`); } return (
- + {this.errorWarning()} diff --git a/client/assets/javascripts/components/CommentList.jsx b/client/assets/javascripts/components/CommentList.jsx index cd85e2df..48a5a92a 100644 --- a/client/assets/javascripts/components/CommentList.jsx +++ b/client/assets/javascripts/components/CommentList.jsx @@ -12,13 +12,13 @@ const CommentList = React.createClass({ }, errorWarning() { - //If there is no error, there is nothing to add to the DOM + // If there is no error, there is nothing to add to the DOM if (!this.props.error) return undefined; return ( Comments could not be retrieved. A server error prevented loading comments. Please try again. - ) + ); }, render() { diff --git a/client/assets/javascripts/components/CommentScreen.jsx b/client/assets/javascripts/components/CommentScreen.jsx index 2a2995b3..843c37a5 100644 --- a/client/assets/javascripts/components/CommentScreen.jsx +++ b/client/assets/javascripts/components/CommentScreen.jsx @@ -16,6 +16,7 @@ const CommentScreen = React.createClass({ propTypes: { dispatch: React.PropTypes.func.isRequired, + data: React.PropTypes.object.isRequired, }, render() { @@ -42,7 +43,7 @@ const CommentScreen = React.createClass({
); - } + }, }); // Don't forget to actually use connect! diff --git a/client/assets/javascripts/middleware/loggerMiddleware.js b/client/assets/javascripts/middleware/loggerMiddleware.js index 3841a2ba..09a127b7 100644 --- a/client/assets/javascripts/middleware/loggerMiddleware.js +++ b/client/assets/javascripts/middleware/loggerMiddleware.js @@ -15,6 +15,7 @@ export default function logger({ getState }) { readableState[storeItem] = immutableState[storeItem].toJS(); } } + console.log('state after dispatch', readableState); // This will likely be the action itself, unless diff --git a/client/assets/javascripts/reducers/commentReducer.js b/client/assets/javascripts/reducers/commentReducer.js index 558974d8..0d75247f 100644 --- a/client/assets/javascripts/reducers/commentReducer.js +++ b/client/assets/javascripts/reducers/commentReducer.js @@ -1,3 +1,5 @@ +/* eslint new-cap: 0 */ + import * as actionTypes from '../constants/ActionTypes'; import { Map, List } from 'immutable'; @@ -21,6 +23,7 @@ export default function commentsReducer(state = initialState, action) { .updateIn(['comments'], comments => comments.push(Map(action.comment))) .merge({submitCommentError: ''}); }); + case actionTypes.SUBMIT_COMMENT_FAILURE: return state.merge({submitCommentError: action.error}); case actionTypes.INCREMENT_AJAX_COUNTER: diff --git a/client/assets/stylesheets/_app-styling-post-bootstrap-loading.scss b/client/assets/stylesheets/_app-styling-post-bootstrap-loading.scss index e02181b7..c0711358 100644 --- a/client/assets/stylesheets/_app-styling-post-bootstrap-loading.scss +++ b/client/assets/stylesheets/_app-styling-post-bootstrap-loading.scss @@ -41,18 +41,18 @@ body { .element-enter { opacity: 0.01; -} -.element-enter.element-enter-active { - opacity: 1; - transition: opacity .5s ease-in; + &.element-enter-active { + opacity: 1; + transition: opacity 0.5s ease-in; + } } .element-leave { opacity: 1; -} -.element-leave.element-leave-active { - opacity: 0.01; - transition: opacity .5s ease-in; -} \ No newline at end of file + &.element-leave-active { + opacity: 0.01; + transition: opacity 0.5s ease-in; + } +} From 3628c2074b1e266c937ae74d651bcca0a5928d8d Mon Sep 17 00:00:00 2001 From: Justin Gordon Date: Thu, 27 Aug 2015 15:02:57 -0700 Subject: [PATCH 025/514] Updated docs --- CHANGELOG.md | 5 +++++ README.md | 16 +++++++++------- app/views/pages/index.html.erb | 20 +++++++++++++++++--- 3 files changed, 31 insertions(+), 10 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index e3e67dfd..e76a5b4a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,8 @@ v1.1 - Sunday, March 22, 2015 ------------------------------ 1. Changed /webpack directory to /client + + +This is out of date. + +See: [pull requests](https://github.com/justin808/react-webpack-rails-tutorial/pulls?utf8=%E2%9C%93&q=is%3Apr) diff --git a/README.md b/README.md index 67ded295..1754d889 100644 --- a/README.md +++ b/README.md @@ -1,15 +1,17 @@ # React, React-Bootstrap, and ES-6 on Rails via WebPack +## Now with Redux! + By Justin Gordon and the Rails On Maui Team, http://www.railsonmaui.com -- If you came to here from the blog article, this example project has evolved. See CHANGELOG.md for - what's changed. -- Please email us at [justin@railsonmaui.com](mailto:justin@railsonmaui.com) if you have a ReactJs + - Rails project. -- Please file issues for problems and feature requests. -- Pull requests are welcome! +- If you came to here from the blog article, this example project has evolved. + See [pull requests](https://github.com/justin808/react-webpack-rails-tutorial/pulls?utf8=%E2%9C%93&q=is%3Apr). - If this work interests you and you are looking for full or part-time remote work, please [click here](http://forum.railsonmaui.com/t/railsonmaui-is-hiring-and-partnering-part-time-remote-is-ok/156). +- Please email us at [justin@railsonmaui.com](mailto:justin@railsonmaui.com) if you have a ReactJs + + Rails project and are interested in help from our experienced team. +- Please file issues for problems and feature requests. +- Pull requests are welcome! (and a great way to get on the team) - Feel free to open discussions at [forum.railsonmaui.com](http://www.forum.railsonmaui.com). - We now have a [gitter chat room for this topic](https://gitter.im/justin808/react-webpack-rails-tutorial). @@ -33,7 +35,7 @@ You can see this tutorial live here: [http://reactrails.com/](http://reactrails. In no particular order: -- Example of Rails 4.2 with ReactJs/Flux with Webpack and ES6. +- Example of Rails 4.2 with ReactJs/Redux with Webpack and ES6. - Enable development of a JS client independently from Rails using Webpack Hot Module Reload. - Easily enable use of npm modules with a Rails application. - Easily enable retrofitting such a JS framework into an existing Rails app. diff --git a/app/views/pages/index.html.erb b/app/views/pages/index.html.erb index b20be1ad..052a2a95 100644 --- a/app/views/pages/index.html.erb +++ b/app/views/pages/index.html.erb @@ -1,7 +1,21 @@ -

Using React

+

Using React + Redux + Rails Backend

+
    +
  • + If this work interests you and you're a developer or designer looking for full or part-time remote work: please + <%= link_to "click here", + "http://forum.railsonmaui.com/t/railsonmaui-is-hiring-and-partnering-part-time-remote-is-ok/156" %> + and + <%= link_to "here", + "http://forum.railsonmaui.com/t/railsonmaui-is-hiring-and-partnering-part-time-remote-is-ok/156/2" %>. +
  • +
  • + Please see the + <%= link_to "github.com/react-webpack-rails-tutorial/README.md", + "https://github.com/justin808/react-webpack-rails-tutorial/blob/master/README.md" %> + for details of how this example site was built. +
  • +

- -
From a66a5d9272e83ec127cae693494605383a569cce Mon Sep 17 00:00:00 2001 From: Justin Gordon Date: Thu, 27 Aug 2015 23:54:48 -0700 Subject: [PATCH 026/514] Update README.md --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 1754d889..3e7b5c5b 100644 --- a/README.md +++ b/README.md @@ -49,9 +49,9 @@ See package.json and Gemfile for versions 1. React (for front-end app) 2. React-bootstrap -3. [Flux Alt](https://github.com/goatslacker/alt) +3. [Redux](https://github.com/rackt/redux) 4. Webpack with hot-reload (for local dev) -5. ES6 transpiler (es6-loader) +5. Babel transpiler (https://github.com/babel/babel) 6. Rails 4.2 (for backend app) 7. Heroku (for deployment) From e48b6767981612077b3d1e1141bed20e89c0b119 Mon Sep 17 00:00:00 2001 From: Justin Gordon Date: Tue, 1 Sep 2015 18:25:03 -1000 Subject: [PATCH 027/514] Update README.md --- README.md | 25 ++++++++++++++----------- 1 file changed, 14 insertions(+), 11 deletions(-) diff --git a/README.md b/README.md index 3e7b5c5b..dd802f43 100644 --- a/README.md +++ b/README.md @@ -1,8 +1,8 @@ -# React, React-Bootstrap, and ES-6 on Rails via WebPack +# React, Redux, React-Bootstrap, and ES-7 on Rails via WebPack -## Now with Redux! +## Now with Redux and ES7! Servering Rendering ASAP! -By Justin Gordon and the Rails On Maui Team, http://www.railsonmaui.com +By Justin Gordon and the Shaka Code Team, http://www.railsonmaui.com - If you came to here from the blog article, this example project has evolved. See [pull requests](https://github.com/justin808/react-webpack-rails-tutorial/pulls?utf8=%E2%9C%93&q=is%3Apr). @@ -17,7 +17,7 @@ By Justin Gordon and the Rails On Maui Team, http://www.railsonmaui.com 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 going to be ahead of the tutorial. We plan to update the tutorial soon. +Note, this source code repository is way ahead of the tutorial. We plan to update the tutorial as soon as can catch our breath! [Discussion forum regarding the tutorial](http://forum.railsonmaui.com/t/fast-rich-client-rails-development-with-webpack-and-the-es6-transpiler/82/10) @@ -35,22 +35,22 @@ You can see this tutorial live here: [http://reactrails.com/](http://reactrails. In no particular order: -- Example of Rails 4.2 with ReactJs/Redux with Webpack and ES6. -- Enable development of a JS client independently from Rails using Webpack Hot Module Reload. +- Example of Rails 4.2 with ReactJs/Redux with Webpack and ES7. +- Enable development of a JS client independently from Rails using Webpack Hot Module Reload. You can see this by starting the app and visiting http://localhost:3000 - Easily enable use of npm modules with a Rails application. - Easily enable retrofitting such a JS framework into an existing Rails app. -- Enable the use of the JavaScript ES6 transpiler. -- Example setting up Ruby and ES6 linting in a real project. +- Enable the use of the JavaScript ES7 transpiler. +- Example setting up Ruby and ES7 linting in a real project. - Example of thorough use of Ruby and JavaScript linters, and other CI tasks. # Technologies involved See package.json and Gemfile for versions -1. React (for front-end app) -2. React-bootstrap +1. [React](http://facebook.github.io/react/) (for front-end app) +2. [react-bootstrap](https://react-bootstrap.github.io/) 3. [Redux](https://github.com/rackt/redux) -4. Webpack with hot-reload (for local dev) +4. [Webpack with hot-reload](https://github.com/webpack/docs/wiki/hot-module-replacement-with-webpack) (for local dev) 5. Babel transpiler (https://github.com/babel/babel) 6. Rails 4.2 (for backend app) 7. Heroku (for deployment) @@ -252,6 +252,9 @@ QMAKE=/usr/local/Cellar/qt5/5.4.0/bin/qmake bundle install Then run `rspec` and you should see the tests have passed. +# Rails Asset Pipeline Magic +Be sure to see [assets.rake](https://github.com/shakacode/react-webpack-rails-tutorial/blob/master/lib/tasks/assets.rake) for how webpack is invoked during asset compilation. + # Linting and Code Inspection ## Running Lint and CI tasks * Default rake task runs tests and linting (yes, repeating this!) (see `ci.rake`) From 11bc8acc99346bebe9e183eae7ed9315758fb18d Mon Sep 17 00:00:00 2001 From: Justin Gordon Date: Tue, 1 Sep 2015 18:26:38 -1000 Subject: [PATCH 028/514] Update README.md --- README.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index dd802f43..e9be20f1 100644 --- a/README.md +++ b/README.md @@ -164,6 +164,9 @@ search path. See config `config/application.rb`. Keep that in mind as you customize the Bootstrap Sass variables. # Notes on Rails assets +## Rails Asset Pipeline Magic +Be sure to see [assets.rake](https://github.com/shakacode/react-webpack-rails-tutorial/blob/master/lib/tasks/assets.rake) for how webpack is invoked during asset compilation. + ## Javascript The `webpack.rails.config.js` file generates client-bundle.js which is then included by the Rails asset pipeline. @@ -252,8 +255,6 @@ QMAKE=/usr/local/Cellar/qt5/5.4.0/bin/qmake bundle install Then run `rspec` and you should see the tests have passed. -# Rails Asset Pipeline Magic -Be sure to see [assets.rake](https://github.com/shakacode/react-webpack-rails-tutorial/blob/master/lib/tasks/assets.rake) for how webpack is invoked during asset compilation. # Linting and Code Inspection ## Running Lint and CI tasks From 64c514ecea4903809128a03cc0dc21062c1609c5 Mon Sep 17 00:00:00 2001 From: Justin Gordon Date: Tue, 1 Sep 2015 22:53:24 -1000 Subject: [PATCH 029/514] Changed justin808 to shakacode --- app/views/pages/index.html.erb | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/views/pages/index.html.erb b/app/views/pages/index.html.erb index 052a2a95..23ac242a 100644 --- a/app/views/pages/index.html.erb +++ b/app/views/pages/index.html.erb @@ -10,8 +10,8 @@
  • Please see the - <%= link_to "github.com/react-webpack-rails-tutorial/README.md", - "https://github.com/justin808/react-webpack-rails-tutorial/blob/master/README.md" %> + <%= link_to "github.com/shakacode/react-webpack-rails-tutorial/README.md", + "https://github.com/shakacode/react-webpack-rails-tutorial/blob/master/README.md" %> for details of how this example site was built.
  • From 0262e978d974a6951adac642b4a12a5afee60489 Mon Sep 17 00:00:00 2001 From: Justin Gordon Date: Tue, 1 Sep 2015 23:19:33 -1000 Subject: [PATCH 030/514] Only README.md --- README.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/README.md b/README.md index e9be20f1..ffbd1323 100644 --- a/README.md +++ b/README.md @@ -299,3 +299,8 @@ WebStorm opened up to the `client` directory to focus on JSX and Sass files. ``` alias git-cleanup-merged-branches='git branch --merged master | grep -v master | xargs git branch -d' ``` + +# Open Code of Conduct +This project adheres to the [Open Code of Conduct][code-of-conduct]. By participating, you are expected to uphold this code. +[code-of-conduct](http://todogroup.org/opencodeofconduct/#fetch/opensource@github.com) + From 3b7a5c7f678db56e8f02355db08140b9b0ae80de Mon Sep 17 00:00:00 2001 From: Mario Perez Date: Wed, 2 Sep 2015 12:57:51 +0200 Subject: [PATCH 031/514] Use fetch instead of $.ajax. Resolves #69 --- client/.jscsrc | 3 +- .../actions/CommentActionCreators.js | 12 +++--- .../javascripts/utils/CommentsManager.js | 42 ++++++++++++------- client/package.json | 3 +- client/webpack.common.config.js | 2 +- 5 files changed, 38 insertions(+), 24 deletions(-) diff --git a/client/.jscsrc b/client/.jscsrc index 0be7eea1..bb03b57c 100644 --- a/client/.jscsrc +++ b/client/.jscsrc @@ -1,5 +1,6 @@ { "preset": "airbnb", "fileExtensions": [".js", ".jsx"], - "excludeFiles": ["build/**", "node_modules/**"] + "excludeFiles": ["build/**", "node_modules/**"], + "disallowQuotedKeysInObjects": false } diff --git a/client/assets/javascripts/actions/CommentActionCreators.js b/client/assets/javascripts/actions/CommentActionCreators.js index 4b4c38e1..9b9b7108 100644 --- a/client/assets/javascripts/actions/CommentActionCreators.js +++ b/client/assets/javascripts/actions/CommentActionCreators.js @@ -43,10 +43,9 @@ export function submitCommentFailure(error) { export function fetchComments() { return dispatch => { - return CommentsManager.fetchComments().then( - comments => dispatch(fetchCommentsSuccess(comments)), - error => dispatch(fetchCommentsFailure(error)) - ); + return CommentsManager.fetchComments() + .then(comments => dispatch(fetchCommentsSuccess(comments))) + .catch(error => dispatch(fetchCommentsFailure(error))); }; } @@ -58,9 +57,8 @@ export function submitComment(comment) { return dispatch => { dispatch(incrementAjaxCounter()); return CommentsManager.submitComment(comment) - .then( - _comment => dispatch(submitCommentSuccess(_comment)), - error => dispatch(submitCommentFailure(error))) + .then(commentFromServer => dispatch(submitCommentSuccess(commentFromServer))) + .catch(error => dispatch(submitCommentFailure(error))) .then(() => dispatchDecrementAjaxCounter(dispatch)); }; } diff --git a/client/assets/javascripts/utils/CommentsManager.js b/client/assets/javascripts/utils/CommentsManager.js index 4348018c..c8500c63 100644 --- a/client/assets/javascripts/utils/CommentsManager.js +++ b/client/assets/javascripts/utils/CommentsManager.js @@ -1,34 +1,48 @@ -import $ from 'jquery'; - const API_URL = 'comments.json'; +// fetch won't reject on HTTP error status +// https://github.com/github/fetch#handling-http-error-statuses +function checkStatus(response) { + if (response.status >= 200 && response.status < 300) { + return response; + } + + const error = new Error(response.statusText); + error.response = response; + throw error; +} + +function parseJSON(response) { + return response.json(); +} + const CommentsManager = { /** * Retrieve comments from server using AJAX call. * - * @returns {Promise} - jqXHR result of ajax call. + * @returns {Promise} - response of fetch request. */ fetchComments() { - return Promise.resolve($.ajax({ - url: API_URL, - dataType: 'json', - })); + return fetch(API_URL).then(checkStatus).then(parseJSON); }, /** * Submit new comment to server using AJAX call. * * @param {Object} comment - Comment body to post. - * @returns {Promise} - jqXHR result of ajax call. + * @returns {Promise} - response of fetch request. */ + submitComment(comment) { - return Promise.resolve($.ajax({ - url: API_URL, - dataType: 'json', - type: 'POST', - data: {comment: comment}, - })); + return fetch(API_URL, { + method: 'post', + headers: { + 'Accept': 'application/json', + 'Content-Type': 'application/json', + }, + body: JSON.stringify({comment}), + }).then(checkStatus).then(parseJSON); }, }; diff --git a/client/package.json b/client/package.json index 93e6bde9..b7126cf7 100644 --- a/client/package.json +++ b/client/package.json @@ -40,7 +40,8 @@ "redux-promise": "^0.5.0", "redux-thunk": "^0.1.0", "sleep": "^3.0.0", - "webpack": "^1.10.5" + "webpack": "^1.10.5", + "whatwg-fetch": "^0.9.0" }, "devDependencies": { "babel-eslint": "^4.0.5", diff --git a/client/webpack.common.config.js b/client/webpack.common.config.js index 50471f39..91370cb6 100644 --- a/client/webpack.common.config.js +++ b/client/webpack.common.config.js @@ -6,7 +6,7 @@ module.exports = { // the project dir context: __dirname, - entry: ['./assets/javascripts/App'], + entry: ['whatwg-fetch', './assets/javascripts/App'], // In case you wanted to load jQuery from the CDN, this is how you would do it: // externals: { From 0a9bc824526c8bb4881475c5c37ba608b4fa3e85 Mon Sep 17 00:00:00 2001 From: Justin Gordon Date: Fri, 4 Sep 2015 01:11:09 -0700 Subject: [PATCH 032/514] Update README.md --- README.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index ffbd1323..7a5a3d97 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # React, Redux, React-Bootstrap, and ES-7 on Rails via WebPack -## Now with Redux and ES7! Servering Rendering ASAP! +## Now with Redux and ES7! Servering Rendering ASAP (Shaka Code's react_on_rails gem)! By Justin Gordon and the Shaka Code Team, http://www.railsonmaui.com @@ -14,6 +14,7 @@ By Justin Gordon and the Shaka Code Team, http://www.railsonmaui.com - Pull requests are welcome! (and a great way to get on the team) - Feel free to open discussions at [forum.railsonmaui.com](http://www.forum.railsonmaui.com). - We now have a [gitter chat room for this topic](https://gitter.im/justin808/react-webpack-rails-tutorial). +- Check out the [react_on_rails gem](https://github.com/shakacode/react_on_rails) for easy webpack integration. 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/) From 7d8dbc3fe815a54959c5f29047a3200962dd7130 Mon Sep 17 00:00:00 2001 From: dylangrafmyre Date: Fri, 4 Sep 2015 08:38:50 -1000 Subject: [PATCH 033/514] Update package.json for Redux 1.0.1 and npm shrinkwrap --- client/npm-shrinkwrap.json | 720 +++++++++++++++++-------------------- client/package.json | 2 +- 2 files changed, 329 insertions(+), 393 deletions(-) diff --git a/client/npm-shrinkwrap.json b/client/npm-shrinkwrap.json index 97a09ea5..ec659672 100644 --- a/client/npm-shrinkwrap.json +++ b/client/npm-shrinkwrap.json @@ -3,9 +3,9 @@ "version": "1.1.0", "dependencies": { "babel-core": { - "version": "5.8.20", + "version": "5.8.23", "from": "babel-core@>=5.8.20 <6.0.0", - "resolved": "https://registry.npmjs.org/babel-core/-/babel-core-5.8.20.tgz", + "resolved": "https://registry.npmjs.org/babel-core/-/babel-core-5.8.23.tgz", "dependencies": { "babel-plugin-constant-folding": { "version": "1.0.1", @@ -90,9 +90,9 @@ "resolved": "https://registry.npmjs.org/babel-plugin-undefined-to-void/-/babel-plugin-undefined-to-void-1.1.6.tgz" }, "babylon": { - "version": "5.8.20", - "from": "babylon@>=5.8.20 <6.0.0", - "resolved": "https://registry.npmjs.org/babylon/-/babylon-5.8.20.tgz" + "version": "5.8.23", + "from": "babylon@>=5.8.23 <6.0.0", + "resolved": "https://registry.npmjs.org/babylon/-/babylon-5.8.23.tgz" }, "bluebird": { "version": "2.9.34", @@ -100,9 +100,9 @@ "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-2.9.34.tgz" }, "chalk": { - "version": "1.1.0", + "version": "1.1.1", "from": "chalk@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.0.tgz", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.1.tgz", "dependencies": { "ansi-styles": { "version": "2.1.0", @@ -151,9 +151,9 @@ "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.1.1.tgz" }, "core-js": { - "version": "1.0.1", + "version": "1.1.3", "from": "core-js@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-1.0.1.tgz" + "resolved": "https://registry.npmjs.org/core-js/-/core-js-1.1.3.tgz" }, "debug": { "version": "2.2.0", @@ -178,9 +178,9 @@ "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz" }, "minimist": { - "version": "1.1.2", + "version": "1.2.0", "from": "minimist@>=1.1.0 <2.0.0", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.1.2.tgz" + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz" } } }, @@ -217,9 +217,9 @@ } }, "is-integer": { - "version": "1.0.4", + "version": "1.0.6", "from": "is-integer@>=1.0.4 <2.0.0", - "resolved": "https://registry.npmjs.org/is-integer/-/is-integer-1.0.4.tgz", + "resolved": "https://registry.npmjs.org/is-integer/-/is-integer-1.0.6.tgz", "dependencies": { "is-finite": { "version": "1.0.1", @@ -232,30 +232,6 @@ "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.0.tgz" } } - }, - "is-nan": { - "version": "1.1.0", - "from": "is-nan@>=1.0.1 <2.0.0", - "resolved": "https://registry.npmjs.org/is-nan/-/is-nan-1.1.0.tgz", - "dependencies": { - "define-properties": { - "version": "1.1.1", - "from": "define-properties@>=1.0.2 <2.0.0", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.1.tgz", - "dependencies": { - "foreach": { - "version": "2.0.5", - "from": "foreach@>=2.0.5 <3.0.0", - "resolved": "https://registry.npmjs.org/foreach/-/foreach-2.0.5.tgz" - }, - "object-keys": { - "version": "1.0.7", - "from": "object-keys@>=1.0.7 <2.0.0", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.0.7.tgz" - } - } - } - } } } }, @@ -282,9 +258,9 @@ } }, "lodash": { - "version": "3.10.0", + "version": "3.10.1", "from": "lodash@>=3.10.0 <4.0.0", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-3.10.0.tgz" + "resolved": "https://registry.npmjs.org/lodash/-/lodash-3.10.1.tgz" }, "minimatch": { "version": "2.0.10", @@ -545,19 +521,14 @@ "resolved": "https://registry.npmjs.org/regexpu/-/regexpu-1.2.0.tgz", "dependencies": { "recast": { - "version": "0.10.26", + "version": "0.10.32", "from": "recast@>=0.10.6 <0.11.0", - "resolved": "https://registry.npmjs.org/recast/-/recast-0.10.26.tgz", + "resolved": "https://registry.npmjs.org/recast/-/recast-0.10.32.tgz", "dependencies": { - "esprima-fb": { - "version": "15001.1.0-dev-harmony-fb", - "from": "esprima-fb@>=15001.1.0-dev-harmony-fb <15001.2.0", - "resolved": "https://registry.npmjs.org/esprima-fb/-/esprima-fb-15001.1.0-dev-harmony-fb.tgz" - }, "ast-types": { - "version": "0.8.7", - "from": "ast-types@0.8.7", - "resolved": "https://registry.npmjs.org/ast-types/-/ast-types-0.8.7.tgz" + "version": "0.8.11", + "from": "ast-types@0.8.11", + "resolved": "https://registry.npmjs.org/ast-types/-/ast-types-0.8.11.tgz" } } }, @@ -572,9 +543,9 @@ "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.2.0.tgz" }, "regjsparser": { - "version": "0.1.4", + "version": "0.1.5", "from": "regjsparser@>=0.1.4 <0.2.0", - "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.1.4.tgz", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.1.5.tgz", "dependencies": { "jsesc": { "version": "0.5.0", @@ -757,15 +728,15 @@ "dependencies": { "unpipe": { "version": "1.0.0", - "from": "unpipe@1.0.0", + "from": "unpipe@>=1.0.0 <1.1.0", "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz" } } }, "type-is": { - "version": "1.6.6", + "version": "1.6.8", "from": "type-is@>=1.6.6 <1.7.0", - "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.6.tgz", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.8.tgz", "dependencies": { "media-typer": { "version": "0.3.0", @@ -773,14 +744,14 @@ "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz" }, "mime-types": { - "version": "2.1.4", + "version": "2.1.6", "from": "mime-types@>=2.1.4 <2.2.0", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.4.tgz", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.6.tgz", "dependencies": { "mime-db": { - "version": "1.16.0", - "from": "mime-db@>=1.16.0 <1.17.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.16.0.tgz" + "version": "1.18.0", + "from": "mime-db@>=1.18.0 <1.19.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.18.0.tgz" } } } @@ -789,14 +760,19 @@ } }, "es5-shim": { - "version": "4.1.10", + "version": "4.1.11", "from": "es5-shim@>=4.1.10 <5.0.0", - "resolved": "https://registry.npmjs.org/es5-shim/-/es5-shim-4.1.10.tgz" + "resolved": "https://registry.npmjs.org/es5-shim/-/es5-shim-4.1.11.tgz" + }, + "es6-promise": { + "version": "2.3.0", + "from": "es6-promise@>=2.3.0 <3.0.0", + "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-2.3.0.tgz" }, "immutable": { - "version": "3.7.4", - "from": "immutable@*", - "resolved": "https://registry.npmjs.org/immutable/-/immutable-3.7.4.tgz" + "version": "3.7.5", + "from": "immutable@>=3.7.4 <4.0.0", + "resolved": "https://registry.npmjs.org/immutable/-/immutable-3.7.5.tgz" }, "imports-loader": { "version": "0.6.4", @@ -819,7 +795,7 @@ }, "jquery": { "version": "2.1.4", - "from": "https://registry.npmjs.org/jquery/-/jquery-2.1.4.tgz", + "from": "jquery@>=2.1.4 <3.0.0", "resolved": "https://registry.npmjs.org/jquery/-/jquery-2.1.4.tgz" }, "loader-utils": { @@ -844,272 +820,45 @@ "from": "marked@>=0.3.5 <0.4.0", "resolved": "https://registry.npmjs.org/marked/-/marked-0.3.5.tgz" }, - "node-libs-browser": { - "version": "0.5.0", - "from": "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-0.5.0.tgz", - "resolved": "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-0.5.0.tgz", - "dependencies": { - "assert": { - "version": "1.3.0", - "from": "https://registry.npmjs.org/assert/-/assert-1.3.0.tgz", - "resolved": "https://registry.npmjs.org/assert/-/assert-1.3.0.tgz" - }, - "browserify-zlib": { - "version": "0.1.4", - "from": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.1.4.tgz", - "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.1.4.tgz", - "dependencies": { - "pako": { - "version": "0.2.6", - "from": "https://registry.npmjs.org/pako/-/pako-0.2.6.tgz", - "resolved": "https://registry.npmjs.org/pako/-/pako-0.2.6.tgz" - } - } - }, - "buffer": { - "version": "3.2.2", - "from": "https://registry.npmjs.org/buffer/-/buffer-3.2.2.tgz", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-3.2.2.tgz", - "dependencies": { - "base64-js": { - "version": "0.0.8", - "from": "https://registry.npmjs.org/base64-js/-/base64-js-0.0.8.tgz", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-0.0.8.tgz" - }, - "ieee754": { - "version": "1.1.5", - "from": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.5.tgz", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.5.tgz" - }, - "is-array": { - "version": "1.0.1", - "from": "https://registry.npmjs.org/is-array/-/is-array-1.0.1.tgz", - "resolved": "https://registry.npmjs.org/is-array/-/is-array-1.0.1.tgz" - } - } - }, - "console-browserify": { - "version": "1.1.0", - "from": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.1.0.tgz", - "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.1.0.tgz", - "dependencies": { - "date-now": { - "version": "0.1.4", - "from": "https://registry.npmjs.org/date-now/-/date-now-0.1.4.tgz", - "resolved": "https://registry.npmjs.org/date-now/-/date-now-0.1.4.tgz" - } - } - }, - "constants-browserify": { - "version": "0.0.1", - "from": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-0.0.1.tgz", - "resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-0.0.1.tgz" - }, - "crypto-browserify": { - "version": "3.2.8", - "from": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.2.8.tgz", - "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.2.8.tgz", - "dependencies": { - "pbkdf2-compat": { - "version": "2.0.1", - "from": "https://registry.npmjs.org/pbkdf2-compat/-/pbkdf2-compat-2.0.1.tgz", - "resolved": "https://registry.npmjs.org/pbkdf2-compat/-/pbkdf2-compat-2.0.1.tgz" - }, - "ripemd160": { - "version": "0.2.0", - "from": "https://registry.npmjs.org/ripemd160/-/ripemd160-0.2.0.tgz", - "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-0.2.0.tgz" - }, - "sha.js": { - "version": "2.2.6", - "from": "https://registry.npmjs.org/sha.js/-/sha.js-2.2.6.tgz", - "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.2.6.tgz" - } - } - }, - "domain-browser": { - "version": "1.1.4", - "from": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.1.4.tgz", - "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.1.4.tgz" - }, - "events": { - "version": "1.0.2", - "from": "https://registry.npmjs.org/events/-/events-1.0.2.tgz", - "resolved": "https://registry.npmjs.org/events/-/events-1.0.2.tgz" - }, - "http-browserify": { - "version": "1.7.0", - "from": "https://registry.npmjs.org/http-browserify/-/http-browserify-1.7.0.tgz", - "resolved": "https://registry.npmjs.org/http-browserify/-/http-browserify-1.7.0.tgz", - "dependencies": { - "Base64": { - "version": "0.2.1", - "from": "https://registry.npmjs.org/Base64/-/Base64-0.2.1.tgz", - "resolved": "https://registry.npmjs.org/Base64/-/Base64-0.2.1.tgz" - }, - "inherits": { - "version": "2.0.1", - "from": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz" - } - } - }, - "https-browserify": { - "version": "0.0.0", - "from": "https://registry.npmjs.org/https-browserify/-/https-browserify-0.0.0.tgz", - "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-0.0.0.tgz" - }, - "os-browserify": { - "version": "0.1.2", - "from": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.1.2.tgz", - "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.1.2.tgz" - }, - "path-browserify": { - "version": "0.0.0", - "from": "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.0.tgz", - "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.0.tgz" - }, - "process": { - "version": "0.11.0", - "from": "https://registry.npmjs.org/process/-/process-0.11.0.tgz", - "resolved": "https://registry.npmjs.org/process/-/process-0.11.0.tgz" - }, - "punycode": { - "version": "1.3.2", - "from": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz" - }, - "querystring-es3": { - "version": "0.2.1", - "from": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz", - "resolved": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz" - }, - "readable-stream": { - "version": "1.1.13", - "from": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.13.tgz", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.13.tgz", - "dependencies": { - "core-util-is": { - "version": "1.0.1", - "from": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.1.tgz", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.1.tgz" - }, - "isarray": { - "version": "0.0.1", - "from": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz" - }, - "inherits": { - "version": "2.0.1", - "from": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz" - } - } - }, - "stream-browserify": { - "version": "1.0.0", - "from": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-1.0.0.tgz", - "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-1.0.0.tgz", - "dependencies": { - "inherits": { - "version": "2.0.1", - "from": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz" - } - } - }, - "string_decoder": { - "version": "0.10.31", - "from": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz" - }, - "timers-browserify": { - "version": "1.4.1", - "from": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-1.4.1.tgz", - "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-1.4.1.tgz" - }, - "tty-browserify": { - "version": "0.0.0", - "from": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.0.tgz", - "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.0.tgz" - }, - "url": { - "version": "0.10.3", - "from": "https://registry.npmjs.org/url/-/url-0.10.3.tgz", - "resolved": "https://registry.npmjs.org/url/-/url-0.10.3.tgz", - "dependencies": { - "querystring": { - "version": "0.2.0", - "from": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", - "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz" - } - } - }, - "util": { - "version": "0.10.3", - "from": "https://registry.npmjs.org/util/-/util-0.10.3.tgz", - "resolved": "https://registry.npmjs.org/util/-/util-0.10.3.tgz", - "dependencies": { - "inherits": { - "version": "2.0.1", - "from": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz" - } - } - }, - "vm-browserify": { - "version": "0.0.4", - "from": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-0.0.4.tgz", - "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-0.0.4.tgz", - "dependencies": { - "indexof": { - "version": "0.0.1", - "from": "https://registry.npmjs.org/indexof/-/indexof-0.0.1.tgz", - "resolved": "https://registry.npmjs.org/indexof/-/indexof-0.0.1.tgz" - } - } - } - } - }, "react": { "version": "0.13.3", - "from": "https://registry.npmjs.org/react/-/react-0.13.3.tgz", + "from": "react@>=0.13.3 <0.14.0", "resolved": "https://registry.npmjs.org/react/-/react-0.13.3.tgz", "dependencies": { "envify": { "version": "3.4.0", - "from": "https://registry.npmjs.org/envify/-/envify-3.4.0.tgz", + "from": "envify@>=3.0.0 <4.0.0", "resolved": "https://registry.npmjs.org/envify/-/envify-3.4.0.tgz", "dependencies": { "through": { - "version": "2.3.7", - "from": "https://registry.npmjs.org/through/-/through-2.3.7.tgz", - "resolved": "https://registry.npmjs.org/through/-/through-2.3.7.tgz" + "version": "2.3.8", + "from": "through@>=2.3.4 <2.4.0", + "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz" }, "jstransform": { "version": "10.1.0", - "from": "https://registry.npmjs.org/jstransform/-/jstransform-10.1.0.tgz", + "from": "jstransform@>=10.0.1 <11.0.0", "resolved": "https://registry.npmjs.org/jstransform/-/jstransform-10.1.0.tgz", "dependencies": { "base62": { "version": "0.1.1", - "from": "https://registry.npmjs.org/base62/-/base62-0.1.1.tgz", + "from": "base62@0.1.1", "resolved": "https://registry.npmjs.org/base62/-/base62-0.1.1.tgz" }, "esprima-fb": { "version": "13001.1001.0-dev-harmony-fb", - "from": "https://registry.npmjs.org/esprima-fb/-/esprima-fb-13001.1001.0-dev-harmony-fb.tgz", + "from": "esprima-fb@13001.1001.0-dev-harmony-fb", "resolved": "https://registry.npmjs.org/esprima-fb/-/esprima-fb-13001.1001.0-dev-harmony-fb.tgz" }, "source-map": { "version": "0.1.31", - "from": "https://registry.npmjs.org/source-map/-/source-map-0.1.31.tgz", + "from": "source-map@0.1.31", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.1.31.tgz", "dependencies": { "amdefine": { - "version": "0.1.0", - "from": "https://registry.npmjs.org/amdefine/-/amdefine-0.1.0.tgz", - "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-0.1.0.tgz" + "version": "1.0.0", + "from": "amdefine@>=0.0.4", + "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.0.tgz" } } } @@ -1120,9 +869,9 @@ } }, "react-bootstrap": { - "version": "0.24.3", + "version": "0.24.5", "from": "react-bootstrap@>=0.24.3 <0.25.0", - "resolved": "https://registry.npmjs.org/react-bootstrap/-/react-bootstrap-0.24.3.tgz", + "resolved": "https://registry.npmjs.org/react-bootstrap/-/react-bootstrap-0.24.5.tgz", "dependencies": { "babel-runtime": { "version": "5.8.20", @@ -1130,16 +879,16 @@ "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-5.8.20.tgz", "dependencies": { "core-js": { - "version": "1.0.1", + "version": "1.1.3", "from": "core-js@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-1.0.1.tgz" + "resolved": "https://registry.npmjs.org/core-js/-/core-js-1.1.3.tgz" } } }, "lodash": { - "version": "3.10.0", + "version": "3.10.1", "from": "lodash@>=3.10.0 <4.0.0", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-3.10.0.tgz" + "resolved": "https://registry.npmjs.org/lodash/-/lodash-3.10.1.tgz" }, "classnames": { "version": "2.1.3", @@ -1150,7 +899,7 @@ }, "react-redux": { "version": "0.2.2", - "from": "react-redux@*", + "from": "react-redux@>=0.2.2 <0.3.0", "resolved": "https://registry.npmjs.org/react-redux/-/react-redux-0.2.2.tgz", "dependencies": { "invariant": { @@ -1204,63 +953,13 @@ } }, "redux": { - "version": "1.0.0-rc", - "from": "redux@1.0.0-rc", - "resolved": "https://registry.npmjs.org/redux/-/redux-1.0.0-rc.tgz", - "dependencies": { - "invariant": { - "version": "2.1.0", - "from": "invariant@>=2.0.0 <3.0.0", - "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.1.0.tgz", - "dependencies": { - "envify": { - "version": "3.4.0", - "from": "envify@>=3.0.0 <4.0.0", - "resolved": "https://registry.npmjs.org/envify/-/envify-3.4.0.tgz", - "dependencies": { - "through": { - "version": "2.3.8", - "from": "through@>=2.3.4 <2.4.0", - "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz" - }, - "jstransform": { - "version": "10.1.0", - "from": "jstransform@>=10.0.1 <11.0.0", - "resolved": "https://registry.npmjs.org/jstransform/-/jstransform-10.1.0.tgz", - "dependencies": { - "base62": { - "version": "0.1.1", - "from": "base62@0.1.1", - "resolved": "https://registry.npmjs.org/base62/-/base62-0.1.1.tgz" - }, - "esprima-fb": { - "version": "13001.1001.0-dev-harmony-fb", - "from": "esprima-fb@13001.1001.0-dev-harmony-fb", - "resolved": "https://registry.npmjs.org/esprima-fb/-/esprima-fb-13001.1001.0-dev-harmony-fb.tgz" - }, - "source-map": { - "version": "0.1.31", - "from": "source-map@0.1.31", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.1.31.tgz", - "dependencies": { - "amdefine": { - "version": "1.0.0", - "from": "amdefine@>=0.0.4", - "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.0.tgz" - } - } - } - } - } - } - } - } - } - } + "version": "1.0.1", + "from": "redux@>=1.0.1 <2.0.0", + "resolved": "https://registry.npmjs.org/redux/-/redux-1.0.1.tgz" }, "redux-promise": { "version": "0.5.0", - "from": "redux-promise@*", + "from": "redux-promise@>=0.5.0 <0.6.0", "resolved": "https://registry.npmjs.org/redux-promise/-/redux-promise-0.5.0.tgz", "dependencies": { "flux-standard-action": { @@ -1303,7 +1002,7 @@ }, "redux-thunk": { "version": "0.1.0", - "from": "redux-thunk@*", + "from": "redux-thunk@>=0.1.0 <0.2.0", "resolved": "https://registry.npmjs.org/redux-thunk/-/redux-thunk-0.1.0.tgz" }, "sleep": { @@ -1312,21 +1011,21 @@ "resolved": "https://registry.npmjs.org/sleep/-/sleep-3.0.0.tgz", "dependencies": { "nan": { - "version": "2.0.0", + "version": "2.0.8", "from": "nan@>=2.0.0", - "resolved": "https://registry.npmjs.org/nan/-/nan-2.0.0.tgz" + "resolved": "https://registry.npmjs.org/nan/-/nan-2.0.8.tgz" } } }, "webpack": { - "version": "1.10.5", + "version": "1.12.1", "from": "webpack@>=1.10.5 <2.0.0", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-1.10.5.tgz", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-1.12.1.tgz", "dependencies": { "async": { - "version": "1.4.0", + "version": "1.4.2", "from": "async@>=1.3.0 <2.0.0", - "resolved": "https://registry.npmjs.org/async/-/async-1.4.0.tgz" + "resolved": "https://registry.npmjs.org/async/-/async-1.4.2.tgz" }, "clone": { "version": "1.0.2", @@ -1340,15 +1039,15 @@ "dependencies": { "graceful-fs": { "version": "3.0.8", - "from": "graceful-fs@>=3.0.2 <4.0.0", + "from": "graceful-fs@>=3.0.5 <4.0.0", "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-3.0.8.tgz" } } }, "esprima": { - "version": "1.2.5", - "from": "esprima@>=1.2.0 <2.0.0", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-1.2.5.tgz" + "version": "2.6.0", + "from": "esprima@>=2.5.0 <3.0.0", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-2.6.0.tgz" }, "interpret": { "version": "0.6.5", @@ -1372,6 +1071,233 @@ } } }, + "node-libs-browser": { + "version": "0.5.2", + "from": "node-libs-browser@>=0.4.0 <=0.6.0", + "resolved": "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-0.5.2.tgz", + "dependencies": { + "assert": { + "version": "1.3.0", + "from": "assert@>=1.1.1 <2.0.0", + "resolved": "https://registry.npmjs.org/assert/-/assert-1.3.0.tgz" + }, + "browserify-zlib": { + "version": "0.1.4", + "from": "browserify-zlib@>=0.1.4 <0.2.0", + "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.1.4.tgz", + "dependencies": { + "pako": { + "version": "0.2.7", + "from": "pako@>=0.2.0 <0.3.0", + "resolved": "https://registry.npmjs.org/pako/-/pako-0.2.7.tgz" + } + } + }, + "buffer": { + "version": "3.4.3", + "from": "buffer@>=3.0.3 <4.0.0", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-3.4.3.tgz", + "dependencies": { + "base64-js": { + "version": "0.0.8", + "from": "base64-js@0.0.8", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-0.0.8.tgz" + }, + "ieee754": { + "version": "1.1.6", + "from": "ieee754@>=1.1.4 <2.0.0", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.6.tgz" + }, + "is-array": { + "version": "1.0.1", + "from": "is-array@>=1.0.1 <2.0.0", + "resolved": "https://registry.npmjs.org/is-array/-/is-array-1.0.1.tgz" + } + } + }, + "console-browserify": { + "version": "1.1.0", + "from": "console-browserify@>=1.1.0 <2.0.0", + "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.1.0.tgz", + "dependencies": { + "date-now": { + "version": "0.1.4", + "from": "date-now@>=0.1.4 <0.2.0", + "resolved": "https://registry.npmjs.org/date-now/-/date-now-0.1.4.tgz" + } + } + }, + "constants-browserify": { + "version": "0.0.1", + "from": "constants-browserify@0.0.1", + "resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-0.0.1.tgz" + }, + "crypto-browserify": { + "version": "3.2.8", + "from": "crypto-browserify@>=3.2.6 <3.3.0", + "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.2.8.tgz", + "dependencies": { + "pbkdf2-compat": { + "version": "2.0.1", + "from": "pbkdf2-compat@2.0.1", + "resolved": "https://registry.npmjs.org/pbkdf2-compat/-/pbkdf2-compat-2.0.1.tgz" + }, + "ripemd160": { + "version": "0.2.0", + "from": "ripemd160@0.2.0", + "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-0.2.0.tgz" + }, + "sha.js": { + "version": "2.2.6", + "from": "sha.js@2.2.6", + "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.2.6.tgz" + } + } + }, + "domain-browser": { + "version": "1.1.4", + "from": "domain-browser@>=1.1.1 <2.0.0", + "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.1.4.tgz" + }, + "events": { + "version": "1.0.2", + "from": "events@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/events/-/events-1.0.2.tgz" + }, + "http-browserify": { + "version": "1.7.0", + "from": "http-browserify@>=1.3.2 <2.0.0", + "resolved": "https://registry.npmjs.org/http-browserify/-/http-browserify-1.7.0.tgz", + "dependencies": { + "Base64": { + "version": "0.2.1", + "from": "Base64@>=0.2.0 <0.3.0", + "resolved": "https://registry.npmjs.org/Base64/-/Base64-0.2.1.tgz" + }, + "inherits": { + "version": "2.0.1", + "from": "inherits@>=2.0.1 <2.1.0", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz" + } + } + }, + "https-browserify": { + "version": "0.0.0", + "from": "https-browserify@0.0.0", + "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-0.0.0.tgz" + }, + "os-browserify": { + "version": "0.1.2", + "from": "os-browserify@>=0.1.2 <0.2.0", + "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.1.2.tgz" + }, + "path-browserify": { + "version": "0.0.0", + "from": "path-browserify@0.0.0", + "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.0.tgz" + }, + "process": { + "version": "0.11.1", + "from": "process@>=0.11.0 <0.12.0", + "resolved": "https://registry.npmjs.org/process/-/process-0.11.1.tgz" + }, + "punycode": { + "version": "1.3.2", + "from": "punycode@>=1.2.4 <2.0.0", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz" + }, + "querystring-es3": { + "version": "0.2.1", + "from": "querystring-es3@>=0.2.0 <0.3.0", + "resolved": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz" + }, + "readable-stream": { + "version": "1.1.13", + "from": "readable-stream@>=1.1.13 <2.0.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.13.tgz", + "dependencies": { + "core-util-is": { + "version": "1.0.1", + "from": "core-util-is@>=1.0.0 <1.1.0", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.1.tgz" + }, + "isarray": { + "version": "0.0.1", + "from": "isarray@0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz" + }, + "inherits": { + "version": "2.0.1", + "from": "inherits@>=2.0.1 <2.1.0", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz" + } + } + }, + "stream-browserify": { + "version": "1.0.0", + "from": "stream-browserify@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-1.0.0.tgz", + "dependencies": { + "inherits": { + "version": "2.0.1", + "from": "inherits@>=2.0.1 <2.1.0", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz" + } + } + }, + "string_decoder": { + "version": "0.10.31", + "from": "string_decoder@>=0.10.25 <0.11.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz" + }, + "timers-browserify": { + "version": "1.4.1", + "from": "timers-browserify@>=1.0.1 <2.0.0", + "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-1.4.1.tgz" + }, + "tty-browserify": { + "version": "0.0.0", + "from": "tty-browserify@0.0.0", + "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.0.tgz" + }, + "url": { + "version": "0.10.3", + "from": "url@>=0.10.1 <0.11.0", + "resolved": "https://registry.npmjs.org/url/-/url-0.10.3.tgz", + "dependencies": { + "querystring": { + "version": "0.2.0", + "from": "querystring@0.2.0", + "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz" + } + } + }, + "util": { + "version": "0.10.3", + "from": "util@>=0.10.3 <0.11.0", + "resolved": "https://registry.npmjs.org/util/-/util-0.10.3.tgz", + "dependencies": { + "inherits": { + "version": "2.0.1", + "from": "inherits@2.0.1", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz" + } + } + }, + "vm-browserify": { + "version": "0.0.4", + "from": "vm-browserify@0.0.4", + "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-0.0.4.tgz", + "dependencies": { + "indexof": { + "version": "0.0.1", + "from": "indexof@0.0.1", + "resolved": "https://registry.npmjs.org/indexof/-/indexof-0.0.1.tgz" + } + } + } + } + }, "optimist": { "version": "0.6.1", "from": "optimist@>=0.6.0 <0.7.0", @@ -1390,9 +1316,9 @@ } }, "supports-color": { - "version": "3.1.0", + "version": "3.1.1", "from": "supports-color@>=3.1.0 <4.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.1.0.tgz", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.1.1.tgz", "dependencies": { "has-flag": { "version": "1.0.0", @@ -1408,7 +1334,7 @@ }, "uglify-js": { "version": "2.4.24", - "from": "uglify-js@>=2.4.13 <2.5.0", + "from": "uglify-js@>=2.4.24 <2.5.0", "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.4.24.tgz", "dependencies": { "async": { @@ -1488,13 +1414,18 @@ "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-2.2.0.tgz", "dependencies": { "arr-diff": { - "version": "1.0.1", + "version": "1.1.0", "from": "arr-diff@>=1.0.1 <2.0.0", - "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-1.0.1.tgz", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-1.1.0.tgz", "dependencies": { + "arr-flatten": { + "version": "1.0.1", + "from": "arr-flatten@>=1.0.1 <2.0.0", + "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.0.1.tgz" + }, "array-slice": { "version": "0.2.3", - "from": "array-slice@>=0.2.2 <0.3.0", + "from": "array-slice@>=0.2.3 <0.3.0", "resolved": "https://registry.npmjs.org/array-slice/-/array-slice-0.2.3.tgz" } } @@ -1505,9 +1436,9 @@ "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.2.1.tgz" }, "braces": { - "version": "1.8.0", + "version": "1.8.1", "from": "braces@>=1.8.0 <2.0.0", - "resolved": "https://registry.npmjs.org/braces/-/braces-1.8.0.tgz", + "resolved": "https://registry.npmjs.org/braces/-/braces-1.8.1.tgz", "dependencies": { "expand-range": { "version": "1.8.1", @@ -1543,6 +1474,11 @@ } } }, + "lazy-cache": { + "version": "0.2.3", + "from": "lazy-cache@>=0.2.3 <0.3.0", + "resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-0.2.3.tgz" + }, "preserve": { "version": "0.2.0", "from": "preserve@>=0.2.0 <0.3.0", @@ -1550,15 +1486,15 @@ }, "repeat-element": { "version": "1.1.2", - "from": "repeat-element@>=1.1.0 <2.0.0", + "from": "repeat-element@>=1.1.2 <2.0.0", "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.2.tgz" } } }, "expand-brackets": { - "version": "0.1.2", + "version": "0.1.4", "from": "expand-brackets@>=0.1.1 <0.2.0", - "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-0.1.2.tgz" + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-0.1.4.tgz" }, "extglob": { "version": "0.3.1", @@ -1760,14 +1696,14 @@ } }, "fsevents": { - "version": "0.3.7", + "version": "0.3.8", "from": "fsevents@>=0.3.1 <0.4.0", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-0.3.7.tgz", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-0.3.8.tgz", "dependencies": { "nan": { - "version": "1.9.0", - "from": "nan@>=1.8.0 <2.0.0", - "resolved": "https://registry.npmjs.org/nan/-/nan-1.9.0.tgz" + "version": "2.0.8", + "from": "nan@>=2.0.2 <3.0.0", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.0.8.tgz" } } } diff --git a/client/package.json b/client/package.json index 93e6bde9..047a15e3 100644 --- a/client/package.json +++ b/client/package.json @@ -36,7 +36,7 @@ "react": "^0.13.3", "react-bootstrap": "^0.24.3", "react-redux": "^0.2.2", - "redux": "^1.0.0-rc", + "redux": "^1.0.1", "redux-promise": "^0.5.0", "redux-thunk": "^0.1.0", "sleep": "^3.0.0", From 594f96b0d0984555b7f9e1f2521183596e8e8886 Mon Sep 17 00:00:00 2001 From: Scott Bronson Date: Fri, 4 Sep 2015 15:33:36 -0700 Subject: [PATCH 034/514] more justin808 -> shakacode conversions --- CHANGELOG.md | 2 +- README.md | 6 +++--- app/views/layouts/application.html.erb | 2 +- client/package.json | 6 +++--- client/webpack.hot.config.js | 2 +- package.json | 6 +++--- 6 files changed, 12 insertions(+), 12 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index e76a5b4a..948411bf 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,4 +5,4 @@ v1.1 - Sunday, March 22, 2015 This is out of date. -See: [pull requests](https://github.com/justin808/react-webpack-rails-tutorial/pulls?utf8=%E2%9C%93&q=is%3Apr) +See: [pull requests](https://github.com/shakacode/react-webpack-rails-tutorial/pulls?utf8=%E2%9C%93&q=is%3Apr) diff --git a/README.md b/README.md index 7a5a3d97..2f803a6f 100644 --- a/README.md +++ b/README.md @@ -5,7 +5,7 @@ By Justin Gordon and the Shaka Code Team, http://www.railsonmaui.com - If you came to here from the blog article, this example project has evolved. - See [pull requests](https://github.com/justin808/react-webpack-rails-tutorial/pulls?utf8=%E2%9C%93&q=is%3Apr). + See [pull requests](https://github.com/shakacode/react-webpack-rails-tutorial/pulls?utf8=%E2%9C%93&q=is%3Apr). - If this work interests you and you are looking for full or part-time remote work, please [click here](http://forum.railsonmaui.com/t/railsonmaui-is-hiring-and-partnering-part-time-remote-is-ok/156). - Please email us at [justin@railsonmaui.com](mailto:justin@railsonmaui.com) if you have a ReactJs + @@ -13,7 +13,7 @@ By Justin Gordon and the Shaka Code Team, http://www.railsonmaui.com - Please file issues for problems and feature requests. - Pull requests are welcome! (and a great way to get on the team) - Feel free to open discussions at [forum.railsonmaui.com](http://www.forum.railsonmaui.com). -- We now have a [gitter chat room for this topic](https://gitter.im/justin808/react-webpack-rails-tutorial). +- We now have a [gitter chat room for this topic](https://gitter.im/shakacode/react-webpack-rails-tutorial). - Check out the [react_on_rails gem](https://github.com/shakacode/react_on_rails) for easy webpack integration. 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/) @@ -59,7 +59,7 @@ See package.json and Gemfile for versions # Basic Setup 1. Be sure that you have Node installed. I use [nvm](https://github.com/creationix/nvm), with node version `v0.12.7`. See this article [Updating and using nvm](http://forum.railsonmaui.com/t/updating-and-using-nvm/293). -1. `git clone git@github.com:justin808/react-webpack-rails-tutorial.git` +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.2 1. Check that you're using the right version of node. Run `nvm list` to check. diff --git a/app/views/layouts/application.html.erb b/app/views/layouts/application.html.erb index 30a01988..b47b9b94 100644 --- a/app/views/layouts/application.html.erb +++ b/app/views/layouts/application.html.erb @@ -25,7 +25,7 @@
  • React Demo
  • <%= link_to "Classic Rails", comments_path %>
  • <%= link_to "by Justin Gordon, www.railsonmaui.com", "http://www.railsonmaui.com" %>
  • -
  • <%= link_to "Source on Github", "https://github.com/justin808/react-webpack-rails-tutorial" %>
  • +
  • <%= link_to "Source on Github", "https://github.com/shakacode/react-webpack-rails-tutorial" %>
  • <%= link_to "Tutorial Article", "http://www.railsonmaui.com/blog/2014/10/03/integrating-webpack-and-the-es6-transpiler-into-an-existing-rails-project/" %>
  • <%= link_to "Forum Discussion", "http://forum.railsonmaui.com/t/fast-rich-client-rails-development-with-webpack-and-the-es6-transpiler/82/22" %>
  • diff --git a/client/package.json b/client/package.json index 047a15e3..1682a21b 100644 --- a/client/package.json +++ b/client/package.json @@ -8,7 +8,7 @@ }, "repository": { "type": "git", - "url": "https://github.com/justin808/react-webpack-rails-tutorial.git" + "url": "https://github.com/shakacode/react-webpack-rails-tutorial.git" }, "keywords": [ "react", @@ -19,9 +19,9 @@ "author": "justin808", "license": "MIT", "bugs": { - "url": "https://github.com/justin808/react-webpack-rails-tutorial/issues" + "url": "https://github.com/shakacode/react-webpack-rails-tutorial/issues" }, - "homepage": "https://github.com/justin808/react-webpack-rails-tutorial", + "homepage": "https://github.com/shakacode/react-webpack-rails-tutorial", "dependencies": { "babel-core": "^5.8.20", "babel-loader": "^5.3.2", diff --git a/client/webpack.hot.config.js b/client/webpack.hot.config.js index 8191a36b..71c10331 100644 --- a/client/webpack.hot.config.js +++ b/client/webpack.hot.config.js @@ -6,7 +6,7 @@ const config = require('./webpack.common.config'); const webpack = require('webpack'); // We're using the bootstrap-sass loader. -// See: https://github.com/justin808/bootstrap-sass-loader +// See: https://github.com/shakacode/bootstrap-sass-loader config.entry.push('webpack-dev-server/client?http://localhost:3000', 'webpack/hot/dev-server', './scripts/webpack_only', diff --git a/package.json b/package.json index 24309c12..21ffb2eb 100644 --- a/package.json +++ b/package.json @@ -13,7 +13,7 @@ }, "repository": { "type": "git", - "url": "https://github.com/justin808/react-webpack-rails-tutorial.git" + "url": "https://github.com/shakacode/react-webpack-rails-tutorial.git" }, "keywords": [ "react", @@ -24,8 +24,8 @@ "author": "justin808", "license": "MIT", "bugs": { - "url": "https://github.com/justin808/react-webpack-rails-tutorial/issues" + "url": "https://github.com/shakacode/react-webpack-rails-tutorial/issues" }, - "homepage": "https://github.com/justin808/react-webpack-rails-tutorial", + "homepage": "https://github.com/shakacode/react-webpack-rails-tutorial", "dependencies": {} } From b5b085e407b4c38343a274432c1a980a2b55035b Mon Sep 17 00:00:00 2001 From: dylangrafmyre Date: Fri, 4 Sep 2015 16:09:21 -1000 Subject: [PATCH 035/514] Update npm shrinkwrap for whathg-fetch --- client/npm-shrinkwrap.json | 1746 ------------------------------------ 1 file changed, 1746 deletions(-) delete mode 100644 client/npm-shrinkwrap.json diff --git a/client/npm-shrinkwrap.json b/client/npm-shrinkwrap.json deleted file mode 100644 index ec659672..00000000 --- a/client/npm-shrinkwrap.json +++ /dev/null @@ -1,1746 +0,0 @@ -{ - "name": "react-webpack-rails-tutorial", - "version": "1.1.0", - "dependencies": { - "babel-core": { - "version": "5.8.23", - "from": "babel-core@>=5.8.20 <6.0.0", - "resolved": "https://registry.npmjs.org/babel-core/-/babel-core-5.8.23.tgz", - "dependencies": { - "babel-plugin-constant-folding": { - "version": "1.0.1", - "from": "babel-plugin-constant-folding@>=1.0.1 <2.0.0", - "resolved": "https://registry.npmjs.org/babel-plugin-constant-folding/-/babel-plugin-constant-folding-1.0.1.tgz" - }, - "babel-plugin-dead-code-elimination": { - "version": "1.0.2", - "from": "babel-plugin-dead-code-elimination@>=1.0.2 <2.0.0", - "resolved": "https://registry.npmjs.org/babel-plugin-dead-code-elimination/-/babel-plugin-dead-code-elimination-1.0.2.tgz" - }, - "babel-plugin-eval": { - "version": "1.0.1", - "from": "babel-plugin-eval@>=1.0.1 <2.0.0", - "resolved": "https://registry.npmjs.org/babel-plugin-eval/-/babel-plugin-eval-1.0.1.tgz" - }, - "babel-plugin-inline-environment-variables": { - "version": "1.0.1", - "from": "babel-plugin-inline-environment-variables@>=1.0.1 <2.0.0", - "resolved": "https://registry.npmjs.org/babel-plugin-inline-environment-variables/-/babel-plugin-inline-environment-variables-1.0.1.tgz" - }, - "babel-plugin-jscript": { - "version": "1.0.4", - "from": "babel-plugin-jscript@>=1.0.4 <2.0.0", - "resolved": "https://registry.npmjs.org/babel-plugin-jscript/-/babel-plugin-jscript-1.0.4.tgz" - }, - "babel-plugin-member-expression-literals": { - "version": "1.0.1", - "from": "babel-plugin-member-expression-literals@>=1.0.1 <2.0.0", - "resolved": "https://registry.npmjs.org/babel-plugin-member-expression-literals/-/babel-plugin-member-expression-literals-1.0.1.tgz" - }, - "babel-plugin-property-literals": { - "version": "1.0.1", - "from": "babel-plugin-property-literals@>=1.0.1 <2.0.0", - "resolved": "https://registry.npmjs.org/babel-plugin-property-literals/-/babel-plugin-property-literals-1.0.1.tgz" - }, - "babel-plugin-proto-to-assign": { - "version": "1.0.4", - "from": "babel-plugin-proto-to-assign@>=1.0.3 <2.0.0", - "resolved": "https://registry.npmjs.org/babel-plugin-proto-to-assign/-/babel-plugin-proto-to-assign-1.0.4.tgz" - }, - "babel-plugin-react-constant-elements": { - "version": "1.0.3", - "from": "babel-plugin-react-constant-elements@>=1.0.3 <2.0.0", - "resolved": "https://registry.npmjs.org/babel-plugin-react-constant-elements/-/babel-plugin-react-constant-elements-1.0.3.tgz" - }, - "babel-plugin-react-display-name": { - "version": "1.0.3", - "from": "babel-plugin-react-display-name@>=1.0.3 <2.0.0", - "resolved": "https://registry.npmjs.org/babel-plugin-react-display-name/-/babel-plugin-react-display-name-1.0.3.tgz" - }, - "babel-plugin-remove-console": { - "version": "1.0.1", - "from": "babel-plugin-remove-console@>=1.0.1 <2.0.0", - "resolved": "https://registry.npmjs.org/babel-plugin-remove-console/-/babel-plugin-remove-console-1.0.1.tgz" - }, - "babel-plugin-remove-debugger": { - "version": "1.0.1", - "from": "babel-plugin-remove-debugger@>=1.0.1 <2.0.0", - "resolved": "https://registry.npmjs.org/babel-plugin-remove-debugger/-/babel-plugin-remove-debugger-1.0.1.tgz" - }, - "babel-plugin-runtime": { - "version": "1.0.7", - "from": "babel-plugin-runtime@>=1.0.7 <2.0.0", - "resolved": "https://registry.npmjs.org/babel-plugin-runtime/-/babel-plugin-runtime-1.0.7.tgz" - }, - "babel-plugin-undeclared-variables-check": { - "version": "1.0.2", - "from": "babel-plugin-undeclared-variables-check@>=1.0.2 <2.0.0", - "resolved": "https://registry.npmjs.org/babel-plugin-undeclared-variables-check/-/babel-plugin-undeclared-variables-check-1.0.2.tgz", - "dependencies": { - "leven": { - "version": "1.0.2", - "from": "leven@>=1.0.2 <2.0.0", - "resolved": "https://registry.npmjs.org/leven/-/leven-1.0.2.tgz" - } - } - }, - "babel-plugin-undefined-to-void": { - "version": "1.1.6", - "from": "babel-plugin-undefined-to-void@>=1.1.6 <2.0.0", - "resolved": "https://registry.npmjs.org/babel-plugin-undefined-to-void/-/babel-plugin-undefined-to-void-1.1.6.tgz" - }, - "babylon": { - "version": "5.8.23", - "from": "babylon@>=5.8.23 <6.0.0", - "resolved": "https://registry.npmjs.org/babylon/-/babylon-5.8.23.tgz" - }, - "bluebird": { - "version": "2.9.34", - "from": "bluebird@>=2.9.33 <3.0.0", - "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-2.9.34.tgz" - }, - "chalk": { - "version": "1.1.1", - "from": "chalk@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.1.tgz", - "dependencies": { - "ansi-styles": { - "version": "2.1.0", - "from": "ansi-styles@>=2.1.0 <3.0.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.1.0.tgz" - }, - "escape-string-regexp": { - "version": "1.0.3", - "from": "escape-string-regexp@>=1.0.2 <2.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.3.tgz" - }, - "has-ansi": { - "version": "2.0.0", - "from": "has-ansi@>=2.0.0 <3.0.0", - "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", - "dependencies": { - "ansi-regex": { - "version": "2.0.0", - "from": "ansi-regex@>=2.0.0 <3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.0.0.tgz" - } - } - }, - "strip-ansi": { - "version": "3.0.0", - "from": "strip-ansi@>=3.0.0 <4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.0.tgz", - "dependencies": { - "ansi-regex": { - "version": "2.0.0", - "from": "ansi-regex@>=2.0.0 <3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.0.0.tgz" - } - } - }, - "supports-color": { - "version": "2.0.0", - "from": "supports-color@>=2.0.0 <3.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz" - } - } - }, - "convert-source-map": { - "version": "1.1.1", - "from": "convert-source-map@>=1.1.0 <2.0.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.1.1.tgz" - }, - "core-js": { - "version": "1.1.3", - "from": "core-js@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-1.1.3.tgz" - }, - "debug": { - "version": "2.2.0", - "from": "debug@>=2.1.1 <3.0.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.2.0.tgz", - "dependencies": { - "ms": { - "version": "0.7.1", - "from": "ms@0.7.1", - "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.1.tgz" - } - } - }, - "detect-indent": { - "version": "3.0.1", - "from": "detect-indent@>=3.0.0 <4.0.0", - "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-3.0.1.tgz", - "dependencies": { - "get-stdin": { - "version": "4.0.1", - "from": "get-stdin@>=4.0.1 <5.0.0", - "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz" - }, - "minimist": { - "version": "1.2.0", - "from": "minimist@>=1.1.0 <2.0.0", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz" - } - } - }, - "esutils": { - "version": "2.0.2", - "from": "esutils@>=2.0.0 <3.0.0", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz" - }, - "fs-readdir-recursive": { - "version": "0.1.2", - "from": "fs-readdir-recursive@>=0.1.0 <0.2.0", - "resolved": "https://registry.npmjs.org/fs-readdir-recursive/-/fs-readdir-recursive-0.1.2.tgz" - }, - "globals": { - "version": "6.4.1", - "from": "globals@>=6.4.0 <7.0.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-6.4.1.tgz" - }, - "home-or-tmp": { - "version": "1.0.0", - "from": "home-or-tmp@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/home-or-tmp/-/home-or-tmp-1.0.0.tgz", - "dependencies": { - "os-tmpdir": { - "version": "1.0.1", - "from": "os-tmpdir@>=1.0.1 <2.0.0", - "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.1.tgz" - }, - "user-home": { - "version": "1.1.1", - "from": "user-home@>=1.1.1 <2.0.0", - "resolved": "https://registry.npmjs.org/user-home/-/user-home-1.1.1.tgz" - } - } - }, - "is-integer": { - "version": "1.0.6", - "from": "is-integer@>=1.0.4 <2.0.0", - "resolved": "https://registry.npmjs.org/is-integer/-/is-integer-1.0.6.tgz", - "dependencies": { - "is-finite": { - "version": "1.0.1", - "from": "is-finite@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.1.tgz", - "dependencies": { - "number-is-nan": { - "version": "1.0.0", - "from": "number-is-nan@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.0.tgz" - } - } - } - } - }, - "js-tokens": { - "version": "1.0.1", - "from": "js-tokens@1.0.1", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-1.0.1.tgz" - }, - "json5": { - "version": "0.4.0", - "from": "json5@>=0.4.0 <0.5.0", - "resolved": "https://registry.npmjs.org/json5/-/json5-0.4.0.tgz" - }, - "line-numbers": { - "version": "0.2.0", - "from": "line-numbers@0.2.0", - "resolved": "https://registry.npmjs.org/line-numbers/-/line-numbers-0.2.0.tgz", - "dependencies": { - "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" - } - } - }, - "lodash": { - "version": "3.10.1", - "from": "lodash@>=3.10.0 <4.0.0", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-3.10.1.tgz" - }, - "minimatch": { - "version": "2.0.10", - "from": "minimatch@>=2.0.3 <3.0.0", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-2.0.10.tgz", - "dependencies": { - "brace-expansion": { - "version": "1.1.0", - "from": "brace-expansion@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.0.tgz", - "dependencies": { - "balanced-match": { - "version": "0.2.0", - "from": "balanced-match@>=0.2.0 <0.3.0", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-0.2.0.tgz" - }, - "concat-map": { - "version": "0.0.1", - "from": "concat-map@0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz" - } - } - } - } - }, - "output-file-sync": { - "version": "1.1.1", - "from": "output-file-sync@>=1.1.0 <2.0.0", - "resolved": "https://registry.npmjs.org/output-file-sync/-/output-file-sync-1.1.1.tgz", - "dependencies": { - "mkdirp": { - "version": "0.5.1", - "from": "mkdirp@>=0.5.1 <0.6.0", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", - "dependencies": { - "minimist": { - "version": "0.0.8", - "from": "minimist@0.0.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz" - } - } - }, - "xtend": { - "version": "4.0.0", - "from": "xtend@>=4.0.0 <5.0.0", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.0.tgz" - } - } - }, - "path-exists": { - "version": "1.0.0", - "from": "path-exists@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-1.0.0.tgz" - }, - "path-is-absolute": { - "version": "1.0.0", - "from": "path-is-absolute@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.0.tgz" - }, - "private": { - "version": "0.1.6", - "from": "private@>=0.1.6 <0.2.0", - "resolved": "https://registry.npmjs.org/private/-/private-0.1.6.tgz" - }, - "regenerator": { - "version": "0.8.35", - "from": "regenerator@0.8.35", - "resolved": "https://registry.npmjs.org/regenerator/-/regenerator-0.8.35.tgz", - "dependencies": { - "commoner": { - "version": "0.10.3", - "from": "commoner@>=0.10.0 <0.11.0", - "resolved": "https://registry.npmjs.org/commoner/-/commoner-0.10.3.tgz", - "dependencies": { - "q": { - "version": "1.1.2", - "from": "q@>=1.1.2 <1.2.0", - "resolved": "https://registry.npmjs.org/q/-/q-1.1.2.tgz" - }, - "commander": { - "version": "2.5.1", - "from": "commander@>=2.5.0 <2.6.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.5.1.tgz" - }, - "graceful-fs": { - "version": "3.0.8", - "from": "graceful-fs@>=3.0.4 <3.1.0", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-3.0.8.tgz" - }, - "glob": { - "version": "4.2.2", - "from": "glob@>=4.2.1 <4.3.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-4.2.2.tgz", - "dependencies": { - "inflight": { - "version": "1.0.4", - "from": "inflight@>=1.0.4 <2.0.0", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.4.tgz", - "dependencies": { - "wrappy": { - "version": "1.0.1", - "from": "wrappy@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.1.tgz" - } - } - }, - "inherits": { - "version": "2.0.1", - "from": "inherits@>=2.0.0 <3.0.0", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz" - }, - "minimatch": { - "version": "1.0.0", - "from": "minimatch@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-1.0.0.tgz", - "dependencies": { - "lru-cache": { - "version": "2.6.5", - "from": "lru-cache@>=2.0.0 <3.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-2.6.5.tgz" - }, - "sigmund": { - "version": "1.0.1", - "from": "sigmund@>=1.0.0 <1.1.0", - "resolved": "https://registry.npmjs.org/sigmund/-/sigmund-1.0.1.tgz" - } - } - }, - "once": { - "version": "1.3.2", - "from": "once@>=1.3.0 <2.0.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.3.2.tgz", - "dependencies": { - "wrappy": { - "version": "1.0.1", - "from": "wrappy@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.1.tgz" - } - } - } - } - }, - "mkdirp": { - "version": "0.5.1", - "from": "mkdirp@>=0.5.0 <0.6.0", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", - "dependencies": { - "minimist": { - "version": "0.0.8", - "from": "minimist@0.0.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz" - } - } - }, - "install": { - "version": "0.1.8", - "from": "install@>=0.1.7 <0.2.0", - "resolved": "https://registry.npmjs.org/install/-/install-0.1.8.tgz" - }, - "iconv-lite": { - "version": "0.4.11", - "from": "iconv-lite@>=0.4.5 <0.5.0", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.11.tgz" - } - } - }, - "defs": { - "version": "1.1.0", - "from": "defs@>=1.1.0 <1.2.0", - "resolved": "https://registry.npmjs.org/defs/-/defs-1.1.0.tgz", - "dependencies": { - "alter": { - "version": "0.2.0", - "from": "alter@>=0.2.0 <0.3.0", - "resolved": "https://registry.npmjs.org/alter/-/alter-0.2.0.tgz", - "dependencies": { - "stable": { - "version": "0.1.5", - "from": "stable@>=0.1.3 <0.2.0", - "resolved": "https://registry.npmjs.org/stable/-/stable-0.1.5.tgz" - } - } - }, - "ast-traverse": { - "version": "0.1.1", - "from": "ast-traverse@>=0.1.1 <0.2.0", - "resolved": "https://registry.npmjs.org/ast-traverse/-/ast-traverse-0.1.1.tgz" - }, - "breakable": { - "version": "1.0.0", - "from": "breakable@>=1.0.0 <1.1.0", - "resolved": "https://registry.npmjs.org/breakable/-/breakable-1.0.0.tgz" - }, - "esprima-fb": { - "version": "8001.1001.0-dev-harmony-fb", - "from": "esprima-fb@>=8001.1001.0-dev-harmony-fb <8001.1002.0", - "resolved": "https://registry.npmjs.org/esprima-fb/-/esprima-fb-8001.1001.0-dev-harmony-fb.tgz" - }, - "simple-fmt": { - "version": "0.1.0", - "from": "simple-fmt@>=0.1.0 <0.2.0", - "resolved": "https://registry.npmjs.org/simple-fmt/-/simple-fmt-0.1.0.tgz" - }, - "simple-is": { - "version": "0.2.0", - "from": "simple-is@>=0.2.0 <0.3.0", - "resolved": "https://registry.npmjs.org/simple-is/-/simple-is-0.2.0.tgz" - }, - "stringmap": { - "version": "0.2.2", - "from": "stringmap@>=0.2.2 <0.3.0", - "resolved": "https://registry.npmjs.org/stringmap/-/stringmap-0.2.2.tgz" - }, - "stringset": { - "version": "0.2.1", - "from": "stringset@>=0.2.1 <0.3.0", - "resolved": "https://registry.npmjs.org/stringset/-/stringset-0.2.1.tgz" - }, - "tryor": { - "version": "0.1.2", - "from": "tryor@>=0.1.2 <0.2.0", - "resolved": "https://registry.npmjs.org/tryor/-/tryor-0.1.2.tgz" - }, - "yargs": { - "version": "1.3.3", - "from": "yargs@>=1.3.2 <1.4.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-1.3.3.tgz" - } - } - }, - "esprima-fb": { - "version": "15001.1.0-dev-harmony-fb", - "from": "esprima-fb@>=15001.1.0-dev-harmony-fb <15001.2.0", - "resolved": "https://registry.npmjs.org/esprima-fb/-/esprima-fb-15001.1.0-dev-harmony-fb.tgz" - }, - "recast": { - "version": "0.10.24", - "from": "recast@0.10.24", - "resolved": "https://registry.npmjs.org/recast/-/recast-0.10.24.tgz", - "dependencies": { - "ast-types": { - "version": "0.8.5", - "from": "ast-types@0.8.5", - "resolved": "https://registry.npmjs.org/ast-types/-/ast-types-0.8.5.tgz" - } - } - }, - "through": { - "version": "2.3.8", - "from": "through@>=2.3.6 <2.4.0", - "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz" - } - } - }, - "regexpu": { - "version": "1.2.0", - "from": "regexpu@>=1.1.2 <2.0.0", - "resolved": "https://registry.npmjs.org/regexpu/-/regexpu-1.2.0.tgz", - "dependencies": { - "recast": { - "version": "0.10.32", - "from": "recast@>=0.10.6 <0.11.0", - "resolved": "https://registry.npmjs.org/recast/-/recast-0.10.32.tgz", - "dependencies": { - "ast-types": { - "version": "0.8.11", - "from": "ast-types@0.8.11", - "resolved": "https://registry.npmjs.org/ast-types/-/ast-types-0.8.11.tgz" - } - } - }, - "regenerate": { - "version": "1.2.1", - "from": "regenerate@>=1.2.1 <2.0.0", - "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.2.1.tgz" - }, - "regjsgen": { - "version": "0.2.0", - "from": "regjsgen@>=0.2.0 <0.3.0", - "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.2.0.tgz" - }, - "regjsparser": { - "version": "0.1.5", - "from": "regjsparser@>=0.1.4 <0.2.0", - "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.1.5.tgz", - "dependencies": { - "jsesc": { - "version": "0.5.0", - "from": "jsesc@>=0.5.0 <0.6.0", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz" - } - } - } - } - }, - "repeating": { - "version": "1.1.3", - "from": "repeating@>=1.1.2 <2.0.0", - "resolved": "https://registry.npmjs.org/repeating/-/repeating-1.1.3.tgz", - "dependencies": { - "is-finite": { - "version": "1.0.1", - "from": "is-finite@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.1.tgz", - "dependencies": { - "number-is-nan": { - "version": "1.0.0", - "from": "number-is-nan@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.0.tgz" - } - } - } - } - }, - "resolve": { - "version": "1.1.6", - "from": "resolve@>=1.1.6 <2.0.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.1.6.tgz" - }, - "shebang-regex": { - "version": "1.0.0", - "from": "shebang-regex@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz" - }, - "slash": { - "version": "1.0.0", - "from": "slash@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz" - }, - "source-map": { - "version": "0.4.4", - "from": "source-map@>=0.4.0 <0.5.0", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz", - "dependencies": { - "amdefine": { - "version": "1.0.0", - "from": "amdefine@>=0.0.4", - "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.0.tgz" - } - } - }, - "source-map-support": { - "version": "0.2.10", - "from": "source-map-support@>=0.2.10 <0.3.0", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.2.10.tgz", - "dependencies": { - "source-map": { - "version": "0.1.32", - "from": "source-map@0.1.32", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.1.32.tgz", - "dependencies": { - "amdefine": { - "version": "1.0.0", - "from": "amdefine@>=0.0.4", - "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.0.tgz" - } - } - } - } - }, - "to-fast-properties": { - "version": "1.0.1", - "from": "to-fast-properties@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.1.tgz" - }, - "trim-right": { - "version": "1.0.1", - "from": "trim-right@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/trim-right/-/trim-right-1.0.1.tgz" - }, - "try-resolve": { - "version": "1.0.1", - "from": "try-resolve@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/try-resolve/-/try-resolve-1.0.1.tgz" - } - } - }, - "babel-loader": { - "version": "5.3.2", - "from": "babel-loader@>=5.3.2 <6.0.0", - "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-5.3.2.tgz", - "dependencies": { - "object-assign": { - "version": "3.0.0", - "from": "object-assign@>=3.0.0 <4.0.0", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-3.0.0.tgz" - } - } - }, - "body-parser": { - "version": "1.13.3", - "from": "body-parser@>=1.13.3 <2.0.0", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.13.3.tgz", - "dependencies": { - "bytes": { - "version": "2.1.0", - "from": "bytes@2.1.0", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-2.1.0.tgz" - }, - "content-type": { - "version": "1.0.1", - "from": "content-type@>=1.0.1 <1.1.0", - "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.1.tgz" - }, - "debug": { - "version": "2.2.0", - "from": "debug@>=2.2.0 <2.3.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.2.0.tgz", - "dependencies": { - "ms": { - "version": "0.7.1", - "from": "ms@0.7.1", - "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.1.tgz" - } - } - }, - "depd": { - "version": "1.0.1", - "from": "depd@>=1.0.1 <1.1.0", - "resolved": "https://registry.npmjs.org/depd/-/depd-1.0.1.tgz" - }, - "http-errors": { - "version": "1.3.1", - "from": "http-errors@>=1.3.1 <1.4.0", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.3.1.tgz", - "dependencies": { - "inherits": { - "version": "2.0.1", - "from": "inherits@>=2.0.1 <2.1.0", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz" - }, - "statuses": { - "version": "1.2.1", - "from": "statuses@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.2.1.tgz" - } - } - }, - "iconv-lite": { - "version": "0.4.11", - "from": "iconv-lite@0.4.11", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.11.tgz" - }, - "on-finished": { - "version": "2.3.0", - "from": "on-finished@>=2.3.0 <2.4.0", - "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", - "dependencies": { - "ee-first": { - "version": "1.1.1", - "from": "ee-first@1.1.1", - "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz" - } - } - }, - "qs": { - "version": "4.0.0", - "from": "qs@4.0.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-4.0.0.tgz" - }, - "raw-body": { - "version": "2.1.2", - "from": "raw-body@>=2.1.2 <2.2.0", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.1.2.tgz", - "dependencies": { - "unpipe": { - "version": "1.0.0", - "from": "unpipe@>=1.0.0 <1.1.0", - "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz" - } - } - }, - "type-is": { - "version": "1.6.8", - "from": "type-is@>=1.6.6 <1.7.0", - "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.8.tgz", - "dependencies": { - "media-typer": { - "version": "0.3.0", - "from": "media-typer@0.3.0", - "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz" - }, - "mime-types": { - "version": "2.1.6", - "from": "mime-types@>=2.1.4 <2.2.0", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.6.tgz", - "dependencies": { - "mime-db": { - "version": "1.18.0", - "from": "mime-db@>=1.18.0 <1.19.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.18.0.tgz" - } - } - } - } - } - } - }, - "es5-shim": { - "version": "4.1.11", - "from": "es5-shim@>=4.1.10 <5.0.0", - "resolved": "https://registry.npmjs.org/es5-shim/-/es5-shim-4.1.11.tgz" - }, - "es6-promise": { - "version": "2.3.0", - "from": "es6-promise@>=2.3.0 <3.0.0", - "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-2.3.0.tgz" - }, - "immutable": { - "version": "3.7.5", - "from": "immutable@>=3.7.4 <4.0.0", - "resolved": "https://registry.npmjs.org/immutable/-/immutable-3.7.5.tgz" - }, - "imports-loader": { - "version": "0.6.4", - "from": "imports-loader@>=0.6.4 <0.7.0", - "resolved": "https://registry.npmjs.org/imports-loader/-/imports-loader-0.6.4.tgz", - "dependencies": { - "source-map": { - "version": "0.1.43", - "from": "source-map@>=0.1.0 <0.2.0", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.1.43.tgz", - "dependencies": { - "amdefine": { - "version": "1.0.0", - "from": "amdefine@>=0.0.4", - "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.0.tgz" - } - } - } - } - }, - "jquery": { - "version": "2.1.4", - "from": "jquery@>=2.1.4 <3.0.0", - "resolved": "https://registry.npmjs.org/jquery/-/jquery-2.1.4.tgz" - }, - "loader-utils": { - "version": "0.2.11", - "from": "loader-utils@>=0.2.11 <0.3.0", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-0.2.11.tgz", - "dependencies": { - "big.js": { - "version": "3.1.3", - "from": "big.js@>=3.0.2 <4.0.0", - "resolved": "https://registry.npmjs.org/big.js/-/big.js-3.1.3.tgz" - }, - "json5": { - "version": "0.4.0", - "from": "json5@>=0.4.0 <0.5.0", - "resolved": "https://registry.npmjs.org/json5/-/json5-0.4.0.tgz" - } - } - }, - "marked": { - "version": "0.3.5", - "from": "marked@>=0.3.5 <0.4.0", - "resolved": "https://registry.npmjs.org/marked/-/marked-0.3.5.tgz" - }, - "react": { - "version": "0.13.3", - "from": "react@>=0.13.3 <0.14.0", - "resolved": "https://registry.npmjs.org/react/-/react-0.13.3.tgz", - "dependencies": { - "envify": { - "version": "3.4.0", - "from": "envify@>=3.0.0 <4.0.0", - "resolved": "https://registry.npmjs.org/envify/-/envify-3.4.0.tgz", - "dependencies": { - "through": { - "version": "2.3.8", - "from": "through@>=2.3.4 <2.4.0", - "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz" - }, - "jstransform": { - "version": "10.1.0", - "from": "jstransform@>=10.0.1 <11.0.0", - "resolved": "https://registry.npmjs.org/jstransform/-/jstransform-10.1.0.tgz", - "dependencies": { - "base62": { - "version": "0.1.1", - "from": "base62@0.1.1", - "resolved": "https://registry.npmjs.org/base62/-/base62-0.1.1.tgz" - }, - "esprima-fb": { - "version": "13001.1001.0-dev-harmony-fb", - "from": "esprima-fb@13001.1001.0-dev-harmony-fb", - "resolved": "https://registry.npmjs.org/esprima-fb/-/esprima-fb-13001.1001.0-dev-harmony-fb.tgz" - }, - "source-map": { - "version": "0.1.31", - "from": "source-map@0.1.31", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.1.31.tgz", - "dependencies": { - "amdefine": { - "version": "1.0.0", - "from": "amdefine@>=0.0.4", - "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.0.tgz" - } - } - } - } - } - } - } - } - }, - "react-bootstrap": { - "version": "0.24.5", - "from": "react-bootstrap@>=0.24.3 <0.25.0", - "resolved": "https://registry.npmjs.org/react-bootstrap/-/react-bootstrap-0.24.5.tgz", - "dependencies": { - "babel-runtime": { - "version": "5.8.20", - "from": "babel-runtime@>=5.8.19 <6.0.0", - "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-5.8.20.tgz", - "dependencies": { - "core-js": { - "version": "1.1.3", - "from": "core-js@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-1.1.3.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" - }, - "classnames": { - "version": "2.1.3", - "from": "classnames@>=2.1.3 <3.0.0", - "resolved": "https://registry.npmjs.org/classnames/-/classnames-2.1.3.tgz" - } - } - }, - "react-redux": { - "version": "0.2.2", - "from": "react-redux@>=0.2.2 <0.3.0", - "resolved": "https://registry.npmjs.org/react-redux/-/react-redux-0.2.2.tgz", - "dependencies": { - "invariant": { - "version": "2.1.0", - "from": "invariant@>=2.0.0 <3.0.0", - "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.1.0.tgz", - "dependencies": { - "envify": { - "version": "3.4.0", - "from": "envify@>=3.0.0 <4.0.0", - "resolved": "https://registry.npmjs.org/envify/-/envify-3.4.0.tgz", - "dependencies": { - "through": { - "version": "2.3.8", - "from": "through@>=2.3.4 <2.4.0", - "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz" - }, - "jstransform": { - "version": "10.1.0", - "from": "jstransform@>=10.0.1 <11.0.0", - "resolved": "https://registry.npmjs.org/jstransform/-/jstransform-10.1.0.tgz", - "dependencies": { - "base62": { - "version": "0.1.1", - "from": "base62@0.1.1", - "resolved": "https://registry.npmjs.org/base62/-/base62-0.1.1.tgz" - }, - "esprima-fb": { - "version": "13001.1001.0-dev-harmony-fb", - "from": "esprima-fb@13001.1001.0-dev-harmony-fb", - "resolved": "https://registry.npmjs.org/esprima-fb/-/esprima-fb-13001.1001.0-dev-harmony-fb.tgz" - }, - "source-map": { - "version": "0.1.31", - "from": "source-map@0.1.31", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.1.31.tgz", - "dependencies": { - "amdefine": { - "version": "1.0.0", - "from": "amdefine@>=0.0.4", - "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.0.tgz" - } - } - } - } - } - } - } - } - } - } - }, - "redux": { - "version": "1.0.1", - "from": "redux@>=1.0.1 <2.0.0", - "resolved": "https://registry.npmjs.org/redux/-/redux-1.0.1.tgz" - }, - "redux-promise": { - "version": "0.5.0", - "from": "redux-promise@>=0.5.0 <0.6.0", - "resolved": "https://registry.npmjs.org/redux-promise/-/redux-promise-0.5.0.tgz", - "dependencies": { - "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", - "dependencies": { - "lodash.isplainobject": { - "version": "3.2.0", - "from": "lodash.isplainobject@>=3.2.0 <4.0.0", - "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-3.2.0.tgz", - "dependencies": { - "lodash._basefor": { - "version": "3.0.2", - "from": "lodash._basefor@>=3.0.0 <4.0.0", - "resolved": "https://registry.npmjs.org/lodash._basefor/-/lodash._basefor-3.0.2.tgz" - }, - "lodash.isarguments": { - "version": "3.0.4", - "from": "lodash.isarguments@>=3.0.0 <4.0.0", - "resolved": "https://registry.npmjs.org/lodash.isarguments/-/lodash.isarguments-3.0.4.tgz" - }, - "lodash.keysin": { - "version": "3.0.8", - "from": "lodash.keysin@>=3.0.0 <4.0.0", - "resolved": "https://registry.npmjs.org/lodash.keysin/-/lodash.keysin-3.0.8.tgz", - "dependencies": { - "lodash.isarray": { - "version": "3.0.4", - "from": "lodash.isarray@>=3.0.0 <4.0.0", - "resolved": "https://registry.npmjs.org/lodash.isarray/-/lodash.isarray-3.0.4.tgz" - } - } - } - } - } - } - } - } - }, - "redux-thunk": { - "version": "0.1.0", - "from": "redux-thunk@>=0.1.0 <0.2.0", - "resolved": "https://registry.npmjs.org/redux-thunk/-/redux-thunk-0.1.0.tgz" - }, - "sleep": { - "version": "3.0.0", - "from": "sleep@>=3.0.0 <4.0.0", - "resolved": "https://registry.npmjs.org/sleep/-/sleep-3.0.0.tgz", - "dependencies": { - "nan": { - "version": "2.0.8", - "from": "nan@>=2.0.0", - "resolved": "https://registry.npmjs.org/nan/-/nan-2.0.8.tgz" - } - } - }, - "webpack": { - "version": "1.12.1", - "from": "webpack@>=1.10.5 <2.0.0", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-1.12.1.tgz", - "dependencies": { - "async": { - "version": "1.4.2", - "from": "async@>=1.3.0 <2.0.0", - "resolved": "https://registry.npmjs.org/async/-/async-1.4.2.tgz" - }, - "clone": { - "version": "1.0.2", - "from": "clone@>=1.0.2 <2.0.0", - "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.2.tgz" - }, - "enhanced-resolve": { - "version": "0.9.0", - "from": "enhanced-resolve@>=0.9.0 <0.10.0", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-0.9.0.tgz", - "dependencies": { - "graceful-fs": { - "version": "3.0.8", - "from": "graceful-fs@>=3.0.5 <4.0.0", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-3.0.8.tgz" - } - } - }, - "esprima": { - "version": "2.6.0", - "from": "esprima@>=2.5.0 <3.0.0", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-2.6.0.tgz" - }, - "interpret": { - "version": "0.6.5", - "from": "interpret@>=0.6.4 <0.7.0", - "resolved": "https://registry.npmjs.org/interpret/-/interpret-0.6.5.tgz" - }, - "memory-fs": { - "version": "0.2.0", - "from": "memory-fs@>=0.2.0 <0.3.0", - "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.2.0.tgz" - }, - "mkdirp": { - "version": "0.5.1", - "from": "mkdirp@>=0.5.0 <0.6.0", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", - "dependencies": { - "minimist": { - "version": "0.0.8", - "from": "minimist@0.0.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz" - } - } - }, - "node-libs-browser": { - "version": "0.5.2", - "from": "node-libs-browser@>=0.4.0 <=0.6.0", - "resolved": "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-0.5.2.tgz", - "dependencies": { - "assert": { - "version": "1.3.0", - "from": "assert@>=1.1.1 <2.0.0", - "resolved": "https://registry.npmjs.org/assert/-/assert-1.3.0.tgz" - }, - "browserify-zlib": { - "version": "0.1.4", - "from": "browserify-zlib@>=0.1.4 <0.2.0", - "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.1.4.tgz", - "dependencies": { - "pako": { - "version": "0.2.7", - "from": "pako@>=0.2.0 <0.3.0", - "resolved": "https://registry.npmjs.org/pako/-/pako-0.2.7.tgz" - } - } - }, - "buffer": { - "version": "3.4.3", - "from": "buffer@>=3.0.3 <4.0.0", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-3.4.3.tgz", - "dependencies": { - "base64-js": { - "version": "0.0.8", - "from": "base64-js@0.0.8", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-0.0.8.tgz" - }, - "ieee754": { - "version": "1.1.6", - "from": "ieee754@>=1.1.4 <2.0.0", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.6.tgz" - }, - "is-array": { - "version": "1.0.1", - "from": "is-array@>=1.0.1 <2.0.0", - "resolved": "https://registry.npmjs.org/is-array/-/is-array-1.0.1.tgz" - } - } - }, - "console-browserify": { - "version": "1.1.0", - "from": "console-browserify@>=1.1.0 <2.0.0", - "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.1.0.tgz", - "dependencies": { - "date-now": { - "version": "0.1.4", - "from": "date-now@>=0.1.4 <0.2.0", - "resolved": "https://registry.npmjs.org/date-now/-/date-now-0.1.4.tgz" - } - } - }, - "constants-browserify": { - "version": "0.0.1", - "from": "constants-browserify@0.0.1", - "resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-0.0.1.tgz" - }, - "crypto-browserify": { - "version": "3.2.8", - "from": "crypto-browserify@>=3.2.6 <3.3.0", - "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.2.8.tgz", - "dependencies": { - "pbkdf2-compat": { - "version": "2.0.1", - "from": "pbkdf2-compat@2.0.1", - "resolved": "https://registry.npmjs.org/pbkdf2-compat/-/pbkdf2-compat-2.0.1.tgz" - }, - "ripemd160": { - "version": "0.2.0", - "from": "ripemd160@0.2.0", - "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-0.2.0.tgz" - }, - "sha.js": { - "version": "2.2.6", - "from": "sha.js@2.2.6", - "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.2.6.tgz" - } - } - }, - "domain-browser": { - "version": "1.1.4", - "from": "domain-browser@>=1.1.1 <2.0.0", - "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.1.4.tgz" - }, - "events": { - "version": "1.0.2", - "from": "events@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/events/-/events-1.0.2.tgz" - }, - "http-browserify": { - "version": "1.7.0", - "from": "http-browserify@>=1.3.2 <2.0.0", - "resolved": "https://registry.npmjs.org/http-browserify/-/http-browserify-1.7.0.tgz", - "dependencies": { - "Base64": { - "version": "0.2.1", - "from": "Base64@>=0.2.0 <0.3.0", - "resolved": "https://registry.npmjs.org/Base64/-/Base64-0.2.1.tgz" - }, - "inherits": { - "version": "2.0.1", - "from": "inherits@>=2.0.1 <2.1.0", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz" - } - } - }, - "https-browserify": { - "version": "0.0.0", - "from": "https-browserify@0.0.0", - "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-0.0.0.tgz" - }, - "os-browserify": { - "version": "0.1.2", - "from": "os-browserify@>=0.1.2 <0.2.0", - "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.1.2.tgz" - }, - "path-browserify": { - "version": "0.0.0", - "from": "path-browserify@0.0.0", - "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.0.tgz" - }, - "process": { - "version": "0.11.1", - "from": "process@>=0.11.0 <0.12.0", - "resolved": "https://registry.npmjs.org/process/-/process-0.11.1.tgz" - }, - "punycode": { - "version": "1.3.2", - "from": "punycode@>=1.2.4 <2.0.0", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz" - }, - "querystring-es3": { - "version": "0.2.1", - "from": "querystring-es3@>=0.2.0 <0.3.0", - "resolved": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz" - }, - "readable-stream": { - "version": "1.1.13", - "from": "readable-stream@>=1.1.13 <2.0.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.13.tgz", - "dependencies": { - "core-util-is": { - "version": "1.0.1", - "from": "core-util-is@>=1.0.0 <1.1.0", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.1.tgz" - }, - "isarray": { - "version": "0.0.1", - "from": "isarray@0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz" - }, - "inherits": { - "version": "2.0.1", - "from": "inherits@>=2.0.1 <2.1.0", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz" - } - } - }, - "stream-browserify": { - "version": "1.0.0", - "from": "stream-browserify@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-1.0.0.tgz", - "dependencies": { - "inherits": { - "version": "2.0.1", - "from": "inherits@>=2.0.1 <2.1.0", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz" - } - } - }, - "string_decoder": { - "version": "0.10.31", - "from": "string_decoder@>=0.10.25 <0.11.0", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz" - }, - "timers-browserify": { - "version": "1.4.1", - "from": "timers-browserify@>=1.0.1 <2.0.0", - "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-1.4.1.tgz" - }, - "tty-browserify": { - "version": "0.0.0", - "from": "tty-browserify@0.0.0", - "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.0.tgz" - }, - "url": { - "version": "0.10.3", - "from": "url@>=0.10.1 <0.11.0", - "resolved": "https://registry.npmjs.org/url/-/url-0.10.3.tgz", - "dependencies": { - "querystring": { - "version": "0.2.0", - "from": "querystring@0.2.0", - "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz" - } - } - }, - "util": { - "version": "0.10.3", - "from": "util@>=0.10.3 <0.11.0", - "resolved": "https://registry.npmjs.org/util/-/util-0.10.3.tgz", - "dependencies": { - "inherits": { - "version": "2.0.1", - "from": "inherits@2.0.1", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz" - } - } - }, - "vm-browserify": { - "version": "0.0.4", - "from": "vm-browserify@0.0.4", - "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-0.0.4.tgz", - "dependencies": { - "indexof": { - "version": "0.0.1", - "from": "indexof@0.0.1", - "resolved": "https://registry.npmjs.org/indexof/-/indexof-0.0.1.tgz" - } - } - } - } - }, - "optimist": { - "version": "0.6.1", - "from": "optimist@>=0.6.0 <0.7.0", - "resolved": "https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz", - "dependencies": { - "wordwrap": { - "version": "0.0.3", - "from": "wordwrap@>=0.0.2 <0.1.0", - "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.3.tgz" - }, - "minimist": { - "version": "0.0.10", - "from": "minimist@>=0.0.1 <0.1.0", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.10.tgz" - } - } - }, - "supports-color": { - "version": "3.1.1", - "from": "supports-color@>=3.1.0 <4.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.1.1.tgz", - "dependencies": { - "has-flag": { - "version": "1.0.0", - "from": "has-flag@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz" - } - } - }, - "tapable": { - "version": "0.1.9", - "from": "tapable@>=0.1.8 <0.2.0", - "resolved": "https://registry.npmjs.org/tapable/-/tapable-0.1.9.tgz" - }, - "uglify-js": { - "version": "2.4.24", - "from": "uglify-js@>=2.4.24 <2.5.0", - "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.4.24.tgz", - "dependencies": { - "async": { - "version": "0.2.10", - "from": "async@>=0.2.6 <0.3.0", - "resolved": "https://registry.npmjs.org/async/-/async-0.2.10.tgz" - }, - "source-map": { - "version": "0.1.34", - "from": "source-map@0.1.34", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.1.34.tgz", - "dependencies": { - "amdefine": { - "version": "1.0.0", - "from": "amdefine@>=0.0.4", - "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.0.tgz" - } - } - }, - "uglify-to-browserify": { - "version": "1.0.2", - "from": "uglify-to-browserify@>=1.0.0 <1.1.0", - "resolved": "https://registry.npmjs.org/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz" - }, - "yargs": { - "version": "3.5.4", - "from": "yargs@>=3.5.4 <3.6.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-3.5.4.tgz", - "dependencies": { - "camelcase": { - "version": "1.2.1", - "from": "camelcase@>=1.0.2 <2.0.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-1.2.1.tgz" - }, - "decamelize": { - "version": "1.0.0", - "from": "decamelize@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.0.0.tgz" - }, - "window-size": { - "version": "0.1.0", - "from": "window-size@0.1.0", - "resolved": "https://registry.npmjs.org/window-size/-/window-size-0.1.0.tgz" - }, - "wordwrap": { - "version": "0.0.2", - "from": "wordwrap@0.0.2", - "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.2.tgz" - } - } - } - } - }, - "watchpack": { - "version": "0.2.8", - "from": "watchpack@>=0.2.1 <0.3.0", - "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-0.2.8.tgz", - "dependencies": { - "async": { - "version": "0.9.2", - "from": "async@>=0.9.0 <0.10.0", - "resolved": "https://registry.npmjs.org/async/-/async-0.9.2.tgz" - }, - "chokidar": { - "version": "1.0.5", - "from": "chokidar@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-1.0.5.tgz", - "dependencies": { - "anymatch": { - "version": "1.3.0", - "from": "anymatch@>=1.1.0 <2.0.0", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-1.3.0.tgz", - "dependencies": { - "micromatch": { - "version": "2.2.0", - "from": "micromatch@>=2.1.5 <3.0.0", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-2.2.0.tgz", - "dependencies": { - "arr-diff": { - "version": "1.1.0", - "from": "arr-diff@>=1.0.1 <2.0.0", - "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-1.1.0.tgz", - "dependencies": { - "arr-flatten": { - "version": "1.0.1", - "from": "arr-flatten@>=1.0.1 <2.0.0", - "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.0.1.tgz" - }, - "array-slice": { - "version": "0.2.3", - "from": "array-slice@>=0.2.3 <0.3.0", - "resolved": "https://registry.npmjs.org/array-slice/-/array-slice-0.2.3.tgz" - } - } - }, - "array-unique": { - "version": "0.2.1", - "from": "array-unique@>=0.2.1 <0.3.0", - "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.2.1.tgz" - }, - "braces": { - "version": "1.8.1", - "from": "braces@>=1.8.0 <2.0.0", - "resolved": "https://registry.npmjs.org/braces/-/braces-1.8.1.tgz", - "dependencies": { - "expand-range": { - "version": "1.8.1", - "from": "expand-range@>=1.8.1 <2.0.0", - "resolved": "https://registry.npmjs.org/expand-range/-/expand-range-1.8.1.tgz", - "dependencies": { - "fill-range": { - "version": "2.2.2", - "from": "fill-range@>=2.1.0 <3.0.0", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-2.2.2.tgz", - "dependencies": { - "is-number": { - "version": "1.1.2", - "from": "is-number@>=1.1.2 <2.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-1.1.2.tgz" - }, - "isobject": { - "version": "1.0.2", - "from": "isobject@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-1.0.2.tgz" - }, - "randomatic": { - "version": "1.1.0", - "from": "randomatic@>=1.1.0 <2.0.0", - "resolved": "https://registry.npmjs.org/randomatic/-/randomatic-1.1.0.tgz" - }, - "repeat-string": { - "version": "1.5.2", - "from": "repeat-string@>=1.5.2 <2.0.0", - "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.5.2.tgz" - } - } - } - } - }, - "lazy-cache": { - "version": "0.2.3", - "from": "lazy-cache@>=0.2.3 <0.3.0", - "resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-0.2.3.tgz" - }, - "preserve": { - "version": "0.2.0", - "from": "preserve@>=0.2.0 <0.3.0", - "resolved": "https://registry.npmjs.org/preserve/-/preserve-0.2.0.tgz" - }, - "repeat-element": { - "version": "1.1.2", - "from": "repeat-element@>=1.1.2 <2.0.0", - "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.2.tgz" - } - } - }, - "expand-brackets": { - "version": "0.1.4", - "from": "expand-brackets@>=0.1.1 <0.2.0", - "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-0.1.4.tgz" - }, - "extglob": { - "version": "0.3.1", - "from": "extglob@>=0.3.0 <0.4.0", - "resolved": "https://registry.npmjs.org/extglob/-/extglob-0.3.1.tgz", - "dependencies": { - "ansi-green": { - "version": "0.1.1", - "from": "ansi-green@>=0.1.1 <0.2.0", - "resolved": "https://registry.npmjs.org/ansi-green/-/ansi-green-0.1.1.tgz", - "dependencies": { - "ansi-wrap": { - "version": "0.1.0", - "from": "ansi-wrap@0.1.0", - "resolved": "https://registry.npmjs.org/ansi-wrap/-/ansi-wrap-0.1.0.tgz" - } - } - }, - "is-extglob": { - "version": "1.0.0", - "from": "is-extglob@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz" - }, - "success-symbol": { - "version": "0.1.0", - "from": "success-symbol@>=0.1.0 <0.2.0", - "resolved": "https://registry.npmjs.org/success-symbol/-/success-symbol-0.1.0.tgz" - } - } - }, - "filename-regex": { - "version": "2.0.0", - "from": "filename-regex@>=2.0.0 <3.0.0", - "resolved": "https://registry.npmjs.org/filename-regex/-/filename-regex-2.0.0.tgz" - }, - "kind-of": { - "version": "1.1.0", - "from": "kind-of@>=1.1.0 <2.0.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-1.1.0.tgz" - }, - "object.omit": { - "version": "1.1.0", - "from": "object.omit@>=1.1.0 <2.0.0", - "resolved": "https://registry.npmjs.org/object.omit/-/object.omit-1.1.0.tgz", - "dependencies": { - "for-own": { - "version": "0.1.3", - "from": "for-own@>=0.1.3 <0.2.0", - "resolved": "https://registry.npmjs.org/for-own/-/for-own-0.1.3.tgz", - "dependencies": { - "for-in": { - "version": "0.1.4", - "from": "for-in@>=0.1.4 <0.2.0", - "resolved": "https://registry.npmjs.org/for-in/-/for-in-0.1.4.tgz" - } - } - }, - "isobject": { - "version": "1.0.2", - "from": "isobject@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-1.0.2.tgz" - } - } - }, - "parse-glob": { - "version": "3.0.2", - "from": "parse-glob@>=3.0.1 <4.0.0", - "resolved": "https://registry.npmjs.org/parse-glob/-/parse-glob-3.0.2.tgz", - "dependencies": { - "glob-base": { - "version": "0.2.0", - "from": "glob-base@>=0.2.0 <0.3.0", - "resolved": "https://registry.npmjs.org/glob-base/-/glob-base-0.2.0.tgz" - }, - "is-dotfile": { - "version": "1.0.1", - "from": "is-dotfile@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/is-dotfile/-/is-dotfile-1.0.1.tgz" - }, - "is-extglob": { - "version": "1.0.0", - "from": "is-extglob@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz" - } - } - }, - "regex-cache": { - "version": "0.4.2", - "from": "regex-cache@>=0.4.2 <0.5.0", - "resolved": "https://registry.npmjs.org/regex-cache/-/regex-cache-0.4.2.tgz", - "dependencies": { - "is-equal-shallow": { - "version": "0.1.3", - "from": "is-equal-shallow@>=0.1.1 <0.2.0", - "resolved": "https://registry.npmjs.org/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz" - }, - "is-primitive": { - "version": "2.0.0", - "from": "is-primitive@>=2.0.0 <3.0.0", - "resolved": "https://registry.npmjs.org/is-primitive/-/is-primitive-2.0.0.tgz" - } - } - } - } - } - } - }, - "arrify": { - "version": "1.0.0", - "from": "arrify@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.0.tgz" - }, - "async-each": { - "version": "0.1.6", - "from": "async-each@>=0.1.5 <0.2.0", - "resolved": "https://registry.npmjs.org/async-each/-/async-each-0.1.6.tgz" - }, - "glob-parent": { - "version": "1.2.0", - "from": "glob-parent@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-1.2.0.tgz" - }, - "is-binary-path": { - "version": "1.0.1", - "from": "is-binary-path@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", - "dependencies": { - "binary-extensions": { - "version": "1.3.1", - "from": "binary-extensions@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.3.1.tgz" - } - } - }, - "is-glob": { - "version": "1.1.3", - "from": "is-glob@>=1.1.3 <2.0.0", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-1.1.3.tgz" - }, - "path-is-absolute": { - "version": "1.0.0", - "from": "path-is-absolute@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.0.tgz" - }, - "readdirp": { - "version": "1.4.0", - "from": "readdirp@>=1.3.0 <2.0.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-1.4.0.tgz", - "dependencies": { - "graceful-fs": { - "version": "4.1.2", - "from": "graceful-fs@>=4.1.2 <4.2.0", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.2.tgz" - }, - "minimatch": { - "version": "0.2.14", - "from": "minimatch@>=0.2.12 <0.3.0", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-0.2.14.tgz", - "dependencies": { - "lru-cache": { - "version": "2.6.5", - "from": "lru-cache@>=2.0.0 <3.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-2.6.5.tgz" - }, - "sigmund": { - "version": "1.0.1", - "from": "sigmund@>=1.0.0 <1.1.0", - "resolved": "https://registry.npmjs.org/sigmund/-/sigmund-1.0.1.tgz" - } - } - }, - "readable-stream": { - "version": "1.0.33", - "from": "readable-stream@>=1.0.26-2 <1.1.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.33.tgz", - "dependencies": { - "core-util-is": { - "version": "1.0.1", - "from": "core-util-is@>=1.0.0 <1.1.0", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.1.tgz" - }, - "isarray": { - "version": "0.0.1", - "from": "isarray@0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz" - }, - "string_decoder": { - "version": "0.10.31", - "from": "string_decoder@>=0.10.0 <0.11.0", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz" - }, - "inherits": { - "version": "2.0.1", - "from": "inherits@>=2.0.1 <2.1.0", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz" - } - } - } - } - }, - "fsevents": { - "version": "0.3.8", - "from": "fsevents@>=0.3.1 <0.4.0", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-0.3.8.tgz", - "dependencies": { - "nan": { - "version": "2.0.8", - "from": "nan@>=2.0.2 <3.0.0", - "resolved": "https://registry.npmjs.org/nan/-/nan-2.0.8.tgz" - } - } - } - } - }, - "graceful-fs": { - "version": "3.0.8", - "from": "graceful-fs@>=3.0.2 <4.0.0", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-3.0.8.tgz" - } - } - }, - "webpack-core": { - "version": "0.6.6", - "from": "webpack-core@>=0.6.0 <0.7.0", - "resolved": "https://registry.npmjs.org/webpack-core/-/webpack-core-0.6.6.tgz", - "dependencies": { - "source-map": { - "version": "0.4.4", - "from": "source-map@>=0.4.1 <0.5.0", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz", - "dependencies": { - "amdefine": { - "version": "1.0.0", - "from": "amdefine@>=0.0.4", - "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.0.tgz" - } - } - }, - "source-list-map": { - "version": "0.1.5", - "from": "source-list-map@>=0.1.0 <0.2.0", - "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-0.1.5.tgz" - } - } - } - } - } - } -} From 9c01fdd2318f984357534d4e418840542764f7e6 Mon Sep 17 00:00:00 2001 From: Scott Bronson Date: Fri, 4 Sep 2015 21:22:44 -0700 Subject: [PATCH 036/514] Make localhost links in README clickable --- README.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 2f803a6f..65971ef8 100644 --- a/README.md +++ b/README.md @@ -67,8 +67,8 @@ See package.json and Gemfile for versions 1. `npm install` 1. `rake db:setup` 1. `foreman start -f Procfile.dev` -1. Open a browser tab to [http://0.0.0.0:4000]() for the Rail app example. -1. Open a browser tab to [http://0.0.0.0:3000]() for the Hot Module Replacement Example. +1. Open a browser tab to http://0.0.0.0:4000 for the Rail app example. +1. Open a browser tab to http://0.0.0.0:3000 for the Hot Module Replacement Example. # Javascript development without Rails using Hot Module Replacement (HMR) @@ -79,7 +79,7 @@ cd client node server.js ``` -Point your browser to [http://0.0.0.0:3000](). +Point your browser to http://0.0.0.0:3000. Save a change to a JSX file and see it update immediately in the browser! Note, any browser state still exists, such as what you've typed in the comments box. @@ -116,7 +116,7 @@ rake db:setup rails s -p 4000 ``` -Now point your browser to [http://0.0.0.0:4000](). +Now point your browser to http://0.0.0.0:4000. Note that it's important to run the Rails server on a different port than the node server. From 72a424bc52fdcf8cec6040c41e2d4e3988d18011 Mon Sep 17 00:00:00 2001 From: Justin Gordon Date: Fri, 4 Sep 2015 21:46:30 -1000 Subject: [PATCH 037/514] Revert "Use fetch instead of $.ajax" --- client/.jscsrc | 3 +- .../actions/CommentActionCreators.js | 12 +++--- .../javascripts/utils/CommentsManager.js | 42 +++++++------------ client/package.json | 3 +- client/webpack.common.config.js | 2 +- 5 files changed, 24 insertions(+), 38 deletions(-) diff --git a/client/.jscsrc b/client/.jscsrc index bb03b57c..0be7eea1 100644 --- a/client/.jscsrc +++ b/client/.jscsrc @@ -1,6 +1,5 @@ { "preset": "airbnb", "fileExtensions": [".js", ".jsx"], - "excludeFiles": ["build/**", "node_modules/**"], - "disallowQuotedKeysInObjects": false + "excludeFiles": ["build/**", "node_modules/**"] } diff --git a/client/assets/javascripts/actions/CommentActionCreators.js b/client/assets/javascripts/actions/CommentActionCreators.js index 9b9b7108..4b4c38e1 100644 --- a/client/assets/javascripts/actions/CommentActionCreators.js +++ b/client/assets/javascripts/actions/CommentActionCreators.js @@ -43,9 +43,10 @@ export function submitCommentFailure(error) { export function fetchComments() { return dispatch => { - return CommentsManager.fetchComments() - .then(comments => dispatch(fetchCommentsSuccess(comments))) - .catch(error => dispatch(fetchCommentsFailure(error))); + return CommentsManager.fetchComments().then( + comments => dispatch(fetchCommentsSuccess(comments)), + error => dispatch(fetchCommentsFailure(error)) + ); }; } @@ -57,8 +58,9 @@ export function submitComment(comment) { return dispatch => { dispatch(incrementAjaxCounter()); return CommentsManager.submitComment(comment) - .then(commentFromServer => dispatch(submitCommentSuccess(commentFromServer))) - .catch(error => dispatch(submitCommentFailure(error))) + .then( + _comment => dispatch(submitCommentSuccess(_comment)), + error => dispatch(submitCommentFailure(error))) .then(() => dispatchDecrementAjaxCounter(dispatch)); }; } diff --git a/client/assets/javascripts/utils/CommentsManager.js b/client/assets/javascripts/utils/CommentsManager.js index c8500c63..4348018c 100644 --- a/client/assets/javascripts/utils/CommentsManager.js +++ b/client/assets/javascripts/utils/CommentsManager.js @@ -1,48 +1,34 @@ -const API_URL = 'comments.json'; - -// fetch won't reject on HTTP error status -// https://github.com/github/fetch#handling-http-error-statuses -function checkStatus(response) { - if (response.status >= 200 && response.status < 300) { - return response; - } - - const error = new Error(response.statusText); - error.response = response; - throw error; -} +import $ from 'jquery'; -function parseJSON(response) { - return response.json(); -} +const API_URL = 'comments.json'; const CommentsManager = { /** * Retrieve comments from server using AJAX call. * - * @returns {Promise} - response of fetch request. + * @returns {Promise} - jqXHR result of ajax call. */ fetchComments() { - return fetch(API_URL).then(checkStatus).then(parseJSON); + return Promise.resolve($.ajax({ + url: API_URL, + dataType: 'json', + })); }, /** * Submit new comment to server using AJAX call. * * @param {Object} comment - Comment body to post. - * @returns {Promise} - response of fetch request. + * @returns {Promise} - jqXHR result of ajax call. */ - submitComment(comment) { - return fetch(API_URL, { - method: 'post', - headers: { - 'Accept': 'application/json', - 'Content-Type': 'application/json', - }, - body: JSON.stringify({comment}), - }).then(checkStatus).then(parseJSON); + return Promise.resolve($.ajax({ + url: API_URL, + dataType: 'json', + type: 'POST', + data: {comment: comment}, + })); }, }; diff --git a/client/package.json b/client/package.json index d8d2d30f..1682a21b 100644 --- a/client/package.json +++ b/client/package.json @@ -40,8 +40,7 @@ "redux-promise": "^0.5.0", "redux-thunk": "^0.1.0", "sleep": "^3.0.0", - "webpack": "^1.10.5", - "whatwg-fetch": "^0.9.0" + "webpack": "^1.10.5" }, "devDependencies": { "babel-eslint": "^4.0.5", diff --git a/client/webpack.common.config.js b/client/webpack.common.config.js index 91370cb6..50471f39 100644 --- a/client/webpack.common.config.js +++ b/client/webpack.common.config.js @@ -6,7 +6,7 @@ module.exports = { // the project dir context: __dirname, - entry: ['whatwg-fetch', './assets/javascripts/App'], + entry: ['./assets/javascripts/App'], // In case you wanted to load jQuery from the CDN, this is how you would do it: // externals: { From b2c683358199565d8eb298b221fb92bc99c29561 Mon Sep 17 00:00:00 2001 From: Mario Perez Date: Mon, 7 Sep 2015 10:57:34 +0200 Subject: [PATCH 038/514] Using react_on_rails gem for rendering components on the client - Paired with @samnang --- Gemfile | 2 ++ Gemfile.lock | 4 ++++ app/views/pages/index.html.erb | 7 +++---- client/assets/javascripts/App.jsx | 28 ++++++++-------------------- client/webpack.rails.config.js | 5 ++++- 5 files changed, 21 insertions(+), 25 deletions(-) diff --git a/Gemfile b/Gemfile index 0214ea05..500e7a90 100644 --- a/Gemfile +++ b/Gemfile @@ -37,6 +37,8 @@ gem "rails-html-sanitizer" # Use Unicorn as the app server gem "unicorn" +gem "react_on_rails", "~> 0.1.1" + gem "autoprefixer-rails" # Use Capistrano for deployment diff --git a/Gemfile.lock b/Gemfile.lock index b72e5478..a991b50c 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -172,6 +172,9 @@ GEM raindrops (0.15.0) rake (10.4.2) rdoc (4.2.0) + react_on_rails (0.1.1) + execjs (~> 2.5) + rails (~> 4.2) rspec-core (3.3.2) rspec-support (~> 3.3.0) rspec-expectations (3.3.1) @@ -281,6 +284,7 @@ DEPENDENCIES rails-html-sanitizer rails_12factor rainbow + react_on_rails (~> 0.1.1) rspec-rails rubocop ruby-lint diff --git a/app/views/pages/index.html.erb b/app/views/pages/index.html.erb index 23ac242a..dc94cc27 100644 --- a/app/views/pages/index.html.erb +++ b/app/views/pages/index.html.erb @@ -16,7 +16,6 @@
    -
    - - - +
    + <%= react_component('App') %> +
    diff --git a/client/assets/javascripts/App.jsx b/client/assets/javascripts/App.jsx index 6ba82015..131fbb0b 100755 --- a/client/assets/javascripts/App.jsx +++ b/client/assets/javascripts/App.jsx @@ -1,26 +1,14 @@ -import $ from 'jquery'; - import React from 'react'; import { Provider } from 'react-redux'; import CommentScreen from './components/CommentScreen'; import CommentStore from './stores/CommentStore'; -$(function onLoad() { - function render() { - if ($('#content').length > 0) { - React.render(( - - { () => } - - ), document.getElementById('content')); - } - } - - render(); - - // Next part is to make this work with turbo-links - $(document).on('page:change', () => { - render(); - }); -}); +window.App = () => { + const reactComponent = ( + + {() => } + + ); + return reactComponent; +}; diff --git a/client/webpack.rails.config.js b/client/webpack.rails.config.js index 943ebd27..62ebe3c4 100644 --- a/client/webpack.rails.config.js +++ b/client/webpack.rails.config.js @@ -25,7 +25,10 @@ config.module.loaders.push( // Next 2 lines expose jQuery and $ to any JavaScript files loaded after client-bundle.js // in the Rails Asset Pipeline. Thus, load this one prior. {test: require.resolve('jquery'), loader: 'expose?jQuery'}, - {test: require.resolve('jquery'), loader: 'expose?$'} + {test: require.resolve('jquery'), loader: 'expose?$'}, + + // React is necessary for the client rendering: + {test: require.resolve('react'), loader: 'expose?React'} ); module.exports = config; From be97718499d94b8be319b9d71ebca93dfd866028 Mon Sep 17 00:00:00 2001 From: Kent William Innholt Date: Mon, 7 Sep 2015 18:00:16 -0700 Subject: [PATCH 039/514] Added hint to check that Postgres is installed MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The error shown if Postgres is missing is confusing—for me it was along the lines of ```Installing pg 0.18.2 with native extensions Gem::Ext::BuildError: ERROR: Failed to build gem native extension. /Users/user/.rbenv/versions/2.2.2/bin/ruby -r ./siteconf20150907-78059-f9x8cq.rb extconf.rb checking for pg_config... no No pg_config... trying anyway. If building fails, please try again with --with-pg-config=/path/to/pg_config checking for libpq-fe.h... no Can't find the 'libpq-fe.h header *** extconf.rb failed *** Could not create Makefile due to some reason, probably lack of necessary libraries and/or headers. Check the mkmf.log file for more details. You may need configuration options. ``` To save the next person some time, I suggest we add the "check" to the docs. --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 65971ef8..83b33322 100644 --- a/README.md +++ b/README.md @@ -63,6 +63,7 @@ See package.json and Gemfile for versions 1. `cd react-webpack-rails-tutorial` 1. Check that you have Ruby 2.2.2 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. `bundle install` 1. `npm install` 1. `rake db:setup` From 7d431a5b7d48e88dde366a9700954a0388de2d23 Mon Sep 17 00:00:00 2001 From: Justin Gordon Date: Mon, 7 Sep 2015 22:31:42 -1000 Subject: [PATCH 040/514] Make hot-reload server work w/ react_on_rails gem * Need to export App from App.jsx * Removed specifying stage for babel in the loader. * Move exposing React to webpack.common.config.js for page rendering. --- app/views/pages/index.html.erb | 4 +--- client/assets/javascripts/App.jsx | 7 ++++++- client/index.html | 3 +++ client/webpack.common.config.js | 5 ++++- client/webpack.hot.config.js | 2 +- client/webpack.rails.config.js | 7 ++----- 6 files changed, 17 insertions(+), 11 deletions(-) diff --git a/app/views/pages/index.html.erb b/app/views/pages/index.html.erb index dc94cc27..8bd226cd 100644 --- a/app/views/pages/index.html.erb +++ b/app/views/pages/index.html.erb @@ -16,6 +16,4 @@
    -
    - <%= react_component('App') %> -
    +<%= react_component('App', {}, prerender: false) %> diff --git a/client/assets/javascripts/App.jsx b/client/assets/javascripts/App.jsx index 131fbb0b..15dadab0 100755 --- a/client/assets/javascripts/App.jsx +++ b/client/assets/javascripts/App.jsx @@ -4,7 +4,7 @@ import { Provider } from 'react-redux'; import CommentScreen from './components/CommentScreen'; import CommentStore from './stores/CommentStore'; -window.App = () => { +const App = () => { const reactComponent = ( {() => } @@ -12,3 +12,8 @@ window.App = () => { ); return reactComponent; }; + +window.App = App; + +// Export is needed for the hot reload server +export default App; diff --git a/client/index.html b/client/index.html index 71fbb1f9..c1906cd7 100755 --- a/client/index.html +++ b/client/index.html @@ -6,5 +6,8 @@
    + diff --git a/client/webpack.common.config.js b/client/webpack.common.config.js index 50471f39..a99a79e9 100644 --- a/client/webpack.common.config.js +++ b/client/webpack.common.config.js @@ -20,6 +20,9 @@ module.exports = { extensions: ['', '.webpack.js', '.web.js', '.js', '.jsx', '.scss', '.css', 'config.js'], }, module: { - loaders: [], + loaders: [ + // React is necessary for the client rendering: + {test: require.resolve('react'), loader: 'expose?React'} + ], }, }; diff --git a/client/webpack.hot.config.js b/client/webpack.hot.config.js index 71c10331..919c047a 100644 --- a/client/webpack.hot.config.js +++ b/client/webpack.hot.config.js @@ -27,7 +27,7 @@ config.resolve.root.push(path.join(__dirname, 'assets/stylesheets')); // All the styling loaders only apply to hot-reload, not rails config.module.loaders.push( - {test: /\.jsx?$/, loaders: ['react-hot', 'babel?stage=0'], exclude: /node_modules/}, + {test: /\.jsx?$/, loaders: ['react-hot', 'babel'], exclude: /node_modules/}, {test: /\.css$/, loader: 'style-loader!css-loader'}, { test: /\.scss$/, diff --git a/client/webpack.rails.config.js b/client/webpack.rails.config.js index 62ebe3c4..512bab13 100644 --- a/client/webpack.rails.config.js +++ b/client/webpack.rails.config.js @@ -20,15 +20,12 @@ config.entry.push('./scripts/rails_only'); // See webpack.common.config for adding modules common to both the webpack dev server and rails config.module.loaders.push( - {test: /\.jsx?$/, exclude: /node_modules/, loader: 'babel-loader?stage=0'}, + {test: /\.jsx?$/, exclude: /node_modules/, loader: 'babel-loader'}, // Next 2 lines expose jQuery and $ to any JavaScript files loaded after client-bundle.js // in the Rails Asset Pipeline. Thus, load this one prior. {test: require.resolve('jquery'), loader: 'expose?jQuery'}, - {test: require.resolve('jquery'), loader: 'expose?$'}, - - // React is necessary for the client rendering: - {test: require.resolve('react'), loader: 'expose?React'} + {test: require.resolve('jquery'), loader: 'expose?$'} ); module.exports = config; From 6776f30009fd5ed2a057495e1f8d6de81a9ba63c Mon Sep 17 00:00:00 2001 From: Justin Gordon Date: Mon, 7 Sep 2015 23:41:08 -1000 Subject: [PATCH 041/514] fix js linter issue --- client/webpack.common.config.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/client/webpack.common.config.js b/client/webpack.common.config.js index a99a79e9..6a99a7f3 100644 --- a/client/webpack.common.config.js +++ b/client/webpack.common.config.js @@ -21,8 +21,9 @@ module.exports = { }, module: { loaders: [ + // React is necessary for the client rendering: - {test: require.resolve('react'), loader: 'expose?React'} + {test: require.resolve('react'), loader: 'expose?React'}, ], }, }; From 11111f90bbb39dedc9a632dc56bcda2b052a1a3e Mon Sep 17 00:00:00 2001 From: Justin Gordon Date: Mon, 7 Sep 2015 23:58:49 -1000 Subject: [PATCH 042/514] Updated README.me --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 83b33322..d8553561 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# React, Redux, React-Bootstrap, and ES-7 on Rails via WebPack +# React, Redux, React-Bootstrap, and ES-7 on Rails via WebPack and the react_on_rails gem ## Now with Redux and ES7! Servering Rendering ASAP (Shaka Code's react_on_rails gem)! From 4e01dfdbcfbba7cbf121e8cad2194da273019f9a Mon Sep 17 00:00:00 2001 From: Justin Gordon Date: Tue, 8 Sep 2015 00:06:44 -1000 Subject: [PATCH 043/514] update dependencies --- client/npm-shrinkwrap.json | 1871 ++++++++++++++++++++++++++++++++++++ client/package.json | 38 +- 2 files changed, 1890 insertions(+), 19 deletions(-) create mode 100644 client/npm-shrinkwrap.json diff --git a/client/npm-shrinkwrap.json b/client/npm-shrinkwrap.json new file mode 100644 index 00000000..7b3e9d20 --- /dev/null +++ b/client/npm-shrinkwrap.json @@ -0,0 +1,1871 @@ +{ + "name": "react-webpack-rails-tutorial", + "version": "1.1.0", + "dependencies": { + "babel-core": { + "version": "5.8.23", + "from": "babel-core@>=5.8.23 <6.0.0", + "resolved": "https://registry.npmjs.org/babel-core/-/babel-core-5.8.23.tgz", + "dependencies": { + "babel-plugin-constant-folding": { + "version": "1.0.1", + "from": "babel-plugin-constant-folding@>=1.0.1 <2.0.0", + "resolved": "https://registry.npmjs.org/babel-plugin-constant-folding/-/babel-plugin-constant-folding-1.0.1.tgz" + }, + "babel-plugin-dead-code-elimination": { + "version": "1.0.2", + "from": "babel-plugin-dead-code-elimination@>=1.0.2 <2.0.0", + "resolved": "https://registry.npmjs.org/babel-plugin-dead-code-elimination/-/babel-plugin-dead-code-elimination-1.0.2.tgz" + }, + "babel-plugin-eval": { + "version": "1.0.1", + "from": "babel-plugin-eval@>=1.0.1 <2.0.0", + "resolved": "https://registry.npmjs.org/babel-plugin-eval/-/babel-plugin-eval-1.0.1.tgz" + }, + "babel-plugin-inline-environment-variables": { + "version": "1.0.1", + "from": "babel-plugin-inline-environment-variables@>=1.0.1 <2.0.0", + "resolved": "https://registry.npmjs.org/babel-plugin-inline-environment-variables/-/babel-plugin-inline-environment-variables-1.0.1.tgz" + }, + "babel-plugin-jscript": { + "version": "1.0.4", + "from": "babel-plugin-jscript@>=1.0.4 <2.0.0", + "resolved": "https://registry.npmjs.org/babel-plugin-jscript/-/babel-plugin-jscript-1.0.4.tgz" + }, + "babel-plugin-member-expression-literals": { + "version": "1.0.1", + "from": "babel-plugin-member-expression-literals@>=1.0.1 <2.0.0", + "resolved": "https://registry.npmjs.org/babel-plugin-member-expression-literals/-/babel-plugin-member-expression-literals-1.0.1.tgz" + }, + "babel-plugin-property-literals": { + "version": "1.0.1", + "from": "babel-plugin-property-literals@>=1.0.1 <2.0.0", + "resolved": "https://registry.npmjs.org/babel-plugin-property-literals/-/babel-plugin-property-literals-1.0.1.tgz" + }, + "babel-plugin-proto-to-assign": { + "version": "1.0.4", + "from": "babel-plugin-proto-to-assign@>=1.0.3 <2.0.0", + "resolved": "https://registry.npmjs.org/babel-plugin-proto-to-assign/-/babel-plugin-proto-to-assign-1.0.4.tgz" + }, + "babel-plugin-react-constant-elements": { + "version": "1.0.3", + "from": "babel-plugin-react-constant-elements@>=1.0.3 <2.0.0", + "resolved": "https://registry.npmjs.org/babel-plugin-react-constant-elements/-/babel-plugin-react-constant-elements-1.0.3.tgz" + }, + "babel-plugin-react-display-name": { + "version": "1.0.3", + "from": "babel-plugin-react-display-name@>=1.0.3 <2.0.0", + "resolved": "https://registry.npmjs.org/babel-plugin-react-display-name/-/babel-plugin-react-display-name-1.0.3.tgz" + }, + "babel-plugin-remove-console": { + "version": "1.0.1", + "from": "babel-plugin-remove-console@>=1.0.1 <2.0.0", + "resolved": "https://registry.npmjs.org/babel-plugin-remove-console/-/babel-plugin-remove-console-1.0.1.tgz" + }, + "babel-plugin-remove-debugger": { + "version": "1.0.1", + "from": "babel-plugin-remove-debugger@>=1.0.1 <2.0.0", + "resolved": "https://registry.npmjs.org/babel-plugin-remove-debugger/-/babel-plugin-remove-debugger-1.0.1.tgz" + }, + "babel-plugin-runtime": { + "version": "1.0.7", + "from": "babel-plugin-runtime@>=1.0.7 <2.0.0", + "resolved": "https://registry.npmjs.org/babel-plugin-runtime/-/babel-plugin-runtime-1.0.7.tgz" + }, + "babel-plugin-undeclared-variables-check": { + "version": "1.0.2", + "from": "babel-plugin-undeclared-variables-check@>=1.0.2 <2.0.0", + "resolved": "https://registry.npmjs.org/babel-plugin-undeclared-variables-check/-/babel-plugin-undeclared-variables-check-1.0.2.tgz", + "dependencies": { + "leven": { + "version": "1.0.2", + "from": "leven@>=1.0.2 <2.0.0", + "resolved": "https://registry.npmjs.org/leven/-/leven-1.0.2.tgz" + } + } + }, + "babel-plugin-undefined-to-void": { + "version": "1.1.6", + "from": "babel-plugin-undefined-to-void@>=1.1.6 <2.0.0", + "resolved": "https://registry.npmjs.org/babel-plugin-undefined-to-void/-/babel-plugin-undefined-to-void-1.1.6.tgz" + }, + "babylon": { + "version": "5.8.23", + "from": "babylon@>=5.8.23 <6.0.0", + "resolved": "https://registry.npmjs.org/babylon/-/babylon-5.8.23.tgz" + }, + "bluebird": { + "version": "2.9.34", + "from": "bluebird@>=2.9.33 <3.0.0", + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-2.9.34.tgz" + }, + "chalk": { + "version": "1.1.1", + "from": "chalk@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.1.tgz", + "dependencies": { + "ansi-styles": { + "version": "2.1.0", + "from": "ansi-styles@>=2.1.0 <3.0.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.1.0.tgz" + }, + "escape-string-regexp": { + "version": "1.0.3", + "from": "escape-string-regexp@>=1.0.2 <2.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.3.tgz" + }, + "has-ansi": { + "version": "2.0.0", + "from": "has-ansi@>=2.0.0 <3.0.0", + "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", + "dependencies": { + "ansi-regex": { + "version": "2.0.0", + "from": "ansi-regex@>=2.0.0 <3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.0.0.tgz" + } + } + }, + "strip-ansi": { + "version": "3.0.0", + "from": "strip-ansi@>=3.0.0 <4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.0.tgz", + "dependencies": { + "ansi-regex": { + "version": "2.0.0", + "from": "ansi-regex@>=2.0.0 <3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.0.0.tgz" + } + } + }, + "supports-color": { + "version": "2.0.0", + "from": "supports-color@>=2.0.0 <3.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz" + } + } + }, + "convert-source-map": { + "version": "1.1.1", + "from": "convert-source-map@>=1.1.0 <2.0.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.1.1.tgz" + }, + "core-js": { + "version": "1.1.4", + "from": "core-js@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-1.1.4.tgz" + }, + "debug": { + "version": "2.2.0", + "from": "debug@>=2.1.1 <3.0.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.2.0.tgz", + "dependencies": { + "ms": { + "version": "0.7.1", + "from": "ms@0.7.1", + "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.1.tgz" + } + } + }, + "detect-indent": { + "version": "3.0.1", + "from": "detect-indent@>=3.0.0 <4.0.0", + "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-3.0.1.tgz", + "dependencies": { + "get-stdin": { + "version": "4.0.1", + "from": "get-stdin@>=4.0.1 <5.0.0", + "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz" + }, + "minimist": { + "version": "1.2.0", + "from": "minimist@>=1.1.0 <2.0.0", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz" + } + } + }, + "esutils": { + "version": "2.0.2", + "from": "esutils@>=2.0.0 <3.0.0", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz" + }, + "fs-readdir-recursive": { + "version": "0.1.2", + "from": "fs-readdir-recursive@>=0.1.0 <0.2.0", + "resolved": "https://registry.npmjs.org/fs-readdir-recursive/-/fs-readdir-recursive-0.1.2.tgz" + }, + "globals": { + "version": "6.4.1", + "from": "globals@>=6.4.0 <7.0.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-6.4.1.tgz" + }, + "home-or-tmp": { + "version": "1.0.0", + "from": "home-or-tmp@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/home-or-tmp/-/home-or-tmp-1.0.0.tgz", + "dependencies": { + "os-tmpdir": { + "version": "1.0.1", + "from": "os-tmpdir@>=1.0.1 <2.0.0", + "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.1.tgz" + }, + "user-home": { + "version": "1.1.1", + "from": "user-home@>=1.1.1 <2.0.0", + "resolved": "https://registry.npmjs.org/user-home/-/user-home-1.1.1.tgz" + } + } + }, + "is-integer": { + "version": "1.0.6", + "from": "is-integer@>=1.0.4 <2.0.0", + "resolved": "https://registry.npmjs.org/is-integer/-/is-integer-1.0.6.tgz", + "dependencies": { + "is-finite": { + "version": "1.0.1", + "from": "is-finite@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.1.tgz", + "dependencies": { + "number-is-nan": { + "version": "1.0.0", + "from": "number-is-nan@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.0.tgz" + } + } + } + } + }, + "js-tokens": { + "version": "1.0.1", + "from": "js-tokens@1.0.1", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-1.0.1.tgz" + }, + "json5": { + "version": "0.4.0", + "from": "json5@>=0.4.0 <0.5.0", + "resolved": "https://registry.npmjs.org/json5/-/json5-0.4.0.tgz" + }, + "line-numbers": { + "version": "0.2.0", + "from": "line-numbers@0.2.0", + "resolved": "https://registry.npmjs.org/line-numbers/-/line-numbers-0.2.0.tgz", + "dependencies": { + "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" + } + } + }, + "lodash": { + "version": "3.10.1", + "from": "lodash@>=3.10.0 <4.0.0", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-3.10.1.tgz" + }, + "minimatch": { + "version": "2.0.10", + "from": "minimatch@>=2.0.3 <3.0.0", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-2.0.10.tgz", + "dependencies": { + "brace-expansion": { + "version": "1.1.0", + "from": "brace-expansion@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.0.tgz", + "dependencies": { + "balanced-match": { + "version": "0.2.0", + "from": "balanced-match@>=0.2.0 <0.3.0", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-0.2.0.tgz" + }, + "concat-map": { + "version": "0.0.1", + "from": "concat-map@0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz" + } + } + } + } + }, + "output-file-sync": { + "version": "1.1.1", + "from": "output-file-sync@>=1.1.0 <2.0.0", + "resolved": "https://registry.npmjs.org/output-file-sync/-/output-file-sync-1.1.1.tgz", + "dependencies": { + "mkdirp": { + "version": "0.5.1", + "from": "mkdirp@>=0.5.1 <0.6.0", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", + "dependencies": { + "minimist": { + "version": "0.0.8", + "from": "minimist@0.0.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz" + } + } + }, + "xtend": { + "version": "4.0.0", + "from": "xtend@>=4.0.0 <5.0.0", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.0.tgz" + } + } + }, + "path-exists": { + "version": "1.0.0", + "from": "path-exists@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-1.0.0.tgz" + }, + "path-is-absolute": { + "version": "1.0.0", + "from": "path-is-absolute@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.0.tgz" + }, + "private": { + "version": "0.1.6", + "from": "private@>=0.1.6 <0.2.0", + "resolved": "https://registry.npmjs.org/private/-/private-0.1.6.tgz" + }, + "regenerator": { + "version": "0.8.35", + "from": "regenerator@0.8.35", + "resolved": "https://registry.npmjs.org/regenerator/-/regenerator-0.8.35.tgz", + "dependencies": { + "commoner": { + "version": "0.10.3", + "from": "commoner@>=0.10.0 <0.11.0", + "resolved": "https://registry.npmjs.org/commoner/-/commoner-0.10.3.tgz", + "dependencies": { + "q": { + "version": "1.1.2", + "from": "q@>=1.1.2 <1.2.0", + "resolved": "https://registry.npmjs.org/q/-/q-1.1.2.tgz" + }, + "commander": { + "version": "2.5.1", + "from": "commander@>=2.5.0 <2.6.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.5.1.tgz" + }, + "graceful-fs": { + "version": "3.0.8", + "from": "graceful-fs@>=3.0.4 <3.1.0", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-3.0.8.tgz" + }, + "glob": { + "version": "4.2.2", + "from": "glob@>=4.2.1 <4.3.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-4.2.2.tgz", + "dependencies": { + "inflight": { + "version": "1.0.4", + "from": "inflight@>=1.0.4 <2.0.0", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.4.tgz", + "dependencies": { + "wrappy": { + "version": "1.0.1", + "from": "wrappy@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.1.tgz" + } + } + }, + "inherits": { + "version": "2.0.1", + "from": "inherits@>=2.0.0 <3.0.0", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz" + }, + "minimatch": { + "version": "1.0.0", + "from": "minimatch@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-1.0.0.tgz", + "dependencies": { + "lru-cache": { + "version": "2.6.5", + "from": "lru-cache@>=2.0.0 <3.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-2.6.5.tgz" + }, + "sigmund": { + "version": "1.0.1", + "from": "sigmund@>=1.0.0 <1.1.0", + "resolved": "https://registry.npmjs.org/sigmund/-/sigmund-1.0.1.tgz" + } + } + }, + "once": { + "version": "1.3.2", + "from": "once@>=1.3.0 <2.0.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.3.2.tgz", + "dependencies": { + "wrappy": { + "version": "1.0.1", + "from": "wrappy@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.1.tgz" + } + } + } + } + }, + "mkdirp": { + "version": "0.5.1", + "from": "mkdirp@>=0.5.0 <0.6.0", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", + "dependencies": { + "minimist": { + "version": "0.0.8", + "from": "minimist@0.0.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz" + } + } + }, + "install": { + "version": "0.1.8", + "from": "install@>=0.1.7 <0.2.0", + "resolved": "https://registry.npmjs.org/install/-/install-0.1.8.tgz" + }, + "iconv-lite": { + "version": "0.4.11", + "from": "iconv-lite@>=0.4.5 <0.5.0", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.11.tgz" + } + } + }, + "defs": { + "version": "1.1.0", + "from": "defs@>=1.1.0 <1.2.0", + "resolved": "https://registry.npmjs.org/defs/-/defs-1.1.0.tgz", + "dependencies": { + "alter": { + "version": "0.2.0", + "from": "alter@>=0.2.0 <0.3.0", + "resolved": "https://registry.npmjs.org/alter/-/alter-0.2.0.tgz", + "dependencies": { + "stable": { + "version": "0.1.5", + "from": "stable@>=0.1.3 <0.2.0", + "resolved": "https://registry.npmjs.org/stable/-/stable-0.1.5.tgz" + } + } + }, + "ast-traverse": { + "version": "0.1.1", + "from": "ast-traverse@>=0.1.1 <0.2.0", + "resolved": "https://registry.npmjs.org/ast-traverse/-/ast-traverse-0.1.1.tgz" + }, + "breakable": { + "version": "1.0.0", + "from": "breakable@>=1.0.0 <1.1.0", + "resolved": "https://registry.npmjs.org/breakable/-/breakable-1.0.0.tgz" + }, + "esprima-fb": { + "version": "8001.1001.0-dev-harmony-fb", + "from": "esprima-fb@>=8001.1001.0-dev-harmony-fb <8001.1002.0", + "resolved": "https://registry.npmjs.org/esprima-fb/-/esprima-fb-8001.1001.0-dev-harmony-fb.tgz" + }, + "simple-fmt": { + "version": "0.1.0", + "from": "simple-fmt@>=0.1.0 <0.2.0", + "resolved": "https://registry.npmjs.org/simple-fmt/-/simple-fmt-0.1.0.tgz" + }, + "simple-is": { + "version": "0.2.0", + "from": "simple-is@>=0.2.0 <0.3.0", + "resolved": "https://registry.npmjs.org/simple-is/-/simple-is-0.2.0.tgz" + }, + "stringmap": { + "version": "0.2.2", + "from": "stringmap@>=0.2.2 <0.3.0", + "resolved": "https://registry.npmjs.org/stringmap/-/stringmap-0.2.2.tgz" + }, + "stringset": { + "version": "0.2.1", + "from": "stringset@>=0.2.1 <0.3.0", + "resolved": "https://registry.npmjs.org/stringset/-/stringset-0.2.1.tgz" + }, + "tryor": { + "version": "0.1.2", + "from": "tryor@>=0.1.2 <0.2.0", + "resolved": "https://registry.npmjs.org/tryor/-/tryor-0.1.2.tgz" + }, + "yargs": { + "version": "1.3.3", + "from": "yargs@>=1.3.2 <1.4.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-1.3.3.tgz" + } + } + }, + "esprima-fb": { + "version": "15001.1.0-dev-harmony-fb", + "from": "esprima-fb@>=15001.1.0-dev-harmony-fb <15001.2.0", + "resolved": "https://registry.npmjs.org/esprima-fb/-/esprima-fb-15001.1.0-dev-harmony-fb.tgz" + }, + "recast": { + "version": "0.10.24", + "from": "recast@0.10.24", + "resolved": "https://registry.npmjs.org/recast/-/recast-0.10.24.tgz", + "dependencies": { + "ast-types": { + "version": "0.8.5", + "from": "ast-types@0.8.5", + "resolved": "https://registry.npmjs.org/ast-types/-/ast-types-0.8.5.tgz" + } + } + }, + "through": { + "version": "2.3.8", + "from": "through@>=2.3.6 <2.4.0", + "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz" + } + } + }, + "regexpu": { + "version": "1.2.0", + "from": "regexpu@>=1.1.2 <2.0.0", + "resolved": "https://registry.npmjs.org/regexpu/-/regexpu-1.2.0.tgz", + "dependencies": { + "recast": { + "version": "0.10.32", + "from": "recast@>=0.10.6 <0.11.0", + "resolved": "https://registry.npmjs.org/recast/-/recast-0.10.32.tgz", + "dependencies": { + "ast-types": { + "version": "0.8.11", + "from": "ast-types@0.8.11", + "resolved": "https://registry.npmjs.org/ast-types/-/ast-types-0.8.11.tgz" + } + } + }, + "regenerate": { + "version": "1.2.1", + "from": "regenerate@>=1.2.1 <2.0.0", + "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.2.1.tgz" + }, + "regjsgen": { + "version": "0.2.0", + "from": "regjsgen@>=0.2.0 <0.3.0", + "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.2.0.tgz" + }, + "regjsparser": { + "version": "0.1.5", + "from": "regjsparser@>=0.1.4 <0.2.0", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.1.5.tgz", + "dependencies": { + "jsesc": { + "version": "0.5.0", + "from": "jsesc@>=0.5.0 <0.6.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz" + } + } + } + } + }, + "repeating": { + "version": "1.1.3", + "from": "repeating@>=1.1.2 <2.0.0", + "resolved": "https://registry.npmjs.org/repeating/-/repeating-1.1.3.tgz", + "dependencies": { + "is-finite": { + "version": "1.0.1", + "from": "is-finite@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.1.tgz", + "dependencies": { + "number-is-nan": { + "version": "1.0.0", + "from": "number-is-nan@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.0.tgz" + } + } + } + } + }, + "resolve": { + "version": "1.1.6", + "from": "resolve@>=1.1.6 <2.0.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.1.6.tgz" + }, + "shebang-regex": { + "version": "1.0.0", + "from": "shebang-regex@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz" + }, + "slash": { + "version": "1.0.0", + "from": "slash@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz" + }, + "source-map": { + "version": "0.4.4", + "from": "source-map@>=0.4.0 <0.5.0", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz", + "dependencies": { + "amdefine": { + "version": "1.0.0", + "from": "amdefine@>=0.0.4", + "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.0.tgz" + } + } + }, + "source-map-support": { + "version": "0.2.10", + "from": "source-map-support@>=0.2.10 <0.3.0", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.2.10.tgz", + "dependencies": { + "source-map": { + "version": "0.1.32", + "from": "source-map@0.1.32", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.1.32.tgz", + "dependencies": { + "amdefine": { + "version": "1.0.0", + "from": "amdefine@>=0.0.4", + "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.0.tgz" + } + } + } + } + }, + "to-fast-properties": { + "version": "1.0.1", + "from": "to-fast-properties@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.1.tgz" + }, + "trim-right": { + "version": "1.0.1", + "from": "trim-right@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/trim-right/-/trim-right-1.0.1.tgz" + }, + "try-resolve": { + "version": "1.0.1", + "from": "try-resolve@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/try-resolve/-/try-resolve-1.0.1.tgz" + } + } + }, + "babel-loader": { + "version": "5.3.2", + "from": "babel-loader@>=5.3.2 <6.0.0", + "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-5.3.2.tgz", + "dependencies": { + "object-assign": { + "version": "3.0.0", + "from": "object-assign@>=3.0.0 <4.0.0", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-3.0.0.tgz" + } + } + }, + "body-parser": { + "version": "1.13.3", + "from": "body-parser@>=1.13.3 <2.0.0", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.13.3.tgz", + "dependencies": { + "bytes": { + "version": "2.1.0", + "from": "bytes@2.1.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-2.1.0.tgz" + }, + "content-type": { + "version": "1.0.1", + "from": "content-type@>=1.0.1 <1.1.0", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.1.tgz" + }, + "debug": { + "version": "2.2.0", + "from": "debug@>=2.2.0 <2.3.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.2.0.tgz", + "dependencies": { + "ms": { + "version": "0.7.1", + "from": "ms@0.7.1", + "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.1.tgz" + } + } + }, + "depd": { + "version": "1.0.1", + "from": "depd@>=1.0.1 <1.1.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.0.1.tgz" + }, + "http-errors": { + "version": "1.3.1", + "from": "http-errors@>=1.3.1 <1.4.0", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.3.1.tgz", + "dependencies": { + "inherits": { + "version": "2.0.1", + "from": "inherits@>=2.0.1 <2.1.0", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz" + }, + "statuses": { + "version": "1.2.1", + "from": "statuses@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.2.1.tgz" + } + } + }, + "iconv-lite": { + "version": "0.4.11", + "from": "iconv-lite@0.4.11", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.11.tgz" + }, + "on-finished": { + "version": "2.3.0", + "from": "on-finished@>=2.3.0 <2.4.0", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", + "dependencies": { + "ee-first": { + "version": "1.1.1", + "from": "ee-first@1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz" + } + } + }, + "qs": { + "version": "4.0.0", + "from": "qs@4.0.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-4.0.0.tgz" + }, + "raw-body": { + "version": "2.1.2", + "from": "raw-body@>=2.1.2 <2.2.0", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.1.2.tgz", + "dependencies": { + "unpipe": { + "version": "1.0.0", + "from": "unpipe@1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz" + } + } + }, + "type-is": { + "version": "1.6.6", + "from": "type-is@>=1.6.6 <1.7.0", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.6.tgz", + "dependencies": { + "media-typer": { + "version": "0.3.0", + "from": "media-typer@0.3.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz" + }, + "mime-types": { + "version": "2.1.4", + "from": "mime-types@>=2.1.4 <2.2.0", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.4.tgz", + "dependencies": { + "mime-db": { + "version": "1.16.0", + "from": "mime-db@>=1.16.0 <1.17.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.16.0.tgz" + } + } + } + } + } + } + }, + "es5-shim": { + "version": "4.1.12", + "from": "es5-shim@>=4.1.12 <5.0.0", + "resolved": "https://registry.npmjs.org/es5-shim/-/es5-shim-4.1.12.tgz" + }, + "es6-promise": { + "version": "3.0.2", + "from": "es6-promise@>=3.0.2 <4.0.0", + "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-3.0.2.tgz" + }, + "immutable": { + "version": "3.7.5", + "from": "immutable@>=3.7.5 <4.0.0", + "resolved": "https://registry.npmjs.org/immutable/-/immutable-3.7.5.tgz" + }, + "imports-loader": { + "version": "0.6.4", + "from": "imports-loader@>=0.6.4 <0.7.0", + "resolved": "https://registry.npmjs.org/imports-loader/-/imports-loader-0.6.4.tgz", + "dependencies": { + "source-map": { + "version": "0.1.43", + "from": "source-map@>=0.1.0 <0.2.0", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.1.43.tgz", + "dependencies": { + "amdefine": { + "version": "1.0.0", + "from": "amdefine@>=0.0.4", + "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.0.tgz" + } + } + } + } + }, + "jquery": { + "version": "2.1.4", + "from": "https://registry.npmjs.org/jquery/-/jquery-2.1.4.tgz", + "resolved": "https://registry.npmjs.org/jquery/-/jquery-2.1.4.tgz" + }, + "loader-utils": { + "version": "0.2.11", + "from": "loader-utils@>=0.2.11 <0.3.0", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-0.2.11.tgz", + "dependencies": { + "big.js": { + "version": "3.1.3", + "from": "big.js@>=3.0.2 <4.0.0", + "resolved": "https://registry.npmjs.org/big.js/-/big.js-3.1.3.tgz" + }, + "json5": { + "version": "0.4.0", + "from": "json5@>=0.4.0 <0.5.0", + "resolved": "https://registry.npmjs.org/json5/-/json5-0.4.0.tgz" + } + } + }, + "marked": { + "version": "0.3.5", + "from": "marked@>=0.3.5 <0.4.0", + "resolved": "https://registry.npmjs.org/marked/-/marked-0.3.5.tgz" + }, + "node-libs-browser": { + "version": "0.5.0", + "from": "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-0.5.0.tgz", + "resolved": "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-0.5.0.tgz", + "dependencies": { + "assert": { + "version": "1.3.0", + "from": "https://registry.npmjs.org/assert/-/assert-1.3.0.tgz", + "resolved": "https://registry.npmjs.org/assert/-/assert-1.3.0.tgz" + }, + "browserify-zlib": { + "version": "0.1.4", + "from": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.1.4.tgz", + "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.1.4.tgz", + "dependencies": { + "pako": { + "version": "0.2.6", + "from": "https://registry.npmjs.org/pako/-/pako-0.2.6.tgz", + "resolved": "https://registry.npmjs.org/pako/-/pako-0.2.6.tgz" + } + } + }, + "buffer": { + "version": "3.2.2", + "from": "https://registry.npmjs.org/buffer/-/buffer-3.2.2.tgz", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-3.2.2.tgz", + "dependencies": { + "base64-js": { + "version": "0.0.8", + "from": "https://registry.npmjs.org/base64-js/-/base64-js-0.0.8.tgz", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-0.0.8.tgz" + }, + "ieee754": { + "version": "1.1.5", + "from": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.5.tgz", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.5.tgz" + }, + "is-array": { + "version": "1.0.1", + "from": "https://registry.npmjs.org/is-array/-/is-array-1.0.1.tgz", + "resolved": "https://registry.npmjs.org/is-array/-/is-array-1.0.1.tgz" + } + } + }, + "console-browserify": { + "version": "1.1.0", + "from": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.1.0.tgz", + "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.1.0.tgz", + "dependencies": { + "date-now": { + "version": "0.1.4", + "from": "https://registry.npmjs.org/date-now/-/date-now-0.1.4.tgz", + "resolved": "https://registry.npmjs.org/date-now/-/date-now-0.1.4.tgz" + } + } + }, + "constants-browserify": { + "version": "0.0.1", + "from": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-0.0.1.tgz", + "resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-0.0.1.tgz" + }, + "crypto-browserify": { + "version": "3.2.8", + "from": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.2.8.tgz", + "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.2.8.tgz", + "dependencies": { + "pbkdf2-compat": { + "version": "2.0.1", + "from": "https://registry.npmjs.org/pbkdf2-compat/-/pbkdf2-compat-2.0.1.tgz", + "resolved": "https://registry.npmjs.org/pbkdf2-compat/-/pbkdf2-compat-2.0.1.tgz" + }, + "ripemd160": { + "version": "0.2.0", + "from": "https://registry.npmjs.org/ripemd160/-/ripemd160-0.2.0.tgz", + "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-0.2.0.tgz" + }, + "sha.js": { + "version": "2.2.6", + "from": "https://registry.npmjs.org/sha.js/-/sha.js-2.2.6.tgz", + "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.2.6.tgz" + } + } + }, + "domain-browser": { + "version": "1.1.4", + "from": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.1.4.tgz", + "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.1.4.tgz" + }, + "events": { + "version": "1.0.2", + "from": "https://registry.npmjs.org/events/-/events-1.0.2.tgz", + "resolved": "https://registry.npmjs.org/events/-/events-1.0.2.tgz" + }, + "http-browserify": { + "version": "1.7.0", + "from": "https://registry.npmjs.org/http-browserify/-/http-browserify-1.7.0.tgz", + "resolved": "https://registry.npmjs.org/http-browserify/-/http-browserify-1.7.0.tgz", + "dependencies": { + "Base64": { + "version": "0.2.1", + "from": "https://registry.npmjs.org/Base64/-/Base64-0.2.1.tgz", + "resolved": "https://registry.npmjs.org/Base64/-/Base64-0.2.1.tgz" + }, + "inherits": { + "version": "2.0.1", + "from": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz" + } + } + }, + "https-browserify": { + "version": "0.0.0", + "from": "https://registry.npmjs.org/https-browserify/-/https-browserify-0.0.0.tgz", + "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-0.0.0.tgz" + }, + "os-browserify": { + "version": "0.1.2", + "from": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.1.2.tgz", + "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.1.2.tgz" + }, + "path-browserify": { + "version": "0.0.0", + "from": "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.0.tgz", + "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.0.tgz" + }, + "process": { + "version": "0.11.0", + "from": "https://registry.npmjs.org/process/-/process-0.11.0.tgz", + "resolved": "https://registry.npmjs.org/process/-/process-0.11.0.tgz" + }, + "punycode": { + "version": "1.3.2", + "from": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz" + }, + "querystring-es3": { + "version": "0.2.1", + "from": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz", + "resolved": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz" + }, + "readable-stream": { + "version": "1.1.13", + "from": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.13.tgz", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.13.tgz", + "dependencies": { + "core-util-is": { + "version": "1.0.1", + "from": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.1.tgz", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.1.tgz" + }, + "isarray": { + "version": "0.0.1", + "from": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz" + }, + "inherits": { + "version": "2.0.1", + "from": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz" + } + } + }, + "stream-browserify": { + "version": "1.0.0", + "from": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-1.0.0.tgz", + "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-1.0.0.tgz", + "dependencies": { + "inherits": { + "version": "2.0.1", + "from": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz" + } + } + }, + "string_decoder": { + "version": "0.10.31", + "from": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz" + }, + "timers-browserify": { + "version": "1.4.1", + "from": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-1.4.1.tgz", + "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-1.4.1.tgz" + }, + "tty-browserify": { + "version": "0.0.0", + "from": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.0.tgz", + "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.0.tgz" + }, + "url": { + "version": "0.10.3", + "from": "https://registry.npmjs.org/url/-/url-0.10.3.tgz", + "resolved": "https://registry.npmjs.org/url/-/url-0.10.3.tgz", + "dependencies": { + "querystring": { + "version": "0.2.0", + "from": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", + "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz" + } + } + }, + "util": { + "version": "0.10.3", + "from": "https://registry.npmjs.org/util/-/util-0.10.3.tgz", + "resolved": "https://registry.npmjs.org/util/-/util-0.10.3.tgz", + "dependencies": { + "inherits": { + "version": "2.0.1", + "from": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz" + } + } + }, + "vm-browserify": { + "version": "0.0.4", + "from": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-0.0.4.tgz", + "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-0.0.4.tgz", + "dependencies": { + "indexof": { + "version": "0.0.1", + "from": "https://registry.npmjs.org/indexof/-/indexof-0.0.1.tgz", + "resolved": "https://registry.npmjs.org/indexof/-/indexof-0.0.1.tgz" + } + } + } + } + }, + "react": { + "version": "0.13.3", + "from": "https://registry.npmjs.org/react/-/react-0.13.3.tgz", + "resolved": "https://registry.npmjs.org/react/-/react-0.13.3.tgz", + "dependencies": { + "envify": { + "version": "3.4.0", + "from": "https://registry.npmjs.org/envify/-/envify-3.4.0.tgz", + "resolved": "https://registry.npmjs.org/envify/-/envify-3.4.0.tgz", + "dependencies": { + "through": { + "version": "2.3.7", + "from": "https://registry.npmjs.org/through/-/through-2.3.7.tgz", + "resolved": "https://registry.npmjs.org/through/-/through-2.3.7.tgz" + }, + "jstransform": { + "version": "10.1.0", + "from": "https://registry.npmjs.org/jstransform/-/jstransform-10.1.0.tgz", + "resolved": "https://registry.npmjs.org/jstransform/-/jstransform-10.1.0.tgz", + "dependencies": { + "base62": { + "version": "0.1.1", + "from": "https://registry.npmjs.org/base62/-/base62-0.1.1.tgz", + "resolved": "https://registry.npmjs.org/base62/-/base62-0.1.1.tgz" + }, + "esprima-fb": { + "version": "13001.1001.0-dev-harmony-fb", + "from": "https://registry.npmjs.org/esprima-fb/-/esprima-fb-13001.1001.0-dev-harmony-fb.tgz", + "resolved": "https://registry.npmjs.org/esprima-fb/-/esprima-fb-13001.1001.0-dev-harmony-fb.tgz" + }, + "source-map": { + "version": "0.1.31", + "from": "https://registry.npmjs.org/source-map/-/source-map-0.1.31.tgz", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.1.31.tgz", + "dependencies": { + "amdefine": { + "version": "0.1.0", + "from": "https://registry.npmjs.org/amdefine/-/amdefine-0.1.0.tgz", + "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-0.1.0.tgz" + } + } + } + } + } + } + } + } + }, + "react-bootstrap": { + "version": "0.25.1", + "from": "react-bootstrap@>=0.25.1 <0.26.0", + "resolved": "https://registry.npmjs.org/react-bootstrap/-/react-bootstrap-0.25.1.tgz", + "dependencies": { + "babel-runtime": { + "version": "5.8.20", + "from": "babel-runtime@>=5.8.19 <6.0.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-5.8.20.tgz", + "dependencies": { + "core-js": { + "version": "1.1.4", + "from": "core-js@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-1.1.4.tgz" + } + } + }, + "classnames": { + "version": "2.1.3", + "from": "classnames@>=2.1.3 <3.0.0", + "resolved": "https://registry.npmjs.org/classnames/-/classnames-2.1.3.tgz" + }, + "dom-helpers": { + "version": "2.4.0", + "from": "dom-helpers@>=2.2.4 <3.0.0", + "resolved": "https://registry.npmjs.org/dom-helpers/-/dom-helpers-2.4.0.tgz" + }, + "keycode": { + "version": "2.1.0", + "from": "keycode@>=2.0.0 <3.0.0", + "resolved": "https://registry.npmjs.org/keycode/-/keycode-2.1.0.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" + }, + "react-overlays": { + "version": "0.4.4", + "from": "react-overlays@>=0.4.4 <0.5.0", + "resolved": "https://registry.npmjs.org/react-overlays/-/react-overlays-0.4.4.tgz", + "dependencies": { + "react-prop-types": { + "version": "0.2.2", + "from": "react-prop-types@>=0.2.1 <0.3.0", + "resolved": "https://registry.npmjs.org/react-prop-types/-/react-prop-types-0.2.2.tgz" + }, + "warning": { + "version": "2.0.0", + "from": "warning@>=2.0.0 <3.0.0", + "resolved": "https://registry.npmjs.org/warning/-/warning-2.0.0.tgz", + "dependencies": { + "envify": { + "version": "3.4.0", + "from": "envify@>=3.0.0 <4.0.0", + "resolved": "https://registry.npmjs.org/envify/-/envify-3.4.0.tgz", + "dependencies": { + "through": { + "version": "2.3.8", + "from": "through@>=2.3.4 <2.4.0", + "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz" + }, + "jstransform": { + "version": "10.1.0", + "from": "jstransform@>=10.0.1 <11.0.0", + "resolved": "https://registry.npmjs.org/jstransform/-/jstransform-10.1.0.tgz", + "dependencies": { + "base62": { + "version": "0.1.1", + "from": "base62@0.1.1", + "resolved": "https://registry.npmjs.org/base62/-/base62-0.1.1.tgz" + }, + "esprima-fb": { + "version": "13001.1001.0-dev-harmony-fb", + "from": "esprima-fb@13001.1001.0-dev-harmony-fb", + "resolved": "https://registry.npmjs.org/esprima-fb/-/esprima-fb-13001.1001.0-dev-harmony-fb.tgz" + }, + "source-map": { + "version": "0.1.31", + "from": "source-map@0.1.31", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.1.31.tgz", + "dependencies": { + "amdefine": { + "version": "1.0.0", + "from": "amdefine@>=0.0.4", + "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.0.tgz" + } + } + } + } + } + } + } + } + } + } + }, + "uncontrollable": { + "version": "3.1.0", + "from": "uncontrollable@>=3.0.0 <4.0.0", + "resolved": "https://registry.npmjs.org/uncontrollable/-/uncontrollable-3.1.0.tgz", + "dependencies": { + "invariant": { + "version": "2.1.0", + "from": "invariant@>=2.1.0 <3.0.0", + "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.1.0.tgz", + "dependencies": { + "envify": { + "version": "3.4.0", + "from": "envify@>=3.0.0 <4.0.0", + "resolved": "https://registry.npmjs.org/envify/-/envify-3.4.0.tgz", + "dependencies": { + "through": { + "version": "2.3.8", + "from": "through@>=2.3.4 <2.4.0", + "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz" + }, + "jstransform": { + "version": "10.1.0", + "from": "jstransform@>=10.0.1 <11.0.0", + "resolved": "https://registry.npmjs.org/jstransform/-/jstransform-10.1.0.tgz", + "dependencies": { + "base62": { + "version": "0.1.1", + "from": "base62@0.1.1", + "resolved": "https://registry.npmjs.org/base62/-/base62-0.1.1.tgz" + }, + "esprima-fb": { + "version": "13001.1001.0-dev-harmony-fb", + "from": "esprima-fb@13001.1001.0-dev-harmony-fb", + "resolved": "https://registry.npmjs.org/esprima-fb/-/esprima-fb-13001.1001.0-dev-harmony-fb.tgz" + }, + "source-map": { + "version": "0.1.31", + "from": "source-map@0.1.31", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.1.31.tgz", + "dependencies": { + "amdefine": { + "version": "1.0.0", + "from": "amdefine@>=0.0.4", + "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.0.tgz" + } + } + } + } + } + } + } + } + } + } + } + } + }, + "react-redux": { + "version": "2.1.1", + "from": "react-redux@>=2.1.1 <3.0.0", + "resolved": "https://registry.npmjs.org/react-redux/-/react-redux-2.1.1.tgz", + "dependencies": { + "invariant": { + "version": "2.1.0", + "from": "invariant@>=2.0.0 <3.0.0", + "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.1.0.tgz", + "dependencies": { + "envify": { + "version": "3.4.0", + "from": "envify@>=3.0.0 <4.0.0", + "resolved": "https://registry.npmjs.org/envify/-/envify-3.4.0.tgz", + "dependencies": { + "through": { + "version": "2.3.8", + "from": "through@>=2.3.4 <2.4.0", + "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz" + }, + "jstransform": { + "version": "10.1.0", + "from": "jstransform@>=10.0.1 <11.0.0", + "resolved": "https://registry.npmjs.org/jstransform/-/jstransform-10.1.0.tgz", + "dependencies": { + "base62": { + "version": "0.1.1", + "from": "base62@0.1.1", + "resolved": "https://registry.npmjs.org/base62/-/base62-0.1.1.tgz" + }, + "esprima-fb": { + "version": "13001.1001.0-dev-harmony-fb", + "from": "esprima-fb@13001.1001.0-dev-harmony-fb", + "resolved": "https://registry.npmjs.org/esprima-fb/-/esprima-fb-13001.1001.0-dev-harmony-fb.tgz" + }, + "source-map": { + "version": "0.1.31", + "from": "source-map@0.1.31", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.1.31.tgz", + "dependencies": { + "amdefine": { + "version": "1.0.0", + "from": "amdefine@>=0.0.4", + "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.0.tgz" + } + } + } + } + } + } + } + } + } + } + }, + "redux": { + "version": "2.0.0", + "from": "redux@>=2.0.0 <3.0.0", + "resolved": "https://registry.npmjs.org/redux/-/redux-2.0.0.tgz" + }, + "redux-promise": { + "version": "0.5.0", + "from": "redux-promise@*", + "resolved": "https://registry.npmjs.org/redux-promise/-/redux-promise-0.5.0.tgz", + "dependencies": { + "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", + "dependencies": { + "lodash.isplainobject": { + "version": "3.2.0", + "from": "lodash.isplainobject@>=3.2.0 <4.0.0", + "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-3.2.0.tgz", + "dependencies": { + "lodash._basefor": { + "version": "3.0.2", + "from": "lodash._basefor@>=3.0.0 <4.0.0", + "resolved": "https://registry.npmjs.org/lodash._basefor/-/lodash._basefor-3.0.2.tgz" + }, + "lodash.isarguments": { + "version": "3.0.4", + "from": "lodash.isarguments@>=3.0.0 <4.0.0", + "resolved": "https://registry.npmjs.org/lodash.isarguments/-/lodash.isarguments-3.0.4.tgz" + }, + "lodash.keysin": { + "version": "3.0.8", + "from": "lodash.keysin@>=3.0.0 <4.0.0", + "resolved": "https://registry.npmjs.org/lodash.keysin/-/lodash.keysin-3.0.8.tgz", + "dependencies": { + "lodash.isarray": { + "version": "3.0.4", + "from": "lodash.isarray@>=3.0.0 <4.0.0", + "resolved": "https://registry.npmjs.org/lodash.isarray/-/lodash.isarray-3.0.4.tgz" + } + } + } + } + } + } + } + } + }, + "redux-thunk": { + "version": "0.1.0", + "from": "redux-thunk@*", + "resolved": "https://registry.npmjs.org/redux-thunk/-/redux-thunk-0.1.0.tgz" + }, + "sleep": { + "version": "3.0.0", + "from": "sleep@>=3.0.0 <4.0.0", + "resolved": "https://registry.npmjs.org/sleep/-/sleep-3.0.0.tgz", + "dependencies": { + "nan": { + "version": "2.0.0", + "from": "nan@>=2.0.0", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.0.0.tgz" + } + } + }, + "webpack": { + "version": "1.12.1", + "from": "webpack@>=1.12.1 <2.0.0", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-1.12.1.tgz", + "dependencies": { + "async": { + "version": "1.4.2", + "from": "async@>=1.3.0 <2.0.0", + "resolved": "https://registry.npmjs.org/async/-/async-1.4.2.tgz" + }, + "clone": { + "version": "1.0.2", + "from": "clone@>=1.0.2 <2.0.0", + "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.2.tgz" + }, + "enhanced-resolve": { + "version": "0.9.0", + "from": "enhanced-resolve@>=0.9.0 <0.10.0", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-0.9.0.tgz", + "dependencies": { + "graceful-fs": { + "version": "3.0.8", + "from": "graceful-fs@>=3.0.5 <4.0.0", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-3.0.8.tgz" + } + } + }, + "esprima": { + "version": "2.6.0", + "from": "esprima@>=2.5.0 <3.0.0", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-2.6.0.tgz" + }, + "interpret": { + "version": "0.6.5", + "from": "interpret@>=0.6.4 <0.7.0", + "resolved": "https://registry.npmjs.org/interpret/-/interpret-0.6.5.tgz" + }, + "memory-fs": { + "version": "0.2.0", + "from": "memory-fs@>=0.2.0 <0.3.0", + "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.2.0.tgz" + }, + "mkdirp": { + "version": "0.5.1", + "from": "mkdirp@>=0.5.0 <0.6.0", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", + "dependencies": { + "minimist": { + "version": "0.0.8", + "from": "minimist@0.0.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz" + } + } + }, + "optimist": { + "version": "0.6.1", + "from": "optimist@>=0.6.0 <0.7.0", + "resolved": "https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz", + "dependencies": { + "wordwrap": { + "version": "0.0.3", + "from": "wordwrap@>=0.0.2 <0.1.0", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.3.tgz" + }, + "minimist": { + "version": "0.0.10", + "from": "minimist@>=0.0.1 <0.1.0", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.10.tgz" + } + } + }, + "supports-color": { + "version": "3.1.1", + "from": "supports-color@>=3.1.0 <4.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.1.1.tgz", + "dependencies": { + "has-flag": { + "version": "1.0.0", + "from": "has-flag@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz" + } + } + }, + "tapable": { + "version": "0.1.9", + "from": "tapable@>=0.1.8 <0.2.0", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-0.1.9.tgz" + }, + "uglify-js": { + "version": "2.4.24", + "from": "uglify-js@>=2.4.24 <2.5.0", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.4.24.tgz", + "dependencies": { + "async": { + "version": "0.2.10", + "from": "async@>=0.2.6 <0.3.0", + "resolved": "https://registry.npmjs.org/async/-/async-0.2.10.tgz" + }, + "source-map": { + "version": "0.1.34", + "from": "source-map@0.1.34", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.1.34.tgz", + "dependencies": { + "amdefine": { + "version": "1.0.0", + "from": "amdefine@>=0.0.4", + "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.0.tgz" + } + } + }, + "uglify-to-browserify": { + "version": "1.0.2", + "from": "uglify-to-browserify@>=1.0.0 <1.1.0", + "resolved": "https://registry.npmjs.org/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz" + }, + "yargs": { + "version": "3.5.4", + "from": "yargs@>=3.5.4 <3.6.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-3.5.4.tgz", + "dependencies": { + "camelcase": { + "version": "1.2.1", + "from": "camelcase@>=1.0.2 <2.0.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-1.2.1.tgz" + }, + "decamelize": { + "version": "1.0.0", + "from": "decamelize@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.0.0.tgz" + }, + "window-size": { + "version": "0.1.0", + "from": "window-size@0.1.0", + "resolved": "https://registry.npmjs.org/window-size/-/window-size-0.1.0.tgz" + }, + "wordwrap": { + "version": "0.0.2", + "from": "wordwrap@0.0.2", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.2.tgz" + } + } + } + } + }, + "watchpack": { + "version": "0.2.8", + "from": "watchpack@>=0.2.1 <0.3.0", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-0.2.8.tgz", + "dependencies": { + "async": { + "version": "0.9.2", + "from": "async@>=0.9.0 <0.10.0", + "resolved": "https://registry.npmjs.org/async/-/async-0.9.2.tgz" + }, + "chokidar": { + "version": "1.0.5", + "from": "chokidar@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-1.0.5.tgz", + "dependencies": { + "anymatch": { + "version": "1.3.0", + "from": "anymatch@>=1.1.0 <2.0.0", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-1.3.0.tgz", + "dependencies": { + "micromatch": { + "version": "2.2.0", + "from": "micromatch@>=2.1.5 <3.0.0", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-2.2.0.tgz", + "dependencies": { + "arr-diff": { + "version": "1.1.0", + "from": "arr-diff@>=1.0.1 <2.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-1.1.0.tgz", + "dependencies": { + "arr-flatten": { + "version": "1.0.1", + "from": "arr-flatten@>=1.0.1 <2.0.0", + "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.0.1.tgz" + }, + "array-slice": { + "version": "0.2.3", + "from": "array-slice@>=0.2.3 <0.3.0", + "resolved": "https://registry.npmjs.org/array-slice/-/array-slice-0.2.3.tgz" + } + } + }, + "array-unique": { + "version": "0.2.1", + "from": "array-unique@>=0.2.1 <0.3.0", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.2.1.tgz" + }, + "braces": { + "version": "1.8.1", + "from": "braces@>=1.8.0 <2.0.0", + "resolved": "https://registry.npmjs.org/braces/-/braces-1.8.1.tgz", + "dependencies": { + "expand-range": { + "version": "1.8.1", + "from": "expand-range@>=1.8.1 <2.0.0", + "resolved": "https://registry.npmjs.org/expand-range/-/expand-range-1.8.1.tgz", + "dependencies": { + "fill-range": { + "version": "2.2.2", + "from": "fill-range@>=2.1.0 <3.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-2.2.2.tgz", + "dependencies": { + "is-number": { + "version": "1.1.2", + "from": "is-number@>=1.1.2 <2.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-1.1.2.tgz" + }, + "isobject": { + "version": "1.0.2", + "from": "isobject@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-1.0.2.tgz" + }, + "randomatic": { + "version": "1.1.0", + "from": "randomatic@>=1.1.0 <2.0.0", + "resolved": "https://registry.npmjs.org/randomatic/-/randomatic-1.1.0.tgz" + }, + "repeat-string": { + "version": "1.5.2", + "from": "repeat-string@>=1.5.2 <2.0.0", + "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.5.2.tgz" + } + } + } + } + }, + "lazy-cache": { + "version": "0.2.3", + "from": "lazy-cache@>=0.2.3 <0.3.0", + "resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-0.2.3.tgz" + }, + "preserve": { + "version": "0.2.0", + "from": "preserve@>=0.2.0 <0.3.0", + "resolved": "https://registry.npmjs.org/preserve/-/preserve-0.2.0.tgz" + }, + "repeat-element": { + "version": "1.1.2", + "from": "repeat-element@>=1.1.2 <2.0.0", + "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.2.tgz" + } + } + }, + "expand-brackets": { + "version": "0.1.4", + "from": "expand-brackets@>=0.1.1 <0.2.0", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-0.1.4.tgz" + }, + "extglob": { + "version": "0.3.1", + "from": "extglob@>=0.3.0 <0.4.0", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-0.3.1.tgz", + "dependencies": { + "ansi-green": { + "version": "0.1.1", + "from": "ansi-green@>=0.1.1 <0.2.0", + "resolved": "https://registry.npmjs.org/ansi-green/-/ansi-green-0.1.1.tgz", + "dependencies": { + "ansi-wrap": { + "version": "0.1.0", + "from": "ansi-wrap@0.1.0", + "resolved": "https://registry.npmjs.org/ansi-wrap/-/ansi-wrap-0.1.0.tgz" + } + } + }, + "is-extglob": { + "version": "1.0.0", + "from": "is-extglob@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz" + }, + "success-symbol": { + "version": "0.1.0", + "from": "success-symbol@>=0.1.0 <0.2.0", + "resolved": "https://registry.npmjs.org/success-symbol/-/success-symbol-0.1.0.tgz" + } + } + }, + "filename-regex": { + "version": "2.0.0", + "from": "filename-regex@>=2.0.0 <3.0.0", + "resolved": "https://registry.npmjs.org/filename-regex/-/filename-regex-2.0.0.tgz" + }, + "kind-of": { + "version": "1.1.0", + "from": "kind-of@>=1.1.0 <2.0.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-1.1.0.tgz" + }, + "object.omit": { + "version": "1.1.0", + "from": "object.omit@>=1.1.0 <2.0.0", + "resolved": "https://registry.npmjs.org/object.omit/-/object.omit-1.1.0.tgz", + "dependencies": { + "for-own": { + "version": "0.1.3", + "from": "for-own@>=0.1.3 <0.2.0", + "resolved": "https://registry.npmjs.org/for-own/-/for-own-0.1.3.tgz", + "dependencies": { + "for-in": { + "version": "0.1.4", + "from": "for-in@>=0.1.4 <0.2.0", + "resolved": "https://registry.npmjs.org/for-in/-/for-in-0.1.4.tgz" + } + } + }, + "isobject": { + "version": "1.0.2", + "from": "isobject@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-1.0.2.tgz" + } + } + }, + "parse-glob": { + "version": "3.0.2", + "from": "parse-glob@>=3.0.1 <4.0.0", + "resolved": "https://registry.npmjs.org/parse-glob/-/parse-glob-3.0.2.tgz", + "dependencies": { + "glob-base": { + "version": "0.2.0", + "from": "glob-base@>=0.2.0 <0.3.0", + "resolved": "https://registry.npmjs.org/glob-base/-/glob-base-0.2.0.tgz" + }, + "is-dotfile": { + "version": "1.0.1", + "from": "is-dotfile@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/is-dotfile/-/is-dotfile-1.0.1.tgz" + }, + "is-extglob": { + "version": "1.0.0", + "from": "is-extglob@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz" + } + } + }, + "regex-cache": { + "version": "0.4.2", + "from": "regex-cache@>=0.4.2 <0.5.0", + "resolved": "https://registry.npmjs.org/regex-cache/-/regex-cache-0.4.2.tgz", + "dependencies": { + "is-equal-shallow": { + "version": "0.1.3", + "from": "is-equal-shallow@>=0.1.1 <0.2.0", + "resolved": "https://registry.npmjs.org/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz" + }, + "is-primitive": { + "version": "2.0.0", + "from": "is-primitive@>=2.0.0 <3.0.0", + "resolved": "https://registry.npmjs.org/is-primitive/-/is-primitive-2.0.0.tgz" + } + } + } + } + } + } + }, + "arrify": { + "version": "1.0.0", + "from": "arrify@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.0.tgz" + }, + "async-each": { + "version": "0.1.6", + "from": "async-each@>=0.1.5 <0.2.0", + "resolved": "https://registry.npmjs.org/async-each/-/async-each-0.1.6.tgz" + }, + "glob-parent": { + "version": "1.2.0", + "from": "glob-parent@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-1.2.0.tgz" + }, + "is-binary-path": { + "version": "1.0.1", + "from": "is-binary-path@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", + "dependencies": { + "binary-extensions": { + "version": "1.3.1", + "from": "binary-extensions@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.3.1.tgz" + } + } + }, + "is-glob": { + "version": "1.1.3", + "from": "is-glob@>=1.1.3 <2.0.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-1.1.3.tgz" + }, + "path-is-absolute": { + "version": "1.0.0", + "from": "path-is-absolute@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.0.tgz" + }, + "readdirp": { + "version": "1.4.0", + "from": "readdirp@>=1.3.0 <2.0.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-1.4.0.tgz", + "dependencies": { + "graceful-fs": { + "version": "4.1.2", + "from": "graceful-fs@>=4.1.2 <4.2.0", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.2.tgz" + }, + "minimatch": { + "version": "0.2.14", + "from": "minimatch@>=0.2.11 <0.3.0", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-0.2.14.tgz", + "dependencies": { + "lru-cache": { + "version": "2.6.5", + "from": "lru-cache@>=2.0.0 <3.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-2.6.5.tgz" + }, + "sigmund": { + "version": "1.0.1", + "from": "sigmund@>=1.0.0 <1.1.0", + "resolved": "https://registry.npmjs.org/sigmund/-/sigmund-1.0.1.tgz" + } + } + }, + "readable-stream": { + "version": "1.0.33", + "from": "readable-stream@>=1.0.26-2 <1.1.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.33.tgz", + "dependencies": { + "core-util-is": { + "version": "1.0.1", + "from": "core-util-is@>=1.0.0 <1.1.0", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.1.tgz" + }, + "isarray": { + "version": "0.0.1", + "from": "isarray@0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz" + }, + "string_decoder": { + "version": "0.10.31", + "from": "string_decoder@>=0.10.0 <0.11.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz" + }, + "inherits": { + "version": "2.0.1", + "from": "inherits@>=2.0.1 <2.1.0", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz" + } + } + } + } + }, + "fsevents": { + "version": "0.3.8", + "from": "fsevents@>=0.3.1 <0.4.0", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-0.3.8.tgz", + "dependencies": { + "nan": { + "version": "2.0.8", + "from": "nan@>=2.0.2 <3.0.0", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.0.8.tgz" + } + } + } + } + }, + "graceful-fs": { + "version": "3.0.8", + "from": "graceful-fs@>=3.0.5 <4.0.0", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-3.0.8.tgz" + } + } + }, + "webpack-core": { + "version": "0.6.6", + "from": "webpack-core@>=0.6.0 <0.7.0", + "resolved": "https://registry.npmjs.org/webpack-core/-/webpack-core-0.6.6.tgz", + "dependencies": { + "source-map": { + "version": "0.4.4", + "from": "source-map@>=0.4.1 <0.5.0", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz", + "dependencies": { + "amdefine": { + "version": "1.0.0", + "from": "amdefine@>=0.0.4", + "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.0.tgz" + } + } + }, + "source-list-map": { + "version": "0.1.5", + "from": "source-list-map@>=0.1.0 <0.2.0", + "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-0.1.5.tgz" + } + } + } + } + } + } +} diff --git a/client/package.json b/client/package.json index 1682a21b..ad3e0c08 100644 --- a/client/package.json +++ b/client/package.json @@ -23,43 +23,43 @@ }, "homepage": "https://github.com/shakacode/react-webpack-rails-tutorial", "dependencies": { - "babel-core": "^5.8.20", + "babel-core": "^5.8.23", "babel-loader": "^5.3.2", "body-parser": "^1.13.3", - "es5-shim": "^4.1.10", - "es6-promise": "^2.3.0", - "immutable": "^3.7.4", + "es5-shim": "^4.1.12", + "es6-promise": "^3.0.2", + "immutable": "^3.7.5", "imports-loader": "^0.6.4", "jquery": "^2.1.4", "loader-utils": "^0.2.11", "marked": "^0.3.5", "react": "^0.13.3", - "react-bootstrap": "^0.24.3", - "react-redux": "^0.2.2", - "redux": "^1.0.1", + "react-bootstrap": "^0.25.1", + "react-redux": "^2.1.1", + "redux": "^2.0.0", "redux-promise": "^0.5.0", "redux-thunk": "^0.1.0", "sleep": "^3.0.0", - "webpack": "^1.10.5" + "webpack": "^1.12.1" }, "devDependencies": { - "babel-eslint": "^4.0.5", + "babel-eslint": "^4.1.1", "bootstrap-sass": "^3.3.5", - "bootstrap-sass-loader": "^1.0.8", - "css-loader": "^0.15.6", - "eslint": "^1.0.0", - "eslint-config-airbnb": "0.0.7", - "eslint-plugin-react": "^3.1.0", + "bootstrap-sass-loader": "^1.0.9", + "css-loader": "^0.17.0", + "eslint": "^1.3.1", + "eslint-config-airbnb": "0.0.8", + "eslint-plugin-react": "^3.3.1", "esprima-fb": "^15001.1001.0-dev-harmony-fb", "expose-loader": "^0.7.0", - "express": "^4.13.2", + "express": "^4.13.3", "file-loader": "^0.8.4", "gulp": "^3.9.0", "gulp-eslint": "^1.0.0", - "jscs": "^2.0.0", - "node-sass": "^3.2.0", - "react-hot-loader": "^1.2.8", - "sass-loader": "^1.0.3", + "jscs": "^2.1.1", + "node-sass": "^3.3.2", + "react-hot-loader": "^1.3.0", + "sass-loader": "^2.0.1", "style-loader": "^0.12.3", "url-loader": "^0.5.6", "webpack-dev-server": "^1.10.1" From 77a889ac6fe60459bab816df2d580b11c9428212 Mon Sep 17 00:00:00 2001 From: Justin Gordon Date: Tue, 8 Sep 2015 00:12:04 -1000 Subject: [PATCH 044/514] Updated index.html.erb --- app/views/pages/index.html.erb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/views/pages/index.html.erb b/app/views/pages/index.html.erb index 8bd226cd..3c9df8cd 100644 --- a/app/views/pages/index.html.erb +++ b/app/views/pages/index.html.erb @@ -1,4 +1,4 @@ -

    Using React + Redux + Rails Backend

    +

    Using React + Redux + Rails Backend (using the react_on_rails gem)

    • If this work interests you and you're a developer or designer looking for full or part-time remote work: please From 23094510a95a3868855ec7be2887217fe75801f3 Mon Sep 17 00:00:00 2001 From: Justin Gordon Date: Tue, 8 Sep 2015 00:18:03 -1000 Subject: [PATCH 045/514] added expose loader --- client/npm-shrinkwrap.json | 5 +++++ client/package.json | 1 + 2 files changed, 6 insertions(+) diff --git a/client/npm-shrinkwrap.json b/client/npm-shrinkwrap.json index 7b3e9d20..5cf54c50 100644 --- a/client/npm-shrinkwrap.json +++ b/client/npm-shrinkwrap.json @@ -769,6 +769,11 @@ "from": "es6-promise@>=3.0.2 <4.0.0", "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-3.0.2.tgz" }, + "expose-loader": { + "version": "0.7.0", + "from": "expose-loader@*", + "resolved": "https://registry.npmjs.org/expose-loader/-/expose-loader-0.7.0.tgz" + }, "immutable": { "version": "3.7.5", "from": "immutable@>=3.7.5 <4.0.0", diff --git a/client/package.json b/client/package.json index ad3e0c08..0fa3926c 100644 --- a/client/package.json +++ b/client/package.json @@ -28,6 +28,7 @@ "body-parser": "^1.13.3", "es5-shim": "^4.1.12", "es6-promise": "^3.0.2", + "expose-loader": "^0.7.0", "immutable": "^3.7.5", "imports-loader": "^0.6.4", "jquery": "^2.1.4", From 879ecb2f1c1f657c6af4b086d6d6a5e00122ba48 Mon Sep 17 00:00:00 2001 From: dylangrafmyre Date: Thu, 10 Sep 2015 22:41:20 -1000 Subject: [PATCH 046/514] Move jQuery and jQuery-ujs under /client and npm Comment out jquery-rails gem Remove require for jQuery and jQuery-ujs from application.js Change required order of application.js client-bundle and es5-shim Add jquery-ujs to package.json and npm shrinkwrap Remove comments about jQuery from webpack.common.config.js Remove jQuery loader expose from webpack.rails.config.js Comment out jQuery import or external jQuery since it is served from /client. Move jQuery and jQuery-ujs expose to via require to rails_only.jsx entry point. --- Gemfile | 3 +- Gemfile.lock | 5 - README.md | 8 + app/assets/javascripts/application.js | 11 +- client/npm-shrinkwrap.json | 533 +++++++++++++------------- client/package.json | 1 + client/scripts/rails_only.jsx | 4 + client/webpack.common.config.js | 4 - client/webpack.rails.config.js | 9 +- 9 files changed, 290 insertions(+), 288 deletions(-) diff --git a/Gemfile b/Gemfile index 500e7a90..ff0ba542 100644 --- a/Gemfile +++ b/Gemfile @@ -19,7 +19,8 @@ gem "coffee-rails" # gem "therubyracer", platforms: :ruby # Use jquery as the JavaScript library -gem "jquery-rails" +# gem "jquery-rails" + # Turbolinks makes following links in your web application faster. Read more: https://github.com/rails/turbolinks gem "turbolinks" # Build JSON APIs with ease. Read more: https://github.com/rails/jbuilder diff --git a/Gemfile.lock b/Gemfile.lock index a991b50c..42d6e600 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -108,10 +108,6 @@ GEM jbuilder (2.3.1) activesupport (>= 3.0.0, < 5) multi_json (~> 1.2) - jquery-rails (4.0.4) - rails-dom-testing (~> 1.0) - railties (>= 4.2.0) - thor (>= 0.14, < 2.0) json (1.8.3) kgio (2.9.3) launchy (2.4.3) @@ -275,7 +271,6 @@ DEPENDENCIES factory_girl_rails foreman jbuilder - jquery-rails launchy pg phantomjs diff --git a/README.md b/README.md index d8553561..a4c42cc4 100644 --- a/README.md +++ b/README.md @@ -173,6 +173,14 @@ Be sure to see [assets.rake](https://github.com/shakacode/react-webpack-rails-tu The `webpack.rails.config.js` file generates client-bundle.js which is then included by the Rails asset pipeline. +##jQuery with Rails and Webpack +jQuery and jQuery-ujs are not required within `app/assets/javascript/application.js` +and have been moved under`/client` and managed by npm. The modules are exposed as global via entry point +`script/rails_only.jsx` by `webpack.rails.config.js`. + +Please refer to [Considerations for jQuery with Rails and Webpack](http://forum.railsonmaui.com/t/considerations-for-jquery-with-rails-and-webpack/344) for further info. + + ## Sass and images 1. The Webpack server loads the images from the **symlink** of the `app/assets/images` directory. diff --git a/app/assets/javascripts/application.js b/app/assets/javascripts/application.js index 64b09469..34e53597 100644 --- a/app/assets/javascripts/application.js +++ b/app/assets/javascripts/application.js @@ -9,14 +9,11 @@ // // Read Sprockets README (https://github.com/sstephenson/sprockets#sprockets-directives) for details // about supported directives. -// -//= require jquery -//= require jquery_ujs - -//= require bootstrap-sprockets - -// Important to import jquery_ujs before rails-bundle as that patches jquery xhr to use the authenticity token! +// Need to be on top to allow Poltergeist test to work with React. //= require es5-shim/es5-shim + +// It is important that generated/client-bundle must be before bootstrap since it is exposing jQuery and jQuery-ujs //= require generated/client-bundle +//= require bootstrap-sprockets //= require turbolinks diff --git a/client/npm-shrinkwrap.json b/client/npm-shrinkwrap.json index 5cf54c50..07041ee3 100644 --- a/client/npm-shrinkwrap.json +++ b/client/npm-shrinkwrap.json @@ -3,9 +3,9 @@ "version": "1.1.0", "dependencies": { "babel-core": { - "version": "5.8.23", + "version": "5.8.24", "from": "babel-core@>=5.8.23 <6.0.0", - "resolved": "https://registry.npmjs.org/babel-core/-/babel-core-5.8.23.tgz", + "resolved": "https://registry.npmjs.org/babel-core/-/babel-core-5.8.24.tgz", "dependencies": { "babel-plugin-constant-folding": { "version": "1.0.1", @@ -95,9 +95,9 @@ "resolved": "https://registry.npmjs.org/babylon/-/babylon-5.8.23.tgz" }, "bluebird": { - "version": "2.9.34", + "version": "2.10.0", "from": "bluebird@>=2.9.33 <3.0.0", - "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-2.9.34.tgz" + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-2.10.0.tgz" }, "chalk": { "version": "1.1.1", @@ -734,9 +734,9 @@ } }, "type-is": { - "version": "1.6.6", + "version": "1.6.8", "from": "type-is@>=1.6.6 <1.7.0", - "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.6.tgz", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.8.tgz", "dependencies": { "media-typer": { "version": "0.3.0", @@ -744,14 +744,14 @@ "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz" }, "mime-types": { - "version": "2.1.4", - "from": "mime-types@>=2.1.4 <2.2.0", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.4.tgz", + "version": "2.1.6", + "from": "mime-types@>=2.1.6 <2.2.0", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.6.tgz", "dependencies": { "mime-db": { - "version": "1.16.0", - "from": "mime-db@>=1.16.0 <1.17.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.16.0.tgz" + "version": "1.18.0", + "from": "mime-db@>=1.18.0 <1.19.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.18.0.tgz" } } } @@ -760,9 +760,9 @@ } }, "es5-shim": { - "version": "4.1.12", + "version": "4.1.13", "from": "es5-shim@>=4.1.12 <5.0.0", - "resolved": "https://registry.npmjs.org/es5-shim/-/es5-shim-4.1.12.tgz" + "resolved": "https://registry.npmjs.org/es5-shim/-/es5-shim-4.1.13.tgz" }, "es6-promise": { "version": "3.0.2", @@ -771,7 +771,7 @@ }, "expose-loader": { "version": "0.7.0", - "from": "expose-loader@*", + "from": "expose-loader@>=0.7.0 <0.8.0", "resolved": "https://registry.npmjs.org/expose-loader/-/expose-loader-0.7.0.tgz" }, "immutable": { @@ -800,9 +800,14 @@ }, "jquery": { "version": "2.1.4", - "from": "https://registry.npmjs.org/jquery/-/jquery-2.1.4.tgz", + "from": "jquery@>=2.1.4 <3.0.0", "resolved": "https://registry.npmjs.org/jquery/-/jquery-2.1.4.tgz" }, + "jquery-ujs": { + "version": "1.0.4", + "from": "jquery-ujs@>=1.0.4 <2.0.0", + "resolved": "https://registry.npmjs.org/jquery-ujs/-/jquery-ujs-1.0.4.tgz" + }, "loader-utils": { "version": "0.2.11", "from": "loader-utils@>=0.2.11 <0.3.0", @@ -825,272 +830,45 @@ "from": "marked@>=0.3.5 <0.4.0", "resolved": "https://registry.npmjs.org/marked/-/marked-0.3.5.tgz" }, - "node-libs-browser": { - "version": "0.5.0", - "from": "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-0.5.0.tgz", - "resolved": "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-0.5.0.tgz", - "dependencies": { - "assert": { - "version": "1.3.0", - "from": "https://registry.npmjs.org/assert/-/assert-1.3.0.tgz", - "resolved": "https://registry.npmjs.org/assert/-/assert-1.3.0.tgz" - }, - "browserify-zlib": { - "version": "0.1.4", - "from": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.1.4.tgz", - "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.1.4.tgz", - "dependencies": { - "pako": { - "version": "0.2.6", - "from": "https://registry.npmjs.org/pako/-/pako-0.2.6.tgz", - "resolved": "https://registry.npmjs.org/pako/-/pako-0.2.6.tgz" - } - } - }, - "buffer": { - "version": "3.2.2", - "from": "https://registry.npmjs.org/buffer/-/buffer-3.2.2.tgz", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-3.2.2.tgz", - "dependencies": { - "base64-js": { - "version": "0.0.8", - "from": "https://registry.npmjs.org/base64-js/-/base64-js-0.0.8.tgz", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-0.0.8.tgz" - }, - "ieee754": { - "version": "1.1.5", - "from": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.5.tgz", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.5.tgz" - }, - "is-array": { - "version": "1.0.1", - "from": "https://registry.npmjs.org/is-array/-/is-array-1.0.1.tgz", - "resolved": "https://registry.npmjs.org/is-array/-/is-array-1.0.1.tgz" - } - } - }, - "console-browserify": { - "version": "1.1.0", - "from": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.1.0.tgz", - "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.1.0.tgz", - "dependencies": { - "date-now": { - "version": "0.1.4", - "from": "https://registry.npmjs.org/date-now/-/date-now-0.1.4.tgz", - "resolved": "https://registry.npmjs.org/date-now/-/date-now-0.1.4.tgz" - } - } - }, - "constants-browserify": { - "version": "0.0.1", - "from": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-0.0.1.tgz", - "resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-0.0.1.tgz" - }, - "crypto-browserify": { - "version": "3.2.8", - "from": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.2.8.tgz", - "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.2.8.tgz", - "dependencies": { - "pbkdf2-compat": { - "version": "2.0.1", - "from": "https://registry.npmjs.org/pbkdf2-compat/-/pbkdf2-compat-2.0.1.tgz", - "resolved": "https://registry.npmjs.org/pbkdf2-compat/-/pbkdf2-compat-2.0.1.tgz" - }, - "ripemd160": { - "version": "0.2.0", - "from": "https://registry.npmjs.org/ripemd160/-/ripemd160-0.2.0.tgz", - "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-0.2.0.tgz" - }, - "sha.js": { - "version": "2.2.6", - "from": "https://registry.npmjs.org/sha.js/-/sha.js-2.2.6.tgz", - "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.2.6.tgz" - } - } - }, - "domain-browser": { - "version": "1.1.4", - "from": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.1.4.tgz", - "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.1.4.tgz" - }, - "events": { - "version": "1.0.2", - "from": "https://registry.npmjs.org/events/-/events-1.0.2.tgz", - "resolved": "https://registry.npmjs.org/events/-/events-1.0.2.tgz" - }, - "http-browserify": { - "version": "1.7.0", - "from": "https://registry.npmjs.org/http-browserify/-/http-browserify-1.7.0.tgz", - "resolved": "https://registry.npmjs.org/http-browserify/-/http-browserify-1.7.0.tgz", - "dependencies": { - "Base64": { - "version": "0.2.1", - "from": "https://registry.npmjs.org/Base64/-/Base64-0.2.1.tgz", - "resolved": "https://registry.npmjs.org/Base64/-/Base64-0.2.1.tgz" - }, - "inherits": { - "version": "2.0.1", - "from": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz" - } - } - }, - "https-browserify": { - "version": "0.0.0", - "from": "https://registry.npmjs.org/https-browserify/-/https-browserify-0.0.0.tgz", - "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-0.0.0.tgz" - }, - "os-browserify": { - "version": "0.1.2", - "from": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.1.2.tgz", - "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.1.2.tgz" - }, - "path-browserify": { - "version": "0.0.0", - "from": "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.0.tgz", - "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.0.tgz" - }, - "process": { - "version": "0.11.0", - "from": "https://registry.npmjs.org/process/-/process-0.11.0.tgz", - "resolved": "https://registry.npmjs.org/process/-/process-0.11.0.tgz" - }, - "punycode": { - "version": "1.3.2", - "from": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz" - }, - "querystring-es3": { - "version": "0.2.1", - "from": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz", - "resolved": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz" - }, - "readable-stream": { - "version": "1.1.13", - "from": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.13.tgz", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.13.tgz", - "dependencies": { - "core-util-is": { - "version": "1.0.1", - "from": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.1.tgz", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.1.tgz" - }, - "isarray": { - "version": "0.0.1", - "from": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz" - }, - "inherits": { - "version": "2.0.1", - "from": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz" - } - } - }, - "stream-browserify": { - "version": "1.0.0", - "from": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-1.0.0.tgz", - "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-1.0.0.tgz", - "dependencies": { - "inherits": { - "version": "2.0.1", - "from": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz" - } - } - }, - "string_decoder": { - "version": "0.10.31", - "from": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz" - }, - "timers-browserify": { - "version": "1.4.1", - "from": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-1.4.1.tgz", - "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-1.4.1.tgz" - }, - "tty-browserify": { - "version": "0.0.0", - "from": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.0.tgz", - "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.0.tgz" - }, - "url": { - "version": "0.10.3", - "from": "https://registry.npmjs.org/url/-/url-0.10.3.tgz", - "resolved": "https://registry.npmjs.org/url/-/url-0.10.3.tgz", - "dependencies": { - "querystring": { - "version": "0.2.0", - "from": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", - "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz" - } - } - }, - "util": { - "version": "0.10.3", - "from": "https://registry.npmjs.org/util/-/util-0.10.3.tgz", - "resolved": "https://registry.npmjs.org/util/-/util-0.10.3.tgz", - "dependencies": { - "inherits": { - "version": "2.0.1", - "from": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz" - } - } - }, - "vm-browserify": { - "version": "0.0.4", - "from": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-0.0.4.tgz", - "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-0.0.4.tgz", - "dependencies": { - "indexof": { - "version": "0.0.1", - "from": "https://registry.npmjs.org/indexof/-/indexof-0.0.1.tgz", - "resolved": "https://registry.npmjs.org/indexof/-/indexof-0.0.1.tgz" - } - } - } - } - }, "react": { "version": "0.13.3", - "from": "https://registry.npmjs.org/react/-/react-0.13.3.tgz", + "from": "react@>=0.13.3 <0.14.0", "resolved": "https://registry.npmjs.org/react/-/react-0.13.3.tgz", "dependencies": { "envify": { "version": "3.4.0", - "from": "https://registry.npmjs.org/envify/-/envify-3.4.0.tgz", + "from": "envify@>=3.0.0 <4.0.0", "resolved": "https://registry.npmjs.org/envify/-/envify-3.4.0.tgz", "dependencies": { "through": { - "version": "2.3.7", - "from": "https://registry.npmjs.org/through/-/through-2.3.7.tgz", - "resolved": "https://registry.npmjs.org/through/-/through-2.3.7.tgz" + "version": "2.3.8", + "from": "through@>=2.3.4 <2.4.0", + "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz" }, "jstransform": { "version": "10.1.0", - "from": "https://registry.npmjs.org/jstransform/-/jstransform-10.1.0.tgz", + "from": "jstransform@>=10.0.1 <11.0.0", "resolved": "https://registry.npmjs.org/jstransform/-/jstransform-10.1.0.tgz", "dependencies": { "base62": { "version": "0.1.1", - "from": "https://registry.npmjs.org/base62/-/base62-0.1.1.tgz", + "from": "base62@0.1.1", "resolved": "https://registry.npmjs.org/base62/-/base62-0.1.1.tgz" }, "esprima-fb": { "version": "13001.1001.0-dev-harmony-fb", - "from": "https://registry.npmjs.org/esprima-fb/-/esprima-fb-13001.1001.0-dev-harmony-fb.tgz", + "from": "esprima-fb@13001.1001.0-dev-harmony-fb", "resolved": "https://registry.npmjs.org/esprima-fb/-/esprima-fb-13001.1001.0-dev-harmony-fb.tgz" }, "source-map": { "version": "0.1.31", - "from": "https://registry.npmjs.org/source-map/-/source-map-0.1.31.tgz", + "from": "source-map@0.1.31", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.1.31.tgz", "dependencies": { "amdefine": { - "version": "0.1.0", - "from": "https://registry.npmjs.org/amdefine/-/amdefine-0.1.0.tgz", - "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-0.1.0.tgz" + "version": "1.0.0", + "from": "amdefine@>=0.0.4", + "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.0.tgz" } } } @@ -1316,7 +1094,7 @@ }, "redux-promise": { "version": "0.5.0", - "from": "redux-promise@*", + "from": "redux-promise@>=0.5.0 <0.6.0", "resolved": "https://registry.npmjs.org/redux-promise/-/redux-promise-0.5.0.tgz", "dependencies": { "flux-standard-action": { @@ -1359,7 +1137,7 @@ }, "redux-thunk": { "version": "0.1.0", - "from": "redux-thunk@*", + "from": "redux-thunk@>=0.1.0 <0.2.0", "resolved": "https://registry.npmjs.org/redux-thunk/-/redux-thunk-0.1.0.tgz" }, "sleep": { @@ -1368,9 +1146,9 @@ "resolved": "https://registry.npmjs.org/sleep/-/sleep-3.0.0.tgz", "dependencies": { "nan": { - "version": "2.0.0", + "version": "2.0.9", "from": "nan@>=2.0.0", - "resolved": "https://registry.npmjs.org/nan/-/nan-2.0.0.tgz" + "resolved": "https://registry.npmjs.org/nan/-/nan-2.0.9.tgz" } } }, @@ -1396,7 +1174,7 @@ "dependencies": { "graceful-fs": { "version": "3.0.8", - "from": "graceful-fs@>=3.0.5 <4.0.0", + "from": "graceful-fs@>=3.0.2 <4.0.0", "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-3.0.8.tgz" } } @@ -1428,6 +1206,233 @@ } } }, + "node-libs-browser": { + "version": "0.5.2", + "from": "node-libs-browser@>=0.4.0 <=0.6.0", + "resolved": "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-0.5.2.tgz", + "dependencies": { + "assert": { + "version": "1.3.0", + "from": "assert@>=1.1.1 <2.0.0", + "resolved": "https://registry.npmjs.org/assert/-/assert-1.3.0.tgz" + }, + "browserify-zlib": { + "version": "0.1.4", + "from": "browserify-zlib@>=0.1.4 <0.2.0", + "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.1.4.tgz", + "dependencies": { + "pako": { + "version": "0.2.7", + "from": "pako@>=0.2.0 <0.3.0", + "resolved": "https://registry.npmjs.org/pako/-/pako-0.2.7.tgz" + } + } + }, + "buffer": { + "version": "3.4.3", + "from": "buffer@>=3.0.3 <4.0.0", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-3.4.3.tgz", + "dependencies": { + "base64-js": { + "version": "0.0.8", + "from": "base64-js@0.0.8", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-0.0.8.tgz" + }, + "ieee754": { + "version": "1.1.6", + "from": "ieee754@>=1.1.4 <2.0.0", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.6.tgz" + }, + "is-array": { + "version": "1.0.1", + "from": "is-array@>=1.0.1 <2.0.0", + "resolved": "https://registry.npmjs.org/is-array/-/is-array-1.0.1.tgz" + } + } + }, + "console-browserify": { + "version": "1.1.0", + "from": "console-browserify@>=1.1.0 <2.0.0", + "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.1.0.tgz", + "dependencies": { + "date-now": { + "version": "0.1.4", + "from": "date-now@>=0.1.4 <0.2.0", + "resolved": "https://registry.npmjs.org/date-now/-/date-now-0.1.4.tgz" + } + } + }, + "constants-browserify": { + "version": "0.0.1", + "from": "constants-browserify@0.0.1", + "resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-0.0.1.tgz" + }, + "crypto-browserify": { + "version": "3.2.8", + "from": "crypto-browserify@>=3.2.6 <3.3.0", + "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.2.8.tgz", + "dependencies": { + "pbkdf2-compat": { + "version": "2.0.1", + "from": "pbkdf2-compat@2.0.1", + "resolved": "https://registry.npmjs.org/pbkdf2-compat/-/pbkdf2-compat-2.0.1.tgz" + }, + "ripemd160": { + "version": "0.2.0", + "from": "ripemd160@0.2.0", + "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-0.2.0.tgz" + }, + "sha.js": { + "version": "2.2.6", + "from": "sha.js@2.2.6", + "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.2.6.tgz" + } + } + }, + "domain-browser": { + "version": "1.1.4", + "from": "domain-browser@>=1.1.1 <2.0.0", + "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.1.4.tgz" + }, + "events": { + "version": "1.0.2", + "from": "events@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/events/-/events-1.0.2.tgz" + }, + "http-browserify": { + "version": "1.7.0", + "from": "http-browserify@>=1.3.2 <2.0.0", + "resolved": "https://registry.npmjs.org/http-browserify/-/http-browserify-1.7.0.tgz", + "dependencies": { + "Base64": { + "version": "0.2.1", + "from": "Base64@>=0.2.0 <0.3.0", + "resolved": "https://registry.npmjs.org/Base64/-/Base64-0.2.1.tgz" + }, + "inherits": { + "version": "2.0.1", + "from": "inherits@>=2.0.1 <2.1.0", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz" + } + } + }, + "https-browserify": { + "version": "0.0.0", + "from": "https-browserify@0.0.0", + "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-0.0.0.tgz" + }, + "os-browserify": { + "version": "0.1.2", + "from": "os-browserify@>=0.1.2 <0.2.0", + "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.1.2.tgz" + }, + "path-browserify": { + "version": "0.0.0", + "from": "path-browserify@0.0.0", + "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.0.tgz" + }, + "process": { + "version": "0.11.2", + "from": "process@>=0.11.0 <0.12.0", + "resolved": "https://registry.npmjs.org/process/-/process-0.11.2.tgz" + }, + "punycode": { + "version": "1.3.2", + "from": "punycode@>=1.2.4 <2.0.0", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz" + }, + "querystring-es3": { + "version": "0.2.1", + "from": "querystring-es3@>=0.2.0 <0.3.0", + "resolved": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz" + }, + "readable-stream": { + "version": "1.1.13", + "from": "readable-stream@>=1.1.13 <2.0.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.13.tgz", + "dependencies": { + "core-util-is": { + "version": "1.0.1", + "from": "core-util-is@>=1.0.0 <1.1.0", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.1.tgz" + }, + "isarray": { + "version": "0.0.1", + "from": "isarray@0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz" + }, + "inherits": { + "version": "2.0.1", + "from": "inherits@>=2.0.1 <2.1.0", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz" + } + } + }, + "stream-browserify": { + "version": "1.0.0", + "from": "stream-browserify@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-1.0.0.tgz", + "dependencies": { + "inherits": { + "version": "2.0.1", + "from": "inherits@>=2.0.1 <2.1.0", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz" + } + } + }, + "string_decoder": { + "version": "0.10.31", + "from": "string_decoder@>=0.10.25 <0.11.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz" + }, + "timers-browserify": { + "version": "1.4.1", + "from": "timers-browserify@>=1.0.1 <2.0.0", + "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-1.4.1.tgz" + }, + "tty-browserify": { + "version": "0.0.0", + "from": "tty-browserify@0.0.0", + "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.0.tgz" + }, + "url": { + "version": "0.10.3", + "from": "url@>=0.10.1 <0.11.0", + "resolved": "https://registry.npmjs.org/url/-/url-0.10.3.tgz", + "dependencies": { + "querystring": { + "version": "0.2.0", + "from": "querystring@0.2.0", + "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz" + } + } + }, + "util": { + "version": "0.10.3", + "from": "util@>=0.10.3 <0.11.0", + "resolved": "https://registry.npmjs.org/util/-/util-0.10.3.tgz", + "dependencies": { + "inherits": { + "version": "2.0.1", + "from": "inherits@2.0.1", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz" + } + } + }, + "vm-browserify": { + "version": "0.0.4", + "from": "vm-browserify@0.0.4", + "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-0.0.4.tgz", + "dependencies": { + "indexof": { + "version": "0.0.1", + "from": "indexof@0.0.1", + "resolved": "https://registry.npmjs.org/indexof/-/indexof-0.0.1.tgz" + } + } + } + } + }, "optimist": { "version": "0.6.1", "from": "optimist@>=0.6.0 <0.7.0", @@ -1781,7 +1786,7 @@ }, "minimatch": { "version": "0.2.14", - "from": "minimatch@>=0.2.11 <0.3.0", + "from": "minimatch@>=0.2.12 <0.3.0", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-0.2.14.tgz", "dependencies": { "lru-cache": { @@ -1831,9 +1836,9 @@ "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-0.3.8.tgz", "dependencies": { "nan": { - "version": "2.0.8", + "version": "2.0.9", "from": "nan@>=2.0.2 <3.0.0", - "resolved": "https://registry.npmjs.org/nan/-/nan-2.0.8.tgz" + "resolved": "https://registry.npmjs.org/nan/-/nan-2.0.9.tgz" } } } @@ -1841,7 +1846,7 @@ }, "graceful-fs": { "version": "3.0.8", - "from": "graceful-fs@>=3.0.5 <4.0.0", + "from": "graceful-fs@>=3.0.2 <4.0.0", "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-3.0.8.tgz" } } diff --git a/client/package.json b/client/package.json index 0fa3926c..c33a61dc 100644 --- a/client/package.json +++ b/client/package.json @@ -32,6 +32,7 @@ "immutable": "^3.7.5", "imports-loader": "^0.6.4", "jquery": "^2.1.4", + "jquery-ujs": "^1.0.4", "loader-utils": "^0.2.11", "marked": "^0.3.5", "react": "^0.13.3", diff --git a/client/scripts/rails_only.jsx b/client/scripts/rails_only.jsx index e56bcd41..d8178af4 100644 --- a/client/scripts/rails_only.jsx +++ b/client/scripts/rails_only.jsx @@ -8,3 +8,7 @@ require('es5-shim/es5-sham'); // Due to issue: https://github.com/ariya/phantomjs/issues/12401 // Phantomjs does not like promises require('es6-promise').polyfill(); + +require('expose?jQuery!jquery'); +require('expose?$!jquery'); +require('expose?jquery-ujs!jquery-ujs'); diff --git a/client/webpack.common.config.js b/client/webpack.common.config.js index 6a99a7f3..2043ac2c 100644 --- a/client/webpack.common.config.js +++ b/client/webpack.common.config.js @@ -8,10 +8,6 @@ module.exports = { context: __dirname, entry: ['./assets/javascripts/App'], - // In case you wanted to load jQuery from the CDN, this is how you would do it: - // externals: { - // jquery: 'var jQuery' - // }, resolve: { root: [ path.join(__dirname, 'scripts'), diff --git a/client/webpack.rails.config.js b/client/webpack.rails.config.js index 512bab13..54af571f 100644 --- a/client/webpack.rails.config.js +++ b/client/webpack.rails.config.js @@ -12,7 +12,7 @@ config.output = { }; // load jQuery from cdn or rails asset pipeline -config.externals = {jquery: 'var jQuery'}; +// config.externals = {jquery: 'var jQuery'}; // You can add entry points specific to rails here config.entry.push('./scripts/rails_only'); @@ -20,12 +20,7 @@ config.entry.push('./scripts/rails_only'); // See webpack.common.config for adding modules common to both the webpack dev server and rails config.module.loaders.push( - {test: /\.jsx?$/, exclude: /node_modules/, loader: 'babel-loader'}, - - // Next 2 lines expose jQuery and $ to any JavaScript files loaded after client-bundle.js - // in the Rails Asset Pipeline. Thus, load this one prior. - {test: require.resolve('jquery'), loader: 'expose?jQuery'}, - {test: require.resolve('jquery'), loader: 'expose?$'} + {test: /\.jsx?$/, exclude: /node_modules/, loader: 'babel-loader'} ); module.exports = config; From 6beab2379372d8e2fdb7e79e34e71609686a884f Mon Sep 17 00:00:00 2001 From: dylangrafmyre Date: Fri, 11 Sep 2015 06:45:47 -1000 Subject: [PATCH 047/514] Remove jquery-rails gem, remove commented external jQuery from webpack.rails.config.js --- Gemfile | 3 +-- client/webpack.rails.config.js | 3 --- 2 files changed, 1 insertion(+), 5 deletions(-) diff --git a/Gemfile b/Gemfile index ff0ba542..af4c8e05 100644 --- a/Gemfile +++ b/Gemfile @@ -18,8 +18,7 @@ gem "coffee-rails" # See https://github.com/sstephenson/execjs#readme for more supported runtimes # gem "therubyracer", platforms: :ruby -# Use jquery as the JavaScript library -# gem "jquery-rails" +# jquery as the JavaScript library has been moved under /client and managed by npm # Turbolinks makes following links in your web application faster. Read more: https://github.com/rails/turbolinks gem "turbolinks" diff --git a/client/webpack.rails.config.js b/client/webpack.rails.config.js index 54af571f..8236eb5b 100644 --- a/client/webpack.rails.config.js +++ b/client/webpack.rails.config.js @@ -11,9 +11,6 @@ config.output = { path: '../app/assets/javascripts/generated', }; -// load jQuery from cdn or rails asset pipeline -// config.externals = {jquery: 'var jQuery'}; - // You can add entry points specific to rails here config.entry.push('./scripts/rails_only'); From f72f982aa84d4f02e611e958c165ad0122ca4c88 Mon Sep 17 00:00:00 2001 From: dylangrafmyre Date: Fri, 11 Sep 2015 10:19:13 -1000 Subject: [PATCH 048/514] Add travis.yml file for Travis-CI build --- .travis.yml | 14 ++++++++++++++ 1 file changed, 14 insertions(+) create mode 100644 .travis.yml diff --git a/.travis.yml b/.travis.yml new file mode 100644 index 00000000..be537deb --- /dev/null +++ b/.travis.yml @@ -0,0 +1,14 @@ +language: + - ruby +rvm: + - 2.2.2 +install: + - bundle install + - npm install + - cd client && $(npm bin)/webpack --config webpack.rails.config.js +env: + - export RAILS_ENV=test +script: + - bundle exec rake db:schema:load + - bundle exec rake + - bundle exec rake lint From 2ace4439fdecc8e29a17f6d8993ca39c09c1c728 Mon Sep 17 00:00:00 2001 From: dylangrafmyre Date: Fri, 11 Sep 2015 12:19:31 -1000 Subject: [PATCH 049/514] Remove require expose jQuery and jQuery-ujs from script/rails_only Move add jquery and jquery-ujs to entry point in web.common.config.js Add expose-loader for jQuery module/loaders with web.common.config.js --- client/scripts/rails_only.jsx | 4 ---- client/webpack.common.config.js | 3 ++- 2 files changed, 2 insertions(+), 5 deletions(-) diff --git a/client/scripts/rails_only.jsx b/client/scripts/rails_only.jsx index d8178af4..e56bcd41 100644 --- a/client/scripts/rails_only.jsx +++ b/client/scripts/rails_only.jsx @@ -8,7 +8,3 @@ require('es5-shim/es5-sham'); // Due to issue: https://github.com/ariya/phantomjs/issues/12401 // Phantomjs does not like promises require('es6-promise').polyfill(); - -require('expose?jQuery!jquery'); -require('expose?$!jquery'); -require('expose?jquery-ujs!jquery-ujs'); diff --git a/client/webpack.common.config.js b/client/webpack.common.config.js index 2043ac2c..44bce5c4 100644 --- a/client/webpack.common.config.js +++ b/client/webpack.common.config.js @@ -6,7 +6,7 @@ module.exports = { // the project dir context: __dirname, - entry: ['./assets/javascripts/App'], + entry: ['jquery', 'jquery-ujs', './assets/javascripts/App'], resolve: { root: [ @@ -20,6 +20,7 @@ module.exports = { // React is necessary for the client rendering: {test: require.resolve('react'), loader: 'expose?React'}, + {test: require.resolve('jquery'), loader: 'expose?jQuery'} ], }, }; From 78de2cb2ba1916baa0c6f1e48bcd0b61713e8a90 Mon Sep 17 00:00:00 2001 From: dylangrafmyre Date: Fri, 11 Sep 2015 12:23:52 -1000 Subject: [PATCH 050/514] Address eslint linting issue --- client/webpack.common.config.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/client/webpack.common.config.js b/client/webpack.common.config.js index 44bce5c4..aa6fd568 100644 --- a/client/webpack.common.config.js +++ b/client/webpack.common.config.js @@ -20,7 +20,7 @@ module.exports = { // React is necessary for the client rendering: {test: require.resolve('react'), loader: 'expose?React'}, - {test: require.resolve('jquery'), loader: 'expose?jQuery'} + {test: require.resolve('jquery'), loader: 'expose?jQuery'}, ], }, }; From 851dc3c21b3b98d60965cda6368623a3750c3c22 Mon Sep 17 00:00:00 2001 From: dylangrafmyre Date: Fri, 11 Sep 2015 12:29:14 -1000 Subject: [PATCH 051/514] Add additional jquery expose-loader to global $ --- client/webpack.common.config.js | 1 + 1 file changed, 1 insertion(+) diff --git a/client/webpack.common.config.js b/client/webpack.common.config.js index aa6fd568..100712fb 100644 --- a/client/webpack.common.config.js +++ b/client/webpack.common.config.js @@ -21,6 +21,7 @@ module.exports = { // React is necessary for the client rendering: {test: require.resolve('react'), loader: 'expose?React'}, {test: require.resolve('jquery'), loader: 'expose?jQuery'}, + {test: require.resolve('jquery'), loader: 'expose?$'}, ], }, }; From 208dc628df4d693608f830ccd577a60c6c511739 Mon Sep 17 00:00:00 2001 From: dylangrafmyre Date: Fri, 11 Sep 2015 12:32:42 -1000 Subject: [PATCH 052/514] Update README.md referencing the jQuery expose and entry point within webpack.common.config.js --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index a4c42cc4..4003c8d9 100644 --- a/README.md +++ b/README.md @@ -175,8 +175,8 @@ by the Rails asset pipeline. ##jQuery with Rails and Webpack jQuery and jQuery-ujs are not required within `app/assets/javascript/application.js` -and have been moved under`/client` and managed by npm. The modules are exposed as global via entry point -`script/rails_only.jsx` by `webpack.rails.config.js`. +and have been moved under`/client` and managed by npm. The modules are exposed via entry point +by `webpack.common.config.js`. Please refer to [Considerations for jQuery with Rails and Webpack](http://forum.railsonmaui.com/t/considerations-for-jquery-with-rails-and-webpack/344) for further info. From 421cef2b313c3e437ffa7e029f03bee0e41b9444 Mon Sep 17 00:00:00 2001 From: dylangrafmyre Date: Fri, 11 Sep 2015 15:06:17 -1000 Subject: [PATCH 053/514] Addrees suggest comments from PR --- Gemfile | 4 +++- README.md | 3 +++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/Gemfile b/Gemfile index af4c8e05..b95d7b8a 100644 --- a/Gemfile +++ b/Gemfile @@ -18,7 +18,9 @@ gem "coffee-rails" # See https://github.com/sstephenson/execjs#readme for more supported runtimes # gem "therubyracer", platforms: :ruby -# jquery as the JavaScript library has been moved under /client and managed by npm +# jquery as the JavaScript library has been moved under /client and managed by npm. +# It is critical to not include any of the jquery gems when following this pattern or +# else you might have multiple jQuery versions. # Turbolinks makes following links in your web application faster. Read more: https://github.com/rails/turbolinks gem "turbolinks" diff --git a/README.md b/README.md index 4003c8d9..c67badaa 100644 --- a/README.md +++ b/README.md @@ -178,6 +178,9 @@ jQuery and jQuery-ujs are not required within `app/assets/javascript/application and have been moved under`/client` and managed by npm. The modules are exposed via entry point by `webpack.common.config.js`. +In `application.js`, it's critical that any libraries that depend on jQuery come after the inclusion +of the Webpack bundle, such as the twitter bootstrap javascript. + Please refer to [Considerations for jQuery with Rails and Webpack](http://forum.railsonmaui.com/t/considerations-for-jquery-with-rails-and-webpack/344) for further info. From 63d48cfbf751f18da2fb800dddb0594fcf7fd148 Mon Sep 17 00:00:00 2001 From: Sergey Zyablitsky Date: Mon, 14 Sep 2015 14:42:08 +1000 Subject: [PATCH 054/514] url-loader typo fix --- client/webpack.hot.config.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/client/webpack.hot.config.js b/client/webpack.hot.config.js index 919c047a..d63768a8 100644 --- a/client/webpack.hot.config.js +++ b/client/webpack.hot.config.js @@ -36,8 +36,8 @@ config.module.loaders.push( }, // The url-loader uses DataUrls. The file-loader emits files. - {test: /\.woff$/, loader: 'url-loader?limit=10000&minetype=application/font-woff'}, - {test: /\.woff2$/, loader: 'url-loader?limit=10000&minetype=application/font-woff'}, + {test: /\.woff$/, loader: 'url-loader?limit=10000&mimetype=application/font-woff'}, + {test: /\.woff2$/, loader: 'url-loader?limit=10000&mimetype=application/font-woff'}, {test: /\.ttf$/, loader: 'file-loader'}, {test: /\.eot$/, loader: 'file-loader'}, {test: /\.svg$/, loader: 'file-loader'}); From 9b299f5042b23d6e6860c490db1dcb17ec9bb3c1 Mon Sep 17 00:00:00 2001 From: dylangrafmyre Date: Mon, 14 Sep 2015 10:17:35 -1000 Subject: [PATCH 055/514] Add coveralls.io code coverage integration. Add coverall gem to gemfile and bundle install to update Gemfile.lock Add require for coveralls to top of spec/rails_helper.rb. this must be at the top before any rails code loads. Add .coveralls.yml config file and set CI service_name to Codeship. --- .coveralls.yml | 1 + .gitignore | 1 + Gemfile | 1 + Gemfile.lock | 31 +++++++++++++++++++++++++++++++ spec/rails_helper.rb | 2 ++ 5 files changed, 36 insertions(+) create mode 100644 .coveralls.yml diff --git a/.coveralls.yml b/.coveralls.yml new file mode 100644 index 00000000..bc0b7b03 --- /dev/null +++ b/.coveralls.yml @@ -0,0 +1 @@ +service_name: codeship diff --git a/.gitignore b/.gitignore index 84539277..2817fbbc 100644 --- a/.gitignore +++ b/.gitignore @@ -20,6 +20,7 @@ client-bundle.js.map .env node_modules npm-debug.log +/coverage # Ignore bundle dependencies vendor/ruby diff --git a/Gemfile b/Gemfile index b95d7b8a..54b7c0d9 100644 --- a/Gemfile +++ b/Gemfile @@ -80,6 +80,7 @@ group :development, :test do end group :test do + gem "coveralls", require: false gem "rspec-rails" gem "capybara" gem "capybara-screenshot" diff --git a/Gemfile.lock b/Gemfile.lock index 42d6e600..4191861b 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -83,9 +83,18 @@ GEM execjs coffee-script-source (1.9.1.1) columnize (0.9.0) + coveralls (0.8.2) + json (~> 1.8) + rest-client (>= 1.6.8, < 2) + simplecov (~> 0.10.0) + term-ansicolor (~> 1.3) + thor (~> 0.19.1) database_cleaner (1.4.1) debug_inspector (0.0.2) diff-lcs (1.2.5) + docile (1.1.5) + domain_name (0.5.24) + unf (>= 0.0.5, < 1.0.0) erubis (2.7.0) es5-shim-rails (4.0.1) actionpack (>= 3.1) @@ -104,6 +113,8 @@ GEM haml (4.0.6) tilt highline (1.6.21) + http-cookie (1.0.2) + domain_name (~> 0.5) i18n (0.7.0) jbuilder (2.3.1) activesupport (>= 3.0.0, < 5) @@ -120,6 +131,7 @@ GEM mini_portile (0.6.2) minitest (5.7.0) multi_json (1.11.2) + netrc (0.10.3) nokogiri (1.6.6.2) mini_portile (~> 0.6.0) parser (2.2.2.6) @@ -171,6 +183,10 @@ GEM react_on_rails (0.1.1) execjs (~> 2.5) rails (~> 4.2) + rest-client (1.8.0) + http-cookie (>= 1.0.2, < 2.0) + mime-types (>= 1.16, < 3.0) + netrc (~> 0.7) rspec-core (3.3.2) rspec-support (~> 3.3.0) rspec-expectations (3.3.1) @@ -217,6 +233,11 @@ GEM json (~> 1.7, >= 1.7.7) rdoc (~> 4.0) sexp_processor (4.6.0) + simplecov (0.10.0) + docile (~> 1.1.0) + json (~> 1.8) + simplecov-html (~> 0.10.0) + simplecov-html (0.10.0) slop (3.6.0) spring (1.3.6) spring-commands-rspec (1.0.4) @@ -228,10 +249,13 @@ GEM activesupport (>= 3.0) sprockets (>= 2.8, < 4.0) sqlite3 (1.3.10) + term-ansicolor (1.3.2) + tins (~> 1.0) terminal-table (1.5.2) thor (0.19.1) thread_safe (0.3.5) tilt (1.4.1) + tins (1.6.0) turbolinks (2.5.3) coffee-rails tzinfo (1.2.2) @@ -239,6 +263,9 @@ GEM uglifier (2.7.1) execjs (>= 0.3.0) json (>= 1.8.0) + unf (0.1.4) + unf_ext + unf_ext (0.0.7.1) unicorn (4.9.0) kgio (~> 2.6) rack @@ -266,6 +293,7 @@ DEPENDENCIES capybara capybara-screenshot coffee-rails + coveralls database_cleaner es5-shim-rails factory_girl_rails @@ -293,3 +321,6 @@ DEPENDENCIES uglifier unicorn web-console + +BUNDLED WITH + 1.10.6 diff --git a/spec/rails_helper.rb b/spec/rails_helper.rb index ce0f3b6e..a9d42fae 100644 --- a/spec/rails_helper.rb +++ b/spec/rails_helper.rb @@ -1,5 +1,7 @@ # This file is copied to spec/ when you run "rails generate rspec:install" ENV["RAILS_ENV"] ||= "test" +require "coveralls" +Coveralls.wear!("rails") # must occur before any of your application code is required require "spec_helper" require File.expand_path("../../config/environment", __FILE__) require "rspec/rails" From 23c6969e08f9a50b907ab549044704dcccd61280 Mon Sep 17 00:00:00 2001 From: dylangrafmyre Date: Mon, 14 Sep 2015 10:29:50 -1000 Subject: [PATCH 056/514] Add markdown code for code coverage badge within README --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index c67badaa..60e6ac4a 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,5 @@ +[![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, and ES-7 on Rails via WebPack and the react_on_rails gem ## Now with Redux and ES7! Servering Rendering ASAP (Shaka Code's react_on_rails gem)! From 971f56dbfee9ac1d9c09272c1dde4bef41342447 Mon Sep 17 00:00:00 2001 From: dylangrafmyre Date: Mon, 14 Sep 2015 10:44:18 -1000 Subject: [PATCH 057/514] Add Codeship badge markdown code to README --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 60e6ac4a..8afe5e17 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,5 @@ [![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) - +[![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) # React, Redux, React-Bootstrap, and ES-7 on Rails via WebPack and the react_on_rails gem ## Now with Redux and ES7! Servering Rendering ASAP (Shaka Code's react_on_rails gem)! From b20b12c0b433eb5f413d1b29151987f1203387a4 Mon Sep 17 00:00:00 2001 From: dylangrafmyre Date: Mon, 14 Sep 2015 10:54:11 -1000 Subject: [PATCH 058/514] Add travis-ci build badge to README --- README.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 8afe5e17..8f8ddab3 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,7 @@ -[![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) [![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) + # React, Redux, React-Bootstrap, and ES-7 on Rails via WebPack and the react_on_rails gem ## Now with Redux and ES7! Servering Rendering ASAP (Shaka Code's react_on_rails gem)! From 98104dbee6a56addc6d7c8e89c7b473235b47076 Mon Sep 17 00:00:00 2001 From: dylangrafmyre Date: Mon, 14 Sep 2015 11:21:39 -1000 Subject: [PATCH 059/514] Add Gemasium dependencies badge to README --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 8f8ddab3..50fc12a3 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) # React, Redux, React-Bootstrap, and ES-7 on Rails via WebPack and the react_on_rails gem ## Now with Redux and ES7! Servering Rendering ASAP (Shaka Code's react_on_rails gem)! From c5a91b8f91c24c0a666b169c5d518e395799ccdc Mon Sep 17 00:00:00 2001 From: dylangrafmyre Date: Mon, 14 Sep 2015 11:53:13 -1000 Subject: [PATCH 060/514] Upate gem uglifier ~> 2.7.2 to address report security issue with gem --- Gemfile | 2 +- Gemfile.lock | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Gemfile b/Gemfile index 54b7c0d9..30146051 100644 --- a/Gemfile +++ b/Gemfile @@ -12,7 +12,7 @@ gem "pg", group: :production gem "sass-rails" gem "bootstrap-sass", "~> 3.3.1" # Use Uglifier as compressor for JavaScript assets -gem "uglifier" +gem "uglifier", "~> 2.7.2" # Use CoffeeScript for .js.coffee assets and views gem "coffee-rails" # See https://github.com/sstephenson/execjs#readme for more supported runtimes diff --git a/Gemfile.lock b/Gemfile.lock index 4191861b..83102356 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -260,7 +260,7 @@ GEM coffee-rails tzinfo (1.2.2) thread_safe (~> 0.1) - uglifier (2.7.1) + uglifier (2.7.2) execjs (>= 0.3.0) json (>= 1.8.0) unf (0.1.4) @@ -318,7 +318,7 @@ DEPENDENCIES spring-commands-rspec sqlite3 turbolinks - uglifier + uglifier (~> 2.7.2) unicorn web-console From 1c4115480fcb68fc58e656cc6f7849207e87bb95 Mon Sep 17 00:00:00 2001 From: Scott Bronson Date: Wed, 16 Sep 2015 12:34:28 -0700 Subject: [PATCH 061/514] Remove an unneeded section from the README Haven't used capybara-webkit since 07950bd08f63c --- README.md | 23 ----------------------- 1 file changed, 23 deletions(-) diff --git a/README.md b/README.md index 50fc12a3..5e3eeeba 100644 --- a/README.md +++ b/README.md @@ -250,29 +250,6 @@ We have feature tests in /spec/features Run the tests with `rspec`. -If you get errors when running rspec in that it can't find expected DOM elements, then you'll want to -check if you have qt-4.x installed. You need at least qt-5 installed. - -``` -brew info qt -``` -Check the output. Does the version say less than 5? If so, install qt5. -``` -brew uninstall qt -brew install qt5 -``` - -Then you need to run -``` -gem uninstall capybara-webkit -QMAKE=/usr/local/Cellar/qt5/5.4.0/bin/qmake bundle install -``` - -**IMPORTANT** Be sure that the path indicated for the QMAKE corresponds to a correct path. - -Then run `rspec` and you should see the tests have passed. - - # Linting and Code Inspection ## Running Lint and CI tasks * Default rake task runs tests and linting (yes, repeating this!) (see `ci.rake`) From 14482d976481d3857cec8c43e91533ccf971e2ab Mon Sep 17 00:00:00 2001 From: Justin Gordon Date: Wed, 16 Sep 2015 21:47:55 -1000 Subject: [PATCH 062/514] Update README.md --- README.md | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 5e3eeeba..1d181cf2 100644 --- a/README.md +++ b/README.md @@ -12,7 +12,7 @@ By Justin Gordon and the Shaka Code Team, http://www.railsonmaui.com See [pull requests](https://github.com/shakacode/react-webpack-rails-tutorial/pulls?utf8=%E2%9C%93&q=is%3Apr). - If this work interests you and you are looking for full or part-time remote work, please [click here](http://forum.railsonmaui.com/t/railsonmaui-is-hiring-and-partnering-part-time-remote-is-ok/156). -- Please email us at [justin@railsonmaui.com](mailto:justin@railsonmaui.com) if you have a ReactJs + +- Please email us at [justin@shakacode.com](mailto:justin@shakacode.com) if you have a ReactJs + Rails project and are interested in help from our experienced team. - Please file issues for problems and feature requests. - Pull requests are welcome! (and a great way to get on the team) @@ -295,6 +295,4 @@ alias git-cleanup-merged-branches='git branch --merged master | grep -v master | ``` # Open Code of Conduct -This project adheres to the [Open Code of Conduct][code-of-conduct]. By participating, you are expected to uphold this code. -[code-of-conduct](http://todogroup.org/opencodeofconduct/#fetch/opensource@github.com) - +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. From b0b8d19aa54e153dee06fd989597a889f653f81b Mon Sep 17 00:00:00 2001 From: dylangrafmyre Date: Fri, 18 Sep 2015 15:11:00 -1000 Subject: [PATCH 063/514] Update npm module jquery-ujs to 1.1.0-1, npm shrinkwrap --- client/npm-shrinkwrap.json | 97 ++++++++++++++++++++------------------ client/package.json | 2 +- 2 files changed, 53 insertions(+), 46 deletions(-) diff --git a/client/npm-shrinkwrap.json b/client/npm-shrinkwrap.json index 07041ee3..baa40496 100644 --- a/client/npm-shrinkwrap.json +++ b/client/npm-shrinkwrap.json @@ -3,9 +3,9 @@ "version": "1.1.0", "dependencies": { "babel-core": { - "version": "5.8.24", + "version": "5.8.25", "from": "babel-core@>=5.8.23 <6.0.0", - "resolved": "https://registry.npmjs.org/babel-core/-/babel-core-5.8.24.tgz", + "resolved": "https://registry.npmjs.org/babel-core/-/babel-core-5.8.25.tgz", "dependencies": { "babel-plugin-constant-folding": { "version": "1.0.1", @@ -378,9 +378,9 @@ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-1.0.0.tgz", "dependencies": { "lru-cache": { - "version": "2.6.5", + "version": "2.7.0", "from": "lru-cache@>=2.0.0 <3.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-2.6.5.tgz" + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-2.7.0.tgz" }, "sigmund": { "version": "1.0.1", @@ -651,9 +651,9 @@ } }, "body-parser": { - "version": "1.13.3", + "version": "1.14.0", "from": "body-parser@>=1.13.3 <2.0.0", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.13.3.tgz", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.14.0.tgz", "dependencies": { "bytes": { "version": "2.1.0", @@ -678,9 +678,9 @@ } }, "depd": { - "version": "1.0.1", - "from": "depd@>=1.0.1 <1.1.0", - "resolved": "https://registry.npmjs.org/depd/-/depd-1.0.1.tgz" + "version": "1.1.0", + "from": "depd@>=1.1.0 <1.2.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.0.tgz" }, "http-errors": { "version": "1.3.1", @@ -717,14 +717,14 @@ } }, "qs": { - "version": "4.0.0", - "from": "qs@4.0.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-4.0.0.tgz" + "version": "5.1.0", + "from": "qs@5.1.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-5.1.0.tgz" }, "raw-body": { - "version": "2.1.2", - "from": "raw-body@>=2.1.2 <2.2.0", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.1.2.tgz", + "version": "2.1.3", + "from": "raw-body@>=2.1.3 <2.2.0", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.1.3.tgz", "dependencies": { "unpipe": { "version": "1.0.0", @@ -735,7 +735,7 @@ }, "type-is": { "version": "1.6.8", - "from": "type-is@>=1.6.6 <1.7.0", + "from": "type-is@>=1.6.8 <1.7.0", "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.8.tgz", "dependencies": { "media-typer": { @@ -804,9 +804,9 @@ "resolved": "https://registry.npmjs.org/jquery/-/jquery-2.1.4.tgz" }, "jquery-ujs": { - "version": "1.0.4", - "from": "jquery-ujs@>=1.0.4 <2.0.0", - "resolved": "https://registry.npmjs.org/jquery-ujs/-/jquery-ujs-1.0.4.tgz" + "version": "1.1.0-1", + "from": "jquery-ujs@>=1.1.0-1 <2.0.0", + "resolved": "https://registry.npmjs.org/jquery-ujs/-/jquery-ujs-1.1.0-1.tgz" }, "loader-utils": { "version": "0.2.11", @@ -879,14 +879,14 @@ } }, "react-bootstrap": { - "version": "0.25.1", + "version": "0.25.2", "from": "react-bootstrap@>=0.25.1 <0.26.0", - "resolved": "https://registry.npmjs.org/react-bootstrap/-/react-bootstrap-0.25.1.tgz", + "resolved": "https://registry.npmjs.org/react-bootstrap/-/react-bootstrap-0.25.2.tgz", "dependencies": { "babel-runtime": { - "version": "5.8.20", + "version": "5.8.24", "from": "babel-runtime@>=5.8.19 <6.0.0", - "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-5.8.20.tgz", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-5.8.24.tgz", "dependencies": { "core-js": { "version": "1.1.4", @@ -976,9 +976,9 @@ } }, "uncontrollable": { - "version": "3.1.0", + "version": "3.1.2", "from": "uncontrollable@>=3.0.0 <4.0.0", - "resolved": "https://registry.npmjs.org/uncontrollable/-/uncontrollable-3.1.0.tgz", + "resolved": "https://registry.npmjs.org/uncontrollable/-/uncontrollable-3.1.2.tgz", "dependencies": { "invariant": { "version": "2.1.0", @@ -1033,9 +1033,9 @@ } }, "react-redux": { - "version": "2.1.1", + "version": "2.1.2", "from": "react-redux@>=2.1.1 <3.0.0", - "resolved": "https://registry.npmjs.org/react-redux/-/react-redux-2.1.1.tgz", + "resolved": "https://registry.npmjs.org/react-redux/-/react-redux-2.1.2.tgz", "dependencies": { "invariant": { "version": "2.1.0", @@ -1153,9 +1153,9 @@ } }, "webpack": { - "version": "1.12.1", + "version": "1.12.2", "from": "webpack@>=1.12.1 <2.0.0", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-1.12.1.tgz", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-1.12.2.tgz", "dependencies": { "async": { "version": "1.4.2", @@ -1207,9 +1207,9 @@ } }, "node-libs-browser": { - "version": "0.5.2", + "version": "0.5.3", "from": "node-libs-browser@>=0.4.0 <=0.6.0", - "resolved": "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-0.5.2.tgz", + "resolved": "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-0.5.3.tgz", "dependencies": { "assert": { "version": "1.3.0", @@ -1222,16 +1222,16 @@ "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.1.4.tgz", "dependencies": { "pako": { - "version": "0.2.7", + "version": "0.2.8", "from": "pako@>=0.2.0 <0.3.0", - "resolved": "https://registry.npmjs.org/pako/-/pako-0.2.7.tgz" + "resolved": "https://registry.npmjs.org/pako/-/pako-0.2.8.tgz" } } }, "buffer": { - "version": "3.4.3", + "version": "3.5.0", "from": "buffer@>=3.0.3 <4.0.0", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-3.4.3.tgz", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-3.5.0.tgz", "dependencies": { "base64-js": { "version": "0.0.8", @@ -1534,9 +1534,9 @@ "resolved": "https://registry.npmjs.org/async/-/async-0.9.2.tgz" }, "chokidar": { - "version": "1.0.5", + "version": "1.0.6", "from": "chokidar@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-1.0.5.tgz", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-1.0.6.tgz", "dependencies": { "anymatch": { "version": "1.3.0", @@ -1748,9 +1748,16 @@ "resolved": "https://registry.npmjs.org/async-each/-/async-each-0.1.6.tgz" }, "glob-parent": { - "version": "1.2.0", + "version": "1.3.0", "from": "glob-parent@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-1.2.0.tgz" + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-1.3.0.tgz", + "dependencies": { + "is-glob": { + "version": "2.0.0", + "from": "is-glob@>=2.0.0 <3.0.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.0.tgz" + } + } }, "is-binary-path": { "version": "1.0.1", @@ -1790,9 +1797,9 @@ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-0.2.14.tgz", "dependencies": { "lru-cache": { - "version": "2.6.5", - "from": "lru-cache@>=2.0.0 <3.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-2.6.5.tgz" + "version": "2.7.0", + "from": "lru-cache@>=2.6.5 <3.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-2.7.0.tgz" }, "sigmund": { "version": "1.0.1", @@ -1832,7 +1839,7 @@ }, "fsevents": { "version": "0.3.8", - "from": "fsevents@>=0.3.1 <0.4.0", + "from": "fsevents@>=0.3.8 <0.4.0", "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-0.3.8.tgz", "dependencies": { "nan": { @@ -1852,9 +1859,9 @@ } }, "webpack-core": { - "version": "0.6.6", + "version": "0.6.7", "from": "webpack-core@>=0.6.0 <0.7.0", - "resolved": "https://registry.npmjs.org/webpack-core/-/webpack-core-0.6.6.tgz", + "resolved": "https://registry.npmjs.org/webpack-core/-/webpack-core-0.6.7.tgz", "dependencies": { "source-map": { "version": "0.4.4", diff --git a/client/package.json b/client/package.json index c33a61dc..009d4ef4 100644 --- a/client/package.json +++ b/client/package.json @@ -32,7 +32,7 @@ "immutable": "^3.7.5", "imports-loader": "^0.6.4", "jquery": "^2.1.4", - "jquery-ujs": "^1.0.4", + "jquery-ujs": "^1.1.0-1", "loader-utils": "^0.2.11", "marked": "^0.3.5", "react": "^0.13.3", From 7955e1928be0a5068c3cfe30126790ddf36857c2 Mon Sep 17 00:00:00 2001 From: Sergey Zyablitsky Date: Sat, 19 Sep 2015 12:32:05 +0900 Subject: [PATCH 064/514] Upadate README CI configuration --- README.md | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/README.md b/README.md index 1d181cf2..3f42ae61 100644 --- a/README.md +++ b/README.md @@ -250,6 +250,13 @@ We have feature tests in /spec/features Run the tests with `rspec`. +## CI configuration +Add those lines to your CI scripts after `bundle install` +``` +npm install +cd client && $(npm bin)/webpack --config webpack.rails.config.js +``` + # Linting and Code Inspection ## Running Lint and CI tasks * Default rake task runs tests and linting (yes, repeating this!) (see `ci.rake`) From a6e0555eba9e240509ba4984b973fcdf838ab5dd Mon Sep 17 00:00:00 2001 From: Sergey Zyablitsky Date: Sat, 19 Sep 2015 18:19:44 +0900 Subject: [PATCH 065/514] Update README.md fix for new build system --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 3f42ae61..7869b5b2 100644 --- a/README.md +++ b/README.md @@ -254,7 +254,7 @@ Run the tests with `rspec`. Add those lines to your CI scripts after `bundle install` ``` npm install -cd client && $(npm bin)/webpack --config webpack.rails.config.js +cd client && npm run build ``` # Linting and Code Inspection From a88cd1ce4368114f4d96ca88a63f144c1c6de05f Mon Sep 17 00:00:00 2001 From: dylangrafmyre Date: Sun, 20 Sep 2015 21:23:12 -1000 Subject: [PATCH 066/514] Bump react_on_rails gem version to 1.0.3 Add server-bundle.js to .gitignore Add server webpack command to Procfile.dev Create webpack.server.config.js for server side rendering. Add react_on_rails config initializer file Rename App.jsx to ServerApp.jsx to use for App server-side Add clientGlobals.jsx entry point for client-side rendering Add serverGlobals.jsx entry point for server-side rendering Add ClientApp.jsx for client-side App --- .gitignore | 2 ++ Gemfile | 3 ++- Gemfile.lock | 10 +++++++-- Procfile.dev | 1 + app/views/pages/index.html.erb | 2 +- .../javascripts/{App.jsx => ClientApp.jsx} | 2 -- client/assets/javascripts/ServerApp.jsx | 17 +++++++++++++++ client/assets/javascripts/clientGlobals.jsx | 3 +++ client/assets/javascripts/serverGlobals.jsx | 7 +++++++ client/webpack.common.config.js | 2 +- client/webpack.rails.config.js | 2 +- client/webpack.server.config.js | 21 +++++++++++++++++++ config/initializers/react_on_rails.rb | 16 ++++++++++++++ 13 files changed, 80 insertions(+), 8 deletions(-) rename client/assets/javascripts/{App.jsx => ClientApp.jsx} (95%) mode change 100755 => 100644 create mode 100755 client/assets/javascripts/ServerApp.jsx create mode 100644 client/assets/javascripts/clientGlobals.jsx create mode 100644 client/assets/javascripts/serverGlobals.jsx create mode 100644 client/webpack.server.config.js create mode 100644 config/initializers/react_on_rails.rb diff --git a/.gitignore b/.gitignore index 2817fbbc..6a1e6041 100644 --- a/.gitignore +++ b/.gitignore @@ -17,6 +17,8 @@ /public/assets client-bundle.js client-bundle.js.map +server-bundle.js +server-bundle.js.map .env node_modules npm-debug.log diff --git a/Gemfile b/Gemfile index 30146051..bc827d43 100644 --- a/Gemfile +++ b/Gemfile @@ -39,7 +39,8 @@ gem "rails-html-sanitizer" # Use Unicorn as the app server gem "unicorn" -gem "react_on_rails", "~> 0.1.1" +gem "react_on_rails", "~> 0.1.3" +gem "therubyracer" gem "autoprefixer-rails" diff --git a/Gemfile.lock b/Gemfile.lock index 83102356..4254f826 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -123,6 +123,7 @@ GEM kgio (2.9.3) launchy (2.4.3) addressable (~> 2.3) + libv8 (3.16.14.11) loofah (2.0.2) nokogiri (>= 1.5.9) mail (2.6.3) @@ -180,9 +181,10 @@ GEM raindrops (0.15.0) rake (10.4.2) rdoc (4.2.0) - react_on_rails (0.1.1) + react_on_rails (0.1.3) execjs (~> 2.5) rails (~> 4.2) + ref (2.0.0) rest-client (1.8.0) http-cookie (>= 1.0.2, < 2.0) mime-types (>= 1.16, < 3.0) @@ -252,6 +254,9 @@ GEM term-ansicolor (1.3.2) tins (~> 1.0) terminal-table (1.5.2) + therubyracer (0.12.2) + libv8 (~> 3.16.14.0) + ref thor (0.19.1) thread_safe (0.3.5) tilt (1.4.1) @@ -307,7 +312,7 @@ DEPENDENCIES rails-html-sanitizer rails_12factor rainbow - react_on_rails (~> 0.1.1) + react_on_rails (~> 0.1.3) rspec-rails rubocop ruby-lint @@ -317,6 +322,7 @@ DEPENDENCIES spring spring-commands-rspec sqlite3 + therubyracer turbolinks uglifier (~> 2.7.2) unicorn diff --git a/Procfile.dev b/Procfile.dev index 12f93ff4..03105c6e 100644 --- a/Procfile.dev +++ b/Procfile.dev @@ -1,3 +1,4 @@ web: rails s -p 4000 client: sh -c 'cd client && $(npm bin)/webpack -w --config webpack.rails.config.js' +server: sh -c 'cd client && $(npm bin)/webpack -w --config webpack.server.config.js' hot: sh -c 'cd client && node server.js' diff --git a/app/views/pages/index.html.erb b/app/views/pages/index.html.erb index 3c9df8cd..9c514b3c 100644 --- a/app/views/pages/index.html.erb +++ b/app/views/pages/index.html.erb @@ -16,4 +16,4 @@

    -<%= react_component('App', {}, prerender: false) %> +<%= react_component('App', {}, generator_function: true, prerender: true) %> diff --git a/client/assets/javascripts/App.jsx b/client/assets/javascripts/ClientApp.jsx old mode 100755 new mode 100644 similarity index 95% rename from client/assets/javascripts/App.jsx rename to client/assets/javascripts/ClientApp.jsx index 15dadab0..fe28bb08 --- a/client/assets/javascripts/App.jsx +++ b/client/assets/javascripts/ClientApp.jsx @@ -13,7 +13,5 @@ const App = () => { return reactComponent; }; -window.App = App; - // Export is needed for the hot reload server export default App; diff --git a/client/assets/javascripts/ServerApp.jsx b/client/assets/javascripts/ServerApp.jsx new file mode 100755 index 00000000..fe28bb08 --- /dev/null +++ b/client/assets/javascripts/ServerApp.jsx @@ -0,0 +1,17 @@ +import React from 'react'; +import { Provider } from 'react-redux'; + +import CommentScreen from './components/CommentScreen'; +import CommentStore from './stores/CommentStore'; + +const App = () => { + const reactComponent = ( + + {() => } + + ); + return reactComponent; +}; + +// Export is needed for the hot reload server +export default App; diff --git a/client/assets/javascripts/clientGlobals.jsx b/client/assets/javascripts/clientGlobals.jsx new file mode 100644 index 00000000..9d20ad38 --- /dev/null +++ b/client/assets/javascripts/clientGlobals.jsx @@ -0,0 +1,3 @@ +import App from './ClientApp'; + +window.App = App; diff --git a/client/assets/javascripts/serverGlobals.jsx b/client/assets/javascripts/serverGlobals.jsx new file mode 100644 index 00000000..eaddc531 --- /dev/null +++ b/client/assets/javascripts/serverGlobals.jsx @@ -0,0 +1,7 @@ +// Example of React + Redux +// Shows the mapping from the exported object to the name used by the server rendering. +import App from './ServerApp'; + +// We can use the node global object for exposing. +// NodeJs: https://nodejs.org/api/globals.html#globals_global +global.App = App; diff --git a/client/webpack.common.config.js b/client/webpack.common.config.js index 100712fb..83d0c50e 100644 --- a/client/webpack.common.config.js +++ b/client/webpack.common.config.js @@ -6,7 +6,7 @@ module.exports = { // the project dir context: __dirname, - entry: ['jquery', 'jquery-ujs', './assets/javascripts/App'], + entry: ['jquery', 'jquery-ujs'], resolve: { root: [ diff --git a/client/webpack.rails.config.js b/client/webpack.rails.config.js index 8236eb5b..7c99c236 100644 --- a/client/webpack.rails.config.js +++ b/client/webpack.rails.config.js @@ -12,7 +12,7 @@ config.output = { }; // You can add entry points specific to rails here -config.entry.push('./scripts/rails_only'); +config.entry.push('./scripts/rails_only', './assets/javascripts/clientGlobals'); // See webpack.common.config for adding modules common to both the webpack dev server and rails diff --git a/client/webpack.server.config.js b/client/webpack.server.config.js new file mode 100644 index 00000000..fa361ee1 --- /dev/null +++ b/client/webpack.server.config.js @@ -0,0 +1,21 @@ +const config = require('./webpack.common.config'); + +config.output = { + filename: 'server-bundle.js', + path: '../app/assets/javascripts/generated', + + // CRITICAL for enabling Rails to find the globally exposed variables. + libaryTarget: 'this', +}; + +config.entry.push('./assets/javascripts/serverGlobals'); + +config.module.loaders.push( + + { loader: 'babel-loader' }, + + // require Resolve must go first + // 1. React must be exposed (BOILERPLATE) + { test: require.resolve('react'), loader: 'expose?React' } +); +module.exports = config; diff --git a/config/initializers/react_on_rails.rb b/config/initializers/react_on_rails.rb new file mode 100644 index 00000000..a83b7706 --- /dev/null +++ b/config/initializers/react_on_rails.rb @@ -0,0 +1,16 @@ +# Shown below are the defaults for configuration +ReactOnRails.configure do |config| + # Client bundles are configured in application.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/javascripts/generated/server-bundle.js" # This is the default + + # Below options can be overriden by passing to the helper method. + config.prerender = true # default is false + config.generator_function = true # default is false, meaning that you expose ReactComponents directly + config.trace = Rails.env.development? # default is true for development, off otherwise + + # 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. +end From 84263355d579aa4e4d13eaa2493708f322d94403 Mon Sep 17 00:00:00 2001 From: Alex Fedoseev Date: Mon, 21 Sep 2015 12:32:04 +0300 Subject: [PATCH 067/514] Ignore generated js bundles --- .gitignore | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/.gitignore b/.gitignore index 6a1e6041..f9252f3a 100644 --- a/.gitignore +++ b/.gitignore @@ -15,10 +15,6 @@ /log/*.log /tmp /public/assets -client-bundle.js -client-bundle.js.map -server-bundle.js -server-bundle.js.map .env node_modules npm-debug.log @@ -29,3 +25,6 @@ vendor/ruby # RVM gemset .ruby-gemset + +# Generated js bundles +/app/assets/javascripts/generated/* From 73222887e24b0d297a6c34842fe57ec5bf61b44e Mon Sep 17 00:00:00 2001 From: Alex Fedoseev Date: Mon, 21 Sep 2015 15:58:39 +0300 Subject: [PATCH 068/514] Fix server-side rendering with react_on_rails gem --- .../actions/CommentActionCreators.js | 18 +- .../javascripts/utils/CommentsManager.js | 39 +- client/npm-shrinkwrap.json | 676 +++++++++--------- client/package.json | 1 + client/scripts/webpack_only.jsx | 3 - client/webpack.common.config.js | 4 +- client/webpack.hot.config.js | 7 + client/webpack.rails.config.js | 6 +- client/webpack.server.config.js | 9 +- 9 files changed, 398 insertions(+), 365 deletions(-) diff --git a/client/assets/javascripts/actions/CommentActionCreators.js b/client/assets/javascripts/actions/CommentActionCreators.js index 4b4c38e1..5808f2b5 100644 --- a/client/assets/javascripts/actions/CommentActionCreators.js +++ b/client/assets/javascripts/actions/CommentActionCreators.js @@ -43,9 +43,10 @@ export function submitCommentFailure(error) { export function fetchComments() { return dispatch => { - return CommentsManager.fetchComments().then( - comments => dispatch(fetchCommentsSuccess(comments)), - error => dispatch(fetchCommentsFailure(error)) + return ( + CommentsManager.fetchComments() + .then(res => dispatch(fetchCommentsSuccess(res.data))) + .catch(res => dispatch(fetchCommentsFailure(res.data))) ); }; } @@ -57,10 +58,11 @@ function dispatchDecrementAjaxCounter(dispatch) { export function submitComment(comment) { return dispatch => { dispatch(incrementAjaxCounter()); - return CommentsManager.submitComment(comment) - .then( - _comment => dispatch(submitCommentSuccess(_comment)), - error => dispatch(submitCommentFailure(error))) - .then(() => dispatchDecrementAjaxCounter(dispatch)); + return ( + CommentsManager.submitComment(comment) + .then(res => dispatch(submitCommentSuccess(res.data))) + .catch(res => dispatch(submitCommentFailure(res.data))) + .then(() => dispatchDecrementAjaxCounter(dispatch)) + ); }; } diff --git a/client/assets/javascripts/utils/CommentsManager.js b/client/assets/javascripts/utils/CommentsManager.js index 4348018c..e3360b7c 100644 --- a/client/assets/javascripts/utils/CommentsManager.js +++ b/client/assets/javascripts/utils/CommentsManager.js @@ -1,4 +1,4 @@ -import $ from 'jquery'; +import request from 'axios'; const API_URL = 'comments.json'; @@ -10,10 +10,11 @@ const CommentsManager = { * @returns {Promise} - jqXHR result of ajax call. */ fetchComments() { - return Promise.resolve($.ajax({ + return request({ + method: 'GET', url: API_URL, - dataType: 'json', - })); + responseType: 'json', + }); }, /** @@ -23,13 +24,33 @@ const CommentsManager = { * @returns {Promise} - jqXHR result of ajax call. */ submitComment(comment) { - return Promise.resolve($.ajax({ + return request({ + method: 'POST', url: API_URL, - dataType: 'json', - type: 'POST', - data: {comment: comment}, - })); + responseType: 'json', + headers: { + 'X-CSRF-Token': this.getCSRFToken(), + }, + data: { comment }, + }); }, + + /** + * Get CSRF Token from the DOM. + * + * @returns {String} - CSRF Token. + */ + getCSRFToken() { + const metas = document.getElementsByTagName('meta'); + for (let i = 0; i < metas.length; i++) { + const meta = metas[i]; + if (meta.getAttribute('name') === 'csrf-token') { + return meta.getAttribute('content'); + } + } + return null; + }, + }; export default CommentsManager; diff --git a/client/npm-shrinkwrap.json b/client/npm-shrinkwrap.json index baa40496..8943c431 100644 --- a/client/npm-shrinkwrap.json +++ b/client/npm-shrinkwrap.json @@ -2,233 +2,245 @@ "name": "react-webpack-rails-tutorial", "version": "1.1.0", "dependencies": { + "axios": { + "version": "0.5.4", + "from": "axios@*", + "resolved": "https://registry.npmjs.org/axios/-/axios-0.5.4.tgz", + "dependencies": { + "es6-promise": { + "version": "2.3.0", + "from": "es6-promise@>=2.0.1 <3.0.0", + "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-2.3.0.tgz" + } + } + }, "babel-core": { "version": "5.8.25", - "from": "babel-core@>=5.8.23 <6.0.0", + "from": "https://registry.npmjs.org/babel-core/-/babel-core-5.8.25.tgz", "resolved": "https://registry.npmjs.org/babel-core/-/babel-core-5.8.25.tgz", "dependencies": { "babel-plugin-constant-folding": { "version": "1.0.1", - "from": "babel-plugin-constant-folding@>=1.0.1 <2.0.0", + "from": "https://registry.npmjs.org/babel-plugin-constant-folding/-/babel-plugin-constant-folding-1.0.1.tgz", "resolved": "https://registry.npmjs.org/babel-plugin-constant-folding/-/babel-plugin-constant-folding-1.0.1.tgz" }, "babel-plugin-dead-code-elimination": { "version": "1.0.2", - "from": "babel-plugin-dead-code-elimination@>=1.0.2 <2.0.0", + "from": "https://registry.npmjs.org/babel-plugin-dead-code-elimination/-/babel-plugin-dead-code-elimination-1.0.2.tgz", "resolved": "https://registry.npmjs.org/babel-plugin-dead-code-elimination/-/babel-plugin-dead-code-elimination-1.0.2.tgz" }, "babel-plugin-eval": { "version": "1.0.1", - "from": "babel-plugin-eval@>=1.0.1 <2.0.0", + "from": "https://registry.npmjs.org/babel-plugin-eval/-/babel-plugin-eval-1.0.1.tgz", "resolved": "https://registry.npmjs.org/babel-plugin-eval/-/babel-plugin-eval-1.0.1.tgz" }, "babel-plugin-inline-environment-variables": { "version": "1.0.1", - "from": "babel-plugin-inline-environment-variables@>=1.0.1 <2.0.0", + "from": "https://registry.npmjs.org/babel-plugin-inline-environment-variables/-/babel-plugin-inline-environment-variables-1.0.1.tgz", "resolved": "https://registry.npmjs.org/babel-plugin-inline-environment-variables/-/babel-plugin-inline-environment-variables-1.0.1.tgz" }, "babel-plugin-jscript": { "version": "1.0.4", - "from": "babel-plugin-jscript@>=1.0.4 <2.0.0", + "from": "https://registry.npmjs.org/babel-plugin-jscript/-/babel-plugin-jscript-1.0.4.tgz", "resolved": "https://registry.npmjs.org/babel-plugin-jscript/-/babel-plugin-jscript-1.0.4.tgz" }, "babel-plugin-member-expression-literals": { "version": "1.0.1", - "from": "babel-plugin-member-expression-literals@>=1.0.1 <2.0.0", + "from": "https://registry.npmjs.org/babel-plugin-member-expression-literals/-/babel-plugin-member-expression-literals-1.0.1.tgz", "resolved": "https://registry.npmjs.org/babel-plugin-member-expression-literals/-/babel-plugin-member-expression-literals-1.0.1.tgz" }, "babel-plugin-property-literals": { "version": "1.0.1", - "from": "babel-plugin-property-literals@>=1.0.1 <2.0.0", + "from": "https://registry.npmjs.org/babel-plugin-property-literals/-/babel-plugin-property-literals-1.0.1.tgz", "resolved": "https://registry.npmjs.org/babel-plugin-property-literals/-/babel-plugin-property-literals-1.0.1.tgz" }, "babel-plugin-proto-to-assign": { "version": "1.0.4", - "from": "babel-plugin-proto-to-assign@>=1.0.3 <2.0.0", + "from": "https://registry.npmjs.org/babel-plugin-proto-to-assign/-/babel-plugin-proto-to-assign-1.0.4.tgz", "resolved": "https://registry.npmjs.org/babel-plugin-proto-to-assign/-/babel-plugin-proto-to-assign-1.0.4.tgz" }, "babel-plugin-react-constant-elements": { "version": "1.0.3", - "from": "babel-plugin-react-constant-elements@>=1.0.3 <2.0.0", + "from": "https://registry.npmjs.org/babel-plugin-react-constant-elements/-/babel-plugin-react-constant-elements-1.0.3.tgz", "resolved": "https://registry.npmjs.org/babel-plugin-react-constant-elements/-/babel-plugin-react-constant-elements-1.0.3.tgz" }, "babel-plugin-react-display-name": { "version": "1.0.3", - "from": "babel-plugin-react-display-name@>=1.0.3 <2.0.0", + "from": "https://registry.npmjs.org/babel-plugin-react-display-name/-/babel-plugin-react-display-name-1.0.3.tgz", "resolved": "https://registry.npmjs.org/babel-plugin-react-display-name/-/babel-plugin-react-display-name-1.0.3.tgz" }, "babel-plugin-remove-console": { "version": "1.0.1", - "from": "babel-plugin-remove-console@>=1.0.1 <2.0.0", + "from": "https://registry.npmjs.org/babel-plugin-remove-console/-/babel-plugin-remove-console-1.0.1.tgz", "resolved": "https://registry.npmjs.org/babel-plugin-remove-console/-/babel-plugin-remove-console-1.0.1.tgz" }, "babel-plugin-remove-debugger": { "version": "1.0.1", - "from": "babel-plugin-remove-debugger@>=1.0.1 <2.0.0", + "from": "https://registry.npmjs.org/babel-plugin-remove-debugger/-/babel-plugin-remove-debugger-1.0.1.tgz", "resolved": "https://registry.npmjs.org/babel-plugin-remove-debugger/-/babel-plugin-remove-debugger-1.0.1.tgz" }, "babel-plugin-runtime": { "version": "1.0.7", - "from": "babel-plugin-runtime@>=1.0.7 <2.0.0", + "from": "https://registry.npmjs.org/babel-plugin-runtime/-/babel-plugin-runtime-1.0.7.tgz", "resolved": "https://registry.npmjs.org/babel-plugin-runtime/-/babel-plugin-runtime-1.0.7.tgz" }, "babel-plugin-undeclared-variables-check": { "version": "1.0.2", - "from": "babel-plugin-undeclared-variables-check@>=1.0.2 <2.0.0", + "from": "https://registry.npmjs.org/babel-plugin-undeclared-variables-check/-/babel-plugin-undeclared-variables-check-1.0.2.tgz", "resolved": "https://registry.npmjs.org/babel-plugin-undeclared-variables-check/-/babel-plugin-undeclared-variables-check-1.0.2.tgz", "dependencies": { "leven": { "version": "1.0.2", - "from": "leven@>=1.0.2 <2.0.0", + "from": "https://registry.npmjs.org/leven/-/leven-1.0.2.tgz", "resolved": "https://registry.npmjs.org/leven/-/leven-1.0.2.tgz" } } }, "babel-plugin-undefined-to-void": { "version": "1.1.6", - "from": "babel-plugin-undefined-to-void@>=1.1.6 <2.0.0", + "from": "https://registry.npmjs.org/babel-plugin-undefined-to-void/-/babel-plugin-undefined-to-void-1.1.6.tgz", "resolved": "https://registry.npmjs.org/babel-plugin-undefined-to-void/-/babel-plugin-undefined-to-void-1.1.6.tgz" }, "babylon": { "version": "5.8.23", - "from": "babylon@>=5.8.23 <6.0.0", + "from": "https://registry.npmjs.org/babylon/-/babylon-5.8.23.tgz", "resolved": "https://registry.npmjs.org/babylon/-/babylon-5.8.23.tgz" }, "bluebird": { "version": "2.10.0", - "from": "bluebird@>=2.9.33 <3.0.0", + "from": "https://registry.npmjs.org/bluebird/-/bluebird-2.10.0.tgz", "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-2.10.0.tgz" }, "chalk": { "version": "1.1.1", - "from": "chalk@>=1.0.0 <2.0.0", + "from": "https://registry.npmjs.org/chalk/-/chalk-1.1.1.tgz", "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.1.tgz", "dependencies": { "ansi-styles": { "version": "2.1.0", - "from": "ansi-styles@>=2.1.0 <3.0.0", + "from": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.1.0.tgz", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.1.0.tgz" }, "escape-string-regexp": { "version": "1.0.3", - "from": "escape-string-regexp@>=1.0.2 <2.0.0", + "from": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.3.tgz", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.3.tgz" }, "has-ansi": { "version": "2.0.0", - "from": "has-ansi@>=2.0.0 <3.0.0", + "from": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", "dependencies": { "ansi-regex": { "version": "2.0.0", - "from": "ansi-regex@>=2.0.0 <3.0.0", + "from": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.0.0.tgz", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.0.0.tgz" } } }, "strip-ansi": { "version": "3.0.0", - "from": "strip-ansi@>=3.0.0 <4.0.0", + "from": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.0.tgz", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.0.tgz", "dependencies": { "ansi-regex": { "version": "2.0.0", - "from": "ansi-regex@>=2.0.0 <3.0.0", + "from": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.0.0.tgz", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.0.0.tgz" } } }, "supports-color": { "version": "2.0.0", - "from": "supports-color@>=2.0.0 <3.0.0", + "from": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz" } } }, "convert-source-map": { "version": "1.1.1", - "from": "convert-source-map@>=1.1.0 <2.0.0", + "from": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.1.1.tgz", "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.1.1.tgz" }, "core-js": { "version": "1.1.4", - "from": "core-js@>=1.0.0 <2.0.0", + "from": "https://registry.npmjs.org/core-js/-/core-js-1.1.4.tgz", "resolved": "https://registry.npmjs.org/core-js/-/core-js-1.1.4.tgz" }, "debug": { "version": "2.2.0", - "from": "debug@>=2.1.1 <3.0.0", + "from": "https://registry.npmjs.org/debug/-/debug-2.2.0.tgz", "resolved": "https://registry.npmjs.org/debug/-/debug-2.2.0.tgz", "dependencies": { "ms": { "version": "0.7.1", - "from": "ms@0.7.1", + "from": "https://registry.npmjs.org/ms/-/ms-0.7.1.tgz", "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.1.tgz" } } }, "detect-indent": { "version": "3.0.1", - "from": "detect-indent@>=3.0.0 <4.0.0", + "from": "https://registry.npmjs.org/detect-indent/-/detect-indent-3.0.1.tgz", "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-3.0.1.tgz", "dependencies": { "get-stdin": { "version": "4.0.1", - "from": "get-stdin@>=4.0.1 <5.0.0", + "from": "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz", "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz" }, "minimist": { "version": "1.2.0", - "from": "minimist@>=1.1.0 <2.0.0", + "from": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz" } } }, "esutils": { "version": "2.0.2", - "from": "esutils@>=2.0.0 <3.0.0", + "from": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz", "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz" }, "fs-readdir-recursive": { "version": "0.1.2", - "from": "fs-readdir-recursive@>=0.1.0 <0.2.0", + "from": "https://registry.npmjs.org/fs-readdir-recursive/-/fs-readdir-recursive-0.1.2.tgz", "resolved": "https://registry.npmjs.org/fs-readdir-recursive/-/fs-readdir-recursive-0.1.2.tgz" }, "globals": { "version": "6.4.1", - "from": "globals@>=6.4.0 <7.0.0", + "from": "https://registry.npmjs.org/globals/-/globals-6.4.1.tgz", "resolved": "https://registry.npmjs.org/globals/-/globals-6.4.1.tgz" }, "home-or-tmp": { "version": "1.0.0", - "from": "home-or-tmp@>=1.0.0 <2.0.0", + "from": "https://registry.npmjs.org/home-or-tmp/-/home-or-tmp-1.0.0.tgz", "resolved": "https://registry.npmjs.org/home-or-tmp/-/home-or-tmp-1.0.0.tgz", "dependencies": { "os-tmpdir": { "version": "1.0.1", - "from": "os-tmpdir@>=1.0.1 <2.0.0", + "from": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.1.tgz", "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.1.tgz" }, "user-home": { "version": "1.1.1", - "from": "user-home@>=1.1.1 <2.0.0", + "from": "https://registry.npmjs.org/user-home/-/user-home-1.1.1.tgz", "resolved": "https://registry.npmjs.org/user-home/-/user-home-1.1.1.tgz" } } }, "is-integer": { "version": "1.0.6", - "from": "is-integer@>=1.0.4 <2.0.0", + "from": "https://registry.npmjs.org/is-integer/-/is-integer-1.0.6.tgz", "resolved": "https://registry.npmjs.org/is-integer/-/is-integer-1.0.6.tgz", "dependencies": { "is-finite": { "version": "1.0.1", - "from": "is-finite@>=1.0.0 <2.0.0", + "from": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.1.tgz", "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.1.tgz", "dependencies": { "number-is-nan": { "version": "1.0.0", - "from": "number-is-nan@>=1.0.0 <2.0.0", + "from": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.0.tgz", "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.0.tgz" } } @@ -237,49 +249,49 @@ }, "js-tokens": { "version": "1.0.1", - "from": "js-tokens@1.0.1", + "from": "https://registry.npmjs.org/js-tokens/-/js-tokens-1.0.1.tgz", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-1.0.1.tgz" }, "json5": { "version": "0.4.0", - "from": "json5@>=0.4.0 <0.5.0", + "from": "https://registry.npmjs.org/json5/-/json5-0.4.0.tgz", "resolved": "https://registry.npmjs.org/json5/-/json5-0.4.0.tgz" }, "line-numbers": { "version": "0.2.0", - "from": "line-numbers@0.2.0", + "from": "https://registry.npmjs.org/line-numbers/-/line-numbers-0.2.0.tgz", "resolved": "https://registry.npmjs.org/line-numbers/-/line-numbers-0.2.0.tgz", "dependencies": { "left-pad": { "version": "0.0.3", - "from": "left-pad@0.0.3", + "from": "https://registry.npmjs.org/left-pad/-/left-pad-0.0.3.tgz", "resolved": "https://registry.npmjs.org/left-pad/-/left-pad-0.0.3.tgz" } } }, "lodash": { "version": "3.10.1", - "from": "lodash@>=3.10.0 <4.0.0", + "from": "https://registry.npmjs.org/lodash/-/lodash-3.10.1.tgz", "resolved": "https://registry.npmjs.org/lodash/-/lodash-3.10.1.tgz" }, "minimatch": { "version": "2.0.10", - "from": "minimatch@>=2.0.3 <3.0.0", + "from": "https://registry.npmjs.org/minimatch/-/minimatch-2.0.10.tgz", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-2.0.10.tgz", "dependencies": { "brace-expansion": { "version": "1.1.0", - "from": "brace-expansion@>=1.0.0 <2.0.0", + "from": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.0.tgz", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.0.tgz", "dependencies": { "balanced-match": { "version": "0.2.0", - "from": "balanced-match@>=0.2.0 <0.3.0", + "from": "https://registry.npmjs.org/balanced-match/-/balanced-match-0.2.0.tgz", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-0.2.0.tgz" }, "concat-map": { "version": "0.0.1", - "from": "concat-map@0.0.1", + "from": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz" } } @@ -288,115 +300,115 @@ }, "output-file-sync": { "version": "1.1.1", - "from": "output-file-sync@>=1.1.0 <2.0.0", + "from": "https://registry.npmjs.org/output-file-sync/-/output-file-sync-1.1.1.tgz", "resolved": "https://registry.npmjs.org/output-file-sync/-/output-file-sync-1.1.1.tgz", "dependencies": { "mkdirp": { "version": "0.5.1", - "from": "mkdirp@>=0.5.1 <0.6.0", + "from": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", "dependencies": { "minimist": { "version": "0.0.8", - "from": "minimist@0.0.8", + "from": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz" } } }, "xtend": { "version": "4.0.0", - "from": "xtend@>=4.0.0 <5.0.0", + "from": "https://registry.npmjs.org/xtend/-/xtend-4.0.0.tgz", "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.0.tgz" } } }, "path-exists": { "version": "1.0.0", - "from": "path-exists@>=1.0.0 <2.0.0", + "from": "https://registry.npmjs.org/path-exists/-/path-exists-1.0.0.tgz", "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-1.0.0.tgz" }, "path-is-absolute": { "version": "1.0.0", - "from": "path-is-absolute@>=1.0.0 <2.0.0", + "from": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.0.tgz", "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.0.tgz" }, "private": { "version": "0.1.6", - "from": "private@>=0.1.6 <0.2.0", + "from": "https://registry.npmjs.org/private/-/private-0.1.6.tgz", "resolved": "https://registry.npmjs.org/private/-/private-0.1.6.tgz" }, "regenerator": { "version": "0.8.35", - "from": "regenerator@0.8.35", + "from": "https://registry.npmjs.org/regenerator/-/regenerator-0.8.35.tgz", "resolved": "https://registry.npmjs.org/regenerator/-/regenerator-0.8.35.tgz", "dependencies": { "commoner": { "version": "0.10.3", - "from": "commoner@>=0.10.0 <0.11.0", + "from": "https://registry.npmjs.org/commoner/-/commoner-0.10.3.tgz", "resolved": "https://registry.npmjs.org/commoner/-/commoner-0.10.3.tgz", "dependencies": { "q": { "version": "1.1.2", - "from": "q@>=1.1.2 <1.2.0", + "from": "https://registry.npmjs.org/q/-/q-1.1.2.tgz", "resolved": "https://registry.npmjs.org/q/-/q-1.1.2.tgz" }, "commander": { "version": "2.5.1", - "from": "commander@>=2.5.0 <2.6.0", + "from": "https://registry.npmjs.org/commander/-/commander-2.5.1.tgz", "resolved": "https://registry.npmjs.org/commander/-/commander-2.5.1.tgz" }, "graceful-fs": { "version": "3.0.8", - "from": "graceful-fs@>=3.0.4 <3.1.0", + "from": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-3.0.8.tgz", "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-3.0.8.tgz" }, "glob": { "version": "4.2.2", - "from": "glob@>=4.2.1 <4.3.0", + "from": "https://registry.npmjs.org/glob/-/glob-4.2.2.tgz", "resolved": "https://registry.npmjs.org/glob/-/glob-4.2.2.tgz", "dependencies": { "inflight": { "version": "1.0.4", - "from": "inflight@>=1.0.4 <2.0.0", + "from": "https://registry.npmjs.org/inflight/-/inflight-1.0.4.tgz", "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.4.tgz", "dependencies": { "wrappy": { "version": "1.0.1", - "from": "wrappy@>=1.0.0 <2.0.0", + "from": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.1.tgz", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.1.tgz" } } }, "inherits": { "version": "2.0.1", - "from": "inherits@>=2.0.0 <3.0.0", + "from": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz" }, "minimatch": { "version": "1.0.0", - "from": "minimatch@>=1.0.0 <2.0.0", + "from": "https://registry.npmjs.org/minimatch/-/minimatch-1.0.0.tgz", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-1.0.0.tgz", "dependencies": { "lru-cache": { "version": "2.7.0", - "from": "lru-cache@>=2.0.0 <3.0.0", + "from": "https://registry.npmjs.org/lru-cache/-/lru-cache-2.7.0.tgz", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-2.7.0.tgz" }, "sigmund": { "version": "1.0.1", - "from": "sigmund@>=1.0.0 <1.1.0", + "from": "https://registry.npmjs.org/sigmund/-/sigmund-1.0.1.tgz", "resolved": "https://registry.npmjs.org/sigmund/-/sigmund-1.0.1.tgz" } } }, "once": { "version": "1.3.2", - "from": "once@>=1.3.0 <2.0.0", + "from": "https://registry.npmjs.org/once/-/once-1.3.2.tgz", "resolved": "https://registry.npmjs.org/once/-/once-1.3.2.tgz", "dependencies": { "wrappy": { "version": "1.0.1", - "from": "wrappy@>=1.0.0 <2.0.0", + "from": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.1.tgz", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.1.tgz" } } @@ -405,151 +417,151 @@ }, "mkdirp": { "version": "0.5.1", - "from": "mkdirp@>=0.5.0 <0.6.0", + "from": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", "dependencies": { "minimist": { "version": "0.0.8", - "from": "minimist@0.0.8", + "from": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz" } } }, "install": { "version": "0.1.8", - "from": "install@>=0.1.7 <0.2.0", + "from": "https://registry.npmjs.org/install/-/install-0.1.8.tgz", "resolved": "https://registry.npmjs.org/install/-/install-0.1.8.tgz" }, "iconv-lite": { "version": "0.4.11", - "from": "iconv-lite@>=0.4.5 <0.5.0", + "from": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.11.tgz", "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.11.tgz" } } }, "defs": { "version": "1.1.0", - "from": "defs@>=1.1.0 <1.2.0", + "from": "https://registry.npmjs.org/defs/-/defs-1.1.0.tgz", "resolved": "https://registry.npmjs.org/defs/-/defs-1.1.0.tgz", "dependencies": { "alter": { "version": "0.2.0", - "from": "alter@>=0.2.0 <0.3.0", + "from": "https://registry.npmjs.org/alter/-/alter-0.2.0.tgz", "resolved": "https://registry.npmjs.org/alter/-/alter-0.2.0.tgz", "dependencies": { "stable": { "version": "0.1.5", - "from": "stable@>=0.1.3 <0.2.0", + "from": "https://registry.npmjs.org/stable/-/stable-0.1.5.tgz", "resolved": "https://registry.npmjs.org/stable/-/stable-0.1.5.tgz" } } }, "ast-traverse": { "version": "0.1.1", - "from": "ast-traverse@>=0.1.1 <0.2.0", + "from": "https://registry.npmjs.org/ast-traverse/-/ast-traverse-0.1.1.tgz", "resolved": "https://registry.npmjs.org/ast-traverse/-/ast-traverse-0.1.1.tgz" }, "breakable": { "version": "1.0.0", - "from": "breakable@>=1.0.0 <1.1.0", + "from": "https://registry.npmjs.org/breakable/-/breakable-1.0.0.tgz", "resolved": "https://registry.npmjs.org/breakable/-/breakable-1.0.0.tgz" }, "esprima-fb": { "version": "8001.1001.0-dev-harmony-fb", - "from": "esprima-fb@>=8001.1001.0-dev-harmony-fb <8001.1002.0", + "from": "https://registry.npmjs.org/esprima-fb/-/esprima-fb-8001.1001.0-dev-harmony-fb.tgz", "resolved": "https://registry.npmjs.org/esprima-fb/-/esprima-fb-8001.1001.0-dev-harmony-fb.tgz" }, "simple-fmt": { "version": "0.1.0", - "from": "simple-fmt@>=0.1.0 <0.2.0", + "from": "https://registry.npmjs.org/simple-fmt/-/simple-fmt-0.1.0.tgz", "resolved": "https://registry.npmjs.org/simple-fmt/-/simple-fmt-0.1.0.tgz" }, "simple-is": { "version": "0.2.0", - "from": "simple-is@>=0.2.0 <0.3.0", + "from": "https://registry.npmjs.org/simple-is/-/simple-is-0.2.0.tgz", "resolved": "https://registry.npmjs.org/simple-is/-/simple-is-0.2.0.tgz" }, "stringmap": { "version": "0.2.2", - "from": "stringmap@>=0.2.2 <0.3.0", + "from": "https://registry.npmjs.org/stringmap/-/stringmap-0.2.2.tgz", "resolved": "https://registry.npmjs.org/stringmap/-/stringmap-0.2.2.tgz" }, "stringset": { "version": "0.2.1", - "from": "stringset@>=0.2.1 <0.3.0", + "from": "https://registry.npmjs.org/stringset/-/stringset-0.2.1.tgz", "resolved": "https://registry.npmjs.org/stringset/-/stringset-0.2.1.tgz" }, "tryor": { "version": "0.1.2", - "from": "tryor@>=0.1.2 <0.2.0", + "from": "https://registry.npmjs.org/tryor/-/tryor-0.1.2.tgz", "resolved": "https://registry.npmjs.org/tryor/-/tryor-0.1.2.tgz" }, "yargs": { "version": "1.3.3", - "from": "yargs@>=1.3.2 <1.4.0", + "from": "https://registry.npmjs.org/yargs/-/yargs-1.3.3.tgz", "resolved": "https://registry.npmjs.org/yargs/-/yargs-1.3.3.tgz" } } }, "esprima-fb": { "version": "15001.1.0-dev-harmony-fb", - "from": "esprima-fb@>=15001.1.0-dev-harmony-fb <15001.2.0", + "from": "https://registry.npmjs.org/esprima-fb/-/esprima-fb-15001.1.0-dev-harmony-fb.tgz", "resolved": "https://registry.npmjs.org/esprima-fb/-/esprima-fb-15001.1.0-dev-harmony-fb.tgz" }, "recast": { "version": "0.10.24", - "from": "recast@0.10.24", + "from": "https://registry.npmjs.org/recast/-/recast-0.10.24.tgz", "resolved": "https://registry.npmjs.org/recast/-/recast-0.10.24.tgz", "dependencies": { "ast-types": { "version": "0.8.5", - "from": "ast-types@0.8.5", + "from": "https://registry.npmjs.org/ast-types/-/ast-types-0.8.5.tgz", "resolved": "https://registry.npmjs.org/ast-types/-/ast-types-0.8.5.tgz" } } }, "through": { "version": "2.3.8", - "from": "through@>=2.3.6 <2.4.0", + "from": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz" } } }, "regexpu": { "version": "1.2.0", - "from": "regexpu@>=1.1.2 <2.0.0", + "from": "https://registry.npmjs.org/regexpu/-/regexpu-1.2.0.tgz", "resolved": "https://registry.npmjs.org/regexpu/-/regexpu-1.2.0.tgz", "dependencies": { "recast": { "version": "0.10.32", - "from": "recast@>=0.10.6 <0.11.0", + "from": "https://registry.npmjs.org/recast/-/recast-0.10.32.tgz", "resolved": "https://registry.npmjs.org/recast/-/recast-0.10.32.tgz", "dependencies": { "ast-types": { "version": "0.8.11", - "from": "ast-types@0.8.11", + "from": "https://registry.npmjs.org/ast-types/-/ast-types-0.8.11.tgz", "resolved": "https://registry.npmjs.org/ast-types/-/ast-types-0.8.11.tgz" } } }, "regenerate": { "version": "1.2.1", - "from": "regenerate@>=1.2.1 <2.0.0", + "from": "https://registry.npmjs.org/regenerate/-/regenerate-1.2.1.tgz", "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.2.1.tgz" }, "regjsgen": { "version": "0.2.0", - "from": "regjsgen@>=0.2.0 <0.3.0", + "from": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.2.0.tgz", "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.2.0.tgz" }, "regjsparser": { "version": "0.1.5", - "from": "regjsparser@>=0.1.4 <0.2.0", + "from": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.1.5.tgz", "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.1.5.tgz", "dependencies": { "jsesc": { "version": "0.5.0", - "from": "jsesc@>=0.5.0 <0.6.0", + "from": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz" } } @@ -558,17 +570,17 @@ }, "repeating": { "version": "1.1.3", - "from": "repeating@>=1.1.2 <2.0.0", + "from": "https://registry.npmjs.org/repeating/-/repeating-1.1.3.tgz", "resolved": "https://registry.npmjs.org/repeating/-/repeating-1.1.3.tgz", "dependencies": { "is-finite": { "version": "1.0.1", - "from": "is-finite@>=1.0.0 <2.0.0", + "from": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.1.tgz", "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.1.tgz", "dependencies": { "number-is-nan": { "version": "1.0.0", - "from": "number-is-nan@>=1.0.0 <2.0.0", + "from": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.0.tgz", "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.0.tgz" } } @@ -577,44 +589,44 @@ }, "resolve": { "version": "1.1.6", - "from": "resolve@>=1.1.6 <2.0.0", + "from": "https://registry.npmjs.org/resolve/-/resolve-1.1.6.tgz", "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.1.6.tgz" }, "shebang-regex": { "version": "1.0.0", - "from": "shebang-regex@>=1.0.0 <2.0.0", + "from": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz" }, "slash": { "version": "1.0.0", - "from": "slash@>=1.0.0 <2.0.0", + "from": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz", "resolved": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz" }, "source-map": { "version": "0.4.4", - "from": "source-map@>=0.4.0 <0.5.0", + "from": "https://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz", "dependencies": { "amdefine": { "version": "1.0.0", - "from": "amdefine@>=0.0.4", + "from": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.0.tgz", "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.0.tgz" } } }, "source-map-support": { "version": "0.2.10", - "from": "source-map-support@>=0.2.10 <0.3.0", + "from": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.2.10.tgz", "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.2.10.tgz", "dependencies": { "source-map": { "version": "0.1.32", - "from": "source-map@0.1.32", + "from": "https://registry.npmjs.org/source-map/-/source-map-0.1.32.tgz", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.1.32.tgz", "dependencies": { "amdefine": { "version": "1.0.0", - "from": "amdefine@>=0.0.4", + "from": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.0.tgz", "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.0.tgz" } } @@ -623,134 +635,134 @@ }, "to-fast-properties": { "version": "1.0.1", - "from": "to-fast-properties@>=1.0.0 <2.0.0", + "from": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.1.tgz", "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.1.tgz" }, "trim-right": { "version": "1.0.1", - "from": "trim-right@>=1.0.0 <2.0.0", + "from": "https://registry.npmjs.org/trim-right/-/trim-right-1.0.1.tgz", "resolved": "https://registry.npmjs.org/trim-right/-/trim-right-1.0.1.tgz" }, "try-resolve": { "version": "1.0.1", - "from": "try-resolve@>=1.0.0 <2.0.0", + "from": "https://registry.npmjs.org/try-resolve/-/try-resolve-1.0.1.tgz", "resolved": "https://registry.npmjs.org/try-resolve/-/try-resolve-1.0.1.tgz" } } }, "babel-loader": { "version": "5.3.2", - "from": "babel-loader@>=5.3.2 <6.0.0", + "from": "https://registry.npmjs.org/babel-loader/-/babel-loader-5.3.2.tgz", "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-5.3.2.tgz", "dependencies": { "object-assign": { "version": "3.0.0", - "from": "object-assign@>=3.0.0 <4.0.0", + "from": "https://registry.npmjs.org/object-assign/-/object-assign-3.0.0.tgz", "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-3.0.0.tgz" } } }, "body-parser": { "version": "1.14.0", - "from": "body-parser@>=1.13.3 <2.0.0", + "from": "https://registry.npmjs.org/body-parser/-/body-parser-1.14.0.tgz", "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.14.0.tgz", "dependencies": { "bytes": { "version": "2.1.0", - "from": "bytes@2.1.0", + "from": "https://registry.npmjs.org/bytes/-/bytes-2.1.0.tgz", "resolved": "https://registry.npmjs.org/bytes/-/bytes-2.1.0.tgz" }, "content-type": { "version": "1.0.1", - "from": "content-type@>=1.0.1 <1.1.0", + "from": "https://registry.npmjs.org/content-type/-/content-type-1.0.1.tgz", "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.1.tgz" }, "debug": { "version": "2.2.0", - "from": "debug@>=2.2.0 <2.3.0", + "from": "https://registry.npmjs.org/debug/-/debug-2.2.0.tgz", "resolved": "https://registry.npmjs.org/debug/-/debug-2.2.0.tgz", "dependencies": { "ms": { "version": "0.7.1", - "from": "ms@0.7.1", + "from": "https://registry.npmjs.org/ms/-/ms-0.7.1.tgz", "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.1.tgz" } } }, "depd": { "version": "1.1.0", - "from": "depd@>=1.1.0 <1.2.0", + "from": "https://registry.npmjs.org/depd/-/depd-1.1.0.tgz", "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.0.tgz" }, "http-errors": { "version": "1.3.1", - "from": "http-errors@>=1.3.1 <1.4.0", + "from": "https://registry.npmjs.org/http-errors/-/http-errors-1.3.1.tgz", "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.3.1.tgz", "dependencies": { "inherits": { "version": "2.0.1", - "from": "inherits@>=2.0.1 <2.1.0", + "from": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz" }, "statuses": { "version": "1.2.1", - "from": "statuses@>=1.0.0 <2.0.0", + "from": "https://registry.npmjs.org/statuses/-/statuses-1.2.1.tgz", "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.2.1.tgz" } } }, "iconv-lite": { "version": "0.4.11", - "from": "iconv-lite@0.4.11", + "from": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.11.tgz", "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.11.tgz" }, "on-finished": { "version": "2.3.0", - "from": "on-finished@>=2.3.0 <2.4.0", + "from": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", "dependencies": { "ee-first": { "version": "1.1.1", - "from": "ee-first@1.1.1", + "from": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz" } } }, "qs": { "version": "5.1.0", - "from": "qs@5.1.0", + "from": "https://registry.npmjs.org/qs/-/qs-5.1.0.tgz", "resolved": "https://registry.npmjs.org/qs/-/qs-5.1.0.tgz" }, "raw-body": { "version": "2.1.3", - "from": "raw-body@>=2.1.3 <2.2.0", + "from": "https://registry.npmjs.org/raw-body/-/raw-body-2.1.3.tgz", "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.1.3.tgz", "dependencies": { "unpipe": { "version": "1.0.0", - "from": "unpipe@1.0.0", + "from": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz" } } }, "type-is": { "version": "1.6.8", - "from": "type-is@>=1.6.8 <1.7.0", + "from": "https://registry.npmjs.org/type-is/-/type-is-1.6.8.tgz", "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.8.tgz", "dependencies": { "media-typer": { "version": "0.3.0", - "from": "media-typer@0.3.0", + "from": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz" }, "mime-types": { "version": "2.1.6", - "from": "mime-types@>=2.1.6 <2.2.0", + "from": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.6.tgz", "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.6.tgz", "dependencies": { "mime-db": { "version": "1.18.0", - "from": "mime-db@>=1.18.0 <1.19.0", + "from": "https://registry.npmjs.org/mime-db/-/mime-db-1.18.0.tgz", "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.18.0.tgz" } } @@ -761,37 +773,37 @@ }, "es5-shim": { "version": "4.1.13", - "from": "es5-shim@>=4.1.12 <5.0.0", + "from": "https://registry.npmjs.org/es5-shim/-/es5-shim-4.1.13.tgz", "resolved": "https://registry.npmjs.org/es5-shim/-/es5-shim-4.1.13.tgz" }, "es6-promise": { "version": "3.0.2", - "from": "es6-promise@>=3.0.2 <4.0.0", + "from": "https://registry.npmjs.org/es6-promise/-/es6-promise-3.0.2.tgz", "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-3.0.2.tgz" }, "expose-loader": { "version": "0.7.0", - "from": "expose-loader@>=0.7.0 <0.8.0", + "from": "https://registry.npmjs.org/expose-loader/-/expose-loader-0.7.0.tgz", "resolved": "https://registry.npmjs.org/expose-loader/-/expose-loader-0.7.0.tgz" }, "immutable": { "version": "3.7.5", - "from": "immutable@>=3.7.5 <4.0.0", + "from": "https://registry.npmjs.org/immutable/-/immutable-3.7.5.tgz", "resolved": "https://registry.npmjs.org/immutable/-/immutable-3.7.5.tgz" }, "imports-loader": { "version": "0.6.4", - "from": "imports-loader@>=0.6.4 <0.7.0", + "from": "https://registry.npmjs.org/imports-loader/-/imports-loader-0.6.4.tgz", "resolved": "https://registry.npmjs.org/imports-loader/-/imports-loader-0.6.4.tgz", "dependencies": { "source-map": { "version": "0.1.43", - "from": "source-map@>=0.1.0 <0.2.0", + "from": "https://registry.npmjs.org/source-map/-/source-map-0.1.43.tgz", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.1.43.tgz", "dependencies": { "amdefine": { "version": "1.0.0", - "from": "amdefine@>=0.0.4", + "from": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.0.tgz", "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.0.tgz" } } @@ -800,74 +812,74 @@ }, "jquery": { "version": "2.1.4", - "from": "jquery@>=2.1.4 <3.0.0", + "from": "https://registry.npmjs.org/jquery/-/jquery-2.1.4.tgz", "resolved": "https://registry.npmjs.org/jquery/-/jquery-2.1.4.tgz" }, "jquery-ujs": { "version": "1.1.0-1", - "from": "jquery-ujs@>=1.1.0-1 <2.0.0", + "from": "https://registry.npmjs.org/jquery-ujs/-/jquery-ujs-1.1.0-1.tgz", "resolved": "https://registry.npmjs.org/jquery-ujs/-/jquery-ujs-1.1.0-1.tgz" }, "loader-utils": { "version": "0.2.11", - "from": "loader-utils@>=0.2.11 <0.3.0", + "from": "https://registry.npmjs.org/loader-utils/-/loader-utils-0.2.11.tgz", "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-0.2.11.tgz", "dependencies": { "big.js": { "version": "3.1.3", - "from": "big.js@>=3.0.2 <4.0.0", + "from": "https://registry.npmjs.org/big.js/-/big.js-3.1.3.tgz", "resolved": "https://registry.npmjs.org/big.js/-/big.js-3.1.3.tgz" }, "json5": { "version": "0.4.0", - "from": "json5@>=0.4.0 <0.5.0", + "from": "https://registry.npmjs.org/json5/-/json5-0.4.0.tgz", "resolved": "https://registry.npmjs.org/json5/-/json5-0.4.0.tgz" } } }, "marked": { "version": "0.3.5", - "from": "marked@>=0.3.5 <0.4.0", + "from": "https://registry.npmjs.org/marked/-/marked-0.3.5.tgz", "resolved": "https://registry.npmjs.org/marked/-/marked-0.3.5.tgz" }, "react": { "version": "0.13.3", - "from": "react@>=0.13.3 <0.14.0", + "from": "https://registry.npmjs.org/react/-/react-0.13.3.tgz", "resolved": "https://registry.npmjs.org/react/-/react-0.13.3.tgz", "dependencies": { "envify": { "version": "3.4.0", - "from": "envify@>=3.0.0 <4.0.0", + "from": "https://registry.npmjs.org/envify/-/envify-3.4.0.tgz", "resolved": "https://registry.npmjs.org/envify/-/envify-3.4.0.tgz", "dependencies": { "through": { "version": "2.3.8", - "from": "through@>=2.3.4 <2.4.0", + "from": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz" }, "jstransform": { "version": "10.1.0", - "from": "jstransform@>=10.0.1 <11.0.0", + "from": "https://registry.npmjs.org/jstransform/-/jstransform-10.1.0.tgz", "resolved": "https://registry.npmjs.org/jstransform/-/jstransform-10.1.0.tgz", "dependencies": { "base62": { "version": "0.1.1", - "from": "base62@0.1.1", + "from": "https://registry.npmjs.org/base62/-/base62-0.1.1.tgz", "resolved": "https://registry.npmjs.org/base62/-/base62-0.1.1.tgz" }, "esprima-fb": { "version": "13001.1001.0-dev-harmony-fb", - "from": "esprima-fb@13001.1001.0-dev-harmony-fb", + "from": "https://registry.npmjs.org/esprima-fb/-/esprima-fb-13001.1001.0-dev-harmony-fb.tgz", "resolved": "https://registry.npmjs.org/esprima-fb/-/esprima-fb-13001.1001.0-dev-harmony-fb.tgz" }, "source-map": { "version": "0.1.31", - "from": "source-map@0.1.31", + "from": "https://registry.npmjs.org/source-map/-/source-map-0.1.31.tgz", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.1.31.tgz", "dependencies": { "amdefine": { "version": "1.0.0", - "from": "amdefine@>=0.0.4", + "from": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.0.tgz", "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.0.tgz" } } @@ -880,89 +892,89 @@ }, "react-bootstrap": { "version": "0.25.2", - "from": "react-bootstrap@>=0.25.1 <0.26.0", + "from": "https://registry.npmjs.org/react-bootstrap/-/react-bootstrap-0.25.2.tgz", "resolved": "https://registry.npmjs.org/react-bootstrap/-/react-bootstrap-0.25.2.tgz", "dependencies": { "babel-runtime": { "version": "5.8.24", - "from": "babel-runtime@>=5.8.19 <6.0.0", + "from": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-5.8.24.tgz", "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-5.8.24.tgz", "dependencies": { "core-js": { "version": "1.1.4", - "from": "core-js@>=1.0.0 <2.0.0", + "from": "https://registry.npmjs.org/core-js/-/core-js-1.1.4.tgz", "resolved": "https://registry.npmjs.org/core-js/-/core-js-1.1.4.tgz" } } }, "classnames": { "version": "2.1.3", - "from": "classnames@>=2.1.3 <3.0.0", + "from": "https://registry.npmjs.org/classnames/-/classnames-2.1.3.tgz", "resolved": "https://registry.npmjs.org/classnames/-/classnames-2.1.3.tgz" }, "dom-helpers": { "version": "2.4.0", - "from": "dom-helpers@>=2.2.4 <3.0.0", + "from": "https://registry.npmjs.org/dom-helpers/-/dom-helpers-2.4.0.tgz", "resolved": "https://registry.npmjs.org/dom-helpers/-/dom-helpers-2.4.0.tgz" }, "keycode": { "version": "2.1.0", - "from": "keycode@>=2.0.0 <3.0.0", + "from": "https://registry.npmjs.org/keycode/-/keycode-2.1.0.tgz", "resolved": "https://registry.npmjs.org/keycode/-/keycode-2.1.0.tgz" }, "lodash": { "version": "3.10.1", - "from": "lodash@>=3.10.0 <4.0.0", + "from": "https://registry.npmjs.org/lodash/-/lodash-3.10.1.tgz", "resolved": "https://registry.npmjs.org/lodash/-/lodash-3.10.1.tgz" }, "react-overlays": { "version": "0.4.4", - "from": "react-overlays@>=0.4.4 <0.5.0", + "from": "https://registry.npmjs.org/react-overlays/-/react-overlays-0.4.4.tgz", "resolved": "https://registry.npmjs.org/react-overlays/-/react-overlays-0.4.4.tgz", "dependencies": { "react-prop-types": { "version": "0.2.2", - "from": "react-prop-types@>=0.2.1 <0.3.0", + "from": "https://registry.npmjs.org/react-prop-types/-/react-prop-types-0.2.2.tgz", "resolved": "https://registry.npmjs.org/react-prop-types/-/react-prop-types-0.2.2.tgz" }, "warning": { "version": "2.0.0", - "from": "warning@>=2.0.0 <3.0.0", + "from": "https://registry.npmjs.org/warning/-/warning-2.0.0.tgz", "resolved": "https://registry.npmjs.org/warning/-/warning-2.0.0.tgz", "dependencies": { "envify": { "version": "3.4.0", - "from": "envify@>=3.0.0 <4.0.0", + "from": "https://registry.npmjs.org/envify/-/envify-3.4.0.tgz", "resolved": "https://registry.npmjs.org/envify/-/envify-3.4.0.tgz", "dependencies": { "through": { "version": "2.3.8", - "from": "through@>=2.3.4 <2.4.0", + "from": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz" }, "jstransform": { "version": "10.1.0", - "from": "jstransform@>=10.0.1 <11.0.0", + "from": "https://registry.npmjs.org/jstransform/-/jstransform-10.1.0.tgz", "resolved": "https://registry.npmjs.org/jstransform/-/jstransform-10.1.0.tgz", "dependencies": { "base62": { "version": "0.1.1", - "from": "base62@0.1.1", + "from": "https://registry.npmjs.org/base62/-/base62-0.1.1.tgz", "resolved": "https://registry.npmjs.org/base62/-/base62-0.1.1.tgz" }, "esprima-fb": { "version": "13001.1001.0-dev-harmony-fb", - "from": "esprima-fb@13001.1001.0-dev-harmony-fb", + "from": "https://registry.npmjs.org/esprima-fb/-/esprima-fb-13001.1001.0-dev-harmony-fb.tgz", "resolved": "https://registry.npmjs.org/esprima-fb/-/esprima-fb-13001.1001.0-dev-harmony-fb.tgz" }, "source-map": { "version": "0.1.31", - "from": "source-map@0.1.31", + "from": "https://registry.npmjs.org/source-map/-/source-map-0.1.31.tgz", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.1.31.tgz", "dependencies": { "amdefine": { "version": "1.0.0", - "from": "amdefine@>=0.0.4", + "from": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.0.tgz", "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.0.tgz" } } @@ -977,47 +989,47 @@ }, "uncontrollable": { "version": "3.1.2", - "from": "uncontrollable@>=3.0.0 <4.0.0", + "from": "https://registry.npmjs.org/uncontrollable/-/uncontrollable-3.1.2.tgz", "resolved": "https://registry.npmjs.org/uncontrollable/-/uncontrollable-3.1.2.tgz", "dependencies": { "invariant": { "version": "2.1.0", - "from": "invariant@>=2.1.0 <3.0.0", + "from": "https://registry.npmjs.org/invariant/-/invariant-2.1.0.tgz", "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.1.0.tgz", "dependencies": { "envify": { "version": "3.4.0", - "from": "envify@>=3.0.0 <4.0.0", + "from": "https://registry.npmjs.org/envify/-/envify-3.4.0.tgz", "resolved": "https://registry.npmjs.org/envify/-/envify-3.4.0.tgz", "dependencies": { "through": { "version": "2.3.8", - "from": "through@>=2.3.4 <2.4.0", + "from": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz" }, "jstransform": { "version": "10.1.0", - "from": "jstransform@>=10.0.1 <11.0.0", + "from": "https://registry.npmjs.org/jstransform/-/jstransform-10.1.0.tgz", "resolved": "https://registry.npmjs.org/jstransform/-/jstransform-10.1.0.tgz", "dependencies": { "base62": { "version": "0.1.1", - "from": "base62@0.1.1", + "from": "https://registry.npmjs.org/base62/-/base62-0.1.1.tgz", "resolved": "https://registry.npmjs.org/base62/-/base62-0.1.1.tgz" }, "esprima-fb": { "version": "13001.1001.0-dev-harmony-fb", - "from": "esprima-fb@13001.1001.0-dev-harmony-fb", + "from": "https://registry.npmjs.org/esprima-fb/-/esprima-fb-13001.1001.0-dev-harmony-fb.tgz", "resolved": "https://registry.npmjs.org/esprima-fb/-/esprima-fb-13001.1001.0-dev-harmony-fb.tgz" }, "source-map": { "version": "0.1.31", - "from": "source-map@0.1.31", + "from": "https://registry.npmjs.org/source-map/-/source-map-0.1.31.tgz", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.1.31.tgz", "dependencies": { "amdefine": { "version": "1.0.0", - "from": "amdefine@>=0.0.4", + "from": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.0.tgz", "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.0.tgz" } } @@ -1034,47 +1046,47 @@ }, "react-redux": { "version": "2.1.2", - "from": "react-redux@>=2.1.1 <3.0.0", + "from": "https://registry.npmjs.org/react-redux/-/react-redux-2.1.2.tgz", "resolved": "https://registry.npmjs.org/react-redux/-/react-redux-2.1.2.tgz", "dependencies": { "invariant": { "version": "2.1.0", - "from": "invariant@>=2.0.0 <3.0.0", + "from": "https://registry.npmjs.org/invariant/-/invariant-2.1.0.tgz", "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.1.0.tgz", "dependencies": { "envify": { "version": "3.4.0", - "from": "envify@>=3.0.0 <4.0.0", + "from": "https://registry.npmjs.org/envify/-/envify-3.4.0.tgz", "resolved": "https://registry.npmjs.org/envify/-/envify-3.4.0.tgz", "dependencies": { "through": { "version": "2.3.8", - "from": "through@>=2.3.4 <2.4.0", + "from": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz" }, "jstransform": { "version": "10.1.0", - "from": "jstransform@>=10.0.1 <11.0.0", + "from": "https://registry.npmjs.org/jstransform/-/jstransform-10.1.0.tgz", "resolved": "https://registry.npmjs.org/jstransform/-/jstransform-10.1.0.tgz", "dependencies": { "base62": { "version": "0.1.1", - "from": "base62@0.1.1", + "from": "https://registry.npmjs.org/base62/-/base62-0.1.1.tgz", "resolved": "https://registry.npmjs.org/base62/-/base62-0.1.1.tgz" }, "esprima-fb": { "version": "13001.1001.0-dev-harmony-fb", - "from": "esprima-fb@13001.1001.0-dev-harmony-fb", + "from": "https://registry.npmjs.org/esprima-fb/-/esprima-fb-13001.1001.0-dev-harmony-fb.tgz", "resolved": "https://registry.npmjs.org/esprima-fb/-/esprima-fb-13001.1001.0-dev-harmony-fb.tgz" }, "source-map": { "version": "0.1.31", - "from": "source-map@0.1.31", + "from": "https://registry.npmjs.org/source-map/-/source-map-0.1.31.tgz", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.1.31.tgz", "dependencies": { "amdefine": { "version": "1.0.0", - "from": "amdefine@>=0.0.4", + "from": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.0.tgz", "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.0.tgz" } } @@ -1089,42 +1101,42 @@ }, "redux": { "version": "2.0.0", - "from": "redux@>=2.0.0 <3.0.0", + "from": "https://registry.npmjs.org/redux/-/redux-2.0.0.tgz", "resolved": "https://registry.npmjs.org/redux/-/redux-2.0.0.tgz" }, "redux-promise": { "version": "0.5.0", - "from": "redux-promise@>=0.5.0 <0.6.0", + "from": "https://registry.npmjs.org/redux-promise/-/redux-promise-0.5.0.tgz", "resolved": "https://registry.npmjs.org/redux-promise/-/redux-promise-0.5.0.tgz", "dependencies": { "flux-standard-action": { "version": "0.6.0", - "from": "flux-standard-action@0.6.0", + "from": "https://registry.npmjs.org/flux-standard-action/-/flux-standard-action-0.6.0.tgz", "resolved": "https://registry.npmjs.org/flux-standard-action/-/flux-standard-action-0.6.0.tgz", "dependencies": { "lodash.isplainobject": { "version": "3.2.0", - "from": "lodash.isplainobject@>=3.2.0 <4.0.0", + "from": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-3.2.0.tgz", "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-3.2.0.tgz", "dependencies": { "lodash._basefor": { "version": "3.0.2", - "from": "lodash._basefor@>=3.0.0 <4.0.0", + "from": "https://registry.npmjs.org/lodash._basefor/-/lodash._basefor-3.0.2.tgz", "resolved": "https://registry.npmjs.org/lodash._basefor/-/lodash._basefor-3.0.2.tgz" }, "lodash.isarguments": { "version": "3.0.4", - "from": "lodash.isarguments@>=3.0.0 <4.0.0", + "from": "https://registry.npmjs.org/lodash.isarguments/-/lodash.isarguments-3.0.4.tgz", "resolved": "https://registry.npmjs.org/lodash.isarguments/-/lodash.isarguments-3.0.4.tgz" }, "lodash.keysin": { "version": "3.0.8", - "from": "lodash.keysin@>=3.0.0 <4.0.0", + "from": "https://registry.npmjs.org/lodash.keysin/-/lodash.keysin-3.0.8.tgz", "resolved": "https://registry.npmjs.org/lodash.keysin/-/lodash.keysin-3.0.8.tgz", "dependencies": { "lodash.isarray": { "version": "3.0.4", - "from": "lodash.isarray@>=3.0.0 <4.0.0", + "from": "https://registry.npmjs.org/lodash.isarray/-/lodash.isarray-3.0.4.tgz", "resolved": "https://registry.npmjs.org/lodash.isarray/-/lodash.isarray-3.0.4.tgz" } } @@ -1137,296 +1149,296 @@ }, "redux-thunk": { "version": "0.1.0", - "from": "redux-thunk@>=0.1.0 <0.2.0", + "from": "https://registry.npmjs.org/redux-thunk/-/redux-thunk-0.1.0.tgz", "resolved": "https://registry.npmjs.org/redux-thunk/-/redux-thunk-0.1.0.tgz" }, "sleep": { "version": "3.0.0", - "from": "sleep@>=3.0.0 <4.0.0", + "from": "https://registry.npmjs.org/sleep/-/sleep-3.0.0.tgz", "resolved": "https://registry.npmjs.org/sleep/-/sleep-3.0.0.tgz", "dependencies": { "nan": { "version": "2.0.9", - "from": "nan@>=2.0.0", + "from": "https://registry.npmjs.org/nan/-/nan-2.0.9.tgz", "resolved": "https://registry.npmjs.org/nan/-/nan-2.0.9.tgz" } } }, "webpack": { "version": "1.12.2", - "from": "webpack@>=1.12.1 <2.0.0", + "from": "https://registry.npmjs.org/webpack/-/webpack-1.12.2.tgz", "resolved": "https://registry.npmjs.org/webpack/-/webpack-1.12.2.tgz", "dependencies": { "async": { "version": "1.4.2", - "from": "async@>=1.3.0 <2.0.0", + "from": "https://registry.npmjs.org/async/-/async-1.4.2.tgz", "resolved": "https://registry.npmjs.org/async/-/async-1.4.2.tgz" }, "clone": { "version": "1.0.2", - "from": "clone@>=1.0.2 <2.0.0", + "from": "https://registry.npmjs.org/clone/-/clone-1.0.2.tgz", "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.2.tgz" }, "enhanced-resolve": { "version": "0.9.0", - "from": "enhanced-resolve@>=0.9.0 <0.10.0", + "from": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-0.9.0.tgz", "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-0.9.0.tgz", "dependencies": { "graceful-fs": { "version": "3.0.8", - "from": "graceful-fs@>=3.0.2 <4.0.0", + "from": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-3.0.8.tgz", "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-3.0.8.tgz" } } }, "esprima": { "version": "2.6.0", - "from": "esprima@>=2.5.0 <3.0.0", + "from": "https://registry.npmjs.org/esprima/-/esprima-2.6.0.tgz", "resolved": "https://registry.npmjs.org/esprima/-/esprima-2.6.0.tgz" }, "interpret": { "version": "0.6.5", - "from": "interpret@>=0.6.4 <0.7.0", + "from": "https://registry.npmjs.org/interpret/-/interpret-0.6.5.tgz", "resolved": "https://registry.npmjs.org/interpret/-/interpret-0.6.5.tgz" }, "memory-fs": { "version": "0.2.0", - "from": "memory-fs@>=0.2.0 <0.3.0", + "from": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.2.0.tgz", "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.2.0.tgz" }, "mkdirp": { "version": "0.5.1", - "from": "mkdirp@>=0.5.0 <0.6.0", + "from": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", "dependencies": { "minimist": { "version": "0.0.8", - "from": "minimist@0.0.8", + "from": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz" } } }, "node-libs-browser": { "version": "0.5.3", - "from": "node-libs-browser@>=0.4.0 <=0.6.0", + "from": "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-0.5.3.tgz", "resolved": "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-0.5.3.tgz", "dependencies": { "assert": { "version": "1.3.0", - "from": "assert@>=1.1.1 <2.0.0", + "from": "https://registry.npmjs.org/assert/-/assert-1.3.0.tgz", "resolved": "https://registry.npmjs.org/assert/-/assert-1.3.0.tgz" }, "browserify-zlib": { "version": "0.1.4", - "from": "browserify-zlib@>=0.1.4 <0.2.0", + "from": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.1.4.tgz", "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.1.4.tgz", "dependencies": { "pako": { "version": "0.2.8", - "from": "pako@>=0.2.0 <0.3.0", + "from": "https://registry.npmjs.org/pako/-/pako-0.2.8.tgz", "resolved": "https://registry.npmjs.org/pako/-/pako-0.2.8.tgz" } } }, "buffer": { "version": "3.5.0", - "from": "buffer@>=3.0.3 <4.0.0", + "from": "https://registry.npmjs.org/buffer/-/buffer-3.5.0.tgz", "resolved": "https://registry.npmjs.org/buffer/-/buffer-3.5.0.tgz", "dependencies": { "base64-js": { "version": "0.0.8", - "from": "base64-js@0.0.8", + "from": "https://registry.npmjs.org/base64-js/-/base64-js-0.0.8.tgz", "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-0.0.8.tgz" }, "ieee754": { "version": "1.1.6", - "from": "ieee754@>=1.1.4 <2.0.0", + "from": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.6.tgz", "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.6.tgz" }, "is-array": { "version": "1.0.1", - "from": "is-array@>=1.0.1 <2.0.0", + "from": "https://registry.npmjs.org/is-array/-/is-array-1.0.1.tgz", "resolved": "https://registry.npmjs.org/is-array/-/is-array-1.0.1.tgz" } } }, "console-browserify": { "version": "1.1.0", - "from": "console-browserify@>=1.1.0 <2.0.0", + "from": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.1.0.tgz", "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.1.0.tgz", "dependencies": { "date-now": { "version": "0.1.4", - "from": "date-now@>=0.1.4 <0.2.0", + "from": "https://registry.npmjs.org/date-now/-/date-now-0.1.4.tgz", "resolved": "https://registry.npmjs.org/date-now/-/date-now-0.1.4.tgz" } } }, "constants-browserify": { "version": "0.0.1", - "from": "constants-browserify@0.0.1", + "from": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-0.0.1.tgz", "resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-0.0.1.tgz" }, "crypto-browserify": { "version": "3.2.8", - "from": "crypto-browserify@>=3.2.6 <3.3.0", + "from": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.2.8.tgz", "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.2.8.tgz", "dependencies": { "pbkdf2-compat": { "version": "2.0.1", - "from": "pbkdf2-compat@2.0.1", + "from": "https://registry.npmjs.org/pbkdf2-compat/-/pbkdf2-compat-2.0.1.tgz", "resolved": "https://registry.npmjs.org/pbkdf2-compat/-/pbkdf2-compat-2.0.1.tgz" }, "ripemd160": { "version": "0.2.0", - "from": "ripemd160@0.2.0", + "from": "https://registry.npmjs.org/ripemd160/-/ripemd160-0.2.0.tgz", "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-0.2.0.tgz" }, "sha.js": { "version": "2.2.6", - "from": "sha.js@2.2.6", + "from": "https://registry.npmjs.org/sha.js/-/sha.js-2.2.6.tgz", "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.2.6.tgz" } } }, "domain-browser": { "version": "1.1.4", - "from": "domain-browser@>=1.1.1 <2.0.0", + "from": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.1.4.tgz", "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.1.4.tgz" }, "events": { "version": "1.0.2", - "from": "events@>=1.0.0 <2.0.0", + "from": "https://registry.npmjs.org/events/-/events-1.0.2.tgz", "resolved": "https://registry.npmjs.org/events/-/events-1.0.2.tgz" }, "http-browserify": { "version": "1.7.0", - "from": "http-browserify@>=1.3.2 <2.0.0", + "from": "https://registry.npmjs.org/http-browserify/-/http-browserify-1.7.0.tgz", "resolved": "https://registry.npmjs.org/http-browserify/-/http-browserify-1.7.0.tgz", "dependencies": { "Base64": { "version": "0.2.1", - "from": "Base64@>=0.2.0 <0.3.0", + "from": "https://registry.npmjs.org/Base64/-/Base64-0.2.1.tgz", "resolved": "https://registry.npmjs.org/Base64/-/Base64-0.2.1.tgz" }, "inherits": { "version": "2.0.1", - "from": "inherits@>=2.0.1 <2.1.0", + "from": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz" } } }, "https-browserify": { "version": "0.0.0", - "from": "https-browserify@0.0.0", + "from": "https://registry.npmjs.org/https-browserify/-/https-browserify-0.0.0.tgz", "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-0.0.0.tgz" }, "os-browserify": { "version": "0.1.2", - "from": "os-browserify@>=0.1.2 <0.2.0", + "from": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.1.2.tgz", "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.1.2.tgz" }, "path-browserify": { "version": "0.0.0", - "from": "path-browserify@0.0.0", + "from": "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.0.tgz", "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.0.tgz" }, "process": { "version": "0.11.2", - "from": "process@>=0.11.0 <0.12.0", + "from": "https://registry.npmjs.org/process/-/process-0.11.2.tgz", "resolved": "https://registry.npmjs.org/process/-/process-0.11.2.tgz" }, "punycode": { "version": "1.3.2", - "from": "punycode@>=1.2.4 <2.0.0", + "from": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz", "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz" }, "querystring-es3": { "version": "0.2.1", - "from": "querystring-es3@>=0.2.0 <0.3.0", + "from": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz", "resolved": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz" }, "readable-stream": { "version": "1.1.13", - "from": "readable-stream@>=1.1.13 <2.0.0", + "from": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.13.tgz", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.13.tgz", "dependencies": { "core-util-is": { "version": "1.0.1", - "from": "core-util-is@>=1.0.0 <1.1.0", + "from": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.1.tgz", "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.1.tgz" }, "isarray": { "version": "0.0.1", - "from": "isarray@0.0.1", + "from": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz" }, "inherits": { "version": "2.0.1", - "from": "inherits@>=2.0.1 <2.1.0", + "from": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz" } } }, "stream-browserify": { "version": "1.0.0", - "from": "stream-browserify@>=1.0.0 <2.0.0", + "from": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-1.0.0.tgz", "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-1.0.0.tgz", "dependencies": { "inherits": { "version": "2.0.1", - "from": "inherits@>=2.0.1 <2.1.0", + "from": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz" } } }, "string_decoder": { "version": "0.10.31", - "from": "string_decoder@>=0.10.25 <0.11.0", + "from": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz" }, "timers-browserify": { "version": "1.4.1", - "from": "timers-browserify@>=1.0.1 <2.0.0", + "from": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-1.4.1.tgz", "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-1.4.1.tgz" }, "tty-browserify": { "version": "0.0.0", - "from": "tty-browserify@0.0.0", + "from": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.0.tgz", "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.0.tgz" }, "url": { "version": "0.10.3", - "from": "url@>=0.10.1 <0.11.0", + "from": "https://registry.npmjs.org/url/-/url-0.10.3.tgz", "resolved": "https://registry.npmjs.org/url/-/url-0.10.3.tgz", "dependencies": { "querystring": { "version": "0.2.0", - "from": "querystring@0.2.0", + "from": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz" } } }, "util": { "version": "0.10.3", - "from": "util@>=0.10.3 <0.11.0", + "from": "https://registry.npmjs.org/util/-/util-0.10.3.tgz", "resolved": "https://registry.npmjs.org/util/-/util-0.10.3.tgz", "dependencies": { "inherits": { "version": "2.0.1", - "from": "inherits@2.0.1", + "from": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz" } } }, "vm-browserify": { "version": "0.0.4", - "from": "vm-browserify@0.0.4", + "from": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-0.0.4.tgz", "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-0.0.4.tgz", "dependencies": { "indexof": { "version": "0.0.1", - "from": "indexof@0.0.1", + "from": "https://registry.npmjs.org/indexof/-/indexof-0.0.1.tgz", "resolved": "https://registry.npmjs.org/indexof/-/indexof-0.0.1.tgz" } } @@ -1435,88 +1447,88 @@ }, "optimist": { "version": "0.6.1", - "from": "optimist@>=0.6.0 <0.7.0", + "from": "https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz", "resolved": "https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz", "dependencies": { "wordwrap": { "version": "0.0.3", - "from": "wordwrap@>=0.0.2 <0.1.0", + "from": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.3.tgz", "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.3.tgz" }, "minimist": { "version": "0.0.10", - "from": "minimist@>=0.0.1 <0.1.0", + "from": "https://registry.npmjs.org/minimist/-/minimist-0.0.10.tgz", "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.10.tgz" } } }, "supports-color": { "version": "3.1.1", - "from": "supports-color@>=3.1.0 <4.0.0", + "from": "https://registry.npmjs.org/supports-color/-/supports-color-3.1.1.tgz", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.1.1.tgz", "dependencies": { "has-flag": { "version": "1.0.0", - "from": "has-flag@>=1.0.0 <2.0.0", + "from": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz" } } }, "tapable": { "version": "0.1.9", - "from": "tapable@>=0.1.8 <0.2.0", + "from": "https://registry.npmjs.org/tapable/-/tapable-0.1.9.tgz", "resolved": "https://registry.npmjs.org/tapable/-/tapable-0.1.9.tgz" }, "uglify-js": { "version": "2.4.24", - "from": "uglify-js@>=2.4.24 <2.5.0", + "from": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.4.24.tgz", "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.4.24.tgz", "dependencies": { "async": { "version": "0.2.10", - "from": "async@>=0.2.6 <0.3.0", + "from": "https://registry.npmjs.org/async/-/async-0.2.10.tgz", "resolved": "https://registry.npmjs.org/async/-/async-0.2.10.tgz" }, "source-map": { "version": "0.1.34", - "from": "source-map@0.1.34", + "from": "https://registry.npmjs.org/source-map/-/source-map-0.1.34.tgz", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.1.34.tgz", "dependencies": { "amdefine": { "version": "1.0.0", - "from": "amdefine@>=0.0.4", + "from": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.0.tgz", "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.0.tgz" } } }, "uglify-to-browserify": { "version": "1.0.2", - "from": "uglify-to-browserify@>=1.0.0 <1.1.0", + "from": "https://registry.npmjs.org/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz", "resolved": "https://registry.npmjs.org/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz" }, "yargs": { "version": "3.5.4", - "from": "yargs@>=3.5.4 <3.6.0", + "from": "https://registry.npmjs.org/yargs/-/yargs-3.5.4.tgz", "resolved": "https://registry.npmjs.org/yargs/-/yargs-3.5.4.tgz", "dependencies": { "camelcase": { "version": "1.2.1", - "from": "camelcase@>=1.0.2 <2.0.0", + "from": "https://registry.npmjs.org/camelcase/-/camelcase-1.2.1.tgz", "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-1.2.1.tgz" }, "decamelize": { "version": "1.0.0", - "from": "decamelize@>=1.0.0 <2.0.0", + "from": "https://registry.npmjs.org/decamelize/-/decamelize-1.0.0.tgz", "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.0.0.tgz" }, "window-size": { "version": "0.1.0", - "from": "window-size@0.1.0", + "from": "https://registry.npmjs.org/window-size/-/window-size-0.1.0.tgz", "resolved": "https://registry.npmjs.org/window-size/-/window-size-0.1.0.tgz" }, "wordwrap": { "version": "0.0.2", - "from": "wordwrap@0.0.2", + "from": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.2.tgz", "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.2.tgz" } } @@ -1525,84 +1537,84 @@ }, "watchpack": { "version": "0.2.8", - "from": "watchpack@>=0.2.1 <0.3.0", + "from": "https://registry.npmjs.org/watchpack/-/watchpack-0.2.8.tgz", "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-0.2.8.tgz", "dependencies": { "async": { "version": "0.9.2", - "from": "async@>=0.9.0 <0.10.0", + "from": "https://registry.npmjs.org/async/-/async-0.9.2.tgz", "resolved": "https://registry.npmjs.org/async/-/async-0.9.2.tgz" }, "chokidar": { "version": "1.0.6", - "from": "chokidar@>=1.0.0 <2.0.0", + "from": "https://registry.npmjs.org/chokidar/-/chokidar-1.0.6.tgz", "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-1.0.6.tgz", "dependencies": { "anymatch": { "version": "1.3.0", - "from": "anymatch@>=1.1.0 <2.0.0", + "from": "https://registry.npmjs.org/anymatch/-/anymatch-1.3.0.tgz", "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-1.3.0.tgz", "dependencies": { "micromatch": { "version": "2.2.0", - "from": "micromatch@>=2.1.5 <3.0.0", + "from": "https://registry.npmjs.org/micromatch/-/micromatch-2.2.0.tgz", "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-2.2.0.tgz", "dependencies": { "arr-diff": { "version": "1.1.0", - "from": "arr-diff@>=1.0.1 <2.0.0", + "from": "https://registry.npmjs.org/arr-diff/-/arr-diff-1.1.0.tgz", "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-1.1.0.tgz", "dependencies": { "arr-flatten": { "version": "1.0.1", - "from": "arr-flatten@>=1.0.1 <2.0.0", + "from": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.0.1.tgz", "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.0.1.tgz" }, "array-slice": { "version": "0.2.3", - "from": "array-slice@>=0.2.3 <0.3.0", + "from": "https://registry.npmjs.org/array-slice/-/array-slice-0.2.3.tgz", "resolved": "https://registry.npmjs.org/array-slice/-/array-slice-0.2.3.tgz" } } }, "array-unique": { "version": "0.2.1", - "from": "array-unique@>=0.2.1 <0.3.0", + "from": "https://registry.npmjs.org/array-unique/-/array-unique-0.2.1.tgz", "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.2.1.tgz" }, "braces": { "version": "1.8.1", - "from": "braces@>=1.8.0 <2.0.0", + "from": "https://registry.npmjs.org/braces/-/braces-1.8.1.tgz", "resolved": "https://registry.npmjs.org/braces/-/braces-1.8.1.tgz", "dependencies": { "expand-range": { "version": "1.8.1", - "from": "expand-range@>=1.8.1 <2.0.0", + "from": "https://registry.npmjs.org/expand-range/-/expand-range-1.8.1.tgz", "resolved": "https://registry.npmjs.org/expand-range/-/expand-range-1.8.1.tgz", "dependencies": { "fill-range": { "version": "2.2.2", - "from": "fill-range@>=2.1.0 <3.0.0", + "from": "https://registry.npmjs.org/fill-range/-/fill-range-2.2.2.tgz", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-2.2.2.tgz", "dependencies": { "is-number": { "version": "1.1.2", - "from": "is-number@>=1.1.2 <2.0.0", + "from": "https://registry.npmjs.org/is-number/-/is-number-1.1.2.tgz", "resolved": "https://registry.npmjs.org/is-number/-/is-number-1.1.2.tgz" }, "isobject": { "version": "1.0.2", - "from": "isobject@>=1.0.0 <2.0.0", + "from": "https://registry.npmjs.org/isobject/-/isobject-1.0.2.tgz", "resolved": "https://registry.npmjs.org/isobject/-/isobject-1.0.2.tgz" }, "randomatic": { "version": "1.1.0", - "from": "randomatic@>=1.1.0 <2.0.0", + "from": "https://registry.npmjs.org/randomatic/-/randomatic-1.1.0.tgz", "resolved": "https://registry.npmjs.org/randomatic/-/randomatic-1.1.0.tgz" }, "repeat-string": { "version": "1.5.2", - "from": "repeat-string@>=1.5.2 <2.0.0", + "from": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.5.2.tgz", "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.5.2.tgz" } } @@ -1611,124 +1623,124 @@ }, "lazy-cache": { "version": "0.2.3", - "from": "lazy-cache@>=0.2.3 <0.3.0", + "from": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-0.2.3.tgz", "resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-0.2.3.tgz" }, "preserve": { "version": "0.2.0", - "from": "preserve@>=0.2.0 <0.3.0", + "from": "https://registry.npmjs.org/preserve/-/preserve-0.2.0.tgz", "resolved": "https://registry.npmjs.org/preserve/-/preserve-0.2.0.tgz" }, "repeat-element": { "version": "1.1.2", - "from": "repeat-element@>=1.1.2 <2.0.0", + "from": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.2.tgz", "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.2.tgz" } } }, "expand-brackets": { "version": "0.1.4", - "from": "expand-brackets@>=0.1.1 <0.2.0", + "from": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-0.1.4.tgz", "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-0.1.4.tgz" }, "extglob": { "version": "0.3.1", - "from": "extglob@>=0.3.0 <0.4.0", + "from": "https://registry.npmjs.org/extglob/-/extglob-0.3.1.tgz", "resolved": "https://registry.npmjs.org/extglob/-/extglob-0.3.1.tgz", "dependencies": { "ansi-green": { "version": "0.1.1", - "from": "ansi-green@>=0.1.1 <0.2.0", + "from": "https://registry.npmjs.org/ansi-green/-/ansi-green-0.1.1.tgz", "resolved": "https://registry.npmjs.org/ansi-green/-/ansi-green-0.1.1.tgz", "dependencies": { "ansi-wrap": { "version": "0.1.0", - "from": "ansi-wrap@0.1.0", + "from": "https://registry.npmjs.org/ansi-wrap/-/ansi-wrap-0.1.0.tgz", "resolved": "https://registry.npmjs.org/ansi-wrap/-/ansi-wrap-0.1.0.tgz" } } }, "is-extglob": { "version": "1.0.0", - "from": "is-extglob@>=1.0.0 <2.0.0", + "from": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz" }, "success-symbol": { "version": "0.1.0", - "from": "success-symbol@>=0.1.0 <0.2.0", + "from": "https://registry.npmjs.org/success-symbol/-/success-symbol-0.1.0.tgz", "resolved": "https://registry.npmjs.org/success-symbol/-/success-symbol-0.1.0.tgz" } } }, "filename-regex": { "version": "2.0.0", - "from": "filename-regex@>=2.0.0 <3.0.0", + "from": "https://registry.npmjs.org/filename-regex/-/filename-regex-2.0.0.tgz", "resolved": "https://registry.npmjs.org/filename-regex/-/filename-regex-2.0.0.tgz" }, "kind-of": { "version": "1.1.0", - "from": "kind-of@>=1.1.0 <2.0.0", + "from": "https://registry.npmjs.org/kind-of/-/kind-of-1.1.0.tgz", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-1.1.0.tgz" }, "object.omit": { "version": "1.1.0", - "from": "object.omit@>=1.1.0 <2.0.0", + "from": "https://registry.npmjs.org/object.omit/-/object.omit-1.1.0.tgz", "resolved": "https://registry.npmjs.org/object.omit/-/object.omit-1.1.0.tgz", "dependencies": { "for-own": { "version": "0.1.3", - "from": "for-own@>=0.1.3 <0.2.0", + "from": "https://registry.npmjs.org/for-own/-/for-own-0.1.3.tgz", "resolved": "https://registry.npmjs.org/for-own/-/for-own-0.1.3.tgz", "dependencies": { "for-in": { "version": "0.1.4", - "from": "for-in@>=0.1.4 <0.2.0", + "from": "https://registry.npmjs.org/for-in/-/for-in-0.1.4.tgz", "resolved": "https://registry.npmjs.org/for-in/-/for-in-0.1.4.tgz" } } }, "isobject": { "version": "1.0.2", - "from": "isobject@>=1.0.0 <2.0.0", + "from": "https://registry.npmjs.org/isobject/-/isobject-1.0.2.tgz", "resolved": "https://registry.npmjs.org/isobject/-/isobject-1.0.2.tgz" } } }, "parse-glob": { "version": "3.0.2", - "from": "parse-glob@>=3.0.1 <4.0.0", + "from": "https://registry.npmjs.org/parse-glob/-/parse-glob-3.0.2.tgz", "resolved": "https://registry.npmjs.org/parse-glob/-/parse-glob-3.0.2.tgz", "dependencies": { "glob-base": { "version": "0.2.0", - "from": "glob-base@>=0.2.0 <0.3.0", + "from": "https://registry.npmjs.org/glob-base/-/glob-base-0.2.0.tgz", "resolved": "https://registry.npmjs.org/glob-base/-/glob-base-0.2.0.tgz" }, "is-dotfile": { "version": "1.0.1", - "from": "is-dotfile@>=1.0.0 <2.0.0", + "from": "https://registry.npmjs.org/is-dotfile/-/is-dotfile-1.0.1.tgz", "resolved": "https://registry.npmjs.org/is-dotfile/-/is-dotfile-1.0.1.tgz" }, "is-extglob": { "version": "1.0.0", - "from": "is-extglob@>=1.0.0 <2.0.0", + "from": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz" } } }, "regex-cache": { "version": "0.4.2", - "from": "regex-cache@>=0.4.2 <0.5.0", + "from": "https://registry.npmjs.org/regex-cache/-/regex-cache-0.4.2.tgz", "resolved": "https://registry.npmjs.org/regex-cache/-/regex-cache-0.4.2.tgz", "dependencies": { "is-equal-shallow": { "version": "0.1.3", - "from": "is-equal-shallow@>=0.1.1 <0.2.0", + "from": "https://registry.npmjs.org/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz", "resolved": "https://registry.npmjs.org/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz" }, "is-primitive": { "version": "2.0.0", - "from": "is-primitive@>=2.0.0 <3.0.0", + "from": "https://registry.npmjs.org/is-primitive/-/is-primitive-2.0.0.tgz", "resolved": "https://registry.npmjs.org/is-primitive/-/is-primitive-2.0.0.tgz" } } @@ -1739,98 +1751,98 @@ }, "arrify": { "version": "1.0.0", - "from": "arrify@>=1.0.0 <2.0.0", + "from": "https://registry.npmjs.org/arrify/-/arrify-1.0.0.tgz", "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.0.tgz" }, "async-each": { "version": "0.1.6", - "from": "async-each@>=0.1.5 <0.2.0", + "from": "https://registry.npmjs.org/async-each/-/async-each-0.1.6.tgz", "resolved": "https://registry.npmjs.org/async-each/-/async-each-0.1.6.tgz" }, "glob-parent": { "version": "1.3.0", - "from": "glob-parent@>=1.0.0 <2.0.0", + "from": "https://registry.npmjs.org/glob-parent/-/glob-parent-1.3.0.tgz", "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-1.3.0.tgz", "dependencies": { "is-glob": { "version": "2.0.0", - "from": "is-glob@>=2.0.0 <3.0.0", + "from": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.0.tgz", "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.0.tgz" } } }, "is-binary-path": { "version": "1.0.1", - "from": "is-binary-path@>=1.0.0 <2.0.0", + "from": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", "dependencies": { "binary-extensions": { "version": "1.3.1", - "from": "binary-extensions@>=1.0.0 <2.0.0", + "from": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.3.1.tgz", "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.3.1.tgz" } } }, "is-glob": { "version": "1.1.3", - "from": "is-glob@>=1.1.3 <2.0.0", + "from": "https://registry.npmjs.org/is-glob/-/is-glob-1.1.3.tgz", "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-1.1.3.tgz" }, "path-is-absolute": { "version": "1.0.0", - "from": "path-is-absolute@>=1.0.0 <2.0.0", + "from": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.0.tgz", "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.0.tgz" }, "readdirp": { "version": "1.4.0", - "from": "readdirp@>=1.3.0 <2.0.0", + "from": "https://registry.npmjs.org/readdirp/-/readdirp-1.4.0.tgz", "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-1.4.0.tgz", "dependencies": { "graceful-fs": { "version": "4.1.2", - "from": "graceful-fs@>=4.1.2 <4.2.0", + "from": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.2.tgz", "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.2.tgz" }, "minimatch": { "version": "0.2.14", - "from": "minimatch@>=0.2.12 <0.3.0", + "from": "https://registry.npmjs.org/minimatch/-/minimatch-0.2.14.tgz", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-0.2.14.tgz", "dependencies": { "lru-cache": { "version": "2.7.0", - "from": "lru-cache@>=2.6.5 <3.0.0", + "from": "https://registry.npmjs.org/lru-cache/-/lru-cache-2.7.0.tgz", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-2.7.0.tgz" }, "sigmund": { "version": "1.0.1", - "from": "sigmund@>=1.0.0 <1.1.0", + "from": "https://registry.npmjs.org/sigmund/-/sigmund-1.0.1.tgz", "resolved": "https://registry.npmjs.org/sigmund/-/sigmund-1.0.1.tgz" } } }, "readable-stream": { "version": "1.0.33", - "from": "readable-stream@>=1.0.26-2 <1.1.0", + "from": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.33.tgz", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.33.tgz", "dependencies": { "core-util-is": { "version": "1.0.1", - "from": "core-util-is@>=1.0.0 <1.1.0", + "from": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.1.tgz", "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.1.tgz" }, "isarray": { "version": "0.0.1", - "from": "isarray@0.0.1", + "from": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz" }, "string_decoder": { "version": "0.10.31", - "from": "string_decoder@>=0.10.0 <0.11.0", + "from": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz" }, "inherits": { "version": "2.0.1", - "from": "inherits@>=2.0.1 <2.1.0", + "from": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz" } } @@ -1839,12 +1851,12 @@ }, "fsevents": { "version": "0.3.8", - "from": "fsevents@>=0.3.8 <0.4.0", + "from": "https://registry.npmjs.org/fsevents/-/fsevents-0.3.8.tgz", "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-0.3.8.tgz", "dependencies": { "nan": { "version": "2.0.9", - "from": "nan@>=2.0.2 <3.0.0", + "from": "https://registry.npmjs.org/nan/-/nan-2.0.9.tgz", "resolved": "https://registry.npmjs.org/nan/-/nan-2.0.9.tgz" } } @@ -1853,31 +1865,31 @@ }, "graceful-fs": { "version": "3.0.8", - "from": "graceful-fs@>=3.0.2 <4.0.0", + "from": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-3.0.8.tgz", "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-3.0.8.tgz" } } }, "webpack-core": { "version": "0.6.7", - "from": "webpack-core@>=0.6.0 <0.7.0", + "from": "https://registry.npmjs.org/webpack-core/-/webpack-core-0.6.7.tgz", "resolved": "https://registry.npmjs.org/webpack-core/-/webpack-core-0.6.7.tgz", "dependencies": { "source-map": { "version": "0.4.4", - "from": "source-map@>=0.4.1 <0.5.0", + "from": "https://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz", "dependencies": { "amdefine": { "version": "1.0.0", - "from": "amdefine@>=0.0.4", + "from": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.0.tgz", "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.0.tgz" } } }, "source-list-map": { "version": "0.1.5", - "from": "source-list-map@>=0.1.0 <0.2.0", + "from": "https://registry.npmjs.org/source-list-map/-/source-list-map-0.1.5.tgz", "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-0.1.5.tgz" } } diff --git a/client/package.json b/client/package.json index 009d4ef4..bd8e7a5e 100644 --- a/client/package.json +++ b/client/package.json @@ -23,6 +23,7 @@ }, "homepage": "https://github.com/shakacode/react-webpack-rails-tutorial", "dependencies": { + "axios": "^0.5.4", "babel-core": "^5.8.23", "babel-loader": "^5.3.2", "body-parser": "^1.13.3", diff --git a/client/scripts/webpack_only.jsx b/client/scripts/webpack_only.jsx index beee31ad..a0fbe11d 100755 --- a/client/scripts/webpack_only.jsx +++ b/client/scripts/webpack_only.jsx @@ -6,6 +6,3 @@ require('test-stylesheet.css'); // Note that any sass in here cannot use the variables and mixins // defined in the boostrap customizations file. require('test-sass-stylesheet.scss'); - -require('expose?$!jquery'); -require('expose?jQuery!jquery'); diff --git a/client/webpack.common.config.js b/client/webpack.common.config.js index 83d0c50e..4c59b907 100644 --- a/client/webpack.common.config.js +++ b/client/webpack.common.config.js @@ -6,7 +6,7 @@ module.exports = { // the project dir context: __dirname, - entry: ['jquery', 'jquery-ujs'], + entry: [], resolve: { root: [ @@ -20,8 +20,6 @@ module.exports = { // React is necessary for the client rendering: {test: require.resolve('react'), loader: 'expose?React'}, - {test: require.resolve('jquery'), loader: 'expose?jQuery'}, - {test: require.resolve('jquery'), loader: 'expose?$'}, ], }, }; diff --git a/client/webpack.hot.config.js b/client/webpack.hot.config.js index d63768a8..09007011 100644 --- a/client/webpack.hot.config.js +++ b/client/webpack.hot.config.js @@ -10,6 +10,9 @@ const webpack = require('webpack'); config.entry.push('webpack-dev-server/client?http://localhost:3000', 'webpack/hot/dev-server', './scripts/webpack_only', + 'jquery', + 'jquery-ujs', + './assets/javascripts/clientGlobals', // custom bootstrap 'bootstrap-sass!./bootstrap-sass.config.js'); @@ -28,6 +31,10 @@ config.resolve.root.push(path.join(__dirname, 'assets/stylesheets')); // All the styling loaders only apply to hot-reload, not rails config.module.loaders.push( {test: /\.jsx?$/, loaders: ['react-hot', 'babel'], exclude: /node_modules/}, + + {test: require.resolve('jquery'), loader: 'expose?jQuery'}, + {test: require.resolve('jquery'), loader: 'expose?$'}, + {test: /\.css$/, loader: 'style-loader!css-loader'}, { test: /\.scss$/, diff --git a/client/webpack.rails.config.js b/client/webpack.rails.config.js index 7c99c236..af75a50e 100644 --- a/client/webpack.rails.config.js +++ b/client/webpack.rails.config.js @@ -12,12 +12,14 @@ config.output = { }; // You can add entry points specific to rails here -config.entry.push('./scripts/rails_only', './assets/javascripts/clientGlobals'); +config.entry.push('./scripts/rails_only', 'jquery', 'jquery-ujs', './assets/javascripts/clientGlobals'); // See webpack.common.config for adding modules common to both the webpack dev server and rails config.module.loaders.push( - {test: /\.jsx?$/, exclude: /node_modules/, loader: 'babel-loader'} + {test: /\.jsx?$/, exclude: /node_modules/, loader: 'babel-loader'}, + {test: require.resolve('jquery'), loader: 'expose?jQuery'}, + {test: require.resolve('jquery'), loader: 'expose?$'} ); module.exports = config; diff --git a/client/webpack.server.config.js b/client/webpack.server.config.js index fa361ee1..ec952ad0 100644 --- a/client/webpack.server.config.js +++ b/client/webpack.server.config.js @@ -10,12 +10,5 @@ config.output = { config.entry.push('./assets/javascripts/serverGlobals'); -config.module.loaders.push( - - { loader: 'babel-loader' }, - - // require Resolve must go first - // 1. React must be exposed (BOILERPLATE) - { test: require.resolve('react'), loader: 'expose?React' } -); +config.module.loaders.push({ loader: 'babel-loader' }); module.exports = config; From 5ef8e71e76f2223cec42e4d4626811dd05bd6f42 Mon Sep 17 00:00:00 2001 From: dylangrafmyre Date: Mon, 21 Sep 2015 10:25:09 -1000 Subject: [PATCH 069/514] Update .travis.yml for webpack.server.config.js --- .travis.yml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index be537deb..1af63bc2 100644 --- a/.travis.yml +++ b/.travis.yml @@ -5,7 +5,9 @@ rvm: install: - bundle install - npm install - - cd client && $(npm bin)/webpack --config webpack.rails.config.js + - cd client && $(npm bin)/webpack --config webpack.rails.config.js \ + && $(npm bin)/webpack --config webpack.server.config.js + env: - export RAILS_ENV=test script: From 9f2142e556da3cf905eb1ece1c3e37e9f96ec666 Mon Sep 17 00:00:00 2001 From: dylangrafmyre Date: Mon, 21 Sep 2015 10:55:47 -1000 Subject: [PATCH 070/514] Update .travis.yml --- .travis.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.travis.yml b/.travis.yml index 1af63bc2..1c94af41 100644 --- a/.travis.yml +++ b/.travis.yml @@ -5,8 +5,8 @@ rvm: install: - bundle install - npm install - - cd client && $(npm bin)/webpack --config webpack.rails.config.js \ - && $(npm bin)/webpack --config webpack.server.config.js + - cd client && NODE_ENV=production $(npm bin)/webpack --config webpack.rails.config.js + - cd client && NODE_ENV=production $(npm bin)/webpack --config webpack.server.config.js env: - export RAILS_ENV=test From 02abc296bb20e9be0086380120bfecfe92a925b0 Mon Sep 17 00:00:00 2001 From: dylangrafmyre Date: Mon, 21 Sep 2015 11:02:23 -1000 Subject: [PATCH 071/514] Edit .travis.yml to fix build error --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 1c94af41..5e498dbe 100644 --- a/.travis.yml +++ b/.travis.yml @@ -6,7 +6,7 @@ install: - bundle install - npm install - cd client && NODE_ENV=production $(npm bin)/webpack --config webpack.rails.config.js - - cd client && NODE_ENV=production $(npm bin)/webpack --config webpack.server.config.js + - NODE_ENV=production $(npm bin)/webpack --config webpack.server.config.js env: - export RAILS_ENV=test From 6215a64ad571f20afd3966a55160c9ad167e2da0 Mon Sep 17 00:00:00 2001 From: dylangrafmyre Date: Mon, 21 Sep 2015 17:41:38 -1000 Subject: [PATCH 072/514] Update assets.rake and assets.rb for server-bundle.js --- config/initializers/assets.rb | 2 +- lib/tasks/assets.rake | 4 +++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/config/initializers/assets.rb b/config/initializers/assets.rb index 0838adaa..78a80838 100644 --- a/config/initializers/assets.rb +++ b/config/initializers/assets.rb @@ -8,4 +8,4 @@ # 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( search.js ) +Rails.application.config.assets.precompile += %w( generated/server-bundle.js ) diff --git a/lib/tasks/assets.rake b/lib/tasks/assets.rake index f0eaca92..2c43109d 100644 --- a/lib/tasks/assets.rake +++ b/lib/tasks/assets.rake @@ -14,9 +14,11 @@ namespace :assets do desc "Compile assets with webpack" task :webpack do sh "cd client && $(npm bin)/webpack --config webpack.rails.config.js" + sh "cd client && $(npm bin)/webpack --config webpack.server.config.js" end task :clobber do - rm_rf "#{RailsReactTutorial::Application.config.root}/app/assets/javascripts/rails-bundle.js" + rm_rf "#{RailsReactTutorial::Application.config.root}/app/assets/javascripts/generated/client-bundle.js" + rm_rf "#{RailsReactTutorial::Application.config.root}/app/assets/javascripts/generated/server-bundle.js" end end From 63cf052167b23b7b305977f2e76f6f7abca17c6b Mon Sep 17 00:00:00 2001 From: Justin Gordon Date: Mon, 21 Sep 2015 18:23:53 -1000 Subject: [PATCH 073/514] Added ability to set the JS driver for capybara Default is poltergeist Sample commands to try: DRIVER=chrome rspec DRIVER=firefox rspec DRIVER=webkit rspec DRIVER=poltergeist rspec --- Gemfile | 4 ++++ Gemfile.lock | 17 +++++++++++++++++ spec/features/comments_spec.rb | 8 ++++---- spec/rails_helper.rb | 27 ++++++++++++++++++++++++++- 4 files changed, 51 insertions(+), 5 deletions(-) diff --git a/Gemfile b/Gemfile index bc827d43..ad035966 100644 --- a/Gemfile +++ b/Gemfile @@ -44,6 +44,8 @@ gem "therubyracer" gem "autoprefixer-rails" +gem "awesome_print" + # Use Capistrano for deployment # gem "capistrano-rails", group: :development group :production do @@ -87,6 +89,8 @@ group :test do gem "capybara-screenshot" gem "poltergeist" gem "phantomjs", require: "phantomjs/poltergeist" + gem "selenium-webdriver" + gem "capybara-webkit" gem "database_cleaner" gem "launchy" end diff --git a/Gemfile.lock b/Gemfile.lock index 4254f826..b44dbb14 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -44,6 +44,7 @@ GEM autoprefixer-rails (5.2.1.1) execjs json + awesome_print (1.6.1) binding_of_caller (0.7.2) debug_inspector (>= 0.0.1) bootstrap-sass (3.3.5.1) @@ -74,6 +75,11 @@ GEM capybara-screenshot (1.0.11) capybara (>= 1.0, < 3) launchy + capybara-webkit (1.6.0) + capybara (>= 2.3.0, < 2.5.0) + json + childprocess (0.5.6) + ffi (~> 1.0, >= 1.0.11) cliver (0.3.2) coffee-rails (4.1.0) coffee-script (>= 2.2.0) @@ -106,6 +112,7 @@ GEM 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) globalid (0.3.5) @@ -221,6 +228,7 @@ GEM sexp_processor (~> 4.0) ruby_parser (3.7.0) sexp_processor (~> 4.1) + rubyzip (1.1.7) sass (3.4.16) sass-rails (5.0.3) railties (>= 4.0.0, < 5.0) @@ -234,6 +242,11 @@ GEM sdoc (0.4.1) json (~> 1.7, >= 1.7.7) rdoc (~> 4.0) + selenium-webdriver (2.47.1) + childprocess (~> 0.5) + multi_json (~> 1.0) + rubyzip (~> 1.0) + websocket (~> 1.0) sexp_processor (4.6.0) simplecov (0.10.0) docile (~> 1.1.0) @@ -280,6 +293,7 @@ GEM binding_of_caller (>= 0.7.2) railties (>= 4.0) sprockets-rails (>= 2.0, < 4.0) + websocket (1.2.2) websocket-driver (0.6.2) websocket-extensions (>= 0.1.0) websocket-extensions (0.1.2) @@ -291,12 +305,14 @@ PLATFORMS DEPENDENCIES autoprefixer-rails + awesome_print bootstrap-sass (~> 3.3.1) brakeman bundler-audit byebug capybara capybara-screenshot + capybara-webkit coffee-rails coveralls database_cleaner @@ -319,6 +335,7 @@ DEPENDENCIES sass-rails scss_lint sdoc + selenium-webdriver spring spring-commands-rspec sqlite3 diff --git a/spec/features/comments_spec.rb b/spec/features/comments_spec.rb index ba3d21f9..5bad9363 100644 --- a/spec/features/comments_spec.rb +++ b/spec/features/comments_spec.rb @@ -14,7 +14,7 @@ end end -shared_examples "Form" do +shared_examples "Comments Form" do include_context "Form Submitted" scenario "submits form", js: true do @@ -33,7 +33,7 @@ click_link "Horizontal Form" end - it_behaves_like "Form" + it_behaves_like "Comments Form" context "iframe text" do let(:iframe_text) { "" } @@ -51,7 +51,7 @@ click_link "Inline Form" end - it_behaves_like "Form" + it_behaves_like "Comments Form" end context "Stacked Form" do @@ -59,6 +59,6 @@ click_link "Stacked Form" end - it_behaves_like "Form" + it_behaves_like "Comments Form" end end diff --git a/spec/rails_helper.rb b/spec/rails_helper.rb index a9d42fae..c599fc6e 100644 --- a/spec/rails_helper.rb +++ b/spec/rails_helper.rb @@ -50,7 +50,32 @@ DatabaseCleaner.clean end - Capybara.javascript_driver = :poltergeist + driver = ENV["DRIVER"].try(:to_sym) + if driver.nil? || driver == :poltergeist + require "capybara/poltergeist" + Capybara.default_driver = :poltergeist + Capybara.current_driver = :poltergeist + Capybara.javascript_driver = :poltergeist + elsif driver == :webkit + Capybara.default_driver = :webkit + Capybara.current_driver = :webkit + Capybara.javascript_driver = :webkit + elsif driver == :selenium + Capybara.default_driver = :selenium + Capybara.current_driver = :selenium + Capybara.javascript_driver = :selenium + else # to use chrome, for example, with selenium + Capybara.register_driver :selenium do |app| + Capybara::Selenium::Driver.new(app, browser: driver) + end + Capybara.default_driver = :selenium + Capybara.current_driver = :selenium + Capybara.javascript_driver = :selenium + end + + puts "Capybara using driver: #{Capybara.default_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" From 05ac811bb09df38591028814d6c1778d527671af Mon Sep 17 00:00:00 2001 From: Stanislas Boyet Date: Tue, 22 Sep 2015 10:00:15 +0200 Subject: [PATCH 074/514] Fix forum URL There was a `www` at the top, which with the subdomain `forum` leads to a `ERR_NAME_NOT_RESOLVED` --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 1d181cf2..28ca1b4e 100644 --- a/README.md +++ b/README.md @@ -16,7 +16,7 @@ By Justin Gordon and the Shaka Code Team, http://www.railsonmaui.com Rails project and are interested in help from our experienced team. - Please file issues for problems and feature requests. - Pull requests are welcome! (and a great way to get on the team) -- Feel free to open discussions at [forum.railsonmaui.com](http://www.forum.railsonmaui.com). +- Feel free to open discussions at [forum.railsonmaui.com](http://forum.railsonmaui.com). - We now have a [gitter chat room for this topic](https://gitter.im/shakacode/react-webpack-rails-tutorial). - Check out the [react_on_rails gem](https://github.com/shakacode/react_on_rails) for easy webpack integration. From b9285cf52e8b2523ab7fe70f621e3335153a0a27 Mon Sep 17 00:00:00 2001 From: dylangrafmyre Date: Mon, 21 Sep 2015 22:59:33 -1000 Subject: [PATCH 075/514] Change to Capybara webdriver selenium Remove gem poltergeist and phantomjs Add gems selenium-webdriver and chromedriver-helper Configure Capybara webdriver for :selenium_chrome --- Gemfile | 4 +--- Gemfile.lock | 23 +++++++---------------- spec/rails_helper.rb | 29 +++-------------------------- 3 files changed, 11 insertions(+), 45 deletions(-) diff --git a/Gemfile b/Gemfile index ad035966..ff61dc1d 100644 --- a/Gemfile +++ b/Gemfile @@ -87,10 +87,8 @@ group :test do gem "rspec-rails" gem "capybara" gem "capybara-screenshot" - gem "poltergeist" - gem "phantomjs", require: "phantomjs/poltergeist" gem "selenium-webdriver" - gem "capybara-webkit" + gem "chromedriver-helper" gem "database_cleaner" gem "launchy" end diff --git a/Gemfile.lock b/Gemfile.lock index b44dbb14..7579e5a1 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -37,6 +37,8 @@ GEM thread_safe (~> 0.3, >= 0.3.4) tzinfo (~> 1.1) addressable (2.3.8) + archive-zip (0.7.0) + io-like (~> 0.3.0) arel (6.0.2) ast (2.0.0) astrolabe (1.3.1) @@ -75,12 +77,11 @@ GEM capybara-screenshot (1.0.11) capybara (>= 1.0, < 3) launchy - capybara-webkit (1.6.0) - capybara (>= 2.3.0, < 2.5.0) - json childprocess (0.5.6) ffi (~> 1.0, >= 1.0.11) - cliver (0.3.2) + chromedriver-helper (1.0.0) + archive-zip (~> 0.7.0) + nokogiri (~> 1.6) coffee-rails (4.1.0) coffee-script (>= 2.2.0) railties (>= 4.0.0, < 5.0) @@ -123,6 +124,7 @@ GEM http-cookie (1.0.2) domain_name (~> 0.5) i18n (0.7.0) + io-like (0.3.0) jbuilder (2.3.1) activesupport (>= 3.0.0, < 5) multi_json (~> 1.2) @@ -145,12 +147,6 @@ GEM parser (2.2.2.6) ast (>= 1.1, < 3.0) pg (0.18.2) - phantomjs (1.9.8.0) - poltergeist (1.6.0) - capybara (~> 2.1) - cliver (~> 0.3.1) - multi_json (~> 1.0) - websocket-driver (>= 0.2.0) powerpack (0.1.1) rack (1.6.4) rack-test (0.6.3) @@ -294,9 +290,6 @@ GEM railties (>= 4.0) sprockets-rails (>= 2.0, < 4.0) websocket (1.2.2) - websocket-driver (0.6.2) - websocket-extensions (>= 0.1.0) - websocket-extensions (0.1.2) xpath (2.0.0) nokogiri (~> 1.3) @@ -312,7 +305,7 @@ DEPENDENCIES byebug capybara capybara-screenshot - capybara-webkit + chromedriver-helper coffee-rails coveralls database_cleaner @@ -322,8 +315,6 @@ DEPENDENCIES jbuilder launchy pg - phantomjs - poltergeist rails (~> 4.2) rails-html-sanitizer rails_12factor diff --git a/spec/rails_helper.rb b/spec/rails_helper.rb index c599fc6e..da01e603 100644 --- a/spec/rails_helper.rb +++ b/spec/rails_helper.rb @@ -6,7 +6,6 @@ require File.expand_path("../../config/environment", __FILE__) require "rspec/rails" require "capybara/rspec" -require "capybara/poltergeist" require "capybara-screenshot/rspec" # Add additional requires below this line. Rails is not loaded until this point! @@ -49,33 +48,11 @@ config.after(:each) do DatabaseCleaner.clean end - - driver = ENV["DRIVER"].try(:to_sym) - if driver.nil? || driver == :poltergeist - require "capybara/poltergeist" - Capybara.default_driver = :poltergeist - Capybara.current_driver = :poltergeist - Capybara.javascript_driver = :poltergeist - elsif driver == :webkit - Capybara.default_driver = :webkit - Capybara.current_driver = :webkit - Capybara.javascript_driver = :webkit - elsif driver == :selenium - Capybara.default_driver = :selenium - Capybara.current_driver = :selenium - Capybara.javascript_driver = :selenium - else # to use chrome, for example, with selenium - Capybara.register_driver :selenium do |app| - Capybara::Selenium::Driver.new(app, browser: driver) - end - Capybara.default_driver = :selenium - Capybara.current_driver = :selenium - Capybara.javascript_driver = :selenium + Capybara.register_driver :selenium_chrome do |app| + Capybara::Selenium::Driver.new(app, browser: :chrome) end - puts "Capybara using driver: #{Capybara.default_driver}" - - Capybara::Screenshot.prune_strategy = { keep: 10 } + Capybara.javascript_driver = :selenium_chrome # Remove this line if you're not using ActiveRecord or ActiveRecord fixtures config.fixture_path = "#{::Rails.root}/spec/fixtures" From d24b00828bdeaa419d8223d13cfa93c357cea796 Mon Sep 17 00:00:00 2001 From: dylangrafmyre Date: Mon, 21 Sep 2015 23:14:30 -1000 Subject: [PATCH 076/514] Address js linting issue --- client/assets/javascripts/utils/CommentsManager.js | 1 + 1 file changed, 1 insertion(+) diff --git a/client/assets/javascripts/utils/CommentsManager.js b/client/assets/javascripts/utils/CommentsManager.js index e3360b7c..c501968f 100644 --- a/client/assets/javascripts/utils/CommentsManager.js +++ b/client/assets/javascripts/utils/CommentsManager.js @@ -48,6 +48,7 @@ const CommentsManager = { return meta.getAttribute('content'); } } + return null; }, From 2b9bdfb437d020489e5de790e74ecc09d53aed41 Mon Sep 17 00:00:00 2001 From: dylangrafmyre Date: Tue, 22 Sep 2015 09:25:36 -1000 Subject: [PATCH 077/514] Update .travis.yml for selenium_firefox webdriver --- .travis.yml | 1 + spec/rails_helper.rb | 18 +++++++++++++++--- 2 files changed, 16 insertions(+), 3 deletions(-) diff --git a/.travis.yml b/.travis.yml index 5e498dbe..3cac88bd 100644 --- a/.travis.yml +++ b/.travis.yml @@ -10,6 +10,7 @@ install: env: - export RAILS_ENV=test + - export DRIVER=selenium_firefox script: - bundle exec rake db:schema:load - bundle exec rake diff --git a/spec/rails_helper.rb b/spec/rails_helper.rb index da01e603..ff1636d3 100644 --- a/spec/rails_helper.rb +++ b/spec/rails_helper.rb @@ -48,12 +48,24 @@ config.after(:each) do DatabaseCleaner.clean end - Capybara.register_driver :selenium_chrome do |app| - Capybara::Selenium::Driver.new(app, browser: :chrome) + + driver = ENV["DRIVER"].try(:to_sym) + if driver.nil? || driver == :selenium_chrome_ + Capybara.register_driver :selenium_chrome do |app| + Capybara::Selenium::Driver.new(app, browser: :chrome) + end + Capybara.javascript_driver = :selenium_chrome + else + Capybara.register_driver :selenium_firefox do |app| + Capybara::Selenium::Driver.new(app, browser: :firefox) + end + Capybara.javascript_driver = :selenium_firefox end - Capybara.javascript_driver = :selenium_chrome + 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" From fcde7d85509c7d5cd430dcad4a6ac3e791ba7b70 Mon Sep 17 00:00:00 2001 From: dylangrafmyre Date: Tue, 22 Sep 2015 09:30:29 -1000 Subject: [PATCH 078/514] Move ENV variable inline for .travis.yml --- .travis.yml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/.travis.yml b/.travis.yml index 3cac88bd..65a427d5 100644 --- a/.travis.yml +++ b/.travis.yml @@ -10,8 +10,7 @@ install: env: - export RAILS_ENV=test - - export DRIVER=selenium_firefox script: - bundle exec rake db:schema:load - - bundle exec rake + - DRIVER=selenium_firefox bundle exec rake - bundle exec rake lint From 527bc449fb41d639792cc4327d7443ffb7df1ce5 Mon Sep 17 00:00:00 2001 From: dylangrafmyre Date: Tue, 22 Sep 2015 09:40:46 -1000 Subject: [PATCH 079/514] Adjust .travis.yml for running xvfb before_script --- .travis.yml | 3 +++ spec/rails_helper.rb | 2 +- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 65a427d5..b0b2aa18 100644 --- a/.travis.yml +++ b/.travis.yml @@ -10,6 +10,9 @@ install: env: - export RAILS_ENV=test + +before_script: + - xvfb-run -a script: - bundle exec rake db:schema:load - DRIVER=selenium_firefox bundle exec rake diff --git a/spec/rails_helper.rb b/spec/rails_helper.rb index ff1636d3..6cb6222e 100644 --- a/spec/rails_helper.rb +++ b/spec/rails_helper.rb @@ -49,6 +49,7 @@ DatabaseCleaner.clean end + # selenium_firefox webdriver only works for Travis-CI builds. driver = ENV["DRIVER"].try(:to_sym) if driver.nil? || driver == :selenium_chrome_ Capybara.register_driver :selenium_chrome do |app| @@ -64,7 +65,6 @@ 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" From b042a35568ae267d65aacb56da8b16ca415f2684 Mon Sep 17 00:00:00 2001 From: dylangrafmyre Date: Tue, 22 Sep 2015 09:54:32 -1000 Subject: [PATCH 080/514] Add addtional before_script xvfb config for .travis.yml --- .travis.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index b0b2aa18..e2d6c293 100644 --- a/.travis.yml +++ b/.travis.yml @@ -12,7 +12,8 @@ env: - export RAILS_ENV=test before_script: - - xvfb-run -a + - export DISPLAY=:99.0 + - sh -e /etc/init.d/xvfb start script: - bundle exec rake db:schema:load - DRIVER=selenium_firefox bundle exec rake From 4af4997a0ef3719da420631750ac04cc56f79472 Mon Sep 17 00:00:00 2001 From: Justin Gordon Date: Wed, 23 Sep 2015 17:58:54 -0700 Subject: [PATCH 081/514] Updated ci.rake usage of brakeman * Run brakeman like: `brakeman --exit-on-warn --quiet -A` * This makes ci fail if there's a brakeman issue. * Updated brakeman gem to current (3.1.1) * Bonus: Added pry debugging gems --- Gemfile | 11 ++++++++--- Gemfile.lock | 50 ++++++++++++++++++++++++++++++++++++++--------- lib/tasks/ci.rake | 4 ++-- 3 files changed, 51 insertions(+), 14 deletions(-) diff --git a/Gemfile b/Gemfile index ff61dc1d..9cb85a43 100644 --- a/Gemfile +++ b/Gemfile @@ -53,9 +53,6 @@ group :production do end group :development, :test do - # Call "debugger" anywhere in the code to stop execution and get a debugger console - gem "byebug" - # Access an IRB console on exceptions page and /console in development gem "web-console" @@ -80,6 +77,14 @@ group :development, :test do gem "bundler-audit", require: false gem "rainbow" + + # Favorite debugging gems + gem "pry" + gem "pry-doc" + gem "pry-rails" + gem "pry-stack_explorer" + gem "pry-rescue" + gem "pry-byebug" end group :test do diff --git a/Gemfile.lock b/Gemfile.lock index 7579e5a1..13d0ac4b 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -52,15 +52,16 @@ GEM bootstrap-sass (3.3.5.1) autoprefixer-rails (>= 5.0.0.1) sass (>= 3.3.0) - brakeman (3.0.5) + brakeman (3.1.1) erubis (~> 2.6) fastercsv (~> 1.5) haml (>= 3.0, < 5.0) - highline (~> 1.6.20) + highline (~> 1.6) multi_json (~> 1.2) - ruby2ruby (~> 2.1.1) + ruby2ruby (>= 2.1.1, < 2.3.0) ruby_parser (~> 3.7.0) sass (~> 3.0) + slim (>= 1.3.6, < 4.0) terminal-table (~> 1.4) builder (3.2.2) bundler-audit (0.4.0) @@ -82,6 +83,7 @@ GEM chromedriver-helper (1.0.0) archive-zip (~> 0.7.0) nokogiri (~> 1.6) + coderay (1.1.0) coffee-rails (4.1.0) coffee-script (>= 2.2.0) railties (>= 4.0.0, < 5.0) @@ -118,12 +120,13 @@ GEM thor (~> 0.19.1) globalid (0.3.5) activesupport (>= 4.1.0) - haml (4.0.6) + haml (4.0.7) tilt - highline (1.6.21) + highline (1.7.7) http-cookie (1.0.2) domain_name (~> 0.5) i18n (0.7.0) + interception (0.5) io-like (0.3.0) jbuilder (2.3.1) activesupport (>= 3.0.0, < 5) @@ -137,6 +140,7 @@ GEM nokogiri (>= 1.5.9) mail (2.6.3) mime-types (>= 1.16, < 3) + method_source (0.8.2) mime-types (2.6.1) mini_portile (0.6.2) minitest (5.7.0) @@ -148,6 +152,24 @@ GEM ast (>= 1.1, < 3.0) pg (0.18.2) powerpack (0.1.1) + pry (0.10.1) + coderay (~> 1.1.0) + method_source (~> 0.8.1) + slop (~> 3.4) + pry-byebug (3.2.0) + byebug (~> 5.0) + pry (~> 0.10) + pry-doc (0.8.0) + pry (~> 0.9) + yard (~> 0.8) + pry-rails (0.3.4) + pry (>= 0.9.10) + pry-rescue (1.4.2) + interception (>= 0.5) + pry + pry-stack_explorer (0.4.9.2) + binding_of_caller (>= 0.7) + pry (>= 0.9.11) rack (1.6.4) rack-test (0.6.3) rack (>= 1.0) @@ -219,13 +241,13 @@ GEM parser (~> 2.2) slop (~> 3.4, >= 3.4.7) ruby-progressbar (1.7.5) - ruby2ruby (2.1.4) + ruby2ruby (2.2.0) ruby_parser (~> 3.1) sexp_processor (~> 4.0) - ruby_parser (3.7.0) + ruby_parser (3.7.1) sexp_processor (~> 4.1) rubyzip (1.1.7) - sass (3.4.16) + sass (3.4.18) sass-rails (5.0.3) railties (>= 4.0.0, < 5.0) sass (~> 3.1) @@ -249,6 +271,9 @@ GEM 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.3.6) spring-commands-rspec (1.0.4) @@ -260,6 +285,7 @@ GEM activesupport (>= 3.0) sprockets (>= 2.8, < 4.0) sqlite3 (1.3.10) + temple (0.7.6) term-ansicolor (1.3.2) tins (~> 1.0) terminal-table (1.5.2) @@ -292,6 +318,7 @@ GEM websocket (1.2.2) xpath (2.0.0) nokogiri (~> 1.3) + yard (0.8.7.6) PLATFORMS ruby @@ -302,7 +329,6 @@ DEPENDENCIES bootstrap-sass (~> 3.3.1) brakeman bundler-audit - byebug capybara capybara-screenshot chromedriver-helper @@ -315,6 +341,12 @@ DEPENDENCIES jbuilder launchy pg + pry + pry-byebug + pry-doc + pry-rails + pry-rescue + pry-stack_explorer rails (~> 4.2) rails-html-sanitizer rails_12factor diff --git a/lib/tasks/ci.rake b/lib/tasks/ci.rake index c1e05530..93129808 100644 --- a/lib/tasks/ci.rake +++ b/lib/tasks/ci.rake @@ -8,7 +8,8 @@ if Rails.env.development? task :security_audit do puts Rainbow("Running security audit on code (brakeman)").green - Rake::Task["brakeman:run"].invoke("tmp/brakeman-report.html") + + sh "brakeman --exit-on-warn --quiet -A" end namespace :ci do @@ -29,5 +30,4 @@ if Rails.env.development? task ci: "ci:all" task(:default).clear.enhance([:ci]) - end From d148c5bfaa76a4c94e0334fb7e50d265b5ee853b Mon Sep 17 00:00:00 2001 From: Justin Gordon Date: Wed, 23 Sep 2015 18:03:13 -0700 Subject: [PATCH 082/514] Missing -z option so brakeman returns non-zero * Most important part of this fix. * Otherwise, brakeman reports errors AND there is no CI failure! --- lib/tasks/ci.rake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/tasks/ci.rake b/lib/tasks/ci.rake index 93129808..22c2f079 100644 --- a/lib/tasks/ci.rake +++ b/lib/tasks/ci.rake @@ -9,7 +9,7 @@ if Rails.env.development? task :security_audit do puts Rainbow("Running security audit on code (brakeman)").green - sh "brakeman --exit-on-warn --quiet -A" + sh "brakeman --exit-on-warn --quiet -A -z" end namespace :ci do From 7dfd00aecc340ce94ac4deac572d1598fbe69b28 Mon Sep 17 00:00:00 2001 From: Alex Fedoseev Date: Fri, 18 Sep 2015 17:51:38 +0300 Subject: [PATCH 083/514] Remove unused karma stuff --- client/karma.conf.js | 43 ----------------------------------------- client/tests.webpack.js | 2 -- 2 files changed, 45 deletions(-) delete mode 100644 client/karma.conf.js delete mode 100644 client/tests.webpack.js diff --git a/client/karma.conf.js b/client/karma.conf.js deleted file mode 100644 index 138c1d55..00000000 --- a/client/karma.conf.js +++ /dev/null @@ -1,43 +0,0 @@ -const webpack = require('webpack'); - -module.exports = function karmaMain(config) { - config.set({ - - browserNoActivityTimeout: 30000, - - browsers: [process.env.CONTINUOUS_INTEGRATION ? 'Firefox' : 'Chrome'], - - singleRun: process.env.CONTINUOUS_INTEGRATION === 'true', - - frameworks: ['mocha'], - - files: [ - 'tests.webpack.js', - ], - - preprocessors: { - 'tests.webpack.js': ['webpack', 'sourcemap'], - }, - - reporters: ['dots'], - - webpack: { - devtool: 'inline-source-map', - module: { - loaders: [ - {test: /\.js$/, loader: 'babel-loader'}, - ], - }, - plugins: [ - new webpack.DefinePlugin({ - 'process.env.NODE_ENV': JSON.stringify('test'), - }), - ], - }, - - webpackServer: { - noInfo: true, - }, - - }); -}; diff --git a/client/tests.webpack.js b/client/tests.webpack.js deleted file mode 100644 index 5e9765c0..00000000 --- a/client/tests.webpack.js +++ /dev/null @@ -1,2 +0,0 @@ -const context = require.context('./modules', true, /-test\.js$/); -context.keys().forEach(context); From de7627f11207e44c457e2ce0c307834eef6c08dc Mon Sep 17 00:00:00 2001 From: Alex Fedoseev Date: Fri, 18 Sep 2015 17:53:04 +0300 Subject: [PATCH 084/514] Remove unused gulp and setup npm lint scripts --- client/gulpfile.js | 13 ------------- client/package.json | 8 +++----- 2 files changed, 3 insertions(+), 18 deletions(-) delete mode 100644 client/gulpfile.js diff --git a/client/gulpfile.js b/client/gulpfile.js deleted file mode 100644 index c1e0b244..00000000 --- a/client/gulpfile.js +++ /dev/null @@ -1,13 +0,0 @@ -const gulp = require('gulp'); -const eslint = require('eslint/lib/cli'); - -// Note: To have the process exit with an error code (1) on -// lint error, return the stream and pipe to failOnError last. -gulp.task('lint', function gulpLint(done) { - eslint.execute('--ext .js,.jsx .'); - return done(); -}); - -gulp.task('default', ['lint'], function gulpDefault() { - // This will only run if the lint task is successful... -}); diff --git a/client/package.json b/client/package.json index bd8e7a5e..1536d61f 100644 --- a/client/package.json +++ b/client/package.json @@ -57,8 +57,6 @@ "expose-loader": "^0.7.0", "express": "^4.13.3", "file-loader": "^0.8.4", - "gulp": "^3.9.0", - "gulp-eslint": "^1.0.0", "jscs": "^2.1.1", "node-sass": "^3.3.2", "react-hot-loader": "^1.3.0", @@ -70,8 +68,8 @@ "scripts": { "test": "echo \"Error: no test specified\" && exit 1", "start": "node server.js", - "gulp": "gulp", - "jscs": "jscs --verbose", - "eslint": "eslint" + "lint": "npm run eslint && npm run jscs", + "eslint": "eslint --ext .js,.jsx .", + "jscs": "jscs --verbose ." } } From ede0a5e0c8b41eb79d079e8a020112154110aa19 Mon Sep 17 00:00:00 2001 From: Alex Fedoseev Date: Fri, 18 Sep 2015 17:58:52 +0300 Subject: [PATCH 085/514] Split generated webpack js bundle in 2: application and vendor libs --- app/assets/javascripts/application.js | 3 ++- client/index.html | 3 ++- client/webpack.common.config.js | 15 +++++++++++++-- client/webpack.hot.config.js | 21 +++++++++++++-------- client/webpack.rails.config.js | 23 +++++++++++++++++++---- client/webpack.server.config.js | 2 +- 6 files changed, 50 insertions(+), 17 deletions(-) diff --git a/app/assets/javascripts/application.js b/app/assets/javascripts/application.js index 34e53597..e07c3148 100644 --- a/app/assets/javascripts/application.js +++ b/app/assets/javascripts/application.js @@ -14,6 +14,7 @@ //= require es5-shim/es5-shim // It is important that generated/client-bundle must be before bootstrap since it is exposing jQuery and jQuery-ujs -//= require generated/client-bundle +//= require generated/vendor +//= require generated/app //= require bootstrap-sprockets //= require turbolinks diff --git a/client/index.html b/client/index.html index c1906cd7..5c1dfde9 100755 --- a/client/index.html +++ b/client/index.html @@ -2,7 +2,8 @@ Hello React - + +
    diff --git a/client/webpack.common.config.js b/client/webpack.common.config.js index 4c59b907..700aa3d5 100644 --- a/client/webpack.common.config.js +++ b/client/webpack.common.config.js @@ -1,13 +1,16 @@ // Common webpack configuration used by webpack.hot.config and webpack.rails.config. +const webpack = require('webpack'); const path = require('path'); module.exports = { // the project dir context: __dirname, - entry: [], - + entry: { + vendor: [], + app: [], + }, resolve: { root: [ path.join(__dirname, 'scripts'), @@ -15,6 +18,14 @@ module.exports = { ], extensions: ['', '.webpack.js', '.web.js', '.js', '.jsx', '.scss', '.css', 'config.js'], }, + plugins: [ + new webpack.optimize.CommonsChunkPlugin({ + name: 'vendor', + chunks: ['app'], + filename: 'vendor.js', + minChunks: Infinity, + }), + ], module: { loaders: [ diff --git a/client/webpack.hot.config.js b/client/webpack.hot.config.js index 09007011..abe0d42e 100644 --- a/client/webpack.hot.config.js +++ b/client/webpack.hot.config.js @@ -1,28 +1,33 @@ // Run like this: // cd client && node server.js +const webpack = require('webpack'); const path = require('path'); const config = require('./webpack.common.config'); -const webpack = require('webpack'); // We're using the bootstrap-sass loader. // See: https://github.com/shakacode/bootstrap-sass-loader -config.entry.push('webpack-dev-server/client?http://localhost:3000', - 'webpack/hot/dev-server', - './scripts/webpack_only', +config.entry.vendor.push( 'jquery', 'jquery-ujs', - './assets/javascripts/clientGlobals', // custom bootstrap - 'bootstrap-sass!./bootstrap-sass.config.js'); + 'bootstrap-sass!./bootstrap-sass.config.js' +); +config.entry.app.unshift( + 'webpack-dev-server/client?http://localhost:3000', + 'webpack/hot/dev-server', + './scripts/webpack_only', + './assets/javascripts/clientGlobals' +); + config.output = { // this file is served directly by webpack - filename: 'express-bundle.js', + filename: '[name].js', path: __dirname, }; -config.plugins = [new webpack.HotModuleReplacementPlugin()]; +config.plugins.unshift(new webpack.HotModuleReplacementPlugin()); config.devtool = 'eval-source-map'; // Add the styles diff --git a/client/webpack.rails.config.js b/client/webpack.rails.config.js index af75a50e..a433e086 100644 --- a/client/webpack.rails.config.js +++ b/client/webpack.rails.config.js @@ -4,15 +4,23 @@ // NOTE: All style sheets handled by the asset pipeline in rails +const webpack = require('webpack'); const config = require('./webpack.common.config'); +const devBuild = process.env.NODE_ENV !== 'production'; + config.output = { - filename: 'client-bundle.js', + filename: '[name].js', path: '../app/assets/javascripts/generated', }; // You can add entry points specific to rails here -config.entry.push('./scripts/rails_only', 'jquery', 'jquery-ujs', './assets/javascripts/clientGlobals'); +config.entry.vendor.push( + './scripts/rails_only', + 'jquery', + 'jquery-ujs' +); +config.entry.app.push('./assets/javascripts/clientGlobals'); // See webpack.common.config for adding modules common to both the webpack dev server and rails @@ -21,13 +29,20 @@ config.module.loaders.push( {test: require.resolve('jquery'), loader: 'expose?jQuery'}, {test: require.resolve('jquery'), loader: 'expose?$'} ); + module.exports = config; -// Next line is Heroku specific. You'll have BUILDPACK_URL defined for your Heroku install. -const devBuild = (typeof process.env.BUILDPACK_URL) === 'undefined'; if (devBuild) { console.log('Webpack dev build for Rails'); // eslint-disable-line no-console module.exports.devtool = 'eval-source-map'; } else { + config.plugins.push( + new webpack.DefinePlugin({ + 'process.env': { + NODE_ENV: JSON.stringify('production'), + }, + }), + new webpack.optimize.DedupePlugin() + ); console.log('Webpack production build for Rails'); // eslint-disable-line no-console } diff --git a/client/webpack.server.config.js b/client/webpack.server.config.js index ec952ad0..9500dc4f 100644 --- a/client/webpack.server.config.js +++ b/client/webpack.server.config.js @@ -8,7 +8,7 @@ config.output = { libaryTarget: 'this', }; -config.entry.push('./assets/javascripts/serverGlobals'); +config.entry.app.push('./assets/javascripts/serverGlobals'); config.module.loaders.push({ loader: 'babel-loader' }); module.exports = config; From 555453c4ae86aa3e5cbcf8ba18ab079bcb0d30da Mon Sep 17 00:00:00 2001 From: Alex Fedoseev Date: Fri, 18 Sep 2015 18:13:15 +0300 Subject: [PATCH 086/514] Update root package.json --- package.json | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/package.json b/package.json index 21ffb2eb..3451fb54 100644 --- a/package.json +++ b/package.json @@ -8,8 +8,7 @@ }, "scripts": { "postinstall": "cd ./client && npm install", - "gulp": "cd ./client && npm run gulp", - "test": "rspec && client/bin/lint && (cd client && npm run jscs .)" + "test": "rspec && (cd client && npm run lint)" }, "repository": { "type": "git", From 95bc93e82bb87b9ef07b863d24c421a36f7c94b9 Mon Sep 17 00:00:00 2001 From: Alex Fedoseev Date: Fri, 18 Sep 2015 18:14:26 +0300 Subject: [PATCH 087/514] Update root package.json --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 3451fb54..997f1928 100644 --- a/package.json +++ b/package.json @@ -7,7 +7,7 @@ "node": "0.12.7" }, "scripts": { - "postinstall": "cd ./client && npm install", + "postinstall": "cd client && npm install", "test": "rspec && (cd client && npm run lint)" }, "repository": { From 5be79fd952ac518b33df2ef4115a2949c8ddba6f Mon Sep 17 00:00:00 2001 From: Alex Fedoseev Date: Fri, 18 Sep 2015 18:23:30 +0300 Subject: [PATCH 088/514] Use npm run to run client scripts --- .travis.yml | 6 ++---- Procfile.dev | 6 +++--- README.md | 8 ++++---- client/package.json | 4 ++++ client/webpack.rails.config.js | 2 +- lib/tasks/assets.rake | 4 ++-- 6 files changed, 16 insertions(+), 14 deletions(-) diff --git a/.travis.yml b/.travis.yml index e2d6c293..73b329d9 100644 --- a/.travis.yml +++ b/.travis.yml @@ -5,12 +5,10 @@ rvm: install: - bundle install - npm install - - cd client && NODE_ENV=production $(npm bin)/webpack --config webpack.rails.config.js - - NODE_ENV=production $(npm bin)/webpack --config webpack.server.config.js - + - cd client && npm run build:client + - npm run build:server env: - export RAILS_ENV=test - before_script: - export DISPLAY=:99.0 - sh -e /etc/init.d/xvfb start diff --git a/Procfile.dev b/Procfile.dev index 03105c6e..0d26caeb 100644 --- a/Procfile.dev +++ b/Procfile.dev @@ -1,4 +1,4 @@ web: rails s -p 4000 -client: sh -c 'cd client && $(npm bin)/webpack -w --config webpack.rails.config.js' -server: sh -c 'cd client && $(npm bin)/webpack -w --config webpack.server.config.js' -hot: sh -c 'cd client && node server.js' +client: sh -c 'rm app/assets/javascripts/generated/* || true && cd client && npm run build:dev:client' +server: sh -c 'cd client && npm run build:dev:server' +hot: sh -c 'cd client && npm start' diff --git a/README.md b/README.md index 28ca1b4e..bfe933a5 100644 --- a/README.md +++ b/README.md @@ -102,7 +102,7 @@ the JS bundle. We've chosen to let Rails handle CSS, SCSS, images, fonts. ``` cd client -$(npm bin)/webpack -w --config webpack.rails.config.js +npm run build:dev ``` `client-bundle.js` is generated and saved to `app/assets/javascripts`. This is included in the @@ -182,7 +182,7 @@ jQuery and jQuery-ujs are not required within `app/assets/javascript/application and have been moved under`/client` and managed by npm. The modules are exposed via entry point by `webpack.common.config.js`. -In `application.js`, it's critical that any libraries that depend on jQuery come after the inclusion +In `application.js`, it's critical that any libraries that depend on jQuery come after the inclusion of the Webpack bundle, such as the twitter bootstrap javascript. Please refer to [Considerations for jQuery with Rails and Webpack](http://forum.railsonmaui.com/t/considerations-for-jquery-with-rails-and-webpack/344) for further info. @@ -260,7 +260,7 @@ Run the tests with `rspec`. ### RubyMine/Webstorm Linting Configuration * I started out trying to make RubyMine and WebStorm catch and fix linting errors. However, I find it faster to just do this with the command line. Your mileage may vary. - * Create a custom scope like this for RubyMine, named "Inspection Scope" + * Create a custom scope like this for RubyMine, named "Inspection Scope" file[react-rails-tutorial]:*/&&!file[react-rails-tutorial]:tmp//*&&!file[react-rails-tutorial]:log//*&&!file[react-rails-tutorial]:client/node_modules//*&&!file[react-rails-tutorial]:client/assets/fonts//*&&!file[react-rails-tutorial]:app/assets/fonts//*&&!file[react-rails-tutorial]:bin//*&&!file[react-rails-tutorial]:app/assets/javascripts//* @@ -289,7 +289,7 @@ WebStorm opened up to the `client` directory to focus on JSX and Sass files. # Misc Tips -## Cleanup local branches merged to master +## Cleanup local branches merged to master ``` alias git-cleanup-merged-branches='git branch --merged master | grep -v master | xargs git branch -d' ``` diff --git a/client/package.json b/client/package.json index 1536d61f..3db88691 100644 --- a/client/package.json +++ b/client/package.json @@ -68,6 +68,10 @@ "scripts": { "test": "echo \"Error: no test specified\" && exit 1", "start": "node server.js", + "build:client": "NODE_ENV=production webpack --config webpack.rails.config.js", + "build:server": "NODE_ENV=production webpack --config webpack.server.config.js", + "build:dev:client": "webpack -w --config webpack.rails.config.js", + "build:dev:client": "webpack -w --config webpack.server.config.js", "lint": "npm run eslint && npm run jscs", "eslint": "eslint --ext .js,.jsx .", "jscs": "jscs --verbose ." diff --git a/client/webpack.rails.config.js b/client/webpack.rails.config.js index a433e086..4a7c4f67 100644 --- a/client/webpack.rails.config.js +++ b/client/webpack.rails.config.js @@ -1,5 +1,5 @@ // Run like this: -// cd client && $(npm bin)/webpack -w --config webpack.rails.config.js +// cd client && npm run build:dev // Note that Foreman (Procfile.dev) has also been configured to take care of this. // NOTE: All style sheets handled by the asset pipeline in rails diff --git a/lib/tasks/assets.rake b/lib/tasks/assets.rake index 2c43109d..df0694d8 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 bin)/webpack --config webpack.rails.config.js" - sh "cd client && $(npm bin)/webpack --config webpack.server.config.js" + sh "cd client && npm run build:client" + sh "cd client && npm run build:server" end task :clobber do From 44eeb478018d7624a1fc2e3e1b832e783c1c1e0b Mon Sep 17 00:00:00 2001 From: Alex Fedoseev Date: Wed, 23 Sep 2015 00:42:35 +0300 Subject: [PATCH 089/514] Fix after-rebase errors --- client/package.json | 8 ++--- client/server.js | 2 +- ...onfig.js => webpack.client.base.config.js} | 7 +++- ...config.js => webpack.client.hot.config.js} | 16 ++-------- ...nfig.js => webpack.client.rails.config.js} | 12 ++----- client/webpack.server.config.js | 14 -------- client/webpack.server.rails.config.js | 32 +++++++++++++++++++ 7 files changed, 49 insertions(+), 42 deletions(-) rename client/{webpack.common.config.js => webpack.client.base.config.js} (81%) rename client/{webpack.hot.config.js => webpack.client.hot.config.js} (81%) rename client/{webpack.rails.config.js => webpack.client.rails.config.js} (77%) delete mode 100644 client/webpack.server.config.js create mode 100644 client/webpack.server.rails.config.js diff --git a/client/package.json b/client/package.json index 3db88691..269c9983 100644 --- a/client/package.json +++ b/client/package.json @@ -68,10 +68,10 @@ "scripts": { "test": "echo \"Error: no test specified\" && exit 1", "start": "node server.js", - "build:client": "NODE_ENV=production webpack --config webpack.rails.config.js", - "build:server": "NODE_ENV=production webpack --config webpack.server.config.js", - "build:dev:client": "webpack -w --config webpack.rails.config.js", - "build:dev:client": "webpack -w --config webpack.server.config.js", + "build:client": "NODE_ENV=production webpack --config webpack.client.rails.config.js", + "build:server": "NODE_ENV=production webpack --config webpack.server.rails.config.js", + "build:dev:client": "webpack -w --config webpack.client.rails.config.js", + "build:dev:server": "webpack -w --config webpack.server.rails.config.js", "lint": "npm run eslint && npm run jscs", "eslint": "eslint --ext .js,.jsx .", "jscs": "jscs --verbose ." diff --git a/client/server.js b/client/server.js index b95d3e78..8a45d355 100644 --- a/client/server.js +++ b/client/server.js @@ -2,7 +2,7 @@ var bodyParser = require('body-parser'); var webpack = require('webpack'); var WebpackDevServer = require('webpack-dev-server'); -var config = require('./webpack.hot.config'); +var config = require('./webpack.client.hot.config'); var sleep = require('sleep'); var comments = [ diff --git a/client/webpack.common.config.js b/client/webpack.client.base.config.js similarity index 81% rename from client/webpack.common.config.js rename to client/webpack.client.base.config.js index 700aa3d5..37d8e551 100644 --- a/client/webpack.common.config.js +++ b/client/webpack.client.base.config.js @@ -8,7 +8,10 @@ module.exports = { // the project dir context: __dirname, entry: { - vendor: [], + vendor: [ + 'jquery', + 'jquery-ujs', + ], app: [], }, resolve: { @@ -31,6 +34,8 @@ module.exports = { // React is necessary for the client rendering: {test: require.resolve('react'), loader: 'expose?React'}, + {test: require.resolve('jquery'), loader: 'expose?jQuery'}, + {test: require.resolve('jquery'), loader: 'expose?$'}, ], }, }; diff --git a/client/webpack.hot.config.js b/client/webpack.client.hot.config.js similarity index 81% rename from client/webpack.hot.config.js rename to client/webpack.client.hot.config.js index abe0d42e..5c2f9d18 100644 --- a/client/webpack.hot.config.js +++ b/client/webpack.client.hot.config.js @@ -3,18 +3,12 @@ const webpack = require('webpack'); const path = require('path'); -const config = require('./webpack.common.config'); +const config = require('./webpack.client.base.config'); // We're using the bootstrap-sass loader. // See: https://github.com/shakacode/bootstrap-sass-loader -config.entry.vendor.push( - 'jquery', - 'jquery-ujs', - - // custom bootstrap - 'bootstrap-sass!./bootstrap-sass.config.js' -); -config.entry.app.unshift( +config.entry.vendor.push('bootstrap-sass!./bootstrap-sass.config.js'); +config.entry.app.push( 'webpack-dev-server/client?http://localhost:3000', 'webpack/hot/dev-server', './scripts/webpack_only', @@ -36,10 +30,6 @@ config.resolve.root.push(path.join(__dirname, 'assets/stylesheets')); // All the styling loaders only apply to hot-reload, not rails config.module.loaders.push( {test: /\.jsx?$/, loaders: ['react-hot', 'babel'], exclude: /node_modules/}, - - {test: require.resolve('jquery'), loader: 'expose?jQuery'}, - {test: require.resolve('jquery'), loader: 'expose?$'}, - {test: /\.css$/, loader: 'style-loader!css-loader'}, { test: /\.scss$/, diff --git a/client/webpack.rails.config.js b/client/webpack.client.rails.config.js similarity index 77% rename from client/webpack.rails.config.js rename to client/webpack.client.rails.config.js index 4a7c4f67..9742f945 100644 --- a/client/webpack.rails.config.js +++ b/client/webpack.client.rails.config.js @@ -5,7 +5,7 @@ // NOTE: All style sheets handled by the asset pipeline in rails const webpack = require('webpack'); -const config = require('./webpack.common.config'); +const config = require('./webpack.client.base.config'); const devBuild = process.env.NODE_ENV !== 'production'; @@ -15,19 +15,13 @@ config.output = { }; // You can add entry points specific to rails here -config.entry.vendor.push( - './scripts/rails_only', - 'jquery', - 'jquery-ujs' -); +config.entry.vendor.unshift('./scripts/rails_only'); config.entry.app.push('./assets/javascripts/clientGlobals'); // See webpack.common.config for adding modules common to both the webpack dev server and rails config.module.loaders.push( - {test: /\.jsx?$/, exclude: /node_modules/, loader: 'babel-loader'}, - {test: require.resolve('jquery'), loader: 'expose?jQuery'}, - {test: require.resolve('jquery'), loader: 'expose?$'} + {test: /\.jsx?$/, loader: 'babel-loader', exclude: /node_modules/} ); module.exports = config; diff --git a/client/webpack.server.config.js b/client/webpack.server.config.js deleted file mode 100644 index 9500dc4f..00000000 --- a/client/webpack.server.config.js +++ /dev/null @@ -1,14 +0,0 @@ -const config = require('./webpack.common.config'); - -config.output = { - filename: 'server-bundle.js', - path: '../app/assets/javascripts/generated', - - // CRITICAL for enabling Rails to find the globally exposed variables. - libaryTarget: 'this', -}; - -config.entry.app.push('./assets/javascripts/serverGlobals'); - -config.module.loaders.push({ loader: 'babel-loader' }); -module.exports = config; diff --git a/client/webpack.server.rails.config.js b/client/webpack.server.rails.config.js new file mode 100644 index 00000000..7f179095 --- /dev/null +++ b/client/webpack.server.rails.config.js @@ -0,0 +1,32 @@ +// Common webpack configuration used by webpack.hot.config and webpack.rails.config. + +const path = require('path'); + +module.exports = { + + // the project dir + context: __dirname, + entry: ['./assets/javascripts/serverGlobals'], + output: { + filename: 'server-bundle.js', + path: '../app/assets/javascripts/generated', + + // CRITICAL for enabling Rails to find the globally exposed variables. + libaryTarget: 'this', + }, + resolve: { + root: [ + path.join(__dirname, 'scripts'), + path.join(__dirname, 'assets/javascripts'), + ], + extensions: ['', '.webpack.js', '.web.js', '.js', '.jsx', 'config.js'], + }, + module: { + loaders: [ + {test: /\.jsx?$/, loader: 'babel-loader', exclude: /node_modules/}, + + // React is necessary for the client rendering: + {test: require.resolve('react'), loader: 'expose?React'}, + ], + }, +}; From 537c985dc82faee333d80509343ca32a3965f9dd Mon Sep 17 00:00:00 2001 From: Alex Fedoseev Date: Sat, 26 Sep 2015 22:21:09 +0300 Subject: [PATCH 090/514] Move js app to /client/app dir, update structure, fix linter and stylistic issues --- app/assets/javascripts/application.js | 4 +- client/.eslintrc | 2 +- client/.jscsrc | 4 +- .../actions/commentsActionCreators.js} | 16 +- client/app/components/Comment.jsx | 26 ++ .../components/CommentBox.jsx | 27 +- client/app/components/CommentForm.jsx | 244 ++++++++++++++++++ .../components/CommentList.jsx | 28 +- client/app/components/CommentScreen.jsx | 49 ++++ .../constants/commentsConstants.js} | 0 .../middlewares}/loggerMiddleware.js | 0 client/app/reducers/commentsReducer.js | 65 +++++ client/app/reducers/index.js | 10 + .../javascripts => app/startup}/ClientApp.jsx | 6 +- .../javascripts => app/startup}/ServerApp.jsx | 6 +- .../startup}/clientGlobals.jsx | 0 .../startup}/serverGlobals.jsx | 0 client/app/stores/commentsStore.js | 14 + .../utils/commentsManager.js} | 5 +- .../assets/javascripts/components/Comment.jsx | 25 -- .../javascripts/components/CommentForm.jsx | 198 -------------- .../javascripts/components/CommentScreen.jsx | 50 ---- .../javascripts/reducers/commentReducer.js | 36 --- client/assets/javascripts/reducers/index.js | 3 - .../assets/javascripts/stores/CommentStore.js | 8 - client/bin/lint | 12 - client/index.html | 4 +- client/package.json | 22 +- client/scripts/rails_only.jsx | 10 - client/scripts/webpack_only.jsx | 8 - client/webpack.client.base.config.js | 7 +- client/webpack.client.hot.config.js | 16 +- client/webpack.client.rails.config.js | 9 +- client/webpack.server.rails.config.js | 10 +- 34 files changed, 494 insertions(+), 430 deletions(-) rename client/{assets/javascripts/actions/CommentActionCreators.js => app/actions/commentsActionCreators.js} (77%) create mode 100644 client/app/components/Comment.jsx rename client/{assets/javascripts => app}/components/CommentBox.jsx (60%) create mode 100644 client/app/components/CommentForm.jsx rename client/{assets/javascripts => app}/components/CommentList.jsx (55%) create mode 100644 client/app/components/CommentScreen.jsx rename client/{assets/javascripts/constants/ActionTypes.js => app/constants/commentsConstants.js} (100%) rename client/{assets/javascripts/middleware => app/middlewares}/loggerMiddleware.js (100%) create mode 100644 client/app/reducers/commentsReducer.js create mode 100644 client/app/reducers/index.js rename client/{assets/javascripts => app/startup}/ClientApp.jsx (64%) rename client/{assets/javascripts => app/startup}/ServerApp.jsx (64%) mode change 100755 => 100644 rename client/{assets/javascripts => app/startup}/clientGlobals.jsx (100%) rename client/{assets/javascripts => app/startup}/serverGlobals.jsx (100%) create mode 100644 client/app/stores/commentsStore.js rename client/{assets/javascripts/utils/CommentsManager.js => app/utils/commentsManager.js} (90%) delete mode 100644 client/assets/javascripts/components/Comment.jsx delete mode 100644 client/assets/javascripts/components/CommentForm.jsx delete mode 100644 client/assets/javascripts/components/CommentScreen.jsx delete mode 100644 client/assets/javascripts/reducers/commentReducer.js delete mode 100644 client/assets/javascripts/reducers/index.js delete mode 100644 client/assets/javascripts/stores/CommentStore.js delete mode 100755 client/bin/lint delete mode 100644 client/scripts/rails_only.jsx delete mode 100755 client/scripts/webpack_only.jsx diff --git a/app/assets/javascripts/application.js b/app/assets/javascripts/application.js index e07c3148..8d41f23b 100644 --- a/app/assets/javascripts/application.js +++ b/app/assets/javascripts/application.js @@ -14,7 +14,7 @@ //= require es5-shim/es5-shim // It is important that generated/client-bundle must be before bootstrap since it is exposing jQuery and jQuery-ujs -//= require generated/vendor -//= require generated/app +//= require generated/vendor-bundle +//= require generated/app-bundle //= require bootstrap-sprockets //= require turbolinks diff --git a/client/.eslintrc b/client/.eslintrc index 659178c0..e9fe0cf1 100644 --- a/client/.eslintrc +++ b/client/.eslintrc @@ -13,4 +13,4 @@ env: rules: indent: [1, 2, { SwitchCase: 1, VariableDeclarator: 2 }] react/sort-comp: 0 - react/jsx-quotes: 0 + react/jsx-quotes: 1 diff --git a/client/.jscsrc b/client/.jscsrc index 0be7eea1..c97c7f76 100644 --- a/client/.jscsrc +++ b/client/.jscsrc @@ -1,5 +1,7 @@ { "preset": "airbnb", "fileExtensions": [".js", ".jsx"], - "excludeFiles": ["build/**", "node_modules/**"] + "excludeFiles": ["build/**", "node_modules/**"], + + "validateQuoteMarks": null // Issue with JSX quotemarks: https://github.com/jscs-dev/babel-jscs/issues/12 } diff --git a/client/assets/javascripts/actions/CommentActionCreators.js b/client/app/actions/commentsActionCreators.js similarity index 77% rename from client/assets/javascripts/actions/CommentActionCreators.js rename to client/app/actions/commentsActionCreators.js index 5808f2b5..58c7e4a6 100644 --- a/client/assets/javascripts/actions/CommentActionCreators.js +++ b/client/app/actions/commentsActionCreators.js @@ -1,5 +1,5 @@ -import CommentsManager from '../utils/CommentsManager'; -import * as actionTypes from '../constants/ActionTypes'; +import commentsManager from '../utils/commentsManager'; +import * as actionTypes from '../constants/commentsConstants'; export function incrementAjaxCounter() { return { @@ -44,25 +44,23 @@ export function submitCommentFailure(error) { export function fetchComments() { return dispatch => { return ( - CommentsManager.fetchComments() + commentsManager + .fetchComments() .then(res => dispatch(fetchCommentsSuccess(res.data))) .catch(res => dispatch(fetchCommentsFailure(res.data))) ); }; } -function dispatchDecrementAjaxCounter(dispatch) { - return dispatch(decrementAjaxCounter()); -} - export function submitComment(comment) { return dispatch => { dispatch(incrementAjaxCounter()); return ( - CommentsManager.submitComment(comment) + commentsManager + .submitComment(comment) .then(res => dispatch(submitCommentSuccess(res.data))) .catch(res => dispatch(submitCommentFailure(res.data))) - .then(() => dispatchDecrementAjaxCounter(dispatch)) + .then(() => dispatch(decrementAjaxCounter())) ); }; } diff --git a/client/app/components/Comment.jsx b/client/app/components/Comment.jsx new file mode 100644 index 00000000..e3b40d1f --- /dev/null +++ b/client/app/components/Comment.jsx @@ -0,0 +1,26 @@ +import React, { PropTypes } from 'react'; +import marked from 'marked'; + +const Comment = React.createClass({ + displayName: 'Comment', + + propTypes: { + author: PropTypes.string.isRequired, + text: PropTypes.string.isRequired, + }, + + render() { + const { author, text } = this.props; + const rawMarkup = marked(text, { gfm: true, sanitize: true }); + return ( +
    +

    + {author} +

    + +
    + ); + }, +}); + +export default Comment; diff --git a/client/assets/javascripts/components/CommentBox.jsx b/client/app/components/CommentBox.jsx similarity index 60% rename from client/assets/javascripts/components/CommentBox.jsx rename to client/app/components/CommentBox.jsx index 33870dc8..4751708e 100644 --- a/client/assets/javascripts/components/CommentBox.jsx +++ b/client/app/components/CommentBox.jsx @@ -1,4 +1,5 @@ -import React from 'react'; +import React, { PropTypes } from 'react'; + import CommentForm from './CommentForm'; import CommentList from './CommentList'; @@ -6,16 +7,15 @@ const CommentBox = React.createClass({ displayName: 'CommentBox', propTypes: { - pollInterval: React.PropTypes.number.isRequired, - actions: React.PropTypes.object.isRequired, - data: React.PropTypes.object.isRequired, + pollInterval: PropTypes.number.isRequired, + actions: PropTypes.object.isRequired, + data: PropTypes.object.isRequired, }, componentDidMount() { const { fetchComments } = this.props.actions; fetchComments(); - setInterval(fetchComments, - this.props.pollInterval); + setInterval(fetchComments, this.props.pollInterval); }, ajaxCounter() { @@ -30,20 +30,23 @@ const CommentBox = React.createClass({ const { actions, data } = this.props; return ( -
    +

    - Comments { this.isSendingAjax() ? `SENDING AJAX REQUEST! Ajax Counter is ${this.ajaxCounter()}` : '' } + Comments { this.isSendingAjax() && `SENDING AJAX REQUEST! Ajax Counter is ${this.ajaxCounter()}` }

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

    + Name is preserved, Text is reset, between submits. +

    + actions={actions} + /> + $$comments={data.get('$$comments')} + error={data.get('fetchCommentError')} + />
    ); }, diff --git a/client/app/components/CommentForm.jsx b/client/app/components/CommentForm.jsx new file mode 100644 index 00000000..c9b3c5df --- /dev/null +++ b/client/app/components/CommentForm.jsx @@ -0,0 +1,244 @@ +import React, { PropTypes } from 'react'; +import Input from 'react-bootstrap/lib/Input'; +import Row from 'react-bootstrap/lib/Row'; +import Col from 'react-bootstrap/lib/Col'; +import Nav from 'react-bootstrap/lib/Nav'; +import NavItem from 'react-bootstrap/lib/NavItem'; +import Alert from 'react-bootstrap/lib/Alert'; +import ReactCSSTransitionGroup from 'react/lib/ReactCSSTransitionGroup'; + +const emptyComment = { author: '', text: '' }; +const textPlaceholder = 'Say something using markdown...'; + +const CommentForm = React.createClass({ + displayName: 'CommentForm', + + propTypes: { + ajaxSending: PropTypes.bool.isRequired, + actions: PropTypes.object.isRequired, + error: PropTypes.any, + }, + + getInitialState() { + return { + formMode: 0, + comment: emptyComment, + }; + }, + + handleSelect(selectedKey) { + this.setState({ formMode: selectedKey }); + }, + + handleChange() { + let comment; + + // This could also be done using ReactLink: + // http://facebook.github.io/react/docs/two-way-binding-helpers.html + if (this.state.formMode < 2) { + comment = { + author: this.refs.author.getValue(), + text: this.refs.text.getValue(), + }; + } else { + comment = { + // This is different because the input is a native HTML element + // rather than a React element. + author: this.refs.inlineAuthor.getDOMNode().value, + text: this.refs.inlineText.getDOMNode().value, + }; + } + + this.setState({ comment }); + }, + + handleSubmit(e) { + e.preventDefault(); + const { actions } = this.props; + actions + .submitComment(this.state.comment) + .then(this.resetAndFocus); + }, + + resetAndFocus() { + // Don't reset a form that didn't submit, this results in data loss + if (this.props.error) return; + + const comment = { author: this.state.comment.author, text: '' }; + this.setState({ comment }); + + let ref; + if (this.state.formMode < 2) { + ref = this.refs.text.getInputDOMNode(); + } else { + ref = React.findDOMNode(this.refs.inlineText); + } + + ref.focus(); + }, + + formHorizontal() { + return ( +
    +
    +
    + + +
    +
    + +
    +
    +
    +
    + ); + }, + + formStacked() { + return ( +
    +
    +
    + + + +
    +
    + ); + }, + + formInline() { + return ( +
    +
    +
    + + + + + + + + + + + + + +
    +
    + ); + }, + + errorWarning() { + // If there is no error, there is nothing to add to the DOM + if (!this.props.error) return undefined; + return ( + + Your comment was not saved! + A server error prevented your comment from being saved. Please try again. + + ); + }, + + render() { + let inputForm; + switch (this.state.formMode) { + case 0: + inputForm = this.formHorizontal(); + break; + case 1: + inputForm = this.formStacked(); + break; + case 2: + inputForm = this.formInline(); + break; + default: + throw new Error(`Unknown form mode: ${this.state.formMode}.`); + } + return ( +
    + + + {this.errorWarning()} + + + + {inputForm} +
    + ); + }, +}); + +export default CommentForm; diff --git a/client/assets/javascripts/components/CommentList.jsx b/client/app/components/CommentList.jsx similarity index 55% rename from client/assets/javascripts/components/CommentList.jsx rename to client/app/components/CommentList.jsx index 48a5a92a..0f95a4e4 100644 --- a/client/assets/javascripts/components/CommentList.jsx +++ b/client/app/components/CommentList.jsx @@ -1,42 +1,50 @@ -import React from 'react'; -import Comment from './Comment'; +import React, { PropTypes } from 'react'; +import Immutable from 'immutable'; import Alert from 'react-bootstrap/lib/Alert'; import ReactCSSTransitionGroup from 'react/lib/ReactCSSTransitionGroup'; +import Comment from './Comment'; + const CommentList = React.createClass({ displayName: 'CommentList', propTypes: { - comments: React.PropTypes.object, - error: React.PropTypes.any.isRequired, + $$comments: PropTypes.instanceOf(Immutable.List).isRequired, + error: PropTypes.any, }, errorWarning() { // If there is no error, there is nothing to add to the DOM if (!this.props.error) return undefined; return ( - - Comments could not be retrieved. A server error prevented loading comments. Please try again. + + Comments could not be retrieved. + A server error prevented loading comments. Please try again. ); }, render() { - const commentNodes = this.props.comments.reverse().map((comment, index) => { + const { $$comments } = this.props; + const commentNodes = $$comments.reverse().map(($$comment, index) => { // `key` is a React-specific concept and is not mandatory for the // purpose of this tutorial. if you're curious, see more here: // http://facebook.github.io/react/docs/multiple-components.html#dynamic-children return ( - + ); }); return (
    - + {this.errorWarning()} -
    +
    {commentNodes}
    diff --git a/client/app/components/CommentScreen.jsx b/client/app/components/CommentScreen.jsx new file mode 100644 index 00000000..40439789 --- /dev/null +++ b/client/app/components/CommentScreen.jsx @@ -0,0 +1,49 @@ +import React, { PropTypes } from 'react'; +import CommentBox from './CommentBox'; +import { connect } from 'react-redux'; +import { bindActionCreators } from 'redux'; +import * as commentsActionCreators from '../actions/commentsActionCreators'; + +function select(state) { + // Which part of the Redux global state does our component want to receive as props? + return { data: state.$$commentsStore }; +} + +const CommentScreen = React.createClass({ + displayName: 'CommentScreen', + + propTypes: { + dispatch: PropTypes.func.isRequired, + data: PropTypes.object.isRequired, + }, + + render() { + const { dispatch, data } = this.props; + const actions = bindActionCreators(commentsActionCreators, dispatch); + return ( +
    + + + ); + }, +}); + +// Don't forget to actually use connect! +export default connect(select)(CommentScreen); diff --git a/client/assets/javascripts/constants/ActionTypes.js b/client/app/constants/commentsConstants.js similarity index 100% rename from client/assets/javascripts/constants/ActionTypes.js rename to client/app/constants/commentsConstants.js diff --git a/client/assets/javascripts/middleware/loggerMiddleware.js b/client/app/middlewares/loggerMiddleware.js similarity index 100% rename from client/assets/javascripts/middleware/loggerMiddleware.js rename to client/app/middlewares/loggerMiddleware.js diff --git a/client/app/reducers/commentsReducer.js b/client/app/reducers/commentsReducer.js new file mode 100644 index 00000000..5ed231b1 --- /dev/null +++ b/client/app/reducers/commentsReducer.js @@ -0,0 +1,65 @@ +/* eslint new-cap: 0 */ + +import Immutable from 'immutable'; + +import * as actionTypes from '../constants/commentsConstants'; + +export const $$initialState = Immutable.fromJS({ + $$comments: [], + ajaxCounter: 0, + fetchCommentError: null, + submitCommentError: null, +}); + +export default function commentsReducer($$state = $$initialState, action) { + const { type, comment, comments, error } = action; + + switch (type) { + + case actionTypes.FETCH_COMMENTS_SUCCESS: { + return $$state.merge({ + $$comments: comments, + fetchCommentError: null, + }); + } + + case actionTypes.FETCH_COMMENTS_FAILURE: { + return $$state.merge({ + fetchCommentError: error, + }); + } + + case actionTypes.SUBMIT_COMMENT_SUCCESS: { + return $$state.withMutations(state => ( + state + .updateIn( + ['$$comments'], + $$comments => $$comments.push(Immutable.fromJS(comment)) + ) + .merge({ submitCommentError: null }) + )); + } + + case actionTypes.SUBMIT_COMMENT_FAILURE: { + return $$state.merge({ + submitCommentError: error, + }); + } + + case actionTypes.INCREMENT_AJAX_COUNTER: { + return $$state.merge({ + ajaxCounter: $$state.get('ajaxCounter') + 1, + }); + } + + case actionTypes.DECREMENT_AJAX_COUNTER: { + return $$state.merge({ + ajaxCounter: $$state.get('ajaxCounter') - 1, + }); + } + + default: { + return $$state; + } + } +} diff --git a/client/app/reducers/index.js b/client/app/reducers/index.js new file mode 100644 index 00000000..028795b5 --- /dev/null +++ b/client/app/reducers/index.js @@ -0,0 +1,10 @@ +import commentsReducer from './commentsReducer'; +import { $$initialState as $$commentsState } from './commentsReducer'; + +export default { + $$commentsStore: commentsReducer, +}; + +export const initalStates = { + $$commentsState, +}; diff --git a/client/assets/javascripts/ClientApp.jsx b/client/app/startup/ClientApp.jsx similarity index 64% rename from client/assets/javascripts/ClientApp.jsx rename to client/app/startup/ClientApp.jsx index fe28bb08..2d921619 100644 --- a/client/assets/javascripts/ClientApp.jsx +++ b/client/app/startup/ClientApp.jsx @@ -1,12 +1,12 @@ import React from 'react'; import { Provider } from 'react-redux'; -import CommentScreen from './components/CommentScreen'; -import CommentStore from './stores/CommentStore'; +import commentsStore from '../stores/commentsStore'; +import CommentScreen from '../components/CommentScreen'; const App = () => { const reactComponent = ( - + {() => } ); diff --git a/client/assets/javascripts/ServerApp.jsx b/client/app/startup/ServerApp.jsx old mode 100755 new mode 100644 similarity index 64% rename from client/assets/javascripts/ServerApp.jsx rename to client/app/startup/ServerApp.jsx index fe28bb08..2d921619 --- a/client/assets/javascripts/ServerApp.jsx +++ b/client/app/startup/ServerApp.jsx @@ -1,12 +1,12 @@ import React from 'react'; import { Provider } from 'react-redux'; -import CommentScreen from './components/CommentScreen'; -import CommentStore from './stores/CommentStore'; +import commentsStore from '../stores/commentsStore'; +import CommentScreen from '../components/CommentScreen'; const App = () => { const reactComponent = ( - + {() => } ); diff --git a/client/assets/javascripts/clientGlobals.jsx b/client/app/startup/clientGlobals.jsx similarity index 100% rename from client/assets/javascripts/clientGlobals.jsx rename to client/app/startup/clientGlobals.jsx diff --git a/client/assets/javascripts/serverGlobals.jsx b/client/app/startup/serverGlobals.jsx similarity index 100% rename from client/assets/javascripts/serverGlobals.jsx rename to client/app/startup/serverGlobals.jsx diff --git a/client/app/stores/commentsStore.js b/client/app/stores/commentsStore.js new file mode 100644 index 00000000..d97c84eb --- /dev/null +++ b/client/app/stores/commentsStore.js @@ -0,0 +1,14 @@ +import { compose, createStore, applyMiddleware, combineReducers } from 'redux'; +import thunkMiddleware from 'redux-thunk'; +import loggerMiddleware from '../middlewares/loggerMiddleware'; +import reducers from '../reducers'; + +// applyMiddleware supercharges createStore with middleware: +const reducer = combineReducers(reducers); +const composedStore = compose( + applyMiddleware(thunkMiddleware, loggerMiddleware) +); +const storeCreator = composedStore(createStore); +const store = storeCreator(reducer); + +export default store; diff --git a/client/assets/javascripts/utils/CommentsManager.js b/client/app/utils/commentsManager.js similarity index 90% rename from client/assets/javascripts/utils/CommentsManager.js rename to client/app/utils/commentsManager.js index c501968f..5b523dc7 100644 --- a/client/assets/javascripts/utils/CommentsManager.js +++ b/client/app/utils/commentsManager.js @@ -7,7 +7,7 @@ const CommentsManager = { /** * Retrieve comments from server using AJAX call. * - * @returns {Promise} - jqXHR result of ajax call. + * @returns {Promise} - result of ajax call. */ fetchComments() { return request({ @@ -21,7 +21,7 @@ const CommentsManager = { * Submit new comment to server using AJAX call. * * @param {Object} comment - Comment body to post. - * @returns {Promise} - jqXHR result of ajax call. + * @returns {Promise} - result of ajax call. */ submitComment(comment) { return request({ @@ -48,7 +48,6 @@ const CommentsManager = { return meta.getAttribute('content'); } } - return null; }, diff --git a/client/assets/javascripts/components/Comment.jsx b/client/assets/javascripts/components/Comment.jsx deleted file mode 100644 index d6d5a4e9..00000000 --- a/client/assets/javascripts/components/Comment.jsx +++ /dev/null @@ -1,25 +0,0 @@ -import marked from 'marked'; -import React from 'react'; - -const Comment = React.createClass({ - displayName: 'Comment', - - propTypes: { - author: React.PropTypes.string.isRequired, - text: React.PropTypes.string.isRequired, - }, - - render() { - const rawMarkup = marked(this.props.text, { gfm: true, sanitize: true }); - return ( -
    -

    - {this.props.author} -

    - -
    - ); - }, -}); - -export default Comment; diff --git a/client/assets/javascripts/components/CommentForm.jsx b/client/assets/javascripts/components/CommentForm.jsx deleted file mode 100644 index 1533415b..00000000 --- a/client/assets/javascripts/components/CommentForm.jsx +++ /dev/null @@ -1,198 +0,0 @@ -import React from 'react/addons'; -import Input from 'react-bootstrap/lib/Input'; -import Row from 'react-bootstrap/lib/Row'; -import Col from 'react-bootstrap/lib/Col'; -import Nav from 'react-bootstrap/lib/Nav'; -import NavItem from 'react-bootstrap/lib/NavItem'; -import Alert from 'react-bootstrap/lib/Alert'; -import ReactCSSTransitionGroup from 'react/lib/ReactCSSTransitionGroup'; - -const emptyComment = {author: '', text: ''}; -const textPlaceholder = 'Say something using markdown...'; - -const CommentForm = React.createClass({ - displayName: 'CommentForm', - - propTypes: { - ajaxSending: React.PropTypes.bool.isRequired, - actions: React.PropTypes.object.isRequired, - error: React.PropTypes.any.isRequired, - }, - - getInitialState() { - return { - formMode: 0, - comment: emptyComment, - }; - }, - - handleSelect(selectedKey) { - this.setState({formMode: selectedKey}); - }, - - handleChange() { - let comment; - - // This could also be done using ReactLink: - // http://facebook.github.io/react/docs/two-way-binding-helpers.html - if (this.state.formMode < 2) { - comment = { - author: this.refs.author.getValue(), - text: this.refs.text.getValue(), - }; - } else { - comment = { - // This is different because the input is a native HTML element - // rather than a React element. - author: this.refs.inlineAuthor.getDOMNode().value, - text: this.refs.inlineText.getDOMNode().value, - }; - } - - this.setState({comment}); - }, - - handleSubmit(e) { - e.preventDefault(); - this.props.actions.submitComment(this.state.comment).then( - () => this.resetAndFocus() - ); - }, - - resetAndFocus() { - // Don't reset a form that didn't submit, this results in data loss - if (this.props.error) return; - - const comment = {author: this.state.comment.author, text: ''}; - this.setState({comment}); - - let ref; - if (this.state.formMode < 2) { - ref = this.refs.text.getInputDOMNode(); - } else { - ref = React.findDOMNode(this.refs.inlineText); - } - - ref.focus(); - }, - - formHorizontal() { - return ( -
    -
    -
    - - - -
    -
    -
    -
    -
    -
    - ); - }, - - formStacked() { - return ( -
    -
    -
    - - - -
    -
    - ); - }, - - formInline() { - return ( -
    -
    -
    - - - - - - - - - - - - - -
    -
    - ); - }, - - errorWarning() { - // If there is no error, there is nothing to add to the DOM - if (!this.props.error) return undefined; - return ( - - Your comment was not saved! A server error prevented your comment from being saved. Please try - again. - - ); - }, - - render() { - let inputForm; - switch (this.state.formMode) { - case 0: - inputForm = this.formHorizontal(); - break; - case 1: - inputForm = this.formStacked(); - break; - case 2: - inputForm = this.formInline(); - break; - default: - throw new Error(`Unknown form mode: ${this.state.formMode}.`); - } - return ( -
    - - - {this.errorWarning()} - - - - {inputForm} -
    - ); - }, -}); - -export default CommentForm; diff --git a/client/assets/javascripts/components/CommentScreen.jsx b/client/assets/javascripts/components/CommentScreen.jsx deleted file mode 100644 index 843c37a5..00000000 --- a/client/assets/javascripts/components/CommentScreen.jsx +++ /dev/null @@ -1,50 +0,0 @@ -import React from 'react'; -import CommentBox from './CommentBox'; -import { connect } from 'react-redux'; -import { bindActionCreators } from 'redux'; -import { fetchComments, submitComment } from '../actions/CommentActionCreators'; - -const CommentActionsCreators = { fetchComments, submitComment }; - -function select(state) { - // Which part of the Redux global state does our component want to receive as props? - return { data: state.commentsData }; -} - -const CommentScreen = React.createClass({ - displayName: 'CommentScreen', - - propTypes: { - dispatch: React.PropTypes.func.isRequired, - data: React.PropTypes.object.isRequired, - }, - - render() { - const { dispatch, data } = this.props; - const actions = bindActionCreators(CommentActionsCreators, dispatch); - return ( -
    - - - - ); - }, -}); - -// Don't forget to actually use connect! -export default connect(select)(CommentScreen); diff --git a/client/assets/javascripts/reducers/commentReducer.js b/client/assets/javascripts/reducers/commentReducer.js deleted file mode 100644 index 0d75247f..00000000 --- a/client/assets/javascripts/reducers/commentReducer.js +++ /dev/null @@ -1,36 +0,0 @@ -/* eslint new-cap: 0 */ - -import * as actionTypes from '../constants/ActionTypes'; - -import { Map, List } from 'immutable'; - -const initialState = Map({ - comments: List(), - ajaxCounter: 0, - fetchCommentError: '', - submitCommentError: '', -}); - -export default function commentsReducer(state = initialState, action) { - switch (action.type) { - case actionTypes.FETCH_COMMENTS_SUCCESS: - return state.merge({comments: action.comments, fetchCommentError: ''}); - case actionTypes.FETCH_COMMENTS_FAILURE: - return state.merge({fetchCommentError: action.error}); - case actionTypes.SUBMIT_COMMENT_SUCCESS: - return state.withMutations(mState => { - mState - .updateIn(['comments'], comments => comments.push(Map(action.comment))) - .merge({submitCommentError: ''}); - }); - - case actionTypes.SUBMIT_COMMENT_FAILURE: - return state.merge({submitCommentError: action.error}); - case actionTypes.INCREMENT_AJAX_COUNTER: - return state.merge({ajaxCounter: state.get('ajaxCounter') + 1}); - case actionTypes.DECREMENT_AJAX_COUNTER: - return state.merge({ajaxCounter: state.get('ajaxCounter') - 1}); - default: - return state; - } -} diff --git a/client/assets/javascripts/reducers/index.js b/client/assets/javascripts/reducers/index.js deleted file mode 100644 index 825f73ec..00000000 --- a/client/assets/javascripts/reducers/index.js +++ /dev/null @@ -1,3 +0,0 @@ -import commentsData from './commentReducer'; - -export default { commentsData }; diff --git a/client/assets/javascripts/stores/CommentStore.js b/client/assets/javascripts/stores/CommentStore.js deleted file mode 100644 index 05255935..00000000 --- a/client/assets/javascripts/stores/CommentStore.js +++ /dev/null @@ -1,8 +0,0 @@ -import { createStore, applyMiddleware, combineReducers } from 'redux'; -import thunk from 'redux-thunk'; -import reducers from '../reducers'; -import loggerMiddleware from '../middleware/loggerMiddleware'; - -// applyMiddleware supercharges createStore with middleware: -const createStoreWithMiddleware = applyMiddleware(thunk, loggerMiddleware)(createStore); -export default createStoreWithMiddleware(combineReducers(reducers)); diff --git a/client/bin/lint b/client/bin/lint deleted file mode 100755 index 284b920e..00000000 --- a/client/bin/lint +++ /dev/null @@ -1,12 +0,0 @@ -#!/bin/sh -echo ================================================================================ -echo Warnings are OPTIONAL -echo ================================================================================ - -npm run eslint . -- --ext .jsx,.js -npm run jscs . - -echo ================================================================================ -echo Warnings are OPTIONAL -echo ================================================================================ - diff --git a/client/index.html b/client/index.html index 5c1dfde9..8be0fd5c 100755 --- a/client/index.html +++ b/client/index.html @@ -2,8 +2,8 @@ Hello React - - + +
    diff --git a/client/package.json b/client/package.json index 269c9983..1c6b756b 100644 --- a/client/package.json +++ b/client/package.json @@ -22,6 +22,17 @@ "url": "https://github.com/shakacode/react-webpack-rails-tutorial/issues" }, "homepage": "https://github.com/shakacode/react-webpack-rails-tutorial", + "scripts": { + "test": "echo \"Error: no test specified\" && exit 1", + "start": "node server.js", + "build:client": "NODE_ENV=production webpack --config webpack.client.rails.config.js", + "build:server": "NODE_ENV=production webpack --config webpack.server.rails.config.js", + "build:dev:client": "webpack -w --config webpack.client.rails.config.js", + "build:dev:server": "webpack -w --config webpack.server.rails.config.js", + "lint": "npm run eslint && npm run jscs", + "eslint": "eslint --ext .js,.jsx .", + "jscs": "jscs --verbose ." + }, "dependencies": { "axios": "^0.5.4", "babel-core": "^5.8.23", @@ -64,16 +75,5 @@ "style-loader": "^0.12.3", "url-loader": "^0.5.6", "webpack-dev-server": "^1.10.1" - }, - "scripts": { - "test": "echo \"Error: no test specified\" && exit 1", - "start": "node server.js", - "build:client": "NODE_ENV=production webpack --config webpack.client.rails.config.js", - "build:server": "NODE_ENV=production webpack --config webpack.server.rails.config.js", - "build:dev:client": "webpack -w --config webpack.client.rails.config.js", - "build:dev:server": "webpack -w --config webpack.server.rails.config.js", - "lint": "npm run eslint && npm run jscs", - "eslint": "eslint --ext .js,.jsx .", - "jscs": "jscs --verbose ." } } diff --git a/client/scripts/rails_only.jsx b/client/scripts/rails_only.jsx deleted file mode 100644 index e56bcd41..00000000 --- a/client/scripts/rails_only.jsx +++ /dev/null @@ -1,10 +0,0 @@ -// Only used by rails - -// Example of including es5 shims for supporting older browsers -// https://facebook.github.io/react/docs/working-with-the-browser.html -require('es5-shim/es5-shim'); -require('es5-shim/es5-sham'); - -// Due to issue: https://github.com/ariya/phantomjs/issues/12401 -// Phantomjs does not like promises -require('es6-promise').polyfill(); diff --git a/client/scripts/webpack_only.jsx b/client/scripts/webpack_only.jsx deleted file mode 100755 index a0fbe11d..00000000 --- a/client/scripts/webpack_only.jsx +++ /dev/null @@ -1,8 +0,0 @@ -// These are only loaded by the webpack dev server - -require('test-stylesheet.css'); - -// Test out Sass. -// Note that any sass in here cannot use the variables and mixins -// defined in the boostrap customizations file. -require('test-sass-stylesheet.scss'); diff --git a/client/webpack.client.base.config.js b/client/webpack.client.base.config.js index 37d8e551..c664fa48 100644 --- a/client/webpack.client.base.config.js +++ b/client/webpack.client.base.config.js @@ -1,7 +1,6 @@ // Common webpack configuration used by webpack.hot.config and webpack.rails.config. const webpack = require('webpack'); -const path = require('path'); module.exports = { @@ -15,17 +14,13 @@ module.exports = { app: [], }, resolve: { - root: [ - path.join(__dirname, 'scripts'), - path.join(__dirname, 'assets/javascripts'), - ], extensions: ['', '.webpack.js', '.web.js', '.js', '.jsx', '.scss', '.css', 'config.js'], }, plugins: [ new webpack.optimize.CommonsChunkPlugin({ name: 'vendor', chunks: ['app'], - filename: 'vendor.js', + filename: 'vendor-bundle.js', minChunks: Infinity, }), ], diff --git a/client/webpack.client.hot.config.js b/client/webpack.client.hot.config.js index 5c2f9d18..4115e7d6 100644 --- a/client/webpack.client.hot.config.js +++ b/client/webpack.client.hot.config.js @@ -9,24 +9,28 @@ const config = require('./webpack.client.base.config'); // See: https://github.com/shakacode/bootstrap-sass-loader config.entry.vendor.push('bootstrap-sass!./bootstrap-sass.config.js'); config.entry.app.push( + + // Webpack dev server 'webpack-dev-server/client?http://localhost:3000', 'webpack/hot/dev-server', - './scripts/webpack_only', - './assets/javascripts/clientGlobals' + + // Test out Css & Sass + './assets/stylesheets/test-stylesheet.css', + './assets/stylesheets/test-sass-stylesheet.scss', + + // App entry point + './app/startup/clientGlobals' ); config.output = { // this file is served directly by webpack - filename: '[name].js', + filename: '[name]-bundle.js', path: __dirname, }; config.plugins.unshift(new webpack.HotModuleReplacementPlugin()); config.devtool = 'eval-source-map'; -// Add the styles -config.resolve.root.push(path.join(__dirname, 'assets/stylesheets')); - // All the styling loaders only apply to hot-reload, not rails config.module.loaders.push( {test: /\.jsx?$/, loaders: ['react-hot', 'babel'], exclude: /node_modules/}, diff --git a/client/webpack.client.rails.config.js b/client/webpack.client.rails.config.js index 9742f945..96db2643 100644 --- a/client/webpack.client.rails.config.js +++ b/client/webpack.client.rails.config.js @@ -10,13 +10,16 @@ const config = require('./webpack.client.base.config'); const devBuild = process.env.NODE_ENV !== 'production'; config.output = { - filename: '[name].js', + filename: '[name]-bundle.js', path: '../app/assets/javascripts/generated', }; // You can add entry points specific to rails here -config.entry.vendor.unshift('./scripts/rails_only'); -config.entry.app.push('./assets/javascripts/clientGlobals'); +config.entry.vendor.unshift( + 'es5-shim/es5-shim', + 'es5-shim/es5-sham' +); +config.entry.app.push('./app/startup/clientGlobals'); // See webpack.common.config for adding modules common to both the webpack dev server and rails diff --git a/client/webpack.server.rails.config.js b/client/webpack.server.rails.config.js index 7f179095..ac164a4d 100644 --- a/client/webpack.server.rails.config.js +++ b/client/webpack.server.rails.config.js @@ -1,12 +1,10 @@ -// Common webpack configuration used by webpack.hot.config and webpack.rails.config. - -const path = require('path'); +// Common webpack configuration for server bundle module.exports = { // the project dir context: __dirname, - entry: ['./assets/javascripts/serverGlobals'], + entry: ['./app/startup/serverGlobals'], output: { filename: 'server-bundle.js', path: '../app/assets/javascripts/generated', @@ -15,10 +13,6 @@ module.exports = { libaryTarget: 'this', }, resolve: { - root: [ - path.join(__dirname, 'scripts'), - path.join(__dirname, 'assets/javascripts'), - ], extensions: ['', '.webpack.js', '.web.js', '.js', '.jsx', 'config.js'], }, module: { From 76a7482a3dd25a06a054400f3fa7b38a39242e17 Mon Sep 17 00:00:00 2001 From: Alex Fedoseev Date: Sat, 26 Sep 2015 22:22:36 +0300 Subject: [PATCH 091/514] :see_no_evil: --- app/assets/javascripts/application.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/app/assets/javascripts/application.js b/app/assets/javascripts/application.js index 8d41f23b..ecd6646f 100644 --- a/app/assets/javascripts/application.js +++ b/app/assets/javascripts/application.js @@ -13,8 +13,9 @@ // Need to be on top to allow Poltergeist test to work with React. //= require es5-shim/es5-shim -// It is important that generated/client-bundle must be before bootstrap since it is exposing jQuery and jQuery-ujs +// It is important that generated/vendor-bundle must be before bootstrap since it is exposing jQuery and jQuery-ujs //= require generated/vendor-bundle //= require generated/app-bundle + //= require bootstrap-sprockets //= require turbolinks From 06fc11e19005b5d556d57a0229a5f49c12812260 Mon Sep 17 00:00:00 2001 From: Alex Fedoseev Date: Sun, 27 Sep 2015 00:20:35 +0300 Subject: [PATCH 092/514] Pass initial data from Rails to Redux store --- app/controllers/pages_controller.rb | 1 + app/views/pages/index.html.erb | 2 +- client/app/startup/ClientApp.jsx | 7 ++++--- client/app/startup/ServerApp.jsx | 8 ++++---- client/app/stores/commentsStore.js | 26 ++++++++++++++++++-------- client/index.html | 14 -------------- client/index.jade | 14 ++++++++++++++ client/package.json | 1 + client/server.js | 23 +++++++++++++++-------- 9 files changed, 58 insertions(+), 38 deletions(-) delete mode 100755 client/index.html create mode 100644 client/index.jade diff --git a/app/controllers/pages_controller.rb b/app/controllers/pages_controller.rb index 39848c62..19dc5fef 100644 --- a/app/controllers/pages_controller.rb +++ b/app/controllers/pages_controller.rb @@ -1,4 +1,5 @@ class PagesController < ApplicationController def index + @comments = Comment.all end end diff --git a/app/views/pages/index.html.erb b/app/views/pages/index.html.erb index 9c514b3c..4bffec63 100644 --- a/app/views/pages/index.html.erb +++ b/app/views/pages/index.html.erb @@ -16,4 +16,4 @@
    -<%= react_component('App', {}, generator_function: true, prerender: true) %> +<%= react_component('App', @comments, generator_function: true, prerender: true) %> diff --git a/client/app/startup/ClientApp.jsx b/client/app/startup/ClientApp.jsx index 2d921619..dbdc2f93 100644 --- a/client/app/startup/ClientApp.jsx +++ b/client/app/startup/ClientApp.jsx @@ -1,12 +1,13 @@ import React from 'react'; import { Provider } from 'react-redux'; -import commentsStore from '../stores/commentsStore'; +import createStore from '../stores/commentsStore'; import CommentScreen from '../components/CommentScreen'; -const App = () => { +const App = props => { + const store = createStore(props); const reactComponent = ( - + {() => } ); diff --git a/client/app/startup/ServerApp.jsx b/client/app/startup/ServerApp.jsx index 2d921619..69827722 100644 --- a/client/app/startup/ServerApp.jsx +++ b/client/app/startup/ServerApp.jsx @@ -1,17 +1,17 @@ import React from 'react'; import { Provider } from 'react-redux'; -import commentsStore from '../stores/commentsStore'; +import createStore from '../stores/commentsStore'; import CommentScreen from '../components/CommentScreen'; -const App = () => { +const App = props => { + const store = createStore(props); const reactComponent = ( - + {() => } ); return reactComponent; }; -// Export is needed for the hot reload server export default App; diff --git a/client/app/stores/commentsStore.js b/client/app/stores/commentsStore.js index d97c84eb..0622dce7 100644 --- a/client/app/stores/commentsStore.js +++ b/client/app/stores/commentsStore.js @@ -2,13 +2,23 @@ import { compose, createStore, applyMiddleware, combineReducers } from 'redux'; import thunkMiddleware from 'redux-thunk'; import loggerMiddleware from '../middlewares/loggerMiddleware'; import reducers from '../reducers'; +import { initalStates } from '../reducers'; -// applyMiddleware supercharges createStore with middleware: -const reducer = combineReducers(reducers); -const composedStore = compose( - applyMiddleware(thunkMiddleware, loggerMiddleware) -); -const storeCreator = composedStore(createStore); -const store = storeCreator(reducer); +export default props => { + const initialComments = props; + const { $$commentsState } = initalStates; + const initialState = { + $$commentsStore: $$commentsState.merge({ + $$comments: initialComments, + }), + }; -export default store; + const reducer = combineReducers(reducers); + const composedStore = compose( + applyMiddleware(thunkMiddleware, loggerMiddleware) + ); + const storeCreator = composedStore(createStore); + const store = storeCreator(reducer, initialState); + + return store; +}; diff --git a/client/index.html b/client/index.html deleted file mode 100755 index 8be0fd5c..00000000 --- a/client/index.html +++ /dev/null @@ -1,14 +0,0 @@ - - - - Hello React - - - - -
    - - - diff --git a/client/index.jade b/client/index.jade new file mode 100644 index 00000000..859a0382 --- /dev/null +++ b/client/index.jade @@ -0,0 +1,14 @@ +doctype html +html + + head + title Hello, React + + body + + #app + + script(src="vendor-bundle.js") + script(src="app-bundle.js") + script. + React.render(App(!{props}), document.getElementById('app')); diff --git a/client/package.json b/client/package.json index 1c6b756b..63b91a0e 100644 --- a/client/package.json +++ b/client/package.json @@ -68,6 +68,7 @@ "expose-loader": "^0.7.0", "express": "^4.13.3", "file-loader": "^0.8.4", + "jade": "^1.11.0", "jscs": "^2.1.1", "node-sass": "^3.3.2", "react-hot-loader": "^1.3.0", diff --git a/client/server.js b/client/server.js index 8a45d355..e4908f40 100644 --- a/client/server.js +++ b/client/server.js @@ -2,18 +2,19 @@ var bodyParser = require('body-parser'); var webpack = require('webpack'); var WebpackDevServer = require('webpack-dev-server'); -var config = require('./webpack.client.hot.config'); +var jade = require('jade'); var sleep = require('sleep'); +var config = require('./webpack.client.hot.config'); var comments = [ - {author: 'Pete Hunt', text: 'Hey there!'}, - {author: 'Justin Gordon', text: 'Aloha from @railsonmaui'}, + { author: 'Pete Hunt', text: 'Hey there!' }, + { author: 'Justin Gordon', text: 'Aloha from @railsonmaui' }, ]; var server = new WebpackDevServer(webpack(config), { publicPath: config.output.publicPath, hot: true, - noInfo: false, + historyApiFallback: true, stats: { colors: true, hash: false, @@ -41,10 +42,16 @@ server.app.post('/comments.json', function(req, res) { res.send(JSON.stringify(req.body.comment)); }); -server.listen(3000, 'localhost', function(err) { - if (err) { - console.log(err); - } +server.app.use('/', function(req, res) { + var locals = { + props: JSON.stringify(comments), + }; + var layout = process.cwd() + '/index.jade'; + var html = jade.compileFile(layout, { pretty: true })(locals); + res.send(html); +}); +server.listen(3000, 'localhost', function(err) { + if (err) console.log(err); console.log('Listening at localhost:3000...'); }); From 3d68653cdd01c2a498c744cfc15b68be3a34e3ea Mon Sep 17 00:00:00 2001 From: Alex Fedoseev Date: Sun, 27 Sep 2015 09:59:38 +0300 Subject: [PATCH 093/514] Fix linter error --- client/app/utils/commentsManager.js | 1 + 1 file changed, 1 insertion(+) diff --git a/client/app/utils/commentsManager.js b/client/app/utils/commentsManager.js index 5b523dc7..6698ace2 100644 --- a/client/app/utils/commentsManager.js +++ b/client/app/utils/commentsManager.js @@ -48,6 +48,7 @@ const CommentsManager = { return meta.getAttribute('content'); } } + return null; }, From 57f3bad22ebf5713ec5fb0f200fbc8a5222abaec Mon Sep 17 00:00:00 2001 From: Alex Fedoseev Date: Sun, 27 Sep 2015 22:36:03 +0300 Subject: [PATCH 094/514] Update react_on_rails gem --- Gemfile | 2 +- Gemfile.lock | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Gemfile b/Gemfile index 9cb85a43..3508b7fe 100644 --- a/Gemfile +++ b/Gemfile @@ -39,7 +39,7 @@ gem "rails-html-sanitizer" # Use Unicorn as the app server gem "unicorn" -gem "react_on_rails", "~> 0.1.3" +gem "react_on_rails", "~> 0.1.6" gem "therubyracer" gem "autoprefixer-rails" diff --git a/Gemfile.lock b/Gemfile.lock index 13d0ac4b..13249a8a 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -206,7 +206,7 @@ GEM raindrops (0.15.0) rake (10.4.2) rdoc (4.2.0) - react_on_rails (0.1.3) + react_on_rails (0.1.6) execjs (~> 2.5) rails (~> 4.2) ref (2.0.0) @@ -351,7 +351,7 @@ DEPENDENCIES rails-html-sanitizer rails_12factor rainbow - react_on_rails (~> 0.1.3) + react_on_rails (~> 0.1.6) rspec-rails rubocop ruby-lint From c284074d02cee299dd42d61aac39323494e2040a Mon Sep 17 00:00:00 2001 From: Sergey Zyablitsky Date: Mon, 28 Sep 2015 13:45:56 +0900 Subject: [PATCH 095/514] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 7869b5b2..c6726893 100644 --- a/README.md +++ b/README.md @@ -254,7 +254,7 @@ Run the tests with `rspec`. Add those lines to your CI scripts after `bundle install` ``` npm install -cd client && npm run build +cd client && npm run build:client && npm run build:server ``` # Linting and Code Inspection From 6edba3a423ec6b66f6b075510f95982aff17e330 Mon Sep 17 00:00:00 2001 From: dylangrafmyre Date: Sun, 27 Sep 2015 20:59:11 -1000 Subject: [PATCH 096/514] Update react_on_rails gem to latest version 1.0.7 Add server side default config to initializes/react_on_rails.rb --- Gemfile | 2 +- Gemfile.lock | 8 +++++--- config/initializers/react_on_rails.rb | 5 +++++ 3 files changed, 11 insertions(+), 4 deletions(-) diff --git a/Gemfile b/Gemfile index 3508b7fe..0c68fdef 100644 --- a/Gemfile +++ b/Gemfile @@ -39,7 +39,7 @@ gem "rails-html-sanitizer" # Use Unicorn as the app server gem "unicorn" -gem "react_on_rails", "~> 0.1.6" +gem "react_on_rails", "~> 0.1.7" gem "therubyracer" gem "autoprefixer-rails" diff --git a/Gemfile.lock b/Gemfile.lock index 13249a8a..da420ee9 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -92,6 +92,7 @@ GEM execjs coffee-script-source (1.9.1.1) columnize (0.9.0) + connection_pool (2.2.0) coveralls (0.8.2) json (~> 1.8) rest-client (>= 1.6.8, < 2) @@ -206,9 +207,10 @@ GEM raindrops (0.15.0) rake (10.4.2) rdoc (4.2.0) - react_on_rails (0.1.6) + react_on_rails (0.1.7) + connection_pool execjs (~> 2.5) - rails (~> 4.2) + rails (>= 4.0) ref (2.0.0) rest-client (1.8.0) http-cookie (>= 1.0.2, < 2.0) @@ -351,7 +353,7 @@ DEPENDENCIES rails-html-sanitizer rails_12factor rainbow - react_on_rails (~> 0.1.6) + react_on_rails (~> 0.1.7) rspec-rails rubocop ruby-lint diff --git a/config/initializers/react_on_rails.rb b/config/initializers/react_on_rails.rb index a83b7706..6e929b29 100644 --- a/config/initializers/react_on_rails.rb +++ b/config/initializers/react_on_rails.rb @@ -13,4 +13,9 @@ # 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 + + # Server rendering: + config.server_renderer_pool_size = 1 # increase if you're on JRuby + config.server_renderer_timeout = 20 # seconds end From 361f4338ebb39a5d3934b00cb6d6fcf494773000 Mon Sep 17 00:00:00 2001 From: dylangrafmyre Date: Mon, 28 Sep 2015 22:02:23 -1000 Subject: [PATCH 097/514] update react_on_rails gem to latest 0.1.8 --- Gemfile | 2 +- Gemfile.lock | 4 ++-- app/assets/javascripts/application.js | 1 + 3 files changed, 4 insertions(+), 3 deletions(-) diff --git a/Gemfile b/Gemfile index 0c68fdef..767645be 100644 --- a/Gemfile +++ b/Gemfile @@ -39,7 +39,7 @@ gem "rails-html-sanitizer" # Use Unicorn as the app server gem "unicorn" -gem "react_on_rails", "~> 0.1.7" +gem "react_on_rails", "~> 0.1.8" gem "therubyracer" gem "autoprefixer-rails" diff --git a/Gemfile.lock b/Gemfile.lock index da420ee9..acaf810f 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -207,7 +207,7 @@ GEM raindrops (0.15.0) rake (10.4.2) rdoc (4.2.0) - react_on_rails (0.1.7) + react_on_rails (0.1.8) connection_pool execjs (~> 2.5) rails (>= 4.0) @@ -353,7 +353,7 @@ DEPENDENCIES rails-html-sanitizer rails_12factor rainbow - react_on_rails (~> 0.1.7) + react_on_rails (~> 0.1.8) rspec-rails rubocop ruby-lint diff --git a/app/assets/javascripts/application.js b/app/assets/javascripts/application.js index ecd6646f..d309158b 100644 --- a/app/assets/javascripts/application.js +++ b/app/assets/javascripts/application.js @@ -12,6 +12,7 @@ // Need to be on top to allow Poltergeist test to work with React. //= require es5-shim/es5-shim +//= require react_on_rails // It is important that generated/vendor-bundle must be before bootstrap since it is exposing jQuery and jQuery-ujs //= require generated/vendor-bundle From f43276d8027f51dda0b2c36d226c07873ab2f250 Mon Sep 17 00:00:00 2001 From: dylangrafmyre Date: Mon, 28 Sep 2015 22:20:03 -1000 Subject: [PATCH 098/514] Update scripts/lint for cd client && npm run lint --- scripts/lint | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/lint b/scripts/lint index fc77595c..969ab363 100755 --- a/scripts/lint +++ b/scripts/lint @@ -7,7 +7,7 @@ echo Linting with ruby-lint ruby-lint app config spec echo Linting with eslint and jscs -(cd client && bin/lint) +(cd client && npm run lint) scss-lint client/assets/stylesheets/*.scss app/assets/stylesheets/*.scss From bd599fbc3200acc95453165f9b5fb6f35644873d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mario=20P=C3=A9rez?= Date: Tue, 29 Sep 2015 12:26:54 +0200 Subject: [PATCH 099/514] Typo on driver type --- spec/rails_helper.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spec/rails_helper.rb b/spec/rails_helper.rb index 6cb6222e..905176ee 100644 --- a/spec/rails_helper.rb +++ b/spec/rails_helper.rb @@ -51,7 +51,7 @@ # selenium_firefox webdriver only works for Travis-CI builds. driver = ENV["DRIVER"].try(:to_sym) - if driver.nil? || driver == :selenium_chrome_ + if driver.nil? || driver == :selenium_chrome Capybara.register_driver :selenium_chrome do |app| Capybara::Selenium::Driver.new(app, browser: :chrome) end From 91d7fd14e2836a6e8d805cb84262bb24e70de075 Mon Sep 17 00:00:00 2001 From: Justin Gordon Date: Sun, 4 Oct 2015 19:19:05 -0700 Subject: [PATCH 100/514] Unify use of jbuilder with server rendering * Change to use the same JSON for the server side load and the client side load of the comments. * Reuse one jbuilder template for the list and single view of comments. * Update the docs with how to do this. --- README.md | 50 +++++++++++++++++++++++ app/controllers/pages_controller.rb | 12 ++++++ app/views/comments/_comment.json.jbuilder | 1 + app/views/comments/index.json.jbuilder | 6 +-- app/views/comments/show.json.jbuilder | 2 +- app/views/pages/index.html.erb | 6 +-- 6 files changed, 69 insertions(+), 8 deletions(-) create mode 100644 app/views/comments/_comment.json.jbuilder diff --git a/README.md b/README.md index d8200493..5d5fa71a 100644 --- a/README.md +++ b/README.md @@ -40,6 +40,7 @@ You can see this tutorial live here: [http://reactrails.com/](http://reactrails. In no particular order: +- Example of using the [react_on_rails](https://github.com/shakacode/react_on_rails) - Example of Rails 4.2 with ReactJs/Redux with Webpack and ES7. - Enable development of a JS client independently from Rails using Webpack Hot Module Reload. You can see this by starting the app and visiting http://localhost:3000 - Easily enable use of npm modules with a Rails application. @@ -257,6 +258,55 @@ npm install cd client && npm run build:client && npm run build:server ``` +# JBuilder Notes +There's a bunch of gotchas with using [Jbuilder](https://github.com/rails/jbuilder) to create the +string version of the props to be sent to the react_on_rails_gem: + +See the notes in this the example code. The two critical things: + +1. Use `render_to_string` to create string of JSON. +2. Be sure to call `respond_to` afterwards. + +app/controllers/pages_controller.rb + +```ruby + class PagesController < ApplicationController + def index + # NOTE: this could be an alternate syntax if you wanted to pass comments as a variable to a partial + # @comments_json_string = render_to_string(partial: "/comments/comments.json.jbuilder", locals: { comments: Comment.all }, format: :json) + @comments = Comment.all + + # NOTE: @comments is used by the render_to_string call + @comments_json_string = render_to_string("/comments/index.json.jbuilder") + + # NOTE: It's CRITICAL to call respond_to after calling render_to_string, or else Rails will + # not render the HTML version of the index page properly. + respond_to do |format| + format.html + end + end + end +``` + +### comments/_comment.json.jbuilder: + +```ruby +json.extract! comment, :id, :author, :text, :created_at, :updated_at +``` + +### comments/index.json.jbuilder: + +```ruby +# Specify the partial, as well as the name of the variable used in the partial +json.array! @comments, { partial: "comments/comment", as: :comment } +``` + +### comments/show.json.jbuilder: + +```ruby +json.partial! 'comment', comment: @comment +``` + # Linting and Code Inspection ## Running Lint and CI tasks * Default rake task runs tests and linting (yes, repeating this!) (see `ci.rake`) diff --git a/app/controllers/pages_controller.rb b/app/controllers/pages_controller.rb index 19dc5fef..f0fc296a 100644 --- a/app/controllers/pages_controller.rb +++ b/app/controllers/pages_controller.rb @@ -1,5 +1,17 @@ class PagesController < ApplicationController def index + # NOTE: this could be an alternate syntax if you wanted to pass comments as a variable to a partial + # @comments_json_sting = render_to_string(partial: "/comments/comments.json.jbuilder", + # locals: { comments: Comment.all }, format: :json) @comments = Comment.all + + # NOTE: @comments is used by the render_to_string call + @comments_json_string = render_to_string("/comments/index.json.jbuilder") + + # NOTE: It's CRITICAL to call respond_to after calling render_to_string, or else Rails will + # not render the HTML version of the index page properly. + respond_to do |format| + format.html + end end end diff --git a/app/views/comments/_comment.json.jbuilder b/app/views/comments/_comment.json.jbuilder new file mode 100644 index 00000000..2870cd7f --- /dev/null +++ b/app/views/comments/_comment.json.jbuilder @@ -0,0 +1 @@ +json.extract! comment, :id, :author, :text, :created_at, :updated_at diff --git a/app/views/comments/index.json.jbuilder b/app/views/comments/index.json.jbuilder index 79432f40..f64379af 100644 --- a/app/views/comments/index.json.jbuilder +++ b/app/views/comments/index.json.jbuilder @@ -1,4 +1,2 @@ -json.array!(@comments) do |comment| - json.extract! comment, :id, :author, :text - json.url comment_url(comment, format: :json) -end +# Specify the partial, as well as the name of the variable used in the partial +json.array! @comments, { partial: "comments/comment", as: :comment } diff --git a/app/views/comments/show.json.jbuilder b/app/views/comments/show.json.jbuilder index 971ce9e5..09b127a6 100644 --- a/app/views/comments/show.json.jbuilder +++ b/app/views/comments/show.json.jbuilder @@ -1 +1 @@ -json.extract! @comment, :id, :author, :text, :created_at, :updated_at +json.partial! 'comment', comment: @comment diff --git a/app/views/pages/index.html.erb b/app/views/pages/index.html.erb index 4bffec63..091f163e 100644 --- a/app/views/pages/index.html.erb +++ b/app/views/pages/index.html.erb @@ -3,10 +3,10 @@
  • If this work interests you and you're a developer or designer looking for full or part-time remote work: please <%= link_to "click here", - "http://forum.railsonmaui.com/t/railsonmaui-is-hiring-and-partnering-part-time-remote-is-ok/156" %> + "http://forum.shakacode.com/t/railsonmaui-is-hiring-and-partnering-part-time-remote-is-ok/156/3" %> and <%= link_to "here", - "http://forum.railsonmaui.com/t/railsonmaui-is-hiring-and-partnering-part-time-remote-is-ok/156/2" %>. + "http://forum.shakacode.com/t/railsonmaui-is-hiring-and-partnering-part-time-remote-is-ok/156/2" %>.
  • Please see the @@ -16,4 +16,4 @@

  • -<%= react_component('App', @comments, generator_function: true, prerender: true) %> +<%= react_component('App', @comments_json_string, generator_function: true, prerender: true) %> From e00b606024213a5e150161e73838333355e6a651 Mon Sep 17 00:00:00 2001 From: Justin Gordon Date: Sun, 4 Oct 2015 20:01:35 -0700 Subject: [PATCH 101/514] Simple rendering of the Jbuilder by rendering Jbuilder template in the view --- README.md | 35 +++++++++++------------------ app/controllers/pages_controller.rb | 23 ++++++++++++------- app/views/pages/index.html.erb | 4 +++- 3 files changed, 31 insertions(+), 31 deletions(-) diff --git a/README.md b/README.md index 5d5fa71a..583eb444 100644 --- a/README.md +++ b/README.md @@ -260,33 +260,24 @@ cd client && npm run build:client && npm run build:server # JBuilder Notes There's a bunch of gotchas with using [Jbuilder](https://github.com/rails/jbuilder) to create the -string version of the props to be sent to the react_on_rails_gem: +string version of the props to be sent to the react_on_rails_gem. The main thing is that if you +follow the example and call Jbuilder like this, you don't run into a number of issues. -See the notes in this the example code. The two critical things: +```erb +<%= react_component('App', render(template: "/comments/index.json.jbuilder"), + generator_function: true, prerender: true) %> +``` + +However, if you try to set the value of the JSON string inside of the controller, then you will +run into several issues with rendering the Jbuilder template from the controller. +See the notes in this the example code for app/controllers/pages_controller.rb. + +The two critical things: 1. Use `render_to_string` to create string of JSON. 2. Be sure to call `respond_to` afterwards. -app/controllers/pages_controller.rb - -```ruby - class PagesController < ApplicationController - def index - # NOTE: this could be an alternate syntax if you wanted to pass comments as a variable to a partial - # @comments_json_string = render_to_string(partial: "/comments/comments.json.jbuilder", locals: { comments: Comment.all }, format: :json) - @comments = Comment.all - - # NOTE: @comments is used by the render_to_string call - @comments_json_string = render_to_string("/comments/index.json.jbuilder") - - # NOTE: It's CRITICAL to call respond_to after calling render_to_string, or else Rails will - # not render the HTML version of the index page properly. - respond_to do |format| - format.html - end - end - end -``` +Here's the samples of Jbuilder that we use: ### comments/_comment.json.jbuilder: diff --git a/app/controllers/pages_controller.rb b/app/controllers/pages_controller.rb index f0fc296a..6572c295 100644 --- a/app/controllers/pages_controller.rb +++ b/app/controllers/pages_controller.rb @@ -1,17 +1,24 @@ class PagesController < ApplicationController def index + @comments = Comment.all + + # NOTE: The below notes apply if you want to set the value of the props in the controller, as + # compared to he view. However, it's more convenient to use Jbuilder from the view. See + # app/views/pages/index.html.erb:20 + # + # <%= react_component('App', render(template: "/comments/index.json.jbuilder"), + # generator_function: true, prerender: true) %> + # + # # NOTE: this could be an alternate syntax if you wanted to pass comments as a variable to a partial # @comments_json_sting = render_to_string(partial: "/comments/comments.json.jbuilder", # locals: { comments: Comment.all }, format: :json) - @comments = Comment.all - # NOTE: @comments is used by the render_to_string call - @comments_json_string = render_to_string("/comments/index.json.jbuilder") - + # @comments_json_string = render_to_string("/comments/index.json.jbuilder") # NOTE: It's CRITICAL to call respond_to after calling render_to_string, or else Rails will - # not render the HTML version of the index page properly. - respond_to do |format| - format.html - end + # not render the HTML version of the index page properly. (not a problem if you do this in the view) + # respond_to do |format| + # format.html + # end end end diff --git a/app/views/pages/index.html.erb b/app/views/pages/index.html.erb index 091f163e..17bae432 100644 --- a/app/views/pages/index.html.erb +++ b/app/views/pages/index.html.erb @@ -16,4 +16,6 @@
    -<%= react_component('App', @comments_json_string, generator_function: true, prerender: true) %> + +<%= react_component('App', render(template: "/comments/index.json.jbuilder"), + generator_function: true, prerender: true) %> From 46b64add5b3f969acb2c3e82c46be88ddf47541a Mon Sep 17 00:00:00 2001 From: Justin Gordon Date: Sun, 4 Oct 2015 20:06:45 -0700 Subject: [PATCH 102/514] Update README.md --- README.md | 5 ----- 1 file changed, 5 deletions(-) diff --git a/README.md b/README.md index 583eb444..9c8825da 100644 --- a/README.md +++ b/README.md @@ -272,11 +272,6 @@ However, if you try to set the value of the JSON string inside of the controller run into several issues with rendering the Jbuilder template from the controller. See the notes in this the example code for app/controllers/pages_controller.rb. -The two critical things: - -1. Use `render_to_string` to create string of JSON. -2. Be sure to call `respond_to` afterwards. - Here's the samples of Jbuilder that we use: ### comments/_comment.json.jbuilder: From e5844e5fc319d0d34f8a81bb3ea83fec3cff2d1d Mon Sep 17 00:00:00 2001 From: Alex Fedoseev Date: Mon, 5 Oct 2015 20:45:15 +0300 Subject: [PATCH 103/514] Add NODE_ENV variable to server build --- client/webpack.server.rails.config.js | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/client/webpack.server.rails.config.js b/client/webpack.server.rails.config.js index ac164a4d..40e3333a 100644 --- a/client/webpack.server.rails.config.js +++ b/client/webpack.server.rails.config.js @@ -1,5 +1,7 @@ // Common webpack configuration for server bundle +const webpack = require('webpack'); + module.exports = { // the project dir @@ -8,13 +10,17 @@ module.exports = { output: { filename: 'server-bundle.js', path: '../app/assets/javascripts/generated', - - // CRITICAL for enabling Rails to find the globally exposed variables. - libaryTarget: 'this', }, resolve: { extensions: ['', '.webpack.js', '.web.js', '.js', '.jsx', 'config.js'], }, + plugins: [ + new webpack.DefinePlugin({ + 'process.env': { + 'NODE_ENV': JSON.stringify('production'), + }, + }), + ], module: { loaders: [ {test: /\.jsx?$/, loader: 'babel-loader', exclude: /node_modules/}, From 153004e4b96c0dfe496df146d41ed35b8ae187a4 Mon Sep 17 00:00:00 2001 From: Alex Fedoseev Date: Mon, 5 Oct 2015 20:45:55 +0300 Subject: [PATCH 104/514] Switch to react-transform-hmr --- client/package.json | 3 ++- client/webpack.client.hot.config.js | 23 +++++++++++++++++++++-- 2 files changed, 23 insertions(+), 3 deletions(-) diff --git a/client/package.json b/client/package.json index 63b91a0e..a1f28d61 100644 --- a/client/package.json +++ b/client/package.json @@ -58,6 +58,7 @@ }, "devDependencies": { "babel-eslint": "^4.1.1", + "babel-plugin-react-transform": "^1.1.1", "bootstrap-sass": "^3.3.5", "bootstrap-sass-loader": "^1.0.9", "css-loader": "^0.17.0", @@ -71,7 +72,7 @@ "jade": "^1.11.0", "jscs": "^2.1.1", "node-sass": "^3.3.2", - "react-hot-loader": "^1.3.0", + "react-transform-hmr": "^1.0.1", "sass-loader": "^2.0.1", "style-loader": "^0.12.3", "url-loader": "^0.5.6", diff --git a/client/webpack.client.hot.config.js b/client/webpack.client.hot.config.js index 4115e7d6..707d19c2 100644 --- a/client/webpack.client.hot.config.js +++ b/client/webpack.client.hot.config.js @@ -33,7 +33,25 @@ config.devtool = 'eval-source-map'; // All the styling loaders only apply to hot-reload, not rails config.module.loaders.push( - {test: /\.jsx?$/, loaders: ['react-hot', 'babel'], exclude: /node_modules/}, + { + test: /\.jsx?$/, + loader: 'babel', + exclude: /node_modules/, + query: { + plugins: ['react-transform'], + extra: { + 'react-transform': { + transforms: [ + { + transform: 'react-transform-hmr', + imports: ['react'], + locals: ['module'], + } + ], + }, + }, + }, + }, {test: /\.css$/, loader: 'style-loader!css-loader'}, { test: /\.scss$/, @@ -46,6 +64,7 @@ config.module.loaders.push( {test: /\.woff2$/, loader: 'url-loader?limit=10000&mimetype=application/font-woff'}, {test: /\.ttf$/, loader: 'file-loader'}, {test: /\.eot$/, loader: 'file-loader'}, - {test: /\.svg$/, loader: 'file-loader'}); + {test: /\.svg$/, loader: 'file-loader'} +); module.exports = config; From f29e0155d20549a6f6d57881bc308f34bb556fb3 Mon Sep 17 00:00:00 2001 From: Justin Gordon Date: Mon, 5 Oct 2015 19:26:53 -0700 Subject: [PATCH 105/514] Update package.json --- client/package.json | 1 - 1 file changed, 1 deletion(-) diff --git a/client/package.json b/client/package.json index a1f28d61..95ad17cc 100644 --- a/client/package.json +++ b/client/package.json @@ -66,7 +66,6 @@ "eslint-config-airbnb": "0.0.8", "eslint-plugin-react": "^3.3.1", "esprima-fb": "^15001.1001.0-dev-harmony-fb", - "expose-loader": "^0.7.0", "express": "^4.13.3", "file-loader": "^0.8.4", "jade": "^1.11.0", From 25b759633a9f1fd3b116d0285a382b115ddc8039 Mon Sep 17 00:00:00 2001 From: Justin Gordon Date: Mon, 5 Oct 2015 19:34:27 -0700 Subject: [PATCH 106/514] update shrinkwrap --- client/npm-shrinkwrap.json | 1702 +++++++++++++++++++++++++----------- 1 file changed, 1201 insertions(+), 501 deletions(-) diff --git a/client/npm-shrinkwrap.json b/client/npm-shrinkwrap.json index 8943c431..7c534750 100644 --- a/client/npm-shrinkwrap.json +++ b/client/npm-shrinkwrap.json @@ -4,7 +4,7 @@ "dependencies": { "axios": { "version": "0.5.4", - "from": "axios@*", + "from": "axios@>=0.5.4 <0.6.0", "resolved": "https://registry.npmjs.org/axios/-/axios-0.5.4.tgz", "dependencies": { "es6-promise": { @@ -16,231 +16,231 @@ }, "babel-core": { "version": "5.8.25", - "from": "https://registry.npmjs.org/babel-core/-/babel-core-5.8.25.tgz", + "from": "babel-core@>=5.8.23 <6.0.0", "resolved": "https://registry.npmjs.org/babel-core/-/babel-core-5.8.25.tgz", "dependencies": { "babel-plugin-constant-folding": { "version": "1.0.1", - "from": "https://registry.npmjs.org/babel-plugin-constant-folding/-/babel-plugin-constant-folding-1.0.1.tgz", + "from": "babel-plugin-constant-folding@>=1.0.1 <2.0.0", "resolved": "https://registry.npmjs.org/babel-plugin-constant-folding/-/babel-plugin-constant-folding-1.0.1.tgz" }, "babel-plugin-dead-code-elimination": { "version": "1.0.2", - "from": "https://registry.npmjs.org/babel-plugin-dead-code-elimination/-/babel-plugin-dead-code-elimination-1.0.2.tgz", + "from": "babel-plugin-dead-code-elimination@>=1.0.2 <2.0.0", "resolved": "https://registry.npmjs.org/babel-plugin-dead-code-elimination/-/babel-plugin-dead-code-elimination-1.0.2.tgz" }, "babel-plugin-eval": { "version": "1.0.1", - "from": "https://registry.npmjs.org/babel-plugin-eval/-/babel-plugin-eval-1.0.1.tgz", + "from": "babel-plugin-eval@>=1.0.1 <2.0.0", "resolved": "https://registry.npmjs.org/babel-plugin-eval/-/babel-plugin-eval-1.0.1.tgz" }, "babel-plugin-inline-environment-variables": { "version": "1.0.1", - "from": "https://registry.npmjs.org/babel-plugin-inline-environment-variables/-/babel-plugin-inline-environment-variables-1.0.1.tgz", + "from": "babel-plugin-inline-environment-variables@>=1.0.1 <2.0.0", "resolved": "https://registry.npmjs.org/babel-plugin-inline-environment-variables/-/babel-plugin-inline-environment-variables-1.0.1.tgz" }, "babel-plugin-jscript": { "version": "1.0.4", - "from": "https://registry.npmjs.org/babel-plugin-jscript/-/babel-plugin-jscript-1.0.4.tgz", + "from": "babel-plugin-jscript@>=1.0.4 <2.0.0", "resolved": "https://registry.npmjs.org/babel-plugin-jscript/-/babel-plugin-jscript-1.0.4.tgz" }, "babel-plugin-member-expression-literals": { "version": "1.0.1", - "from": "https://registry.npmjs.org/babel-plugin-member-expression-literals/-/babel-plugin-member-expression-literals-1.0.1.tgz", + "from": "babel-plugin-member-expression-literals@>=1.0.1 <2.0.0", "resolved": "https://registry.npmjs.org/babel-plugin-member-expression-literals/-/babel-plugin-member-expression-literals-1.0.1.tgz" }, "babel-plugin-property-literals": { "version": "1.0.1", - "from": "https://registry.npmjs.org/babel-plugin-property-literals/-/babel-plugin-property-literals-1.0.1.tgz", + "from": "babel-plugin-property-literals@>=1.0.1 <2.0.0", "resolved": "https://registry.npmjs.org/babel-plugin-property-literals/-/babel-plugin-property-literals-1.0.1.tgz" }, "babel-plugin-proto-to-assign": { "version": "1.0.4", - "from": "https://registry.npmjs.org/babel-plugin-proto-to-assign/-/babel-plugin-proto-to-assign-1.0.4.tgz", + "from": "babel-plugin-proto-to-assign@>=1.0.3 <2.0.0", "resolved": "https://registry.npmjs.org/babel-plugin-proto-to-assign/-/babel-plugin-proto-to-assign-1.0.4.tgz" }, "babel-plugin-react-constant-elements": { "version": "1.0.3", - "from": "https://registry.npmjs.org/babel-plugin-react-constant-elements/-/babel-plugin-react-constant-elements-1.0.3.tgz", + "from": "babel-plugin-react-constant-elements@>=1.0.3 <2.0.0", "resolved": "https://registry.npmjs.org/babel-plugin-react-constant-elements/-/babel-plugin-react-constant-elements-1.0.3.tgz" }, "babel-plugin-react-display-name": { "version": "1.0.3", - "from": "https://registry.npmjs.org/babel-plugin-react-display-name/-/babel-plugin-react-display-name-1.0.3.tgz", + "from": "babel-plugin-react-display-name@>=1.0.3 <2.0.0", "resolved": "https://registry.npmjs.org/babel-plugin-react-display-name/-/babel-plugin-react-display-name-1.0.3.tgz" }, "babel-plugin-remove-console": { "version": "1.0.1", - "from": "https://registry.npmjs.org/babel-plugin-remove-console/-/babel-plugin-remove-console-1.0.1.tgz", + "from": "babel-plugin-remove-console@>=1.0.1 <2.0.0", "resolved": "https://registry.npmjs.org/babel-plugin-remove-console/-/babel-plugin-remove-console-1.0.1.tgz" }, "babel-plugin-remove-debugger": { "version": "1.0.1", - "from": "https://registry.npmjs.org/babel-plugin-remove-debugger/-/babel-plugin-remove-debugger-1.0.1.tgz", + "from": "babel-plugin-remove-debugger@>=1.0.1 <2.0.0", "resolved": "https://registry.npmjs.org/babel-plugin-remove-debugger/-/babel-plugin-remove-debugger-1.0.1.tgz" }, "babel-plugin-runtime": { "version": "1.0.7", - "from": "https://registry.npmjs.org/babel-plugin-runtime/-/babel-plugin-runtime-1.0.7.tgz", + "from": "babel-plugin-runtime@>=1.0.7 <2.0.0", "resolved": "https://registry.npmjs.org/babel-plugin-runtime/-/babel-plugin-runtime-1.0.7.tgz" }, "babel-plugin-undeclared-variables-check": { "version": "1.0.2", - "from": "https://registry.npmjs.org/babel-plugin-undeclared-variables-check/-/babel-plugin-undeclared-variables-check-1.0.2.tgz", + "from": "babel-plugin-undeclared-variables-check@>=1.0.2 <2.0.0", "resolved": "https://registry.npmjs.org/babel-plugin-undeclared-variables-check/-/babel-plugin-undeclared-variables-check-1.0.2.tgz", "dependencies": { "leven": { "version": "1.0.2", - "from": "https://registry.npmjs.org/leven/-/leven-1.0.2.tgz", + "from": "leven@>=1.0.2 <2.0.0", "resolved": "https://registry.npmjs.org/leven/-/leven-1.0.2.tgz" } } }, "babel-plugin-undefined-to-void": { "version": "1.1.6", - "from": "https://registry.npmjs.org/babel-plugin-undefined-to-void/-/babel-plugin-undefined-to-void-1.1.6.tgz", + "from": "babel-plugin-undefined-to-void@>=1.1.6 <2.0.0", "resolved": "https://registry.npmjs.org/babel-plugin-undefined-to-void/-/babel-plugin-undefined-to-void-1.1.6.tgz" }, "babylon": { "version": "5.8.23", - "from": "https://registry.npmjs.org/babylon/-/babylon-5.8.23.tgz", + "from": "babylon@>=5.8.23 <6.0.0", "resolved": "https://registry.npmjs.org/babylon/-/babylon-5.8.23.tgz" }, "bluebird": { - "version": "2.10.0", - "from": "https://registry.npmjs.org/bluebird/-/bluebird-2.10.0.tgz", - "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-2.10.0.tgz" + "version": "2.10.2", + "from": "bluebird@>=2.9.33 <3.0.0", + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-2.10.2.tgz" }, "chalk": { "version": "1.1.1", - "from": "https://registry.npmjs.org/chalk/-/chalk-1.1.1.tgz", + "from": "chalk@>=1.0.0 <2.0.0", "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.1.tgz", "dependencies": { "ansi-styles": { "version": "2.1.0", - "from": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.1.0.tgz", + "from": "ansi-styles@>=2.1.0 <3.0.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.1.0.tgz" }, "escape-string-regexp": { "version": "1.0.3", - "from": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.3.tgz", + "from": "escape-string-regexp@>=1.0.2 <2.0.0", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.3.tgz" }, "has-ansi": { "version": "2.0.0", - "from": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", + "from": "has-ansi@>=2.0.0 <3.0.0", "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", "dependencies": { "ansi-regex": { "version": "2.0.0", - "from": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.0.0.tgz", + "from": "ansi-regex@>=2.0.0 <3.0.0", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.0.0.tgz" } } }, "strip-ansi": { "version": "3.0.0", - "from": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.0.tgz", + "from": "strip-ansi@>=3.0.0 <4.0.0", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.0.tgz", "dependencies": { "ansi-regex": { "version": "2.0.0", - "from": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.0.0.tgz", + "from": "ansi-regex@>=2.0.0 <3.0.0", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.0.0.tgz" } } }, "supports-color": { "version": "2.0.0", - "from": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "from": "supports-color@>=2.0.0 <3.0.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz" } } }, "convert-source-map": { "version": "1.1.1", - "from": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.1.1.tgz", + "from": "convert-source-map@>=1.1.0 <2.0.0", "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.1.1.tgz" }, "core-js": { - "version": "1.1.4", - "from": "https://registry.npmjs.org/core-js/-/core-js-1.1.4.tgz", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-1.1.4.tgz" + "version": "1.2.1", + "from": "core-js@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-1.2.1.tgz" }, "debug": { "version": "2.2.0", - "from": "https://registry.npmjs.org/debug/-/debug-2.2.0.tgz", + "from": "debug@>=2.1.1 <3.0.0", "resolved": "https://registry.npmjs.org/debug/-/debug-2.2.0.tgz", "dependencies": { "ms": { "version": "0.7.1", - "from": "https://registry.npmjs.org/ms/-/ms-0.7.1.tgz", + "from": "ms@0.7.1", "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.1.tgz" } } }, "detect-indent": { "version": "3.0.1", - "from": "https://registry.npmjs.org/detect-indent/-/detect-indent-3.0.1.tgz", + "from": "detect-indent@>=3.0.0 <4.0.0", "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-3.0.1.tgz", "dependencies": { "get-stdin": { "version": "4.0.1", - "from": "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz", + "from": "get-stdin@>=4.0.1 <5.0.0", "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz" }, "minimist": { "version": "1.2.0", - "from": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", + "from": "minimist@>=1.1.0 <2.0.0", "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz" } } }, "esutils": { "version": "2.0.2", - "from": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz", + "from": "esutils@>=2.0.0 <3.0.0", "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz" }, "fs-readdir-recursive": { "version": "0.1.2", - "from": "https://registry.npmjs.org/fs-readdir-recursive/-/fs-readdir-recursive-0.1.2.tgz", + "from": "fs-readdir-recursive@>=0.1.0 <0.2.0", "resolved": "https://registry.npmjs.org/fs-readdir-recursive/-/fs-readdir-recursive-0.1.2.tgz" }, "globals": { "version": "6.4.1", - "from": "https://registry.npmjs.org/globals/-/globals-6.4.1.tgz", + "from": "globals@>=6.4.0 <7.0.0", "resolved": "https://registry.npmjs.org/globals/-/globals-6.4.1.tgz" }, "home-or-tmp": { "version": "1.0.0", - "from": "https://registry.npmjs.org/home-or-tmp/-/home-or-tmp-1.0.0.tgz", + "from": "home-or-tmp@>=1.0.0 <2.0.0", "resolved": "https://registry.npmjs.org/home-or-tmp/-/home-or-tmp-1.0.0.tgz", "dependencies": { "os-tmpdir": { "version": "1.0.1", - "from": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.1.tgz", + "from": "os-tmpdir@>=1.0.1 <2.0.0", "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.1.tgz" }, "user-home": { "version": "1.1.1", - "from": "https://registry.npmjs.org/user-home/-/user-home-1.1.1.tgz", + "from": "user-home@>=1.1.1 <2.0.0", "resolved": "https://registry.npmjs.org/user-home/-/user-home-1.1.1.tgz" } } }, "is-integer": { "version": "1.0.6", - "from": "https://registry.npmjs.org/is-integer/-/is-integer-1.0.6.tgz", + "from": "is-integer@>=1.0.4 <2.0.0", "resolved": "https://registry.npmjs.org/is-integer/-/is-integer-1.0.6.tgz", "dependencies": { "is-finite": { "version": "1.0.1", - "from": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.1.tgz", + "from": "is-finite@>=1.0.0 <2.0.0", "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.1.tgz", "dependencies": { "number-is-nan": { "version": "1.0.0", - "from": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.0.tgz", + "from": "number-is-nan@>=1.0.0 <2.0.0", "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.0.tgz" } } @@ -249,49 +249,49 @@ }, "js-tokens": { "version": "1.0.1", - "from": "https://registry.npmjs.org/js-tokens/-/js-tokens-1.0.1.tgz", + "from": "js-tokens@1.0.1", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-1.0.1.tgz" }, "json5": { "version": "0.4.0", - "from": "https://registry.npmjs.org/json5/-/json5-0.4.0.tgz", + "from": "json5@>=0.4.0 <0.5.0", "resolved": "https://registry.npmjs.org/json5/-/json5-0.4.0.tgz" }, "line-numbers": { "version": "0.2.0", - "from": "https://registry.npmjs.org/line-numbers/-/line-numbers-0.2.0.tgz", + "from": "line-numbers@0.2.0", "resolved": "https://registry.npmjs.org/line-numbers/-/line-numbers-0.2.0.tgz", "dependencies": { "left-pad": { "version": "0.0.3", - "from": "https://registry.npmjs.org/left-pad/-/left-pad-0.0.3.tgz", + "from": "left-pad@0.0.3", "resolved": "https://registry.npmjs.org/left-pad/-/left-pad-0.0.3.tgz" } } }, "lodash": { "version": "3.10.1", - "from": "https://registry.npmjs.org/lodash/-/lodash-3.10.1.tgz", + "from": "lodash@>=3.10.0 <4.0.0", "resolved": "https://registry.npmjs.org/lodash/-/lodash-3.10.1.tgz" }, "minimatch": { "version": "2.0.10", - "from": "https://registry.npmjs.org/minimatch/-/minimatch-2.0.10.tgz", + "from": "minimatch@>=2.0.3 <3.0.0", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-2.0.10.tgz", "dependencies": { "brace-expansion": { - "version": "1.1.0", - "from": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.0.tgz", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.0.tgz", + "version": "1.1.1", + "from": "brace-expansion@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.1.tgz", "dependencies": { "balanced-match": { "version": "0.2.0", - "from": "https://registry.npmjs.org/balanced-match/-/balanced-match-0.2.0.tgz", + "from": "balanced-match@>=0.2.0 <0.3.0", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-0.2.0.tgz" }, "concat-map": { "version": "0.0.1", - "from": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "from": "concat-map@0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz" } } @@ -300,115 +300,115 @@ }, "output-file-sync": { "version": "1.1.1", - "from": "https://registry.npmjs.org/output-file-sync/-/output-file-sync-1.1.1.tgz", + "from": "output-file-sync@>=1.1.0 <2.0.0", "resolved": "https://registry.npmjs.org/output-file-sync/-/output-file-sync-1.1.1.tgz", "dependencies": { "mkdirp": { "version": "0.5.1", - "from": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", + "from": "mkdirp@>=0.5.1 <0.6.0", "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", "dependencies": { "minimist": { "version": "0.0.8", - "from": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", + "from": "minimist@0.0.8", "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz" } } }, "xtend": { "version": "4.0.0", - "from": "https://registry.npmjs.org/xtend/-/xtend-4.0.0.tgz", + "from": "xtend@>=4.0.0 <5.0.0", "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.0.tgz" } } }, "path-exists": { "version": "1.0.0", - "from": "https://registry.npmjs.org/path-exists/-/path-exists-1.0.0.tgz", + "from": "path-exists@>=1.0.0 <2.0.0", "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-1.0.0.tgz" }, "path-is-absolute": { "version": "1.0.0", - "from": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.0.tgz", + "from": "path-is-absolute@>=1.0.0 <2.0.0", "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.0.tgz" }, "private": { "version": "0.1.6", - "from": "https://registry.npmjs.org/private/-/private-0.1.6.tgz", + "from": "private@>=0.1.6 <0.2.0", "resolved": "https://registry.npmjs.org/private/-/private-0.1.6.tgz" }, "regenerator": { "version": "0.8.35", - "from": "https://registry.npmjs.org/regenerator/-/regenerator-0.8.35.tgz", + "from": "regenerator@0.8.35", "resolved": "https://registry.npmjs.org/regenerator/-/regenerator-0.8.35.tgz", "dependencies": { "commoner": { "version": "0.10.3", - "from": "https://registry.npmjs.org/commoner/-/commoner-0.10.3.tgz", + "from": "commoner@>=0.10.0 <0.11.0", "resolved": "https://registry.npmjs.org/commoner/-/commoner-0.10.3.tgz", "dependencies": { "q": { "version": "1.1.2", - "from": "https://registry.npmjs.org/q/-/q-1.1.2.tgz", + "from": "q@>=1.1.2 <1.2.0", "resolved": "https://registry.npmjs.org/q/-/q-1.1.2.tgz" }, "commander": { "version": "2.5.1", - "from": "https://registry.npmjs.org/commander/-/commander-2.5.1.tgz", + "from": "commander@>=2.5.0 <2.6.0", "resolved": "https://registry.npmjs.org/commander/-/commander-2.5.1.tgz" }, "graceful-fs": { "version": "3.0.8", - "from": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-3.0.8.tgz", + "from": "graceful-fs@>=3.0.4 <3.1.0", "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-3.0.8.tgz" }, "glob": { "version": "4.2.2", - "from": "https://registry.npmjs.org/glob/-/glob-4.2.2.tgz", + "from": "glob@>=4.2.1 <4.3.0", "resolved": "https://registry.npmjs.org/glob/-/glob-4.2.2.tgz", "dependencies": { "inflight": { "version": "1.0.4", - "from": "https://registry.npmjs.org/inflight/-/inflight-1.0.4.tgz", + "from": "inflight@>=1.0.4 <2.0.0", "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.4.tgz", "dependencies": { "wrappy": { "version": "1.0.1", - "from": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.1.tgz", + "from": "wrappy@>=1.0.0 <2.0.0", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.1.tgz" } } }, "inherits": { "version": "2.0.1", - "from": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz", + "from": "inherits@>=2.0.0 <3.0.0", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz" }, "minimatch": { "version": "1.0.0", - "from": "https://registry.npmjs.org/minimatch/-/minimatch-1.0.0.tgz", + "from": "minimatch@>=1.0.0 <2.0.0", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-1.0.0.tgz", "dependencies": { "lru-cache": { "version": "2.7.0", - "from": "https://registry.npmjs.org/lru-cache/-/lru-cache-2.7.0.tgz", + "from": "lru-cache@>=2.0.0 <3.0.0", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-2.7.0.tgz" }, "sigmund": { "version": "1.0.1", - "from": "https://registry.npmjs.org/sigmund/-/sigmund-1.0.1.tgz", + "from": "sigmund@>=1.0.0 <1.1.0", "resolved": "https://registry.npmjs.org/sigmund/-/sigmund-1.0.1.tgz" } } }, "once": { "version": "1.3.2", - "from": "https://registry.npmjs.org/once/-/once-1.3.2.tgz", + "from": "once@>=1.3.0 <2.0.0", "resolved": "https://registry.npmjs.org/once/-/once-1.3.2.tgz", "dependencies": { "wrappy": { "version": "1.0.1", - "from": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.1.tgz", + "from": "wrappy@>=1.0.0 <2.0.0", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.1.tgz" } } @@ -417,151 +417,161 @@ }, "mkdirp": { "version": "0.5.1", - "from": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", + "from": "mkdirp@>=0.5.0 <0.6.0", "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", "dependencies": { "minimist": { "version": "0.0.8", - "from": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", + "from": "minimist@0.0.8", "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz" } } }, "install": { "version": "0.1.8", - "from": "https://registry.npmjs.org/install/-/install-0.1.8.tgz", + "from": "install@>=0.1.7 <0.2.0", "resolved": "https://registry.npmjs.org/install/-/install-0.1.8.tgz" }, "iconv-lite": { - "version": "0.4.11", - "from": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.11.tgz", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.11.tgz" + "version": "0.4.13", + "from": "iconv-lite@>=0.4.5 <0.5.0", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.13.tgz" } } }, "defs": { "version": "1.1.0", - "from": "https://registry.npmjs.org/defs/-/defs-1.1.0.tgz", + "from": "defs@>=1.1.0 <1.2.0", "resolved": "https://registry.npmjs.org/defs/-/defs-1.1.0.tgz", "dependencies": { "alter": { "version": "0.2.0", - "from": "https://registry.npmjs.org/alter/-/alter-0.2.0.tgz", + "from": "alter@>=0.2.0 <0.3.0", "resolved": "https://registry.npmjs.org/alter/-/alter-0.2.0.tgz", "dependencies": { "stable": { "version": "0.1.5", - "from": "https://registry.npmjs.org/stable/-/stable-0.1.5.tgz", + "from": "stable@>=0.1.3 <0.2.0", "resolved": "https://registry.npmjs.org/stable/-/stable-0.1.5.tgz" } } }, "ast-traverse": { "version": "0.1.1", - "from": "https://registry.npmjs.org/ast-traverse/-/ast-traverse-0.1.1.tgz", + "from": "ast-traverse@>=0.1.1 <0.2.0", "resolved": "https://registry.npmjs.org/ast-traverse/-/ast-traverse-0.1.1.tgz" }, "breakable": { "version": "1.0.0", - "from": "https://registry.npmjs.org/breakable/-/breakable-1.0.0.tgz", + "from": "breakable@>=1.0.0 <1.1.0", "resolved": "https://registry.npmjs.org/breakable/-/breakable-1.0.0.tgz" }, "esprima-fb": { "version": "8001.1001.0-dev-harmony-fb", - "from": "https://registry.npmjs.org/esprima-fb/-/esprima-fb-8001.1001.0-dev-harmony-fb.tgz", + "from": "esprima-fb@>=8001.1001.0-dev-harmony-fb <8001.1002.0", "resolved": "https://registry.npmjs.org/esprima-fb/-/esprima-fb-8001.1001.0-dev-harmony-fb.tgz" }, "simple-fmt": { "version": "0.1.0", - "from": "https://registry.npmjs.org/simple-fmt/-/simple-fmt-0.1.0.tgz", + "from": "simple-fmt@>=0.1.0 <0.2.0", "resolved": "https://registry.npmjs.org/simple-fmt/-/simple-fmt-0.1.0.tgz" }, "simple-is": { "version": "0.2.0", - "from": "https://registry.npmjs.org/simple-is/-/simple-is-0.2.0.tgz", + "from": "simple-is@>=0.2.0 <0.3.0", "resolved": "https://registry.npmjs.org/simple-is/-/simple-is-0.2.0.tgz" }, "stringmap": { "version": "0.2.2", - "from": "https://registry.npmjs.org/stringmap/-/stringmap-0.2.2.tgz", + "from": "stringmap@>=0.2.2 <0.3.0", "resolved": "https://registry.npmjs.org/stringmap/-/stringmap-0.2.2.tgz" }, "stringset": { "version": "0.2.1", - "from": "https://registry.npmjs.org/stringset/-/stringset-0.2.1.tgz", + "from": "stringset@>=0.2.1 <0.3.0", "resolved": "https://registry.npmjs.org/stringset/-/stringset-0.2.1.tgz" }, "tryor": { "version": "0.1.2", - "from": "https://registry.npmjs.org/tryor/-/tryor-0.1.2.tgz", + "from": "tryor@>=0.1.2 <0.2.0", "resolved": "https://registry.npmjs.org/tryor/-/tryor-0.1.2.tgz" }, "yargs": { "version": "1.3.3", - "from": "https://registry.npmjs.org/yargs/-/yargs-1.3.3.tgz", + "from": "yargs@>=1.3.2 <1.4.0", "resolved": "https://registry.npmjs.org/yargs/-/yargs-1.3.3.tgz" } } }, "esprima-fb": { "version": "15001.1.0-dev-harmony-fb", - "from": "https://registry.npmjs.org/esprima-fb/-/esprima-fb-15001.1.0-dev-harmony-fb.tgz", + "from": "esprima-fb@>=15001.1.0-dev-harmony-fb <15001.2.0", "resolved": "https://registry.npmjs.org/esprima-fb/-/esprima-fb-15001.1.0-dev-harmony-fb.tgz" }, "recast": { "version": "0.10.24", - "from": "https://registry.npmjs.org/recast/-/recast-0.10.24.tgz", + "from": "recast@0.10.24", "resolved": "https://registry.npmjs.org/recast/-/recast-0.10.24.tgz", "dependencies": { "ast-types": { "version": "0.8.5", - "from": "https://registry.npmjs.org/ast-types/-/ast-types-0.8.5.tgz", + "from": "ast-types@0.8.5", "resolved": "https://registry.npmjs.org/ast-types/-/ast-types-0.8.5.tgz" } } }, "through": { "version": "2.3.8", - "from": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", + "from": "through@>=2.3.6 <2.4.0", "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz" } } }, "regexpu": { - "version": "1.2.0", - "from": "https://registry.npmjs.org/regexpu/-/regexpu-1.2.0.tgz", - "resolved": "https://registry.npmjs.org/regexpu/-/regexpu-1.2.0.tgz", + "version": "1.3.0", + "from": "regexpu@>=1.1.2 <2.0.0", + "resolved": "https://registry.npmjs.org/regexpu/-/regexpu-1.3.0.tgz", "dependencies": { + "esprima": { + "version": "2.6.0", + "from": "esprima@>=2.6.0 <3.0.0", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-2.6.0.tgz" + }, "recast": { - "version": "0.10.32", - "from": "https://registry.npmjs.org/recast/-/recast-0.10.32.tgz", - "resolved": "https://registry.npmjs.org/recast/-/recast-0.10.32.tgz", + "version": "0.10.33", + "from": "recast@>=0.10.10 <0.11.0", + "resolved": "https://registry.npmjs.org/recast/-/recast-0.10.33.tgz", "dependencies": { + "source-map": { + "version": "0.5.1", + "from": "source-map@>=0.5.0 <0.6.0", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.1.tgz" + }, "ast-types": { - "version": "0.8.11", - "from": "https://registry.npmjs.org/ast-types/-/ast-types-0.8.11.tgz", - "resolved": "https://registry.npmjs.org/ast-types/-/ast-types-0.8.11.tgz" + "version": "0.8.12", + "from": "ast-types@0.8.12", + "resolved": "https://registry.npmjs.org/ast-types/-/ast-types-0.8.12.tgz" } } }, "regenerate": { "version": "1.2.1", - "from": "https://registry.npmjs.org/regenerate/-/regenerate-1.2.1.tgz", + "from": "regenerate@>=1.2.1 <2.0.0", "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.2.1.tgz" }, "regjsgen": { "version": "0.2.0", - "from": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.2.0.tgz", + "from": "regjsgen@>=0.2.0 <0.3.0", "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.2.0.tgz" }, "regjsparser": { "version": "0.1.5", - "from": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.1.5.tgz", + "from": "regjsparser@>=0.1.4 <0.2.0", "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.1.5.tgz", "dependencies": { "jsesc": { "version": "0.5.0", - "from": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", + "from": "jsesc@>=0.5.0 <0.6.0", "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz" } } @@ -570,17 +580,17 @@ }, "repeating": { "version": "1.1.3", - "from": "https://registry.npmjs.org/repeating/-/repeating-1.1.3.tgz", + "from": "repeating@>=1.1.2 <2.0.0", "resolved": "https://registry.npmjs.org/repeating/-/repeating-1.1.3.tgz", "dependencies": { "is-finite": { "version": "1.0.1", - "from": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.1.tgz", + "from": "is-finite@>=1.0.0 <2.0.0", "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.1.tgz", "dependencies": { "number-is-nan": { "version": "1.0.0", - "from": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.0.tgz", + "from": "number-is-nan@>=1.0.0 <2.0.0", "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.0.tgz" } } @@ -589,44 +599,44 @@ }, "resolve": { "version": "1.1.6", - "from": "https://registry.npmjs.org/resolve/-/resolve-1.1.6.tgz", + "from": "resolve@>=1.1.6 <2.0.0", "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.1.6.tgz" }, "shebang-regex": { "version": "1.0.0", - "from": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", + "from": "shebang-regex@>=1.0.0 <2.0.0", "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz" }, "slash": { "version": "1.0.0", - "from": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz", + "from": "slash@>=1.0.0 <2.0.0", "resolved": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz" }, "source-map": { "version": "0.4.4", - "from": "https://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz", + "from": "source-map@>=0.4.0 <0.5.0", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz", "dependencies": { "amdefine": { "version": "1.0.0", - "from": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.0.tgz", + "from": "amdefine@>=0.0.4", "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.0.tgz" } } }, "source-map-support": { "version": "0.2.10", - "from": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.2.10.tgz", + "from": "source-map-support@>=0.2.10 <0.3.0", "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.2.10.tgz", "dependencies": { "source-map": { "version": "0.1.32", - "from": "https://registry.npmjs.org/source-map/-/source-map-0.1.32.tgz", + "from": "source-map@0.1.32", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.1.32.tgz", "dependencies": { "amdefine": { "version": "1.0.0", - "from": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.0.tgz", + "from": "amdefine@>=0.0.4", "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.0.tgz" } } @@ -635,135 +645,135 @@ }, "to-fast-properties": { "version": "1.0.1", - "from": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.1.tgz", + "from": "to-fast-properties@>=1.0.0 <2.0.0", "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.1.tgz" }, "trim-right": { "version": "1.0.1", - "from": "https://registry.npmjs.org/trim-right/-/trim-right-1.0.1.tgz", + "from": "trim-right@>=1.0.0 <2.0.0", "resolved": "https://registry.npmjs.org/trim-right/-/trim-right-1.0.1.tgz" }, "try-resolve": { "version": "1.0.1", - "from": "https://registry.npmjs.org/try-resolve/-/try-resolve-1.0.1.tgz", + "from": "try-resolve@>=1.0.0 <2.0.0", "resolved": "https://registry.npmjs.org/try-resolve/-/try-resolve-1.0.1.tgz" } } }, "babel-loader": { "version": "5.3.2", - "from": "https://registry.npmjs.org/babel-loader/-/babel-loader-5.3.2.tgz", + "from": "babel-loader@>=5.3.2 <6.0.0", "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-5.3.2.tgz", "dependencies": { "object-assign": { "version": "3.0.0", - "from": "https://registry.npmjs.org/object-assign/-/object-assign-3.0.0.tgz", + "from": "object-assign@>=3.0.0 <4.0.0", "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-3.0.0.tgz" } } }, "body-parser": { - "version": "1.14.0", - "from": "https://registry.npmjs.org/body-parser/-/body-parser-1.14.0.tgz", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.14.0.tgz", + "version": "1.14.1", + "from": "body-parser@>=1.13.3 <2.0.0", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.14.1.tgz", "dependencies": { "bytes": { "version": "2.1.0", - "from": "https://registry.npmjs.org/bytes/-/bytes-2.1.0.tgz", + "from": "bytes@2.1.0", "resolved": "https://registry.npmjs.org/bytes/-/bytes-2.1.0.tgz" }, "content-type": { "version": "1.0.1", - "from": "https://registry.npmjs.org/content-type/-/content-type-1.0.1.tgz", + "from": "content-type@>=1.0.1 <1.1.0", "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.1.tgz" }, "debug": { "version": "2.2.0", - "from": "https://registry.npmjs.org/debug/-/debug-2.2.0.tgz", + "from": "debug@>=2.2.0 <2.3.0", "resolved": "https://registry.npmjs.org/debug/-/debug-2.2.0.tgz", "dependencies": { "ms": { "version": "0.7.1", - "from": "https://registry.npmjs.org/ms/-/ms-0.7.1.tgz", + "from": "ms@0.7.1", "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.1.tgz" } } }, "depd": { "version": "1.1.0", - "from": "https://registry.npmjs.org/depd/-/depd-1.1.0.tgz", + "from": "depd@>=1.1.0 <1.2.0", "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.0.tgz" }, "http-errors": { "version": "1.3.1", - "from": "https://registry.npmjs.org/http-errors/-/http-errors-1.3.1.tgz", + "from": "http-errors@>=1.3.1 <1.4.0", "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.3.1.tgz", "dependencies": { "inherits": { "version": "2.0.1", - "from": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz", + "from": "inherits@>=2.0.1 <2.1.0", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz" }, "statuses": { "version": "1.2.1", - "from": "https://registry.npmjs.org/statuses/-/statuses-1.2.1.tgz", + "from": "statuses@>=1.0.0 <2.0.0", "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.2.1.tgz" } } }, "iconv-lite": { - "version": "0.4.11", - "from": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.11.tgz", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.11.tgz" + "version": "0.4.12", + "from": "iconv-lite@0.4.12", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.12.tgz" }, "on-finished": { "version": "2.3.0", - "from": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", + "from": "on-finished@>=2.3.0 <2.4.0", "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", "dependencies": { "ee-first": { "version": "1.1.1", - "from": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "from": "ee-first@1.1.1", "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz" } } }, "qs": { "version": "5.1.0", - "from": "https://registry.npmjs.org/qs/-/qs-5.1.0.tgz", + "from": "qs@5.1.0", "resolved": "https://registry.npmjs.org/qs/-/qs-5.1.0.tgz" }, "raw-body": { - "version": "2.1.3", - "from": "https://registry.npmjs.org/raw-body/-/raw-body-2.1.3.tgz", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.1.3.tgz", + "version": "2.1.4", + "from": "raw-body@>=2.1.4 <2.2.0", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.1.4.tgz", "dependencies": { "unpipe": { "version": "1.0.0", - "from": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "from": "unpipe@1.0.0", "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz" } } }, "type-is": { - "version": "1.6.8", - "from": "https://registry.npmjs.org/type-is/-/type-is-1.6.8.tgz", - "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.8.tgz", + "version": "1.6.9", + "from": "type-is@>=1.6.6 <1.7.0", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.9.tgz", "dependencies": { "media-typer": { "version": "0.3.0", - "from": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", + "from": "media-typer@0.3.0", "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz" }, "mime-types": { - "version": "2.1.6", - "from": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.6.tgz", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.6.tgz", + "version": "2.1.7", + "from": "mime-types@>=2.1.7 <2.2.0", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.7.tgz", "dependencies": { "mime-db": { - "version": "1.18.0", - "from": "https://registry.npmjs.org/mime-db/-/mime-db-1.18.0.tgz", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.18.0.tgz" + "version": "1.19.0", + "from": "mime-db@>=1.19.0 <1.20.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.19.0.tgz" } } } @@ -772,38 +782,38 @@ } }, "es5-shim": { - "version": "4.1.13", - "from": "https://registry.npmjs.org/es5-shim/-/es5-shim-4.1.13.tgz", - "resolved": "https://registry.npmjs.org/es5-shim/-/es5-shim-4.1.13.tgz" + "version": "4.1.14", + "from": "es5-shim@>=4.1.12 <5.0.0", + "resolved": "https://registry.npmjs.org/es5-shim/-/es5-shim-4.1.14.tgz" }, "es6-promise": { "version": "3.0.2", - "from": "https://registry.npmjs.org/es6-promise/-/es6-promise-3.0.2.tgz", + "from": "es6-promise@>=3.0.2 <4.0.0", "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-3.0.2.tgz" }, "expose-loader": { "version": "0.7.0", - "from": "https://registry.npmjs.org/expose-loader/-/expose-loader-0.7.0.tgz", + "from": "expose-loader@>=0.7.0 <0.8.0", "resolved": "https://registry.npmjs.org/expose-loader/-/expose-loader-0.7.0.tgz" }, "immutable": { "version": "3.7.5", - "from": "https://registry.npmjs.org/immutable/-/immutable-3.7.5.tgz", + "from": "immutable@>=3.7.5 <4.0.0", "resolved": "https://registry.npmjs.org/immutable/-/immutable-3.7.5.tgz" }, "imports-loader": { "version": "0.6.4", - "from": "https://registry.npmjs.org/imports-loader/-/imports-loader-0.6.4.tgz", + "from": "imports-loader@>=0.6.4 <0.7.0", "resolved": "https://registry.npmjs.org/imports-loader/-/imports-loader-0.6.4.tgz", "dependencies": { "source-map": { "version": "0.1.43", - "from": "https://registry.npmjs.org/source-map/-/source-map-0.1.43.tgz", + "from": "source-map@>=0.1.0 <0.2.0", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.1.43.tgz", "dependencies": { "amdefine": { "version": "1.0.0", - "from": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.0.tgz", + "from": "amdefine@>=0.0.4", "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.0.tgz" } } @@ -812,74 +822,74 @@ }, "jquery": { "version": "2.1.4", - "from": "https://registry.npmjs.org/jquery/-/jquery-2.1.4.tgz", + "from": "jquery@>=2.1.4 <3.0.0", "resolved": "https://registry.npmjs.org/jquery/-/jquery-2.1.4.tgz" }, "jquery-ujs": { "version": "1.1.0-1", - "from": "https://registry.npmjs.org/jquery-ujs/-/jquery-ujs-1.1.0-1.tgz", + "from": "jquery-ujs@>=1.1.0-1 <2.0.0", "resolved": "https://registry.npmjs.org/jquery-ujs/-/jquery-ujs-1.1.0-1.tgz" }, "loader-utils": { "version": "0.2.11", - "from": "https://registry.npmjs.org/loader-utils/-/loader-utils-0.2.11.tgz", + "from": "loader-utils@>=0.2.11 <0.3.0", "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-0.2.11.tgz", "dependencies": { "big.js": { "version": "3.1.3", - "from": "https://registry.npmjs.org/big.js/-/big.js-3.1.3.tgz", + "from": "big.js@>=3.0.2 <4.0.0", "resolved": "https://registry.npmjs.org/big.js/-/big.js-3.1.3.tgz" }, "json5": { "version": "0.4.0", - "from": "https://registry.npmjs.org/json5/-/json5-0.4.0.tgz", + "from": "json5@>=0.4.0 <0.5.0", "resolved": "https://registry.npmjs.org/json5/-/json5-0.4.0.tgz" } } }, "marked": { "version": "0.3.5", - "from": "https://registry.npmjs.org/marked/-/marked-0.3.5.tgz", + "from": "marked@>=0.3.5 <0.4.0", "resolved": "https://registry.npmjs.org/marked/-/marked-0.3.5.tgz" }, "react": { "version": "0.13.3", - "from": "https://registry.npmjs.org/react/-/react-0.13.3.tgz", + "from": "react@>=0.13.3 <0.14.0", "resolved": "https://registry.npmjs.org/react/-/react-0.13.3.tgz", "dependencies": { "envify": { "version": "3.4.0", - "from": "https://registry.npmjs.org/envify/-/envify-3.4.0.tgz", + "from": "envify@>=3.0.0 <4.0.0", "resolved": "https://registry.npmjs.org/envify/-/envify-3.4.0.tgz", "dependencies": { "through": { "version": "2.3.8", - "from": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", + "from": "through@>=2.3.4 <2.4.0", "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz" }, "jstransform": { "version": "10.1.0", - "from": "https://registry.npmjs.org/jstransform/-/jstransform-10.1.0.tgz", + "from": "jstransform@>=10.0.1 <11.0.0", "resolved": "https://registry.npmjs.org/jstransform/-/jstransform-10.1.0.tgz", "dependencies": { "base62": { "version": "0.1.1", - "from": "https://registry.npmjs.org/base62/-/base62-0.1.1.tgz", + "from": "base62@0.1.1", "resolved": "https://registry.npmjs.org/base62/-/base62-0.1.1.tgz" }, "esprima-fb": { "version": "13001.1001.0-dev-harmony-fb", - "from": "https://registry.npmjs.org/esprima-fb/-/esprima-fb-13001.1001.0-dev-harmony-fb.tgz", + "from": "esprima-fb@13001.1001.0-dev-harmony-fb", "resolved": "https://registry.npmjs.org/esprima-fb/-/esprima-fb-13001.1001.0-dev-harmony-fb.tgz" }, "source-map": { "version": "0.1.31", - "from": "https://registry.npmjs.org/source-map/-/source-map-0.1.31.tgz", + "from": "source-map@0.1.31", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.1.31.tgz", "dependencies": { "amdefine": { "version": "1.0.0", - "from": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.0.tgz", + "from": "amdefine@>=0.0.4", "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.0.tgz" } } @@ -892,94 +902,65 @@ }, "react-bootstrap": { "version": "0.25.2", - "from": "https://registry.npmjs.org/react-bootstrap/-/react-bootstrap-0.25.2.tgz", + "from": "react-bootstrap@>=0.25.1 <0.26.0", "resolved": "https://registry.npmjs.org/react-bootstrap/-/react-bootstrap-0.25.2.tgz", "dependencies": { "babel-runtime": { - "version": "5.8.24", - "from": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-5.8.24.tgz", - "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-5.8.24.tgz", + "version": "5.8.25", + "from": "babel-runtime@>=5.8.19 <6.0.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-5.8.25.tgz", "dependencies": { "core-js": { - "version": "1.1.4", - "from": "https://registry.npmjs.org/core-js/-/core-js-1.1.4.tgz", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-1.1.4.tgz" + "version": "1.2.1", + "from": "core-js@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-1.2.1.tgz" } } }, "classnames": { - "version": "2.1.3", - "from": "https://registry.npmjs.org/classnames/-/classnames-2.1.3.tgz", - "resolved": "https://registry.npmjs.org/classnames/-/classnames-2.1.3.tgz" + "version": "2.1.5", + "from": "classnames@>=2.1.3 <3.0.0", + "resolved": "https://registry.npmjs.org/classnames/-/classnames-2.1.5.tgz" }, "dom-helpers": { "version": "2.4.0", - "from": "https://registry.npmjs.org/dom-helpers/-/dom-helpers-2.4.0.tgz", + "from": "dom-helpers@>=2.2.4 <3.0.0", "resolved": "https://registry.npmjs.org/dom-helpers/-/dom-helpers-2.4.0.tgz" }, "keycode": { "version": "2.1.0", - "from": "https://registry.npmjs.org/keycode/-/keycode-2.1.0.tgz", + "from": "keycode@>=2.0.0 <3.0.0", "resolved": "https://registry.npmjs.org/keycode/-/keycode-2.1.0.tgz" }, "lodash": { "version": "3.10.1", - "from": "https://registry.npmjs.org/lodash/-/lodash-3.10.1.tgz", + "from": "lodash@>=3.10.0 <4.0.0", "resolved": "https://registry.npmjs.org/lodash/-/lodash-3.10.1.tgz" }, "react-overlays": { "version": "0.4.4", - "from": "https://registry.npmjs.org/react-overlays/-/react-overlays-0.4.4.tgz", + "from": "react-overlays@>=0.4.4 <0.5.0", "resolved": "https://registry.npmjs.org/react-overlays/-/react-overlays-0.4.4.tgz", "dependencies": { "react-prop-types": { "version": "0.2.2", - "from": "https://registry.npmjs.org/react-prop-types/-/react-prop-types-0.2.2.tgz", + "from": "react-prop-types@>=0.2.1 <0.3.0", "resolved": "https://registry.npmjs.org/react-prop-types/-/react-prop-types-0.2.2.tgz" }, "warning": { - "version": "2.0.0", - "from": "https://registry.npmjs.org/warning/-/warning-2.0.0.tgz", - "resolved": "https://registry.npmjs.org/warning/-/warning-2.0.0.tgz", + "version": "2.1.0", + "from": "warning@>=2.0.0 <3.0.0", + "resolved": "https://registry.npmjs.org/warning/-/warning-2.1.0.tgz", "dependencies": { - "envify": { - "version": "3.4.0", - "from": "https://registry.npmjs.org/envify/-/envify-3.4.0.tgz", - "resolved": "https://registry.npmjs.org/envify/-/envify-3.4.0.tgz", + "loose-envify": { + "version": "1.0.0", + "from": "loose-envify@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.0.0.tgz", "dependencies": { - "through": { - "version": "2.3.8", - "from": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", - "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz" - }, - "jstransform": { - "version": "10.1.0", - "from": "https://registry.npmjs.org/jstransform/-/jstransform-10.1.0.tgz", - "resolved": "https://registry.npmjs.org/jstransform/-/jstransform-10.1.0.tgz", - "dependencies": { - "base62": { - "version": "0.1.1", - "from": "https://registry.npmjs.org/base62/-/base62-0.1.1.tgz", - "resolved": "https://registry.npmjs.org/base62/-/base62-0.1.1.tgz" - }, - "esprima-fb": { - "version": "13001.1001.0-dev-harmony-fb", - "from": "https://registry.npmjs.org/esprima-fb/-/esprima-fb-13001.1001.0-dev-harmony-fb.tgz", - "resolved": "https://registry.npmjs.org/esprima-fb/-/esprima-fb-13001.1001.0-dev-harmony-fb.tgz" - }, - "source-map": { - "version": "0.1.31", - "from": "https://registry.npmjs.org/source-map/-/source-map-0.1.31.tgz", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.1.31.tgz", - "dependencies": { - "amdefine": { - "version": "1.0.0", - "from": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.0.tgz", - "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.0.tgz" - } - } - } - } + "js-tokens": { + "version": "1.0.1", + "from": "js-tokens@>=1.0.1 <2.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-1.0.1.tgz" } } } @@ -989,52 +970,23 @@ }, "uncontrollable": { "version": "3.1.2", - "from": "https://registry.npmjs.org/uncontrollable/-/uncontrollable-3.1.2.tgz", + "from": "uncontrollable@>=3.0.0 <4.0.0", "resolved": "https://registry.npmjs.org/uncontrollable/-/uncontrollable-3.1.2.tgz", "dependencies": { "invariant": { - "version": "2.1.0", - "from": "https://registry.npmjs.org/invariant/-/invariant-2.1.0.tgz", - "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.1.0.tgz", + "version": "2.1.1", + "from": "invariant@>=2.1.0 <3.0.0", + "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.1.1.tgz", "dependencies": { - "envify": { - "version": "3.4.0", - "from": "https://registry.npmjs.org/envify/-/envify-3.4.0.tgz", - "resolved": "https://registry.npmjs.org/envify/-/envify-3.4.0.tgz", + "loose-envify": { + "version": "1.0.0", + "from": "loose-envify@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.0.0.tgz", "dependencies": { - "through": { - "version": "2.3.8", - "from": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", - "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz" - }, - "jstransform": { - "version": "10.1.0", - "from": "https://registry.npmjs.org/jstransform/-/jstransform-10.1.0.tgz", - "resolved": "https://registry.npmjs.org/jstransform/-/jstransform-10.1.0.tgz", - "dependencies": { - "base62": { - "version": "0.1.1", - "from": "https://registry.npmjs.org/base62/-/base62-0.1.1.tgz", - "resolved": "https://registry.npmjs.org/base62/-/base62-0.1.1.tgz" - }, - "esprima-fb": { - "version": "13001.1001.0-dev-harmony-fb", - "from": "https://registry.npmjs.org/esprima-fb/-/esprima-fb-13001.1001.0-dev-harmony-fb.tgz", - "resolved": "https://registry.npmjs.org/esprima-fb/-/esprima-fb-13001.1001.0-dev-harmony-fb.tgz" - }, - "source-map": { - "version": "0.1.31", - "from": "https://registry.npmjs.org/source-map/-/source-map-0.1.31.tgz", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.1.31.tgz", - "dependencies": { - "amdefine": { - "version": "1.0.0", - "from": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.0.tgz", - "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.0.tgz" - } - } - } - } + "js-tokens": { + "version": "1.0.1", + "from": "js-tokens@>=1.0.1 <2.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-1.0.1.tgz" } } } @@ -1046,52 +998,23 @@ }, "react-redux": { "version": "2.1.2", - "from": "https://registry.npmjs.org/react-redux/-/react-redux-2.1.2.tgz", + "from": "react-redux@>=2.1.1 <3.0.0", "resolved": "https://registry.npmjs.org/react-redux/-/react-redux-2.1.2.tgz", "dependencies": { "invariant": { - "version": "2.1.0", - "from": "https://registry.npmjs.org/invariant/-/invariant-2.1.0.tgz", - "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.1.0.tgz", + "version": "2.1.1", + "from": "invariant@>=2.0.0 <3.0.0", + "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.1.1.tgz", "dependencies": { - "envify": { - "version": "3.4.0", - "from": "https://registry.npmjs.org/envify/-/envify-3.4.0.tgz", - "resolved": "https://registry.npmjs.org/envify/-/envify-3.4.0.tgz", + "loose-envify": { + "version": "1.0.0", + "from": "loose-envify@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.0.0.tgz", "dependencies": { - "through": { - "version": "2.3.8", - "from": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", - "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz" - }, - "jstransform": { - "version": "10.1.0", - "from": "https://registry.npmjs.org/jstransform/-/jstransform-10.1.0.tgz", - "resolved": "https://registry.npmjs.org/jstransform/-/jstransform-10.1.0.tgz", - "dependencies": { - "base62": { - "version": "0.1.1", - "from": "https://registry.npmjs.org/base62/-/base62-0.1.1.tgz", - "resolved": "https://registry.npmjs.org/base62/-/base62-0.1.1.tgz" - }, - "esprima-fb": { - "version": "13001.1001.0-dev-harmony-fb", - "from": "https://registry.npmjs.org/esprima-fb/-/esprima-fb-13001.1001.0-dev-harmony-fb.tgz", - "resolved": "https://registry.npmjs.org/esprima-fb/-/esprima-fb-13001.1001.0-dev-harmony-fb.tgz" - }, - "source-map": { - "version": "0.1.31", - "from": "https://registry.npmjs.org/source-map/-/source-map-0.1.31.tgz", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.1.31.tgz", - "dependencies": { - "amdefine": { - "version": "1.0.0", - "from": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.0.tgz", - "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.0.tgz" - } - } - } - } + "js-tokens": { + "version": "1.0.1", + "from": "js-tokens@>=1.0.1 <2.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-1.0.1.tgz" } } } @@ -1101,42 +1024,42 @@ }, "redux": { "version": "2.0.0", - "from": "https://registry.npmjs.org/redux/-/redux-2.0.0.tgz", + "from": "redux@>=2.0.0 <3.0.0", "resolved": "https://registry.npmjs.org/redux/-/redux-2.0.0.tgz" }, "redux-promise": { "version": "0.5.0", - "from": "https://registry.npmjs.org/redux-promise/-/redux-promise-0.5.0.tgz", + "from": "redux-promise@>=0.5.0 <0.6.0", "resolved": "https://registry.npmjs.org/redux-promise/-/redux-promise-0.5.0.tgz", "dependencies": { "flux-standard-action": { "version": "0.6.0", - "from": "https://registry.npmjs.org/flux-standard-action/-/flux-standard-action-0.6.0.tgz", + "from": "flux-standard-action@0.6.0", "resolved": "https://registry.npmjs.org/flux-standard-action/-/flux-standard-action-0.6.0.tgz", "dependencies": { "lodash.isplainobject": { "version": "3.2.0", - "from": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-3.2.0.tgz", + "from": "lodash.isplainobject@>=3.2.0 <4.0.0", "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-3.2.0.tgz", "dependencies": { "lodash._basefor": { "version": "3.0.2", - "from": "https://registry.npmjs.org/lodash._basefor/-/lodash._basefor-3.0.2.tgz", + "from": "lodash._basefor@>=3.0.0 <4.0.0", "resolved": "https://registry.npmjs.org/lodash._basefor/-/lodash._basefor-3.0.2.tgz" }, "lodash.isarguments": { "version": "3.0.4", - "from": "https://registry.npmjs.org/lodash.isarguments/-/lodash.isarguments-3.0.4.tgz", + "from": "lodash.isarguments@>=3.0.0 <4.0.0", "resolved": "https://registry.npmjs.org/lodash.isarguments/-/lodash.isarguments-3.0.4.tgz" }, "lodash.keysin": { "version": "3.0.8", - "from": "https://registry.npmjs.org/lodash.keysin/-/lodash.keysin-3.0.8.tgz", + "from": "lodash.keysin@>=3.0.0 <4.0.0", "resolved": "https://registry.npmjs.org/lodash.keysin/-/lodash.keysin-3.0.8.tgz", "dependencies": { "lodash.isarray": { "version": "3.0.4", - "from": "https://registry.npmjs.org/lodash.isarray/-/lodash.isarray-3.0.4.tgz", + "from": "lodash.isarray@>=3.0.0 <4.0.0", "resolved": "https://registry.npmjs.org/lodash.isarray/-/lodash.isarray-3.0.4.tgz" } } @@ -1149,296 +1072,296 @@ }, "redux-thunk": { "version": "0.1.0", - "from": "https://registry.npmjs.org/redux-thunk/-/redux-thunk-0.1.0.tgz", + "from": "redux-thunk@>=0.1.0 <0.2.0", "resolved": "https://registry.npmjs.org/redux-thunk/-/redux-thunk-0.1.0.tgz" }, "sleep": { "version": "3.0.0", - "from": "https://registry.npmjs.org/sleep/-/sleep-3.0.0.tgz", + "from": "sleep@>=3.0.0 <4.0.0", "resolved": "https://registry.npmjs.org/sleep/-/sleep-3.0.0.tgz", "dependencies": { "nan": { "version": "2.0.9", - "from": "https://registry.npmjs.org/nan/-/nan-2.0.9.tgz", + "from": "nan@>=2.0.0", "resolved": "https://registry.npmjs.org/nan/-/nan-2.0.9.tgz" } } }, "webpack": { "version": "1.12.2", - "from": "https://registry.npmjs.org/webpack/-/webpack-1.12.2.tgz", + "from": "webpack@>=1.12.1 <2.0.0", "resolved": "https://registry.npmjs.org/webpack/-/webpack-1.12.2.tgz", "dependencies": { "async": { "version": "1.4.2", - "from": "https://registry.npmjs.org/async/-/async-1.4.2.tgz", + "from": "async@>=1.3.0 <2.0.0", "resolved": "https://registry.npmjs.org/async/-/async-1.4.2.tgz" }, "clone": { "version": "1.0.2", - "from": "https://registry.npmjs.org/clone/-/clone-1.0.2.tgz", + "from": "clone@>=1.0.2 <2.0.0", "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.2.tgz" }, "enhanced-resolve": { "version": "0.9.0", - "from": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-0.9.0.tgz", + "from": "enhanced-resolve@>=0.9.0 <0.10.0", "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-0.9.0.tgz", "dependencies": { "graceful-fs": { "version": "3.0.8", - "from": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-3.0.8.tgz", + "from": "graceful-fs@>=3.0.2 <4.0.0", "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-3.0.8.tgz" } } }, "esprima": { "version": "2.6.0", - "from": "https://registry.npmjs.org/esprima/-/esprima-2.6.0.tgz", + "from": "esprima@>=2.5.0 <3.0.0", "resolved": "https://registry.npmjs.org/esprima/-/esprima-2.6.0.tgz" }, "interpret": { - "version": "0.6.5", - "from": "https://registry.npmjs.org/interpret/-/interpret-0.6.5.tgz", - "resolved": "https://registry.npmjs.org/interpret/-/interpret-0.6.5.tgz" + "version": "0.6.6", + "from": "interpret@>=0.6.4 <0.7.0", + "resolved": "https://registry.npmjs.org/interpret/-/interpret-0.6.6.tgz" }, "memory-fs": { "version": "0.2.0", - "from": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.2.0.tgz", + "from": "memory-fs@>=0.2.0 <0.3.0", "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.2.0.tgz" }, "mkdirp": { "version": "0.5.1", - "from": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", + "from": "mkdirp@>=0.5.0 <0.6.0", "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", "dependencies": { "minimist": { "version": "0.0.8", - "from": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", + "from": "minimist@0.0.8", "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz" } } }, "node-libs-browser": { "version": "0.5.3", - "from": "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-0.5.3.tgz", + "from": "node-libs-browser@>=0.4.0 <=0.6.0", "resolved": "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-0.5.3.tgz", "dependencies": { "assert": { "version": "1.3.0", - "from": "https://registry.npmjs.org/assert/-/assert-1.3.0.tgz", + "from": "assert@>=1.1.1 <2.0.0", "resolved": "https://registry.npmjs.org/assert/-/assert-1.3.0.tgz" }, "browserify-zlib": { "version": "0.1.4", - "from": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.1.4.tgz", + "from": "browserify-zlib@>=0.1.4 <0.2.0", "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.1.4.tgz", "dependencies": { "pako": { "version": "0.2.8", - "from": "https://registry.npmjs.org/pako/-/pako-0.2.8.tgz", + "from": "pako@>=0.2.0 <0.3.0", "resolved": "https://registry.npmjs.org/pako/-/pako-0.2.8.tgz" } } }, "buffer": { "version": "3.5.0", - "from": "https://registry.npmjs.org/buffer/-/buffer-3.5.0.tgz", + "from": "buffer@>=3.0.3 <4.0.0", "resolved": "https://registry.npmjs.org/buffer/-/buffer-3.5.0.tgz", "dependencies": { "base64-js": { "version": "0.0.8", - "from": "https://registry.npmjs.org/base64-js/-/base64-js-0.0.8.tgz", + "from": "base64-js@0.0.8", "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-0.0.8.tgz" }, "ieee754": { "version": "1.1.6", - "from": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.6.tgz", + "from": "ieee754@>=1.1.4 <2.0.0", "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.6.tgz" }, "is-array": { "version": "1.0.1", - "from": "https://registry.npmjs.org/is-array/-/is-array-1.0.1.tgz", + "from": "is-array@>=1.0.1 <2.0.0", "resolved": "https://registry.npmjs.org/is-array/-/is-array-1.0.1.tgz" } } }, "console-browserify": { "version": "1.1.0", - "from": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.1.0.tgz", + "from": "console-browserify@>=1.1.0 <2.0.0", "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.1.0.tgz", "dependencies": { "date-now": { "version": "0.1.4", - "from": "https://registry.npmjs.org/date-now/-/date-now-0.1.4.tgz", + "from": "date-now@>=0.1.4 <0.2.0", "resolved": "https://registry.npmjs.org/date-now/-/date-now-0.1.4.tgz" } } }, "constants-browserify": { "version": "0.0.1", - "from": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-0.0.1.tgz", + "from": "constants-browserify@0.0.1", "resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-0.0.1.tgz" }, "crypto-browserify": { "version": "3.2.8", - "from": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.2.8.tgz", + "from": "crypto-browserify@>=3.2.6 <3.3.0", "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.2.8.tgz", "dependencies": { "pbkdf2-compat": { "version": "2.0.1", - "from": "https://registry.npmjs.org/pbkdf2-compat/-/pbkdf2-compat-2.0.1.tgz", + "from": "pbkdf2-compat@2.0.1", "resolved": "https://registry.npmjs.org/pbkdf2-compat/-/pbkdf2-compat-2.0.1.tgz" }, "ripemd160": { "version": "0.2.0", - "from": "https://registry.npmjs.org/ripemd160/-/ripemd160-0.2.0.tgz", + "from": "ripemd160@0.2.0", "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-0.2.0.tgz" }, "sha.js": { "version": "2.2.6", - "from": "https://registry.npmjs.org/sha.js/-/sha.js-2.2.6.tgz", + "from": "sha.js@2.2.6", "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.2.6.tgz" } } }, "domain-browser": { "version": "1.1.4", - "from": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.1.4.tgz", + "from": "domain-browser@>=1.1.1 <2.0.0", "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.1.4.tgz" }, "events": { - "version": "1.0.2", - "from": "https://registry.npmjs.org/events/-/events-1.0.2.tgz", - "resolved": "https://registry.npmjs.org/events/-/events-1.0.2.tgz" + "version": "1.1.0", + "from": "events@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/events/-/events-1.1.0.tgz" }, "http-browserify": { "version": "1.7.0", - "from": "https://registry.npmjs.org/http-browserify/-/http-browserify-1.7.0.tgz", + "from": "http-browserify@>=1.3.2 <2.0.0", "resolved": "https://registry.npmjs.org/http-browserify/-/http-browserify-1.7.0.tgz", "dependencies": { "Base64": { "version": "0.2.1", - "from": "https://registry.npmjs.org/Base64/-/Base64-0.2.1.tgz", + "from": "Base64@>=0.2.0 <0.3.0", "resolved": "https://registry.npmjs.org/Base64/-/Base64-0.2.1.tgz" }, "inherits": { "version": "2.0.1", - "from": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz", + "from": "inherits@>=2.0.1 <2.1.0", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz" } } }, "https-browserify": { "version": "0.0.0", - "from": "https://registry.npmjs.org/https-browserify/-/https-browserify-0.0.0.tgz", + "from": "https-browserify@0.0.0", "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-0.0.0.tgz" }, "os-browserify": { "version": "0.1.2", - "from": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.1.2.tgz", + "from": "os-browserify@>=0.1.2 <0.2.0", "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.1.2.tgz" }, "path-browserify": { "version": "0.0.0", - "from": "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.0.tgz", + "from": "path-browserify@0.0.0", "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.0.tgz" }, "process": { "version": "0.11.2", - "from": "https://registry.npmjs.org/process/-/process-0.11.2.tgz", + "from": "process@>=0.11.0 <0.12.0", "resolved": "https://registry.npmjs.org/process/-/process-0.11.2.tgz" }, "punycode": { "version": "1.3.2", - "from": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz", + "from": "punycode@>=1.2.4 <2.0.0", "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz" }, "querystring-es3": { "version": "0.2.1", - "from": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz", + "from": "querystring-es3@>=0.2.0 <0.3.0", "resolved": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz" }, "readable-stream": { "version": "1.1.13", - "from": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.13.tgz", + "from": "readable-stream@>=1.1.13 <2.0.0", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.13.tgz", "dependencies": { "core-util-is": { "version": "1.0.1", - "from": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.1.tgz", + "from": "core-util-is@>=1.0.0 <1.1.0", "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.1.tgz" }, "isarray": { "version": "0.0.1", - "from": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "from": "isarray@0.0.1", "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz" }, "inherits": { "version": "2.0.1", - "from": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz", + "from": "inherits@>=2.0.1 <2.1.0", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz" } } }, "stream-browserify": { "version": "1.0.0", - "from": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-1.0.0.tgz", + "from": "stream-browserify@>=1.0.0 <2.0.0", "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-1.0.0.tgz", "dependencies": { "inherits": { "version": "2.0.1", - "from": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz", + "from": "inherits@>=2.0.1 <2.1.0", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz" } } }, "string_decoder": { "version": "0.10.31", - "from": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "from": "string_decoder@>=0.10.25 <0.11.0", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz" }, "timers-browserify": { "version": "1.4.1", - "from": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-1.4.1.tgz", + "from": "timers-browserify@>=1.0.1 <2.0.0", "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-1.4.1.tgz" }, "tty-browserify": { "version": "0.0.0", - "from": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.0.tgz", + "from": "tty-browserify@0.0.0", "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.0.tgz" }, "url": { "version": "0.10.3", - "from": "https://registry.npmjs.org/url/-/url-0.10.3.tgz", + "from": "url@>=0.10.1 <0.11.0", "resolved": "https://registry.npmjs.org/url/-/url-0.10.3.tgz", "dependencies": { "querystring": { "version": "0.2.0", - "from": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", + "from": "querystring@0.2.0", "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz" } } }, "util": { "version": "0.10.3", - "from": "https://registry.npmjs.org/util/-/util-0.10.3.tgz", + "from": "util@>=0.10.3 <0.11.0", "resolved": "https://registry.npmjs.org/util/-/util-0.10.3.tgz", "dependencies": { "inherits": { "version": "2.0.1", - "from": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz", + "from": "inherits@2.0.1", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz" } } }, "vm-browserify": { "version": "0.0.4", - "from": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-0.0.4.tgz", + "from": "vm-browserify@0.0.4", "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-0.0.4.tgz", "dependencies": { "indexof": { "version": "0.0.1", - "from": "https://registry.npmjs.org/indexof/-/indexof-0.0.1.tgz", + "from": "indexof@0.0.1", "resolved": "https://registry.npmjs.org/indexof/-/indexof-0.0.1.tgz" } } @@ -1447,88 +1370,88 @@ }, "optimist": { "version": "0.6.1", - "from": "https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz", + "from": "optimist@>=0.6.0 <0.7.0", "resolved": "https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz", "dependencies": { "wordwrap": { "version": "0.0.3", - "from": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.3.tgz", + "from": "wordwrap@>=0.0.2 <0.1.0", "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.3.tgz" }, "minimist": { "version": "0.0.10", - "from": "https://registry.npmjs.org/minimist/-/minimist-0.0.10.tgz", + "from": "minimist@>=0.0.1 <0.1.0", "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.10.tgz" } } }, "supports-color": { "version": "3.1.1", - "from": "https://registry.npmjs.org/supports-color/-/supports-color-3.1.1.tgz", + "from": "supports-color@>=3.1.0 <4.0.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.1.1.tgz", "dependencies": { "has-flag": { "version": "1.0.0", - "from": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", + "from": "has-flag@>=1.0.0 <2.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz" } } }, "tapable": { "version": "0.1.9", - "from": "https://registry.npmjs.org/tapable/-/tapable-0.1.9.tgz", + "from": "tapable@>=0.1.8 <0.2.0", "resolved": "https://registry.npmjs.org/tapable/-/tapable-0.1.9.tgz" }, "uglify-js": { "version": "2.4.24", - "from": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.4.24.tgz", + "from": "uglify-js@>=2.4.24 <2.5.0", "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.4.24.tgz", "dependencies": { "async": { "version": "0.2.10", - "from": "https://registry.npmjs.org/async/-/async-0.2.10.tgz", + "from": "async@>=0.2.6 <0.3.0", "resolved": "https://registry.npmjs.org/async/-/async-0.2.10.tgz" }, "source-map": { "version": "0.1.34", - "from": "https://registry.npmjs.org/source-map/-/source-map-0.1.34.tgz", + "from": "source-map@0.1.34", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.1.34.tgz", "dependencies": { "amdefine": { "version": "1.0.0", - "from": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.0.tgz", + "from": "amdefine@>=0.0.4", "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.0.tgz" } } }, "uglify-to-browserify": { "version": "1.0.2", - "from": "https://registry.npmjs.org/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz", + "from": "uglify-to-browserify@>=1.0.0 <1.1.0", "resolved": "https://registry.npmjs.org/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz" }, "yargs": { "version": "3.5.4", - "from": "https://registry.npmjs.org/yargs/-/yargs-3.5.4.tgz", + "from": "yargs@>=3.5.4 <3.6.0", "resolved": "https://registry.npmjs.org/yargs/-/yargs-3.5.4.tgz", "dependencies": { "camelcase": { "version": "1.2.1", - "from": "https://registry.npmjs.org/camelcase/-/camelcase-1.2.1.tgz", + "from": "camelcase@>=1.0.2 <2.0.0", "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-1.2.1.tgz" }, "decamelize": { "version": "1.0.0", - "from": "https://registry.npmjs.org/decamelize/-/decamelize-1.0.0.tgz", + "from": "decamelize@>=1.0.0 <2.0.0", "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.0.0.tgz" }, "window-size": { "version": "0.1.0", - "from": "https://registry.npmjs.org/window-size/-/window-size-0.1.0.tgz", + "from": "window-size@0.1.0", "resolved": "https://registry.npmjs.org/window-size/-/window-size-0.1.0.tgz" }, "wordwrap": { "version": "0.0.2", - "from": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.2.tgz", + "from": "wordwrap@0.0.2", "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.2.tgz" } } @@ -1537,84 +1460,84 @@ }, "watchpack": { "version": "0.2.8", - "from": "https://registry.npmjs.org/watchpack/-/watchpack-0.2.8.tgz", + "from": "watchpack@>=0.2.1 <0.3.0", "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-0.2.8.tgz", "dependencies": { "async": { "version": "0.9.2", - "from": "https://registry.npmjs.org/async/-/async-0.9.2.tgz", + "from": "async@>=0.9.0 <0.10.0", "resolved": "https://registry.npmjs.org/async/-/async-0.9.2.tgz" }, "chokidar": { - "version": "1.0.6", - "from": "https://registry.npmjs.org/chokidar/-/chokidar-1.0.6.tgz", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-1.0.6.tgz", + "version": "1.2.0", + "from": "chokidar@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-1.2.0.tgz", "dependencies": { "anymatch": { "version": "1.3.0", - "from": "https://registry.npmjs.org/anymatch/-/anymatch-1.3.0.tgz", + "from": "anymatch@>=1.1.0 <2.0.0", "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-1.3.0.tgz", "dependencies": { "micromatch": { "version": "2.2.0", - "from": "https://registry.npmjs.org/micromatch/-/micromatch-2.2.0.tgz", + "from": "micromatch@>=2.1.5 <3.0.0", "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-2.2.0.tgz", "dependencies": { "arr-diff": { "version": "1.1.0", - "from": "https://registry.npmjs.org/arr-diff/-/arr-diff-1.1.0.tgz", + "from": "arr-diff@>=1.0.1 <2.0.0", "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-1.1.0.tgz", "dependencies": { "arr-flatten": { "version": "1.0.1", - "from": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.0.1.tgz", + "from": "arr-flatten@>=1.0.1 <2.0.0", "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.0.1.tgz" }, "array-slice": { "version": "0.2.3", - "from": "https://registry.npmjs.org/array-slice/-/array-slice-0.2.3.tgz", + "from": "array-slice@>=0.2.3 <0.3.0", "resolved": "https://registry.npmjs.org/array-slice/-/array-slice-0.2.3.tgz" } } }, "array-unique": { "version": "0.2.1", - "from": "https://registry.npmjs.org/array-unique/-/array-unique-0.2.1.tgz", + "from": "array-unique@>=0.2.1 <0.3.0", "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.2.1.tgz" }, "braces": { "version": "1.8.1", - "from": "https://registry.npmjs.org/braces/-/braces-1.8.1.tgz", + "from": "braces@>=1.8.0 <2.0.0", "resolved": "https://registry.npmjs.org/braces/-/braces-1.8.1.tgz", "dependencies": { "expand-range": { "version": "1.8.1", - "from": "https://registry.npmjs.org/expand-range/-/expand-range-1.8.1.tgz", + "from": "expand-range@>=1.8.1 <2.0.0", "resolved": "https://registry.npmjs.org/expand-range/-/expand-range-1.8.1.tgz", "dependencies": { "fill-range": { "version": "2.2.2", - "from": "https://registry.npmjs.org/fill-range/-/fill-range-2.2.2.tgz", + "from": "fill-range@>=2.1.0 <3.0.0", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-2.2.2.tgz", "dependencies": { "is-number": { "version": "1.1.2", - "from": "https://registry.npmjs.org/is-number/-/is-number-1.1.2.tgz", + "from": "is-number@>=1.1.2 <2.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-1.1.2.tgz" }, "isobject": { "version": "1.0.2", - "from": "https://registry.npmjs.org/isobject/-/isobject-1.0.2.tgz", + "from": "isobject@>=1.0.0 <2.0.0", "resolved": "https://registry.npmjs.org/isobject/-/isobject-1.0.2.tgz" }, "randomatic": { "version": "1.1.0", - "from": "https://registry.npmjs.org/randomatic/-/randomatic-1.1.0.tgz", + "from": "randomatic@>=1.1.0 <2.0.0", "resolved": "https://registry.npmjs.org/randomatic/-/randomatic-1.1.0.tgz" }, "repeat-string": { "version": "1.5.2", - "from": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.5.2.tgz", + "from": "repeat-string@>=1.5.2 <2.0.0", "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.5.2.tgz" } } @@ -1623,124 +1546,134 @@ }, "lazy-cache": { "version": "0.2.3", - "from": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-0.2.3.tgz", + "from": "lazy-cache@>=0.2.3 <0.3.0", "resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-0.2.3.tgz" }, "preserve": { "version": "0.2.0", - "from": "https://registry.npmjs.org/preserve/-/preserve-0.2.0.tgz", + "from": "preserve@>=0.2.0 <0.3.0", "resolved": "https://registry.npmjs.org/preserve/-/preserve-0.2.0.tgz" }, "repeat-element": { "version": "1.1.2", - "from": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.2.tgz", + "from": "repeat-element@>=1.1.2 <2.0.0", "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.2.tgz" } } }, "expand-brackets": { "version": "0.1.4", - "from": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-0.1.4.tgz", + "from": "expand-brackets@>=0.1.1 <0.2.0", "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-0.1.4.tgz" }, "extglob": { "version": "0.3.1", - "from": "https://registry.npmjs.org/extglob/-/extglob-0.3.1.tgz", + "from": "extglob@>=0.3.0 <0.4.0", "resolved": "https://registry.npmjs.org/extglob/-/extglob-0.3.1.tgz", "dependencies": { "ansi-green": { "version": "0.1.1", - "from": "https://registry.npmjs.org/ansi-green/-/ansi-green-0.1.1.tgz", + "from": "ansi-green@>=0.1.1 <0.2.0", "resolved": "https://registry.npmjs.org/ansi-green/-/ansi-green-0.1.1.tgz", "dependencies": { "ansi-wrap": { "version": "0.1.0", - "from": "https://registry.npmjs.org/ansi-wrap/-/ansi-wrap-0.1.0.tgz", + "from": "ansi-wrap@0.1.0", "resolved": "https://registry.npmjs.org/ansi-wrap/-/ansi-wrap-0.1.0.tgz" } } }, "is-extglob": { "version": "1.0.0", - "from": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", + "from": "is-extglob@>=1.0.0 <2.0.0", "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz" }, "success-symbol": { "version": "0.1.0", - "from": "https://registry.npmjs.org/success-symbol/-/success-symbol-0.1.0.tgz", + "from": "success-symbol@>=0.1.0 <0.2.0", "resolved": "https://registry.npmjs.org/success-symbol/-/success-symbol-0.1.0.tgz" } } }, "filename-regex": { "version": "2.0.0", - "from": "https://registry.npmjs.org/filename-regex/-/filename-regex-2.0.0.tgz", + "from": "filename-regex@>=2.0.0 <3.0.0", "resolved": "https://registry.npmjs.org/filename-regex/-/filename-regex-2.0.0.tgz" }, + "is-glob": { + "version": "1.1.3", + "from": "is-glob@>=1.1.3 <2.0.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-1.1.3.tgz" + }, "kind-of": { "version": "1.1.0", - "from": "https://registry.npmjs.org/kind-of/-/kind-of-1.1.0.tgz", + "from": "kind-of@>=1.1.0 <2.0.0", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-1.1.0.tgz" }, "object.omit": { "version": "1.1.0", - "from": "https://registry.npmjs.org/object.omit/-/object.omit-1.1.0.tgz", + "from": "object.omit@>=1.1.0 <2.0.0", "resolved": "https://registry.npmjs.org/object.omit/-/object.omit-1.1.0.tgz", "dependencies": { "for-own": { "version": "0.1.3", - "from": "https://registry.npmjs.org/for-own/-/for-own-0.1.3.tgz", + "from": "for-own@>=0.1.3 <0.2.0", "resolved": "https://registry.npmjs.org/for-own/-/for-own-0.1.3.tgz", "dependencies": { "for-in": { "version": "0.1.4", - "from": "https://registry.npmjs.org/for-in/-/for-in-0.1.4.tgz", + "from": "for-in@>=0.1.4 <0.2.0", "resolved": "https://registry.npmjs.org/for-in/-/for-in-0.1.4.tgz" } } }, "isobject": { "version": "1.0.2", - "from": "https://registry.npmjs.org/isobject/-/isobject-1.0.2.tgz", + "from": "isobject@>=1.0.0 <2.0.0", "resolved": "https://registry.npmjs.org/isobject/-/isobject-1.0.2.tgz" } } }, "parse-glob": { - "version": "3.0.2", - "from": "https://registry.npmjs.org/parse-glob/-/parse-glob-3.0.2.tgz", - "resolved": "https://registry.npmjs.org/parse-glob/-/parse-glob-3.0.2.tgz", + "version": "3.0.4", + "from": "parse-glob@>=3.0.1 <4.0.0", + "resolved": "https://registry.npmjs.org/parse-glob/-/parse-glob-3.0.4.tgz", "dependencies": { "glob-base": { - "version": "0.2.0", - "from": "https://registry.npmjs.org/glob-base/-/glob-base-0.2.0.tgz", - "resolved": "https://registry.npmjs.org/glob-base/-/glob-base-0.2.0.tgz" + "version": "0.3.0", + "from": "glob-base@>=0.3.0 <0.4.0", + "resolved": "https://registry.npmjs.org/glob-base/-/glob-base-0.3.0.tgz" }, "is-dotfile": { "version": "1.0.1", - "from": "https://registry.npmjs.org/is-dotfile/-/is-dotfile-1.0.1.tgz", + "from": "is-dotfile@>=1.0.0 <2.0.0", "resolved": "https://registry.npmjs.org/is-dotfile/-/is-dotfile-1.0.1.tgz" }, "is-extglob": { "version": "1.0.0", - "from": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", + "from": "is-extglob@>=1.0.0 <2.0.0", "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz" + }, + "is-glob": { + "version": "2.0.1", + "from": "is-glob@>=2.0.0 <3.0.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz" } } }, "regex-cache": { "version": "0.4.2", - "from": "https://registry.npmjs.org/regex-cache/-/regex-cache-0.4.2.tgz", + "from": "regex-cache@>=0.4.2 <0.5.0", "resolved": "https://registry.npmjs.org/regex-cache/-/regex-cache-0.4.2.tgz", "dependencies": { "is-equal-shallow": { "version": "0.1.3", - "from": "https://registry.npmjs.org/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz", + "from": "is-equal-shallow@>=0.1.1 <0.2.0", "resolved": "https://registry.npmjs.org/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz" }, "is-primitive": { "version": "2.0.0", - "from": "https://registry.npmjs.org/is-primitive/-/is-primitive-2.0.0.tgz", + "from": "is-primitive@>=2.0.0 <3.0.0", "resolved": "https://registry.npmjs.org/is-primitive/-/is-primitive-2.0.0.tgz" } } @@ -1751,113 +1684,880 @@ }, "arrify": { "version": "1.0.0", - "from": "https://registry.npmjs.org/arrify/-/arrify-1.0.0.tgz", + "from": "arrify@>=1.0.0 <2.0.0", "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.0.tgz" }, "async-each": { "version": "0.1.6", - "from": "https://registry.npmjs.org/async-each/-/async-each-0.1.6.tgz", + "from": "async-each@>=0.1.5 <0.2.0", "resolved": "https://registry.npmjs.org/async-each/-/async-each-0.1.6.tgz" }, "glob-parent": { - "version": "1.3.0", - "from": "https://registry.npmjs.org/glob-parent/-/glob-parent-1.3.0.tgz", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-1.3.0.tgz", - "dependencies": { - "is-glob": { - "version": "2.0.0", - "from": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.0.tgz", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.0.tgz" - } - } + "version": "2.0.0", + "from": "glob-parent@>=2.0.0 <3.0.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-2.0.0.tgz" }, "is-binary-path": { "version": "1.0.1", - "from": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", + "from": "is-binary-path@>=1.0.0 <2.0.0", "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", "dependencies": { "binary-extensions": { "version": "1.3.1", - "from": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.3.1.tgz", + "from": "binary-extensions@>=1.0.0 <2.0.0", "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.3.1.tgz" } } }, "is-glob": { - "version": "1.1.3", - "from": "https://registry.npmjs.org/is-glob/-/is-glob-1.1.3.tgz", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-1.1.3.tgz" + "version": "2.0.1", + "from": "is-glob@>=2.0.0 <3.0.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", + "dependencies": { + "is-extglob": { + "version": "1.0.0", + "from": "is-extglob@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz" + } + } + }, + "lodash.flatten": { + "version": "3.0.2", + "from": "lodash.flatten@>=3.0.2 <4.0.0", + "resolved": "https://registry.npmjs.org/lodash.flatten/-/lodash.flatten-3.0.2.tgz", + "dependencies": { + "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", + "dependencies": { + "lodash.isarguments": { + "version": "3.0.4", + "from": "lodash.isarguments@>=3.0.0 <4.0.0", + "resolved": "https://registry.npmjs.org/lodash.isarguments/-/lodash.isarguments-3.0.4.tgz" + }, + "lodash.isarray": { + "version": "3.0.4", + "from": "lodash.isarray@>=3.0.0 <4.0.0", + "resolved": "https://registry.npmjs.org/lodash.isarray/-/lodash.isarray-3.0.4.tgz" + } + } + }, + "lodash._isiterateecall": { + "version": "3.0.9", + "from": "lodash._isiterateecall@>=3.0.0 <4.0.0", + "resolved": "https://registry.npmjs.org/lodash._isiterateecall/-/lodash._isiterateecall-3.0.9.tgz" + } + } }, "path-is-absolute": { "version": "1.0.0", - "from": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.0.tgz", + "from": "path-is-absolute@>=1.0.0 <2.0.0", "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.0.tgz" }, "readdirp": { - "version": "1.4.0", - "from": "https://registry.npmjs.org/readdirp/-/readdirp-1.4.0.tgz", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-1.4.0.tgz", + "version": "2.0.0", + "from": "readdirp@>=2.0.0 <3.0.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.0.0.tgz", "dependencies": { "graceful-fs": { "version": "4.1.2", - "from": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.2.tgz", + "from": "graceful-fs@>=4.1.2 <5.0.0", "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.2.tgz" }, "minimatch": { - "version": "0.2.14", - "from": "https://registry.npmjs.org/minimatch/-/minimatch-0.2.14.tgz", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-0.2.14.tgz", + "version": "2.0.10", + "from": "minimatch@>=2.0.10 <3.0.0", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-2.0.10.tgz", "dependencies": { - "lru-cache": { - "version": "2.7.0", - "from": "https://registry.npmjs.org/lru-cache/-/lru-cache-2.7.0.tgz", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-2.7.0.tgz" - }, - "sigmund": { - "version": "1.0.1", - "from": "https://registry.npmjs.org/sigmund/-/sigmund-1.0.1.tgz", - "resolved": "https://registry.npmjs.org/sigmund/-/sigmund-1.0.1.tgz" + "brace-expansion": { + "version": "1.1.1", + "from": "brace-expansion@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.1.tgz", + "dependencies": { + "balanced-match": { + "version": "0.2.0", + "from": "balanced-match@>=0.2.0 <0.3.0", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-0.2.0.tgz" + }, + "concat-map": { + "version": "0.0.1", + "from": "concat-map@0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz" + } + } } } }, "readable-stream": { - "version": "1.0.33", - "from": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.33.tgz", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.33.tgz", + "version": "2.0.2", + "from": "readable-stream@>=2.0.2 <3.0.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.0.2.tgz", "dependencies": { "core-util-is": { "version": "1.0.1", - "from": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.1.tgz", + "from": "core-util-is@>=1.0.0 <1.1.0", "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.1.tgz" }, + "inherits": { + "version": "2.0.1", + "from": "inherits@>=2.0.1 <2.1.0", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz" + }, "isarray": { "version": "0.0.1", - "from": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "from": "isarray@0.0.1", "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz" }, + "process-nextick-args": { + "version": "1.0.3", + "from": "process-nextick-args@>=1.0.0 <1.1.0", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.3.tgz" + }, "string_decoder": { "version": "0.10.31", - "from": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "from": "string_decoder@>=0.10.0 <0.11.0", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz" }, - "inherits": { - "version": "2.0.1", - "from": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz" + "util-deprecate": { + "version": "1.0.1", + "from": "util-deprecate@>=1.0.1 <1.1.0", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.1.tgz" } } } } }, "fsevents": { - "version": "0.3.8", - "from": "https://registry.npmjs.org/fsevents/-/fsevents-0.3.8.tgz", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-0.3.8.tgz", + "version": "1.0.1", + "from": "fsevents@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.0.1.tgz", "dependencies": { "nan": { "version": "2.0.9", - "from": "https://registry.npmjs.org/nan/-/nan-2.0.9.tgz", + "from": "nan@>=2.0.2 <3.0.0", "resolved": "https://registry.npmjs.org/nan/-/nan-2.0.9.tgz" + }, + "node-pre-gyp": { + "version": "0.6.11", + "from": "node-pre-gyp@0.6.11", + "resolved": "https://registry.npmjs.org/node-pre-gyp/-/node-pre-gyp-0.6.11.tgz", + "dependencies": { + "nopt": { + "version": "3.0.4", + "from": "nopt@~3.0.1", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-3.0.4.tgz", + "dependencies": { + "abbrev": { + "version": "1.0.7", + "from": "abbrev@1", + "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.0.7.tgz" + } + } + }, + "npmlog": { + "version": "1.2.1", + "from": "npmlog@~1.2.0", + "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-1.2.1.tgz", + "dependencies": { + "ansi": { + "version": "0.3.0", + "from": "ansi@~0.3.0", + "resolved": "https://registry.npmjs.org/ansi/-/ansi-0.3.0.tgz" + }, + "are-we-there-yet": { + "version": "1.0.4", + "from": "are-we-there-yet@~1.0.0", + "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.0.4.tgz", + "dependencies": { + "delegates": { + "version": "0.1.0", + "from": "delegates@^0.1.0", + "resolved": "https://registry.npmjs.org/delegates/-/delegates-0.1.0.tgz" + }, + "readable-stream": { + "version": "1.1.13", + "from": "readable-stream@^1.1.13", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.13.tgz", + "dependencies": { + "core-util-is": { + "version": "1.0.1", + "from": "core-util-is@~1.0.0", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.1.tgz" + }, + "isarray": { + "version": "0.0.1", + "from": "isarray@0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz" + }, + "string_decoder": { + "version": "0.10.31", + "from": "string_decoder@~0.10.x", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz" + }, + "inherits": { + "version": "2.0.1", + "from": "inherits@2.0.1", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz" + } + } + } + } + }, + "gauge": { + "version": "1.2.2", + "from": "gauge@~1.2.0", + "resolved": "https://registry.npmjs.org/gauge/-/gauge-1.2.2.tgz", + "dependencies": { + "has-unicode": { + "version": "1.0.0", + "from": "has-unicode@^1.0.0", + "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-1.0.0.tgz" + }, + "lodash.pad": { + "version": "3.1.1", + "from": "lodash.pad@^3.0.0", + "resolved": "https://registry.npmjs.org/lodash.pad/-/lodash.pad-3.1.1.tgz", + "dependencies": { + "lodash._basetostring": { + "version": "3.0.1", + "from": "lodash._basetostring@^3.0.0", + "resolved": "https://registry.npmjs.org/lodash._basetostring/-/lodash._basetostring-3.0.1.tgz" + }, + "lodash._createpadding": { + "version": "3.6.1", + "from": "lodash._createpadding@^3.0.0", + "resolved": "https://registry.npmjs.org/lodash._createpadding/-/lodash._createpadding-3.6.1.tgz", + "dependencies": { + "lodash.repeat": { + "version": "3.0.1", + "from": "lodash.repeat@^3.0.0", + "resolved": "https://registry.npmjs.org/lodash.repeat/-/lodash.repeat-3.0.1.tgz" + } + } + } + } + }, + "lodash.padleft": { + "version": "3.1.1", + "from": "lodash.padleft@^3.0.0", + "resolved": "https://registry.npmjs.org/lodash.padleft/-/lodash.padleft-3.1.1.tgz", + "dependencies": { + "lodash._basetostring": { + "version": "3.0.1", + "from": "lodash._basetostring@^3.0.0", + "resolved": "https://registry.npmjs.org/lodash._basetostring/-/lodash._basetostring-3.0.1.tgz" + }, + "lodash._createpadding": { + "version": "3.6.1", + "from": "lodash._createpadding@^3.0.0", + "resolved": "https://registry.npmjs.org/lodash._createpadding/-/lodash._createpadding-3.6.1.tgz", + "dependencies": { + "lodash.repeat": { + "version": "3.0.1", + "from": "lodash.repeat@^3.0.0", + "resolved": "https://registry.npmjs.org/lodash.repeat/-/lodash.repeat-3.0.1.tgz" + } + } + } + } + }, + "lodash.padright": { + "version": "3.1.1", + "from": "lodash.padright@^3.0.0", + "resolved": "https://registry.npmjs.org/lodash.padright/-/lodash.padright-3.1.1.tgz", + "dependencies": { + "lodash._basetostring": { + "version": "3.0.1", + "from": "lodash._basetostring@^3.0.0", + "resolved": "https://registry.npmjs.org/lodash._basetostring/-/lodash._basetostring-3.0.1.tgz" + }, + "lodash._createpadding": { + "version": "3.6.1", + "from": "lodash._createpadding@^3.0.0", + "resolved": "https://registry.npmjs.org/lodash._createpadding/-/lodash._createpadding-3.6.1.tgz", + "dependencies": { + "lodash.repeat": { + "version": "3.0.1", + "from": "lodash.repeat@^3.0.0", + "resolved": "https://registry.npmjs.org/lodash.repeat/-/lodash.repeat-3.0.1.tgz" + } + } + } + } + } + } + } + } + }, + "request": { + "version": "2.63.0", + "from": "request@2.x", + "resolved": "https://registry.npmjs.org/request/-/request-2.63.0.tgz", + "dependencies": { + "bl": { + "version": "1.0.0", + "from": "bl@~1.0.0", + "resolved": "https://registry.npmjs.org/bl/-/bl-1.0.0.tgz", + "dependencies": { + "readable-stream": { + "version": "2.0.2", + "from": "readable-stream@~2.0.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.0.2.tgz", + "dependencies": { + "core-util-is": { + "version": "1.0.1", + "from": "core-util-is@~1.0.0", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.1.tgz" + }, + "inherits": { + "version": "2.0.1", + "from": "inherits@~2.0.1", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz" + }, + "isarray": { + "version": "0.0.1", + "from": "isarray@0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz" + }, + "process-nextick-args": { + "version": "1.0.3", + "from": "process-nextick-args@~1.0.0", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.3.tgz" + }, + "string_decoder": { + "version": "0.10.31", + "from": "string_decoder@~0.10.x", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz" + }, + "util-deprecate": { + "version": "1.0.1", + "from": "util-deprecate@~1.0.1", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.1.tgz" + } + } + } + } + }, + "caseless": { + "version": "0.11.0", + "from": "caseless@~0.11.0", + "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.11.0.tgz" + }, + "extend": { + "version": "3.0.0", + "from": "extend@~3.0.0", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.0.tgz" + }, + "forever-agent": { + "version": "0.6.1", + "from": "forever-agent@~0.6.0", + "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz" + }, + "form-data": { + "version": "1.0.0-rc3", + "from": "form-data@~1.0.0-rc1", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-1.0.0-rc3.tgz", + "dependencies": { + "async": { + "version": "1.4.2", + "from": "async@^1.4.0", + "resolved": "https://registry.npmjs.org/async/-/async-1.4.2.tgz" + } + } + }, + "json-stringify-safe": { + "version": "5.0.1", + "from": "json-stringify-safe@~5.0.0", + "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz" + }, + "mime-types": { + "version": "2.1.7", + "from": "mime-types@~2.1.2", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.7.tgz", + "dependencies": { + "mime-db": { + "version": "1.19.0", + "from": "mime-db@~1.19.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.19.0.tgz" + } + } + }, + "node-uuid": { + "version": "1.4.3", + "from": "node-uuid@~1.4.0", + "resolved": "https://registry.npmjs.org/node-uuid/-/node-uuid-1.4.3.tgz" + }, + "qs": { + "version": "5.1.0", + "from": "qs@~5.1.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-5.1.0.tgz" + }, + "tunnel-agent": { + "version": "0.4.1", + "from": "tunnel-agent@~0.4.0", + "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.4.1.tgz" + }, + "tough-cookie": { + "version": "2.0.0", + "from": "tough-cookie@>=0.12.0", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.0.0.tgz" + }, + "http-signature": { + "version": "0.11.0", + "from": "http-signature@~0.11.0", + "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-0.11.0.tgz", + "dependencies": { + "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" + }, + "asn1": { + "version": "0.1.11", + "from": "asn1@0.1.11", + "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.1.11.tgz" + }, + "ctype": { + "version": "0.5.3", + "from": "ctype@0.5.3", + "resolved": "https://registry.npmjs.org/ctype/-/ctype-0.5.3.tgz" + } + } + }, + "oauth-sign": { + "version": "0.8.0", + "from": "oauth-sign@~0.8.0", + "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.8.0.tgz" + }, + "hawk": { + "version": "3.1.0", + "from": "hawk@~3.1.0", + "resolved": "https://registry.npmjs.org/hawk/-/hawk-3.1.0.tgz", + "dependencies": { + "hoek": { + "version": "2.16.3", + "from": "hoek@2.x.x", + "resolved": "https://registry.npmjs.org/hoek/-/hoek-2.16.3.tgz" + }, + "boom": { + "version": "2.9.0", + "from": "boom@^2.8.x", + "resolved": "https://registry.npmjs.org/boom/-/boom-2.9.0.tgz" + }, + "cryptiles": { + "version": "2.0.5", + "from": "cryptiles@2.x.x", + "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-2.0.5.tgz" + }, + "sntp": { + "version": "1.0.9", + "from": "sntp@1.x.x", + "resolved": "https://registry.npmjs.org/sntp/-/sntp-1.0.9.tgz" + } + } + }, + "aws-sign2": { + "version": "0.5.0", + "from": "aws-sign2@~0.5.0", + "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.5.0.tgz" + }, + "stringstream": { + "version": "0.0.4", + "from": "stringstream@~0.0.4", + "resolved": "https://registry.npmjs.org/stringstream/-/stringstream-0.0.4.tgz" + }, + "combined-stream": { + "version": "1.0.5", + "from": "combined-stream@~1.0.1", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.5.tgz", + "dependencies": { + "delayed-stream": { + "version": "1.0.0", + "from": "delayed-stream@~1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz" + } + } + }, + "isstream": { + "version": "0.1.2", + "from": "isstream@~0.1.1", + "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz" + }, + "har-validator": { + "version": "1.8.0", + "from": "har-validator@^1.6.1", + "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-1.8.0.tgz", + "dependencies": { + "bluebird": { + "version": "2.10.1", + "from": "bluebird@^2.9.30", + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-2.10.1.tgz" + }, + "chalk": { + "version": "1.1.1", + "from": "chalk@^1.0.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.1.tgz", + "dependencies": { + "ansi-styles": { + "version": "2.1.0", + "from": "ansi-styles@^2.1.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.1.0.tgz" + }, + "escape-string-regexp": { + "version": "1.0.3", + "from": "escape-string-regexp@^1.0.2", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.3.tgz" + }, + "has-ansi": { + "version": "2.0.0", + "from": "has-ansi@^2.0.0", + "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", + "dependencies": { + "ansi-regex": { + "version": "2.0.0", + "from": "ansi-regex@^2.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.0.0.tgz" + } + } + }, + "strip-ansi": { + "version": "3.0.0", + "from": "strip-ansi@^3.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.0.tgz", + "dependencies": { + "ansi-regex": { + "version": "2.0.0", + "from": "ansi-regex@^2.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.0.0.tgz" + } + } + }, + "supports-color": { + "version": "2.0.0", + "from": "supports-color@^2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz" + } + } + }, + "commander": { + "version": "2.8.1", + "from": "commander@^2.8.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.8.1.tgz", + "dependencies": { + "graceful-readlink": { + "version": "1.0.1", + "from": "graceful-readlink@>= 1.0.0", + "resolved": "https://registry.npmjs.org/graceful-readlink/-/graceful-readlink-1.0.1.tgz" + } + } + }, + "is-my-json-valid": { + "version": "2.12.2", + "from": "is-my-json-valid@^2.12.0", + "resolved": "https://registry.npmjs.org/is-my-json-valid/-/is-my-json-valid-2.12.2.tgz", + "dependencies": { + "generate-function": { + "version": "2.0.0", + "from": "generate-function@^2.0.0", + "resolved": "https://registry.npmjs.org/generate-function/-/generate-function-2.0.0.tgz" + }, + "generate-object-property": { + "version": "1.2.0", + "from": "generate-object-property@^1.1.0", + "resolved": "https://registry.npmjs.org/generate-object-property/-/generate-object-property-1.2.0.tgz", + "dependencies": { + "is-property": { + "version": "1.0.2", + "from": "is-property@^1.0.0", + "resolved": "https://registry.npmjs.org/is-property/-/is-property-1.0.2.tgz" + } + } + }, + "jsonpointer": { + "version": "2.0.0", + "from": "jsonpointer@2.0.0", + "resolved": "https://registry.npmjs.org/jsonpointer/-/jsonpointer-2.0.0.tgz" + }, + "xtend": { + "version": "4.0.0", + "from": "xtend@^4.0.0", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.0.tgz" + } + } + } + } + } + } + }, + "semver": { + "version": "5.0.3", + "from": "semver@~5.0.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.0.3.tgz" + }, + "tar": { + "version": "2.2.1", + "from": "tar@~2.2.0", + "resolved": "https://registry.npmjs.org/tar/-/tar-2.2.1.tgz", + "dependencies": { + "block-stream": { + "version": "0.0.8", + "from": "block-stream@*", + "resolved": "https://registry.npmjs.org/block-stream/-/block-stream-0.0.8.tgz" + }, + "fstream": { + "version": "1.0.8", + "from": "fstream@^1.0.2", + "resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.8.tgz", + "dependencies": { + "graceful-fs": { + "version": "4.1.2", + "from": "graceful-fs@^4.1.2", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.2.tgz" + } + } + }, + "inherits": { + "version": "2.0.1", + "from": "inherits@~2.0.0", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz" + } + } + }, + "tar-pack": { + "version": "2.0.0", + "from": "tar-pack@~2.0.0", + "resolved": "https://registry.npmjs.org/tar-pack/-/tar-pack-2.0.0.tgz", + "dependencies": { + "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" + }, + "once": { + "version": "1.1.1", + "from": "once@~1.1.1", + "resolved": "https://registry.npmjs.org/once/-/once-1.1.1.tgz" + }, + "debug": { + "version": "0.7.4", + "from": "debug@~0.7.2", + "resolved": "https://registry.npmjs.org/debug/-/debug-0.7.4.tgz" + }, + "rimraf": { + "version": "2.2.8", + "from": "rimraf@~2.2.0", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.2.8.tgz" + }, + "fstream": { + "version": "0.1.31", + "from": "fstream@~0.1.22", + "resolved": "https://registry.npmjs.org/fstream/-/fstream-0.1.31.tgz", + "dependencies": { + "graceful-fs": { + "version": "3.0.8", + "from": "graceful-fs@~3.0.2", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-3.0.8.tgz" + }, + "inherits": { + "version": "2.0.1", + "from": "inherits@~2.0.0", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz" + } + } + }, + "tar": { + "version": "0.1.20", + "from": "tar@~0.1.17", + "resolved": "https://registry.npmjs.org/tar/-/tar-0.1.20.tgz", + "dependencies": { + "block-stream": { + "version": "0.0.8", + "from": "block-stream@*", + "resolved": "https://registry.npmjs.org/block-stream/-/block-stream-0.0.8.tgz" + }, + "inherits": { + "version": "2.0.1", + "from": "inherits@2", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz" + } + } + }, + "fstream-ignore": { + "version": "0.0.7", + "from": "fstream-ignore@0.0.7", + "resolved": "https://registry.npmjs.org/fstream-ignore/-/fstream-ignore-0.0.7.tgz", + "dependencies": { + "minimatch": { + "version": "0.2.14", + "from": "minimatch@~0.2.0", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-0.2.14.tgz", + "dependencies": { + "lru-cache": { + "version": "2.7.0", + "from": "lru-cache@2", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-2.7.0.tgz" + }, + "sigmund": { + "version": "1.0.1", + "from": "sigmund@~1.0.0", + "resolved": "https://registry.npmjs.org/sigmund/-/sigmund-1.0.1.tgz" + } + } + }, + "inherits": { + "version": "2.0.1", + "from": "inherits@2", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz" + } + } + }, + "readable-stream": { + "version": "1.0.33", + "from": "readable-stream@~1.0.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.33.tgz", + "dependencies": { + "core-util-is": { + "version": "1.0.1", + "from": "core-util-is@~1.0.0", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.1.tgz" + }, + "isarray": { + "version": "0.0.1", + "from": "isarray@0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz" + }, + "string_decoder": { + "version": "0.10.31", + "from": "string_decoder@~0.10.x", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz" + }, + "inherits": { + "version": "2.0.1", + "from": "inherits@~2.0.1", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz" + } + } + }, + "graceful-fs": { + "version": "1.2.3", + "from": "graceful-fs@1.2", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-1.2.3.tgz" + } + } + }, + "mkdirp": { + "version": "0.5.1", + "from": "mkdirp@~0.5.0", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", + "dependencies": { + "minimist": { + "version": "0.0.8", + "from": "minimist@0.0.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz" + } + } + }, + "rc": { + "version": "1.1.1", + "from": "rc@~1.1.0", + "resolved": "https://registry.npmjs.org/rc/-/rc-1.1.1.tgz", + "dependencies": { + "minimist": { + "version": "1.2.0", + "from": "minimist@^1.1.2", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz" + }, + "deep-extend": { + "version": "0.2.11", + "from": "deep-extend@~0.2.5", + "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.2.11.tgz" + }, + "strip-json-comments": { + "version": "0.1.3", + "from": "strip-json-comments@0.1.x", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-0.1.3.tgz" + }, + "ini": { + "version": "1.3.4", + "from": "ini@~1.3.0", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.4.tgz" + } + } + }, + "rimraf": { + "version": "2.4.3", + "from": "rimraf@~2.4.0", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.4.3.tgz", + "dependencies": { + "glob": { + "version": "5.0.14", + "from": "glob@^5.0.14", + "resolved": "https://registry.npmjs.org/glob/-/glob-5.0.14.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": "2.0.10", + "from": "minimatch@^2.0.1", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-2.0.10.tgz", + "dependencies": { + "brace-expansion": { + "version": "1.1.0", + "from": "brace-expansion@^1.0.0", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.0.tgz", + "dependencies": { + "balanced-match": { + "version": "0.2.0", + "from": "balanced-match@^0.2.0", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-0.2.0.tgz" + }, + "concat-map": { + "version": "0.0.1", + "from": "concat-map@0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz" + } + } + } + } + }, + "once": { + "version": "1.3.2", + "from": "once@^1.3.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.3.2.tgz", + "dependencies": { + "wrappy": { + "version": "1.0.1", + "from": "wrappy@1", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.1.tgz" + } + } + }, + "path-is-absolute": { + "version": "1.0.0", + "from": "path-is-absolute@^1.0.0", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.0.tgz" + } + } + } + } + } + } } } } @@ -1865,31 +2565,31 @@ }, "graceful-fs": { "version": "3.0.8", - "from": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-3.0.8.tgz", + "from": "graceful-fs@>=3.0.2 <4.0.0", "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-3.0.8.tgz" } } }, "webpack-core": { "version": "0.6.7", - "from": "https://registry.npmjs.org/webpack-core/-/webpack-core-0.6.7.tgz", + "from": "webpack-core@>=0.6.0 <0.7.0", "resolved": "https://registry.npmjs.org/webpack-core/-/webpack-core-0.6.7.tgz", "dependencies": { "source-map": { "version": "0.4.4", - "from": "https://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz", + "from": "source-map@>=0.4.1 <0.5.0", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz", "dependencies": { "amdefine": { "version": "1.0.0", - "from": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.0.tgz", + "from": "amdefine@>=0.0.4", "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.0.tgz" } } }, "source-list-map": { "version": "0.1.5", - "from": "https://registry.npmjs.org/source-list-map/-/source-list-map-0.1.5.tgz", + "from": "source-list-map@>=0.1.0 <0.2.0", "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-0.1.5.tgz" } } From 43b299398c75b24de49f662bba83af9f3c22424e Mon Sep 17 00:00:00 2001 From: Josias Schneider Date: Tue, 6 Oct 2015 00:11:37 -0300 Subject: [PATCH 107/514] Update client README Fix typo --- client/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/client/README.md b/client/README.md index 30d0717d..57067853 100644 --- a/client/README.md +++ b/client/README.md @@ -22,7 +22,7 @@ For now: bin/lint -Updating Node Dependenencies +Updating Node Dependencies =========================== ``` From c2419e184ec4eb13334de457710726fce134463f Mon Sep 17 00:00:00 2001 From: Josias Schneider Date: Tue, 6 Oct 2015 09:56:41 -0300 Subject: [PATCH 108/514] Update README Fix typo --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 9c8825da..b8523df8 100644 --- a/README.md +++ b/README.md @@ -73,7 +73,7 @@ See package.json and Gemfile for versions 1. `npm install` 1. `rake db:setup` 1. `foreman start -f Procfile.dev` -1. Open a browser tab to http://0.0.0.0:4000 for the Rail app example. +1. Open a browser tab to http://0.0.0.0:4000 for the Rails app example. 1. Open a browser tab to http://0.0.0.0:3000 for the Hot Module Replacement Example. # Javascript development without Rails using Hot Module Replacement (HMR) From 86018b23ac110fdf7c9d474ab084a56a0f8bfe22 Mon Sep 17 00:00:00 2001 From: dylangrafmyre Date: Wed, 7 Oct 2015 09:49:49 -1000 Subject: [PATCH 109/514] Fix linting errors within server.rails.config and hot.config --- client/webpack.client.hot.config.js | 2 +- client/webpack.server.rails.config.js | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/client/webpack.client.hot.config.js b/client/webpack.client.hot.config.js index 707d19c2..453987a8 100644 --- a/client/webpack.client.hot.config.js +++ b/client/webpack.client.hot.config.js @@ -46,7 +46,7 @@ config.module.loaders.push( transform: 'react-transform-hmr', imports: ['react'], locals: ['module'], - } + }, ], }, }, diff --git a/client/webpack.server.rails.config.js b/client/webpack.server.rails.config.js index 40e3333a..5d23c808 100644 --- a/client/webpack.server.rails.config.js +++ b/client/webpack.server.rails.config.js @@ -17,7 +17,7 @@ module.exports = { plugins: [ new webpack.DefinePlugin({ 'process.env': { - 'NODE_ENV': JSON.stringify('production'), + NODE_ENV: JSON.stringify('production'), }, }), ], From 8921fbab7d74f02166140e1225542731e1b0dfa4 Mon Sep 17 00:00:00 2001 From: dylangrafmyre Date: Thu, 8 Oct 2015 06:25:30 -1000 Subject: [PATCH 110/514] Upgrade react-bootstrap module to 0.26.4 and npm shrinkwrap --- client/npm-shrinkwrap.json | 112 +++++++++++++++++++++++-------------- client/package.json | 2 +- 2 files changed, 70 insertions(+), 44 deletions(-) diff --git a/client/npm-shrinkwrap.json b/client/npm-shrinkwrap.json index 7c534750..6447da24 100644 --- a/client/npm-shrinkwrap.json +++ b/client/npm-shrinkwrap.json @@ -757,7 +757,7 @@ }, "type-is": { "version": "1.6.9", - "from": "type-is@>=1.6.6 <1.7.0", + "from": "type-is@>=1.6.9 <1.7.0", "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.9.tgz", "dependencies": { "media-typer": { @@ -901,13 +901,13 @@ } }, "react-bootstrap": { - "version": "0.25.2", - "from": "react-bootstrap@>=0.25.1 <0.26.0", - "resolved": "https://registry.npmjs.org/react-bootstrap/-/react-bootstrap-0.25.2.tgz", + "version": "0.26.4", + "from": "react-bootstrap@>=0.26.4 <0.27.0", + "resolved": "https://registry.npmjs.org/react-bootstrap/-/react-bootstrap-0.26.4.tgz", "dependencies": { "babel-runtime": { "version": "5.8.25", - "from": "babel-runtime@>=5.8.19 <6.0.0", + "from": "babel-runtime@>=5.8.24 <6.0.0", "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-5.8.25.tgz", "dependencies": { "core-js": { @@ -932,10 +932,10 @@ "from": "keycode@>=2.0.0 <3.0.0", "resolved": "https://registry.npmjs.org/keycode/-/keycode-2.1.0.tgz" }, - "lodash": { + "lodash-compat": { "version": "3.10.1", - "from": "lodash@>=3.10.0 <4.0.0", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-3.10.1.tgz" + "from": "lodash-compat@>=3.10.1 <4.0.0", + "resolved": "https://registry.npmjs.org/lodash-compat/-/lodash-compat-3.10.1.tgz" }, "react-overlays": { "version": "0.4.4", @@ -968,10 +968,36 @@ } } }, + "react-prop-types": { + "version": "0.3.0", + "from": "react-prop-types@>=0.3.0 <0.4.0", + "resolved": "https://registry.npmjs.org/react-prop-types/-/react-prop-types-0.3.0.tgz", + "dependencies": { + "warning": { + "version": "2.1.0", + "from": "warning@>=2.0.0 <3.0.0", + "resolved": "https://registry.npmjs.org/warning/-/warning-2.1.0.tgz", + "dependencies": { + "loose-envify": { + "version": "1.0.0", + "from": "loose-envify@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.0.0.tgz", + "dependencies": { + "js-tokens": { + "version": "1.0.1", + "from": "js-tokens@>=1.0.1 <2.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-1.0.1.tgz" + } + } + } + } + } + } + }, "uncontrollable": { - "version": "3.1.2", - "from": "uncontrollable@>=3.0.0 <4.0.0", - "resolved": "https://registry.npmjs.org/uncontrollable/-/uncontrollable-3.1.2.tgz", + "version": "3.1.3", + "from": "uncontrollable@>=3.1.1 <4.0.0", + "resolved": "https://registry.npmjs.org/uncontrollable/-/uncontrollable-3.1.3.tgz", "dependencies": { "invariant": { "version": "2.1.1", @@ -1081,9 +1107,9 @@ "resolved": "https://registry.npmjs.org/sleep/-/sleep-3.0.0.tgz", "dependencies": { "nan": { - "version": "2.0.9", + "version": "2.1.0", "from": "nan@>=2.0.0", - "resolved": "https://registry.npmjs.org/nan/-/nan-2.0.9.tgz" + "resolved": "https://registry.npmjs.org/nan/-/nan-2.1.0.tgz" } } }, @@ -1164,9 +1190,9 @@ } }, "buffer": { - "version": "3.5.0", + "version": "3.5.1", "from": "buffer@>=3.0.3 <4.0.0", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-3.5.0.tgz", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-3.5.1.tgz", "dependencies": { "base64-js": { "version": "0.0.8", @@ -1820,28 +1846,28 @@ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz" }, "util-deprecate": { - "version": "1.0.1", + "version": "1.0.2", "from": "util-deprecate@>=1.0.1 <1.1.0", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.1.tgz" + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz" } } } } }, "fsevents": { - "version": "1.0.1", + "version": "1.0.2", "from": "fsevents@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.0.1.tgz", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.0.2.tgz", "dependencies": { "nan": { - "version": "2.0.9", + "version": "2.1.0", "from": "nan@>=2.0.2 <3.0.0", - "resolved": "https://registry.npmjs.org/nan/-/nan-2.0.9.tgz" + "resolved": "https://registry.npmjs.org/nan/-/nan-2.1.0.tgz" }, "node-pre-gyp": { - "version": "0.6.11", - "from": "node-pre-gyp@0.6.11", - "resolved": "https://registry.npmjs.org/node-pre-gyp/-/node-pre-gyp-0.6.11.tgz", + "version": "0.6.12", + "from": "node-pre-gyp@0.6.12", + "resolved": "https://registry.npmjs.org/node-pre-gyp/-/node-pre-gyp-0.6.12.tgz", "dependencies": { "nopt": { "version": "3.0.4", @@ -1897,7 +1923,7 @@ }, "inherits": { "version": "2.0.1", - "from": "inherits@2.0.1", + "from": "inherits@2", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz" } } @@ -1991,9 +2017,9 @@ } }, "request": { - "version": "2.63.0", + "version": "2.64.0", "from": "request@2.x", - "resolved": "https://registry.npmjs.org/request/-/request-2.63.0.tgz", + "resolved": "https://registry.npmjs.org/request/-/request-2.64.0.tgz", "dependencies": { "bl": { "version": "1.0.0", @@ -2099,9 +2125,9 @@ "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.4.1.tgz" }, "tough-cookie": { - "version": "2.0.0", + "version": "2.1.0", "from": "tough-cookie@>=0.12.0", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.0.0.tgz" + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.1.0.tgz" }, "http-signature": { "version": "0.11.0", @@ -2190,9 +2216,9 @@ "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-1.8.0.tgz", "dependencies": { "bluebird": { - "version": "2.10.1", + "version": "2.10.2", "from": "bluebird@^2.9.30", - "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-2.10.1.tgz" + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-2.10.2.tgz" }, "chalk": { "version": "1.1.1", @@ -2319,7 +2345,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" } } @@ -2407,7 +2433,7 @@ }, "inherits": { "version": "2.0.1", - "from": "inherits@2", + "from": "inherits@~2.0.1", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz" } } @@ -2459,9 +2485,9 @@ } }, "rc": { - "version": "1.1.1", + "version": "1.1.2", "from": "rc@~1.1.0", - "resolved": "https://registry.npmjs.org/rc/-/rc-1.1.1.tgz", + "resolved": "https://registry.npmjs.org/rc/-/rc-1.1.2.tgz", "dependencies": { "minimist": { "version": "1.2.0", @@ -2491,9 +2517,9 @@ "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.4.3.tgz", "dependencies": { "glob": { - "version": "5.0.14", + "version": "5.0.15", "from": "glob@^5.0.14", - "resolved": "https://registry.npmjs.org/glob/-/glob-5.0.14.tgz", + "resolved": "https://registry.npmjs.org/glob/-/glob-5.0.15.tgz", "dependencies": { "inflight": { "version": "1.0.4", @@ -2509,18 +2535,18 @@ }, "inherits": { "version": "2.0.1", - "from": "inherits@2", + "from": "inherits@~2.0.1", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz" }, "minimatch": { - "version": "2.0.10", - "from": "minimatch@^2.0.1", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-2.0.10.tgz", + "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.0", + "version": "1.1.1", "from": "brace-expansion@^1.0.0", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.0.tgz", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.1.tgz", "dependencies": { "balanced-match": { "version": "0.2.0", diff --git a/client/package.json b/client/package.json index 95ad17cc..5ce26d67 100644 --- a/client/package.json +++ b/client/package.json @@ -48,7 +48,7 @@ "loader-utils": "^0.2.11", "marked": "^0.3.5", "react": "^0.13.3", - "react-bootstrap": "^0.25.1", + "react-bootstrap": "^0.26.4", "react-redux": "^2.1.1", "redux": "^2.0.0", "redux-promise": "^0.5.0", From 2be3ada553ef7f76b8a26a4ed78c15b0ff47f807 Mon Sep 17 00:00:00 2001 From: dylangrafmyre Date: Thu, 8 Oct 2015 06:53:41 -1000 Subject: [PATCH 111/514] Add capybara-screenshoot custom driver for screenshot rendering --- spec/rails_helper.rb | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/spec/rails_helper.rb b/spec/rails_helper.rb index 905176ee..00c2407a 100644 --- a/spec/rails_helper.rb +++ b/spec/rails_helper.rb @@ -56,11 +56,19 @@ Capybara::Selenium::Driver.new(app, browser: :chrome) end Capybara.javascript_driver = :selenium_chrome + + Capybara::Screenshot.register_driver(:selenium_chrome) do |driver, path| + driver.browser.save_screenshot(path) + end else 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 |driver, path| + driver.browser.save_screenshot(path) + end end puts "Capybara using driver: #{Capybara.javascript_driver}" From f597629e30cc9e31132685ff7b7b92db53e299e2 Mon Sep 17 00:00:00 2001 From: dylangrafmyre Date: Thu, 8 Oct 2015 07:05:59 -1000 Subject: [PATCH 112/514] Add capybara default_wait_time --- spec/rails_helper.rb | 1 + 1 file changed, 1 insertion(+) diff --git a/spec/rails_helper.rb b/spec/rails_helper.rb index 00c2407a..6cfd5e36 100644 --- a/spec/rails_helper.rb +++ b/spec/rails_helper.rb @@ -71,6 +71,7 @@ end end + Capybara.default_wait_time = 15 puts "Capybara using driver: #{Capybara.javascript_driver}" Capybara::Screenshot.prune_strategy = { keep: 10 } From 47896787c9f852541a82bdbc564e0018388bb293 Mon Sep 17 00:00:00 2001 From: Justin Gordon Date: Thu, 8 Oct 2015 11:10:42 -0700 Subject: [PATCH 113/514] Update all dependencies Note, had some issues with react-dom and history. Maybe these are not needed. We have a few deprecations to fix with React 0.14 --- client/npm-shrinkwrap.json | 229 ++++++++++++++++++++++++------------- client/package.json | 42 +++---- 2 files changed, 172 insertions(+), 99 deletions(-) diff --git a/client/npm-shrinkwrap.json b/client/npm-shrinkwrap.json index 6447da24..e1b76787 100644 --- a/client/npm-shrinkwrap.json +++ b/client/npm-shrinkwrap.json @@ -3,20 +3,13 @@ "version": "1.1.0", "dependencies": { "axios": { - "version": "0.5.4", - "from": "axios@>=0.5.4 <0.6.0", - "resolved": "https://registry.npmjs.org/axios/-/axios-0.5.4.tgz", - "dependencies": { - "es6-promise": { - "version": "2.3.0", - "from": "es6-promise@>=2.0.1 <3.0.0", - "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-2.3.0.tgz" - } - } + "version": "0.7.0", + "from": "axios@>=0.7.0 <0.8.0", + "resolved": "https://registry.npmjs.org/axios/-/axios-0.7.0.tgz" }, "babel-core": { "version": "5.8.25", - "from": "babel-core@>=5.8.23 <6.0.0", + "from": "babel-core@>=5.8.25 <6.0.0", "resolved": "https://registry.npmjs.org/babel-core/-/babel-core-5.8.25.tgz", "dependencies": { "babel-plugin-constant-folding": { @@ -674,7 +667,7 @@ }, "body-parser": { "version": "1.14.1", - "from": "body-parser@>=1.13.3 <2.0.0", + "from": "body-parser@>=1.14.1 <2.0.0", "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.14.1.tgz", "dependencies": { "bytes": { @@ -783,7 +776,7 @@ }, "es5-shim": { "version": "4.1.14", - "from": "es5-shim@>=4.1.12 <5.0.0", + "from": "es5-shim@>=4.1.14 <5.0.0", "resolved": "https://registry.npmjs.org/es5-shim/-/es5-shim-4.1.14.tgz" }, "es6-promise": { @@ -796,6 +789,61 @@ "from": "expose-loader@>=0.7.0 <0.8.0", "resolved": "https://registry.npmjs.org/expose-loader/-/expose-loader-0.7.0.tgz" }, + "history": { + "version": "1.12.3", + "from": "history@>=1.12.2 <2.0.0", + "resolved": "https://registry.npmjs.org/history/-/history-1.12.3.tgz", + "dependencies": { + "deep-equal": { + "version": "1.0.1", + "from": "deep-equal@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.0.1.tgz" + }, + "invariant": { + "version": "2.1.1", + "from": "invariant@>=2.0.0 <3.0.0", + "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.1.1.tgz", + "dependencies": { + "loose-envify": { + "version": "1.0.0", + "from": "loose-envify@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.0.0.tgz", + "dependencies": { + "js-tokens": { + "version": "1.0.1", + "from": "js-tokens@>=1.0.1 <2.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-1.0.1.tgz" + } + } + } + } + }, + "qs": { + "version": "4.0.0", + "from": "qs@>=4.0.0 <5.0.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-4.0.0.tgz" + }, + "warning": { + "version": "2.1.0", + "from": "warning@>=2.0.0 <3.0.0", + "resolved": "https://registry.npmjs.org/warning/-/warning-2.1.0.tgz", + "dependencies": { + "loose-envify": { + "version": "1.0.0", + "from": "loose-envify@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.0.0.tgz", + "dependencies": { + "js-tokens": { + "version": "1.0.1", + "from": "js-tokens@>=1.0.1 <2.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-1.0.1.tgz" + } + } + } + } + } + } + }, "immutable": { "version": "3.7.5", "from": "immutable@>=3.7.5 <4.0.0", @@ -853,9 +901,9 @@ "resolved": "https://registry.npmjs.org/marked/-/marked-0.3.5.tgz" }, "react": { - "version": "0.13.3", - "from": "react@>=0.13.3 <0.14.0", - "resolved": "https://registry.npmjs.org/react/-/react-0.13.3.tgz", + "version": "0.14.0", + "from": "react@>=0.14.0 <0.15.0", + "resolved": "https://registry.npmjs.org/react/-/react-0.14.0.tgz", "dependencies": { "envify": { "version": "3.4.0", @@ -897,13 +945,47 @@ } } } + }, + "fbjs": { + "version": "0.3.1", + "from": "fbjs@>=0.3.1 <0.4.0", + "resolved": "https://registry.npmjs.org/fbjs/-/fbjs-0.3.1.tgz", + "dependencies": { + "core-js": { + "version": "1.2.1", + "from": "core-js@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-1.2.1.tgz" + }, + "promise": { + "version": "7.0.4", + "from": "promise@>=7.0.3 <8.0.0", + "resolved": "https://registry.npmjs.org/promise/-/promise-7.0.4.tgz", + "dependencies": { + "asap": { + "version": "2.0.3", + "from": "asap@>=2.0.3 <2.1.0", + "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.3.tgz" + } + } + }, + "ua-parser-js": { + "version": "0.7.9", + "from": "ua-parser-js@>=0.7.9 <0.8.0", + "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.9.tgz" + }, + "whatwg-fetch": { + "version": "0.9.0", + "from": "whatwg-fetch@>=0.9.0 <0.10.0", + "resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-0.9.0.tgz" + } + } } } }, "react-bootstrap": { - "version": "0.26.4", - "from": "react-bootstrap@>=0.26.4 <0.27.0", - "resolved": "https://registry.npmjs.org/react-bootstrap/-/react-bootstrap-0.26.4.tgz", + "version": "0.27.1", + "from": "react-bootstrap@>=0.27.0 <0.28.0", + "resolved": "https://registry.npmjs.org/react-bootstrap/-/react-bootstrap-0.27.1.tgz", "dependencies": { "babel-runtime": { "version": "5.8.25", @@ -938,59 +1020,14 @@ "resolved": "https://registry.npmjs.org/lodash-compat/-/lodash-compat-3.10.1.tgz" }, "react-overlays": { - "version": "0.4.4", - "from": "react-overlays@>=0.4.4 <0.5.0", - "resolved": "https://registry.npmjs.org/react-overlays/-/react-overlays-0.4.4.tgz", + "version": "0.5.0", + "from": "react-overlays@>=0.5.0 <0.6.0", + "resolved": "https://registry.npmjs.org/react-overlays/-/react-overlays-0.5.0.tgz", "dependencies": { "react-prop-types": { "version": "0.2.2", "from": "react-prop-types@>=0.2.1 <0.3.0", "resolved": "https://registry.npmjs.org/react-prop-types/-/react-prop-types-0.2.2.tgz" - }, - "warning": { - "version": "2.1.0", - "from": "warning@>=2.0.0 <3.0.0", - "resolved": "https://registry.npmjs.org/warning/-/warning-2.1.0.tgz", - "dependencies": { - "loose-envify": { - "version": "1.0.0", - "from": "loose-envify@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.0.0.tgz", - "dependencies": { - "js-tokens": { - "version": "1.0.1", - "from": "js-tokens@>=1.0.1 <2.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-1.0.1.tgz" - } - } - } - } - } - } - }, - "react-prop-types": { - "version": "0.3.0", - "from": "react-prop-types@>=0.3.0 <0.4.0", - "resolved": "https://registry.npmjs.org/react-prop-types/-/react-prop-types-0.3.0.tgz", - "dependencies": { - "warning": { - "version": "2.1.0", - "from": "warning@>=2.0.0 <3.0.0", - "resolved": "https://registry.npmjs.org/warning/-/warning-2.1.0.tgz", - "dependencies": { - "loose-envify": { - "version": "1.0.0", - "from": "loose-envify@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.0.0.tgz", - "dependencies": { - "js-tokens": { - "version": "1.0.1", - "from": "js-tokens@>=1.0.1 <2.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-1.0.1.tgz" - } - } - } - } } } }, @@ -1019,14 +1056,48 @@ } } } + }, + "react-prop-types": { + "version": "0.3.0", + "from": "react-prop-types@>=0.3.0 <0.4.0", + "resolved": "https://registry.npmjs.org/react-prop-types/-/react-prop-types-0.3.0.tgz" + }, + "warning": { + "version": "2.1.0", + "from": "warning@>=2.0.0 <3.0.0", + "resolved": "https://registry.npmjs.org/warning/-/warning-2.1.0.tgz", + "dependencies": { + "loose-envify": { + "version": "1.0.0", + "from": "loose-envify@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.0.0.tgz", + "dependencies": { + "js-tokens": { + "version": "1.0.1", + "from": "js-tokens@>=1.0.1 <2.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-1.0.1.tgz" + } + } + } + } } } }, + "react-dom": { + "version": "0.14.0", + "from": "react-dom@>=0.14.0 <0.15.0", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-0.14.0.tgz" + }, "react-redux": { - "version": "2.1.2", - "from": "react-redux@>=2.1.1 <3.0.0", - "resolved": "https://registry.npmjs.org/react-redux/-/react-redux-2.1.2.tgz", + "version": "3.1.0", + "from": "react-redux@>=3.1.0 <4.0.0", + "resolved": "https://registry.npmjs.org/react-redux/-/react-redux-3.1.0.tgz", "dependencies": { + "hoist-non-react-statics": { + "version": "1.0.3", + "from": "hoist-non-react-statics@>=1.0.3 <2.0.0", + "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-1.0.3.tgz" + }, "invariant": { "version": "2.1.1", "from": "invariant@>=2.0.0 <3.0.0", @@ -1049,9 +1120,9 @@ } }, "redux": { - "version": "2.0.0", - "from": "redux@>=2.0.0 <3.0.0", - "resolved": "https://registry.npmjs.org/redux/-/redux-2.0.0.tgz" + "version": "3.0.2", + "from": "redux@>=3.0.2 <4.0.0", + "resolved": "https://registry.npmjs.org/redux/-/redux-3.0.2.tgz" }, "redux-promise": { "version": "0.5.0", @@ -1097,9 +1168,9 @@ } }, "redux-thunk": { - "version": "0.1.0", - "from": "redux-thunk@>=0.1.0 <0.2.0", - "resolved": "https://registry.npmjs.org/redux-thunk/-/redux-thunk-0.1.0.tgz" + "version": "1.0.0", + "from": "redux-thunk@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/redux-thunk/-/redux-thunk-1.0.0.tgz" }, "sleep": { "version": "3.0.0", @@ -1115,7 +1186,7 @@ }, "webpack": { "version": "1.12.2", - "from": "webpack@>=1.12.1 <2.0.0", + "from": "webpack@>=1.12.2 <2.0.0", "resolved": "https://registry.npmjs.org/webpack/-/webpack-1.12.2.tgz", "dependencies": { "async": { @@ -1135,7 +1206,7 @@ "dependencies": { "graceful-fs": { "version": "3.0.8", - "from": "graceful-fs@>=3.0.2 <4.0.0", + "from": "graceful-fs@>=3.0.5 <4.0.0", "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-3.0.8.tgz" } } @@ -2591,7 +2662,7 @@ }, "graceful-fs": { "version": "3.0.8", - "from": "graceful-fs@>=3.0.2 <4.0.0", + "from": "graceful-fs@>=3.0.5 <4.0.0", "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-3.0.8.tgz" } } diff --git a/client/package.json b/client/package.json index 5ce26d67..fb0fb8fd 100644 --- a/client/package.json +++ b/client/package.json @@ -34,47 +34,49 @@ "jscs": "jscs --verbose ." }, "dependencies": { - "axios": "^0.5.4", - "babel-core": "^5.8.23", + "axios": "^0.7.0", + "babel-core": "^5.8.25", "babel-loader": "^5.3.2", - "body-parser": "^1.13.3", - "es5-shim": "^4.1.12", + "body-parser": "^1.14.1", + "es5-shim": "^4.1.14", "es6-promise": "^3.0.2", "expose-loader": "^0.7.0", + "history": "^1.12.2", "immutable": "^3.7.5", "imports-loader": "^0.6.4", "jquery": "^2.1.4", "jquery-ujs": "^1.1.0-1", "loader-utils": "^0.2.11", "marked": "^0.3.5", - "react": "^0.13.3", - "react-bootstrap": "^0.26.4", - "react-redux": "^2.1.1", - "redux": "^2.0.0", + "react": "^0.14.0", + "react-bootstrap": "^0.27.0", + "react-dom": "^0.14.0", + "react-redux": "^3.1.0", + "redux": "^3.0.2", "redux-promise": "^0.5.0", - "redux-thunk": "^0.1.0", + "redux-thunk": "^1.0.0", "sleep": "^3.0.0", - "webpack": "^1.12.1" + "webpack": "^1.12.2" }, "devDependencies": { - "babel-eslint": "^4.1.1", + "babel-eslint": "^4.1.3", "babel-plugin-react-transform": "^1.1.1", "bootstrap-sass": "^3.3.5", "bootstrap-sass-loader": "^1.0.9", - "css-loader": "^0.17.0", - "eslint": "^1.3.1", - "eslint-config-airbnb": "0.0.8", - "eslint-plugin-react": "^3.3.1", + "css-loader": "^0.19.0", + "eslint": "^1.6.0", + "eslint-config-airbnb": "0.1.0", + "eslint-plugin-react": "^3.5.1", "esprima-fb": "^15001.1001.0-dev-harmony-fb", "express": "^4.13.3", "file-loader": "^0.8.4", "jade": "^1.11.0", - "jscs": "^2.1.1", - "node-sass": "^3.3.2", + "jscs": "^2.3.0", + "node-sass": "^3.3.3", "react-transform-hmr": "^1.0.1", - "sass-loader": "^2.0.1", - "style-loader": "^0.12.3", + "sass-loader": "^3.0.0", + "style-loader": "^0.12.4", "url-loader": "^0.5.6", - "webpack-dev-server": "^1.10.1" + "webpack-dev-server": "^1.12.0" } } From 3c1374dfabb073f5274bad720bb13108ea8813b2 Mon Sep 17 00:00:00 2001 From: Justin Gordon Date: Thu, 8 Oct 2015 11:24:29 -0700 Subject: [PATCH 114/514] Remove history We need to run `npm prune` before running `npm shrinkwrap` --- client/npm-shrinkwrap.json | 55 -------------------------------------- client/package.json | 1 - 2 files changed, 56 deletions(-) diff --git a/client/npm-shrinkwrap.json b/client/npm-shrinkwrap.json index e1b76787..10810e90 100644 --- a/client/npm-shrinkwrap.json +++ b/client/npm-shrinkwrap.json @@ -789,61 +789,6 @@ "from": "expose-loader@>=0.7.0 <0.8.0", "resolved": "https://registry.npmjs.org/expose-loader/-/expose-loader-0.7.0.tgz" }, - "history": { - "version": "1.12.3", - "from": "history@>=1.12.2 <2.0.0", - "resolved": "https://registry.npmjs.org/history/-/history-1.12.3.tgz", - "dependencies": { - "deep-equal": { - "version": "1.0.1", - "from": "deep-equal@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.0.1.tgz" - }, - "invariant": { - "version": "2.1.1", - "from": "invariant@>=2.0.0 <3.0.0", - "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.1.1.tgz", - "dependencies": { - "loose-envify": { - "version": "1.0.0", - "from": "loose-envify@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.0.0.tgz", - "dependencies": { - "js-tokens": { - "version": "1.0.1", - "from": "js-tokens@>=1.0.1 <2.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-1.0.1.tgz" - } - } - } - } - }, - "qs": { - "version": "4.0.0", - "from": "qs@>=4.0.0 <5.0.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-4.0.0.tgz" - }, - "warning": { - "version": "2.1.0", - "from": "warning@>=2.0.0 <3.0.0", - "resolved": "https://registry.npmjs.org/warning/-/warning-2.1.0.tgz", - "dependencies": { - "loose-envify": { - "version": "1.0.0", - "from": "loose-envify@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.0.0.tgz", - "dependencies": { - "js-tokens": { - "version": "1.0.1", - "from": "js-tokens@>=1.0.1 <2.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-1.0.1.tgz" - } - } - } - } - } - } - }, "immutable": { "version": "3.7.5", "from": "immutable@>=3.7.5 <4.0.0", diff --git a/client/package.json b/client/package.json index fb0fb8fd..bb53f233 100644 --- a/client/package.json +++ b/client/package.json @@ -41,7 +41,6 @@ "es5-shim": "^4.1.14", "es6-promise": "^3.0.2", "expose-loader": "^0.7.0", - "history": "^1.12.2", "immutable": "^3.7.5", "imports-loader": "^0.6.4", "jquery": "^2.1.4", From 1ad345f4f4840a7ce021b5183a431801e52709ba Mon Sep 17 00:00:00 2001 From: dylangrafmyre Date: Thu, 8 Oct 2015 08:44:50 -1000 Subject: [PATCH 115/514] Address linting offenses rails_helper.rb and utils/commentsManager.js add linting exception for eslint id-length --- client/.eslintrc | 1 + client/server.js | 2 +- spec/rails_helper.rb | 8 ++++---- 3 files changed, 6 insertions(+), 5 deletions(-) diff --git a/client/.eslintrc b/client/.eslintrc index e9fe0cf1..881f4097 100644 --- a/client/.eslintrc +++ b/client/.eslintrc @@ -14,3 +14,4 @@ rules: indent: [1, 2, { SwitchCase: 1, VariableDeclarator: 2 }] react/sort-comp: 0 react/jsx-quotes: 1 + id-length: [2, {"exceptions": ["e", "i"]}] diff --git a/client/server.js b/client/server.js index e4908f40..d768cfa1 100644 --- a/client/server.js +++ b/client/server.js @@ -7,7 +7,7 @@ var sleep = require('sleep'); var config = require('./webpack.client.hot.config'); var comments = [ - { author: 'Pete Hunt', text: 'Hey there!' }, + { author: 'Pete Hunt', text: 'Hey there!' }, { author: 'Justin Gordon', text: 'Aloha from @railsonmaui' }, ]; diff --git a/spec/rails_helper.rb b/spec/rails_helper.rb index 6cfd5e36..ce885797 100644 --- a/spec/rails_helper.rb +++ b/spec/rails_helper.rb @@ -57,8 +57,8 @@ end Capybara.javascript_driver = :selenium_chrome - Capybara::Screenshot.register_driver(:selenium_chrome) do |driver, path| - driver.browser.save_screenshot(path) + Capybara::Screenshot.register_driver(:selenium_chrome) do |js_driver, path| + js_driver.browser.save_screenshot(path) end else Capybara.register_driver :selenium_firefox do |app| @@ -66,8 +66,8 @@ end Capybara.javascript_driver = :selenium_firefox - Capybara::Screenshot.register_driver(:selenium_firefox) do |driver, path| - driver.browser.save_screenshot(path) + Capybara::Screenshot.register_driver(:selenium_firefox) do |js_driver, path| + js_driver.browser.save_screenshot(path) end end From 9344a31247cc9d64af5f46f32cf476666cc19dc2 Mon Sep 17 00:00:00 2001 From: Josias Schneider Date: Thu, 8 Oct 2015 16:41:49 -0300 Subject: [PATCH 116/514] Fix warnings of upgrading to React 0.14 --- client/app/components/CommentForm.jsx | 7 +++++-- client/app/components/CommentList.jsx | 6 +++++- client/app/startup/ClientApp.jsx | 2 +- client/app/startup/ServerApp.jsx | 2 +- 4 files changed, 12 insertions(+), 5 deletions(-) diff --git a/client/app/components/CommentForm.jsx b/client/app/components/CommentForm.jsx index c9b3c5df..a0cffbd8 100644 --- a/client/app/components/CommentForm.jsx +++ b/client/app/components/CommentForm.jsx @@ -225,8 +225,11 @@ const CommentForm = React.createClass({ } return (
    - - + {this.errorWarning()} diff --git a/client/app/components/CommentList.jsx b/client/app/components/CommentList.jsx index 0f95a4e4..1d2f06ff 100644 --- a/client/app/components/CommentList.jsx +++ b/client/app/components/CommentList.jsx @@ -41,7 +41,11 @@ const CommentList = React.createClass({ return (
    - + {this.errorWarning()}
    diff --git a/client/app/startup/ClientApp.jsx b/client/app/startup/ClientApp.jsx index dbdc2f93..b8035b7d 100644 --- a/client/app/startup/ClientApp.jsx +++ b/client/app/startup/ClientApp.jsx @@ -8,7 +8,7 @@ const App = props => { const store = createStore(props); const reactComponent = ( - {() => } + ); return reactComponent; diff --git a/client/app/startup/ServerApp.jsx b/client/app/startup/ServerApp.jsx index 69827722..6786a0be 100644 --- a/client/app/startup/ServerApp.jsx +++ b/client/app/startup/ServerApp.jsx @@ -8,7 +8,7 @@ const App = props => { const store = createStore(props); const reactComponent = ( - {() => } + ); return reactComponent; From bc2199c3a6f3e574d67ef3e8f748a29aaa9ac952 Mon Sep 17 00:00:00 2001 From: Josias Schneider Date: Thu, 8 Oct 2015 17:07:14 -0300 Subject: [PATCH 117/514] Render App component with ReactDOM --- client/index.jade | 2 +- client/webpack.client.base.config.js | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/client/index.jade b/client/index.jade index 859a0382..359cff58 100644 --- a/client/index.jade +++ b/client/index.jade @@ -11,4 +11,4 @@ html script(src="vendor-bundle.js") script(src="app-bundle.js") script. - React.render(App(!{props}), document.getElementById('app')); + ReactDOM.render(App(!{props}), document.getElementById('app')); diff --git a/client/webpack.client.base.config.js b/client/webpack.client.base.config.js index c664fa48..6b8adfee 100644 --- a/client/webpack.client.base.config.js +++ b/client/webpack.client.base.config.js @@ -29,6 +29,7 @@ module.exports = { // React is necessary for the client rendering: {test: require.resolve('react'), loader: 'expose?React'}, + {test: require.resolve('react-dom'), loader: 'expose?ReactDOM'}, {test: require.resolve('jquery'), loader: 'expose?jQuery'}, {test: require.resolve('jquery'), loader: 'expose?$'}, ], From 80854d66a3fcd7ce1d549b23590cf9897eb20c11 Mon Sep 17 00:00:00 2001 From: Justin Gordon Date: Thu, 8 Oct 2015 15:42:13 -0700 Subject: [PATCH 118/514] Update README.md --- client/README.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/client/README.md b/client/README.md index 57067853..e350c8a3 100644 --- a/client/README.md +++ b/client/README.md @@ -36,6 +36,7 @@ cd client rm npm-shrinkwrap.json npm-check-updates -u npm install +npm prune npm shrinkwrap ``` @@ -43,6 +44,9 @@ Then confirm that the hot reload server and the rails server both work fine. You may have to delete `node_modules` and `npm-shrinkwrap.json` and then run `npm shrinkwrap`. +Note: `npm prune` is required before running `npm shrinkwrap` to remove dependencies that are no longer needed after doing updates. + + Adding Node Modules ===================================== Suppose you want to add a dependency to "module_name".... From 24896525f826bcd16d2b6866a1252cc9e8e93cd4 Mon Sep 17 00:00:00 2001 From: Justin Gordon Date: Sat, 10 Oct 2015 16:43:53 -0700 Subject: [PATCH 119/514] Update README.md --- client/README.md | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/client/README.md b/client/README.md index e350c8a3..64dabdac 100644 --- a/client/README.md +++ b/client/README.md @@ -1,5 +1,15 @@ Please see parent directory README.md. +Classes and React +========================= +As of October, 2015, we're still using React.createClass(), rather than extending React.Component. + +* [React.createClass Api](https://facebook.github.io/react/docs/top-level-api.html#react.createclass) +* [React ES6 Classes](https://facebook.github.io/react/docs/reusable-components.html#es6-classes) +* [How to Use Classes and Sleep at Night, Dan Abramov](https://medium.com/@dan_abramov/how-to-use-classes-and-sleep-at-night-9af8de78ccb4) + +We may change this in the near future. + ESLint ========================== The `.eslintrc` file is based on the AirBnb [eslintrc](https://github.com/airbnb/javascript/blob/master/linters/.eslintrc). From c49accdf061e084c2e7441b1f7c695342deec908 Mon Sep 17 00:00:00 2001 From: Justin Gordon Date: Sat, 10 Oct 2015 16:46:17 -0700 Subject: [PATCH 120/514] Update README.md --- README.md | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index b8523df8..d17e54a8 100644 --- a/README.md +++ b/README.md @@ -2,9 +2,8 @@ [![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) -# React, Redux, React-Bootstrap, and ES-7 on Rails via WebPack and the react_on_rails gem - -## Now with Redux and ES7! Servering Rendering ASAP (Shaka Code's react_on_rails gem)! +# React, Redux, React-Bootstrap, ES7, Webpack Rails +## Servering Rendering via the react_on_rails gem By Justin Gordon and the Shaka Code Team, http://www.railsonmaui.com From 1dd2aa42cc49d5168dbc66aec316e657456fad56 Mon Sep 17 00:00:00 2001 From: Roger Studner Date: Sat, 10 Oct 2015 19:55:44 -0400 Subject: [PATCH 121/514] We need this as well for proper 0.14 server support. --- client/webpack.server.rails.config.js | 1 + 1 file changed, 1 insertion(+) diff --git a/client/webpack.server.rails.config.js b/client/webpack.server.rails.config.js index 5d23c808..d78856b8 100644 --- a/client/webpack.server.rails.config.js +++ b/client/webpack.server.rails.config.js @@ -27,6 +27,7 @@ module.exports = { // React is necessary for the client rendering: {test: require.resolve('react'), loader: 'expose?React'}, + {test: require.resolve('react-dom/server'), loader: 'expose?ReactDOMServer'}, ], }, }; From 73782e32265c73a154c73c6be76aa25d5ca2f89b Mon Sep 17 00:00:00 2001 From: Justin Gordon Date: Sun, 11 Oct 2015 15:15:04 -0700 Subject: [PATCH 122/514] Update README.md --- client/README.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/client/README.md b/client/README.md index 64dabdac..10b5460f 100644 --- a/client/README.md +++ b/client/README.md @@ -39,9 +39,10 @@ Updating Node Dependencies npm install -g npm-check-updates ``` - +Then run this to update the dependencies (starting at the top level). + ``` -# Make sure you are in the `client` directory, then run: +# Make sure you are in the top directory, then run: cd client rm npm-shrinkwrap.json npm-check-updates -u From 162eae7c05d38dc3cb2c76f7d5d5973f37f588bb Mon Sep 17 00:00:00 2001 From: dylangrafmyre Date: Mon, 12 Oct 2015 20:53:55 -1000 Subject: [PATCH 123/514] Bump react_on_rails gem to 1.0.0.pre --- Gemfile | 2 +- Gemfile.lock | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Gemfile b/Gemfile index 767645be..95c2f8cb 100644 --- a/Gemfile +++ b/Gemfile @@ -39,7 +39,7 @@ gem "rails-html-sanitizer" # Use Unicorn as the app server gem "unicorn" -gem "react_on_rails", "~> 0.1.8" +gem "react_on_rails", "~> 1.0.0.pre" gem "therubyracer" gem "autoprefixer-rails" diff --git a/Gemfile.lock b/Gemfile.lock index acaf810f..1f790b1c 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -207,7 +207,7 @@ GEM raindrops (0.15.0) rake (10.4.2) rdoc (4.2.0) - react_on_rails (0.1.8) + react_on_rails (1.0.0.pre) connection_pool execjs (~> 2.5) rails (>= 4.0) @@ -353,7 +353,7 @@ DEPENDENCIES rails-html-sanitizer rails_12factor rainbow - react_on_rails (~> 0.1.8) + react_on_rails (~> 1.0.0.pre) rspec-rails rubocop ruby-lint From d677265c6410fb481241c9cd114bf7dfff2dcef1 Mon Sep 17 00:00:00 2001 From: Josias Schneider Date: Tue, 13 Oct 2015 23:35:15 -0300 Subject: [PATCH 124/514] Add simple React comment form example MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This example shows how to create a comment form using only React, without any framework like Redux. On the top menu, a new link “Simple React” leads to “/simple” page. In this page, the react_on_rails gem renders the React component SimpleCommentScreen. This component is imported and exposed to the window object in the clientGlobals file. Simpler than CommentScreen (that uses Redux), the SimpleCommentScreen component handles all requests by itself: - fetchComments() gets data from ‘comments.json’ and passes it down to CommentList - handleCommentSubmit() posts the comment data from CommentForm and updates the state. Other components (CommentBox, CommentForm, CommentList) can be used in the same way as before. Extras: - MetaTagsManager now holds getCSRFToken() instead of CommentsManager - Active page is highlighted in the top menu. - Tests for “/simple” and “/comments” pages - Minor layout changes --- .gitignore | 3 + app/assets/javascripts/application.js | 5 + app/controllers/pages_controller.rb | 3 + app/views/comments/_form.html.erb | 6 +- app/views/comments/show.html.erb | 20 ++-- app/views/layouts/application.html.erb | 5 +- app/views/pages/index.html.erb | 2 +- app/views/pages/simple.html.erb | 9 ++ client/app/components/CommentBox.jsx | 4 +- client/app/components/CommentForm.jsx | 2 +- client/app/components/CommentList.jsx | 2 +- client/app/components/SimpleCommentScreen.jsx | 80 +++++++++++++ client/app/startup/clientGlobals.jsx | 2 + client/app/utils/commentsManager.js | 20 +--- client/app/utils/metaTagsManager.js | 21 ++++ config/routes.rb | 1 + spec/features/comments_spec.rb | 105 ++++++++++++++---- 17 files changed, 234 insertions(+), 56 deletions(-) create mode 100644 app/views/pages/simple.html.erb create mode 100644 client/app/components/SimpleCommentScreen.jsx create mode 100644 client/app/utils/metaTagsManager.js diff --git a/.gitignore b/.gitignore index f9252f3a..f8b52101 100644 --- a/.gitignore +++ b/.gitignore @@ -28,3 +28,6 @@ vendor/ruby # Generated js bundles /app/assets/javascripts/generated/* + +# Rubymine/IntelliJ +.idea diff --git a/app/assets/javascripts/application.js b/app/assets/javascripts/application.js index d309158b..fa8e53ef 100644 --- a/app/assets/javascripts/application.js +++ b/app/assets/javascripts/application.js @@ -20,3 +20,8 @@ //= require bootstrap-sprockets //= require turbolinks + +$(document).on('ready page:load', function () { + $('nav a').parents('li,ul').removeClass('active'); + $('nav a[href="' + this.location.pathname + '"]').parents('li,ul').addClass('active'); +}); diff --git a/app/controllers/pages_controller.rb b/app/controllers/pages_controller.rb index 6572c295..2d6b0e7b 100644 --- a/app/controllers/pages_controller.rb +++ b/app/controllers/pages_controller.rb @@ -21,4 +21,7 @@ def index # format.html # end end + + def simple + end end diff --git a/app/views/comments/_form.html.erb b/app/views/comments/_form.html.erb index a409cc3a..2c82f17c 100644 --- a/app/views/comments/_form.html.erb +++ b/app/views/comments/_form.html.erb @@ -12,14 +12,14 @@ <% end %>
    - <%= f.label :author %>
    + <%= f.label :author, 'Your Name' %>
    <%= f.text_field :author %>
    - <%= f.label :text %>
    + <%= f.label :text, 'Say something using markdown...' %>
    <%= f.text_area :text %>
    - <%= f.submit %> + <%= f.submit 'Post' %>
    <% end %> diff --git a/app/views/comments/show.html.erb b/app/views/comments/show.html.erb index e3fac596..64ddc735 100644 --- a/app/views/comments/show.html.erb +++ b/app/views/comments/show.html.erb @@ -1,14 +1,16 @@ -

    <%= notice %>

    +
    +

    <%= notice %>

    -

    - Author: - <%= @comment.author %> -

    +

    + Author: + <%= @comment.author %> +

    -

    - Text: - <%= @comment.text %> -

    +

    + Text: + <%= @comment.text %> +

    +
    <%= link_to 'Edit', edit_comment_path(@comment) %> | <%= link_to 'Back', comments_path %> diff --git a/app/views/layouts/application.html.erb b/app/views/layouts/application.html.erb index b47b9b94..d128d0b6 100644 --- a/app/views/layouts/application.html.erb +++ b/app/views/layouts/application.html.erb @@ -22,9 +22,10 @@

    Text take Github Flavored Markdown. Comments older than 24 hours are deleted. Name is preserved, Text is reset, between submits. diff --git a/client/app/components/CommentForm.jsx b/client/app/components/CommentForm.jsx index a0cffbd8..cbe5c755 100644 --- a/client/app/components/CommentForm.jsx +++ b/client/app/components/CommentForm.jsx @@ -202,7 +202,7 @@ const CommentForm = React.createClass({ if (!this.props.error) return undefined; return ( - Your comment was not saved! + Your comment was not saved! A server error prevented your comment from being saved. Please try again. ); diff --git a/client/app/components/CommentList.jsx b/client/app/components/CommentList.jsx index 1d2f06ff..b4321728 100644 --- a/client/app/components/CommentList.jsx +++ b/client/app/components/CommentList.jsx @@ -18,7 +18,7 @@ const CommentList = React.createClass({ if (!this.props.error) return undefined; return ( - Comments could not be retrieved. + Comments could not be retrieved. A server error prevented loading comments. Please try again. ); diff --git a/client/app/components/SimpleCommentScreen.jsx b/client/app/components/SimpleCommentScreen.jsx new file mode 100644 index 00000000..00e90233 --- /dev/null +++ b/client/app/components/SimpleCommentScreen.jsx @@ -0,0 +1,80 @@ +import React from 'react'; +import Immutable from 'immutable'; +import request from 'axios'; +import CommentForm from './CommentForm'; +import CommentList from './CommentList'; +import metaTagsManager from '../utils/metaTagsManager'; + +const SimpleCommentScreen = React.createClass({ + displayName: 'SimpleCommentScreen', + + getInitialState() { + return { + $$comments: Immutable.fromJS([]), + ajaxSending: false, + fetchCommentsError: null, + submitCommentError: null, + }; + }, + + componentDidMount() { + this.fetchComments(); + }, + + fetchComments() { + return request.get('comments.json', { responseType: 'json' }) + .then(res => this.setState({ $$comments: Immutable.fromJS(res.data) })) + .catch(error => this.setState({ fetchCommentsError: error })); + }, + + handleCommentSubmit(comment) { + this.setState({ ajaxSending: true }); + + const requestConfig = { + responseType: 'json', + headers: { + 'X-CSRF-Token': metaTagsManager.getCSRFToken(), + }, + }; + + return request.post('comments.json', { comment }, requestConfig) + .then(() => { + const { $$comments } = this.state; + const $$comment = Immutable.fromJS(comment); + + this.setState({ + $$comments: $$comments.push($$comment), + ajaxSending: false, + }); + }) + .catch(error => { + this.setState({ + submitCommentError: error, + ajaxSending: false, + }); + }); + }, + + render() { + return ( +

    +

    Comments

    +

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

    + + +
    + ); + }, +}); + +export default SimpleCommentScreen; diff --git a/client/app/startup/clientGlobals.jsx b/client/app/startup/clientGlobals.jsx index 9d20ad38..f8de20c6 100644 --- a/client/app/startup/clientGlobals.jsx +++ b/client/app/startup/clientGlobals.jsx @@ -1,3 +1,5 @@ import App from './ClientApp'; +import SimpleCommentScreen from '../components/SimpleCommentScreen'; window.App = App; +window.SimpleCommentScreen = SimpleCommentScreen; diff --git a/client/app/utils/commentsManager.js b/client/app/utils/commentsManager.js index 6698ace2..41f7c8a1 100644 --- a/client/app/utils/commentsManager.js +++ b/client/app/utils/commentsManager.js @@ -1,4 +1,5 @@ import request from 'axios'; +import metaTagsManager from './metaTagsManager'; const API_URL = 'comments.json'; @@ -29,29 +30,12 @@ const CommentsManager = { url: API_URL, responseType: 'json', headers: { - 'X-CSRF-Token': this.getCSRFToken(), + 'X-CSRF-Token': metaTagsManager.getCSRFToken(), }, data: { comment }, }); }, - /** - * Get CSRF Token from the DOM. - * - * @returns {String} - CSRF Token. - */ - getCSRFToken() { - const metas = document.getElementsByTagName('meta'); - for (let i = 0; i < metas.length; i++) { - const meta = metas[i]; - if (meta.getAttribute('name') === 'csrf-token') { - return meta.getAttribute('content'); - } - } - - return null; - }, - }; export default CommentsManager; diff --git a/client/app/utils/metaTagsManager.js b/client/app/utils/metaTagsManager.js new file mode 100644 index 00000000..c93f696d --- /dev/null +++ b/client/app/utils/metaTagsManager.js @@ -0,0 +1,21 @@ +const MetaTagsManager = { + + /** + * Get CSRF Token from the DOM. + * + * @returns {String} - CSRF Token. + */ + getCSRFToken() { + const metas = document.getElementsByTagName('meta'); + for (let i = 0; i < metas.length; i++) { + const meta = metas[i]; + if (meta.getAttribute('name') === 'csrf-token') { + return meta.getAttribute('content'); + } + } + + return null; + }, +}; + +export default MetaTagsManager; diff --git a/config/routes.rb b/config/routes.rb index 699c245f..8079f459 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -1,5 +1,6 @@ Rails.application.routes.draw do root "pages#index" + get "simple", to: "pages#simple" resources :comments end diff --git a/spec/features/comments_spec.rb b/spec/features/comments_spec.rb index 5bad9363..c506dd55 100644 --- a/spec/features/comments_spec.rb +++ b/spec/features/comments_spec.rb @@ -18,47 +18,114 @@ include_context "Form Submitted" scenario "submits form", js: true do - expect(page).to have_css(".commentList .comment", text: name) - expect(page).to have_css(".commentList .comment", text: text) + expect(page).to have_css(".comment", text: name) + expect(page).to have_css(".comment", text: text) end end -feature "Add new comment" do +shared_context "Horizontal Form" do background do - visit root_path + click_link "Horizontal Form" end - context "Horizonal Form" do - background do - click_link "Horizontal Form" + it_behaves_like "Comments Form" + + context "iframe text" do + let(:iframe_text) { "" } + + include_context "Form Submitted", text: :iframe_text + + scenario "doesn't add an iframe", js: true do + expect(page).not_to have_css("iframe") end + end - it_behaves_like "Comments Form" + context "blank fields" do + before { @comments_count = all(".comment").size } + include_context "Form Submitted", name: "", text: "" + + scenario "doesn't add a blank comment", js: true do + expect(page).to have_selector(".comment", count: @comments_count) + end + end +end + +shared_context "Inline Form" do + background do + click_link "Inline Form" + end + + it_behaves_like "Comments Form" +end + +shared_context "Stacked Form" do + background do + click_link "Stacked Form" + end + + it_behaves_like "Comments Form" +end - context "iframe text" do - let(:iframe_text) { "" } +feature "Add new comment" do + context "from the main page" do + background do + visit root_path + end - include_context "Form Submitted", text: :iframe_text + include_context "Horizontal Form" + include_context "Inline Form" + include_context "Stacked Form" + end - scenario "doesn't add an iframe", js: true do - expect(page).not_to have_css("iframe") - end + context "from the simple page" do + background do + visit simple_path end + + include_context "Horizontal Form" + include_context "Inline Form" + include_context "Stacked Form" end - context "Inline Form" do + context "from the classic page" do background do - click_link "Inline Form" + visit comments_path + click_link "New Comment" end it_behaves_like "Comments Form" end +end + +feature "Edit a comment" do + context "from the classic page" do + let(:edited_name) { "Edited Name" } - context "Stacked Form" do background do - click_link "Stacked Form" + visit comments_path + click_link "Edit", match: :first end - it_behaves_like "Comments Form" + include_context "Form Submitted", name: :edited_name + + scenario "submits form" do + expect(page).to have_css(".comment", text: :edited_name) + end + end +end + +feature "Destroy a comment" do + context "from the classic page" do + let(:comment) { Comment.first } + + background do + visit comments_path + click_link "Destroy", href: comment_path(comment) + end + + scenario "destroys comment" do + expect(page).to_not have_css(".comment", text: comment.author) + expect(page).to_not have_css(".comment", text: comment.text) + end end end From b7bcdc90ca59c0d065b00be43dbc0f3b9f41317e Mon Sep 17 00:00:00 2001 From: Justin Gordon Date: Sun, 11 Oct 2015 15:15:04 -0700 Subject: [PATCH 125/514] Update README.md --- client/README.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/client/README.md b/client/README.md index 64dabdac..10b5460f 100644 --- a/client/README.md +++ b/client/README.md @@ -39,9 +39,10 @@ Updating Node Dependencies npm install -g npm-check-updates ``` - +Then run this to update the dependencies (starting at the top level). + ``` -# Make sure you are in the `client` directory, then run: +# Make sure you are in the top directory, then run: cd client rm npm-shrinkwrap.json npm-check-updates -u From fd785cdc2fa4cd7882d5ae482bfc92b1a8175730 Mon Sep 17 00:00:00 2001 From: dylangrafmyre Date: Mon, 12 Oct 2015 20:53:55 -1000 Subject: [PATCH 126/514] Bump react_on_rails gem to 1.0.0.pre --- Gemfile | 2 +- Gemfile.lock | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Gemfile b/Gemfile index 767645be..95c2f8cb 100644 --- a/Gemfile +++ b/Gemfile @@ -39,7 +39,7 @@ gem "rails-html-sanitizer" # Use Unicorn as the app server gem "unicorn" -gem "react_on_rails", "~> 0.1.8" +gem "react_on_rails", "~> 1.0.0.pre" gem "therubyracer" gem "autoprefixer-rails" diff --git a/Gemfile.lock b/Gemfile.lock index acaf810f..1f790b1c 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -207,7 +207,7 @@ GEM raindrops (0.15.0) rake (10.4.2) rdoc (4.2.0) - react_on_rails (0.1.8) + react_on_rails (1.0.0.pre) connection_pool execjs (~> 2.5) rails (>= 4.0) @@ -353,7 +353,7 @@ DEPENDENCIES rails-html-sanitizer rails_12factor rainbow - react_on_rails (~> 0.1.8) + react_on_rails (~> 1.0.0.pre) rspec-rails rubocop ruby-lint From b55dd718b46ebf2f583746bdd301bdda9a1d5f40 Mon Sep 17 00:00:00 2001 From: Josias Schneider Date: Thu, 15 Oct 2015 13:14:13 -0300 Subject: [PATCH 127/514] Set comment's author and text as not null and defaults as empty string The last parameter of change_column_null only affects existing records, thus the default still needs to be set in another migration. --- .../20151015160035_set_default_for_author_and_text.rb | 11 +++++++++++ ...151015160334_change_author_and_text_to_not_null.rb | 6 ++++++ db/schema.rb | 10 +++++----- 3 files changed, 22 insertions(+), 5 deletions(-) create mode 100644 db/migrate/20151015160035_set_default_for_author_and_text.rb create mode 100644 db/migrate/20151015160334_change_author_and_text_to_not_null.rb diff --git a/db/migrate/20151015160035_set_default_for_author_and_text.rb b/db/migrate/20151015160035_set_default_for_author_and_text.rb new file mode 100644 index 00000000..05f9054b --- /dev/null +++ b/db/migrate/20151015160035_set_default_for_author_and_text.rb @@ -0,0 +1,11 @@ +class SetDefaultForAuthorAndText < ActiveRecord::Migration + def up + change_column_default(:comments, :author, "") + change_column_default(:comments, :text, "") + end + + def down + change_column_default(:comments, :author, nil) + change_column_default(:comments, :text, nil) + end +end diff --git a/db/migrate/20151015160334_change_author_and_text_to_not_null.rb b/db/migrate/20151015160334_change_author_and_text_to_not_null.rb new file mode 100644 index 00000000..8b171d6e --- /dev/null +++ b/db/migrate/20151015160334_change_author_and_text_to_not_null.rb @@ -0,0 +1,6 @@ +class ChangeAuthorAndTextToNotNull < ActiveRecord::Migration + def change + change_column_null(:comments, :author, false, "") + change_column_null(:comments, :text, false, "") + end +end diff --git a/db/schema.rb b/db/schema.rb index d7f2834b..86d1c6f9 100644 --- a/db/schema.rb +++ b/db/schema.rb @@ -11,13 +11,13 @@ # # It's strongly recommended that you check this file into your version control system. -ActiveRecord::Schema.define(version: 20140823052830) do +ActiveRecord::Schema.define(version: 20151015160334) do create_table "comments", force: :cascade do |t| - t.string "author" - t.text "text" - t.datetime "created_at", null: false - t.datetime "updated_at", null: false + t.string "author", default: "", null: false + t.text "text", default: "", null: false + t.datetime "created_at", null: false + t.datetime "updated_at", null: false end end From 5524639f9cc7eb0da8c02bf04ee29b02090d5c5c Mon Sep 17 00:00:00 2001 From: Josias Schneider Date: Wed, 14 Oct 2015 12:58:10 -0300 Subject: [PATCH 128/514] Reverse ports of Webpack and Rails server - Change Rails server port to default (3000) - Change Webpack dev server port to 4000 - Add simple server rendering tests --- Procfile.dev | 2 +- README.md | 14 +++++++------- client/server.js | 4 ++-- client/webpack.client.hot.config.js | 2 +- spec/requests/server_render_check_spec.rb | 17 +++++++++++++++++ 5 files changed, 28 insertions(+), 11 deletions(-) create mode 100644 spec/requests/server_render_check_spec.rb diff --git a/Procfile.dev b/Procfile.dev index 0d26caeb..6fb953b3 100644 --- a/Procfile.dev +++ b/Procfile.dev @@ -1,4 +1,4 @@ -web: rails s -p 4000 +web: rails s client: sh -c 'rm app/assets/javascripts/generated/* || true && cd client && npm run build:dev:client' server: sh -c 'cd client && npm run build:dev:server' hot: sh -c 'cd client && npm start' diff --git a/README.md b/README.md index d17e54a8..f75b3df0 100644 --- a/README.md +++ b/README.md @@ -41,7 +41,7 @@ In no particular order: - Example of using the [react_on_rails](https://github.com/shakacode/react_on_rails) - Example of Rails 4.2 with ReactJs/Redux with Webpack and ES7. -- Enable development of a JS client independently from Rails using Webpack Hot Module Reload. You can see this by starting the app and visiting http://localhost:3000 +- Enable development of a JS client independently from Rails using Webpack Hot Module Reload. You can see this by starting the app and visiting http://localhost:4000 - Easily enable use of npm modules with a Rails application. - Easily enable retrofitting such a JS framework into an existing Rails app. - Enable the use of the JavaScript ES7 transpiler. @@ -72,8 +72,8 @@ See package.json and Gemfile for versions 1. `npm install` 1. `rake db:setup` 1. `foreman start -f Procfile.dev` -1. Open a browser tab to http://0.0.0.0:4000 for the Rails app example. -1. Open a browser tab to http://0.0.0.0:3000 for the Hot Module Replacement Example. +1. Open a browser tab to http://0.0.0.0:3000 for the Rails app example. +1. Open a browser tab to http://0.0.0.0:4000 for the Hot Module Replacement Example. # Javascript development without Rails using Hot Module Replacement (HMR) @@ -84,7 +84,7 @@ cd client node server.js ``` -Point your browser to http://0.0.0.0:3000. +Point your browser to http://0.0.0.0:4000. Save a change to a JSX file and see it update immediately in the browser! Note, any browser state still exists, such as what you've typed in the comments box. @@ -118,10 +118,10 @@ the Rails server. ``` cd rake db:setup -rails s -p 4000 +rails s ``` -Now point your browser to http://0.0.0.0:4000. +Now point your browser to http://0.0.0.0:3000. Note that it's important to run the Rails server on a different port than the node server. @@ -267,7 +267,7 @@ follow the example and call Jbuilder like this, you don't run into a number of i generator_function: true, prerender: true) %> ``` -However, if you try to set the value of the JSON string inside of the controller, then you will +However, if you try to set the value of the JSON string inside of the controller, then you will run into several issues with rendering the Jbuilder template from the controller. See the notes in this the example code for app/controllers/pages_controller.rb. diff --git a/client/server.js b/client/server.js index d768cfa1..f2ec6e5b 100644 --- a/client/server.js +++ b/client/server.js @@ -51,7 +51,7 @@ server.app.use('/', function(req, res) { res.send(html); }); -server.listen(3000, 'localhost', function(err) { +server.listen(4000, 'localhost', function(err) { if (err) console.log(err); - console.log('Listening at localhost:3000...'); + console.log('Listening at localhost:4000...'); }); diff --git a/client/webpack.client.hot.config.js b/client/webpack.client.hot.config.js index 453987a8..06c27f41 100644 --- a/client/webpack.client.hot.config.js +++ b/client/webpack.client.hot.config.js @@ -11,7 +11,7 @@ config.entry.vendor.push('bootstrap-sass!./bootstrap-sass.config.js'); config.entry.app.push( // Webpack dev server - 'webpack-dev-server/client?http://localhost:3000', + 'webpack-dev-server/client?http://localhost:4000', 'webpack/hot/dev-server', // Test out Css & Sass diff --git a/spec/requests/server_render_check_spec.rb b/spec/requests/server_render_check_spec.rb new file mode 100644 index 00000000..beb44770 --- /dev/null +++ b/spec/requests/server_render_check_spec.rb @@ -0,0 +1,17 @@ +require "rails_helper" + +describe "Server Rendering" do + it "generates server rendered HTML if server rendering enabled" do + get root_path + html_nodes = Nokogiri::HTML(response.body) + expect(html_nodes.css("div#App-react-component-0").children.size).to eq(1) + expect(html_nodes.css("div#App-react-component-0 h2").text) + .to include("Comments") + end + + it "generates no server rendered HTML if server rendering not enabled" do + get simple_path + html_nodes = Nokogiri::HTML(response.body) + expect(html_nodes.css("div#SimpleCommentScreen-react-component-0").children.size).to eq(0) + end +end From f7e5e965a8b2b16323c4538aa3e3d1e9a50d777b Mon Sep 17 00:00:00 2001 From: Josias Schneider Date: Thu, 15 Oct 2015 14:58:30 -0300 Subject: [PATCH 129/514] Refactoring MetaTagsManager --- client/app/utils/metaTagsManager.js | 11 +++-------- 1 file changed, 3 insertions(+), 8 deletions(-) diff --git a/client/app/utils/metaTagsManager.js b/client/app/utils/metaTagsManager.js index c93f696d..4e343a6d 100644 --- a/client/app/utils/metaTagsManager.js +++ b/client/app/utils/metaTagsManager.js @@ -6,15 +6,10 @@ const MetaTagsManager = { * @returns {String} - CSRF Token. */ getCSRFToken() { - const metas = document.getElementsByTagName('meta'); - for (let i = 0; i < metas.length; i++) { - const meta = metas[i]; - if (meta.getAttribute('name') === 'csrf-token') { - return meta.getAttribute('content'); - } - } + const token = Array.from(document.getElementsByTagName('meta')) + .find(tag => tag.name === 'csrf-token'); - return null; + return token ? token.content : null; }, }; From 78417dbbd06d752f74448289df881f1933aeac19 Mon Sep 17 00:00:00 2001 From: dylangrafmyre Date: Thu, 15 Oct 2015 08:50:42 -1000 Subject: [PATCH 130/514] Update to node 4.2.0 Set engines node: 4.2.0 in all package.jsons' Install node_modules with npm 3.3.6 npm shrinkwrap to create new npm-shinkwrap.json --- client/npm-shrinkwrap.json | 6890 +++++++++++++++++++++++------------- client/package.json | 2 +- package.json | 2 +- 3 files changed, 4443 insertions(+), 2451 deletions(-) diff --git a/client/npm-shrinkwrap.json b/client/npm-shrinkwrap.json index 10810e90..78aa8284 100644 --- a/client/npm-shrinkwrap.json +++ b/client/npm-shrinkwrap.json @@ -2,6 +2,201 @@ "name": "react-webpack-rails-tutorial", "version": "1.1.0", "dependencies": { + "abbrev": { + "version": "1.0.7", + "from": "abbrev@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.0.7.tgz" + }, + "accepts": { + "version": "1.2.13", + "from": "accepts@>=1.2.12 <1.3.0", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.2.13.tgz" + }, + "acorn": { + "version": "2.4.0", + "from": "acorn@>=2.1.0 <3.0.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-2.4.0.tgz" + }, + "acorn-globals": { + "version": "1.0.6", + "from": "acorn-globals@>=1.0.3 <2.0.0", + "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-1.0.6.tgz" + }, + "acorn-to-esprima": { + "version": "1.0.4", + "from": "acorn-to-esprima@>=1.0.2 <2.0.0", + "resolved": "https://registry.npmjs.org/acorn-to-esprima/-/acorn-to-esprima-1.0.4.tgz" + }, + "after": { + "version": "0.8.1", + "from": "after@0.8.1", + "resolved": "https://registry.npmjs.org/after/-/after-0.8.1.tgz" + }, + "align-text": { + "version": "0.1.3", + "from": "align-text@>=0.1.0 <0.2.0", + "resolved": "https://registry.npmjs.org/align-text/-/align-text-0.1.3.tgz" + }, + "alphanum-sort": { + "version": "1.0.2", + "from": "alphanum-sort@>=1.0.1 <2.0.0", + "resolved": "https://registry.npmjs.org/alphanum-sort/-/alphanum-sort-1.0.2.tgz" + }, + "alter": { + "version": "0.2.0", + "from": "alter@>=0.2.0 <0.3.0", + "resolved": "https://registry.npmjs.org/alter/-/alter-0.2.0.tgz" + }, + "amdefine": { + "version": "1.0.0", + "from": "amdefine@>=0.0.4", + "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.0.tgz" + }, + "ansi": { + "version": "0.3.0", + "from": "ansi@>=0.3.0 <0.4.0", + "resolved": "https://registry.npmjs.org/ansi/-/ansi-0.3.0.tgz" + }, + "ansi-green": { + "version": "0.1.1", + "from": "ansi-green@>=0.1.1 <0.2.0", + "resolved": "https://registry.npmjs.org/ansi-green/-/ansi-green-0.1.1.tgz" + }, + "ansi-regex": { + "version": "2.0.0", + "from": "ansi-regex@>=2.0.0 <3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.0.0.tgz" + }, + "ansi-styles": { + "version": "2.1.0", + "from": "ansi-styles@>=2.1.0 <3.0.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.1.0.tgz" + }, + "ansi-wrap": { + "version": "0.1.0", + "from": "ansi-wrap@0.1.0", + "resolved": "https://registry.npmjs.org/ansi-wrap/-/ansi-wrap-0.1.0.tgz" + }, + "anymatch": { + "version": "1.3.0", + "from": "anymatch@>=1.1.0 <2.0.0", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-1.3.0.tgz" + }, + "are-we-there-yet": { + "version": "1.0.4", + "from": "are-we-there-yet@>=1.0.0 <1.1.0", + "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.0.4.tgz" + }, + "argparse": { + "version": "1.0.2", + "from": "argparse@>=1.0.2 <1.1.0", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.2.tgz" + }, + "arr-diff": { + "version": "1.1.0", + "from": "arr-diff@>=1.0.1 <2.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-1.1.0.tgz" + }, + "arr-flatten": { + "version": "1.0.1", + "from": "arr-flatten@>=1.0.1 <2.0.0", + "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.0.1.tgz" + }, + "array-flatten": { + "version": "1.1.1", + "from": "array-flatten@1.1.1", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz" + }, + "array-index": { + "version": "0.1.1", + "from": "array-index@>=0.1.0 <0.2.0", + "resolved": "https://registry.npmjs.org/array-index/-/array-index-0.1.1.tgz" + }, + "array-slice": { + "version": "0.2.3", + "from": "array-slice@>=0.2.3 <0.3.0", + "resolved": "https://registry.npmjs.org/array-slice/-/array-slice-0.2.3.tgz" + }, + "array-union": { + "version": "1.0.1", + "from": "array-union@>=1.0.1 <2.0.0", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.1.tgz" + }, + "array-uniq": { + "version": "1.0.2", + "from": "array-uniq@>=1.0.1 <2.0.0", + "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.2.tgz" + }, + "array-unique": { + "version": "0.2.1", + "from": "array-unique@>=0.2.1 <0.3.0", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.2.1.tgz" + }, + "arraybuffer.slice": { + "version": "0.0.6", + "from": "arraybuffer.slice@0.0.6", + "resolved": "https://registry.npmjs.org/arraybuffer.slice/-/arraybuffer.slice-0.0.6.tgz" + }, + "arrify": { + "version": "1.0.0", + "from": "arrify@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.0.tgz" + }, + "asap": { + "version": "2.0.3", + "from": "asap@>=2.0.3 <2.1.0", + "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.3.tgz" + }, + "asn1": { + "version": "0.1.11", + "from": "asn1@0.1.11", + "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.1.11.tgz" + }, + "assert": { + "version": "1.3.0", + "from": "assert@>=1.1.1 <2.0.0", + "resolved": "https://registry.npmjs.org/assert/-/assert-1.3.0.tgz" + }, + "assert-plus": { + "version": "0.1.5", + "from": "assert-plus@>=0.1.5 <0.2.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-0.1.5.tgz" + }, + "ast-traverse": { + "version": "0.1.1", + "from": "ast-traverse@>=0.1.1 <0.2.0", + "resolved": "https://registry.npmjs.org/ast-traverse/-/ast-traverse-0.1.1.tgz" + }, + "ast-types": { + "version": "0.8.5", + "from": "ast-types@0.8.5", + "resolved": "https://registry.npmjs.org/ast-types/-/ast-types-0.8.5.tgz" + }, + "async": { + "version": "1.4.2", + "from": "async@>=1.3.0 <2.0.0", + "resolved": "https://registry.npmjs.org/async/-/async-1.4.2.tgz" + }, + "async-each": { + "version": "0.1.6", + "from": "async-each@>=0.1.5 <0.2.0", + "resolved": "https://registry.npmjs.org/async-each/-/async-each-0.1.6.tgz" + }, + "async-foreach": { + "version": "0.1.3", + "from": "async-foreach@>=0.1.3 <0.2.0", + "resolved": "https://registry.npmjs.org/async-foreach/-/async-foreach-0.1.3.tgz" + }, + "autoprefixer": { + "version": "6.0.3", + "from": "autoprefixer@>=6.0.3 <7.0.0", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-6.0.3.tgz" + }, + "aws-sign2": { + "version": "0.6.0", + "from": "aws-sign2@>=0.6.0 <0.7.0", + "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.6.0.tgz" + }, "axios": { "version": "0.7.0", "from": "axios@>=0.7.0 <0.8.0", @@ -10,295 +205,1086 @@ "babel-core": { "version": "5.8.25", "from": "babel-core@>=5.8.25 <6.0.0", - "resolved": "https://registry.npmjs.org/babel-core/-/babel-core-5.8.25.tgz", + "resolved": "https://registry.npmjs.org/babel-core/-/babel-core-5.8.25.tgz" + }, + "babel-jscs": { + "version": "2.0.4", + "from": "babel-jscs@>=2.0.0 <3.0.0", + "resolved": "https://registry.npmjs.org/babel-jscs/-/babel-jscs-2.0.4.tgz" + }, + "babel-loader": { + "version": "5.3.2", + "from": "babel-loader@>=5.3.2 <6.0.0", + "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-5.3.2.tgz" + }, + "babel-plugin-constant-folding": { + "version": "1.0.1", + "from": "babel-plugin-constant-folding@>=1.0.1 <2.0.0", + "resolved": "https://registry.npmjs.org/babel-plugin-constant-folding/-/babel-plugin-constant-folding-1.0.1.tgz" + }, + "babel-plugin-dead-code-elimination": { + "version": "1.0.2", + "from": "babel-plugin-dead-code-elimination@>=1.0.2 <2.0.0", + "resolved": "https://registry.npmjs.org/babel-plugin-dead-code-elimination/-/babel-plugin-dead-code-elimination-1.0.2.tgz" + }, + "babel-plugin-eval": { + "version": "1.0.1", + "from": "babel-plugin-eval@>=1.0.1 <2.0.0", + "resolved": "https://registry.npmjs.org/babel-plugin-eval/-/babel-plugin-eval-1.0.1.tgz" + }, + "babel-plugin-inline-environment-variables": { + "version": "1.0.1", + "from": "babel-plugin-inline-environment-variables@>=1.0.1 <2.0.0", + "resolved": "https://registry.npmjs.org/babel-plugin-inline-environment-variables/-/babel-plugin-inline-environment-variables-1.0.1.tgz" + }, + "babel-plugin-jscript": { + "version": "1.0.4", + "from": "babel-plugin-jscript@>=1.0.4 <2.0.0", + "resolved": "https://registry.npmjs.org/babel-plugin-jscript/-/babel-plugin-jscript-1.0.4.tgz" + }, + "babel-plugin-member-expression-literals": { + "version": "1.0.1", + "from": "babel-plugin-member-expression-literals@>=1.0.1 <2.0.0", + "resolved": "https://registry.npmjs.org/babel-plugin-member-expression-literals/-/babel-plugin-member-expression-literals-1.0.1.tgz" + }, + "babel-plugin-property-literals": { + "version": "1.0.1", + "from": "babel-plugin-property-literals@>=1.0.1 <2.0.0", + "resolved": "https://registry.npmjs.org/babel-plugin-property-literals/-/babel-plugin-property-literals-1.0.1.tgz" + }, + "babel-plugin-proto-to-assign": { + "version": "1.0.4", + "from": "babel-plugin-proto-to-assign@>=1.0.3 <2.0.0", + "resolved": "https://registry.npmjs.org/babel-plugin-proto-to-assign/-/babel-plugin-proto-to-assign-1.0.4.tgz" + }, + "babel-plugin-react-constant-elements": { + "version": "1.0.3", + "from": "babel-plugin-react-constant-elements@>=1.0.3 <2.0.0", + "resolved": "https://registry.npmjs.org/babel-plugin-react-constant-elements/-/babel-plugin-react-constant-elements-1.0.3.tgz" + }, + "babel-plugin-react-display-name": { + "version": "1.0.3", + "from": "babel-plugin-react-display-name@>=1.0.3 <2.0.0", + "resolved": "https://registry.npmjs.org/babel-plugin-react-display-name/-/babel-plugin-react-display-name-1.0.3.tgz" + }, + "babel-plugin-remove-console": { + "version": "1.0.1", + "from": "babel-plugin-remove-console@>=1.0.1 <2.0.0", + "resolved": "https://registry.npmjs.org/babel-plugin-remove-console/-/babel-plugin-remove-console-1.0.1.tgz" + }, + "babel-plugin-remove-debugger": { + "version": "1.0.1", + "from": "babel-plugin-remove-debugger@>=1.0.1 <2.0.0", + "resolved": "https://registry.npmjs.org/babel-plugin-remove-debugger/-/babel-plugin-remove-debugger-1.0.1.tgz" + }, + "babel-plugin-runtime": { + "version": "1.0.7", + "from": "babel-plugin-runtime@>=1.0.7 <2.0.0", + "resolved": "https://registry.npmjs.org/babel-plugin-runtime/-/babel-plugin-runtime-1.0.7.tgz" + }, + "babel-plugin-undeclared-variables-check": { + "version": "1.0.2", + "from": "babel-plugin-undeclared-variables-check@>=1.0.2 <2.0.0", + "resolved": "https://registry.npmjs.org/babel-plugin-undeclared-variables-check/-/babel-plugin-undeclared-variables-check-1.0.2.tgz" + }, + "babel-plugin-undefined-to-void": { + "version": "1.1.6", + "from": "babel-plugin-undefined-to-void@>=1.1.6 <2.0.0", + "resolved": "https://registry.npmjs.org/babel-plugin-undefined-to-void/-/babel-plugin-undefined-to-void-1.1.6.tgz" + }, + "babel-runtime": { + "version": "5.8.25", + "from": "babel-runtime@>=5.8.24 <6.0.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-5.8.25.tgz" + }, + "babylon": { + "version": "5.8.23", + "from": "babylon@>=5.8.23 <6.0.0", + "resolved": "https://registry.npmjs.org/babylon/-/babylon-5.8.23.tgz" + }, + "backo2": { + "version": "1.0.2", + "from": "backo2@1.0.2", + "resolved": "https://registry.npmjs.org/backo2/-/backo2-1.0.2.tgz" + }, + "balanced-match": { + "version": "0.2.0", + "from": "balanced-match@>=0.2.0 <0.3.0", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-0.2.0.tgz" + }, + "base62": { + "version": "0.1.1", + "from": "base62@0.1.1", + "resolved": "https://registry.npmjs.org/base62/-/base62-0.1.1.tgz" + }, + "Base64": { + "version": "0.2.1", + "from": "Base64@>=0.2.0 <0.3.0", + "resolved": "https://registry.npmjs.org/Base64/-/Base64-0.2.1.tgz" + }, + "base64-arraybuffer": { + "version": "0.1.2", + "from": "base64-arraybuffer@0.1.2", + "resolved": "https://registry.npmjs.org/base64-arraybuffer/-/base64-arraybuffer-0.1.2.tgz" + }, + "base64-js": { + "version": "0.0.8", + "from": "base64-js@0.0.8", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-0.0.8.tgz" + }, + "base64id": { + "version": "0.1.0", + "from": "base64id@0.1.0", + "resolved": "https://registry.npmjs.org/base64id/-/base64id-0.1.0.tgz" + }, + "batch": { + "version": "0.5.2", + "from": "batch@0.5.2", + "resolved": "https://registry.npmjs.org/batch/-/batch-0.5.2.tgz" + }, + "benchmark": { + "version": "1.0.0", + "from": "benchmark@1.0.0", + "resolved": "https://registry.npmjs.org/benchmark/-/benchmark-1.0.0.tgz" + }, + "better-assert": { + "version": "1.0.2", + "from": "better-assert@>=1.0.0 <1.1.0", + "resolved": "https://registry.npmjs.org/better-assert/-/better-assert-1.0.2.tgz" + }, + "big.js": { + "version": "3.1.3", + "from": "big.js@>=3.0.2 <4.0.0", + "resolved": "https://registry.npmjs.org/big.js/-/big.js-3.1.3.tgz" + }, + "binary-extensions": { + "version": "1.3.1", + "from": "binary-extensions@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.3.1.tgz" + }, + "bindings": { + "version": "1.2.1", + "from": "bindings@>=1.2.0 <1.3.0", + "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.2.1.tgz" + }, + "bl": { + "version": "1.0.0", + "from": "bl@>=1.0.0 <1.1.0", + "resolved": "https://registry.npmjs.org/bl/-/bl-1.0.0.tgz", "dependencies": { - "babel-plugin-constant-folding": { - "version": "1.0.1", - "from": "babel-plugin-constant-folding@>=1.0.1 <2.0.0", - "resolved": "https://registry.npmjs.org/babel-plugin-constant-folding/-/babel-plugin-constant-folding-1.0.1.tgz" - }, - "babel-plugin-dead-code-elimination": { - "version": "1.0.2", - "from": "babel-plugin-dead-code-elimination@>=1.0.2 <2.0.0", - "resolved": "https://registry.npmjs.org/babel-plugin-dead-code-elimination/-/babel-plugin-dead-code-elimination-1.0.2.tgz" - }, - "babel-plugin-eval": { - "version": "1.0.1", - "from": "babel-plugin-eval@>=1.0.1 <2.0.0", - "resolved": "https://registry.npmjs.org/babel-plugin-eval/-/babel-plugin-eval-1.0.1.tgz" - }, - "babel-plugin-inline-environment-variables": { - "version": "1.0.1", - "from": "babel-plugin-inline-environment-variables@>=1.0.1 <2.0.0", - "resolved": "https://registry.npmjs.org/babel-plugin-inline-environment-variables/-/babel-plugin-inline-environment-variables-1.0.1.tgz" + "readable-stream": { + "version": "2.0.2", + "from": "readable-stream@>=2.0.0 <2.1.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.0.2.tgz" + } + } + }, + "blob": { + "version": "0.0.4", + "from": "blob@0.0.4", + "resolved": "https://registry.npmjs.org/blob/-/blob-0.0.4.tgz" + }, + "block-stream": { + "version": "0.0.8", + "from": "block-stream@*", + "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" + }, + "body-parser": { + "version": "1.14.1", + "from": "body-parser@>=1.14.1 <2.0.0", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.14.1.tgz", + "dependencies": { + "iconv-lite": { + "version": "0.4.12", + "from": "iconv-lite@0.4.12", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.12.tgz" + } + } + }, + "boom": { + "version": "2.9.0", + "from": "boom@>=2.8.0 <3.0.0", + "resolved": "https://registry.npmjs.org/boom/-/boom-2.9.0.tgz" + }, + "brace-expansion": { + "version": "1.1.1", + "from": "brace-expansion@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.1.tgz" + }, + "braces": { + "version": "1.8.1", + "from": "braces@>=1.8.0 <2.0.0", + "resolved": "https://registry.npmjs.org/braces/-/braces-1.8.1.tgz" + }, + "breakable": { + "version": "1.0.0", + "from": "breakable@>=1.0.0 <1.1.0", + "resolved": "https://registry.npmjs.org/breakable/-/breakable-1.0.0.tgz" + }, + "browserify-zlib": { + "version": "0.1.4", + "from": "browserify-zlib@>=0.1.4 <0.2.0", + "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.1.4.tgz" + }, + "browserslist": { + "version": "1.0.1", + "from": "browserslist@>=1.0.0 <1.1.0", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-1.0.1.tgz" + }, + "buffer": { + "version": "3.5.1", + "from": "buffer@>=3.0.3 <4.0.0", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-3.5.1.tgz" + }, + "bufferutil": { + "version": "1.2.1", + "from": "bufferutil@>=1.2.0 <1.3.0", + "resolved": "https://registry.npmjs.org/bufferutil/-/bufferutil-1.2.1.tgz" + }, + "builtin-modules": { + "version": "1.1.0", + "from": "builtin-modules@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.0.tgz" + }, + "bytes": { + "version": "2.1.0", + "from": "bytes@2.1.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-2.1.0.tgz" + }, + "callsite": { + "version": "1.0.0", + "from": "callsite@1.0.0", + "resolved": "https://registry.npmjs.org/callsite/-/callsite-1.0.0.tgz" + }, + "camelcase": { + "version": "1.2.1", + "from": "camelcase@>=1.2.1 <2.0.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-1.2.1.tgz" + }, + "camelcase-keys": { + "version": "1.0.0", + "from": "camelcase-keys@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-1.0.0.tgz" + }, + "caniuse-db": { + "version": "1.0.30000344", + "from": "caniuse-db@>=1.0.30000313 <2.0.0", + "resolved": "https://registry.npmjs.org/caniuse-db/-/caniuse-db-1.0.30000344.tgz" + }, + "caseless": { + "version": "0.11.0", + "from": "caseless@>=0.11.0 <0.12.0", + "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.11.0.tgz" + }, + "center-align": { + "version": "0.1.1", + "from": "center-align@>=0.1.1 <0.2.0", + "resolved": "https://registry.npmjs.org/center-align/-/center-align-0.1.1.tgz" + }, + "chalk": { + "version": "1.1.1", + "from": "chalk@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.1.tgz" + }, + "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.2.0", + "from": "chokidar@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-1.2.0.tgz" + }, + "classnames": { + "version": "2.1.5", + "from": "classnames@>=2.1.3 <3.0.0", + "resolved": "https://registry.npmjs.org/classnames/-/classnames-2.1.5.tgz" + }, + "clean-css": { + "version": "3.4.6", + "from": "clean-css@>=3.1.9 <4.0.0", + "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-3.4.6.tgz", + "dependencies": { + "commander": { + "version": "2.8.1", + "from": "commander@>=2.8.0 <2.9.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.8.1.tgz" + } + } + }, + "cli-table": { + "version": "0.3.1", + "from": "cli-table@>=0.3.1 <0.4.0", + "resolved": "https://registry.npmjs.org/cli-table/-/cli-table-0.3.1.tgz", + "dependencies": { + "colors": { + "version": "1.0.3", + "from": "colors@1.0.3", + "resolved": "https://registry.npmjs.org/colors/-/colors-1.0.3.tgz" + } + } + }, + "cli-width": { + "version": "1.0.1", + "from": "cli-width@>=1.0.1 <2.0.0", + "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-1.0.1.tgz" + }, + "cliui": { + "version": "2.1.0", + "from": "cliui@>=2.1.0 <3.0.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-2.1.0.tgz" + }, + "clone": { + "version": "1.0.2", + "from": "clone@>=1.0.2 <2.0.0", + "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.2.tgz" + }, + "coa": { + "version": "1.0.1", + "from": "coa@>=1.0.1 <1.1.0", + "resolved": "https://registry.npmjs.org/coa/-/coa-1.0.1.tgz" + }, + "colors": { + "version": "1.1.2", + "from": "colors@>=1.1.2 <1.2.0", + "resolved": "https://registry.npmjs.org/colors/-/colors-1.1.2.tgz" + }, + "colr-convert": { + "version": "1.0.5", + "from": "colr-convert@>=1.0.5 <2.0.0", + "resolved": "https://registry.npmjs.org/colr-convert/-/colr-convert-1.0.5.tgz" + }, + "combined-stream": { + "version": "1.0.5", + "from": "combined-stream@>=1.0.5 <1.1.0", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.5.tgz" + }, + "commander": { + "version": "2.5.1", + "from": "commander@>=2.5.0 <2.6.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.5.1.tgz" + }, + "comment-parser": { + "version": "0.3.0", + "from": "comment-parser@0.3.0", + "resolved": "https://registry.npmjs.org/comment-parser/-/comment-parser-0.3.0.tgz" + }, + "commoner": { + "version": "0.10.3", + "from": "commoner@>=0.10.0 <0.11.0", + "resolved": "https://registry.npmjs.org/commoner/-/commoner-0.10.3.tgz" + }, + "component-bind": { + "version": "1.0.0", + "from": "component-bind@1.0.0", + "resolved": "https://registry.npmjs.org/component-bind/-/component-bind-1.0.0.tgz" + }, + "component-emitter": { + "version": "1.1.2", + "from": "component-emitter@1.1.2", + "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.1.2.tgz" + }, + "component-inherit": { + "version": "0.0.3", + "from": "component-inherit@0.0.3", + "resolved": "https://registry.npmjs.org/component-inherit/-/component-inherit-0.0.3.tgz" + }, + "compressible": { + "version": "2.0.6", + "from": "compressible@>=2.0.6 <2.1.0", + "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.6.tgz" + }, + "compression": { + "version": "1.6.0", + "from": "compression@>=1.5.2 <2.0.0", + "resolved": "https://registry.npmjs.org/compression/-/compression-1.6.0.tgz", + "dependencies": { + "accepts": { + "version": "1.3.0", + "from": "accepts@>=1.3.0 <1.4.0", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.0.tgz" }, - "babel-plugin-jscript": { - "version": "1.0.4", - "from": "babel-plugin-jscript@>=1.0.4 <2.0.0", - "resolved": "https://registry.npmjs.org/babel-plugin-jscript/-/babel-plugin-jscript-1.0.4.tgz" + "negotiator": { + "version": "0.6.0", + "from": "negotiator@0.6.0", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.0.tgz" }, - "babel-plugin-member-expression-literals": { - "version": "1.0.1", - "from": "babel-plugin-member-expression-literals@>=1.0.1 <2.0.0", - "resolved": "https://registry.npmjs.org/babel-plugin-member-expression-literals/-/babel-plugin-member-expression-literals-1.0.1.tgz" + "vary": { + "version": "1.1.0", + "from": "vary@>=1.1.0 <1.2.0", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.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" + }, + "concat-stream": { + "version": "1.5.0", + "from": "concat-stream@>=1.4.6 <2.0.0", + "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.5.0.tgz", + "dependencies": { + "readable-stream": { + "version": "2.0.2", + "from": "readable-stream@>=2.0.0 <2.1.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.0.2.tgz" + } + } + }, + "config-chain": { + "version": "1.1.9", + "from": "config-chain@>=1.1.8 <1.2.0", + "resolved": "https://registry.npmjs.org/config-chain/-/config-chain-1.1.9.tgz" + }, + "connect-history-api-fallback": { + "version": "1.1.0", + "from": "connect-history-api-fallback@1.1.0", + "resolved": "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-1.1.0.tgz" + }, + "console-browserify": { + "version": "1.1.0", + "from": "console-browserify@>=1.1.0 <2.0.0", + "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.1.0.tgz" + }, + "constantinople": { + "version": "3.0.2", + "from": "constantinople@>=3.0.1 <3.1.0", + "resolved": "https://registry.npmjs.org/constantinople/-/constantinople-3.0.2.tgz" + }, + "constants-browserify": { + "version": "0.0.1", + "from": "constants-browserify@0.0.1", + "resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-0.0.1.tgz" + }, + "content-disposition": { + "version": "0.5.0", + "from": "content-disposition@0.5.0", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.0.tgz" + }, + "content-type": { + "version": "1.0.1", + "from": "content-type@>=1.0.1 <1.1.0", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.1.tgz" + }, + "convert-source-map": { + "version": "1.1.1", + "from": "convert-source-map@>=1.1.0 <2.0.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.1.1.tgz" + }, + "cookie": { + "version": "0.1.3", + "from": "cookie@0.1.3", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.1.3.tgz" + }, + "cookie-signature": { + "version": "1.0.6", + "from": "cookie-signature@1.0.6", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz" + }, + "core-js": { + "version": "1.2.1", + "from": "core-js@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-1.2.1.tgz" + }, + "core-util-is": { + "version": "1.0.1", + "from": "core-util-is@>=1.0.0 <1.1.0", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.1.tgz" + }, + "cross-spawn": { + "version": "2.0.0", + "from": "cross-spawn@>=2.0.0 <3.0.0", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-2.0.0.tgz" + }, + "cross-spawn-async": { + "version": "2.0.0", + "from": "cross-spawn-async@>=2.0.0 <3.0.0", + "resolved": "https://registry.npmjs.org/cross-spawn-async/-/cross-spawn-async-2.0.0.tgz" + }, + "cryptiles": { + "version": "2.0.5", + "from": "cryptiles@>=2.0.0 <3.0.0", + "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-2.0.5.tgz" + }, + "crypto-browserify": { + "version": "3.2.8", + "from": "crypto-browserify@>=3.2.6 <3.3.0", + "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.2.8.tgz" + }, + "css": { + "version": "1.0.8", + "from": "css@>=1.0.8 <1.1.0", + "resolved": "https://registry.npmjs.org/css/-/css-1.0.8.tgz" + }, + "css-color-names": { + "version": "0.0.2", + "from": "css-color-names@0.0.2", + "resolved": "https://registry.npmjs.org/css-color-names/-/css-color-names-0.0.2.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", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-0.1.0.tgz" + }, + "cssnano": { + "version": "3.3.1", + "from": "cssnano@>=2.6.1 <4.0.0", + "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-3.3.1.tgz", + "dependencies": { + "object-assign": { + "version": "4.0.1", + "from": "object-assign@>=4.0.1 <5.0.0", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.0.1.tgz" + } + } + }, + "ctype": { + "version": "0.5.3", + "from": "ctype@0.5.3", + "resolved": "https://registry.npmjs.org/ctype/-/ctype-0.5.3.tgz" + }, + "cycle": { + "version": "1.0.3", + "from": "cycle@>=1.0.0 <1.1.0", + "resolved": "https://registry.npmjs.org/cycle/-/cycle-1.0.3.tgz" + }, + "d": { + "version": "0.1.1", + "from": "d@>=0.1.1 <0.2.0", + "resolved": "https://registry.npmjs.org/d/-/d-0.1.1.tgz" + }, + "date-now": { + "version": "0.1.4", + "from": "date-now@>=0.1.4 <0.2.0", + "resolved": "https://registry.npmjs.org/date-now/-/date-now-0.1.4.tgz" + }, + "debug": { + "version": "2.2.0", + "from": "debug@>=2.1.1 <3.0.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.2.0.tgz" + }, + "decamelize": { + "version": "1.0.0", + "from": "decamelize@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.0.0.tgz" + }, + "deep-equal": { + "version": "1.0.1", + "from": "deep-equal@*", + "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.0.1.tgz" + }, + "deep-is": { + "version": "0.1.3", + "from": "deep-is@>=0.1.2 <0.2.0", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz" + }, + "defined": { + "version": "1.0.0", + "from": "defined@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/defined/-/defined-1.0.0.tgz" + }, + "defs": { + "version": "1.1.1", + "from": "defs@>=1.1.0 <1.2.0", + "resolved": "https://registry.npmjs.org/defs/-/defs-1.1.1.tgz", + "dependencies": { + "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" + } + } + }, + "del": { + "version": "2.0.2", + "from": "del@>=2.0.2 <3.0.0", + "resolved": "https://registry.npmjs.org/del/-/del-2.0.2.tgz", + "dependencies": { + "object-assign": { + "version": "4.0.1", + "from": "object-assign@>=4.0.1 <5.0.0", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.0.1.tgz" + } + } + }, + "delayed-stream": { + "version": "1.0.0", + "from": "delayed-stream@>=1.0.0 <1.1.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz" + }, + "delegates": { + "version": "0.1.0", + "from": "delegates@>=0.1.0 <0.2.0", + "resolved": "https://registry.npmjs.org/delegates/-/delegates-0.1.0.tgz" + }, + "depd": { + "version": "1.1.0", + "from": "depd@>=1.1.0 <1.2.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.0.tgz" + }, + "destroy": { + "version": "1.0.3", + "from": "destroy@1.0.3", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.3.tgz" + }, + "detect-indent": { + "version": "3.0.1", + "from": "detect-indent@>=3.0.0 <4.0.0", + "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-3.0.1.tgz" + }, + "doctrine": { + "version": "0.7.0", + "from": "doctrine@>=0.7.0 <0.8.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-0.7.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" + } + } + }, + "dom-helpers": { + "version": "2.4.0", + "from": "dom-helpers@>=2.2.4 <3.0.0", + "resolved": "https://registry.npmjs.org/dom-helpers/-/dom-helpers-2.4.0.tgz" + }, + "dom-serializer": { + "version": "0.1.0", + "from": "dom-serializer@>=0.0.0 <1.0.0", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.1.0.tgz", + "dependencies": { + "domelementtype": { + "version": "1.1.3", + "from": "domelementtype@>=1.1.1 <1.2.0", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.1.3.tgz" }, - "babel-plugin-property-literals": { - "version": "1.0.1", - "from": "babel-plugin-property-literals@>=1.0.1 <2.0.0", - "resolved": "https://registry.npmjs.org/babel-plugin-property-literals/-/babel-plugin-property-literals-1.0.1.tgz" + "entities": { + "version": "1.1.1", + "from": "entities@>=1.1.1 <1.2.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-1.1.1.tgz" + } + } + }, + "dom-walk": { + "version": "0.1.1", + "from": "dom-walk@>=0.1.0 <0.2.0", + "resolved": "https://registry.npmjs.org/dom-walk/-/dom-walk-0.1.1.tgz" + }, + "domain-browser": { + "version": "1.1.4", + "from": "domain-browser@>=1.1.1 <2.0.0", + "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.1.4.tgz" + }, + "domelementtype": { + "version": "1.3.0", + "from": "domelementtype@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.0.tgz" + }, + "domhandler": { + "version": "2.3.0", + "from": "domhandler@>=2.3.0 <2.4.0", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-2.3.0.tgz" + }, + "domutils": { + "version": "1.5.1", + "from": "domutils@>=1.5.0 <1.6.0", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.5.1.tgz" + }, + "ee-first": { + "version": "1.1.1", + "from": "ee-first@1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz" + }, + "engine.io": { + "version": "1.5.4", + "from": "engine.io@1.5.4", + "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-1.5.4.tgz", + "dependencies": { + "debug": { + "version": "1.0.3", + "from": "debug@1.0.3", + "resolved": "https://registry.npmjs.org/debug/-/debug-1.0.3.tgz" }, - "babel-plugin-proto-to-assign": { + "ms": { + "version": "0.6.2", + "from": "ms@0.6.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-0.6.2.tgz" + } + } + }, + "engine.io-client": { + "version": "1.5.4", + "from": "engine.io-client@1.5.4", + "resolved": "https://registry.npmjs.org/engine.io-client/-/engine.io-client-1.5.4.tgz", + "dependencies": { + "debug": { "version": "1.0.4", - "from": "babel-plugin-proto-to-assign@>=1.0.3 <2.0.0", - "resolved": "https://registry.npmjs.org/babel-plugin-proto-to-assign/-/babel-plugin-proto-to-assign-1.0.4.tgz" + "from": "debug@1.0.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-1.0.4.tgz" }, - "babel-plugin-react-constant-elements": { - "version": "1.0.3", - "from": "babel-plugin-react-constant-elements@>=1.0.3 <2.0.0", - "resolved": "https://registry.npmjs.org/babel-plugin-react-constant-elements/-/babel-plugin-react-constant-elements-1.0.3.tgz" - }, - "babel-plugin-react-display-name": { - "version": "1.0.3", - "from": "babel-plugin-react-display-name@>=1.0.3 <2.0.0", - "resolved": "https://registry.npmjs.org/babel-plugin-react-display-name/-/babel-plugin-react-display-name-1.0.3.tgz" + "ms": { + "version": "0.6.2", + "from": "ms@0.6.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-0.6.2.tgz" }, - "babel-plugin-remove-console": { - "version": "1.0.1", - "from": "babel-plugin-remove-console@>=1.0.1 <2.0.0", - "resolved": "https://registry.npmjs.org/babel-plugin-remove-console/-/babel-plugin-remove-console-1.0.1.tgz" - }, - "babel-plugin-remove-debugger": { - "version": "1.0.1", - "from": "babel-plugin-remove-debugger@>=1.0.1 <2.0.0", - "resolved": "https://registry.npmjs.org/babel-plugin-remove-debugger/-/babel-plugin-remove-debugger-1.0.1.tgz" - }, - "babel-plugin-runtime": { - "version": "1.0.7", - "from": "babel-plugin-runtime@>=1.0.7 <2.0.0", - "resolved": "https://registry.npmjs.org/babel-plugin-runtime/-/babel-plugin-runtime-1.0.7.tgz" - }, - "babel-plugin-undeclared-variables-check": { - "version": "1.0.2", - "from": "babel-plugin-undeclared-variables-check@>=1.0.2 <2.0.0", - "resolved": "https://registry.npmjs.org/babel-plugin-undeclared-variables-check/-/babel-plugin-undeclared-variables-check-1.0.2.tgz", - "dependencies": { - "leven": { - "version": "1.0.2", - "from": "leven@>=1.0.2 <2.0.0", - "resolved": "https://registry.npmjs.org/leven/-/leven-1.0.2.tgz" - } - } - }, - "babel-plugin-undefined-to-void": { - "version": "1.1.6", - "from": "babel-plugin-undefined-to-void@>=1.1.6 <2.0.0", - "resolved": "https://registry.npmjs.org/babel-plugin-undefined-to-void/-/babel-plugin-undefined-to-void-1.1.6.tgz" - }, - "babylon": { - "version": "5.8.23", - "from": "babylon@>=5.8.23 <6.0.0", - "resolved": "https://registry.npmjs.org/babylon/-/babylon-5.8.23.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" - }, - "chalk": { - "version": "1.1.1", - "from": "chalk@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.1.tgz", - "dependencies": { - "ansi-styles": { - "version": "2.1.0", - "from": "ansi-styles@>=2.1.0 <3.0.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.1.0.tgz" - }, - "escape-string-regexp": { - "version": "1.0.3", - "from": "escape-string-regexp@>=1.0.2 <2.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.3.tgz" - }, - "has-ansi": { - "version": "2.0.0", - "from": "has-ansi@>=2.0.0 <3.0.0", - "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", - "dependencies": { - "ansi-regex": { - "version": "2.0.0", - "from": "ansi-regex@>=2.0.0 <3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.0.0.tgz" - } - } - }, - "strip-ansi": { - "version": "3.0.0", - "from": "strip-ansi@>=3.0.0 <4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.0.tgz", - "dependencies": { - "ansi-regex": { - "version": "2.0.0", - "from": "ansi-regex@>=2.0.0 <3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.0.0.tgz" - } - } - }, - "supports-color": { - "version": "2.0.0", - "from": "supports-color@>=2.0.0 <3.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz" - } - } - }, - "convert-source-map": { - "version": "1.1.1", - "from": "convert-source-map@>=1.1.0 <2.0.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.1.1.tgz" - }, - "core-js": { - "version": "1.2.1", - "from": "core-js@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-1.2.1.tgz" - }, - "debug": { - "version": "2.2.0", - "from": "debug@>=2.1.1 <3.0.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.2.0.tgz", - "dependencies": { - "ms": { - "version": "0.7.1", - "from": "ms@0.7.1", - "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.1.tgz" - } - } - }, - "detect-indent": { - "version": "3.0.1", - "from": "detect-indent@>=3.0.0 <4.0.0", - "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-3.0.1.tgz", - "dependencies": { - "get-stdin": { - "version": "4.0.1", - "from": "get-stdin@>=4.0.1 <5.0.0", - "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz" - }, - "minimist": { - "version": "1.2.0", - "from": "minimist@>=1.1.0 <2.0.0", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz" - } - } - }, - "esutils": { - "version": "2.0.2", - "from": "esutils@>=2.0.0 <3.0.0", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz" - }, - "fs-readdir-recursive": { - "version": "0.1.2", - "from": "fs-readdir-recursive@>=0.1.0 <0.2.0", - "resolved": "https://registry.npmjs.org/fs-readdir-recursive/-/fs-readdir-recursive-0.1.2.tgz" - }, - "globals": { - "version": "6.4.1", - "from": "globals@>=6.4.0 <7.0.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-6.4.1.tgz" - }, - "home-or-tmp": { - "version": "1.0.0", - "from": "home-or-tmp@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/home-or-tmp/-/home-or-tmp-1.0.0.tgz", - "dependencies": { - "os-tmpdir": { - "version": "1.0.1", - "from": "os-tmpdir@>=1.0.1 <2.0.0", - "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.1.tgz" - }, - "user-home": { - "version": "1.1.1", - "from": "user-home@>=1.1.1 <2.0.0", - "resolved": "https://registry.npmjs.org/user-home/-/user-home-1.1.1.tgz" - } - } - }, - "is-integer": { - "version": "1.0.6", - "from": "is-integer@>=1.0.4 <2.0.0", - "resolved": "https://registry.npmjs.org/is-integer/-/is-integer-1.0.6.tgz", - "dependencies": { - "is-finite": { - "version": "1.0.1", - "from": "is-finite@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.1.tgz", - "dependencies": { - "number-is-nan": { - "version": "1.0.0", - "from": "number-is-nan@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.0.tgz" - } - } - } - } + "parseuri": { + "version": "0.0.4", + "from": "parseuri@0.0.4", + "resolved": "https://registry.npmjs.org/parseuri/-/parseuri-0.0.4.tgz" + } + } + }, + "engine.io-parser": { + "version": "1.2.2", + "from": "engine.io-parser@1.2.2", + "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-1.2.2.tgz" + }, + "enhanced-resolve": { + "version": "0.9.0", + "from": "enhanced-resolve@>=0.9.0 <0.10.0", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-0.9.0.tgz" + }, + "entities": { + "version": "1.0.0", + "from": "entities@>=1.0.0 <1.1.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-1.0.0.tgz" + }, + "envify": { + "version": "3.4.0", + "from": "envify@>=3.0.0 <4.0.0", + "resolved": "https://registry.npmjs.org/envify/-/envify-3.4.0.tgz" + }, + "error-ex": { + "version": "1.2.0", + "from": "error-ex@>=1.2.0 <2.0.0", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.2.0.tgz" + }, + "es5-ext": { + "version": "0.10.8", + "from": "es5-ext@>=0.10.8 <0.11.0", + "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.8.tgz" + }, + "es5-shim": { + "version": "4.1.14", + "from": "es5-shim@>=4.1.14 <5.0.0", + "resolved": "https://registry.npmjs.org/es5-shim/-/es5-shim-4.1.14.tgz" + }, + "es6-iterator": { + "version": "2.0.0", + "from": "es6-iterator@>=2.0.0 <3.0.0", + "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.0.tgz" + }, + "es6-map": { + "version": "0.1.2", + "from": "es6-map@>=0.1.1 <0.2.0", + "resolved": "https://registry.npmjs.org/es6-map/-/es6-map-0.1.2.tgz" + }, + "es6-promise": { + "version": "3.0.2", + "from": "es6-promise@>=3.0.2 <4.0.0", + "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-3.0.2.tgz" + }, + "es6-set": { + "version": "0.1.2", + "from": "es6-set@>=0.1.2 <0.2.0", + "resolved": "https://registry.npmjs.org/es6-set/-/es6-set-0.1.2.tgz" + }, + "es6-symbol": { + "version": "3.0.0", + "from": "es6-symbol@>=3.0.0 <4.0.0", + "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.0.0.tgz" + }, + "es6-weak-map": { + "version": "0.1.4", + "from": "es6-weak-map@>=0.1.2 <0.2.0", + "resolved": "https://registry.npmjs.org/es6-weak-map/-/es6-weak-map-0.1.4.tgz", + "dependencies": { + "es6-iterator": { + "version": "0.1.3", + "from": "es6-iterator@>=0.1.3 <0.2.0", + "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-0.1.3.tgz" }, - "js-tokens": { + "es6-symbol": { + "version": "2.0.1", + "from": "es6-symbol@>=2.0.1 <2.1.0", + "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-2.0.1.tgz" + } + } + }, + "escape-html": { + "version": "1.0.2", + "from": "escape-html@1.0.2", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.2.tgz" + }, + "escape-string-regexp": { + "version": "1.0.3", + "from": "escape-string-regexp@>=1.0.2 <2.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.3.tgz" + }, + "escope": { + "version": "3.2.0", + "from": "escope@>=3.2.0 <4.0.0", + "resolved": "https://registry.npmjs.org/escope/-/escope-3.2.0.tgz", + "dependencies": { + "estraverse": { + "version": "3.1.0", + "from": "estraverse@>=3.1.0 <4.0.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-3.1.0.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" + } + } + }, + "estraverse": { + "version": "4.1.0", + "from": "estraverse@>=4.1.0 <5.0.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.1.0.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.0 <3.0.0", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz" + }, + "etag": { + "version": "1.7.0", + "from": "etag@>=1.7.0 <1.8.0", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.7.0.tgz" + }, + "event-emitter": { + "version": "0.3.4", + "from": "event-emitter@>=0.3.4 <0.4.0", + "resolved": "https://registry.npmjs.org/event-emitter/-/event-emitter-0.3.4.tgz" + }, + "eventemitter3": { + "version": "1.1.1", + "from": "eventemitter3@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-1.1.1.tgz" + }, + "events": { + "version": "1.1.0", + "from": "events@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/events/-/events-1.1.0.tgz" + }, + "exit": { + "version": "0.1.2", + "from": "exit@>=0.1.2 <0.2.0", + "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz" + }, + "expand-brackets": { + "version": "0.1.4", + "from": "expand-brackets@>=0.1.1 <0.2.0", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-0.1.4.tgz" + }, + "expand-range": { + "version": "1.8.1", + "from": "expand-range@>=1.8.1 <2.0.0", + "resolved": "https://registry.npmjs.org/expand-range/-/expand-range-1.8.1.tgz" + }, + "expose-loader": { + "version": "0.7.0", + "from": "expose-loader@>=0.7.0 <0.8.0", + "resolved": "https://registry.npmjs.org/expose-loader/-/expose-loader-0.7.0.tgz" + }, + "express": { + "version": "4.13.3", + "from": "express@>=4.13.3 <5.0.0", + "resolved": "https://registry.npmjs.org/express/-/express-4.13.3.tgz", + "dependencies": { + "depd": { "version": "1.0.1", - "from": "js-tokens@1.0.1", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-1.0.1.tgz" - }, - "json5": { - "version": "0.4.0", - "from": "json5@>=0.4.0 <0.5.0", - "resolved": "https://registry.npmjs.org/json5/-/json5-0.4.0.tgz" - }, - "line-numbers": { - "version": "0.2.0", - "from": "line-numbers@0.2.0", - "resolved": "https://registry.npmjs.org/line-numbers/-/line-numbers-0.2.0.tgz", - "dependencies": { - "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" - } - } - }, - "lodash": { - "version": "3.10.1", - "from": "lodash@>=3.10.0 <4.0.0", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-3.10.1.tgz" - }, - "minimatch": { - "version": "2.0.10", - "from": "minimatch@>=2.0.3 <3.0.0", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-2.0.10.tgz", - "dependencies": { - "brace-expansion": { - "version": "1.1.1", - "from": "brace-expansion@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.1.tgz", - "dependencies": { - "balanced-match": { - "version": "0.2.0", - "from": "balanced-match@>=0.2.0 <0.3.0", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-0.2.0.tgz" - }, - "concat-map": { - "version": "0.0.1", - "from": "concat-map@0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz" - } - } - } - } + "from": "depd@>=1.0.1 <1.1.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.0.1.tgz" }, - "output-file-sync": { - "version": "1.1.1", - "from": "output-file-sync@>=1.1.0 <2.0.0", - "resolved": "https://registry.npmjs.org/output-file-sync/-/output-file-sync-1.1.1.tgz", + "qs": { + "version": "4.0.0", + "from": "qs@4.0.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-4.0.0.tgz" + } + } + }, + "extend": { + "version": "3.0.0", + "from": "extend@>=3.0.0 <3.1.0", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.0.tgz" + }, + "extglob": { + "version": "0.3.1", + "from": "extglob@>=0.3.0 <0.4.0", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-0.3.1.tgz" + }, + "eyes": { + "version": "0.1.8", + "from": "eyes@>=0.1.0 <0.2.0", + "resolved": "https://registry.npmjs.org/eyes/-/eyes-0.1.8.tgz" + }, + "fast-levenshtein": { + "version": "1.0.7", + "from": "fast-levenshtein@>=1.0.0 <1.1.0", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-1.0.7.tgz" + }, + "fastparse": { + "version": "1.1.1", + "from": "fastparse@>=1.1.1 <2.0.0", + "resolved": "https://registry.npmjs.org/fastparse/-/fastparse-1.1.1.tgz" + }, + "fbjs": { + "version": "0.3.2", + "from": "fbjs@>=0.3.1 <0.4.0", + "resolved": "https://registry.npmjs.org/fbjs/-/fbjs-0.3.2.tgz" + }, + "figures": { + "version": "1.4.0", + "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", + "dependencies": { + "object-assign": { + "version": "4.0.1", + "from": "object-assign@>=4.0.1 <5.0.0", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.0.1.tgz" + } + } + }, + "filename-regex": { + "version": "2.0.0", + "from": "filename-regex@>=2.0.0 <3.0.0", + "resolved": "https://registry.npmjs.org/filename-regex/-/filename-regex-2.0.0.tgz" + }, + "fill-range": { + "version": "2.2.2", + "from": "fill-range@>=2.1.0 <3.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-2.2.2.tgz" + }, + "finalhandler": { + "version": "0.4.0", + "from": "finalhandler@0.4.0", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-0.4.0.tgz" + }, + "find-up": { + "version": "1.0.0", + "from": "find-up@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.0.0.tgz", + "dependencies": { + "path-exists": { + "version": "2.0.0", + "from": "path-exists@>=2.0.0 <3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.0.0.tgz" + } + } + }, + "flat-cache": { + "version": "1.0.9", + "from": "flat-cache@>=1.0.9 <2.0.0", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-1.0.9.tgz", + "dependencies": { + "graceful-fs": { + "version": "4.1.2", + "from": "graceful-fs@>=4.1.2 <5.0.0", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.2.tgz" + } + } + }, + "flatten": { + "version": "0.0.1", + "from": "flatten@0.0.1", + "resolved": "https://registry.npmjs.org/flatten/-/flatten-0.0.1.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" + }, + "for-in": { + "version": "0.1.4", + "from": "for-in@>=0.1.4 <0.2.0", + "resolved": "https://registry.npmjs.org/for-in/-/for-in-0.1.4.tgz" + }, + "for-own": { + "version": "0.1.3", + "from": "for-own@>=0.1.3 <0.2.0", + "resolved": "https://registry.npmjs.org/for-own/-/for-own-0.1.3.tgz" + }, + "forever-agent": { + "version": "0.6.1", + "from": "forever-agent@>=0.6.1 <0.7.0", + "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz" + }, + "form-data": { + "version": "1.0.0-rc3", + "from": "form-data@>=1.0.0-rc3 <1.1.0", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-1.0.0-rc3.tgz" + }, + "forwarded": { + "version": "0.1.0", + "from": "forwarded@>=0.1.0 <0.2.0", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.0.tgz" + }, + "fresh": { + "version": "0.3.0", + "from": "fresh@0.3.0", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.3.0.tgz" + }, + "fs-readdir-recursive": { + "version": "0.1.2", + "from": "fs-readdir-recursive@>=0.1.0 <0.2.0", + "resolved": "https://registry.npmjs.org/fs-readdir-recursive/-/fs-readdir-recursive-0.1.2.tgz" + }, + "fsevents": { + "version": "1.0.2", + "from": "fsevents@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.0.2.tgz", + "dependencies": { + "node-pre-gyp": { + "version": "0.6.12", + "from": "node-pre-gyp@0.6.12", + "resolved": "https://registry.npmjs.org/node-pre-gyp/-/node-pre-gyp-0.6.12.tgz", "dependencies": { "mkdirp": { "version": "0.5.1", - "from": "mkdirp@>=0.5.1 <0.6.0", + "from": "mkdirp@~0.5.0", "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", "dependencies": { "minimist": { @@ -308,486 +1294,975 @@ } } }, - "xtend": { - "version": "4.0.0", - "from": "xtend@>=4.0.0 <5.0.0", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.0.tgz" - } - } - }, - "path-exists": { - "version": "1.0.0", - "from": "path-exists@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-1.0.0.tgz" - }, - "path-is-absolute": { - "version": "1.0.0", - "from": "path-is-absolute@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.0.tgz" - }, - "private": { - "version": "0.1.6", - "from": "private@>=0.1.6 <0.2.0", - "resolved": "https://registry.npmjs.org/private/-/private-0.1.6.tgz" - }, - "regenerator": { - "version": "0.8.35", - "from": "regenerator@0.8.35", - "resolved": "https://registry.npmjs.org/regenerator/-/regenerator-0.8.35.tgz", - "dependencies": { - "commoner": { - "version": "0.10.3", - "from": "commoner@>=0.10.0 <0.11.0", - "resolved": "https://registry.npmjs.org/commoner/-/commoner-0.10.3.tgz", + "nopt": { + "version": "3.0.4", + "from": "nopt@~3.0.1", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-3.0.4.tgz", "dependencies": { - "q": { - "version": "1.1.2", - "from": "q@>=1.1.2 <1.2.0", - "resolved": "https://registry.npmjs.org/q/-/q-1.1.2.tgz" - }, - "commander": { - "version": "2.5.1", - "from": "commander@>=2.5.0 <2.6.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.5.1.tgz" - }, - "graceful-fs": { - "version": "3.0.8", - "from": "graceful-fs@>=3.0.4 <3.1.0", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-3.0.8.tgz" + "abbrev": { + "version": "1.0.7", + "from": "abbrev@1", + "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.0.7.tgz" + } + } + }, + "npmlog": { + "version": "1.2.1", + "from": "npmlog@~1.2.0", + "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-1.2.1.tgz", + "dependencies": { + "ansi": { + "version": "0.3.0", + "from": "ansi@~0.3.0", + "resolved": "https://registry.npmjs.org/ansi/-/ansi-0.3.0.tgz" }, - "glob": { - "version": "4.2.2", - "from": "glob@>=4.2.1 <4.3.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-4.2.2.tgz", + "are-we-there-yet": { + "version": "1.0.4", + "from": "are-we-there-yet@~1.0.0", + "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.0.4.tgz", "dependencies": { - "inflight": { - "version": "1.0.4", - "from": "inflight@>=1.0.4 <2.0.0", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.4.tgz", + "delegates": { + "version": "0.1.0", + "from": "delegates@^0.1.0", + "resolved": "https://registry.npmjs.org/delegates/-/delegates-0.1.0.tgz" + }, + "readable-stream": { + "version": "1.1.13", + "from": "readable-stream@^1.1.13", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.13.tgz", "dependencies": { - "wrappy": { + "core-util-is": { "version": "1.0.1", - "from": "wrappy@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.1.tgz" + "from": "core-util-is@~1.0.0", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.1.tgz" + }, + "inherits": { + "version": "2.0.1", + "from": "inherits@2", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz" + }, + "isarray": { + "version": "0.0.1", + "from": "isarray@0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz" + }, + "string_decoder": { + "version": "0.10.31", + "from": "string_decoder@~0.10.x", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz" } } + } + } + }, + "gauge": { + "version": "1.2.2", + "from": "gauge@~1.2.0", + "resolved": "https://registry.npmjs.org/gauge/-/gauge-1.2.2.tgz", + "dependencies": { + "has-unicode": { + "version": "1.0.0", + "from": "has-unicode@^1.0.0", + "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-1.0.0.tgz" }, - "inherits": { - "version": "2.0.1", - "from": "inherits@>=2.0.0 <3.0.0", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz" + "lodash.pad": { + "version": "3.1.1", + "from": "lodash.pad@^3.0.0", + "resolved": "https://registry.npmjs.org/lodash.pad/-/lodash.pad-3.1.1.tgz", + "dependencies": { + "lodash._basetostring": { + "version": "3.0.1", + "from": "lodash._basetostring@^3.0.0", + "resolved": "https://registry.npmjs.org/lodash._basetostring/-/lodash._basetostring-3.0.1.tgz" + }, + "lodash._createpadding": { + "version": "3.6.1", + "from": "lodash._createpadding@^3.0.0", + "resolved": "https://registry.npmjs.org/lodash._createpadding/-/lodash._createpadding-3.6.1.tgz", + "dependencies": { + "lodash.repeat": { + "version": "3.0.1", + "from": "lodash.repeat@^3.0.0", + "resolved": "https://registry.npmjs.org/lodash.repeat/-/lodash.repeat-3.0.1.tgz" + } + } + } + } }, - "minimatch": { - "version": "1.0.0", - "from": "minimatch@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-1.0.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", "dependencies": { - "lru-cache": { - "version": "2.7.0", - "from": "lru-cache@>=2.0.0 <3.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-2.7.0.tgz" + "lodash._basetostring": { + "version": "3.0.1", + "from": "lodash._basetostring@^3.0.0", + "resolved": "https://registry.npmjs.org/lodash._basetostring/-/lodash._basetostring-3.0.1.tgz" }, - "sigmund": { - "version": "1.0.1", - "from": "sigmund@>=1.0.0 <1.1.0", - "resolved": "https://registry.npmjs.org/sigmund/-/sigmund-1.0.1.tgz" + "lodash._createpadding": { + "version": "3.6.1", + "from": "lodash._createpadding@^3.0.0", + "resolved": "https://registry.npmjs.org/lodash._createpadding/-/lodash._createpadding-3.6.1.tgz", + "dependencies": { + "lodash.repeat": { + "version": "3.0.1", + "from": "lodash.repeat@^3.0.0", + "resolved": "https://registry.npmjs.org/lodash.repeat/-/lodash.repeat-3.0.1.tgz" + } + } } } }, - "once": { - "version": "1.3.2", - "from": "once@>=1.3.0 <2.0.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.3.2.tgz", + "lodash.padright": { + "version": "3.1.1", + "from": "lodash.padright@^3.0.0", + "resolved": "https://registry.npmjs.org/lodash.padright/-/lodash.padright-3.1.1.tgz", "dependencies": { - "wrappy": { - "version": "1.0.1", - "from": "wrappy@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.1.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", + "dependencies": { + "lodash.repeat": { + "version": "3.0.1", + "from": "lodash.repeat@^3.0.0", + "resolved": "https://registry.npmjs.org/lodash.repeat/-/lodash.repeat-3.0.1.tgz" + } + } } } } } + } + } + }, + "rc": { + "version": "1.1.2", + "from": "rc@~1.1.0", + "resolved": "https://registry.npmjs.org/rc/-/rc-1.1.2.tgz", + "dependencies": { + "deep-extend": { + "version": "0.2.11", + "from": "deep-extend@~0.2.5", + "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.2.11.tgz" + }, + "ini": { + "version": "1.3.4", + "from": "ini@~1.3.0", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.4.tgz" }, - "mkdirp": { - "version": "0.5.1", - "from": "mkdirp@>=0.5.0 <0.6.0", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", - "dependencies": { - "minimist": { - "version": "0.0.8", - "from": "minimist@0.0.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz" - } - } - }, - "install": { - "version": "0.1.8", - "from": "install@>=0.1.7 <0.2.0", - "resolved": "https://registry.npmjs.org/install/-/install-0.1.8.tgz" + "minimist": { + "version": "1.2.0", + "from": "minimist@^1.1.2", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz" }, - "iconv-lite": { - "version": "0.4.13", - "from": "iconv-lite@>=0.4.5 <0.5.0", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.13.tgz" + "strip-json-comments": { + "version": "0.1.3", + "from": "strip-json-comments@0.1.x", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-0.1.3.tgz" } } }, - "defs": { - "version": "1.1.0", - "from": "defs@>=1.1.0 <1.2.0", - "resolved": "https://registry.npmjs.org/defs/-/defs-1.1.0.tgz", + "request": { + "version": "2.64.0", + "from": "request@2.x", + "resolved": "https://registry.npmjs.org/request/-/request-2.64.0.tgz", "dependencies": { - "alter": { - "version": "0.2.0", - "from": "alter@>=0.2.0 <0.3.0", - "resolved": "https://registry.npmjs.org/alter/-/alter-0.2.0.tgz", + "aws-sign2": { + "version": "0.5.0", + "from": "aws-sign2@~0.5.0", + "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.5.0.tgz" + }, + "bl": { + "version": "1.0.0", + "from": "bl@~1.0.0", + "resolved": "https://registry.npmjs.org/bl/-/bl-1.0.0.tgz", "dependencies": { - "stable": { - "version": "0.1.5", - "from": "stable@>=0.1.3 <0.2.0", - "resolved": "https://registry.npmjs.org/stable/-/stable-0.1.5.tgz" + "readable-stream": { + "version": "2.0.2", + "from": "readable-stream@~2.0.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.0.2.tgz", + "dependencies": { + "core-util-is": { + "version": "1.0.1", + "from": "core-util-is@~1.0.0", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.1.tgz" + }, + "inherits": { + "version": "2.0.1", + "from": "inherits@~2.0.1", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz" + }, + "isarray": { + "version": "0.0.1", + "from": "isarray@0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz" + }, + "process-nextick-args": { + "version": "1.0.3", + "from": "process-nextick-args@~1.0.0", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.3.tgz" + }, + "string_decoder": { + "version": "0.10.31", + "from": "string_decoder@~0.10.x", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz" + }, + "util-deprecate": { + "version": "1.0.1", + "from": "util-deprecate@~1.0.1", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.1.tgz" + } + } } } }, - "ast-traverse": { - "version": "0.1.1", - "from": "ast-traverse@>=0.1.1 <0.2.0", - "resolved": "https://registry.npmjs.org/ast-traverse/-/ast-traverse-0.1.1.tgz" + "caseless": { + "version": "0.11.0", + "from": "caseless@~0.11.0", + "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.11.0.tgz" }, - "breakable": { - "version": "1.0.0", - "from": "breakable@>=1.0.0 <1.1.0", - "resolved": "https://registry.npmjs.org/breakable/-/breakable-1.0.0.tgz" + "combined-stream": { + "version": "1.0.5", + "from": "combined-stream@~1.0.1", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.5.tgz", + "dependencies": { + "delayed-stream": { + "version": "1.0.0", + "from": "delayed-stream@~1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz" + } + } + }, + "extend": { + "version": "3.0.0", + "from": "extend@~3.0.0", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.0.tgz" }, - "esprima-fb": { - "version": "8001.1001.0-dev-harmony-fb", - "from": "esprima-fb@>=8001.1001.0-dev-harmony-fb <8001.1002.0", - "resolved": "https://registry.npmjs.org/esprima-fb/-/esprima-fb-8001.1001.0-dev-harmony-fb.tgz" + "forever-agent": { + "version": "0.6.1", + "from": "forever-agent@~0.6.0", + "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz" }, - "simple-fmt": { - "version": "0.1.0", - "from": "simple-fmt@>=0.1.0 <0.2.0", - "resolved": "https://registry.npmjs.org/simple-fmt/-/simple-fmt-0.1.0.tgz" + "form-data": { + "version": "1.0.0-rc3", + "from": "form-data@~1.0.0-rc1", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-1.0.0-rc3.tgz", + "dependencies": { + "async": { + "version": "1.4.2", + "from": "async@^1.4.0", + "resolved": "https://registry.npmjs.org/async/-/async-1.4.2.tgz" + } + } }, - "simple-is": { - "version": "0.2.0", - "from": "simple-is@>=0.2.0 <0.3.0", - "resolved": "https://registry.npmjs.org/simple-is/-/simple-is-0.2.0.tgz" + "har-validator": { + "version": "1.8.0", + "from": "har-validator@^1.6.1", + "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-1.8.0.tgz", + "dependencies": { + "bluebird": { + "version": "2.10.2", + "from": "bluebird@^2.9.30", + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-2.10.2.tgz" + }, + "chalk": { + "version": "1.1.1", + "from": "chalk@^1.0.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.1.tgz", + "dependencies": { + "ansi-styles": { + "version": "2.1.0", + "from": "ansi-styles@^2.1.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.1.0.tgz" + }, + "escape-string-regexp": { + "version": "1.0.3", + "from": "escape-string-regexp@^1.0.2", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.3.tgz" + }, + "has-ansi": { + "version": "2.0.0", + "from": "has-ansi@^2.0.0", + "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", + "dependencies": { + "ansi-regex": { + "version": "2.0.0", + "from": "ansi-regex@^2.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.0.0.tgz" + } + } + }, + "strip-ansi": { + "version": "3.0.0", + "from": "strip-ansi@^3.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.0.tgz", + "dependencies": { + "ansi-regex": { + "version": "2.0.0", + "from": "ansi-regex@^2.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.0.0.tgz" + } + } + }, + "supports-color": { + "version": "2.0.0", + "from": "supports-color@^2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz" + } + } + }, + "commander": { + "version": "2.8.1", + "from": "commander@^2.8.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.8.1.tgz", + "dependencies": { + "graceful-readlink": { + "version": "1.0.1", + "from": "graceful-readlink@>= 1.0.0", + "resolved": "https://registry.npmjs.org/graceful-readlink/-/graceful-readlink-1.0.1.tgz" + } + } + }, + "is-my-json-valid": { + "version": "2.12.2", + "from": "is-my-json-valid@^2.12.0", + "resolved": "https://registry.npmjs.org/is-my-json-valid/-/is-my-json-valid-2.12.2.tgz", + "dependencies": { + "generate-function": { + "version": "2.0.0", + "from": "generate-function@^2.0.0", + "resolved": "https://registry.npmjs.org/generate-function/-/generate-function-2.0.0.tgz" + }, + "generate-object-property": { + "version": "1.2.0", + "from": "generate-object-property@^1.1.0", + "resolved": "https://registry.npmjs.org/generate-object-property/-/generate-object-property-1.2.0.tgz", + "dependencies": { + "is-property": { + "version": "1.0.2", + "from": "is-property@^1.0.0", + "resolved": "https://registry.npmjs.org/is-property/-/is-property-1.0.2.tgz" + } + } + }, + "jsonpointer": { + "version": "2.0.0", + "from": "jsonpointer@2.0.0", + "resolved": "https://registry.npmjs.org/jsonpointer/-/jsonpointer-2.0.0.tgz" + }, + "xtend": { + "version": "4.0.0", + "from": "xtend@^4.0.0", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.0.tgz" + } + } + } + } }, - "stringmap": { - "version": "0.2.2", - "from": "stringmap@>=0.2.2 <0.3.0", - "resolved": "https://registry.npmjs.org/stringmap/-/stringmap-0.2.2.tgz" + "hawk": { + "version": "3.1.0", + "from": "hawk@~3.1.0", + "resolved": "https://registry.npmjs.org/hawk/-/hawk-3.1.0.tgz", + "dependencies": { + "boom": { + "version": "2.9.0", + "from": "boom@^2.8.x", + "resolved": "https://registry.npmjs.org/boom/-/boom-2.9.0.tgz" + }, + "cryptiles": { + "version": "2.0.5", + "from": "cryptiles@2.x.x", + "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-2.0.5.tgz" + }, + "hoek": { + "version": "2.16.3", + "from": "hoek@2.x.x", + "resolved": "https://registry.npmjs.org/hoek/-/hoek-2.16.3.tgz" + }, + "sntp": { + "version": "1.0.9", + "from": "sntp@1.x.x", + "resolved": "https://registry.npmjs.org/sntp/-/sntp-1.0.9.tgz" + } + } }, - "stringset": { - "version": "0.2.1", - "from": "stringset@>=0.2.1 <0.3.0", - "resolved": "https://registry.npmjs.org/stringset/-/stringset-0.2.1.tgz" + "http-signature": { + "version": "0.11.0", + "from": "http-signature@~0.11.0", + "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-0.11.0.tgz", + "dependencies": { + "asn1": { + "version": "0.1.11", + "from": "asn1@0.1.11", + "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.1.11.tgz" + }, + "assert-plus": { + "version": "0.1.5", + "from": "assert-plus@^0.1.5", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-0.1.5.tgz" + }, + "ctype": { + "version": "0.5.3", + "from": "ctype@0.5.3", + "resolved": "https://registry.npmjs.org/ctype/-/ctype-0.5.3.tgz" + } + } }, - "tryor": { + "isstream": { "version": "0.1.2", - "from": "tryor@>=0.1.2 <0.2.0", - "resolved": "https://registry.npmjs.org/tryor/-/tryor-0.1.2.tgz" + "from": "isstream@~0.1.1", + "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz" + }, + "json-stringify-safe": { + "version": "5.0.1", + "from": "json-stringify-safe@~5.0.0", + "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz" + }, + "mime-types": { + "version": "2.1.7", + "from": "mime-types@~2.1.2", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.7.tgz", + "dependencies": { + "mime-db": { + "version": "1.19.0", + "from": "mime-db@~1.19.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.19.0.tgz" + } + } + }, + "node-uuid": { + "version": "1.4.3", + "from": "node-uuid@~1.4.0", + "resolved": "https://registry.npmjs.org/node-uuid/-/node-uuid-1.4.3.tgz" + }, + "oauth-sign": { + "version": "0.8.0", + "from": "oauth-sign@~0.8.0", + "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.8.0.tgz" + }, + "qs": { + "version": "5.1.0", + "from": "qs@~5.1.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-5.1.0.tgz" + }, + "stringstream": { + "version": "0.0.4", + "from": "stringstream@~0.0.4", + "resolved": "https://registry.npmjs.org/stringstream/-/stringstream-0.0.4.tgz" }, - "yargs": { - "version": "1.3.3", - "from": "yargs@>=1.3.2 <1.4.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-1.3.3.tgz" + "tough-cookie": { + "version": "2.1.0", + "from": "tough-cookie@>=0.12.0", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.1.0.tgz" + }, + "tunnel-agent": { + "version": "0.4.1", + "from": "tunnel-agent@~0.4.0", + "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.4.1.tgz" } } }, - "esprima-fb": { - "version": "15001.1.0-dev-harmony-fb", - "from": "esprima-fb@>=15001.1.0-dev-harmony-fb <15001.2.0", - "resolved": "https://registry.npmjs.org/esprima-fb/-/esprima-fb-15001.1.0-dev-harmony-fb.tgz" - }, - "recast": { - "version": "0.10.24", - "from": "recast@0.10.24", - "resolved": "https://registry.npmjs.org/recast/-/recast-0.10.24.tgz", + "rimraf": { + "version": "2.4.3", + "from": "rimraf@~2.4.0", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.4.3.tgz", "dependencies": { - "ast-types": { - "version": "0.8.5", - "from": "ast-types@0.8.5", - "resolved": "https://registry.npmjs.org/ast-types/-/ast-types-0.8.5.tgz" + "glob": { + "version": "5.0.15", + "from": "glob@^5.0.14", + "resolved": "https://registry.npmjs.org/glob/-/glob-5.0.15.tgz", + "dependencies": { + "inflight": { + "version": "1.0.4", + "from": "inflight@^1.0.4", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.4.tgz", + "dependencies": { + "wrappy": { + "version": "1.0.1", + "from": "wrappy@1", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.1.tgz" + } + } + }, + "inherits": { + "version": "2.0.1", + "from": "inherits@~2.0.1", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz" + }, + "minimatch": { + "version": "3.0.0", + "from": "minimatch@2 || 3", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.0.tgz", + "dependencies": { + "brace-expansion": { + "version": "1.1.1", + "from": "brace-expansion@^1.0.0", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.1.tgz", + "dependencies": { + "balanced-match": { + "version": "0.2.0", + "from": "balanced-match@^0.2.0", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-0.2.0.tgz" + }, + "concat-map": { + "version": "0.0.1", + "from": "concat-map@0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz" + } + } + } + } + }, + "once": { + "version": "1.3.2", + "from": "once@^1.3.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.3.2.tgz", + "dependencies": { + "wrappy": { + "version": "1.0.1", + "from": "wrappy@1", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.1.tgz" + } + } + }, + "path-is-absolute": { + "version": "1.0.0", + "from": "path-is-absolute@^1.0.0", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.0.tgz" + } + } } } }, - "through": { - "version": "2.3.8", - "from": "through@>=2.3.6 <2.4.0", - "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz" - } - } - }, - "regexpu": { - "version": "1.3.0", - "from": "regexpu@>=1.1.2 <2.0.0", - "resolved": "https://registry.npmjs.org/regexpu/-/regexpu-1.3.0.tgz", - "dependencies": { - "esprima": { - "version": "2.6.0", - "from": "esprima@>=2.6.0 <3.0.0", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-2.6.0.tgz" + "semver": { + "version": "5.0.3", + "from": "semver@~5.0.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.0.3.tgz" }, - "recast": { - "version": "0.10.33", - "from": "recast@>=0.10.10 <0.11.0", - "resolved": "https://registry.npmjs.org/recast/-/recast-0.10.33.tgz", + "tar": { + "version": "2.2.1", + "from": "tar@~2.2.0", + "resolved": "https://registry.npmjs.org/tar/-/tar-2.2.1.tgz", "dependencies": { - "source-map": { - "version": "0.5.1", - "from": "source-map@>=0.5.0 <0.6.0", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.1.tgz" + "block-stream": { + "version": "0.0.8", + "from": "block-stream@*", + "resolved": "https://registry.npmjs.org/block-stream/-/block-stream-0.0.8.tgz" }, - "ast-types": { - "version": "0.8.12", - "from": "ast-types@0.8.12", - "resolved": "https://registry.npmjs.org/ast-types/-/ast-types-0.8.12.tgz" + "fstream": { + "version": "1.0.8", + "from": "fstream@^1.0.2", + "resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.8.tgz", + "dependencies": { + "graceful-fs": { + "version": "4.1.2", + "from": "graceful-fs@^4.1.2", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.2.tgz" + } + } + }, + "inherits": { + "version": "2.0.1", + "from": "inherits@2", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz" } } }, - "regenerate": { - "version": "1.2.1", - "from": "regenerate@>=1.2.1 <2.0.0", - "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.2.1.tgz" - }, - "regjsgen": { - "version": "0.2.0", - "from": "regjsgen@>=0.2.0 <0.3.0", - "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.2.0.tgz" - }, - "regjsparser": { - "version": "0.1.5", - "from": "regjsparser@>=0.1.4 <0.2.0", - "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.1.5.tgz", - "dependencies": { - "jsesc": { - "version": "0.5.0", - "from": "jsesc@>=0.5.0 <0.6.0", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz" - } - } - } - } - }, - "repeating": { - "version": "1.1.3", - "from": "repeating@>=1.1.2 <2.0.0", - "resolved": "https://registry.npmjs.org/repeating/-/repeating-1.1.3.tgz", - "dependencies": { - "is-finite": { - "version": "1.0.1", - "from": "is-finite@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.1.tgz", + "tar-pack": { + "version": "2.0.0", + "from": "tar-pack@~2.0.0", + "resolved": "https://registry.npmjs.org/tar-pack/-/tar-pack-2.0.0.tgz", "dependencies": { - "number-is-nan": { - "version": "1.0.0", - "from": "number-is-nan@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.0.tgz" + "debug": { + "version": "0.7.4", + "from": "debug@~0.7.2", + "resolved": "https://registry.npmjs.org/debug/-/debug-0.7.4.tgz" + }, + "fstream": { + "version": "0.1.31", + "from": "fstream@~0.1.22", + "resolved": "https://registry.npmjs.org/fstream/-/fstream-0.1.31.tgz", + "dependencies": { + "graceful-fs": { + "version": "3.0.8", + "from": "graceful-fs@~3.0.2", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-3.0.8.tgz" + }, + "inherits": { + "version": "2.0.1", + "from": "inherits@~2.0.0", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz" + } + } + }, + "fstream-ignore": { + "version": "0.0.7", + "from": "fstream-ignore@0.0.7", + "resolved": "https://registry.npmjs.org/fstream-ignore/-/fstream-ignore-0.0.7.tgz", + "dependencies": { + "inherits": { + "version": "2.0.1", + "from": "inherits@~2.0.1", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz" + }, + "minimatch": { + "version": "0.2.14", + "from": "minimatch@~0.2.0", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-0.2.14.tgz", + "dependencies": { + "lru-cache": { + "version": "2.7.0", + "from": "lru-cache@2", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-2.7.0.tgz" + }, + "sigmund": { + "version": "1.0.1", + "from": "sigmund@~1.0.0", + "resolved": "https://registry.npmjs.org/sigmund/-/sigmund-1.0.1.tgz" + } + } + } + } + }, + "graceful-fs": { + "version": "1.2.3", + "from": "graceful-fs@1.2", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-1.2.3.tgz" + }, + "once": { + "version": "1.1.1", + "from": "once@~1.1.1", + "resolved": "https://registry.npmjs.org/once/-/once-1.1.1.tgz" + }, + "readable-stream": { + "version": "1.0.33", + "from": "readable-stream@~1.0.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.33.tgz", + "dependencies": { + "core-util-is": { + "version": "1.0.1", + "from": "core-util-is@~1.0.0", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.1.tgz" + }, + "inherits": { + "version": "2.0.1", + "from": "inherits@~2.0.1", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz" + }, + "isarray": { + "version": "0.0.1", + "from": "isarray@0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz" + }, + "string_decoder": { + "version": "0.10.31", + "from": "string_decoder@~0.10.x", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz" + } + } + }, + "rimraf": { + "version": "2.2.8", + "from": "rimraf@~2.2.0", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.2.8.tgz" + }, + "tar": { + "version": "0.1.20", + "from": "tar@~0.1.17", + "resolved": "https://registry.npmjs.org/tar/-/tar-0.1.20.tgz", + "dependencies": { + "block-stream": { + "version": "0.0.8", + "from": "block-stream@*", + "resolved": "https://registry.npmjs.org/block-stream/-/block-stream-0.0.8.tgz" + }, + "inherits": { + "version": "2.0.1", + "from": "inherits@2", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz" + } + } + }, + "uid-number": { + "version": "0.0.3", + "from": "uid-number@0.0.3", + "resolved": "https://registry.npmjs.org/uid-number/-/uid-number-0.0.3.tgz" } } } } - }, - "resolve": { - "version": "1.1.6", - "from": "resolve@>=1.1.6 <2.0.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.1.6.tgz" - }, - "shebang-regex": { - "version": "1.0.0", - "from": "shebang-regex@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz" - }, - "slash": { - "version": "1.0.0", - "from": "slash@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz" - }, - "source-map": { - "version": "0.4.4", - "from": "source-map@>=0.4.0 <0.5.0", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz", - "dependencies": { - "amdefine": { - "version": "1.0.0", - "from": "amdefine@>=0.0.4", - "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.0.tgz" - } - } - }, - "source-map-support": { - "version": "0.2.10", - "from": "source-map-support@>=0.2.10 <0.3.0", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.2.10.tgz", - "dependencies": { - "source-map": { - "version": "0.1.32", - "from": "source-map@0.1.32", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.1.32.tgz", - "dependencies": { - "amdefine": { - "version": "1.0.0", - "from": "amdefine@>=0.0.4", - "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.0.tgz" - } - } - } - } - }, - "to-fast-properties": { - "version": "1.0.1", - "from": "to-fast-properties@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.1.tgz" - }, - "trim-right": { - "version": "1.0.1", - "from": "trim-right@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/trim-right/-/trim-right-1.0.1.tgz" - }, - "try-resolve": { - "version": "1.0.1", - "from": "try-resolve@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/try-resolve/-/try-resolve-1.0.1.tgz" } } }, - "babel-loader": { - "version": "5.3.2", - "from": "babel-loader@>=5.3.2 <6.0.0", - "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-5.3.2.tgz", + "fstream": { + "version": "1.0.8", + "from": "fstream@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.8.tgz", "dependencies": { - "object-assign": { - "version": "3.0.0", - "from": "object-assign@>=3.0.0 <4.0.0", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-3.0.0.tgz" + "graceful-fs": { + "version": "4.1.2", + "from": "graceful-fs@>=4.1.2 <5.0.0", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.2.tgz" } } }, - "body-parser": { - "version": "1.14.1", - "from": "body-parser@>=1.14.1 <2.0.0", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.14.1.tgz", + "gauge": { + "version": "1.2.2", + "from": "gauge@>=1.2.0 <1.3.0", + "resolved": "https://registry.npmjs.org/gauge/-/gauge-1.2.2.tgz" + }, + "gaze": { + "version": "0.5.2", + "from": "gaze@>=0.5.1 <0.6.0", + "resolved": "https://registry.npmjs.org/gaze/-/gaze-0.5.2.tgz" + }, + "generate-function": { + "version": "2.0.0", + "from": "generate-function@>=2.0.0 <3.0.0", + "resolved": "https://registry.npmjs.org/generate-function/-/generate-function-2.0.0.tgz" + }, + "generate-object-property": { + "version": "1.2.0", + "from": "generate-object-property@>=1.1.0 <2.0.0", + "resolved": "https://registry.npmjs.org/generate-object-property/-/generate-object-property-1.2.0.tgz" + }, + "get-stdin": { + "version": "4.0.1", + "from": "get-stdin@>=4.0.1 <5.0.0", + "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz" + }, + "glob": { + "version": "4.2.2", + "from": "glob@>=4.2.1 <4.3.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-4.2.2.tgz", "dependencies": { - "bytes": { - "version": "2.1.0", - "from": "bytes@2.1.0", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-2.1.0.tgz" - }, - "content-type": { - "version": "1.0.1", - "from": "content-type@>=1.0.1 <1.1.0", - "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.1.tgz" - }, - "debug": { - "version": "2.2.0", - "from": "debug@>=2.2.0 <2.3.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.2.0.tgz", - "dependencies": { - "ms": { - "version": "0.7.1", - "from": "ms@0.7.1", - "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.1.tgz" - } - } - }, - "depd": { - "version": "1.1.0", - "from": "depd@>=1.1.0 <1.2.0", - "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.0.tgz" - }, - "http-errors": { - "version": "1.3.1", - "from": "http-errors@>=1.3.1 <1.4.0", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.3.1.tgz", - "dependencies": { - "inherits": { - "version": "2.0.1", - "from": "inherits@>=2.0.1 <2.1.0", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz" - }, - "statuses": { - "version": "1.2.1", - "from": "statuses@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.2.1.tgz" - } - } + "minimatch": { + "version": "1.0.0", + "from": "minimatch@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-1.0.0.tgz" + } + } + }, + "glob-base": { + "version": "0.3.0", + "from": "glob-base@>=0.3.0 <0.4.0", + "resolved": "https://registry.npmjs.org/glob-base/-/glob-base-0.3.0.tgz" + }, + "glob-parent": { + "version": "2.0.0", + "from": "glob-parent@>=2.0.0 <3.0.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-2.0.0.tgz" + }, + "global": { + "version": "4.3.0", + "from": "global@>=4.3.0 <5.0.0", + "resolved": "https://registry.npmjs.org/global/-/global-4.3.0.tgz", + "dependencies": { + "process": { + "version": "0.5.2", + "from": "process@>=0.5.1 <0.6.0", + "resolved": "https://registry.npmjs.org/process/-/process-0.5.2.tgz" + } + } + }, + "globals": { + "version": "6.4.1", + "from": "globals@>=6.4.0 <7.0.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-6.4.1.tgz" + }, + "globby": { + "version": "3.0.1", + "from": "globby@>=3.0.0 <4.0.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-3.0.1.tgz", + "dependencies": { + "glob": { + "version": "5.0.15", + "from": "glob@>=5.0.3 <6.0.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-5.0.15.tgz" }, - "iconv-lite": { - "version": "0.4.12", - "from": "iconv-lite@0.4.12", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.12.tgz" + "object-assign": { + "version": "4.0.1", + "from": "object-assign@>=4.0.1 <5.0.0", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.0.1.tgz" + } + } + }, + "globule": { + "version": "0.1.0", + "from": "globule@>=0.1.0 <0.2.0", + "resolved": "https://registry.npmjs.org/globule/-/globule-0.1.0.tgz", + "dependencies": { + "glob": { + "version": "3.1.21", + "from": "glob@>=3.1.21 <3.2.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-3.1.21.tgz" }, - "on-finished": { - "version": "2.3.0", - "from": "on-finished@>=2.3.0 <2.4.0", - "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", - "dependencies": { - "ee-first": { - "version": "1.1.1", - "from": "ee-first@1.1.1", - "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz" - } - } + "graceful-fs": { + "version": "1.2.3", + "from": "graceful-fs@>=1.2.0 <1.3.0", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-1.2.3.tgz" }, - "qs": { - "version": "5.1.0", - "from": "qs@5.1.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-5.1.0.tgz" + "inherits": { + "version": "1.0.2", + "from": "inherits@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-1.0.2.tgz" }, - "raw-body": { - "version": "2.1.4", - "from": "raw-body@>=2.1.4 <2.2.0", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.1.4.tgz", - "dependencies": { - "unpipe": { - "version": "1.0.0", - "from": "unpipe@1.0.0", - "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz" - } - } + "lodash": { + "version": "1.0.2", + "from": "lodash@>=1.0.1 <1.1.0", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-1.0.2.tgz" }, - "type-is": { - "version": "1.6.9", - "from": "type-is@>=1.6.9 <1.7.0", - "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.9.tgz", - "dependencies": { - "media-typer": { - "version": "0.3.0", - "from": "media-typer@0.3.0", - "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz" - }, - "mime-types": { - "version": "2.1.7", - "from": "mime-types@>=2.1.7 <2.2.0", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.7.tgz", - "dependencies": { - "mime-db": { - "version": "1.19.0", - "from": "mime-db@>=1.19.0 <1.20.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.19.0.tgz" - } - } - } - } + "minimatch": { + "version": "0.2.14", + "from": "minimatch@>=0.2.11 <0.3.0", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-0.2.14.tgz" } } }, - "es5-shim": { - "version": "4.1.14", - "from": "es5-shim@>=4.1.14 <5.0.0", - "resolved": "https://registry.npmjs.org/es5-shim/-/es5-shim-4.1.14.tgz" + "graceful-fs": { + "version": "3.0.8", + "from": "graceful-fs@>=3.0.4 <3.1.0", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-3.0.8.tgz" }, - "es6-promise": { - "version": "3.0.2", - "from": "es6-promise@>=3.0.2 <4.0.0", - "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-3.0.2.tgz" + "graceful-readlink": { + "version": "1.0.1", + "from": "graceful-readlink@>=1.0.0", + "resolved": "https://registry.npmjs.org/graceful-readlink/-/graceful-readlink-1.0.1.tgz" }, - "expose-loader": { - "version": "0.7.0", - "from": "expose-loader@>=0.7.0 <0.8.0", - "resolved": "https://registry.npmjs.org/expose-loader/-/expose-loader-0.7.0.tgz" + "handlebars": { + "version": "4.0.3", + "from": "handlebars@>=4.0.0 <5.0.0", + "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.0.3.tgz" + }, + "har-validator": { + "version": "2.0.2", + "from": "har-validator@>=2.0.2 <2.1.0", + "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-2.0.2.tgz", + "dependencies": { + "commander": { + "version": "2.9.0", + "from": "commander@>=2.8.1 <3.0.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.9.0.tgz" + } + } + }, + "has-ansi": { + "version": "2.0.0", + "from": "has-ansi@>=2.0.0 <3.0.0", + "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz" + }, + "has-binary": { + "version": "0.1.6", + "from": "has-binary@0.1.6", + "resolved": "https://registry.npmjs.org/has-binary/-/has-binary-0.1.6.tgz" + }, + "has-binary-data": { + "version": "0.1.3", + "from": "has-binary-data@0.1.3", + "resolved": "https://registry.npmjs.org/has-binary-data/-/has-binary-data-0.1.3.tgz" + }, + "has-color": { + "version": "0.1.7", + "from": "has-color@>=0.1.0 <0.2.0", + "resolved": "https://registry.npmjs.org/has-color/-/has-color-0.1.7.tgz" + }, + "has-cors": { + "version": "1.0.3", + "from": "has-cors@1.0.3", + "resolved": "https://registry.npmjs.org/has-cors/-/has-cors-1.0.3.tgz", + "dependencies": { + "global": { + "version": "2.0.1", + "from": "https://github.com/component/global/archive/v2.0.1.tar.gz", + "resolved": "https://github.com/component/global/archive/v2.0.1.tar.gz" + } + } + }, + "has-flag": { + "version": "1.0.0", + "from": "has-flag@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz" + }, + "has-unicode": { + "version": "1.0.1", + "from": "has-unicode@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-1.0.1.tgz" + }, + "hawk": { + "version": "3.1.0", + "from": "hawk@>=3.1.0 <3.2.0", + "resolved": "https://registry.npmjs.org/hawk/-/hawk-3.1.0.tgz" + }, + "hoek": { + "version": "2.16.3", + "from": "hoek@>=2.0.0 <3.0.0", + "resolved": "https://registry.npmjs.org/hoek/-/hoek-2.16.3.tgz" + }, + "hoist-non-react-statics": { + "version": "1.0.3", + "from": "hoist-non-react-statics@>=1.0.3 <2.0.0", + "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-1.0.3.tgz" + }, + "home-or-tmp": { + "version": "1.0.0", + "from": "home-or-tmp@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/home-or-tmp/-/home-or-tmp-1.0.0.tgz" + }, + "hosted-git-info": { + "version": "2.1.4", + "from": "hosted-git-info@>=2.0.2 <3.0.0", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.1.4.tgz" + }, + "htmlparser2": { + "version": "3.8.3", + "from": "htmlparser2@3.8.3", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.8.3.tgz" + }, + "http-browserify": { + "version": "1.7.0", + "from": "http-browserify@>=1.3.2 <2.0.0", + "resolved": "https://registry.npmjs.org/http-browserify/-/http-browserify-1.7.0.tgz" + }, + "http-errors": { + "version": "1.3.1", + "from": "http-errors@>=1.3.1 <1.4.0", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.3.1.tgz" + }, + "http-proxy": { + "version": "1.11.2", + "from": "http-proxy@>=1.11.2 <2.0.0", + "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.11.2.tgz" + }, + "http-signature": { + "version": "0.11.0", + "from": "http-signature@>=0.11.0 <0.12.0", + "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-0.11.0.tgz" + }, + "https-browserify": { + "version": "0.0.0", + "from": "https-browserify@0.0.0", + "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-0.0.0.tgz" + }, + "i": { + "version": "0.3.3", + "from": "i@>=0.3.0 <0.4.0", + "resolved": "https://registry.npmjs.org/i/-/i-0.3.3.tgz" + }, + "iconv-lite": { + "version": "0.4.13", + "from": "iconv-lite@>=0.4.5 <0.5.0", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.13.tgz" + }, + "ieee754": { + "version": "1.1.6", + "from": "ieee754@>=1.1.4 <2.0.0", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.6.tgz" }, "immutable": { "version": "3.7.5", @@ -802,17 +2277,217 @@ "source-map": { "version": "0.1.43", "from": "source-map@>=0.1.0 <0.2.0", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.1.43.tgz", - "dependencies": { - "amdefine": { - "version": "1.0.0", - "from": "amdefine@>=0.0.4", - "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.0.tgz" - } - } + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.1.43.tgz" + } + } + }, + "indent-string": { + "version": "2.1.0", + "from": "indent-string@>=2.1.0 <3.0.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-2.1.0.tgz", + "dependencies": { + "repeating": { + "version": "2.0.0", + "from": "repeating@>=2.0.0 <3.0.0", + "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.0.tgz" } } }, + "indexes-of": { + "version": "1.0.1", + "from": "indexes-of@>=1.0.1 <2.0.0", + "resolved": "https://registry.npmjs.org/indexes-of/-/indexes-of-1.0.1.tgz" + }, + "indexof": { + "version": "0.0.1", + "from": "indexof@0.0.1", + "resolved": "https://registry.npmjs.org/indexof/-/indexof-0.0.1.tgz" + }, + "inflight": { + "version": "1.0.4", + "from": "inflight@>=1.0.4 <2.0.0", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.4.tgz" + }, + "inherits": { + "version": "2.0.1", + "from": "inherits@>=2.0.0 <3.0.0", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz" + }, + "ini": { + "version": "1.3.4", + "from": "ini@>=1.2.0 <2.0.0", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.4.tgz" + }, + "inquirer": { + "version": "0.9.0", + "from": "inquirer@>=0.9.0 <0.10.0", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-0.9.0.tgz" + }, + "install": { + "version": "0.1.8", + "from": "install@>=0.1.7 <0.2.0", + "resolved": "https://registry.npmjs.org/install/-/install-0.1.8.tgz" + }, + "interpret": { + "version": "0.6.6", + "from": "interpret@>=0.6.4 <0.7.0", + "resolved": "https://registry.npmjs.org/interpret/-/interpret-0.6.6.tgz" + }, + "invariant": { + "version": "2.1.1", + "from": "invariant@>=2.1.0 <3.0.0", + "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.1.1.tgz" + }, + "invert-kv": { + "version": "1.0.0", + "from": "invert-kv@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz" + }, + "ipaddr.js": { + "version": "1.0.1", + "from": "ipaddr.js@1.0.1", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.0.1.tgz" + }, + "is-absolute": { + "version": "0.1.7", + "from": "is-absolute@>=0.1.7 <0.2.0", + "resolved": "https://registry.npmjs.org/is-absolute/-/is-absolute-0.1.7.tgz" + }, + "is-absolute-url": { + "version": "2.0.0", + "from": "is-absolute-url@>=2.0.0 <3.0.0", + "resolved": "https://registry.npmjs.org/is-absolute-url/-/is-absolute-url-2.0.0.tgz" + }, + "is-array": { + "version": "1.0.1", + "from": "is-array@>=1.0.1 <2.0.0", + "resolved": "https://registry.npmjs.org/is-array/-/is-array-1.0.1.tgz" + }, + "is-binary-path": { + "version": "1.0.1", + "from": "is-binary-path@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz" + }, + "is-buffer": { + "version": "1.1.0", + "from": "is-buffer@>=1.0.2 <2.0.0", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.0.tgz" + }, + "is-builtin-module": { + "version": "1.0.0", + "from": "is-builtin-module@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-1.0.0.tgz" + }, + "is-dotfile": { + "version": "1.0.1", + "from": "is-dotfile@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/is-dotfile/-/is-dotfile-1.0.1.tgz" + }, + "is-equal-shallow": { + "version": "0.1.3", + "from": "is-equal-shallow@>=0.1.1 <0.2.0", + "resolved": "https://registry.npmjs.org/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz" + }, + "is-extglob": { + "version": "1.0.0", + "from": "is-extglob@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz" + }, + "is-finite": { + "version": "1.0.1", + "from": "is-finite@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.1.tgz" + }, + "is-glob": { + "version": "2.0.1", + "from": "is-glob@>=2.0.0 <3.0.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz" + }, + "is-integer": { + "version": "1.0.6", + "from": "is-integer@>=1.0.4 <2.0.0", + "resolved": "https://registry.npmjs.org/is-integer/-/is-integer-1.0.6.tgz" + }, + "is-my-json-valid": { + "version": "2.12.2", + "from": "is-my-json-valid@>=2.10.0 <3.0.0", + "resolved": "https://registry.npmjs.org/is-my-json-valid/-/is-my-json-valid-2.12.2.tgz" + }, + "is-number": { + "version": "1.1.2", + "from": "is-number@>=1.1.2 <2.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-1.1.2.tgz" + }, + "is-path-cwd": { + "version": "1.0.0", + "from": "is-path-cwd@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-1.0.0.tgz" + }, + "is-path-in-cwd": { + "version": "1.0.0", + "from": "is-path-in-cwd@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-1.0.0.tgz" + }, + "is-path-inside": { + "version": "1.0.0", + "from": "is-path-inside@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-1.0.0.tgz" + }, + "is-plain-obj": { + "version": "1.0.0", + "from": "is-plain-obj@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.0.0.tgz" + }, + "is-primitive": { + "version": "2.0.0", + "from": "is-primitive@>=2.0.0 <3.0.0", + "resolved": "https://registry.npmjs.org/is-primitive/-/is-primitive-2.0.0.tgz" + }, + "is-promise": { + "version": "2.1.0", + "from": "is-promise@>=2.0.0 <3.0.0", + "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.1.0.tgz" + }, + "is-property": { + "version": "1.0.2", + "from": "is-property@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/is-property/-/is-property-1.0.2.tgz" + }, + "is-relative": { + "version": "0.1.3", + "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", + "resolved": "https://registry.npmjs.org/is-svg/-/is-svg-1.1.1.tgz" + }, + "is-utf8": { + "version": "0.2.0", + "from": "is-utf8@>=0.2.0 <0.3.0", + "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.0.tgz" + }, + "isarray": { + "version": "0.0.1", + "from": "isarray@0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz" + }, + "isobject": { + "version": "1.0.2", + "from": "isobject@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-1.0.2.tgz" + }, + "isstream": { + "version": "0.1.2", + "from": "isstream@>=0.1.0 <0.2.0", + "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz" + }, "jquery": { "version": "2.1.4", "from": "jquery@>=2.1.4 <3.0.0", @@ -823,1820 +2498,2137 @@ "from": "jquery-ujs@>=1.1.0-1 <2.0.0", "resolved": "https://registry.npmjs.org/jquery-ujs/-/jquery-ujs-1.1.0-1.tgz" }, - "loader-utils": { - "version": "0.2.11", - "from": "loader-utils@>=0.2.11 <0.3.0", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-0.2.11.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-tokens": { + "version": "1.0.1", + "from": "js-tokens@1.0.1", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-1.0.1.tgz" + }, + "js-yaml": { + "version": "3.3.1", + "from": "js-yaml@>=3.3.1 <3.4.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.3.1.tgz", "dependencies": { - "big.js": { - "version": "3.1.3", - "from": "big.js@>=3.0.2 <4.0.0", - "resolved": "https://registry.npmjs.org/big.js/-/big.js-3.1.3.tgz" - }, - "json5": { - "version": "0.4.0", - "from": "json5@>=0.4.0 <0.5.0", - "resolved": "https://registry.npmjs.org/json5/-/json5-0.4.0.tgz" + "esprima": { + "version": "2.2.0", + "from": "esprima@>=2.2.0 <2.3.0", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-2.2.0.tgz" } } }, - "marked": { - "version": "0.3.5", - "from": "marked@>=0.3.5 <0.4.0", - "resolved": "https://registry.npmjs.org/marked/-/marked-0.3.5.tgz" + "jscs-jsdoc": { + "version": "1.2.0", + "from": "jscs-jsdoc@1.2.0", + "resolved": "https://registry.npmjs.org/jscs-jsdoc/-/jscs-jsdoc-1.2.0.tgz" }, - "react": { - "version": "0.14.0", - "from": "react@>=0.14.0 <0.15.0", - "resolved": "https://registry.npmjs.org/react/-/react-0.14.0.tgz", + "jsdoctypeparser": { + "version": "1.2.0", + "from": "jsdoctypeparser@>=1.2.0 <1.3.0", + "resolved": "https://registry.npmjs.org/jsdoctypeparser/-/jsdoctypeparser-1.2.0.tgz" + }, + "jsesc": { + "version": "0.5.0", + "from": "jsesc@>=0.5.0 <0.6.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz" + }, + "json-stable-stringify": { + "version": "1.0.0", + "from": "json-stable-stringify@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-1.0.0.tgz" + }, + "json-stringify-safe": { + "version": "5.0.1", + "from": "json-stringify-safe@>=5.0.1 <5.1.0", + "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz" + }, + "json3": { + "version": "3.2.6", + "from": "json3@3.2.6", + "resolved": "https://registry.npmjs.org/json3/-/json3-3.2.6.tgz" + }, + "json5": { + "version": "0.4.0", + "from": "json5@>=0.4.0 <0.5.0", + "resolved": "https://registry.npmjs.org/json5/-/json5-0.4.0.tgz" + }, + "jsonify": { + "version": "0.0.0", + "from": "jsonify@>=0.0.0 <0.1.0", + "resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz" + }, + "jsonlint": { + "version": "1.6.2", + "from": "jsonlint@>=1.6.2 <1.7.0", + "resolved": "https://registry.npmjs.org/jsonlint/-/jsonlint-1.6.2.tgz" + }, + "jsonpointer": { + "version": "2.0.0", + "from": "jsonpointer@2.0.0", + "resolved": "https://registry.npmjs.org/jsonpointer/-/jsonpointer-2.0.0.tgz" + }, + "jstransform": { + "version": "10.1.0", + "from": "jstransform@>=10.0.1 <11.0.0", + "resolved": "https://registry.npmjs.org/jstransform/-/jstransform-10.1.0.tgz", "dependencies": { - "envify": { - "version": "3.4.0", - "from": "envify@>=3.0.0 <4.0.0", - "resolved": "https://registry.npmjs.org/envify/-/envify-3.4.0.tgz", - "dependencies": { - "through": { - "version": "2.3.8", - "from": "through@>=2.3.4 <2.4.0", - "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz" - }, - "jstransform": { - "version": "10.1.0", - "from": "jstransform@>=10.0.1 <11.0.0", - "resolved": "https://registry.npmjs.org/jstransform/-/jstransform-10.1.0.tgz", - "dependencies": { - "base62": { - "version": "0.1.1", - "from": "base62@0.1.1", - "resolved": "https://registry.npmjs.org/base62/-/base62-0.1.1.tgz" - }, - "esprima-fb": { - "version": "13001.1001.0-dev-harmony-fb", - "from": "esprima-fb@13001.1001.0-dev-harmony-fb", - "resolved": "https://registry.npmjs.org/esprima-fb/-/esprima-fb-13001.1001.0-dev-harmony-fb.tgz" - }, - "source-map": { - "version": "0.1.31", - "from": "source-map@0.1.31", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.1.31.tgz", - "dependencies": { - "amdefine": { - "version": "1.0.0", - "from": "amdefine@>=0.0.4", - "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.0.tgz" - } - } - } - } - } - } + "esprima-fb": { + "version": "13001.1001.0-dev-harmony-fb", + "from": "esprima-fb@13001.1001.0-dev-harmony-fb", + "resolved": "https://registry.npmjs.org/esprima-fb/-/esprima-fb-13001.1001.0-dev-harmony-fb.tgz" }, - "fbjs": { - "version": "0.3.1", - "from": "fbjs@>=0.3.1 <0.4.0", - "resolved": "https://registry.npmjs.org/fbjs/-/fbjs-0.3.1.tgz", - "dependencies": { - "core-js": { - "version": "1.2.1", - "from": "core-js@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-1.2.1.tgz" - }, - "promise": { - "version": "7.0.4", - "from": "promise@>=7.0.3 <8.0.0", - "resolved": "https://registry.npmjs.org/promise/-/promise-7.0.4.tgz", - "dependencies": { - "asap": { - "version": "2.0.3", - "from": "asap@>=2.0.3 <2.1.0", - "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.3.tgz" - } - } - }, - "ua-parser-js": { - "version": "0.7.9", - "from": "ua-parser-js@>=0.7.9 <0.8.0", - "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.9.tgz" - }, - "whatwg-fetch": { - "version": "0.9.0", - "from": "whatwg-fetch@>=0.9.0 <0.10.0", - "resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-0.9.0.tgz" - } - } + "source-map": { + "version": "0.1.31", + "from": "source-map@0.1.31", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.1.31.tgz" } } }, - "react-bootstrap": { - "version": "0.27.1", - "from": "react-bootstrap@>=0.27.0 <0.28.0", - "resolved": "https://registry.npmjs.org/react-bootstrap/-/react-bootstrap-0.27.1.tgz", + "jstransformer": { + "version": "0.0.2", + "from": "jstransformer@0.0.2", + "resolved": "https://registry.npmjs.org/jstransformer/-/jstransformer-0.0.2.tgz", "dependencies": { - "babel-runtime": { - "version": "5.8.25", - "from": "babel-runtime@>=5.8.24 <6.0.0", - "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-5.8.25.tgz", - "dependencies": { - "core-js": { - "version": "1.2.1", - "from": "core-js@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-1.2.1.tgz" - } - } - }, - "classnames": { - "version": "2.1.5", - "from": "classnames@>=2.1.3 <3.0.0", - "resolved": "https://registry.npmjs.org/classnames/-/classnames-2.1.5.tgz" - }, - "dom-helpers": { - "version": "2.4.0", - "from": "dom-helpers@>=2.2.4 <3.0.0", - "resolved": "https://registry.npmjs.org/dom-helpers/-/dom-helpers-2.4.0.tgz" - }, - "keycode": { - "version": "2.1.0", - "from": "keycode@>=2.0.0 <3.0.0", - "resolved": "https://registry.npmjs.org/keycode/-/keycode-2.1.0.tgz" - }, - "lodash-compat": { - "version": "3.10.1", - "from": "lodash-compat@>=3.10.1 <4.0.0", - "resolved": "https://registry.npmjs.org/lodash-compat/-/lodash-compat-3.10.1.tgz" - }, - "react-overlays": { - "version": "0.5.0", - "from": "react-overlays@>=0.5.0 <0.6.0", - "resolved": "https://registry.npmjs.org/react-overlays/-/react-overlays-0.5.0.tgz", - "dependencies": { - "react-prop-types": { - "version": "0.2.2", - "from": "react-prop-types@>=0.2.1 <0.3.0", - "resolved": "https://registry.npmjs.org/react-prop-types/-/react-prop-types-0.2.2.tgz" - } - } + "asap": { + "version": "1.0.0", + "from": "asap@>=1.0.0 <1.1.0", + "resolved": "https://registry.npmjs.org/asap/-/asap-1.0.0.tgz" }, - "uncontrollable": { - "version": "3.1.3", - "from": "uncontrollable@>=3.1.1 <4.0.0", - "resolved": "https://registry.npmjs.org/uncontrollable/-/uncontrollable-3.1.3.tgz", - "dependencies": { - "invariant": { - "version": "2.1.1", - "from": "invariant@>=2.1.0 <3.0.0", - "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.1.1.tgz", - "dependencies": { - "loose-envify": { - "version": "1.0.0", - "from": "loose-envify@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.0.0.tgz", - "dependencies": { - "js-tokens": { - "version": "1.0.1", - "from": "js-tokens@>=1.0.1 <2.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-1.0.1.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", + "resolved": "https://registry.npmjs.org/JSV/-/JSV-4.0.2.tgz" + }, + "keycode": { + "version": "2.1.0", + "from": "keycode@>=2.0.0 <3.0.0", + "resolved": "https://registry.npmjs.org/keycode/-/keycode-2.1.0.tgz" + }, + "kind-of": { + "version": "2.0.1", + "from": "kind-of@>=2.0.0 <3.0.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-2.0.1.tgz" + }, + "lazy-cache": { + "version": "0.2.3", + "from": "lazy-cache@>=0.2.3 <0.3.0", + "resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-0.2.3.tgz" + }, + "lcid": { + "version": "1.0.0", + "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", + "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" + }, + "line-numbers": { + "version": "0.2.0", + "from": "line-numbers@0.2.0", + "resolved": "https://registry.npmjs.org/line-numbers/-/line-numbers-0.2.0.tgz" + }, + "load-json-file": { + "version": "1.0.1", + "from": "load-json-file@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.0.1.tgz", + "dependencies": { + "graceful-fs": { + "version": "4.1.2", + "from": "graceful-fs@>=4.1.2 <5.0.0", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.2.tgz" + } + } + }, + "loader-utils": { + "version": "0.2.11", + "from": "loader-utils@>=0.2.11 <0.3.0", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-0.2.11.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" + }, + "lodash-compat": { + "version": "3.10.1", + "from": "lodash-compat@>=3.10.1 <4.0.0", + "resolved": "https://registry.npmjs.org/lodash-compat/-/lodash-compat-3.10.1.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" + }, + "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", + "resolved": "https://registry.npmjs.org/lodash._baseflatten/-/lodash._baseflatten-3.1.4.tgz" + }, + "lodash._basefor": { + "version": "3.0.2", + "from": "lodash._basefor@>=3.0.0 <4.0.0", + "resolved": "https://registry.npmjs.org/lodash._basefor/-/lodash._basefor-3.0.2.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._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", + "resolved": "https://registry.npmjs.org/lodash._getnative/-/lodash._getnative-3.9.1.tgz" + }, + "lodash._isiterateecall": { + "version": "3.0.9", + "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.assign": { + "version": "3.2.0", + "from": "lodash.assign@>=3.0.0 <4.0.0", + "resolved": "https://registry.npmjs.org/lodash.assign/-/lodash.assign-3.2.0.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.flatten": { + "version": "3.0.2", + "from": "lodash.flatten@>=3.0.2 <4.0.0", + "resolved": "https://registry.npmjs.org/lodash.flatten/-/lodash.flatten-3.0.2.tgz" + }, + "lodash.isarguments": { + "version": "3.0.4", + "from": "lodash.isarguments@>=3.0.0 <4.0.0", + "resolved": "https://registry.npmjs.org/lodash.isarguments/-/lodash.isarguments-3.0.4.tgz" + }, + "lodash.isarray": { + "version": "3.0.4", + "from": "lodash.isarray@>=3.0.0 <4.0.0", + "resolved": "https://registry.npmjs.org/lodash.isarray/-/lodash.isarray-3.0.4.tgz" + }, + "lodash.isplainobject": { + "version": "3.2.0", + "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.2", + "from": "lodash.istypedarray@>=3.0.0 <4.0.0", + "resolved": "https://registry.npmjs.org/lodash.istypedarray/-/lodash.istypedarray-3.0.2.tgz" + }, + "lodash.keys": { + "version": "3.1.2", + "from": "lodash.keys@>=3.0.0 <4.0.0", + "resolved": "https://registry.npmjs.org/lodash.keys/-/lodash.keys-3.1.2.tgz" + }, + "lodash.keysin": { + "version": "3.0.8", + "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.1.1", + "from": "lodash.pad@>=3.0.0 <4.0.0", + "resolved": "https://registry.npmjs.org/lodash.pad/-/lodash.pad-3.1.1.tgz" + }, + "lodash.padleft": { + "version": "3.1.1", + "from": "lodash.padleft@>=3.0.0 <4.0.0", + "resolved": "https://registry.npmjs.org/lodash.padleft/-/lodash.padleft-3.1.1.tgz" + }, + "lodash.padright": { + "version": "3.1.1", + "from": "lodash.padright@>=3.0.0 <4.0.0", + "resolved": "https://registry.npmjs.org/lodash.padright/-/lodash.padright-3.1.1.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.repeat": { + "version": "3.0.1", + "from": "lodash.repeat@>=3.0.0 <4.0.0", + "resolved": "https://registry.npmjs.org/lodash.repeat/-/lodash.repeat-3.0.1.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" + }, + "longest": { + "version": "1.0.1", + "from": "longest@>=1.0.1 <2.0.0", + "resolved": "https://registry.npmjs.org/longest/-/longest-1.0.1.tgz" + }, + "loose-envify": { + "version": "1.0.0", + "from": "loose-envify@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.0.0.tgz" + }, + "loud-rejection": { + "version": "1.0.0", + "from": "loud-rejection@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/loud-rejection/-/loud-rejection-1.0.0.tgz" + }, + "lru-cache": { + "version": "2.7.0", + "from": "lru-cache@>=2.0.0 <3.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-2.7.0.tgz" + }, + "map-obj": { + "version": "1.0.1", + "from": "map-obj@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz" + }, + "marked": { + "version": "0.3.5", + "from": "marked@>=0.3.5 <0.4.0", + "resolved": "https://registry.npmjs.org/marked/-/marked-0.3.5.tgz" + }, + "media-typer": { + "version": "0.3.0", + "from": "media-typer@0.3.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz" + }, + "memory-fs": { + "version": "0.2.0", + "from": "memory-fs@>=0.2.0 <0.3.0", + "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.2.0.tgz" + }, + "meow": { + "version": "3.4.2", + "from": "meow@>=3.3.0 <4.0.0", + "resolved": "https://registry.npmjs.org/meow/-/meow-3.4.2.tgz", + "dependencies": { + "object-assign": { + "version": "4.0.1", + "from": "object-assign@>=4.0.1 <5.0.0", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.0.1.tgz" + } + } + }, + "merge-descriptors": { + "version": "1.0.0", + "from": "merge-descriptors@1.0.0", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.0.tgz" + }, + "methods": { + "version": "1.1.1", + "from": "methods@>=1.1.1 <1.2.0", + "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.1.tgz" + }, + "micromatch": { + "version": "2.2.0", + "from": "micromatch@>=2.1.5 <3.0.0", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-2.2.0.tgz", + "dependencies": { + "is-glob": { + "version": "1.1.3", + "from": "is-glob@>=1.1.3 <2.0.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-1.1.3.tgz" }, - "react-prop-types": { - "version": "0.3.0", - "from": "react-prop-types@>=0.3.0 <0.4.0", - "resolved": "https://registry.npmjs.org/react-prop-types/-/react-prop-types-0.3.0.tgz" + "kind-of": { + "version": "1.1.0", + "from": "kind-of@>=1.1.0 <2.0.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-1.1.0.tgz" + } + } + }, + "mime": { + "version": "1.3.4", + "from": "mime@1.3.4", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.3.4.tgz" + }, + "mime-db": { + "version": "1.19.0", + "from": "mime-db@>=1.19.0 <1.20.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.19.0.tgz" + }, + "mime-types": { + "version": "2.1.7", + "from": "mime-types@>=2.1.7 <2.2.0", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.7.tgz" + }, + "min-document": { + "version": "2.17.0", + "from": "min-document@>=2.6.1 <3.0.0", + "resolved": "https://registry.npmjs.org/min-document/-/min-document-2.17.0.tgz" + }, + "minimatch": { + "version": "2.0.10", + "from": "minimatch@>=2.0.3 <3.0.0", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-2.0.10.tgz" + }, + "minimist": { + "version": "1.2.0", + "from": "minimist@>=1.1.0 <2.0.0", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz" + }, + "mkdirp": { + "version": "0.5.1", + "from": "mkdirp@>=0.5.1 <0.6.0", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", + "dependencies": { + "minimist": { + "version": "0.0.8", + "from": "minimist@0.0.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz" + } + } + }, + "ms": { + "version": "0.7.1", + "from": "ms@0.7.1", + "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.1.tgz" + }, + "mute-stream": { + "version": "0.0.4", + "from": "mute-stream@0.0.4", + "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.4.tgz" + }, + "nan": { + "version": "2.1.0", + "from": "nan@>=2.0.0", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.1.0.tgz" + }, + "natural-compare": { + "version": "1.2.2", + "from": "natural-compare@>=1.2.2 <1.3.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.2.2.tgz" + }, + "ncp": { + "version": "0.4.2", + "from": "ncp@>=0.4.0 <0.5.0", + "resolved": "https://registry.npmjs.org/ncp/-/ncp-0.4.2.tgz" + }, + "negotiator": { + "version": "0.5.3", + "from": "negotiator@0.5.3", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.5.3.tgz" + }, + "node-gyp": { + "version": "3.0.3", + "from": "node-gyp@>=3.0.1 <4.0.0", + "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-3.0.3.tgz", + "dependencies": { + "graceful-fs": { + "version": "4.1.2", + "from": "graceful-fs@>=4.1.2 <5.0.0", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.2.tgz" }, - "warning": { - "version": "2.1.0", - "from": "warning@>=2.0.0 <3.0.0", - "resolved": "https://registry.npmjs.org/warning/-/warning-2.1.0.tgz", - "dependencies": { - "loose-envify": { - "version": "1.0.0", - "from": "loose-envify@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.0.0.tgz", - "dependencies": { - "js-tokens": { - "version": "1.0.1", - "from": "js-tokens@>=1.0.1 <2.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-1.0.1.tgz" - } - } - } - } + "minimatch": { + "version": "1.0.0", + "from": "minimatch@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-1.0.0.tgz" } } }, - "react-dom": { - "version": "0.14.0", - "from": "react-dom@>=0.14.0 <0.15.0", - "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-0.14.0.tgz" + "node-libs-browser": { + "version": "0.5.3", + "from": "node-libs-browser@>=0.4.0 <=0.6.0", + "resolved": "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-0.5.3.tgz" }, - "react-redux": { - "version": "3.1.0", - "from": "react-redux@>=3.1.0 <4.0.0", - "resolved": "https://registry.npmjs.org/react-redux/-/react-redux-3.1.0.tgz", + "node-uuid": { + "version": "1.4.3", + "from": "node-uuid@>=1.4.2 <2.0.0", + "resolved": "https://registry.npmjs.org/node-uuid/-/node-uuid-1.4.3.tgz" + }, + "nomnom": { + "version": "1.8.1", + "from": "nomnom@>=1.5.0", + "resolved": "https://registry.npmjs.org/nomnom/-/nomnom-1.8.1.tgz", "dependencies": { - "hoist-non-react-statics": { - "version": "1.0.3", - "from": "hoist-non-react-statics@>=1.0.3 <2.0.0", - "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-1.0.3.tgz" + "ansi-styles": { + "version": "1.0.0", + "from": "ansi-styles@>=1.0.0 <1.1.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-1.0.0.tgz" }, - "invariant": { - "version": "2.1.1", - "from": "invariant@>=2.0.0 <3.0.0", - "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.1.1.tgz", - "dependencies": { - "loose-envify": { - "version": "1.0.0", - "from": "loose-envify@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.0.0.tgz", - "dependencies": { - "js-tokens": { - "version": "1.0.1", - "from": "js-tokens@>=1.0.1 <2.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-1.0.1.tgz" - } - } - } - } + "chalk": { + "version": "0.4.0", + "from": "chalk@>=0.4.0 <0.5.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-0.4.0.tgz" + }, + "strip-ansi": { + "version": "0.1.1", + "from": "strip-ansi@>=0.1.0 <0.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-0.1.1.tgz" } } }, - "redux": { - "version": "3.0.2", - "from": "redux@>=3.0.2 <4.0.0", - "resolved": "https://registry.npmjs.org/redux/-/redux-3.0.2.tgz" + "nopt": { + "version": "3.0.4", + "from": "nopt@>=2.0.0 <3.0.0||>=3.0.0 <4.0.0", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-3.0.4.tgz" }, - "redux-promise": { - "version": "0.5.0", - "from": "redux-promise@>=0.5.0 <0.6.0", - "resolved": "https://registry.npmjs.org/redux-promise/-/redux-promise-0.5.0.tgz", + "normalize-package-data": { + "version": "2.3.4", + "from": "normalize-package-data@>=2.3.4 <3.0.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.3.4.tgz" + }, + "normalize-url": { + "version": "1.3.1", + "from": "normalize-url@>=1.3.1 <2.0.0", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-1.3.1.tgz", "dependencies": { - "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", - "dependencies": { - "lodash.isplainobject": { - "version": "3.2.0", - "from": "lodash.isplainobject@>=3.2.0 <4.0.0", - "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-3.2.0.tgz", - "dependencies": { - "lodash._basefor": { - "version": "3.0.2", - "from": "lodash._basefor@>=3.0.0 <4.0.0", - "resolved": "https://registry.npmjs.org/lodash._basefor/-/lodash._basefor-3.0.2.tgz" - }, - "lodash.isarguments": { - "version": "3.0.4", - "from": "lodash.isarguments@>=3.0.0 <4.0.0", - "resolved": "https://registry.npmjs.org/lodash.isarguments/-/lodash.isarguments-3.0.4.tgz" - }, - "lodash.keysin": { - "version": "3.0.8", - "from": "lodash.keysin@>=3.0.0 <4.0.0", - "resolved": "https://registry.npmjs.org/lodash.keysin/-/lodash.keysin-3.0.8.tgz", - "dependencies": { - "lodash.isarray": { - "version": "3.0.4", - "from": "lodash.isarray@>=3.0.0 <4.0.0", - "resolved": "https://registry.npmjs.org/lodash.isarray/-/lodash.isarray-3.0.4.tgz" - } - } - } - } - } - } + "object-assign": { + "version": "4.0.1", + "from": "object-assign@>=4.0.1 <5.0.0", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.0.1.tgz" } } }, - "redux-thunk": { + "npmconf": { + "version": "2.1.2", + "from": "npmconf@>=2.1.2 <3.0.0", + "resolved": "https://registry.npmjs.org/npmconf/-/npmconf-2.1.2.tgz", + "dependencies": { + "semver": { + "version": "4.3.6", + "from": "semver@>=2.0.0 <3.0.0||>=3.0.0 <4.0.0||>=4.0.0 <5.0.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-4.3.6.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" + }, + "num2fraction": { + "version": "1.2.2", + "from": "num2fraction@>=1.2.2 <2.0.0", + "resolved": "https://registry.npmjs.org/num2fraction/-/num2fraction-1.2.2.tgz" + }, + "number-is-nan": { "version": "1.0.0", - "from": "redux-thunk@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/redux-thunk/-/redux-thunk-1.0.0.tgz" + "from": "number-is-nan@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.0.tgz" }, - "sleep": { + "oauth-sign": { + "version": "0.8.0", + "from": "oauth-sign@>=0.8.0 <0.9.0", + "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.8.0.tgz" + }, + "object-assign": { "version": "3.0.0", - "from": "sleep@>=3.0.0 <4.0.0", - "resolved": "https://registry.npmjs.org/sleep/-/sleep-3.0.0.tgz", + "from": "object-assign@>=3.0.0 <4.0.0", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-3.0.0.tgz" + }, + "object-component": { + "version": "0.0.3", + "from": "object-component@0.0.3", + "resolved": "https://registry.npmjs.org/object-component/-/object-component-0.0.3.tgz" + }, + "object-keys": { + "version": "1.0.1", + "from": "object-keys@1.0.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.0.1.tgz" + }, + "object.omit": { + "version": "1.1.0", + "from": "object.omit@>=1.1.0 <2.0.0", + "resolved": "https://registry.npmjs.org/object.omit/-/object.omit-1.1.0.tgz" + }, + "on-finished": { + "version": "2.3.0", + "from": "on-finished@>=2.3.0 <2.4.0", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz" + }, + "on-headers": { + "version": "1.0.1", + "from": "on-headers@>=1.0.1 <1.1.0", + "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.1.tgz" + }, + "once": { + "version": "1.3.2", + "from": "once@>=1.3.0 <2.0.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.3.2.tgz" + }, + "optimist": { + "version": "0.6.1", + "from": "optimist@>=0.6.0 <0.7.0", + "resolved": "https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz", "dependencies": { - "nan": { - "version": "2.1.0", - "from": "nan@>=2.0.0", - "resolved": "https://registry.npmjs.org/nan/-/nan-2.1.0.tgz" + "minimist": { + "version": "0.0.10", + "from": "minimist@>=0.0.1 <0.1.0", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.10.tgz" } } }, - "webpack": { - "version": "1.12.2", - "from": "webpack@>=1.12.2 <2.0.0", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-1.12.2.tgz", + "optionator": { + "version": "0.5.0", + "from": "optionator@>=0.5.0 <0.6.0", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.5.0.tgz" + }, + "options": { + "version": "0.0.6", + "from": "options@>=0.0.5", + "resolved": "https://registry.npmjs.org/options/-/options-0.0.6.tgz" + }, + "os-browserify": { + "version": "0.1.2", + "from": "os-browserify@>=0.1.2 <0.2.0", + "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.1.2.tgz" + }, + "os-homedir": { + "version": "1.0.1", + "from": "os-homedir@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.1.tgz" + }, + "os-locale": { + "version": "1.4.0", + "from": "os-locale@>=1.4.0 <2.0.0", + "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-1.4.0.tgz" + }, + "os-shim": { + "version": "0.1.3", + "from": "os-shim@>=0.1.2 <0.2.0", + "resolved": "https://registry.npmjs.org/os-shim/-/os-shim-0.1.3.tgz" + }, + "os-tmpdir": { + "version": "1.0.1", + "from": "os-tmpdir@>=1.0.1 <2.0.0", + "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.1.tgz" + }, + "osenv": { + "version": "0.1.3", + "from": "osenv@>=0.0.0 <1.0.0", + "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.3.tgz" + }, + "output-file-sync": { + "version": "1.1.1", + "from": "output-file-sync@>=1.1.0 <2.0.0", + "resolved": "https://registry.npmjs.org/output-file-sync/-/output-file-sync-1.1.1.tgz" + }, + "pako": { + "version": "0.2.8", + "from": "pako@>=0.2.0 <0.3.0", + "resolved": "https://registry.npmjs.org/pako/-/pako-0.2.8.tgz" + }, + "parse-glob": { + "version": "3.0.4", + "from": "parse-glob@>=3.0.1 <4.0.0", + "resolved": "https://registry.npmjs.org/parse-glob/-/parse-glob-3.0.4.tgz" + }, + "parse-json": { + "version": "2.2.0", + "from": "parse-json@>=2.2.0 <3.0.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz" + }, + "parsejson": { + "version": "0.0.1", + "from": "parsejson@0.0.1", + "resolved": "https://registry.npmjs.org/parsejson/-/parsejson-0.0.1.tgz" + }, + "parseqs": { + "version": "0.0.2", + "from": "parseqs@0.0.2", + "resolved": "https://registry.npmjs.org/parseqs/-/parseqs-0.0.2.tgz" + }, + "parseuri": { + "version": "0.0.2", + "from": "parseuri@0.0.2", + "resolved": "https://registry.npmjs.org/parseuri/-/parseuri-0.0.2.tgz" + }, + "parseurl": { + "version": "1.3.0", + "from": "parseurl@>=1.3.0 <1.4.0", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.0.tgz" + }, + "path-array": { + "version": "1.0.0", + "from": "path-array@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/path-array/-/path-array-1.0.0.tgz" + }, + "path-browserify": { + "version": "0.0.0", + "from": "path-browserify@0.0.0", + "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.0.tgz" + }, + "path-exists": { + "version": "1.0.0", + "from": "path-exists@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-1.0.0.tgz" + }, + "path-is-absolute": { + "version": "1.0.0", + "from": "path-is-absolute@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.0.tgz" + }, + "path-is-inside": { + "version": "1.0.1", + "from": "path-is-inside@>=1.0.1 <2.0.0", + "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.1.tgz" + }, + "path-parse": { + "version": "1.0.5", + "from": "path-parse@>=1.0.5 <2.0.0", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.5.tgz" + }, + "path-to-regexp": { + "version": "0.1.7", + "from": "path-to-regexp@0.1.7", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz" + }, + "path-type": { + "version": "1.0.0", + "from": "path-type@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.0.0.tgz", "dependencies": { - "async": { - "version": "1.4.2", - "from": "async@>=1.3.0 <2.0.0", - "resolved": "https://registry.npmjs.org/async/-/async-1.4.2.tgz" - }, - "clone": { - "version": "1.0.2", - "from": "clone@>=1.0.2 <2.0.0", - "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.2.tgz" - }, - "enhanced-resolve": { - "version": "0.9.0", - "from": "enhanced-resolve@>=0.9.0 <0.10.0", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-0.9.0.tgz", - "dependencies": { - "graceful-fs": { - "version": "3.0.8", - "from": "graceful-fs@>=3.0.5 <4.0.0", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-3.0.8.tgz" - } - } + "graceful-fs": { + "version": "4.1.2", + "from": "graceful-fs@>=4.1.2 <5.0.0", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.2.tgz" + } + } + }, + "pathval": { + "version": "0.1.1", + "from": "pathval@>=0.1.1 <0.2.0", + "resolved": "https://registry.npmjs.org/pathval/-/pathval-0.1.1.tgz" + }, + "pbkdf2-compat": { + "version": "2.0.1", + "from": "pbkdf2-compat@2.0.1", + "resolved": "https://registry.npmjs.org/pbkdf2-compat/-/pbkdf2-compat-2.0.1.tgz" + }, + "pify": { + "version": "2.2.0", + "from": "pify@>=2.0.0 <3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.2.0.tgz" + }, + "pinkie": { + "version": "1.0.0", + "from": "pinkie@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-1.0.0.tgz" + }, + "pinkie-promise": { + "version": "1.0.0", + "from": "pinkie-promise@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-1.0.0.tgz" + }, + "pkginfo": { + "version": "0.3.0", + "from": "pkginfo@>=0.0.0 <1.0.0", + "resolved": "https://registry.npmjs.org/pkginfo/-/pkginfo-0.3.0.tgz" + }, + "postcss": { + "version": "5.0.10", + "from": "postcss@>=5.0.6 <6.0.0", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.0.10.tgz", + "dependencies": { + "source-map": { + "version": "0.5.1", + "from": "source-map@>=0.5.1 <0.6.0", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.1.tgz" }, - "esprima": { - "version": "2.6.0", - "from": "esprima@>=2.5.0 <3.0.0", + "supports-color": { + "version": "3.1.2", + "from": "supports-color@>=3.1.2 <4.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.1.2.tgz" + } + } + }, + "postcss-calc": { + "version": "5.0.0", + "from": "postcss-calc@>=5.0.0 <6.0.0", + "resolved": "https://registry.npmjs.org/postcss-calc/-/postcss-calc-5.0.0.tgz" + }, + "postcss-colormin": { + "version": "2.1.7", + "from": "postcss-colormin@>=2.1.5 <3.0.0", + "resolved": "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-2.1.7.tgz" + }, + "postcss-convert-values": { + "version": "2.3.4", + "from": "postcss-convert-values@>=2.3.3 <3.0.0", + "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-2.3.4.tgz" + }, + "postcss-discard-comments": { + "version": "2.0.1", + "from": "postcss-discard-comments@>=2.0.1 <3.0.0", + "resolved": "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-2.0.1.tgz" + }, + "postcss-discard-duplicates": { + "version": "2.0.0", + "from": "postcss-discard-duplicates@>=2.0.0 <3.0.0", + "resolved": "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-2.0.0.tgz" + }, + "postcss-discard-empty": { + "version": "2.0.0", + "from": "postcss-discard-empty@>=2.0.0 <3.0.0", + "resolved": "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-2.0.0.tgz" + }, + "postcss-discard-unused": { + "version": "2.1.0", + "from": "postcss-discard-unused@>=2.1.0 <3.0.0", + "resolved": "https://registry.npmjs.org/postcss-discard-unused/-/postcss-discard-unused-2.1.0.tgz" + }, + "postcss-filter-plugins": { + "version": "2.0.0", + "from": "postcss-filter-plugins@>=2.0.0 <3.0.0", + "resolved": "https://registry.npmjs.org/postcss-filter-plugins/-/postcss-filter-plugins-2.0.0.tgz" + }, + "postcss-merge-idents": { + "version": "2.1.1", + "from": "postcss-merge-idents@>=2.1.1 <3.0.0", + "resolved": "https://registry.npmjs.org/postcss-merge-idents/-/postcss-merge-idents-2.1.1.tgz" + }, + "postcss-merge-longhand": { + "version": "2.0.1", + "from": "postcss-merge-longhand@>=2.0.1 <3.0.0", + "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-2.0.1.tgz" + }, + "postcss-merge-rules": { + "version": "2.0.0", + "from": "postcss-merge-rules@>=2.0.0 <3.0.0", + "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-2.0.0.tgz" + }, + "postcss-message-helpers": { + "version": "2.0.0", + "from": "postcss-message-helpers@>=2.0.0 <3.0.0", + "resolved": "https://registry.npmjs.org/postcss-message-helpers/-/postcss-message-helpers-2.0.0.tgz" + }, + "postcss-minify-font-values": { + "version": "1.0.2", + "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", + "dependencies": { + "object-assign": { + "version": "4.0.1", + "from": "object-assign@>=4.0.1 <5.0.0", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.0.1.tgz" + } + } + }, + "postcss-minify-params": { + "version": "1.0.4", + "from": "postcss-minify-params@>=1.0.4 <2.0.0", + "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-1.0.4.tgz" + }, + "postcss-minify-selectors": { + "version": "2.0.1", + "from": "postcss-minify-selectors@>=2.0.1 <3.0.0", + "resolved": "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-2.0.1.tgz" + }, + "postcss-modules-extract-imports": { + "version": "1.0.0-beta2", + "from": "postcss-modules-extract-imports@1.0.0-beta2", + "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-1.0.0-beta2.tgz" + }, + "postcss-modules-local-by-default": { + "version": "1.0.0-beta1", + "from": "postcss-modules-local-by-default@1.0.0-beta1", + "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-1.0.0-beta1.tgz" + }, + "postcss-modules-scope": { + "version": "1.0.0-beta2", + "from": "postcss-modules-scope@1.0.0-beta2", + "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-1.0.0-beta2.tgz" + }, + "postcss-normalize-charset": { + "version": "1.1.0", + "from": "postcss-normalize-charset@>=1.1.0 <2.0.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-1.1.0.tgz" + }, + "postcss-normalize-url": { + "version": "3.0.3", + "from": "postcss-normalize-url@>=3.0.3 <4.0.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-3.0.3.tgz", + "dependencies": { + "object-assign": { + "version": "4.0.1", + "from": "object-assign@>=4.0.1 <5.0.0", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.0.1.tgz" + } + } + }, + "postcss-ordered-values": { + "version": "2.0.2", + "from": "postcss-ordered-values@>=2.0.2 <3.0.0", + "resolved": "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-2.0.2.tgz" + }, + "postcss-reduce-idents": { + "version": "2.2.1", + "from": "postcss-reduce-idents@>=2.2.1 <3.0.0", + "resolved": "https://registry.npmjs.org/postcss-reduce-idents/-/postcss-reduce-idents-2.2.1.tgz" + }, + "postcss-reduce-transforms": { + "version": "1.0.3", + "from": "postcss-reduce-transforms@>=1.0.3 <2.0.0", + "resolved": "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-1.0.3.tgz" + }, + "postcss-selector-parser": { + "version": "1.3.0", + "from": "postcss-selector-parser@>=1.1.4 <2.0.0", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-1.3.0.tgz" + }, + "postcss-svgo": { + "version": "2.0.4", + "from": "postcss-svgo@>=2.0.4 <3.0.0", + "resolved": "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-2.0.4.tgz" + }, + "postcss-unique-selectors": { + "version": "2.0.1", + "from": "postcss-unique-selectors@>=2.0.1 <3.0.0", + "resolved": "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-2.0.1.tgz" + }, + "postcss-value-parser": { + "version": "3.0.3", + "from": "postcss-value-parser@>=3.0.3 <4.0.0", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.0.3.tgz" + }, + "postcss-zindex": { + "version": "2.0.0", + "from": "postcss-zindex@>=2.0.0 <3.0.0", + "resolved": "https://registry.npmjs.org/postcss-zindex/-/postcss-zindex-2.0.0.tgz" + }, + "prelude-ls": { + "version": "1.1.2", + "from": "prelude-ls@>=1.1.1 <1.2.0", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz" + }, + "prepend-http": { + "version": "1.0.3", + "from": "prepend-http@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-1.0.3.tgz" + }, + "preserve": { + "version": "0.2.0", + "from": "preserve@>=0.2.0 <0.3.0", + "resolved": "https://registry.npmjs.org/preserve/-/preserve-0.2.0.tgz" + }, + "private": { + "version": "0.1.6", + "from": "private@>=0.1.6 <0.2.0", + "resolved": "https://registry.npmjs.org/private/-/private-0.1.6.tgz" + }, + "process": { + "version": "0.11.2", + "from": "process@>=0.11.0 <0.12.0", + "resolved": "https://registry.npmjs.org/process/-/process-0.11.2.tgz" + }, + "process-nextick-args": { + "version": "1.0.3", + "from": "process-nextick-args@>=1.0.0 <1.1.0", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.3.tgz" + }, + "promise": { + "version": "7.0.4", + "from": "promise@>=7.0.3 <8.0.0", + "resolved": "https://registry.npmjs.org/promise/-/promise-7.0.4.tgz" + }, + "prompt": { + "version": "0.2.14", + "from": "prompt@>=0.2.14 <0.3.0", + "resolved": "https://registry.npmjs.org/prompt/-/prompt-0.2.14.tgz" + }, + "proto-list": { + "version": "1.2.4", + "from": "proto-list@>=1.2.1 <1.3.0", + "resolved": "https://registry.npmjs.org/proto-list/-/proto-list-1.2.4.tgz" + }, + "proxy-addr": { + "version": "1.0.8", + "from": "proxy-addr@>=1.0.8 <1.1.0", + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-1.0.8.tgz" + }, + "punycode": { + "version": "1.3.2", + "from": "punycode@>=1.2.4 <2.0.0", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz" + }, + "q": { + "version": "1.1.2", + "from": "q@>=1.1.2 <1.2.0", + "resolved": "https://registry.npmjs.org/q/-/q-1.1.2.tgz" + }, + "qs": { + "version": "5.1.0", + "from": "qs@5.1.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-5.1.0.tgz" + }, + "query-string": { + "version": "2.4.2", + "from": "query-string@>=2.1.0 <3.0.0", + "resolved": "https://registry.npmjs.org/query-string/-/query-string-2.4.2.tgz" + }, + "querystring": { + "version": "0.2.0", + "from": "querystring@0.2.0", + "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz" + }, + "querystring-es3": { + "version": "0.2.1", + "from": "querystring-es3@>=0.2.0 <0.3.0", + "resolved": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz" + }, + "randomatic": { + "version": "1.1.0", + "from": "randomatic@>=1.1.0 <2.0.0", + "resolved": "https://registry.npmjs.org/randomatic/-/randomatic-1.1.0.tgz", + "dependencies": { + "kind-of": { + "version": "1.1.0", + "from": "kind-of@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-1.1.0.tgz" + } + } + }, + "range-parser": { + "version": "1.0.2", + "from": "range-parser@>=1.0.2 <1.1.0", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.0.2.tgz" + }, + "raw-body": { + "version": "2.1.4", + "from": "raw-body@>=2.1.4 <2.2.0", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.1.4.tgz", + "dependencies": { + "iconv-lite": { + "version": "0.4.12", + "from": "iconv-lite@0.4.12", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.12.tgz" + } + } + }, + "react": { + "version": "0.14.0", + "from": "react@>=0.14.0 <0.15.0", + "resolved": "https://registry.npmjs.org/react/-/react-0.14.0.tgz" + }, + "react-bootstrap": { + "version": "0.27.1", + "from": "react-bootstrap@>=0.27.0 <0.28.0", + "resolved": "https://registry.npmjs.org/react-bootstrap/-/react-bootstrap-0.27.1.tgz" + }, + "react-deep-force-update": { + "version": "1.0.0", + "from": "react-deep-force-update@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/react-deep-force-update/-/react-deep-force-update-1.0.0.tgz" + }, + "react-dom": { + "version": "0.14.0", + "from": "react-dom@>=0.14.0 <0.15.0", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-0.14.0.tgz" + }, + "react-overlays": { + "version": "0.5.0", + "from": "react-overlays@>=0.5.0 <0.6.0", + "resolved": "https://registry.npmjs.org/react-overlays/-/react-overlays-0.5.0.tgz", + "dependencies": { + "react-prop-types": { + "version": "0.2.2", + "from": "react-prop-types@>=0.2.1 <0.3.0", + "resolved": "https://registry.npmjs.org/react-prop-types/-/react-prop-types-0.2.2.tgz" + } + } + }, + "react-prop-types": { + "version": "0.3.0", + "from": "react-prop-types@>=0.3.0 <0.4.0", + "resolved": "https://registry.npmjs.org/react-prop-types/-/react-prop-types-0.3.0.tgz" + }, + "react-proxy": { + "version": "1.1.1", + "from": "react-proxy@>=1.1.1 <2.0.0", + "resolved": "https://registry.npmjs.org/react-proxy/-/react-proxy-1.1.1.tgz" + }, + "react-redux": { + "version": "3.1.0", + "from": "react-redux@>=3.1.0 <4.0.0", + "resolved": "https://registry.npmjs.org/react-redux/-/react-redux-3.1.0.tgz" + }, + "read": { + "version": "1.0.7", + "from": "read@>=1.0.0 <1.1.0", + "resolved": "https://registry.npmjs.org/read/-/read-1.0.7.tgz" + }, + "read-json-sync": { + "version": "1.1.0", + "from": "read-json-sync@>=1.1.0 <2.0.0", + "resolved": "https://registry.npmjs.org/read-json-sync/-/read-json-sync-1.1.0.tgz" + }, + "read-pkg": { + "version": "1.1.0", + "from": "read-pkg@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz" + }, + "read-pkg-up": { + "version": "1.0.1", + "from": "read-pkg-up@>=1.0.1 <2.0.0", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz" + }, + "readable-stream": { + "version": "1.1.13", + "from": "readable-stream@>=1.1.13 <2.0.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.13.tgz" + }, + "readdirp": { + "version": "2.0.0", + "from": "readdirp@>=2.0.0 <3.0.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.0.0.tgz", + "dependencies": { + "graceful-fs": { + "version": "4.1.2", + "from": "graceful-fs@>=4.1.2 <5.0.0", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.2.tgz" + }, + "readable-stream": { + "version": "2.0.2", + "from": "readable-stream@>=2.0.2 <3.0.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.0.2.tgz" + } + } + }, + "readline2": { + "version": "0.1.1", + "from": "readline2@>=0.1.1 <0.2.0", + "resolved": "https://registry.npmjs.org/readline2/-/readline2-0.1.1.tgz", + "dependencies": { + "ansi-regex": { + "version": "1.1.1", + "from": "ansi-regex@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-1.1.1.tgz" + }, + "strip-ansi": { + "version": "2.0.1", + "from": "strip-ansi@>=2.0.1 <3.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-2.0.1.tgz" + } + } + }, + "recast": { + "version": "0.10.24", + "from": "recast@0.10.24", + "resolved": "https://registry.npmjs.org/recast/-/recast-0.10.24.tgz" + }, + "redent": { + "version": "1.0.0", + "from": "redent@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/redent/-/redent-1.0.0.tgz" + }, + "reduce-css-calc": { + "version": "1.2.0", + "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", + "dependencies": { + "balanced-match": { + "version": "0.1.0", + "from": "balanced-match@>=0.1.0 <0.2.0", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-0.1.0.tgz" + } + } + }, + "reduce-function-call": { + "version": "1.0.1", + "from": "reduce-function-call@>=1.0.1 <2.0.0", + "resolved": "https://registry.npmjs.org/reduce-function-call/-/reduce-function-call-1.0.1.tgz", + "dependencies": { + "balanced-match": { + "version": "0.1.0", + "from": "balanced-match@>=0.1.0 <0.2.0", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-0.1.0.tgz" + } + } + }, + "redux": { + "version": "3.0.2", + "from": "redux@>=3.0.2 <4.0.0", + "resolved": "https://registry.npmjs.org/redux/-/redux-3.0.2.tgz" + }, + "redux-promise": { + "version": "0.5.0", + "from": "redux-promise@>=0.5.0 <0.6.0", + "resolved": "https://registry.npmjs.org/redux-promise/-/redux-promise-0.5.0.tgz" + }, + "redux-thunk": { + "version": "1.0.0", + "from": "redux-thunk@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/redux-thunk/-/redux-thunk-1.0.0.tgz" + }, + "regenerate": { + "version": "1.2.1", + "from": "regenerate@>=1.2.1 <2.0.0", + "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.2.1.tgz" + }, + "regenerator": { + "version": "0.8.35", + "from": "regenerator@0.8.35", + "resolved": "https://registry.npmjs.org/regenerator/-/regenerator-0.8.35.tgz" + }, + "regex-cache": { + "version": "0.4.2", + "from": "regex-cache@>=0.4.2 <0.5.0", + "resolved": "https://registry.npmjs.org/regex-cache/-/regex-cache-0.4.2.tgz" + }, + "regexpu": { + "version": "1.3.0", + "from": "regexpu@>=1.1.2 <2.0.0", + "resolved": "https://registry.npmjs.org/regexpu/-/regexpu-1.3.0.tgz", + "dependencies": { + "esprima": { + "version": "2.6.0", + "from": "esprima@>=2.6.0 <3.0.0", "resolved": "https://registry.npmjs.org/esprima/-/esprima-2.6.0.tgz" + } + } + }, + "regjsgen": { + "version": "0.2.0", + "from": "regjsgen@>=0.2.0 <0.3.0", + "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.2.0.tgz" + }, + "regjsparser": { + "version": "0.1.5", + "from": "regjsparser@>=0.1.4 <0.2.0", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.1.5.tgz" + }, + "repeat-element": { + "version": "1.1.2", + "from": "repeat-element@>=1.1.2 <2.0.0", + "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.2.tgz" + }, + "repeat-string": { + "version": "1.5.2", + "from": "repeat-string@>=1.5.2 <2.0.0", + "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.5.2.tgz" + }, + "repeating": { + "version": "1.1.3", + "from": "repeating@>=1.1.2 <2.0.0", + "resolved": "https://registry.npmjs.org/repeating/-/repeating-1.1.3.tgz" + }, + "request": { + "version": "2.65.0", + "from": "request@>=2.61.0 <3.0.0", + "resolved": "https://registry.npmjs.org/request/-/request-2.65.0.tgz", + "dependencies": { + "qs": { + "version": "5.2.0", + "from": "qs@>=5.2.0 <5.3.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-5.2.0.tgz" + } + } + }, + "requires-port": { + "version": "0.0.1", + "from": "requires-port@>=0.0.0 <1.0.0", + "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-0.0.1.tgz" + }, + "reserved-words": { + "version": "0.1.1", + "from": "reserved-words@>=0.1.1 <0.2.0", + "resolved": "https://registry.npmjs.org/reserved-words/-/reserved-words-0.1.1.tgz" + }, + "resolve": { + "version": "1.1.6", + "from": "resolve@>=1.1.6 <2.0.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.1.6.tgz" + }, + "revalidator": { + "version": "0.1.8", + "from": "revalidator@>=0.1.0 <0.2.0", + "resolved": "https://registry.npmjs.org/revalidator/-/revalidator-0.1.8.tgz" + }, + "right-align": { + "version": "0.1.3", + "from": "right-align@>=0.1.1 <0.2.0", + "resolved": "https://registry.npmjs.org/right-align/-/right-align-0.1.3.tgz" + }, + "rimraf": { + "version": "2.4.3", + "from": "rimraf@>=2.2.8 <3.0.0", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.4.3.tgz", + "dependencies": { + "glob": { + "version": "5.0.15", + "from": "glob@>=5.0.14 <6.0.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-5.0.15.tgz" + } + } + }, + "ripemd160": { + "version": "0.2.0", + "from": "ripemd160@0.2.0", + "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-0.2.0.tgz" + }, + "run-async": { + "version": "0.1.0", + "from": "run-async@>=0.1.0 <0.2.0", + "resolved": "https://registry.npmjs.org/run-async/-/run-async-0.1.0.tgz" + }, + "rx-lite": { + "version": "2.5.2", + "from": "rx-lite@>=2.5.2 <3.0.0", + "resolved": "https://registry.npmjs.org/rx-lite/-/rx-lite-2.5.2.tgz" + }, + "sass-graph": { + "version": "2.0.1", + "from": "sass-graph@>=2.0.1 <3.0.0", + "resolved": "https://registry.npmjs.org/sass-graph/-/sass-graph-2.0.1.tgz", + "dependencies": { + "glob": { + "version": "5.0.15", + "from": "glob@>=5.0.5 <6.0.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-5.0.15.tgz" + } + } + }, + "sax": { + "version": "1.1.3", + "from": "sax@>=1.1.1 <1.2.0", + "resolved": "https://registry.npmjs.org/sax/-/sax-1.1.3.tgz" + }, + "semver": { + "version": "5.0.3", + "from": "semver@>=2.0.0 <3.0.0||>=3.0.0 <4.0.0||>=4.0.0 <5.0.0||>=5.0.0 <6.0.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.0.3.tgz" + }, + "send": { + "version": "0.13.0", + "from": "send@0.13.0", + "resolved": "https://registry.npmjs.org/send/-/send-0.13.0.tgz", + "dependencies": { + "depd": { + "version": "1.0.1", + "from": "depd@>=1.0.1 <1.1.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.0.1.tgz" + } + } + }, + "serve-index": { + "version": "1.7.2", + "from": "serve-index@>=1.7.2 <2.0.0", + "resolved": "https://registry.npmjs.org/serve-index/-/serve-index-1.7.2.tgz" + }, + "serve-static": { + "version": "1.10.0", + "from": "serve-static@>=1.10.0 <1.11.0", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.10.0.tgz" + }, + "sha.js": { + "version": "2.2.6", + "from": "sha.js@2.2.6", + "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.2.6.tgz" + }, + "shebang-regex": { + "version": "1.0.0", + "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.3.0", + "from": "shelljs@>=0.3.0 <0.4.0", + "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.3.0.tgz" + }, + "sigmund": { + "version": "1.0.1", + "from": "sigmund@>=1.0.0 <1.1.0", + "resolved": "https://registry.npmjs.org/sigmund/-/sigmund-1.0.1.tgz" + }, + "simple-fmt": { + "version": "0.1.0", + "from": "simple-fmt@>=0.1.0 <0.2.0", + "resolved": "https://registry.npmjs.org/simple-fmt/-/simple-fmt-0.1.0.tgz" + }, + "simple-is": { + "version": "0.2.0", + "from": "simple-is@>=0.2.0 <0.3.0", + "resolved": "https://registry.npmjs.org/simple-is/-/simple-is-0.2.0.tgz" + }, + "slash": { + "version": "1.0.0", + "from": "slash@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz" + }, + "sleep": { + "version": "3.0.0", + "from": "sleep@>=3.0.0 <4.0.0", + "resolved": "https://registry.npmjs.org/sleep/-/sleep-3.0.0.tgz" + }, + "sntp": { + "version": "1.0.9", + "from": "sntp@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/sntp/-/sntp-1.0.9.tgz" + }, + "socket.io": { + "version": "1.3.7", + "from": "socket.io@>=1.3.6 <2.0.0", + "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-1.3.7.tgz", + "dependencies": { + "debug": { + "version": "2.1.0", + "from": "debug@2.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.1.0.tgz" }, - "interpret": { - "version": "0.6.6", - "from": "interpret@>=0.6.4 <0.7.0", - "resolved": "https://registry.npmjs.org/interpret/-/interpret-0.6.6.tgz" + "ms": { + "version": "0.6.2", + "from": "ms@0.6.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-0.6.2.tgz" + } + } + }, + "socket.io-adapter": { + "version": "0.3.1", + "from": "socket.io-adapter@0.3.1", + "resolved": "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-0.3.1.tgz", + "dependencies": { + "debug": { + "version": "1.0.2", + "from": "debug@1.0.2", + "resolved": "https://registry.npmjs.org/debug/-/debug-1.0.2.tgz" }, - "memory-fs": { - "version": "0.2.0", - "from": "memory-fs@>=0.2.0 <0.3.0", - "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.2.0.tgz" + "ms": { + "version": "0.6.2", + "from": "ms@0.6.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-0.6.2.tgz" }, - "mkdirp": { - "version": "0.5.1", - "from": "mkdirp@>=0.5.0 <0.6.0", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", + "socket.io-parser": { + "version": "2.2.2", + "from": "socket.io-parser@2.2.2", + "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-2.2.2.tgz", "dependencies": { - "minimist": { - "version": "0.0.8", - "from": "minimist@0.0.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz" - } - } - }, - "node-libs-browser": { - "version": "0.5.3", - "from": "node-libs-browser@>=0.4.0 <=0.6.0", - "resolved": "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-0.5.3.tgz", - "dependencies": { - "assert": { - "version": "1.3.0", - "from": "assert@>=1.1.1 <2.0.0", - "resolved": "https://registry.npmjs.org/assert/-/assert-1.3.0.tgz" - }, - "browserify-zlib": { - "version": "0.1.4", - "from": "browserify-zlib@>=0.1.4 <0.2.0", - "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.1.4.tgz", - "dependencies": { - "pako": { - "version": "0.2.8", - "from": "pako@>=0.2.0 <0.3.0", - "resolved": "https://registry.npmjs.org/pako/-/pako-0.2.8.tgz" - } - } - }, - "buffer": { - "version": "3.5.1", - "from": "buffer@>=3.0.3 <4.0.0", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-3.5.1.tgz", - "dependencies": { - "base64-js": { - "version": "0.0.8", - "from": "base64-js@0.0.8", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-0.0.8.tgz" - }, - "ieee754": { - "version": "1.1.6", - "from": "ieee754@>=1.1.4 <2.0.0", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.6.tgz" - }, - "is-array": { - "version": "1.0.1", - "from": "is-array@>=1.0.1 <2.0.0", - "resolved": "https://registry.npmjs.org/is-array/-/is-array-1.0.1.tgz" - } - } - }, - "console-browserify": { - "version": "1.1.0", - "from": "console-browserify@>=1.1.0 <2.0.0", - "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.1.0.tgz", - "dependencies": { - "date-now": { - "version": "0.1.4", - "from": "date-now@>=0.1.4 <0.2.0", - "resolved": "https://registry.npmjs.org/date-now/-/date-now-0.1.4.tgz" - } - } - }, - "constants-browserify": { - "version": "0.0.1", - "from": "constants-browserify@0.0.1", - "resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-0.0.1.tgz" - }, - "crypto-browserify": { - "version": "3.2.8", - "from": "crypto-browserify@>=3.2.6 <3.3.0", - "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.2.8.tgz", - "dependencies": { - "pbkdf2-compat": { - "version": "2.0.1", - "from": "pbkdf2-compat@2.0.1", - "resolved": "https://registry.npmjs.org/pbkdf2-compat/-/pbkdf2-compat-2.0.1.tgz" - }, - "ripemd160": { - "version": "0.2.0", - "from": "ripemd160@0.2.0", - "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-0.2.0.tgz" - }, - "sha.js": { - "version": "2.2.6", - "from": "sha.js@2.2.6", - "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.2.6.tgz" - } - } - }, - "domain-browser": { - "version": "1.1.4", - "from": "domain-browser@>=1.1.1 <2.0.0", - "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.1.4.tgz" - }, - "events": { - "version": "1.1.0", - "from": "events@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/events/-/events-1.1.0.tgz" - }, - "http-browserify": { - "version": "1.7.0", - "from": "http-browserify@>=1.3.2 <2.0.0", - "resolved": "https://registry.npmjs.org/http-browserify/-/http-browserify-1.7.0.tgz", - "dependencies": { - "Base64": { - "version": "0.2.1", - "from": "Base64@>=0.2.0 <0.3.0", - "resolved": "https://registry.npmjs.org/Base64/-/Base64-0.2.1.tgz" - }, - "inherits": { - "version": "2.0.1", - "from": "inherits@>=2.0.1 <2.1.0", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz" - } - } - }, - "https-browserify": { - "version": "0.0.0", - "from": "https-browserify@0.0.0", - "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-0.0.0.tgz" - }, - "os-browserify": { - "version": "0.1.2", - "from": "os-browserify@>=0.1.2 <0.2.0", - "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.1.2.tgz" - }, - "path-browserify": { - "version": "0.0.0", - "from": "path-browserify@0.0.0", - "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.0.tgz" - }, - "process": { - "version": "0.11.2", - "from": "process@>=0.11.0 <0.12.0", - "resolved": "https://registry.npmjs.org/process/-/process-0.11.2.tgz" - }, - "punycode": { - "version": "1.3.2", - "from": "punycode@>=1.2.4 <2.0.0", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz" - }, - "querystring-es3": { - "version": "0.2.1", - "from": "querystring-es3@>=0.2.0 <0.3.0", - "resolved": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz" - }, - "readable-stream": { - "version": "1.1.13", - "from": "readable-stream@>=1.1.13 <2.0.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.13.tgz", - "dependencies": { - "core-util-is": { - "version": "1.0.1", - "from": "core-util-is@>=1.0.0 <1.1.0", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.1.tgz" - }, - "isarray": { - "version": "0.0.1", - "from": "isarray@0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz" - }, - "inherits": { - "version": "2.0.1", - "from": "inherits@>=2.0.1 <2.1.0", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz" - } - } - }, - "stream-browserify": { - "version": "1.0.0", - "from": "stream-browserify@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-1.0.0.tgz", - "dependencies": { - "inherits": { - "version": "2.0.1", - "from": "inherits@>=2.0.1 <2.1.0", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz" - } - } - }, - "string_decoder": { - "version": "0.10.31", - "from": "string_decoder@>=0.10.25 <0.11.0", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz" - }, - "timers-browserify": { - "version": "1.4.1", - "from": "timers-browserify@>=1.0.1 <2.0.0", - "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-1.4.1.tgz" - }, - "tty-browserify": { - "version": "0.0.0", - "from": "tty-browserify@0.0.0", - "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.0.tgz" - }, - "url": { - "version": "0.10.3", - "from": "url@>=0.10.1 <0.11.0", - "resolved": "https://registry.npmjs.org/url/-/url-0.10.3.tgz", - "dependencies": { - "querystring": { - "version": "0.2.0", - "from": "querystring@0.2.0", - "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz" - } - } - }, - "util": { - "version": "0.10.3", - "from": "util@>=0.10.3 <0.11.0", - "resolved": "https://registry.npmjs.org/util/-/util-0.10.3.tgz", - "dependencies": { - "inherits": { - "version": "2.0.1", - "from": "inherits@2.0.1", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz" - } - } - }, - "vm-browserify": { - "version": "0.0.4", - "from": "vm-browserify@0.0.4", - "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-0.0.4.tgz", - "dependencies": { - "indexof": { - "version": "0.0.1", - "from": "indexof@0.0.1", - "resolved": "https://registry.npmjs.org/indexof/-/indexof-0.0.1.tgz" - } - } + "debug": { + "version": "0.7.4", + "from": "debug@0.7.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-0.7.4.tgz" } } + } + } + }, + "socket.io-client": { + "version": "1.3.7", + "from": "socket.io-client@>=1.3.6 <2.0.0", + "resolved": "https://registry.npmjs.org/socket.io-client/-/socket.io-client-1.3.7.tgz", + "dependencies": { + "debug": { + "version": "0.7.4", + "from": "debug@0.7.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-0.7.4.tgz" + } + } + }, + "socket.io-parser": { + "version": "2.2.4", + "from": "socket.io-parser@2.2.4", + "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-2.2.4.tgz", + "dependencies": { + "debug": { + "version": "0.7.4", + "from": "debug@0.7.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-0.7.4.tgz" + } + } + }, + "sort-keys": { + "version": "1.1.1", + "from": "sort-keys@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/sort-keys/-/sort-keys-1.1.1.tgz" + }, + "source-list-map": { + "version": "0.1.5", + "from": "source-list-map@>=0.1.0 <0.2.0", + "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-0.1.5.tgz" + }, + "source-map": { + "version": "0.4.4", + "from": "source-map@>=0.4.0 <0.5.0", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz" + }, + "source-map-support": { + "version": "0.2.10", + "from": "source-map-support@>=0.2.10 <0.3.0", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.2.10.tgz", + "dependencies": { + "source-map": { + "version": "0.1.32", + "from": "source-map@0.1.32", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.1.32.tgz" + } + } + }, + "spawn-sync": { + "version": "1.0.13", + "from": "spawn-sync@>=1.0.13 <2.0.0", + "resolved": "https://registry.npmjs.org/spawn-sync/-/spawn-sync-1.0.13.tgz" + }, + "spdx-correct": { + "version": "1.0.1", + "from": "spdx-correct@>=1.0.0 <1.1.0", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-1.0.1.tgz" + }, + "spdx-exceptions": { + "version": "1.0.3", + "from": "spdx-exceptions@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-1.0.3.tgz" + }, + "spdx-expression-parse": { + "version": "1.0.0", + "from": "spdx-expression-parse@>=1.0.0 <1.1.0", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-1.0.0.tgz" + }, + "spdx-license-ids": { + "version": "1.0.2", + "from": "spdx-license-ids@>=1.0.2 <2.0.0", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-1.0.2.tgz" + }, + "sprintf-js": { + "version": "1.0.3", + "from": "sprintf-js@>=1.0.2 <1.1.0", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz" + }, + "stable": { + "version": "0.1.5", + "from": "stable@>=0.1.3 <0.2.0", + "resolved": "https://registry.npmjs.org/stable/-/stable-0.1.5.tgz" + }, + "stack-trace": { + "version": "0.0.9", + "from": "stack-trace@>=0.0.0 <0.1.0", + "resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.9.tgz" + }, + "statuses": { + "version": "1.2.1", + "from": "statuses@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.2.1.tgz" + }, + "stream-browserify": { + "version": "1.0.0", + "from": "stream-browserify@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-1.0.0.tgz" + }, + "stream-cache": { + "version": "0.0.2", + "from": "stream-cache@>=0.0.1 <0.1.0", + "resolved": "https://registry.npmjs.org/stream-cache/-/stream-cache-0.0.2.tgz" + }, + "strict-uri-encode": { + "version": "1.0.2", + "from": "strict-uri-encode@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-1.0.2.tgz" + }, + "string_decoder": { + "version": "0.10.31", + "from": "string_decoder@>=0.10.25 <0.11.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz" + }, + "stringmap": { + "version": "0.2.2", + "from": "stringmap@>=0.2.2 <0.3.0", + "resolved": "https://registry.npmjs.org/stringmap/-/stringmap-0.2.2.tgz" + }, + "stringset": { + "version": "0.2.1", + "from": "stringset@>=0.2.1 <0.3.0", + "resolved": "https://registry.npmjs.org/stringset/-/stringset-0.2.1.tgz" + }, + "stringstream": { + "version": "0.0.4", + "from": "stringstream@>=0.0.4 <0.1.0", + "resolved": "https://registry.npmjs.org/stringstream/-/stringstream-0.0.4.tgz" + }, + "strip-ansi": { + "version": "3.0.0", + "from": "strip-ansi@>=3.0.0 <4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.0.tgz" + }, + "strip-bom": { + "version": "2.0.0", + "from": "strip-bom@>=2.0.0 <3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz" + }, + "strip-indent": { + "version": "1.0.1", + "from": "strip-indent@>=1.0.1 <2.0.0", + "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-1.0.1.tgz" + }, + "strip-json-comments": { + "version": "1.0.4", + "from": "strip-json-comments@>=1.0.1 <1.1.0", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-1.0.4.tgz" + }, + "success-symbol": { + "version": "0.1.0", + "from": "success-symbol@>=0.1.0 <0.2.0", + "resolved": "https://registry.npmjs.org/success-symbol/-/success-symbol-0.1.0.tgz" + }, + "supports-color": { + "version": "2.0.0", + "from": "supports-color@>=2.0.0 <3.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz" + }, + "svgo": { + "version": "0.5.6", + "from": "svgo@>=0.5.6 <0.6.0", + "resolved": "https://registry.npmjs.org/svgo/-/svgo-0.5.6.tgz" + }, + "tapable": { + "version": "0.1.9", + "from": "tapable@>=0.1.8 <0.2.0", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-0.1.9.tgz" + }, + "tar": { + "version": "1.0.3", + "from": "tar@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/tar/-/tar-1.0.3.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.6 <2.4.0", + "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz" + }, + "timers-browserify": { + "version": "1.4.1", + "from": "timers-browserify@>=1.0.1 <2.0.0", + "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-1.4.1.tgz" + }, + "to-array": { + "version": "0.1.3", + "from": "to-array@0.1.3", + "resolved": "https://registry.npmjs.org/to-array/-/to-array-0.1.3.tgz" + }, + "to-double-quotes": { + "version": "1.0.2", + "from": "to-double-quotes@>=1.0.1 <2.0.0", + "resolved": "https://registry.npmjs.org/to-double-quotes/-/to-double-quotes-1.0.2.tgz", + "dependencies": { + "get-stdin": { + "version": "3.0.2", + "from": "get-stdin@>=3.0.0 <4.0.0", + "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-3.0.2.tgz" + } + } + }, + "to-fast-properties": { + "version": "1.0.1", + "from": "to-fast-properties@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.1.tgz" + }, + "to-single-quotes": { + "version": "1.0.4", + "from": "to-single-quotes@>=1.0.3 <2.0.0", + "resolved": "https://registry.npmjs.org/to-single-quotes/-/to-single-quotes-1.0.4.tgz", + "dependencies": { + "get-stdin": { + "version": "3.0.2", + "from": "get-stdin@>=3.0.0 <4.0.0", + "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-3.0.2.tgz" + } + } + }, + "tough-cookie": { + "version": "2.2.0", + "from": "tough-cookie@>=2.2.0 <2.3.0", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.2.0.tgz" + }, + "transformers": { + "version": "2.1.0", + "from": "transformers@2.1.0", + "resolved": "https://registry.npmjs.org/transformers/-/transformers-2.1.0.tgz", + "dependencies": { + "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.6.1", - "from": "optimist@>=0.6.0 <0.7.0", - "resolved": "https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz", - "dependencies": { - "wordwrap": { - "version": "0.0.3", - "from": "wordwrap@>=0.0.2 <0.1.0", - "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.3.tgz" - }, - "minimist": { - "version": "0.0.10", - "from": "minimist@>=0.0.1 <0.1.0", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.10.tgz" - } - } + "version": "0.3.7", + "from": "optimist@>=0.3.5 <0.4.0", + "resolved": "https://registry.npmjs.org/optimist/-/optimist-0.3.7.tgz" }, - "supports-color": { - "version": "3.1.1", - "from": "supports-color@>=3.1.0 <4.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.1.1.tgz", - "dependencies": { - "has-flag": { - "version": "1.0.0", - "from": "has-flag@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.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" }, - "tapable": { - "version": "0.1.9", - "from": "tapable@>=0.1.8 <0.2.0", - "resolved": "https://registry.npmjs.org/tapable/-/tapable-0.1.9.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.4.24", - "from": "uglify-js@>=2.4.24 <2.5.0", - "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.4.24.tgz", - "dependencies": { - "async": { - "version": "0.2.10", - "from": "async@>=0.2.6 <0.3.0", - "resolved": "https://registry.npmjs.org/async/-/async-0.2.10.tgz" - }, - "source-map": { - "version": "0.1.34", - "from": "source-map@0.1.34", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.1.34.tgz", - "dependencies": { - "amdefine": { - "version": "1.0.0", - "from": "amdefine@>=0.0.4", - "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.0.tgz" - } - } - }, - "uglify-to-browserify": { - "version": "1.0.2", - "from": "uglify-to-browserify@>=1.0.0 <1.1.0", - "resolved": "https://registry.npmjs.org/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz" - }, - "yargs": { - "version": "3.5.4", - "from": "yargs@>=3.5.4 <3.6.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-3.5.4.tgz", - "dependencies": { - "camelcase": { - "version": "1.2.1", - "from": "camelcase@>=1.0.2 <2.0.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-1.2.1.tgz" - }, - "decamelize": { - "version": "1.0.0", - "from": "decamelize@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.0.0.tgz" - }, - "window-size": { - "version": "0.1.0", - "from": "window-size@0.1.0", - "resolved": "https://registry.npmjs.org/window-size/-/window-size-0.1.0.tgz" - }, - "wordwrap": { - "version": "0.0.2", - "from": "wordwrap@0.0.2", - "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.2.tgz" - } - } - } - } + "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", + "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-1.0.0.tgz" + }, + "trim-right": { + "version": "1.0.1", + "from": "trim-right@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/trim-right/-/trim-right-1.0.1.tgz" + }, + "try-resolve": { + "version": "1.0.1", + "from": "try-resolve@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/try-resolve/-/try-resolve-1.0.1.tgz" + }, + "tryit": { + "version": "1.0.1", + "from": "tryit@>=1.0.1 <2.0.0", + "resolved": "https://registry.npmjs.org/tryit/-/tryit-1.0.1.tgz" + }, + "tryor": { + "version": "0.1.2", + "from": "tryor@>=0.1.2 <0.2.0", + "resolved": "https://registry.npmjs.org/tryor/-/tryor-0.1.2.tgz" + }, + "tty-browserify": { + "version": "0.0.0", + "from": "tty-browserify@0.0.0", + "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.0.tgz" + }, + "tunnel-agent": { + "version": "0.4.1", + "from": "tunnel-agent@>=0.4.1 <0.5.0", + "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.4.1.tgz" + }, + "type-check": { + "version": "0.3.1", + "from": "type-check@>=0.3.1 <0.4.0", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.1.tgz" + }, + "type-is": { + "version": "1.6.9", + "from": "type-is@>=1.6.9 <1.7.0", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.9.tgz" + }, + "typedarray": { + "version": "0.0.6", + "from": "typedarray@>=0.0.5 <0.1.0", + "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz" + }, + "ua-parser-js": { + "version": "0.7.9", + "from": "ua-parser-js@>=0.7.9 <0.8.0", + "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.9.tgz" + }, + "uglify-js": { + "version": "2.4.24", + "from": "uglify-js@>=2.4.24 <2.5.0", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.4.24.tgz", + "dependencies": { + "async": { + "version": "0.2.10", + "from": "async@>=0.2.6 <0.3.0", + "resolved": "https://registry.npmjs.org/async/-/async-0.2.10.tgz" }, - "watchpack": { - "version": "0.2.8", - "from": "watchpack@>=0.2.1 <0.3.0", - "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-0.2.8.tgz", - "dependencies": { - "async": { - "version": "0.9.2", - "from": "async@>=0.9.0 <0.10.0", - "resolved": "https://registry.npmjs.org/async/-/async-0.9.2.tgz" - }, - "chokidar": { - "version": "1.2.0", - "from": "chokidar@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-1.2.0.tgz", - "dependencies": { - "anymatch": { - "version": "1.3.0", - "from": "anymatch@>=1.1.0 <2.0.0", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-1.3.0.tgz", - "dependencies": { - "micromatch": { - "version": "2.2.0", - "from": "micromatch@>=2.1.5 <3.0.0", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-2.2.0.tgz", - "dependencies": { - "arr-diff": { - "version": "1.1.0", - "from": "arr-diff@>=1.0.1 <2.0.0", - "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-1.1.0.tgz", - "dependencies": { - "arr-flatten": { - "version": "1.0.1", - "from": "arr-flatten@>=1.0.1 <2.0.0", - "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.0.1.tgz" - }, - "array-slice": { - "version": "0.2.3", - "from": "array-slice@>=0.2.3 <0.3.0", - "resolved": "https://registry.npmjs.org/array-slice/-/array-slice-0.2.3.tgz" - } - } - }, - "array-unique": { - "version": "0.2.1", - "from": "array-unique@>=0.2.1 <0.3.0", - "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.2.1.tgz" - }, - "braces": { - "version": "1.8.1", - "from": "braces@>=1.8.0 <2.0.0", - "resolved": "https://registry.npmjs.org/braces/-/braces-1.8.1.tgz", - "dependencies": { - "expand-range": { - "version": "1.8.1", - "from": "expand-range@>=1.8.1 <2.0.0", - "resolved": "https://registry.npmjs.org/expand-range/-/expand-range-1.8.1.tgz", - "dependencies": { - "fill-range": { - "version": "2.2.2", - "from": "fill-range@>=2.1.0 <3.0.0", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-2.2.2.tgz", - "dependencies": { - "is-number": { - "version": "1.1.2", - "from": "is-number@>=1.1.2 <2.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-1.1.2.tgz" - }, - "isobject": { - "version": "1.0.2", - "from": "isobject@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-1.0.2.tgz" - }, - "randomatic": { - "version": "1.1.0", - "from": "randomatic@>=1.1.0 <2.0.0", - "resolved": "https://registry.npmjs.org/randomatic/-/randomatic-1.1.0.tgz" - }, - "repeat-string": { - "version": "1.5.2", - "from": "repeat-string@>=1.5.2 <2.0.0", - "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.5.2.tgz" - } - } - } - } - }, - "lazy-cache": { - "version": "0.2.3", - "from": "lazy-cache@>=0.2.3 <0.3.0", - "resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-0.2.3.tgz" - }, - "preserve": { - "version": "0.2.0", - "from": "preserve@>=0.2.0 <0.3.0", - "resolved": "https://registry.npmjs.org/preserve/-/preserve-0.2.0.tgz" - }, - "repeat-element": { - "version": "1.1.2", - "from": "repeat-element@>=1.1.2 <2.0.0", - "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.2.tgz" - } - } - }, - "expand-brackets": { - "version": "0.1.4", - "from": "expand-brackets@>=0.1.1 <0.2.0", - "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-0.1.4.tgz" - }, - "extglob": { - "version": "0.3.1", - "from": "extglob@>=0.3.0 <0.4.0", - "resolved": "https://registry.npmjs.org/extglob/-/extglob-0.3.1.tgz", - "dependencies": { - "ansi-green": { - "version": "0.1.1", - "from": "ansi-green@>=0.1.1 <0.2.0", - "resolved": "https://registry.npmjs.org/ansi-green/-/ansi-green-0.1.1.tgz", - "dependencies": { - "ansi-wrap": { - "version": "0.1.0", - "from": "ansi-wrap@0.1.0", - "resolved": "https://registry.npmjs.org/ansi-wrap/-/ansi-wrap-0.1.0.tgz" - } - } - }, - "is-extglob": { - "version": "1.0.0", - "from": "is-extglob@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz" - }, - "success-symbol": { - "version": "0.1.0", - "from": "success-symbol@>=0.1.0 <0.2.0", - "resolved": "https://registry.npmjs.org/success-symbol/-/success-symbol-0.1.0.tgz" - } - } - }, - "filename-regex": { - "version": "2.0.0", - "from": "filename-regex@>=2.0.0 <3.0.0", - "resolved": "https://registry.npmjs.org/filename-regex/-/filename-regex-2.0.0.tgz" - }, - "is-glob": { - "version": "1.1.3", - "from": "is-glob@>=1.1.3 <2.0.0", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-1.1.3.tgz" - }, - "kind-of": { - "version": "1.1.0", - "from": "kind-of@>=1.1.0 <2.0.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-1.1.0.tgz" - }, - "object.omit": { - "version": "1.1.0", - "from": "object.omit@>=1.1.0 <2.0.0", - "resolved": "https://registry.npmjs.org/object.omit/-/object.omit-1.1.0.tgz", - "dependencies": { - "for-own": { - "version": "0.1.3", - "from": "for-own@>=0.1.3 <0.2.0", - "resolved": "https://registry.npmjs.org/for-own/-/for-own-0.1.3.tgz", - "dependencies": { - "for-in": { - "version": "0.1.4", - "from": "for-in@>=0.1.4 <0.2.0", - "resolved": "https://registry.npmjs.org/for-in/-/for-in-0.1.4.tgz" - } - } - }, - "isobject": { - "version": "1.0.2", - "from": "isobject@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-1.0.2.tgz" - } - } - }, - "parse-glob": { - "version": "3.0.4", - "from": "parse-glob@>=3.0.1 <4.0.0", - "resolved": "https://registry.npmjs.org/parse-glob/-/parse-glob-3.0.4.tgz", - "dependencies": { - "glob-base": { - "version": "0.3.0", - "from": "glob-base@>=0.3.0 <0.4.0", - "resolved": "https://registry.npmjs.org/glob-base/-/glob-base-0.3.0.tgz" - }, - "is-dotfile": { - "version": "1.0.1", - "from": "is-dotfile@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/is-dotfile/-/is-dotfile-1.0.1.tgz" - }, - "is-extglob": { - "version": "1.0.0", - "from": "is-extglob@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz" - }, - "is-glob": { - "version": "2.0.1", - "from": "is-glob@>=2.0.0 <3.0.0", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz" - } - } - }, - "regex-cache": { - "version": "0.4.2", - "from": "regex-cache@>=0.4.2 <0.5.0", - "resolved": "https://registry.npmjs.org/regex-cache/-/regex-cache-0.4.2.tgz", - "dependencies": { - "is-equal-shallow": { - "version": "0.1.3", - "from": "is-equal-shallow@>=0.1.1 <0.2.0", - "resolved": "https://registry.npmjs.org/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz" - }, - "is-primitive": { - "version": "2.0.0", - "from": "is-primitive@>=2.0.0 <3.0.0", - "resolved": "https://registry.npmjs.org/is-primitive/-/is-primitive-2.0.0.tgz" - } - } - } - } - } - } - }, - "arrify": { - "version": "1.0.0", - "from": "arrify@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.0.tgz" - }, - "async-each": { - "version": "0.1.6", - "from": "async-each@>=0.1.5 <0.2.0", - "resolved": "https://registry.npmjs.org/async-each/-/async-each-0.1.6.tgz" - }, - "glob-parent": { - "version": "2.0.0", - "from": "glob-parent@>=2.0.0 <3.0.0", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-2.0.0.tgz" - }, - "is-binary-path": { - "version": "1.0.1", - "from": "is-binary-path@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", - "dependencies": { - "binary-extensions": { - "version": "1.3.1", - "from": "binary-extensions@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.3.1.tgz" - } - } - }, - "is-glob": { - "version": "2.0.1", - "from": "is-glob@>=2.0.0 <3.0.0", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", - "dependencies": { - "is-extglob": { - "version": "1.0.0", - "from": "is-extglob@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz" - } - } - }, - "lodash.flatten": { - "version": "3.0.2", - "from": "lodash.flatten@>=3.0.2 <4.0.0", - "resolved": "https://registry.npmjs.org/lodash.flatten/-/lodash.flatten-3.0.2.tgz", - "dependencies": { - "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", - "dependencies": { - "lodash.isarguments": { - "version": "3.0.4", - "from": "lodash.isarguments@>=3.0.0 <4.0.0", - "resolved": "https://registry.npmjs.org/lodash.isarguments/-/lodash.isarguments-3.0.4.tgz" - }, - "lodash.isarray": { - "version": "3.0.4", - "from": "lodash.isarray@>=3.0.0 <4.0.0", - "resolved": "https://registry.npmjs.org/lodash.isarray/-/lodash.isarray-3.0.4.tgz" - } - } - }, - "lodash._isiterateecall": { - "version": "3.0.9", - "from": "lodash._isiterateecall@>=3.0.0 <4.0.0", - "resolved": "https://registry.npmjs.org/lodash._isiterateecall/-/lodash._isiterateecall-3.0.9.tgz" - } - } - }, - "path-is-absolute": { - "version": "1.0.0", - "from": "path-is-absolute@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.0.tgz" - }, - "readdirp": { - "version": "2.0.0", - "from": "readdirp@>=2.0.0 <3.0.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.0.0.tgz", - "dependencies": { - "graceful-fs": { - "version": "4.1.2", - "from": "graceful-fs@>=4.1.2 <5.0.0", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.2.tgz" - }, - "minimatch": { - "version": "2.0.10", - "from": "minimatch@>=2.0.10 <3.0.0", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-2.0.10.tgz", - "dependencies": { - "brace-expansion": { - "version": "1.1.1", - "from": "brace-expansion@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.1.tgz", - "dependencies": { - "balanced-match": { - "version": "0.2.0", - "from": "balanced-match@>=0.2.0 <0.3.0", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-0.2.0.tgz" - }, - "concat-map": { - "version": "0.0.1", - "from": "concat-map@0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz" - } - } - } - } - }, - "readable-stream": { - "version": "2.0.2", - "from": "readable-stream@>=2.0.2 <3.0.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.0.2.tgz", - "dependencies": { - "core-util-is": { - "version": "1.0.1", - "from": "core-util-is@>=1.0.0 <1.1.0", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.1.tgz" - }, - "inherits": { - "version": "2.0.1", - "from": "inherits@>=2.0.1 <2.1.0", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz" - }, - "isarray": { - "version": "0.0.1", - "from": "isarray@0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz" - }, - "process-nextick-args": { - "version": "1.0.3", - "from": "process-nextick-args@>=1.0.0 <1.1.0", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.3.tgz" - }, - "string_decoder": { - "version": "0.10.31", - "from": "string_decoder@>=0.10.0 <0.11.0", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz" - }, - "util-deprecate": { - "version": "1.0.2", - "from": "util-deprecate@>=1.0.1 <1.1.0", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz" - } - } - } - } - }, - "fsevents": { - "version": "1.0.2", - "from": "fsevents@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.0.2.tgz", - "dependencies": { - "nan": { - "version": "2.1.0", - "from": "nan@>=2.0.2 <3.0.0", - "resolved": "https://registry.npmjs.org/nan/-/nan-2.1.0.tgz" - }, - "node-pre-gyp": { - "version": "0.6.12", - "from": "node-pre-gyp@0.6.12", - "resolved": "https://registry.npmjs.org/node-pre-gyp/-/node-pre-gyp-0.6.12.tgz", - "dependencies": { - "nopt": { - "version": "3.0.4", - "from": "nopt@~3.0.1", - "resolved": "https://registry.npmjs.org/nopt/-/nopt-3.0.4.tgz", - "dependencies": { - "abbrev": { - "version": "1.0.7", - "from": "abbrev@1", - "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.0.7.tgz" - } - } - }, - "npmlog": { - "version": "1.2.1", - "from": "npmlog@~1.2.0", - "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-1.2.1.tgz", - "dependencies": { - "ansi": { - "version": "0.3.0", - "from": "ansi@~0.3.0", - "resolved": "https://registry.npmjs.org/ansi/-/ansi-0.3.0.tgz" - }, - "are-we-there-yet": { - "version": "1.0.4", - "from": "are-we-there-yet@~1.0.0", - "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.0.4.tgz", - "dependencies": { - "delegates": { - "version": "0.1.0", - "from": "delegates@^0.1.0", - "resolved": "https://registry.npmjs.org/delegates/-/delegates-0.1.0.tgz" - }, - "readable-stream": { - "version": "1.1.13", - "from": "readable-stream@^1.1.13", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.13.tgz", - "dependencies": { - "core-util-is": { - "version": "1.0.1", - "from": "core-util-is@~1.0.0", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.1.tgz" - }, - "isarray": { - "version": "0.0.1", - "from": "isarray@0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz" - }, - "string_decoder": { - "version": "0.10.31", - "from": "string_decoder@~0.10.x", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz" - }, - "inherits": { - "version": "2.0.1", - "from": "inherits@2", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz" - } - } - } - } - }, - "gauge": { - "version": "1.2.2", - "from": "gauge@~1.2.0", - "resolved": "https://registry.npmjs.org/gauge/-/gauge-1.2.2.tgz", - "dependencies": { - "has-unicode": { - "version": "1.0.0", - "from": "has-unicode@^1.0.0", - "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-1.0.0.tgz" - }, - "lodash.pad": { - "version": "3.1.1", - "from": "lodash.pad@^3.0.0", - "resolved": "https://registry.npmjs.org/lodash.pad/-/lodash.pad-3.1.1.tgz", - "dependencies": { - "lodash._basetostring": { - "version": "3.0.1", - "from": "lodash._basetostring@^3.0.0", - "resolved": "https://registry.npmjs.org/lodash._basetostring/-/lodash._basetostring-3.0.1.tgz" - }, - "lodash._createpadding": { - "version": "3.6.1", - "from": "lodash._createpadding@^3.0.0", - "resolved": "https://registry.npmjs.org/lodash._createpadding/-/lodash._createpadding-3.6.1.tgz", - "dependencies": { - "lodash.repeat": { - "version": "3.0.1", - "from": "lodash.repeat@^3.0.0", - "resolved": "https://registry.npmjs.org/lodash.repeat/-/lodash.repeat-3.0.1.tgz" - } - } - } - } - }, - "lodash.padleft": { - "version": "3.1.1", - "from": "lodash.padleft@^3.0.0", - "resolved": "https://registry.npmjs.org/lodash.padleft/-/lodash.padleft-3.1.1.tgz", - "dependencies": { - "lodash._basetostring": { - "version": "3.0.1", - "from": "lodash._basetostring@^3.0.0", - "resolved": "https://registry.npmjs.org/lodash._basetostring/-/lodash._basetostring-3.0.1.tgz" - }, - "lodash._createpadding": { - "version": "3.6.1", - "from": "lodash._createpadding@^3.0.0", - "resolved": "https://registry.npmjs.org/lodash._createpadding/-/lodash._createpadding-3.6.1.tgz", - "dependencies": { - "lodash.repeat": { - "version": "3.0.1", - "from": "lodash.repeat@^3.0.0", - "resolved": "https://registry.npmjs.org/lodash.repeat/-/lodash.repeat-3.0.1.tgz" - } - } - } - } - }, - "lodash.padright": { - "version": "3.1.1", - "from": "lodash.padright@^3.0.0", - "resolved": "https://registry.npmjs.org/lodash.padright/-/lodash.padright-3.1.1.tgz", - "dependencies": { - "lodash._basetostring": { - "version": "3.0.1", - "from": "lodash._basetostring@^3.0.0", - "resolved": "https://registry.npmjs.org/lodash._basetostring/-/lodash._basetostring-3.0.1.tgz" - }, - "lodash._createpadding": { - "version": "3.6.1", - "from": "lodash._createpadding@^3.0.0", - "resolved": "https://registry.npmjs.org/lodash._createpadding/-/lodash._createpadding-3.6.1.tgz", - "dependencies": { - "lodash.repeat": { - "version": "3.0.1", - "from": "lodash.repeat@^3.0.0", - "resolved": "https://registry.npmjs.org/lodash.repeat/-/lodash.repeat-3.0.1.tgz" - } - } - } - } - } - } - } - } - }, - "request": { - "version": "2.64.0", - "from": "request@2.x", - "resolved": "https://registry.npmjs.org/request/-/request-2.64.0.tgz", - "dependencies": { - "bl": { - "version": "1.0.0", - "from": "bl@~1.0.0", - "resolved": "https://registry.npmjs.org/bl/-/bl-1.0.0.tgz", - "dependencies": { - "readable-stream": { - "version": "2.0.2", - "from": "readable-stream@~2.0.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.0.2.tgz", - "dependencies": { - "core-util-is": { - "version": "1.0.1", - "from": "core-util-is@~1.0.0", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.1.tgz" - }, - "inherits": { - "version": "2.0.1", - "from": "inherits@~2.0.1", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz" - }, - "isarray": { - "version": "0.0.1", - "from": "isarray@0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz" - }, - "process-nextick-args": { - "version": "1.0.3", - "from": "process-nextick-args@~1.0.0", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.3.tgz" - }, - "string_decoder": { - "version": "0.10.31", - "from": "string_decoder@~0.10.x", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz" - }, - "util-deprecate": { - "version": "1.0.1", - "from": "util-deprecate@~1.0.1", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.1.tgz" - } - } - } - } - }, - "caseless": { - "version": "0.11.0", - "from": "caseless@~0.11.0", - "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.11.0.tgz" - }, - "extend": { - "version": "3.0.0", - "from": "extend@~3.0.0", - "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.0.tgz" - }, - "forever-agent": { - "version": "0.6.1", - "from": "forever-agent@~0.6.0", - "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz" - }, - "form-data": { - "version": "1.0.0-rc3", - "from": "form-data@~1.0.0-rc1", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-1.0.0-rc3.tgz", - "dependencies": { - "async": { - "version": "1.4.2", - "from": "async@^1.4.0", - "resolved": "https://registry.npmjs.org/async/-/async-1.4.2.tgz" - } - } - }, - "json-stringify-safe": { - "version": "5.0.1", - "from": "json-stringify-safe@~5.0.0", - "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz" - }, - "mime-types": { - "version": "2.1.7", - "from": "mime-types@~2.1.2", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.7.tgz", - "dependencies": { - "mime-db": { - "version": "1.19.0", - "from": "mime-db@~1.19.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.19.0.tgz" - } - } - }, - "node-uuid": { - "version": "1.4.3", - "from": "node-uuid@~1.4.0", - "resolved": "https://registry.npmjs.org/node-uuid/-/node-uuid-1.4.3.tgz" - }, - "qs": { - "version": "5.1.0", - "from": "qs@~5.1.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-5.1.0.tgz" - }, - "tunnel-agent": { - "version": "0.4.1", - "from": "tunnel-agent@~0.4.0", - "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.4.1.tgz" - }, - "tough-cookie": { - "version": "2.1.0", - "from": "tough-cookie@>=0.12.0", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.1.0.tgz" - }, - "http-signature": { - "version": "0.11.0", - "from": "http-signature@~0.11.0", - "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-0.11.0.tgz", - "dependencies": { - "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" - }, - "asn1": { - "version": "0.1.11", - "from": "asn1@0.1.11", - "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.1.11.tgz" - }, - "ctype": { - "version": "0.5.3", - "from": "ctype@0.5.3", - "resolved": "https://registry.npmjs.org/ctype/-/ctype-0.5.3.tgz" - } - } - }, - "oauth-sign": { - "version": "0.8.0", - "from": "oauth-sign@~0.8.0", - "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.8.0.tgz" - }, - "hawk": { - "version": "3.1.0", - "from": "hawk@~3.1.0", - "resolved": "https://registry.npmjs.org/hawk/-/hawk-3.1.0.tgz", - "dependencies": { - "hoek": { - "version": "2.16.3", - "from": "hoek@2.x.x", - "resolved": "https://registry.npmjs.org/hoek/-/hoek-2.16.3.tgz" - }, - "boom": { - "version": "2.9.0", - "from": "boom@^2.8.x", - "resolved": "https://registry.npmjs.org/boom/-/boom-2.9.0.tgz" - }, - "cryptiles": { - "version": "2.0.5", - "from": "cryptiles@2.x.x", - "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-2.0.5.tgz" - }, - "sntp": { - "version": "1.0.9", - "from": "sntp@1.x.x", - "resolved": "https://registry.npmjs.org/sntp/-/sntp-1.0.9.tgz" - } - } - }, - "aws-sign2": { - "version": "0.5.0", - "from": "aws-sign2@~0.5.0", - "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.5.0.tgz" - }, - "stringstream": { - "version": "0.0.4", - "from": "stringstream@~0.0.4", - "resolved": "https://registry.npmjs.org/stringstream/-/stringstream-0.0.4.tgz" - }, - "combined-stream": { - "version": "1.0.5", - "from": "combined-stream@~1.0.1", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.5.tgz", - "dependencies": { - "delayed-stream": { - "version": "1.0.0", - "from": "delayed-stream@~1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz" - } - } - }, - "isstream": { - "version": "0.1.2", - "from": "isstream@~0.1.1", - "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz" - }, - "har-validator": { - "version": "1.8.0", - "from": "har-validator@^1.6.1", - "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-1.8.0.tgz", - "dependencies": { - "bluebird": { - "version": "2.10.2", - "from": "bluebird@^2.9.30", - "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-2.10.2.tgz" - }, - "chalk": { - "version": "1.1.1", - "from": "chalk@^1.0.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.1.tgz", - "dependencies": { - "ansi-styles": { - "version": "2.1.0", - "from": "ansi-styles@^2.1.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.1.0.tgz" - }, - "escape-string-regexp": { - "version": "1.0.3", - "from": "escape-string-regexp@^1.0.2", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.3.tgz" - }, - "has-ansi": { - "version": "2.0.0", - "from": "has-ansi@^2.0.0", - "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", - "dependencies": { - "ansi-regex": { - "version": "2.0.0", - "from": "ansi-regex@^2.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.0.0.tgz" - } - } - }, - "strip-ansi": { - "version": "3.0.0", - "from": "strip-ansi@^3.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.0.tgz", - "dependencies": { - "ansi-regex": { - "version": "2.0.0", - "from": "ansi-regex@^2.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.0.0.tgz" - } - } - }, - "supports-color": { - "version": "2.0.0", - "from": "supports-color@^2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz" - } - } - }, - "commander": { - "version": "2.8.1", - "from": "commander@^2.8.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.8.1.tgz", - "dependencies": { - "graceful-readlink": { - "version": "1.0.1", - "from": "graceful-readlink@>= 1.0.0", - "resolved": "https://registry.npmjs.org/graceful-readlink/-/graceful-readlink-1.0.1.tgz" - } - } - }, - "is-my-json-valid": { - "version": "2.12.2", - "from": "is-my-json-valid@^2.12.0", - "resolved": "https://registry.npmjs.org/is-my-json-valid/-/is-my-json-valid-2.12.2.tgz", - "dependencies": { - "generate-function": { - "version": "2.0.0", - "from": "generate-function@^2.0.0", - "resolved": "https://registry.npmjs.org/generate-function/-/generate-function-2.0.0.tgz" - }, - "generate-object-property": { - "version": "1.2.0", - "from": "generate-object-property@^1.1.0", - "resolved": "https://registry.npmjs.org/generate-object-property/-/generate-object-property-1.2.0.tgz", - "dependencies": { - "is-property": { - "version": "1.0.2", - "from": "is-property@^1.0.0", - "resolved": "https://registry.npmjs.org/is-property/-/is-property-1.0.2.tgz" - } - } - }, - "jsonpointer": { - "version": "2.0.0", - "from": "jsonpointer@2.0.0", - "resolved": "https://registry.npmjs.org/jsonpointer/-/jsonpointer-2.0.0.tgz" - }, - "xtend": { - "version": "4.0.0", - "from": "xtend@^4.0.0", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.0.tgz" - } - } - } - } - } - } - }, - "semver": { - "version": "5.0.3", - "from": "semver@~5.0.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.0.3.tgz" - }, - "tar": { - "version": "2.2.1", - "from": "tar@~2.2.0", - "resolved": "https://registry.npmjs.org/tar/-/tar-2.2.1.tgz", - "dependencies": { - "block-stream": { - "version": "0.0.8", - "from": "block-stream@*", - "resolved": "https://registry.npmjs.org/block-stream/-/block-stream-0.0.8.tgz" - }, - "fstream": { - "version": "1.0.8", - "from": "fstream@^1.0.2", - "resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.8.tgz", - "dependencies": { - "graceful-fs": { - "version": "4.1.2", - "from": "graceful-fs@^4.1.2", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.2.tgz" - } - } - }, - "inherits": { - "version": "2.0.1", - "from": "inherits@2", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz" - } - } - }, - "tar-pack": { - "version": "2.0.0", - "from": "tar-pack@~2.0.0", - "resolved": "https://registry.npmjs.org/tar-pack/-/tar-pack-2.0.0.tgz", - "dependencies": { - "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" - }, - "once": { - "version": "1.1.1", - "from": "once@~1.1.1", - "resolved": "https://registry.npmjs.org/once/-/once-1.1.1.tgz" - }, - "debug": { - "version": "0.7.4", - "from": "debug@~0.7.2", - "resolved": "https://registry.npmjs.org/debug/-/debug-0.7.4.tgz" - }, - "rimraf": { - "version": "2.2.8", - "from": "rimraf@~2.2.0", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.2.8.tgz" - }, - "fstream": { - "version": "0.1.31", - "from": "fstream@~0.1.22", - "resolved": "https://registry.npmjs.org/fstream/-/fstream-0.1.31.tgz", - "dependencies": { - "graceful-fs": { - "version": "3.0.8", - "from": "graceful-fs@~3.0.2", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-3.0.8.tgz" - }, - "inherits": { - "version": "2.0.1", - "from": "inherits@~2.0.0", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz" - } - } - }, - "tar": { - "version": "0.1.20", - "from": "tar@~0.1.17", - "resolved": "https://registry.npmjs.org/tar/-/tar-0.1.20.tgz", - "dependencies": { - "block-stream": { - "version": "0.0.8", - "from": "block-stream@*", - "resolved": "https://registry.npmjs.org/block-stream/-/block-stream-0.0.8.tgz" - }, - "inherits": { - "version": "2.0.1", - "from": "inherits@2", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz" - } - } - }, - "fstream-ignore": { - "version": "0.0.7", - "from": "fstream-ignore@0.0.7", - "resolved": "https://registry.npmjs.org/fstream-ignore/-/fstream-ignore-0.0.7.tgz", - "dependencies": { - "minimatch": { - "version": "0.2.14", - "from": "minimatch@~0.2.0", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-0.2.14.tgz", - "dependencies": { - "lru-cache": { - "version": "2.7.0", - "from": "lru-cache@2", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-2.7.0.tgz" - }, - "sigmund": { - "version": "1.0.1", - "from": "sigmund@~1.0.0", - "resolved": "https://registry.npmjs.org/sigmund/-/sigmund-1.0.1.tgz" - } - } - }, - "inherits": { - "version": "2.0.1", - "from": "inherits@~2.0.1", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz" - } - } - }, - "readable-stream": { - "version": "1.0.33", - "from": "readable-stream@~1.0.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.33.tgz", - "dependencies": { - "core-util-is": { - "version": "1.0.1", - "from": "core-util-is@~1.0.0", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.1.tgz" - }, - "isarray": { - "version": "0.0.1", - "from": "isarray@0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz" - }, - "string_decoder": { - "version": "0.10.31", - "from": "string_decoder@~0.10.x", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz" - }, - "inherits": { - "version": "2.0.1", - "from": "inherits@~2.0.1", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz" - } - } - }, - "graceful-fs": { - "version": "1.2.3", - "from": "graceful-fs@1.2", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-1.2.3.tgz" - } - } - }, - "mkdirp": { - "version": "0.5.1", - "from": "mkdirp@~0.5.0", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", - "dependencies": { - "minimist": { - "version": "0.0.8", - "from": "minimist@0.0.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz" - } - } - }, - "rc": { - "version": "1.1.2", - "from": "rc@~1.1.0", - "resolved": "https://registry.npmjs.org/rc/-/rc-1.1.2.tgz", - "dependencies": { - "minimist": { - "version": "1.2.0", - "from": "minimist@^1.1.2", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz" - }, - "deep-extend": { - "version": "0.2.11", - "from": "deep-extend@~0.2.5", - "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.2.11.tgz" - }, - "strip-json-comments": { - "version": "0.1.3", - "from": "strip-json-comments@0.1.x", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-0.1.3.tgz" - }, - "ini": { - "version": "1.3.4", - "from": "ini@~1.3.0", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.4.tgz" - } - } - }, - "rimraf": { - "version": "2.4.3", - "from": "rimraf@~2.4.0", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.4.3.tgz", - "dependencies": { - "glob": { - "version": "5.0.15", - "from": "glob@^5.0.14", - "resolved": "https://registry.npmjs.org/glob/-/glob-5.0.15.tgz", - "dependencies": { - "inflight": { - "version": "1.0.4", - "from": "inflight@^1.0.4", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.4.tgz", - "dependencies": { - "wrappy": { - "version": "1.0.1", - "from": "wrappy@1", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.1.tgz" - } - } - }, - "inherits": { - "version": "2.0.1", - "from": "inherits@~2.0.1", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz" - }, - "minimatch": { - "version": "3.0.0", - "from": "minimatch@2 || 3", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.0.tgz", - "dependencies": { - "brace-expansion": { - "version": "1.1.1", - "from": "brace-expansion@^1.0.0", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.1.tgz", - "dependencies": { - "balanced-match": { - "version": "0.2.0", - "from": "balanced-match@^0.2.0", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-0.2.0.tgz" - }, - "concat-map": { - "version": "0.0.1", - "from": "concat-map@0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz" - } - } - } - } - }, - "once": { - "version": "1.3.2", - "from": "once@^1.3.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.3.2.tgz", - "dependencies": { - "wrappy": { - "version": "1.0.1", - "from": "wrappy@1", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.1.tgz" - } - } - }, - "path-is-absolute": { - "version": "1.0.0", - "from": "path-is-absolute@^1.0.0", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.0.tgz" - } - } - } - } - } - } - } - } - } - } - }, - "graceful-fs": { - "version": "3.0.8", - "from": "graceful-fs@>=3.0.5 <4.0.0", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-3.0.8.tgz" - } - } + "source-map": { + "version": "0.1.34", + "from": "source-map@0.1.34", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.1.34.tgz" }, - "webpack-core": { - "version": "0.6.7", - "from": "webpack-core@>=0.6.0 <0.7.0", - "resolved": "https://registry.npmjs.org/webpack-core/-/webpack-core-0.6.7.tgz", - "dependencies": { - "source-map": { - "version": "0.4.4", - "from": "source-map@>=0.4.1 <0.5.0", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz", - "dependencies": { - "amdefine": { - "version": "1.0.0", - "from": "amdefine@>=0.0.4", - "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.0.tgz" - } - } - }, - "source-list-map": { - "version": "0.1.5", - "from": "source-list-map@>=0.1.0 <0.2.0", - "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-0.1.5.tgz" - } - } + "window-size": { + "version": "0.1.0", + "from": "window-size@0.1.0", + "resolved": "https://registry.npmjs.org/window-size/-/window-size-0.1.0.tgz" + }, + "yargs": { + "version": "3.5.4", + "from": "yargs@>=3.5.4 <3.6.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-3.5.4.tgz" + } + } + }, + "uglify-to-browserify": { + "version": "1.0.2", + "from": "uglify-to-browserify@>=1.0.0 <1.1.0", + "resolved": "https://registry.npmjs.org/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz" + }, + "uid-number": { + "version": "0.0.5", + "from": "uid-number@0.0.5", + "resolved": "https://registry.npmjs.org/uid-number/-/uid-number-0.0.5.tgz" + }, + "ultron": { + "version": "1.0.2", + "from": "ultron@>=1.0.0 <1.1.0", + "resolved": "https://registry.npmjs.org/ultron/-/ultron-1.0.2.tgz" + }, + "uncontrollable": { + "version": "3.1.3", + "from": "uncontrollable@>=3.1.1 <4.0.0", + "resolved": "https://registry.npmjs.org/uncontrollable/-/uncontrollable-3.1.3.tgz" + }, + "underscore": { + "version": "1.6.0", + "from": "underscore@>=1.6.0 <1.7.0", + "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.6.0.tgz" + }, + "uniq": { + "version": "1.0.1", + "from": "uniq@>=1.0.1 <2.0.0", + "resolved": "https://registry.npmjs.org/uniq/-/uniq-1.0.1.tgz" + }, + "uniqid": { + "version": "1.0.0", + "from": "uniqid@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/uniqid/-/uniqid-1.0.0.tgz" + }, + "uniqs": { + "version": "2.0.0", + "from": "uniqs@>=2.0.0 <3.0.0", + "resolved": "https://registry.npmjs.org/uniqs/-/uniqs-2.0.0.tgz" + }, + "unpipe": { + "version": "1.0.0", + "from": "unpipe@1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz" + }, + "url": { + "version": "0.10.3", + "from": "url@>=0.10.1 <0.11.0", + "resolved": "https://registry.npmjs.org/url/-/url-0.10.3.tgz" + }, + "user-home": { + "version": "1.1.1", + "from": "user-home@>=1.1.1 <2.0.0", + "resolved": "https://registry.npmjs.org/user-home/-/user-home-1.1.1.tgz" + }, + "utf-8-validate": { + "version": "1.2.1", + "from": "utf-8-validate@>=1.2.0 <1.3.0", + "resolved": "https://registry.npmjs.org/utf-8-validate/-/utf-8-validate-1.2.1.tgz" + }, + "utf8": { + "version": "2.1.0", + "from": "utf8@2.1.0", + "resolved": "https://registry.npmjs.org/utf8/-/utf8-2.1.0.tgz" + }, + "util": { + "version": "0.10.3", + "from": "util@>=0.10.3 <0.11.0", + "resolved": "https://registry.npmjs.org/util/-/util-0.10.3.tgz" + }, + "util-deprecate": { + "version": "1.0.2", + "from": "util-deprecate@>=1.0.1 <1.1.0", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz" + }, + "utile": { + "version": "0.2.1", + "from": "utile@>=0.2.0 <0.3.0", + "resolved": "https://registry.npmjs.org/utile/-/utile-0.2.1.tgz", + "dependencies": { + "async": { + "version": "0.2.10", + "from": "async@>=0.2.9 <0.3.0", + "resolved": "https://registry.npmjs.org/async/-/async-0.2.10.tgz" } } + }, + "utils-merge": { + "version": "1.0.0", + "from": "utils-merge@1.0.0", + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.0.tgz" + }, + "validate-npm-package-license": { + "version": "3.0.1", + "from": "validate-npm-package-license@>=3.0.1 <4.0.0", + "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.1.tgz" + }, + "vary": { + "version": "1.0.1", + "from": "vary@>=1.0.1 <1.1.0", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.0.1.tgz" + }, + "vm-browserify": { + "version": "0.0.4", + "from": "vm-browserify@0.0.4", + "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-0.0.4.tgz" + }, + "void-elements": { + "version": "2.0.1", + "from": "void-elements@>=2.0.1 <2.1.0", + "resolved": "https://registry.npmjs.org/void-elements/-/void-elements-2.0.1.tgz" + }, + "vow": { + "version": "0.4.11", + "from": "vow@>=0.4.8 <0.5.0", + "resolved": "https://registry.npmjs.org/vow/-/vow-0.4.11.tgz" + }, + "vow-fs": { + "version": "0.3.4", + "from": "vow-fs@>=0.3.4 <0.4.0", + "resolved": "https://registry.npmjs.org/vow-fs/-/vow-fs-0.3.4.tgz", + "dependencies": { + "glob": { + "version": "4.5.3", + "from": "glob@>=4.3.1 <5.0.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-4.5.3.tgz" + } + } + }, + "vow-queue": { + "version": "0.4.2", + "from": "vow-queue@>=0.4.1 <0.5.0", + "resolved": "https://registry.npmjs.org/vow-queue/-/vow-queue-0.4.2.tgz" + }, + "warning": { + "version": "2.1.0", + "from": "warning@>=2.0.0 <3.0.0", + "resolved": "https://registry.npmjs.org/warning/-/warning-2.1.0.tgz" + }, + "watchpack": { + "version": "0.2.8", + "from": "watchpack@>=0.2.1 <0.3.0", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-0.2.8.tgz", + "dependencies": { + "async": { + "version": "0.9.2", + "from": "async@>=0.9.0 <0.10.0", + "resolved": "https://registry.npmjs.org/async/-/async-0.9.2.tgz" + } + } + }, + "webpack": { + "version": "1.12.2", + "from": "webpack@>=1.12.2 <2.0.0", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-1.12.2.tgz", + "dependencies": { + "esprima": { + "version": "2.6.0", + "from": "esprima@>=2.5.0 <3.0.0" + }, + "supports-color": { + "version": "3.1.2", + "from": "supports-color@>=3.1.0 <4.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.1.2.tgz" + } + } + }, + "webpack-core": { + "version": "0.6.7", + "from": "webpack-core@>=0.6.0 <0.7.0", + "resolved": "https://registry.npmjs.org/webpack-core/-/webpack-core-0.6.7.tgz" + }, + "webpack-dev-middleware": { + "version": "1.2.0", + "from": "webpack-dev-middleware@>=1.2.0 <2.0.0", + "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-1.2.0.tgz" + }, + "whatwg-fetch": { + "version": "0.9.0", + "from": "whatwg-fetch@>=0.9.0 <0.10.0", + "resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-0.9.0.tgz" + }, + "whet.extend": { + "version": "0.9.9", + "from": "whet.extend@>=0.9.9 <0.10.0", + "resolved": "https://registry.npmjs.org/whet.extend/-/whet.extend-0.9.9.tgz" + }, + "which": { + "version": "1.2.0", + "from": "which@>=1.1.1 <2.0.0", + "resolved": "https://registry.npmjs.org/which/-/which-1.2.0.tgz" + }, + "window-size": { + "version": "0.1.2", + "from": "window-size@>=0.1.2 <0.2.0", + "resolved": "https://registry.npmjs.org/window-size/-/window-size-0.1.2.tgz" + }, + "winston": { + "version": "0.8.3", + "from": "winston@>=0.8.0 <0.9.0", + "resolved": "https://registry.npmjs.org/winston/-/winston-0.8.3.tgz", + "dependencies": { + "async": { + "version": "0.2.10", + "from": "async@>=0.2.0 <0.3.0", + "resolved": "https://registry.npmjs.org/async/-/async-0.2.10.tgz" + }, + "colors": { + "version": "0.6.2", + "from": "colors@>=0.6.0 <0.7.0", + "resolved": "https://registry.npmjs.org/colors/-/colors-0.6.2.tgz" + } + } + }, + "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.2", + "from": "wordwrap@0.0.2", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.2.tgz" + }, + "wrappy": { + "version": "1.0.1", + "from": "wrappy@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.1.tgz" + }, + "write": { + "version": "0.2.1", + "from": "write@>=0.2.1 <0.3.0", + "resolved": "https://registry.npmjs.org/write/-/write-0.2.1.tgz" + }, + "ws": { + "version": "0.8.0", + "from": "ws@0.8.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-0.8.0.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" + }, + "xmlbuilder": { + "version": "2.6.5", + "from": "xmlbuilder@>=2.6.1 <3.0.0", + "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-2.6.5.tgz" + }, + "xmlhttprequest": { + "version": "1.5.0", + "from": "https://github.com/rase-/node-XMLHttpRequest/archive/a6b6f2.tar.gz", + "resolved": "https://github.com/rase-/node-XMLHttpRequest/archive/a6b6f2.tar.gz" + }, + "xtend": { + "version": "4.0.0", + "from": "xtend@>=4.0.0 <5.0.0", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.0.tgz" + }, + "y18n": { + "version": "3.2.0", + "from": "y18n@>=3.2.0 <4.0.0", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.0.tgz" + }, + "yargs": { + "version": "3.27.0", + "from": "yargs@>=3.27.0 <3.28.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-3.27.0.tgz" } } } diff --git a/client/package.json b/client/package.json index bb53f233..bedf89cd 100644 --- a/client/package.json +++ b/client/package.json @@ -4,7 +4,7 @@ "description": "Code from the React Webpack tutorial.", "main": "server.js", "engines": { - "node": "0.12.7" + "node": "4.2.0" }, "repository": { "type": "git", diff --git a/package.json b/package.json index 997f1928..dbf566f1 100644 --- a/package.json +++ b/package.json @@ -4,7 +4,7 @@ "description": "Code from the React Webpack tutorial.", "main": "server.js", "engines": { - "node": "0.12.7" + "node": "4.2.0" }, "scripts": { "postinstall": "cd client && npm install", From b00f3be2b8e7122139bb045bb5fd8e4b1b6dba9b Mon Sep 17 00:00:00 2001 From: dylangrafmyre Date: Thu, 15 Oct 2015 10:04:33 -1000 Subject: [PATCH 131/514] Add babel-core/polyfill to webpack.client.base --- client/webpack.client.base.config.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/client/webpack.client.base.config.js b/client/webpack.client.base.config.js index 6b8adfee..42bc6296 100644 --- a/client/webpack.client.base.config.js +++ b/client/webpack.client.base.config.js @@ -11,7 +11,7 @@ module.exports = { 'jquery', 'jquery-ujs', ], - app: [], + app: ['babel-core/polyfill'], }, resolve: { extensions: ['', '.webpack.js', '.web.js', '.js', '.jsx', '.scss', '.css', 'config.js'], From 3445116cc5c9bc21823dd5fbd67ff3c52994e84a Mon Sep 17 00:00:00 2001 From: dylangrafmyre Date: Thu, 15 Oct 2015 10:25:25 -1000 Subject: [PATCH 132/514] Adjust travis.yml for node 4.2.0 and latest npm --- .travis.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.travis.yml b/.travis.yml index 73b329d9..734eb60e 100644 --- a/.travis.yml +++ b/.travis.yml @@ -4,6 +4,7 @@ rvm: - 2.2.2 install: - bundle install + - npm install -g npm - npm install - cd client && npm run build:client - npm run build:server From 4de7593f02682b99a2565e642fa43315dacbf58d Mon Sep 17 00:00:00 2001 From: dylangrafmyre Date: Fri, 16 Oct 2015 12:37:52 -1000 Subject: [PATCH 133/514] Add npm: 3.3.6 to engines within package.jsons for heroku build to use npm 3.3.6 for npm install --- client/package.json | 3 ++- package.json | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/client/package.json b/client/package.json index bedf89cd..396f11fa 100644 --- a/client/package.json +++ b/client/package.json @@ -4,7 +4,8 @@ "description": "Code from the React Webpack tutorial.", "main": "server.js", "engines": { - "node": "4.2.0" + "node": "4.2.0", + "npm": "3.3.6" }, "repository": { "type": "git", diff --git a/package.json b/package.json index dbf566f1..84f23c0c 100644 --- a/package.json +++ b/package.json @@ -4,7 +4,8 @@ "description": "Code from the React Webpack tutorial.", "main": "server.js", "engines": { - "node": "4.2.0" + "node": "4.2.0", + "npm": "3.3.6" }, "scripts": { "postinstall": "cd client && npm install", From 94d92356828a56db25fccff9d50f41c525eead5b Mon Sep 17 00:00:00 2001 From: Roger Studner Date: Sun, 18 Oct 2015 15:04:45 -0400 Subject: [PATCH 134/514] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index f75b3df0..ba8affeb 100644 --- a/README.md +++ b/README.md @@ -62,7 +62,7 @@ See package.json and Gemfile for versions # Basic Setup 1. Be sure that you have Node installed. I use [nvm](https://github.com/creationix/nvm), with node - version `v0.12.7`. See this article [Updating and using nvm](http://forum.railsonmaui.com/t/updating-and-using-nvm/293). + version `v4.2.1`. See this article [Updating and using nvm](http://forum.railsonmaui.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.2 From 32576630135c6868d039d89acdc80488951b6b01 Mon Sep 17 00:00:00 2001 From: Rob Wise Date: Tue, 20 Oct 2015 19:58:07 -0400 Subject: [PATCH 135/514] Add current Git commit hash to index view --- app/controllers/pages_controller.rb | 1 + app/models/git_commit_sha.rb | 23 +++++++++++++++++ app/views/pages/index.html.erb | 5 ++++ scripts/deploy | 39 +++++++++++++++++++++++++++++ spec/features/pages_spec.rb | 27 ++++++++++++++++++++ 5 files changed, 95 insertions(+) create mode 100644 app/models/git_commit_sha.rb create mode 100644 scripts/deploy create mode 100644 spec/features/pages_spec.rb diff --git a/app/controllers/pages_controller.rb b/app/controllers/pages_controller.rb index 2d6b0e7b..708e9a16 100644 --- a/app/controllers/pages_controller.rb +++ b/app/controllers/pages_controller.rb @@ -1,6 +1,7 @@ class PagesController < ApplicationController def index @comments = Comment.all + @git_commit_sha = GitCommitSha.current_sha # NOTE: The below notes apply if you want to set the value of the props in the controller, as # compared to he view. However, it's more convenient to use Jbuilder from the view. See diff --git a/app/models/git_commit_sha.rb b/app/models/git_commit_sha.rb new file mode 100644 index 00000000..fc64861e --- /dev/null +++ b/app/models/git_commit_sha.rb @@ -0,0 +1,23 @@ +class GitCommitSha + def self.current_sha + return @commit_sha unless @commit_sha.blank? + @commit_sha = (retrieve_sha_from_env_var || retrieve_sha_from_git_folder) + end + + def self.current_sha=(sha) + @commit_sha = sha + end + + def self.reset_current_sha + self.current_sha = "" + end + + def self.retrieve_sha_from_git_folder + `git rev-parse HEAD 2>/dev/null`.to_s.strip + end + + def self.retrieve_sha_from_env_var + env_var = ENV["DEPLOYMENT_SHA"] + env_var.blank? ? false : env_var + end +end diff --git a/app/views/pages/index.html.erb b/app/views/pages/index.html.erb index 309a8940..d2e126cb 100644 --- a/app/views/pages/index.html.erb +++ b/app/views/pages/index.html.erb @@ -1,4 +1,9 @@

    Using React + Redux + Rails Backend (using the react_on_rails gem)

    +

    current Git commit: + + <%= @git_commit_sha %> + +

    • If this work interests you and you're a developer or designer looking for full or part-time remote work: please diff --git a/scripts/deploy b/scripts/deploy new file mode 100644 index 00000000..a7b20ef9 --- /dev/null +++ b/scripts/deploy @@ -0,0 +1,39 @@ +#!/bin/bash +# Pass in app as either staging or production first -- must match what you seen in git remote -v +# Examples: +# ./deploy staging +# ./deploy staging --force +# ./deploy production + +app=$1 + +shift + +sha=`git rev-parse HEAD 2>/dev/null` +current_branch=`git symbolic-ref HEAD 2> /dev/null | sed -e 's/refs\/heads\///'` + +# echo "current_branch is $current_branch" +# echo "sha is $sha" +# echo "app is $app" + +if [ "$app" == "" ]; then + echo "You must specify a param value for the app, such as production or staging" + exit 1 +fi + +if [[ "$app" == "production" && "$current_branch" != "master" ]]; then + echo "You can only deploy master to production!" + exit 1 +fi + +echo Running: +echo git push $app $current_branch:master $@ +git push $app $current_branch:master $@ + +echo Setting heroku config DEPLOYMENT_SHA +echo heroku config:set DEPLOYMENT_SHA=$sha --remote $app +heroku config:set DEPLOYMENT_SHA=$sha --remote $app + +# Run migrations always just in case +heroku run rake db:migrate --remote $app +heroku restart --remote $app diff --git a/spec/features/pages_spec.rb b/spec/features/pages_spec.rb new file mode 100644 index 00000000..81800fd4 --- /dev/null +++ b/spec/features/pages_spec.rb @@ -0,0 +1,27 @@ +require "rails_helper" + +shared_examples "Git Commit SHA" do + # Keep existing env variable intact + let!(:old_sha) { ENV["DEPLOYMENT_SHA"] } + after { ENV["DEPLOYMENT_SHA"] = old_sha } + background { visit root_path } + it "displays the current git commit" do + expect(page).to have_css("#current-git-commit-sha", text: sha) + end +end + +feature "Git Commit SHA" do + context "when env var is not set" do + let(:sha) { "94d92356828a56db25fccff9d50f41c525eead5x" } + before { GitCommitSha.current_sha = sha } + it_behaves_like "Git Commit SHA" + end + context "when env var is set" do + let(:sha) { "94d92356828a56db25fccff9d50f41c525eead5y" } + before do + ENV["DEPLOYMENT_SHA"] = sha + GitCommitSha.reset_current_sha + end + it_behaves_like "Git Commit SHA" + end +end From 36a65ea914d56abe69609bdfbd20e1888b77d8aa Mon Sep 17 00:00:00 2001 From: Rob Wise Date: Tue, 20 Oct 2015 20:49:00 -0400 Subject: [PATCH 136/514] Make improvements to GitCommitSha functionality. - refactor GitCommitSha class according to suggestions by @justin808 - access GitCommitSha directly from pages_helper instead of going through controller - display shorter version of the hash - make the hash link to the corresponding commit on GitHub --- app/controllers/pages_controller.rb | 1 - app/helpers/pages_helper.rb | 8 ++++++++ app/models/git_commit_sha.rb | 7 +++---- app/views/pages/index.html.erb | 8 ++++---- spec/features/pages_spec.rb | 4 +++- 5 files changed, 18 insertions(+), 10 deletions(-) diff --git a/app/controllers/pages_controller.rb b/app/controllers/pages_controller.rb index 708e9a16..2d6b0e7b 100644 --- a/app/controllers/pages_controller.rb +++ b/app/controllers/pages_controller.rb @@ -1,7 +1,6 @@ class PagesController < ApplicationController def index @comments = Comment.all - @git_commit_sha = GitCommitSha.current_sha # NOTE: The below notes apply if you want to set the value of the props in the controller, as # compared to he view. However, it's more convenient to use Jbuilder from the view. See diff --git a/app/helpers/pages_helper.rb b/app/helpers/pages_helper.rb index 2c057fd0..e03630a3 100644 --- a/app/helpers/pages_helper.rb +++ b/app/helpers/pages_helper.rb @@ -1,2 +1,10 @@ module PagesHelper + def git_commit_sha + GitCommitSha.current_sha + end + + def git_commit_sha_short + full_sha = git_commit_sha + full_sha.slice(full_sha.size - 7, full_sha.size) + end end diff --git a/app/models/git_commit_sha.rb b/app/models/git_commit_sha.rb index fc64861e..855c85cf 100644 --- a/app/models/git_commit_sha.rb +++ b/app/models/git_commit_sha.rb @@ -1,7 +1,6 @@ class GitCommitSha def self.current_sha - return @commit_sha unless @commit_sha.blank? - @commit_sha = (retrieve_sha_from_env_var || retrieve_sha_from_git_folder) + @commit_sha ||= retrieve_sha_from_env_var.presence || retrieve_sha_from_git_folder end def self.current_sha=(sha) @@ -9,7 +8,7 @@ def self.current_sha=(sha) end def self.reset_current_sha - self.current_sha = "" + self.current_sha = nil end def self.retrieve_sha_from_git_folder @@ -18,6 +17,6 @@ def self.retrieve_sha_from_git_folder def self.retrieve_sha_from_env_var env_var = ENV["DEPLOYMENT_SHA"] - env_var.blank? ? false : env_var + env_var.blank? ? nil : env_var end end diff --git a/app/views/pages/index.html.erb b/app/views/pages/index.html.erb index d2e126cb..167eed83 100644 --- a/app/views/pages/index.html.erb +++ b/app/views/pages/index.html.erb @@ -1,8 +1,8 @@

      Using React + Redux + Rails Backend (using the react_on_rails gem)

      -

      current Git commit: - - <%= @git_commit_sha %> - +

      Current Commit: + <%= link_to git_commit_sha_short, + "https://github.com/shakacode/react-webpack-rails-tutorial/commit/#{git_commit_sha}", + id: "git-commit-sha" %>

      • diff --git a/spec/features/pages_spec.rb b/spec/features/pages_spec.rb index 81800fd4..5a55e9c2 100644 --- a/spec/features/pages_spec.rb +++ b/spec/features/pages_spec.rb @@ -6,18 +6,20 @@ after { ENV["DEPLOYMENT_SHA"] = old_sha } background { visit root_path } it "displays the current git commit" do - expect(page).to have_css("#current-git-commit-sha", text: sha) + expect(page).to have_css("#git-commit-sha", text: expected_text) end end feature "Git Commit SHA" do context "when env var is not set" do let(:sha) { "94d92356828a56db25fccff9d50f41c525eead5x" } + let(:expected_text) { "5eead5x" } before { GitCommitSha.current_sha = sha } it_behaves_like "Git Commit SHA" end context "when env var is set" do let(:sha) { "94d92356828a56db25fccff9d50f41c525eead5y" } + let(:expected_text) { "5eead5y" } before do ENV["DEPLOYMENT_SHA"] = sha GitCommitSha.reset_current_sha From dfd6d7197f7d893581daa5751baa7b9779aa8d69 Mon Sep 17 00:00:00 2001 From: Rob Wise Date: Tue, 20 Oct 2015 21:33:00 -0400 Subject: [PATCH 137/514] Additional refactoring of GitCommitSha code --- app/helpers/pages_helper.rb | 2 +- app/models/git_commit_sha.rb | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/app/helpers/pages_helper.rb b/app/helpers/pages_helper.rb index e03630a3..abd6cdd8 100644 --- a/app/helpers/pages_helper.rb +++ b/app/helpers/pages_helper.rb @@ -5,6 +5,6 @@ def git_commit_sha def git_commit_sha_short full_sha = git_commit_sha - full_sha.slice(full_sha.size - 7, full_sha.size) + full_sha[-7..-1] end end diff --git a/app/models/git_commit_sha.rb b/app/models/git_commit_sha.rb index 855c85cf..ac84675e 100644 --- a/app/models/git_commit_sha.rb +++ b/app/models/git_commit_sha.rb @@ -1,6 +1,6 @@ class GitCommitSha def self.current_sha - @commit_sha ||= retrieve_sha_from_env_var.presence || retrieve_sha_from_git_folder + @commit_sha ||= retrieve_sha_from_env_var.presence || retrieve_sha_from_git end def self.current_sha=(sha) @@ -11,7 +11,7 @@ def self.reset_current_sha self.current_sha = nil end - def self.retrieve_sha_from_git_folder + def self.retrieve_sha_from_git `git rev-parse HEAD 2>/dev/null`.to_s.strip end From d6a0ac4264b1876376de4743eb671d3fe5e7a6e1 Mon Sep 17 00:00:00 2001 From: Rob Wise Date: Wed, 21 Oct 2015 00:15:59 -0400 Subject: [PATCH 138/514] Refactor feature tests --- spec/features/add_new_comment_spec.rb | 43 +++++++++ spec/features/comments_spec.rb | 131 -------------------------- spec/features/destroy_comment_spec.rb | 16 ++++ spec/features/edit_comment_spec.rb | 38 ++++++++ spec/features/shared/contexts.rb | 46 +++++++++ spec/features/shared/examples.rb | 33 +++++++ 6 files changed, 176 insertions(+), 131 deletions(-) create mode 100644 spec/features/add_new_comment_spec.rb delete mode 100644 spec/features/comments_spec.rb create mode 100644 spec/features/destroy_comment_spec.rb create mode 100644 spec/features/edit_comment_spec.rb create mode 100644 spec/features/shared/contexts.rb create mode 100644 spec/features/shared/examples.rb diff --git a/spec/features/add_new_comment_spec.rb b/spec/features/add_new_comment_spec.rb new file mode 100644 index 00000000..f12cac76 --- /dev/null +++ b/spec/features/add_new_comment_spec.rb @@ -0,0 +1,43 @@ +require "rails_helper" +require "features/shared/examples" +require "features/shared/contexts" + +feature "Add new comment" do + context "from main page", js: true do + include_context "Main Page" + context "via Horizontal Form" do + include_context "Horizontal Form" + include_examples "New Comment Submission" + end + context "via Inline Form" do + include_context "Inline Form" + include_examples "New Comment Submission" + end + context "via Stacked Form" do + include_context "Stacked Form" + include_examples "New Comment Submission" + end + end + + context "from simple page", js: true do + include_context "Simple Page" + context "via Horizontal Form" do + include_context "Horizontal Form" + include_examples "New Comment Submission" + end + context "via Inline Form" do + include_context "Inline Form" + include_examples "New Comment Submission" + end + context "via the Stacked Form" do + include_context "Stacked Form" + include_examples "New Comment Submission" + end + end + + context "from classic page" do + include_context "Classic Page" + background { click_link "New Comment" } + include_examples "New Comment Submission" + end +end diff --git a/spec/features/comments_spec.rb b/spec/features/comments_spec.rb deleted file mode 100644 index c506dd55..00000000 --- a/spec/features/comments_spec.rb +++ /dev/null @@ -1,131 +0,0 @@ -require "rails_helper" - -shared_context "Form Submitted" do |name: "Spicoli", text: "dude!"| - let(:hint_name) { "Your Name" } - let(:hint_text) { "Say something using markdown..." } - let(:name) { name } - let(:text) { text } - - background do - fill_in hint_name, with: name - fill_in hint_text, with: text - - click_button "Post" - end -end - -shared_examples "Comments Form" do - include_context "Form Submitted" - - scenario "submits form", js: true do - expect(page).to have_css(".comment", text: name) - expect(page).to have_css(".comment", text: text) - end -end - -shared_context "Horizontal Form" do - background do - click_link "Horizontal Form" - end - - it_behaves_like "Comments Form" - - context "iframe text" do - let(:iframe_text) { "" } - - include_context "Form Submitted", text: :iframe_text - - scenario "doesn't add an iframe", js: true do - expect(page).not_to have_css("iframe") - end - end - - context "blank fields" do - before { @comments_count = all(".comment").size } - include_context "Form Submitted", name: "", text: "" - - scenario "doesn't add a blank comment", js: true do - expect(page).to have_selector(".comment", count: @comments_count) - end - end -end - -shared_context "Inline Form" do - background do - click_link "Inline Form" - end - - it_behaves_like "Comments Form" -end - -shared_context "Stacked Form" do - background do - click_link "Stacked Form" - end - - it_behaves_like "Comments Form" -end - -feature "Add new comment" do - context "from the main page" do - background do - visit root_path - end - - include_context "Horizontal Form" - include_context "Inline Form" - include_context "Stacked Form" - end - - context "from the simple page" do - background do - visit simple_path - end - - include_context "Horizontal Form" - include_context "Inline Form" - include_context "Stacked Form" - end - - context "from the classic page" do - background do - visit comments_path - click_link "New Comment" - end - - it_behaves_like "Comments Form" - end -end - -feature "Edit a comment" do - context "from the classic page" do - let(:edited_name) { "Edited Name" } - - background do - visit comments_path - click_link "Edit", match: :first - end - - include_context "Form Submitted", name: :edited_name - - scenario "submits form" do - expect(page).to have_css(".comment", text: :edited_name) - end - end -end - -feature "Destroy a comment" do - context "from the classic page" do - let(:comment) { Comment.first } - - background do - visit comments_path - click_link "Destroy", href: comment_path(comment) - end - - scenario "destroys comment" do - expect(page).to_not have_css(".comment", text: comment.author) - expect(page).to_not have_css(".comment", text: comment.text) - end - end -end diff --git a/spec/features/destroy_comment_spec.rb b/spec/features/destroy_comment_spec.rb new file mode 100644 index 00000000..2bd09eab --- /dev/null +++ b/spec/features/destroy_comment_spec.rb @@ -0,0 +1,16 @@ +require "rails_helper" +require "features/shared/contexts" + +feature "Destroy a comment" do + include_context "Existing Comment" + context "from classic page" do + include_context "Classic Page" + let(:comment) { Comment.first } + + scenario "clicking destroy link destroys comment" do + click_link "Destroy", href: comment_path(comment) + expect(page).to_not have_css(".comment", text: comment.author) + expect(page).to_not have_css(".comment", text: comment.text) + end + end +end diff --git a/spec/features/edit_comment_spec.rb b/spec/features/edit_comment_spec.rb new file mode 100644 index 00000000..752e0f2d --- /dev/null +++ b/spec/features/edit_comment_spec.rb @@ -0,0 +1,38 @@ +require "rails_helper" +require "features/shared/examples" +require "features/shared/contexts" + +feature "Edit a comment" do + include_context "Existing Comment" + let(:comment) { Comment.first } + + context "from classic page" do + include_context "Classic Page" + background { click_link "Edit", match: :first } + + context "when edit is submitted" do + let(:edited_name) { "Abraham Lincoln" } + include_context "Form Submitted", name: :edited_name + + scenario "comment is updated" do + expect(page).to have_css(".comment", text: :edited_name) + expect(page).to have_success_message + end + end + + context "when edit is submitted with blank fields" do + include_context "Form Submitted with Blank Fields" + + scenario "comment is not updated" do + expect(page).not_to have_success_message + expect(page).not_to have_css(".comment", text: "") + end + end + end +end + +private + +def have_success_message # rubocop:disable Style/PredicateName + have_css("#notice", "Comment was successfully created.") +end diff --git a/spec/features/shared/contexts.rb b/spec/features/shared/contexts.rb new file mode 100644 index 00000000..88000595 --- /dev/null +++ b/spec/features/shared/contexts.rb @@ -0,0 +1,46 @@ +require "rails_helper" + +# Pages +shared_context "Main Page" do + background { visit root_path } +end +shared_context "Simple Page" do + background { visit simple_path } +end +shared_context "Classic Page" do + background { visit comments_path } +end + +# Forms +shared_context "Horizontal Form" do + background { click_link "Horizontal Form" } +end +shared_context "Inline Form" do + background { click_link "Inline Form" } +end +shared_context "Stacked Form" do + background { click_link "Stacked Form" } +end + +# Form Submission +shared_context "Form Submitted" do |name: "Spicoli", text: "dude!"| + let(:hint_name) { "Your Name" } + let(:hint_text) { "Say something using markdown..." } + let(:name) { name } + let(:text) { text } + + background do + fill_in hint_name, with: name + fill_in hint_text, with: text + click_button "Post" + end +end + +shared_context "Form Submitted with Blank Fields" do + include_context "Form Submitted", name: "", text: "" +end + +# Fixtures +shared_context "Existing Comment" do + before { Comment.create(author: "John Doe", text: "Hello there!") } +end diff --git a/spec/features/shared/examples.rb b/spec/features/shared/examples.rb new file mode 100644 index 00000000..c045b094 --- /dev/null +++ b/spec/features/shared/examples.rb @@ -0,0 +1,33 @@ +require "rails_helper" +require "features/shared/contexts" + +shared_examples "New Comment Submission" do + context "when the new comment is submitted" do + let(:name) { "John Smith" } + let(:text) { "Hello there!" } + include_context "Form Submitted", name: :name, text: :text + + scenario "comment is added" do + expect(page).to have_css(".comment", text: name) + expect(page).to have_css(".comment", text: text) + end + end + + context "when the new comment is submmited with blank fields" do + let!(:comments_count) { all(".comment").size } + include_context "Form Submitted with Blank Fields" + + scenario "comment is not added" do + expect(page).to have_selector(".comment", count: comments_count) + end + end + + context "with iframe text" do + let(:iframe_text) { "" } + include_context "Form Submitted", text: :iframe_text + + scenario "doesn't add an iframe" do + expect(page).not_to have_css("iframe") + end + end +end From 1f40fe77073d8a06de99b9d9bc1a2b4b57c08e30 Mon Sep 17 00:00:00 2001 From: Rob Wise Date: Wed, 21 Oct 2015 00:52:54 -0400 Subject: [PATCH 139/514] add comment validations --- app/models/comment.rb | 2 ++ 1 file changed, 2 insertions(+) diff --git a/app/models/comment.rb b/app/models/comment.rb index 45b2d38c..c86b86c6 100644 --- a/app/models/comment.rb +++ b/app/models/comment.rb @@ -1,2 +1,4 @@ class Comment < ActiveRecord::Base + validates_presence_of :author + validates_presence_of :text end From 7c1ce1fda0da3466df0d34a203bd5dae80bae8c2 Mon Sep 17 00:00:00 2001 From: Rob Wise Date: Wed, 21 Oct 2015 01:09:35 -0400 Subject: [PATCH 140/514] add expecation of error message for edit with blank fields --- spec/features/edit_comment_spec.rb | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/spec/features/edit_comment_spec.rb b/spec/features/edit_comment_spec.rb index 752e0f2d..da1005cf 100644 --- a/spec/features/edit_comment_spec.rb +++ b/spec/features/edit_comment_spec.rb @@ -25,6 +25,7 @@ scenario "comment is not updated" do expect(page).not_to have_success_message + expect(page).to have_failure_message expect(page).not_to have_css(".comment", text: "") end end @@ -36,3 +37,7 @@ def have_success_message # rubocop:disable Style/PredicateName have_css("#notice", "Comment was successfully created.") end + +def have_failure_message # rubocop:disable Style/PredicateName + have_css("#error_explanation") +end From 80ed2417459d5d7c0ba52eedcbf7a16a8a20c912 Mon Sep 17 00:00:00 2001 From: Rob Wise Date: Wed, 21 Oct 2015 01:46:58 -0400 Subject: [PATCH 141/514] Switch to RSpec's implicit shared context via metadata --- spec/features/add_new_comment_spec.rb | 27 +++++++++------------------ spec/features/destroy_comment_spec.rb | 6 ++---- spec/features/edit_comment_spec.rb | 10 +++------- spec/features/shared/contexts.rb | 18 +++++++++--------- spec/features/shared/examples.rb | 3 +-- 5 files changed, 24 insertions(+), 40 deletions(-) diff --git a/spec/features/add_new_comment_spec.rb b/spec/features/add_new_comment_spec.rb index f12cac76..4d22873d 100644 --- a/spec/features/add_new_comment_spec.rb +++ b/spec/features/add_new_comment_spec.rb @@ -3,40 +3,31 @@ require "features/shared/contexts" feature "Add new comment" do - context "from main page", js: true do - include_context "Main Page" - context "via Horizontal Form" do - include_context "Horizontal Form" + context "from main page", page: :main, js: true do + context "via Horizontal Form", form: :horizontal do include_examples "New Comment Submission" end - context "via Inline Form" do - include_context "Inline Form" + context "via Inline Form", form: :inline do include_examples "New Comment Submission" end - context "via Stacked Form" do - include_context "Stacked Form" + context "via Stacked Form", form: :stacked do include_examples "New Comment Submission" end end - context "from simple page", js: true do - include_context "Simple Page" - context "via Horizontal Form" do - include_context "Horizontal Form" + context "from simple page", page: :simple, js: true do + context "via Horizontal Form", form: :horizontal do include_examples "New Comment Submission" end - context "via Inline Form" do - include_context "Inline Form" + context "via Inline Form", form: :inline do include_examples "New Comment Submission" end - context "via the Stacked Form" do - include_context "Stacked Form" + context "via the Stacked Form", form: :stacked do include_examples "New Comment Submission" end end - context "from classic page" do - include_context "Classic Page" + context "from classic page", page: :classic do background { click_link "New Comment" } include_examples "New Comment Submission" end diff --git a/spec/features/destroy_comment_spec.rb b/spec/features/destroy_comment_spec.rb index 2bd09eab..68445420 100644 --- a/spec/features/destroy_comment_spec.rb +++ b/spec/features/destroy_comment_spec.rb @@ -1,10 +1,8 @@ require "rails_helper" require "features/shared/contexts" -feature "Destroy a comment" do - include_context "Existing Comment" - context "from classic page" do - include_context "Classic Page" +feature "Destroy a comment", existing_comment: true do + context "from classic page", page: :classic do let(:comment) { Comment.first } scenario "clicking destroy link destroys comment" do diff --git a/spec/features/edit_comment_spec.rb b/spec/features/edit_comment_spec.rb index da1005cf..9637e70f 100644 --- a/spec/features/edit_comment_spec.rb +++ b/spec/features/edit_comment_spec.rb @@ -2,12 +2,10 @@ require "features/shared/examples" require "features/shared/contexts" -feature "Edit a comment" do - include_context "Existing Comment" +feature "Edit a comment", existing_comment: true do let(:comment) { Comment.first } - context "from classic page" do - include_context "Classic Page" + context "from classic page", page: :classic do background { click_link "Edit", match: :first } context "when edit is submitted" do @@ -20,9 +18,7 @@ end end - context "when edit is submitted with blank fields" do - include_context "Form Submitted with Blank Fields" - + context "when edit is submitted with blank fields", blank_form_submitted: true do scenario "comment is not updated" do expect(page).not_to have_success_message expect(page).to have_failure_message diff --git a/spec/features/shared/contexts.rb b/spec/features/shared/contexts.rb index 88000595..3e0442bb 100644 --- a/spec/features/shared/contexts.rb +++ b/spec/features/shared/contexts.rb @@ -1,29 +1,29 @@ require "rails_helper" # Pages -shared_context "Main Page" do +shared_context "Main Page", page: :main do background { visit root_path } end -shared_context "Simple Page" do +shared_context "Simple Page", page: :simple do background { visit simple_path } end -shared_context "Classic Page" do +shared_context "Classic Page", page: :classic do background { visit comments_path } end # Forms -shared_context "Horizontal Form" do +shared_context "Horizontal Form", form: :horizontal do background { click_link "Horizontal Form" } end -shared_context "Inline Form" do +shared_context "Inline Form", form: :inline do background { click_link "Inline Form" } end -shared_context "Stacked Form" do +shared_context "Stacked Form", form: :stacked do background { click_link "Stacked Form" } end # Form Submission -shared_context "Form Submitted" do |name: "Spicoli", text: "dude!"| +shared_context "Form Submitted", form_submitted: true do |name: "Spicoli", text: "dude!"| let(:hint_name) { "Your Name" } let(:hint_text) { "Say something using markdown..." } let(:name) { name } @@ -36,11 +36,11 @@ end end -shared_context "Form Submitted with Blank Fields" do +shared_context "Form Submitted with Blank Fields", blank_form_submitted: true do include_context "Form Submitted", name: "", text: "" end # Fixtures -shared_context "Existing Comment" do +shared_context "Existing Comment", existing_comment: true do before { Comment.create(author: "John Doe", text: "Hello there!") } end diff --git a/spec/features/shared/examples.rb b/spec/features/shared/examples.rb index c045b094..73438a6b 100644 --- a/spec/features/shared/examples.rb +++ b/spec/features/shared/examples.rb @@ -13,9 +13,8 @@ end end - context "when the new comment is submmited with blank fields" do + context "when the new comment is submmited with blank fields", blank_form_submitted: true do let!(:comments_count) { all(".comment").size } - include_context "Form Submitted with Blank Fields" scenario "comment is not added" do expect(page).to have_selector(".comment", count: comments_count) From 0c60dcda8b038dba656909de88209376a659cd9d Mon Sep 17 00:00:00 2001 From: Geoff Evason Date: Wed, 21 Oct 2015 16:02:07 -0400 Subject: [PATCH 142/514] Include instructions for Bourbon in Readme --- README.md | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/README.md b/README.md index ba8affeb..bdcfff7a 100644 --- a/README.md +++ b/README.md @@ -169,6 +169,22 @@ this custom code has been consolidated under Webpack in search path. See config `config/application.rb`. Keep that in mind as you customize the Bootstrap Sass variables. +## Bourbon integration + +To use [bourbon](https://github.com/thoughtbot/bourbon) take the following steps: + +- Install node-bourbon `cd client && npm install --save node-bourbon` +- Update [bootstrap-sass.js](https://github.com/shakacode/react-webpack-rails-tutorial/blob/master/client/bootstrap-sass.config.js) to use the right paths: +``` +// Add this +var bourbonPaths = require('node-bourbon').includePaths; +module.exports = { + // ... + // And update this + styleLoader: 'style-loader!css-loader!sass-loader?imagePath=/assets/images&includePaths[]=' + bourbonPaths, +``` +- `@import 'bourbon';` Import bourbon from your [scss file](https://github.com/shakacode/react-webpack-rails-tutorial/blob/master/client/assets/stylesheets/_app-styling-post-bootstrap-loading.scss) + # Notes on Rails assets ## Rails Asset Pipeline Magic Be sure to see [assets.rake](https://github.com/shakacode/react-webpack-rails-tutorial/blob/master/lib/tasks/assets.rake) for how webpack is invoked during asset compilation. From f68d4741604cb21416da6357af64c947144fde24 Mon Sep 17 00:00:00 2001 From: Rob Wise Date: Wed, 21 Oct 2015 22:11:51 -0400 Subject: [PATCH 143/514] Change calls of ReactOnRails to Rails.application --- 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 df0694d8..7df4f9b5 100644 --- a/lib/tasks/assets.rake +++ b/lib/tasks/assets.rake @@ -18,7 +18,7 @@ namespace :assets do end task :clobber do - rm_rf "#{RailsReactTutorial::Application.config.root}/app/assets/javascripts/generated/client-bundle.js" - rm_rf "#{RailsReactTutorial::Application.config.root}/app/assets/javascripts/generated/server-bundle.js" + rm_rf "#{Rails.application.config.root}/app/assets/javascripts/generated/client-bundle.js" + rm_rf "#{Rails.application.config.root}/app/assets/javascripts/generated/server-bundle.js" end end From 44404f195c8c1eecfce838ca9d1a1b6f2c18c239 Mon Sep 17 00:00:00 2001 From: Rob Wise Date: Thu, 22 Oct 2015 01:14:32 -0400 Subject: [PATCH 144/514] Use buildpack to set git commit SHA during Heroku build Heroku does not provide access to Git via the command line, so the methods that work for the dev and test environments won't work here. Instead, we can utilize an additional buildpack in .buildpacks to write the SOURCE_VERSION environment variable to a file named .source_version in the application root. We cannot reference this environment variable directly from the app because Heroku only makes it available during the compilation phase of the build, hence the need to use a buildpack to write it to a file for later use by the app. --- .buildpacks | 1 + app/helpers/pages_helper.rb | 2 +- app/models/git_commit_sha.rb | 9 +++++---- scripts/deploy | 39 ------------------------------------ spec/features/pages_spec.rb | 7 ++++--- 5 files changed, 11 insertions(+), 47 deletions(-) delete mode 100644 scripts/deploy diff --git a/.buildpacks b/.buildpacks index 9fb12425..9296fcce 100644 --- a/.buildpacks +++ b/.buildpacks @@ -1,2 +1,3 @@ https://github.com/heroku/heroku-buildpack-nodejs.git https://github.com/heroku/heroku-buildpack-ruby.git +https://github.com/sreid/heroku-buildpack-sourceversion.git diff --git a/app/helpers/pages_helper.rb b/app/helpers/pages_helper.rb index abd6cdd8..c5ca1429 100644 --- a/app/helpers/pages_helper.rb +++ b/app/helpers/pages_helper.rb @@ -5,6 +5,6 @@ def git_commit_sha def git_commit_sha_short full_sha = git_commit_sha - full_sha[-7..-1] + full_sha[-8..-1] end end diff --git a/app/models/git_commit_sha.rb b/app/models/git_commit_sha.rb index ac84675e..2e0aa4e6 100644 --- a/app/models/git_commit_sha.rb +++ b/app/models/git_commit_sha.rb @@ -1,6 +1,7 @@ +# Retrieves the current git commit SHA of the project class GitCommitSha def self.current_sha - @commit_sha ||= retrieve_sha_from_env_var.presence || retrieve_sha_from_git + @commit_sha ||= retrieve_sha_from_file.presence || retrieve_sha_from_git end def self.current_sha=(sha) @@ -15,8 +16,8 @@ def self.retrieve_sha_from_git `git rev-parse HEAD 2>/dev/null`.to_s.strip end - def self.retrieve_sha_from_env_var - env_var = ENV["DEPLOYMENT_SHA"] - env_var.blank? ? nil : env_var + def self.retrieve_sha_from_file + expected_filepath = Rails.root.join(".source_version") + File.exist?(expected_filepath) ? File.read(expected_filepath) : nil end end diff --git a/scripts/deploy b/scripts/deploy deleted file mode 100644 index a7b20ef9..00000000 --- a/scripts/deploy +++ /dev/null @@ -1,39 +0,0 @@ -#!/bin/bash -# Pass in app as either staging or production first -- must match what you seen in git remote -v -# Examples: -# ./deploy staging -# ./deploy staging --force -# ./deploy production - -app=$1 - -shift - -sha=`git rev-parse HEAD 2>/dev/null` -current_branch=`git symbolic-ref HEAD 2> /dev/null | sed -e 's/refs\/heads\///'` - -# echo "current_branch is $current_branch" -# echo "sha is $sha" -# echo "app is $app" - -if [ "$app" == "" ]; then - echo "You must specify a param value for the app, such as production or staging" - exit 1 -fi - -if [[ "$app" == "production" && "$current_branch" != "master" ]]; then - echo "You can only deploy master to production!" - exit 1 -fi - -echo Running: -echo git push $app $current_branch:master $@ -git push $app $current_branch:master $@ - -echo Setting heroku config DEPLOYMENT_SHA -echo heroku config:set DEPLOYMENT_SHA=$sha --remote $app -heroku config:set DEPLOYMENT_SHA=$sha --remote $app - -# Run migrations always just in case -heroku run rake db:migrate --remote $app -heroku restart --remote $app diff --git a/spec/features/pages_spec.rb b/spec/features/pages_spec.rb index 5a55e9c2..ac00ad49 100644 --- a/spec/features/pages_spec.rb +++ b/spec/features/pages_spec.rb @@ -11,19 +11,20 @@ end feature "Git Commit SHA" do - context "when env var is not set" do + context "when .source_version file does not exist" do let(:sha) { "94d92356828a56db25fccff9d50f41c525eead5x" } let(:expected_text) { "5eead5x" } before { GitCommitSha.current_sha = sha } it_behaves_like "Git Commit SHA" end - context "when env var is set" do + context "when .source_version file exists" do let(:sha) { "94d92356828a56db25fccff9d50f41c525eead5y" } let(:expected_text) { "5eead5y" } before do - ENV["DEPLOYMENT_SHA"] = sha + `cd #{Rails.root} && echo #{sha} > .source_version` GitCommitSha.reset_current_sha end + after { `cd #{Rails.root} && rm .source_version` } it_behaves_like "Git Commit SHA" end end From 5b62b30a483eb8976f007e6618900e6019c44453 Mon Sep 17 00:00:00 2001 From: Rob Wise Date: Thu, 22 Oct 2015 13:27:57 -0400 Subject: [PATCH 145/514] Git Commit Sha - fix loose matching error and add comments --- app/helpers/pages_helper.rb | 2 +- app/models/git_commit_sha.rb | 8 +++++--- spec/features/pages_spec.rb | 22 +++++++++++++--------- 3 files changed, 19 insertions(+), 13 deletions(-) diff --git a/app/helpers/pages_helper.rb b/app/helpers/pages_helper.rb index c5ca1429..abd6cdd8 100644 --- a/app/helpers/pages_helper.rb +++ b/app/helpers/pages_helper.rb @@ -5,6 +5,6 @@ def git_commit_sha def git_commit_sha_short full_sha = git_commit_sha - full_sha[-8..-1] + full_sha[-7..-1] end end diff --git a/app/models/git_commit_sha.rb b/app/models/git_commit_sha.rb index 2e0aa4e6..c8a80fc6 100644 --- a/app/models/git_commit_sha.rb +++ b/app/models/git_commit_sha.rb @@ -1,23 +1,25 @@ # Retrieves the current git commit SHA of the project class GitCommitSha def self.current_sha - @commit_sha ||= retrieve_sha_from_file.presence || retrieve_sha_from_git + @sha ||= retrieve_sha_from_file.presence || retrieve_sha_from_git end def self.current_sha=(sha) - @commit_sha = sha + @sha = sha end def self.reset_current_sha self.current_sha = nil end + # Assumes the git CLI is available. This is not the case in production on Heroku. def self.retrieve_sha_from_git `git rev-parse HEAD 2>/dev/null`.to_s.strip end + # Assumes a .source_version file with SHA inside. A special Heroku buildpack creates this for us in production. def self.retrieve_sha_from_file expected_filepath = Rails.root.join(".source_version") - File.exist?(expected_filepath) ? File.read(expected_filepath) : nil + File.exist?(expected_filepath) ? File.read(expected_filepath).to_s.strip : nil end end diff --git a/spec/features/pages_spec.rb b/spec/features/pages_spec.rb index ac00ad49..b47ea67c 100644 --- a/spec/features/pages_spec.rb +++ b/spec/features/pages_spec.rb @@ -1,29 +1,33 @@ require "rails_helper" shared_examples "Git Commit SHA" do - # Keep existing env variable intact - let!(:old_sha) { ENV["DEPLOYMENT_SHA"] } - after { ENV["DEPLOYMENT_SHA"] = old_sha } background { visit root_path } it "displays the current git commit" do - expect(page).to have_css("#git-commit-sha", text: expected_text) + el = find("#git-commit-sha") + expect(el.text).to eq expected_text end end feature "Git Commit SHA" do + before do + # sha gets cached as an instance variable, so need to start fresh + GitCommitSha.reset_current_sha + end + context "when .source_version file does not exist" do let(:sha) { "94d92356828a56db25fccff9d50f41c525eead5x" } let(:expected_text) { "5eead5x" } - before { GitCommitSha.current_sha = sha } + before do + # stub this method since we need to control what the sha actually is + allow(GitCommitSha).to receive(:retrieve_sha_from_git) { sha } + end it_behaves_like "Git Commit SHA" end + context "when .source_version file exists" do let(:sha) { "94d92356828a56db25fccff9d50f41c525eead5y" } let(:expected_text) { "5eead5y" } - before do - `cd #{Rails.root} && echo #{sha} > .source_version` - GitCommitSha.reset_current_sha - end + before { `cd #{Rails.root} && echo #{sha} > .source_version` } after { `cd #{Rails.root} && rm .source_version` } it_behaves_like "Git Commit SHA" end From a2aa175346c51448535a1fb7d0ce618ac5138849 Mon Sep 17 00:00:00 2001 From: Rob Wise Date: Sun, 25 Oct 2015 13:37:40 -0400 Subject: [PATCH 146/514] Improve comment in webpack.client.base.config.js --- client/webpack.client.base.config.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/client/webpack.client.base.config.js b/client/webpack.client.base.config.js index 42bc6296..186d186a 100644 --- a/client/webpack.client.base.config.js +++ b/client/webpack.client.base.config.js @@ -1,4 +1,4 @@ -// Common webpack configuration used by webpack.hot.config and webpack.rails.config. +// Common client-side webpack configuration used by webpack.hot.config and webpack.rails.config. const webpack = require('webpack'); From a3d70dd79f179919abb48257df7277ec8227122b Mon Sep 17 00:00:00 2001 From: Justin Gordon Date: Sun, 25 Oct 2015 12:19:24 -0700 Subject: [PATCH 147/514] Update webpack.client.base.config.js --- client/webpack.client.base.config.js | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/client/webpack.client.base.config.js b/client/webpack.client.base.config.js index 186d186a..2c3cec3e 100644 --- a/client/webpack.client.base.config.js +++ b/client/webpack.client.base.config.js @@ -7,20 +7,35 @@ module.exports = { // the project dir context: __dirname, entry: { + + // See use of 'vendor' in the CommonsChunkPlugin inclusion below. vendor: [ + 'babel-core/polyfill', 'jquery', 'jquery-ujs', + 'react', + 'react-dom', ], - app: ['babel-core/polyfill'], + + // This will contain the app entry points defined by webpack.hot.config and webpack.rails.config + app: [], }, resolve: { extensions: ['', '.webpack.js', '.web.js', '.js', '.jsx', '.scss', '.css', 'config.js'], }, plugins: [ + + // https://webpack.github.io/docs/list-of-plugins.html#2-explicit-vendor-chunk new webpack.optimize.CommonsChunkPlugin({ + + // This name 'vendor' ties into the entry definition name: 'vendor', - chunks: ['app'], + + // We don't want the default vendor.js name filename: 'vendor-bundle.js', + + // Passing Infinity just creates the commons chunk, but moves no modules into it. + // In other words, we only put what's in the vendor entry definition in vendor-bundle.js minChunks: Infinity, }), ], From 48218b3a36492bef7cd3322d7763470ac183e28c Mon Sep 17 00:00:00 2001 From: Justin Gordon Date: Wed, 28 Oct 2015 19:25:31 -0700 Subject: [PATCH 148/514] Update application.js --- app/assets/javascripts/application.js | 3 +-- client/webpack.client.rails.config.js | 3 ++- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/app/assets/javascripts/application.js b/app/assets/javascripts/application.js index fa8e53ef..71aae88d 100644 --- a/app/assets/javascripts/application.js +++ b/app/assets/javascripts/application.js @@ -10,8 +10,7 @@ // Read Sprockets README (https://github.com/sstephenson/sprockets#sprockets-directives) for details // about supported directives. -// Need to be on top to allow Poltergeist test to work with React. -//= require es5-shim/es5-shim +// Need to be on top to allow Poltergeist test to work with React: es5-shim/es5-shim. This is lincluded in app-bundle. //= require react_on_rails // It is important that generated/vendor-bundle must be before bootstrap since it is exposing jQuery and jQuery-ujs diff --git a/client/webpack.client.rails.config.js b/client/webpack.client.rails.config.js index 96db2643..a7d4b170 100644 --- a/client/webpack.client.rails.config.js +++ b/client/webpack.client.rails.config.js @@ -24,7 +24,8 @@ config.entry.app.push('./app/startup/clientGlobals'); // See webpack.common.config for adding modules common to both the webpack dev server and rails config.module.loaders.push( - {test: /\.jsx?$/, loader: 'babel-loader', exclude: /node_modules/} + {test: /\.jsx?$/, loader: 'babel-loader', exclude: /node_modules/}, + {test: require.resolve('react'), loader: 'imports?shim=es5-shim/es5-shim&sham=es5-shim/es5-sham'} ); module.exports = config; From b123008f24603ae67e5678b63350a19de8d8b37e Mon Sep 17 00:00:00 2001 From: Rob Wise Date: Thu, 29 Oct 2015 12:07:13 -0400 Subject: [PATCH 149/514] Remove es5-shim from Gemfile --- Gemfile | 1 - Gemfile.lock | 4 ---- 2 files changed, 5 deletions(-) diff --git a/Gemfile b/Gemfile index 95c2f8cb..43e2595c 100644 --- a/Gemfile +++ b/Gemfile @@ -28,7 +28,6 @@ gem "turbolinks" gem "jbuilder" # bundle exec rake doc:rails generates the API under doc/api. gem "sdoc", group: :doc -gem "es5-shim-rails" # Use ActiveModel has_secure_password # gem "bcrypt", "~> 3.1.7" diff --git a/Gemfile.lock b/Gemfile.lock index 1f790b1c..b53aa641 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -106,9 +106,6 @@ GEM domain_name (0.5.24) unf (>= 0.0.5, < 1.0.0) erubis (2.7.0) - es5-shim-rails (4.0.1) - actionpack (>= 3.1) - railties (>= 3.1) execjs (2.5.2) factory_girl (4.5.0) activesupport (>= 3.0.0) @@ -337,7 +334,6 @@ DEPENDENCIES coffee-rails coveralls database_cleaner - es5-shim-rails factory_girl_rails foreman jbuilder From 7d76829243ad7b51250c06db29f9b560c9a744ce Mon Sep 17 00:00:00 2001 From: Justin Gordon Date: Thu, 29 Oct 2015 18:39:44 -0700 Subject: [PATCH 150/514] Update Gems --- Gemfile | 10 +-- Gemfile.lock | 142 ++++++++++++++++++------------------ config.ru | 2 +- config/environments/test.rb | 2 +- spec/rails_helper.rb | 2 +- 5 files changed, 79 insertions(+), 79 deletions(-) diff --git a/Gemfile b/Gemfile index 43e2595c..9c5809aa 100644 --- a/Gemfile +++ b/Gemfile @@ -10,9 +10,9 @@ gem "pg", group: :production # Use SCSS for stylesheets gem "sass-rails" -gem "bootstrap-sass", "~> 3.3.1" +gem "bootstrap-sass", "~> 3.3" # Use Uglifier as compressor for JavaScript assets -gem "uglifier", "~> 2.7.2" +gem "uglifier" # Use CoffeeScript for .js.coffee assets and views gem "coffee-rails" # See https://github.com/sstephenson/execjs#readme for more supported runtimes @@ -65,16 +65,14 @@ group :development, :test do gem "factory_girl_rails" + # Linters and Security gem "rubocop", require: false - gem "ruby-lint", require: false - gem "scss_lint", require: false - gem "brakeman", require: false - gem "bundler-audit", require: false + # Allow printing with colors to terminal gem "rainbow" # Favorite debugging gems diff --git a/Gemfile.lock b/Gemfile.lock index b53aa641..16a7457c 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -1,36 +1,36 @@ GEM remote: https://rubygems.org/ specs: - actionmailer (4.2.3) - actionpack (= 4.2.3) - actionview (= 4.2.3) - activejob (= 4.2.3) + actionmailer (4.2.4) + actionpack (= 4.2.4) + actionview (= 4.2.4) + activejob (= 4.2.4) mail (~> 2.5, >= 2.5.4) rails-dom-testing (~> 1.0, >= 1.0.5) - actionpack (4.2.3) - actionview (= 4.2.3) - activesupport (= 4.2.3) + actionpack (4.2.4) + actionview (= 4.2.4) + activesupport (= 4.2.4) 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.3) - activesupport (= 4.2.3) + actionview (4.2.4) + activesupport (= 4.2.4) 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.3) - activesupport (= 4.2.3) + activejob (4.2.4) + activesupport (= 4.2.4) globalid (>= 0.3.0) - activemodel (4.2.3) - activesupport (= 4.2.3) + activemodel (4.2.4) + activesupport (= 4.2.4) builder (~> 3.1) - activerecord (4.2.3) - activemodel (= 4.2.3) - activesupport (= 4.2.3) + activerecord (4.2.4) + activemodel (= 4.2.4) + activesupport (= 4.2.4) arel (~> 6.0) - activesupport (4.2.3) + activesupport (4.2.4) i18n (~> 0.7) json (~> 1.7, >= 1.7.7) minitest (~> 5.1) @@ -39,11 +39,11 @@ GEM addressable (2.3.8) archive-zip (0.7.0) io-like (~> 0.3.0) - arel (6.0.2) - ast (2.0.0) + arel (6.0.3) + ast (2.1.0) astrolabe (1.3.1) parser (~> 2.2) - autoprefixer-rails (5.2.1.1) + autoprefixer-rails (6.0.3) execjs json awesome_print (1.6.1) @@ -52,7 +52,7 @@ GEM bootstrap-sass (3.3.5.1) autoprefixer-rails (>= 5.0.0.1) sass (>= 3.3.0) - brakeman (3.1.1) + brakeman (3.1.2) erubis (~> 2.6) fastercsv (~> 1.5) haml (>= 3.0, < 5.0) @@ -60,6 +60,7 @@ GEM multi_json (~> 1.2) ruby2ruby (>= 2.1.1, < 2.3.0) ruby_parser (~> 3.7.0) + safe_yaml sass (~> 3.0) slim (>= 1.3.6, < 4.0) terminal-table (~> 1.4) @@ -69,7 +70,7 @@ GEM thor (~> 0.18) byebug (5.0.0) columnize (= 0.9.0) - capybara (2.4.4) + capybara (2.5.0) mime-types (>= 1.16) nokogiri (>= 1.3.3) rack (>= 1.0.0) @@ -78,7 +79,7 @@ GEM capybara-screenshot (1.0.11) capybara (>= 1.0, < 3) launchy - childprocess (0.5.6) + childprocess (0.5.7) ffi (~> 1.0, >= 1.0.11) chromedriver-helper (1.0.0) archive-zip (~> 0.7.0) @@ -93,20 +94,20 @@ GEM coffee-script-source (1.9.1.1) columnize (0.9.0) connection_pool (2.2.0) - coveralls (0.8.2) + coveralls (0.8.3) json (~> 1.8) rest-client (>= 1.6.8, < 2) simplecov (~> 0.10.0) term-ansicolor (~> 1.3) thor (~> 0.19.1) - database_cleaner (1.4.1) + database_cleaner (1.5.1) debug_inspector (0.0.2) diff-lcs (1.2.5) docile (1.1.5) - domain_name (0.5.24) + domain_name (0.5.25) unf (>= 0.0.5, < 1.0.0) erubis (2.7.0) - execjs (2.5.2) + execjs (2.6.0) factory_girl (4.5.0) activesupport (>= 3.0.0) factory_girl_rails (4.5.0) @@ -116,41 +117,41 @@ GEM ffi (1.9.10) foreman (0.78.0) thor (~> 0.19.1) - globalid (0.3.5) + globalid (0.3.6) activesupport (>= 4.1.0) haml (4.0.7) tilt - highline (1.7.7) + 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.3.1) + jbuilder (2.3.2) activesupport (>= 3.0.0, < 5) multi_json (~> 1.2) json (1.8.3) - kgio (2.9.3) + kgio (2.10.0) launchy (2.4.3) addressable (~> 2.3) - libv8 (3.16.14.11) - loofah (2.0.2) + libv8 (3.16.14.13) + loofah (2.0.3) nokogiri (>= 1.5.9) mail (2.6.3) mime-types (>= 1.16, < 3) method_source (0.8.2) - mime-types (2.6.1) + mime-types (2.6.2) mini_portile (0.6.2) - minitest (5.7.0) + minitest (5.8.2) multi_json (1.11.2) - netrc (0.10.3) + netrc (0.11.0) nokogiri (1.6.6.2) mini_portile (~> 0.6.0) - parser (2.2.2.6) + parser (2.2.3.0) ast (>= 1.1, < 3.0) - pg (0.18.2) + pg (0.18.3) powerpack (0.1.1) - pry (0.10.1) + pry (0.10.3) coderay (~> 1.1.0) method_source (~> 0.8.1) slop (~> 3.4) @@ -171,20 +172,20 @@ GEM rack (1.6.4) rack-test (0.6.3) rack (>= 1.0) - rails (4.2.3) - actionmailer (= 4.2.3) - actionpack (= 4.2.3) - actionview (= 4.2.3) - activejob (= 4.2.3) - activemodel (= 4.2.3) - activerecord (= 4.2.3) - activesupport (= 4.2.3) + rails (4.2.4) + actionmailer (= 4.2.4) + actionpack (= 4.2.4) + actionview (= 4.2.4) + activejob (= 4.2.4) + activemodel (= 4.2.4) + activerecord (= 4.2.4) + activesupport (= 4.2.4) bundler (>= 1.3.0, < 2.0) - railties (= 4.2.3) + railties (= 4.2.4) sprockets-rails rails-deprecated_sanitizer (1.0.3) activesupport (>= 4.2.0.alpha) - rails-dom-testing (1.0.6) + rails-dom-testing (1.0.7) activesupport (>= 4.2.0.beta, < 5.0) nokogiri (~> 1.6.0) rails-deprecated_sanitizer (>= 1.0.1) @@ -194,10 +195,10 @@ GEM rails_serve_static_assets rails_stdout_logging rails_serve_static_assets (0.0.4) - rails_stdout_logging (0.0.3) - railties (4.2.3) - actionpack (= 4.2.3) - activesupport (= 4.2.3) + rails_stdout_logging (0.0.4) + railties (4.2.4) + actionpack (= 4.2.4) + activesupport (= 4.2.4) rake (>= 0.8.7) thor (>= 0.18.1, < 2.0) rainbow (2.0.0) @@ -230,36 +231,37 @@ GEM rspec-mocks (~> 3.3.0) rspec-support (~> 3.3.0) rspec-support (3.3.0) - rubocop (0.32.1) + rubocop (0.34.2) astrolabe (~> 1.3) parser (>= 2.2.2.5, < 3.0) powerpack (~> 0.1) rainbow (>= 1.99.1, < 3.0) ruby-progressbar (~> 1.4) - ruby-lint (2.0.4) + ruby-lint (2.0.5) parser (~> 2.2) slop (~> 3.4, >= 3.4.7) ruby-progressbar (1.7.5) ruby2ruby (2.2.0) ruby_parser (~> 3.1) sexp_processor (~> 4.0) - ruby_parser (3.7.1) + ruby_parser (3.7.2) sexp_processor (~> 4.1) rubyzip (1.1.7) - sass (3.4.18) - sass-rails (5.0.3) + safe_yaml (1.0.4) + sass (3.4.19) + sass-rails (5.0.4) railties (>= 4.0.0, < 5.0) sass (~> 3.1) sprockets (>= 2.8, < 4.0) sprockets-rails (>= 2.0, < 4.0) - tilt (~> 1.1) - scss_lint (0.40.1) + tilt (>= 1.1, < 3) + scss_lint (0.42.2) rainbow (~> 2.0) - sass (~> 3.4.1) + sass (~> 3.4.15) sdoc (0.4.1) json (~> 1.7, >= 1.7.7) rdoc (~> 4.0) - selenium-webdriver (2.47.1) + selenium-webdriver (2.48.1) childprocess (~> 0.5) multi_json (~> 1.0) rubyzip (~> 1.0) @@ -274,16 +276,16 @@ GEM temple (~> 0.7.3) tilt (>= 1.3.3, < 2.1) slop (3.6.0) - spring (1.3.6) + spring (1.4.0) spring-commands-rspec (1.0.4) spring (>= 0.9.1) - sprockets (3.2.0) - rack (~> 1.0) - sprockets-rails (2.3.2) + sprockets (3.4.0) + rack (> 1, < 3) + sprockets-rails (2.3.3) actionpack (>= 3.0) activesupport (>= 3.0) sprockets (>= 2.8, < 4.0) - sqlite3 (1.3.10) + sqlite3 (1.3.11) temple (0.7.6) term-ansicolor (1.3.2) tins (~> 1.0) @@ -293,7 +295,7 @@ GEM ref thor (0.19.1) thread_safe (0.3.5) - tilt (1.4.1) + tilt (2.0.1) tins (1.6.0) turbolinks (2.5.3) coffee-rails @@ -325,7 +327,7 @@ PLATFORMS DEPENDENCIES autoprefixer-rails awesome_print - bootstrap-sass (~> 3.3.1) + bootstrap-sass (~> 3.3) brakeman bundler-audit capybara @@ -362,7 +364,7 @@ DEPENDENCIES sqlite3 therubyracer turbolinks - uglifier (~> 2.7.2) + uglifier unicorn web-console diff --git a/config.ru b/config.ru index 93fb28fa..193e5fed 100644 --- a/config.ru +++ b/config.ru @@ -1,4 +1,4 @@ # This file is used by Rack-based servers to start the application. -require ::File.expand_path("../config/environment", __FILE__) +require ::File.expand_path("../config/environment", __FILE__) run Rails.application diff --git a/config/environments/test.rb b/config/environments/test.rb index 68cadff4..5b8ff8ce 100644 --- a/config/environments/test.rb +++ b/config/environments/test.rb @@ -13,7 +13,7 @@ config.eager_load = false # Configure static asset server for tests with Cache-Control for performance. - config.serve_static_files = true + config.serve_static_files = true config.static_cache_control = "public, max-age=3600" # Show full error reports and disable caching. diff --git a/spec/rails_helper.rb b/spec/rails_helper.rb index ce885797..8b9e6c4e 100644 --- a/spec/rails_helper.rb +++ b/spec/rails_helper.rb @@ -1,7 +1,7 @@ # This file is copied to spec/ when you run "rails generate rspec:install" ENV["RAILS_ENV"] ||= "test" require "coveralls" -Coveralls.wear!("rails") # must occur before any of your application code is required +Coveralls.wear!("rails") # must occur before any of your application code is required require "spec_helper" require File.expand_path("../../config/environment", __FILE__) require "rspec/rails" From db2b1ba866a3c6f4d06810c45665ea232da1cb35 Mon Sep 17 00:00:00 2001 From: Justin Gordon Date: Thu, 29 Oct 2015 23:09:16 -0700 Subject: [PATCH 151/514] updates for readability Also, add comment to database.yml --- Gemfile | 39 ++++++++++++++++++++------------------- Gemfile.lock | 1 - config/database.yml | 1 + 3 files changed, 21 insertions(+), 20 deletions(-) diff --git a/Gemfile b/Gemfile index 9c5809aa..6e6a7ff5 100644 --- a/Gemfile +++ b/Gemfile @@ -4,9 +4,15 @@ ruby "2.2.2" # # Bundle edge Rails instead: gem "rails", github: "rails/rails" gem "rails", "~>4.2" -# Use sqlite3 as the database for Active Record -gem "sqlite3", group: :development -gem "pg", group: :production + +# Note: We're using sqllite3 for development and testing +gem "sqlite3", group: [:development, :test] + +group :production do + # Pg is used for Heroku + gem "pg" + gem "rails_12factor" # Never include this for development or tests +end # Use SCSS for stylesheets gem "sass-rails" @@ -15,17 +21,13 @@ gem "bootstrap-sass", "~> 3.3" gem "uglifier" # Use CoffeeScript for .js.coffee assets and views gem "coffee-rails" -# See https://github.com/sstephenson/execjs#readme for more supported runtimes -# gem "therubyracer", platforms: :ruby - -# jquery as the JavaScript library has been moved under /client and managed by npm. -# It is critical to not include any of the jquery gems when following this pattern or -# else you might have multiple jQuery versions. # Turbolinks makes following links in your web application faster. Read more: https://github.com/rails/turbolinks gem "turbolinks" + # Build JSON APIs with ease. Read more: https://github.com/rails/jbuilder gem "jbuilder" + # bundle exec rake doc:rails generates the API under doc/api. gem "sdoc", group: :doc @@ -39,42 +41,41 @@ gem "rails-html-sanitizer" gem "unicorn" gem "react_on_rails", "~> 1.0.0.pre" +# See https://github.com/sstephenson/execjs#readme for more supported runtimes gem "therubyracer" gem "autoprefixer-rails" gem "awesome_print" -# Use Capistrano for deployment -# gem "capistrano-rails", group: :development -group :production do - gem "rails_12factor" -end +# jquery as the JavaScript library has been moved under /client and managed by npm. +# It is critical to not include any of the jquery gems when following this pattern or +# else you might have multiple jQuery versions. group :development, :test do # Access an IRB console on exceptions page and /console in development gem "web-console" + ################################################################################ # Spring speeds up development by keeping your application running in the background. Read more: https://github.com/rails/spring gem "spring" - gem "spring-commands-rspec" + ################################################################################ # Manage application processes gem "foreman" - gem "factory_girl_rails" + ################################################################################ # Linters and Security gem "rubocop", require: false gem "ruby-lint", require: false + # Critical that require: false be set! https://github.com/brigade/scss-lint/issues/278 gem "scss_lint", require: false gem "brakeman", require: false gem "bundler-audit", require: false - # Allow printing with colors to terminal - gem "rainbow" - + ################################################################################ # Favorite debugging gems gem "pry" gem "pry-doc" diff --git a/Gemfile.lock b/Gemfile.lock index 16a7457c..37165ada 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -350,7 +350,6 @@ DEPENDENCIES rails (~> 4.2) rails-html-sanitizer rails_12factor - rainbow react_on_rails (~> 1.0.0.pre) rspec-rails rubocop diff --git a/config/database.yml b/config/database.yml index d9e1a414..1db94216 100644 --- a/config/database.yml +++ b/config/database.yml @@ -4,6 +4,7 @@ # Ensure the SQLite 3 gem is defined in your Gemfile # gem "sqlite3" # +# NOTE: Real world apps would not have a different DB for development default: &default adapter: sqlite3 pool: 5 From 1a630e200a1dd398fade94226d86b326b6b62a26 Mon Sep 17 00:00:00 2001 From: Justin Gordon Date: Sun, 1 Nov 2015 12:20:35 -0800 Subject: [PATCH 152/514] Update application.js --- app/assets/javascripts/application.js | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/app/assets/javascripts/application.js b/app/assets/javascripts/application.js index 71aae88d..d3b5fd25 100644 --- a/app/assets/javascripts/application.js +++ b/app/assets/javascripts/application.js @@ -10,16 +10,18 @@ // Read Sprockets README (https://github.com/sstephenson/sprockets#sprockets-directives) for details // about supported directives. -// Need to be on top to allow Poltergeist test to work with React: es5-shim/es5-shim. This is lincluded in app-bundle. -//= require react_on_rails - // It is important that generated/vendor-bundle must be before bootstrap since it is exposing jQuery and jQuery-ujs //= require generated/vendor-bundle //= require generated/app-bundle +// Must go after the vendor-bundle, b/c vendor-bundle has jQuery. //= require bootstrap-sprockets + //= require turbolinks +//= require react_on_rails + +// TODO: move to this separate file. $(document).on('ready page:load', function () { $('nav a').parents('li,ul').removeClass('active'); $('nav a[href="' + this.location.pathname + '"]').parents('li,ul').addClass('active'); From 9021e8e907759b0145871619d248f2909aa21538 Mon Sep 17 00:00:00 2001 From: Justin Gordon Date: Sun, 1 Nov 2015 12:25:40 -0800 Subject: [PATCH 153/514] Update application.js --- app/assets/javascripts/application.js | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/app/assets/javascripts/application.js b/app/assets/javascripts/application.js index d3b5fd25..b918f11e 100644 --- a/app/assets/javascripts/application.js +++ b/app/assets/javascripts/application.js @@ -10,14 +10,14 @@ // Read Sprockets README (https://github.com/sstephenson/sprockets#sprockets-directives) for details // about supported directives. -// It is important that generated/vendor-bundle must be before bootstrap since it is exposing jQuery and jQuery-ujs +// CRITICAL that generated/vendor-bundle must be BEFORE bootstrap-sprockets and turbolinks since it is +// exposing jQuery and jQuery-ujs //= require generated/vendor-bundle //= require generated/app-bundle -// Must go after the vendor-bundle, b/c vendor-bundle has jQuery. -//= require bootstrap-sprockets - +// Next two depend on jQuery //= require turbolinks +//= require bootstrap-sprockets //= require react_on_rails From 36167f265480154e92e1c9cdd16462cf59e9b0d6 Mon Sep 17 00:00:00 2001 From: Justin Gordon Date: Sun, 1 Nov 2015 20:13:37 -0800 Subject: [PATCH 154/514] Trying out all the assets configuration diff spot config.assets.paths << Rails.root.join("client", "assets", "stylesheets") --- config/application.rb | 3 --- config/initializers/assets.rb | 3 +++ 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/config/application.rb b/config/application.rb index 5319ead7..4638d1ab 100644 --- a/config/application.rb +++ b/config/application.rb @@ -22,8 +22,5 @@ class Application < Rails::Application # For not swallow errors in after_commit/after_rollback callbacks. config.active_record.raise_in_transactional_callbacks = true - - # Add client/assets/stylesheets to asset pipeline's search path. - config.assets.paths << Rails.root.join("client", "assets", "stylesheets") end end diff --git a/config/initializers/assets.rb b/config/initializers/assets.rb index 78a80838..5f3f7d21 100644 --- a/config/initializers/assets.rb +++ b/config/initializers/assets.rb @@ -6,6 +6,9 @@ # Add additional assets to the asset load path # Rails.application.config.assets.paths << Emoji.images_path +# Add client/assets/stylesheets to asset pipeline's search path. +Rails.application.config.assets.paths << Rails.root.join("client", "assets", "stylesheets") + # 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( generated/server-bundle.js ) From c2599af460d968fbad8ffdd62108ee2da773c22b Mon Sep 17 00:00:00 2001 From: Justin Gordon Date: Mon, 2 Nov 2015 11:42:09 -0800 Subject: [PATCH 155/514] Update README.md --- README.md | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index bdcfff7a..6e6dcbe4 100644 --- a/README.md +++ b/README.md @@ -126,11 +126,17 @@ Now point your browser to http://0.0.0.0:3000. Note that it's important to run the Rails server on a different port than the node server. # Webpack configuration -- `webpack.hot.config.js`: Used by server.js to run the demo HMR server. -- `webpack.rails.config.js`: Used to generate the Rails bundles. -- `webpack.common.config.js`: Common configuration file to minimize code duplication +## Config Files +- `webpack.client.base.config.js`: Common configuration file to minimize code duplication for client.rails and client.hot. +- `webpack.client.rails.config.js`: Used to generate the Rails bundles for Rails use. +- `webpack.client.hot.config.js`: Used by server.js to run the Webpack Dev server. +- `webpack.server.rails.config.js`: Common configuration file to minimize code duplication between the HMR and Rails configurations. +## Webpack Resources +- Good overview: [Pete Hunt's Webpack Howto](https://github.com/petehunt/webpack-howto) +- [Webpack Docs](http://webpack.github.io/docs/) + # Bootstrap integration Notice that Bootstrap Sass is installed as both a gem and an npm package. When running the Rails app, the bootstrap-sass gem assets are loaded directly From f5d4050e67e79590b2512e6aabcdda1b71d54eff Mon Sep 17 00:00:00 2001 From: Roger Studner Date: Fri, 30 Oct 2015 21:04:51 -0400 Subject: [PATCH 156/514] ES6 all React stuff. --- client/app/components/Comment.jsx | 13 +++-- client/app/components/CommentBox.jsx | 19 ++++--- client/app/components/CommentForm.jsx | 50 +++++++++---------- client/app/components/CommentList.jsx | 14 +++--- client/app/components/CommentScreen.jsx | 12 ++--- client/app/components/SimpleCommentScreen.jsx | 32 ++++++------ client/app/reducers/commentsReducer.js | 2 +- client/app/startup/ClientApp.jsx | 9 ++-- client/app/startup/ServerApp.jsx | 9 ++-- client/app/stores/commentsStore.js | 4 +- 10 files changed, 76 insertions(+), 88 deletions(-) diff --git a/client/app/components/Comment.jsx b/client/app/components/Comment.jsx index e3b40d1f..a358bd80 100644 --- a/client/app/components/Comment.jsx +++ b/client/app/components/Comment.jsx @@ -1,13 +1,12 @@ import React, { PropTypes } from 'react'; import marked from 'marked'; -const Comment = React.createClass({ - displayName: 'Comment', - - propTypes: { +class Comment extends React.Component { + static displayName = 'Comment'; + static propTypes = { author: PropTypes.string.isRequired, text: PropTypes.string.isRequired, - }, + }; render() { const { author, text } = this.props; @@ -20,7 +19,7 @@ const Comment = React.createClass({
    ); - }, -}); + } +} export default Comment; diff --git a/client/app/components/CommentBox.jsx b/client/app/components/CommentBox.jsx index 21e805a2..9596048f 100644 --- a/client/app/components/CommentBox.jsx +++ b/client/app/components/CommentBox.jsx @@ -3,28 +3,27 @@ import React, { PropTypes } from 'react'; import CommentForm from './CommentForm'; import CommentList from './CommentList'; -const CommentBox = React.createClass({ - displayName: 'CommentBox', - - propTypes: { +class CommentBox extends React.Component { + static displayName = 'CommentBox'; + static propTypes = { pollInterval: PropTypes.number.isRequired, actions: PropTypes.object.isRequired, data: PropTypes.object.isRequired, - }, + }; componentDidMount() { const { fetchComments } = this.props.actions; fetchComments(); setInterval(fetchComments, this.props.pollInterval); - }, + } ajaxCounter() { return this.props.data.get('ajaxCounter'); - }, + } isSendingAjax() { return this.ajaxCounter() > 0; - }, + } render() { const { actions, data } = this.props; @@ -49,7 +48,7 @@ const CommentBox = React.createClass({ />
    ); - }, -}); + } +} export default CommentBox; diff --git a/client/app/components/CommentForm.jsx b/client/app/components/CommentForm.jsx index cbe5c755..f0c5ae15 100644 --- a/client/app/components/CommentForm.jsx +++ b/client/app/components/CommentForm.jsx @@ -10,31 +10,27 @@ import ReactCSSTransitionGroup from 'react/lib/ReactCSSTransitionGroup'; const emptyComment = { author: '', text: '' }; const textPlaceholder = 'Say something using markdown...'; -const CommentForm = React.createClass({ - displayName: 'CommentForm', +class CommentForm extends React.Component { + state = { + formMode: 0, + comment: emptyComment, + }; - propTypes: { + static displayName = 'CommentForm'; + + static propTypes = { ajaxSending: PropTypes.bool.isRequired, actions: PropTypes.object.isRequired, error: PropTypes.any, - }, - - getInitialState() { - return { - formMode: 0, - comment: emptyComment, - }; - }, + }; - handleSelect(selectedKey) { + handleSelect = (selectedKey) => { this.setState({ formMode: selectedKey }); - }, + }; - handleChange() { + handleChange = () => { let comment; - // This could also be done using ReactLink: - // http://facebook.github.io/react/docs/two-way-binding-helpers.html if (this.state.formMode < 2) { comment = { author: this.refs.author.getValue(), @@ -50,17 +46,17 @@ const CommentForm = React.createClass({ } this.setState({ comment }); - }, + }; - handleSubmit(e) { + handleSubmit = (e) => { e.preventDefault(); const { actions } = this.props; actions .submitComment(this.state.comment) .then(this.resetAndFocus); - }, + }; - resetAndFocus() { + resetAndFocus = () => { // Don't reset a form that didn't submit, this results in data loss if (this.props.error) return; @@ -75,7 +71,7 @@ const CommentForm = React.createClass({ } ref.focus(); - }, + } formHorizontal() { return ( @@ -117,7 +113,7 @@ const CommentForm = React.createClass({

    ); - }, + } formStacked() { return ( @@ -151,7 +147,7 @@ const CommentForm = React.createClass({
    ); - }, + } formInline() { return ( @@ -195,7 +191,7 @@ const CommentForm = React.createClass({
    ); - }, + } errorWarning() { // If there is no error, there is nothing to add to the DOM @@ -206,7 +202,7 @@ const CommentForm = React.createClass({ A server error prevented your comment from being saved. Please try again. ); - }, + } render() { let inputForm; @@ -241,7 +237,7 @@ const CommentForm = React.createClass({ {inputForm} ); - }, -}); + } +} export default CommentForm; diff --git a/client/app/components/CommentList.jsx b/client/app/components/CommentList.jsx index b4321728..4b2a0d22 100644 --- a/client/app/components/CommentList.jsx +++ b/client/app/components/CommentList.jsx @@ -5,13 +5,13 @@ import ReactCSSTransitionGroup from 'react/lib/ReactCSSTransitionGroup'; import Comment from './Comment'; -const CommentList = React.createClass({ - displayName: 'CommentList', +class CommentList extends React.Component { + static displayName = 'CommentList'; - propTypes: { + static propTypes = { $$comments: PropTypes.instanceOf(Immutable.List).isRequired, error: PropTypes.any, - }, + }; errorWarning() { // If there is no error, there is nothing to add to the DOM @@ -22,7 +22,7 @@ const CommentList = React.createClass({ A server error prevented loading comments. Please try again. ); - }, + } render() { const { $$comments } = this.props; @@ -53,7 +53,7 @@ const CommentList = React.createClass({ ); - }, -}); + } +} export default CommentList; diff --git a/client/app/components/CommentScreen.jsx b/client/app/components/CommentScreen.jsx index 40439789..923f2b7d 100644 --- a/client/app/components/CommentScreen.jsx +++ b/client/app/components/CommentScreen.jsx @@ -9,13 +9,13 @@ function select(state) { return { data: state.$$commentsStore }; } -const CommentScreen = React.createClass({ - displayName: 'CommentScreen', +class CommentScreen extends React.Component { + static displayName = 'CommentScreen'; - propTypes: { + static propTypes = { dispatch: PropTypes.func.isRequired, data: PropTypes.object.isRequired, - }, + }; render() { const { dispatch, data } = this.props; @@ -42,8 +42,8 @@ const CommentScreen = React.createClass({ ); - }, -}); + } +} // Don't forget to actually use connect! export default connect(select)(CommentScreen); diff --git a/client/app/components/SimpleCommentScreen.jsx b/client/app/components/SimpleCommentScreen.jsx index 00e90233..e8b7713f 100644 --- a/client/app/components/SimpleCommentScreen.jsx +++ b/client/app/components/SimpleCommentScreen.jsx @@ -5,29 +5,27 @@ import CommentForm from './CommentForm'; import CommentList from './CommentList'; import metaTagsManager from '../utils/metaTagsManager'; -const SimpleCommentScreen = React.createClass({ - displayName: 'SimpleCommentScreen', +class SimpleCommentScreen extends React.Component { + state = { + $$comments: Immutable.fromJS([]), + ajaxSending: false, + fetchCommentsError: null, + submitCommentError: null, + }; - getInitialState() { - return { - $$comments: Immutable.fromJS([]), - ajaxSending: false, - fetchCommentsError: null, - submitCommentError: null, - }; - }, + static displayName = 'SimpleCommentScreen'; componentDidMount() { this.fetchComments(); - }, + } fetchComments() { return request.get('comments.json', { responseType: 'json' }) .then(res => this.setState({ $$comments: Immutable.fromJS(res.data) })) .catch(error => this.setState({ fetchCommentsError: error })); - }, + } - handleCommentSubmit(comment) { + handleCommentSubmit = (comment) => { this.setState({ ajaxSending: true }); const requestConfig = { @@ -53,7 +51,7 @@ const SimpleCommentScreen = React.createClass({ ajaxSending: false, }); }); - }, + }; render() { return ( @@ -65,7 +63,7 @@ const SimpleCommentScreen = React.createClass({

    ); - }, -}); + } +} export default SimpleCommentScreen; diff --git a/client/app/reducers/commentsReducer.js b/client/app/reducers/commentsReducer.js index 5ed231b1..239b024a 100644 --- a/client/app/reducers/commentsReducer.js +++ b/client/app/reducers/commentsReducer.js @@ -11,7 +11,7 @@ export const $$initialState = Immutable.fromJS({ submitCommentError: null, }); -export default function commentsReducer($$state = $$initialState, action) { +export default function commentsReducer($$state = $$initialState, action = null) { const { type, comment, comments, error } = action; switch (type) { diff --git a/client/app/startup/ClientApp.jsx b/client/app/startup/ClientApp.jsx index b8035b7d..9f5744cc 100644 --- a/client/app/startup/ClientApp.jsx +++ b/client/app/startup/ClientApp.jsx @@ -6,12 +6,11 @@ import CommentScreen from '../components/CommentScreen'; const App = props => { const store = createStore(props); - const reactComponent = ( - - - + return ( + + + ); - return reactComponent; }; // Export is needed for the hot reload server diff --git a/client/app/startup/ServerApp.jsx b/client/app/startup/ServerApp.jsx index 6786a0be..612bb058 100644 --- a/client/app/startup/ServerApp.jsx +++ b/client/app/startup/ServerApp.jsx @@ -6,12 +6,11 @@ import CommentScreen from '../components/CommentScreen'; const App = props => { const store = createStore(props); - const reactComponent = ( - - - + return ( + + + ); - return reactComponent; }; export default App; diff --git a/client/app/stores/commentsStore.js b/client/app/stores/commentsStore.js index 0622dce7..5d1e60ac 100644 --- a/client/app/stores/commentsStore.js +++ b/client/app/stores/commentsStore.js @@ -17,8 +17,6 @@ export default props => { const composedStore = compose( applyMiddleware(thunkMiddleware, loggerMiddleware) ); - const storeCreator = composedStore(createStore); - const store = storeCreator(reducer, initialState); - return store; + return composedStore(createStore)(reducer, initialState); }; From 84de8d1e8b48e64796964916987fbba71674f4cf Mon Sep 17 00:00:00 2001 From: Roger Studner Date: Mon, 2 Nov 2015 07:19:37 -0500 Subject: [PATCH 157/514] updated to constructor/bind syntax after talking with Alex I also renamed the "component internal non-react workflow methods" to have a leading _ per multiple best-practices guides etc. --- client/app/components/CommentBox.jsx | 18 +++-- client/app/components/CommentForm.jsx | 68 +++++++++++-------- client/app/components/CommentList.jsx | 11 ++- client/app/components/SimpleCommentScreen.jsx | 28 +++++--- 4 files changed, 77 insertions(+), 48 deletions(-) diff --git a/client/app/components/CommentBox.jsx b/client/app/components/CommentBox.jsx index 9596048f..80da0185 100644 --- a/client/app/components/CommentBox.jsx +++ b/client/app/components/CommentBox.jsx @@ -4,6 +4,14 @@ import CommentForm from './CommentForm'; import CommentList from './CommentList'; class CommentBox extends React.Component { + constructor(props, context) { + super(props, context); + this.state = {}; + + this._ajaxCounter = this._ajaxCounter.bind(this); + this._isSendingAjax = this._isSendingAjax.bind(this); + } + static displayName = 'CommentBox'; static propTypes = { pollInterval: PropTypes.number.isRequired, @@ -17,12 +25,12 @@ class CommentBox extends React.Component { setInterval(fetchComments, this.props.pollInterval); } - ajaxCounter() { + _ajaxCounter() { return this.props.data.get('ajaxCounter'); } - isSendingAjax() { - return this.ajaxCounter() > 0; + _isSendingAjax() { + return this._ajaxCounter() > 0; } render() { @@ -31,14 +39,14 @@ class CommentBox extends React.Component { return (

    - Comments { this.isSendingAjax() && `SENDING AJAX REQUEST! Ajax Counter is ${this.ajaxCounter()}` } + Comments { this._isSendingAjax() && `SENDING AJAX REQUEST! Ajax Counter is ${this._ajaxCounter()}` }

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

    diff --git a/client/app/components/CommentForm.jsx b/client/app/components/CommentForm.jsx index f0c5ae15..a3c71cce 100644 --- a/client/app/components/CommentForm.jsx +++ b/client/app/components/CommentForm.jsx @@ -11,10 +11,18 @@ const emptyComment = { author: '', text: '' }; const textPlaceholder = 'Say something using markdown...'; class CommentForm extends React.Component { - state = { - formMode: 0, - comment: emptyComment, - }; + constructor(props, context) { + super(props, context); + this.state = { + formMode: 0, + comment: emptyComment, + }; + + this._handleSelect = this._handleSelect.bind(this); + this._handleChange = this._handleChange.bind(this); + this._handleSubmit = this._handleSubmit.bind(this); + this._resetAndFocus = this._resetAndFocus.bind(this); + } static displayName = 'CommentForm'; @@ -24,11 +32,11 @@ class CommentForm extends React.Component { error: PropTypes.any, }; - handleSelect = (selectedKey) => { + _handleSelect(selectedKey) { this.setState({ formMode: selectedKey }); - }; + } - handleChange = () => { + _handleChange() { let comment; if (this.state.formMode < 2) { @@ -46,17 +54,17 @@ class CommentForm extends React.Component { } this.setState({ comment }); - }; + } - handleSubmit = (e) => { + _handleSubmit(e) { e.preventDefault(); const { actions } = this.props; actions .submitComment(this.state.comment) - .then(this.resetAndFocus); - }; + .then(this._resetAndFocus); + } - resetAndFocus = () => { + _resetAndFocus() { // Don't reset a form that didn't submit, this results in data loss if (this.props.error) return; @@ -73,11 +81,11 @@ class CommentForm extends React.Component { ref.focus(); } - formHorizontal() { + _formHorizontal() { return (

    -
    +
    @@ -115,18 +123,18 @@ class CommentForm extends React.Component { ); } - formStacked() { + _formStacked() { return (

    - +
    - + @@ -163,7 +171,7 @@ class CommentForm extends React.Component { placeholder="Your Name" ref="inlineAuthor" value={this.state.comment.author} - onChange={this.handleChange} + onChange={this._handleChange} disabled={this.props.ajaxSending} /> @@ -174,7 +182,7 @@ class CommentForm extends React.Component { placeholder={textPlaceholder} ref="inlineText" value={this.state.comment.text} - onChange={this.handleChange} + onChange={this._handleChange} disabled={this.props.ajaxSending} /> @@ -193,7 +201,7 @@ class CommentForm extends React.Component { ); } - errorWarning() { + _errorWarning() { // If there is no error, there is nothing to add to the DOM if (!this.props.error) return undefined; return ( @@ -208,13 +216,13 @@ class CommentForm extends React.Component { let inputForm; switch (this.state.formMode) { case 0: - inputForm = this.formHorizontal(); + inputForm = this._formHorizontal(); break; case 1: - inputForm = this.formStacked(); + inputForm = this._formStacked(); break; case 2: - inputForm = this.formInline(); + inputForm = this._formInline(); break; default: throw new Error(`Unknown form mode: ${this.state.formMode}.`); @@ -226,10 +234,10 @@ class CommentForm extends React.Component { transitionEnterTimeout={300} transitionLeaveTimeout={300} > - {this.errorWarning()} + {this._errorWarning()} -