From a88cd1ce4368114f4d96ca88a63f144c1c6de05f Mon Sep 17 00:00:00 2001 From: dylangrafmyre Date: 2015年9月20日 21:23:12 -1000 Subject: [PATCH 01/14] 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 2817fbbcf..6a1e60411 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 301460518..bc827d431 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 83102356b..4254f8265 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 12f93ff4f..03105c6e6 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 3c9df8cd4..9c514b3c9 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 15dadab08..fe28bb08c --- 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 000000000..fe28bb08c --- /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 000000000..9d20ad388 --- /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 000000000..eaddc5314 --- /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 100712fb5..83d0c50e7 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 8236eb5b8..7c99c236f 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 000000000..fa361ee1d --- /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 000000000..a83b7706f --- /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: 2015年9月21日 12:32:04 +0300 Subject: [PATCH 02/14] Ignore generated js bundles --- .gitignore | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/.gitignore b/.gitignore index 6a1e60411..f9252f3a0 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: 2015年9月21日 15:58:39 +0300 Subject: [PATCH 03/14] 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 4b4c38e15..5808f2b5c 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 4348018cb..e3360b7c6 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 baa404962..8943c431e 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 009d4ef4a..bd8e7a5e3 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 beee31ad6..a0fbe11d7 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 83d0c50e7..4c59b907b 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 d63768a89..09007011c 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 7c99c236f..af75a50ed 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 fa361ee1d..ec952ad06 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: 2015年9月21日 10:25:09 -1000 Subject: [PATCH 04/14] 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 be537debf..1af63bc21 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: 2015年9月21日 10:55:47 -1000 Subject: [PATCH 05/14] Update .travis.yml --- .travis.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.travis.yml b/.travis.yml index 1af63bc21..1c94af416 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: 2015年9月21日 11:02:23 -1000 Subject: [PATCH 06/14] 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 1c94af416..5e498dbe5 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: 2015年9月21日 17:41:38 -1000 Subject: [PATCH 07/14] 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 0838adaa2..78a808385 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 f0eaca920..2c43109d4 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: 2015年9月21日 18:23:53 -1000 Subject: [PATCH 08/14] 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 bc827d431..ad035966d 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 4254f8265..b44dbb147 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 ba3d21f9a..5bad93635 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 a9d42faed..c599fc6e8 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 b9285cf52e8b2523ab7fe70f621e3335153a0a27 Mon Sep 17 00:00:00 2001 From: dylangrafmyre Date: 2015年9月21日 22:59:33 -1000 Subject: [PATCH 09/14] 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 ad035966d..ff61dc1d7 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 b44dbb147..7579e5a1e 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 c599fc6e8..da01e6037 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: 2015年9月21日 23:14:30 -1000 Subject: [PATCH 10/14] 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 e3360b7c6..c501968f8 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: 2015年9月22日 09:25:36 -1000 Subject: [PATCH 11/14] 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 5e498dbe5..3cac88bdd 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 da01e6037..ff1636d35 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: 2015年9月22日 09:30:29 -1000 Subject: [PATCH 12/14] 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 3cac88bdd..65a427d5d 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: 2015年9月22日 09:40:46 -1000 Subject: [PATCH 13/14] 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 65a427d5d..b0b2aa180 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 ff1636d35..6cb6222e0 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: 2015年9月22日 09:54:32 -1000 Subject: [PATCH 14/14] 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 b0b2aa180..e2d6c293c 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

AltStyle によって変換されたページ (->オリジナル) /