From 18b5646d2a7b26d0a1d4445eb2511e6e0cc16db3 Mon Sep 17 00:00:00 2001 From: Alex Fedoseev Date: Sat, 12 Dec 2015 02:06:45 +0300 Subject: [PATCH 01/11] Arrange deps --- client/npm-shrinkwrap.json | 4537 ------------------------------------ client/package.json | 20 +- 2 files changed, 10 insertions(+), 4547 deletions(-) delete mode 100644 client/npm-shrinkwrap.json diff --git a/client/npm-shrinkwrap.json b/client/npm-shrinkwrap.json deleted file mode 100644 index a87699dc..00000000 --- a/client/npm-shrinkwrap.json +++ /dev/null @@ -1,4537 +0,0 @@ -{ - "name": "react-webpack-rails-tutorial", - "version": "1.1.0", - "dependencies": { - "abab": { - "version": "1.0.1", - "from": "abab@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/abab/-/abab-1.0.1.tgz" - }, - "abbrev": { - "version": "1.0.7", - "from": "abbrev@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.0.7.tgz" - }, - "accepts": { - "version": "1.2.13", - "from": "accepts@>=1.2.12 <1.3.0", - "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.2.13.tgz" - }, - "acorn": { - "version": "1.2.2", - "from": "acorn@>=1.0.3 <2.0.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-1.2.2.tgz" - }, - "acorn-globals": { - "version": "1.0.9", - "from": "acorn-globals@>=1.0.3 <2.0.0", - "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-1.0.9.tgz", - "dependencies": { - "acorn": { - "version": "2.6.4", - "from": "acorn@>=2.1.0 <3.0.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-2.6.4.tgz" - } - } - }, - "align-text": { - "version": "0.1.3", - "from": "align-text@>=0.1.0 <0.2.0", - "resolved": "https://registry.npmjs.org/align-text/-/align-text-0.1.3.tgz" - }, - "alphanum-sort": { - "version": "1.0.2", - "from": "alphanum-sort@>=1.0.1 <2.0.0", - "resolved": "https://registry.npmjs.org/alphanum-sort/-/alphanum-sort-1.0.2.tgz" - }, - "alter": { - "version": "0.2.0", - "from": "alter@>=0.2.0 <0.3.0", - "resolved": "https://registry.npmjs.org/alter/-/alter-0.2.0.tgz" - }, - "amdefine": { - "version": "1.0.0", - "from": "amdefine@>=0.0.4", - "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.0.tgz" - }, - "ansi": { - "version": "0.3.0", - "from": "ansi@>=0.3.0 <0.4.0", - "resolved": "https://registry.npmjs.org/ansi/-/ansi-0.3.0.tgz" - }, - "ansi-escapes": { - "version": "1.1.0", - "from": "ansi-escapes@>=1.1.0 <2.0.0", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-1.1.0.tgz" - }, - "ansi-green": { - "version": "0.1.1", - "from": "ansi-green@>=0.1.1 <0.2.0", - "resolved": "https://registry.npmjs.org/ansi-green/-/ansi-green-0.1.1.tgz" - }, - "ansi-regex": { - "version": "2.0.0", - "from": "ansi-regex@>=2.0.0 <3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.0.0.tgz" - }, - "ansi-styles": { - "version": "2.1.0", - "from": "ansi-styles@>=2.1.0 <3.0.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.1.0.tgz" - }, - "ansi-wrap": { - "version": "0.1.0", - "from": "ansi-wrap@0.1.0", - "resolved": "https://registry.npmjs.org/ansi-wrap/-/ansi-wrap-0.1.0.tgz" - }, - "anymatch": { - "version": "1.3.0", - "from": "anymatch@>=1.3.0 <2.0.0", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-1.3.0.tgz" - }, - "are-we-there-yet": { - "version": "1.0.4", - "from": "are-we-there-yet@>=1.0.0 <1.1.0", - "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.0.4.tgz", - "dependencies": { - "readable-stream": { - "version": "1.1.13", - "from": "readable-stream@>=1.1.13 <2.0.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.13.tgz" - } - } - }, - "argparse": { - "version": "1.0.3", - "from": "argparse@>=1.0.2 <1.1.0", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.3.tgz" - }, - "arr-diff": { - "version": "1.1.0", - "from": "arr-diff@>=1.1.0 <2.0.0", - "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-1.1.0.tgz" - }, - "arr-flatten": { - "version": "1.0.1", - "from": "arr-flatten@>=1.0.1 <2.0.0", - "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.0.1.tgz" - }, - "array-flatten": { - "version": "1.1.1", - "from": "array-flatten@1.1.1", - "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz" - }, - "array-index": { - "version": "0.1.1", - "from": "array-index@>=0.1.0 <0.2.0", - "resolved": "https://registry.npmjs.org/array-index/-/array-index-0.1.1.tgz" - }, - "array-slice": { - "version": "0.2.3", - "from": "array-slice@>=0.2.3 <0.3.0", - "resolved": "https://registry.npmjs.org/array-slice/-/array-slice-0.2.3.tgz" - }, - "array-union": { - "version": "1.0.1", - "from": "array-union@>=1.0.1 <2.0.0", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.1.tgz" - }, - "array-uniq": { - "version": "1.0.2", - "from": "array-uniq@>=1.0.1 <2.0.0", - "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.2.tgz" - }, - "array-unique": { - "version": "0.2.1", - "from": "array-unique@>=0.2.1 <0.3.0", - "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.2.1.tgz" - }, - "arrify": { - "version": "1.0.0", - "from": "arrify@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.0.tgz" - }, - "asap": { - "version": "2.0.3", - "from": "asap@>=2.0.3 <2.1.0", - "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.3.tgz" - }, - "asn1": { - "version": "0.2.3", - "from": "asn1@>=0.2.3 <0.3.0", - "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.3.tgz" - }, - "assert": { - "version": "1.3.0", - "from": "assert@>=1.1.1 <2.0.0", - "resolved": "https://registry.npmjs.org/assert/-/assert-1.3.0.tgz" - }, - "assert-plus": { - "version": "0.1.5", - "from": "assert-plus@>=0.1.5 <0.2.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-0.1.5.tgz" - }, - "assertion-error": { - "version": "1.0.1", - "from": "assertion-error@>=1.0.1 <2.0.0", - "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.0.1.tgz" - }, - "ast-traverse": { - "version": "0.1.1", - "from": "ast-traverse@>=0.1.1 <0.2.0", - "resolved": "https://registry.npmjs.org/ast-traverse/-/ast-traverse-0.1.1.tgz" - }, - "ast-types": { - "version": "0.8.12", - "from": "ast-types@0.8.12", - "resolved": "https://registry.npmjs.org/ast-types/-/ast-types-0.8.12.tgz" - }, - "async": { - "version": "1.5.0", - "from": "async@>=1.3.0 <2.0.0", - "resolved": "https://registry.npmjs.org/async/-/async-1.5.0.tgz" - }, - "async-each": { - "version": "0.1.6", - "from": "async-each@>=0.1.6 <0.2.0", - "resolved": "https://registry.npmjs.org/async-each/-/async-each-0.1.6.tgz" - }, - "async-foreach": { - "version": "0.1.3", - "from": "async-foreach@>=0.1.3 <0.2.0", - "resolved": "https://registry.npmjs.org/async-foreach/-/async-foreach-0.1.3.tgz" - }, - "autoprefixer": { - "version": "6.1.2", - "from": "autoprefixer@>=6.0.3 <7.0.0", - "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-6.1.2.tgz" - }, - "aws-sign2": { - "version": "0.6.0", - "from": "aws-sign2@>=0.6.0 <0.7.0", - "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.6.0.tgz" - }, - "axios": { - "version": "0.7.0", - "from": "axios@>=0.7.0 <0.8.0", - "resolved": "https://registry.npmjs.org/axios/-/axios-0.7.0.tgz" - }, - "babel-code-frame": { - "version": "6.3.13", - "from": "babel-code-frame@>=6.3.13 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.3.13.tgz" - }, - "babel-core": { - "version": "5.8.34", - "from": "babel-core@>=5.8.25 <6.0.0", - "resolved": "https://registry.npmjs.org/babel-core/-/babel-core-5.8.34.tgz" - }, - "babel-jscs": { - "version": "2.0.5", - "from": "babel-jscs@>=2.0.0 <3.0.0", - "resolved": "https://registry.npmjs.org/babel-jscs/-/babel-jscs-2.0.5.tgz" - }, - "babel-loader": { - "version": "5.4.0", - "from": "babel-loader@>=5.3.2 <6.0.0", - "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-5.4.0.tgz" - }, - "babel-messages": { - "version": "6.3.13", - "from": "babel-messages@>=6.3.13 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-6.3.13.tgz" - }, - "babel-plugin-constant-folding": { - "version": "1.0.1", - "from": "babel-plugin-constant-folding@>=1.0.1 <2.0.0", - "resolved": "https://registry.npmjs.org/babel-plugin-constant-folding/-/babel-plugin-constant-folding-1.0.1.tgz" - }, - "babel-plugin-dead-code-elimination": { - "version": "1.0.2", - "from": "babel-plugin-dead-code-elimination@>=1.0.2 <2.0.0", - "resolved": "https://registry.npmjs.org/babel-plugin-dead-code-elimination/-/babel-plugin-dead-code-elimination-1.0.2.tgz" - }, - "babel-plugin-eval": { - "version": "1.0.1", - "from": "babel-plugin-eval@>=1.0.1 <2.0.0", - "resolved": "https://registry.npmjs.org/babel-plugin-eval/-/babel-plugin-eval-1.0.1.tgz" - }, - "babel-plugin-inline-environment-variables": { - "version": "1.0.1", - "from": "babel-plugin-inline-environment-variables@>=1.0.1 <2.0.0", - "resolved": "https://registry.npmjs.org/babel-plugin-inline-environment-variables/-/babel-plugin-inline-environment-variables-1.0.1.tgz" - }, - "babel-plugin-jscript": { - "version": "1.0.4", - "from": "babel-plugin-jscript@>=1.0.4 <2.0.0", - "resolved": "https://registry.npmjs.org/babel-plugin-jscript/-/babel-plugin-jscript-1.0.4.tgz" - }, - "babel-plugin-member-expression-literals": { - "version": "1.0.1", - "from": "babel-plugin-member-expression-literals@>=1.0.1 <2.0.0", - "resolved": "https://registry.npmjs.org/babel-plugin-member-expression-literals/-/babel-plugin-member-expression-literals-1.0.1.tgz" - }, - "babel-plugin-property-literals": { - "version": "1.0.1", - "from": "babel-plugin-property-literals@>=1.0.1 <2.0.0", - "resolved": "https://registry.npmjs.org/babel-plugin-property-literals/-/babel-plugin-property-literals-1.0.1.tgz" - }, - "babel-plugin-proto-to-assign": { - "version": "1.0.4", - "from": "babel-plugin-proto-to-assign@>=1.0.3 <2.0.0", - "resolved": "https://registry.npmjs.org/babel-plugin-proto-to-assign/-/babel-plugin-proto-to-assign-1.0.4.tgz" - }, - "babel-plugin-react-constant-elements": { - "version": "1.0.3", - "from": "babel-plugin-react-constant-elements@>=1.0.3 <2.0.0", - "resolved": "https://registry.npmjs.org/babel-plugin-react-constant-elements/-/babel-plugin-react-constant-elements-1.0.3.tgz" - }, - "babel-plugin-react-display-name": { - "version": "1.0.3", - "from": "babel-plugin-react-display-name@>=1.0.3 <2.0.0", - "resolved": "https://registry.npmjs.org/babel-plugin-react-display-name/-/babel-plugin-react-display-name-1.0.3.tgz" - }, - "babel-plugin-remove-console": { - "version": "1.0.1", - "from": "babel-plugin-remove-console@>=1.0.1 <2.0.0", - "resolved": "https://registry.npmjs.org/babel-plugin-remove-console/-/babel-plugin-remove-console-1.0.1.tgz" - }, - "babel-plugin-remove-debugger": { - "version": "1.0.1", - "from": "babel-plugin-remove-debugger@>=1.0.1 <2.0.0", - "resolved": "https://registry.npmjs.org/babel-plugin-remove-debugger/-/babel-plugin-remove-debugger-1.0.1.tgz" - }, - "babel-plugin-runtime": { - "version": "1.0.7", - "from": "babel-plugin-runtime@>=1.0.7 <2.0.0", - "resolved": "https://registry.npmjs.org/babel-plugin-runtime/-/babel-plugin-runtime-1.0.7.tgz" - }, - "babel-plugin-undeclared-variables-check": { - "version": "1.0.2", - "from": "babel-plugin-undeclared-variables-check@>=1.0.2 <2.0.0", - "resolved": "https://registry.npmjs.org/babel-plugin-undeclared-variables-check/-/babel-plugin-undeclared-variables-check-1.0.2.tgz" - }, - "babel-plugin-undefined-to-void": { - "version": "1.1.6", - "from": "babel-plugin-undefined-to-void@>=1.1.6 <2.0.0", - "resolved": "https://registry.npmjs.org/babel-plugin-undefined-to-void/-/babel-plugin-undefined-to-void-1.1.6.tgz" - }, - "babel-runtime": { - "version": "5.8.34", - "from": "babel-runtime@>=5.8.25 <6.0.0", - "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-5.8.34.tgz" - }, - "babel-traverse": { - "version": "6.3.15", - "from": "babel-traverse@>=6.0.20 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.3.15.tgz", - "dependencies": { - "babylon": { - "version": "6.3.15", - "from": "babylon@>=6.3.15 <7.0.0" - }, - "globals": { - "version": "8.14.0", - "from": "globals@>=8.3.0 <9.0.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-8.14.0.tgz" - } - } - }, - "babel-types": { - "version": "6.3.14", - "from": "babel-types@>=6.0.19 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.3.14.tgz" - }, - "babylon": { - "version": "5.8.34", - "from": "babylon@>=5.8.34 <6.0.0", - "resolved": "https://registry.npmjs.org/babylon/-/babylon-5.8.34.tgz" - }, - "balanced-match": { - "version": "0.3.0", - "from": "balanced-match@>=0.3.0 <0.4.0", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-0.3.0.tgz" - }, - "base62": { - "version": "0.1.1", - "from": "base62@0.1.1", - "resolved": "https://registry.npmjs.org/base62/-/base62-0.1.1.tgz" - }, - "Base64": { - "version": "0.2.1", - "from": "Base64@>=0.2.0 <0.3.0", - "resolved": "https://registry.npmjs.org/Base64/-/Base64-0.2.1.tgz" - }, - "base64-js": { - "version": "0.0.8", - "from": "base64-js@0.0.8", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-0.0.8.tgz" - }, - "batch": { - "version": "0.5.2", - "from": "batch@0.5.2", - "resolved": "https://registry.npmjs.org/batch/-/batch-0.5.2.tgz" - }, - "big.js": { - "version": "3.1.3", - "from": "big.js@>=3.0.2 <4.0.0", - "resolved": "https://registry.npmjs.org/big.js/-/big.js-3.1.3.tgz" - }, - "binary-extensions": { - "version": "1.4.0", - "from": "binary-extensions@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.4.0.tgz" - }, - "bl": { - "version": "1.0.0", - "from": "bl@>=1.0.0 <1.1.0", - "resolved": "https://registry.npmjs.org/bl/-/bl-1.0.0.tgz" - }, - "block-stream": { - "version": "0.0.8", - "from": "block-stream@*", - "resolved": "https://registry.npmjs.org/block-stream/-/block-stream-0.0.8.tgz" - }, - "bluebird": { - "version": "2.10.2", - "from": "bluebird@>=2.9.33 <3.0.0", - "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-2.10.2.tgz" - }, - "body-parser": { - "version": "1.14.1", - "from": "body-parser@>=1.14.1 <2.0.0", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.14.1.tgz", - "dependencies": { - "iconv-lite": { - "version": "0.4.12", - "from": "iconv-lite@0.4.12", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.12.tgz" - } - } - }, - "boom": { - "version": "2.10.1", - "from": "boom@>=2.0.0 <3.0.0", - "resolved": "https://registry.npmjs.org/boom/-/boom-2.10.1.tgz" - }, - "brace-expansion": { - "version": "1.1.2", - "from": "brace-expansion@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.2.tgz" - }, - "braces": { - "version": "1.8.2", - "from": "braces@>=1.8.1 <2.0.0", - "resolved": "https://registry.npmjs.org/braces/-/braces-1.8.2.tgz" - }, - "breakable": { - "version": "1.0.0", - "from": "breakable@>=1.0.0 <1.1.0", - "resolved": "https://registry.npmjs.org/breakable/-/breakable-1.0.0.tgz" - }, - "browserify-zlib": { - "version": "0.1.4", - "from": "browserify-zlib@>=0.1.4 <0.2.0", - "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.1.4.tgz" - }, - "browserslist": { - "version": "1.0.1", - "from": "browserslist@>=1.0.1 <1.1.0", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-1.0.1.tgz" - }, - "buffer": { - "version": "3.5.3", - "from": "buffer@>=3.0.3 <4.0.0", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-3.5.3.tgz" - }, - "builtin-modules": { - "version": "1.1.0", - "from": "builtin-modules@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.0.tgz" - }, - "bytes": { - "version": "2.1.0", - "from": "bytes@2.1.0", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-2.1.0.tgz" - }, - "camelcase": { - "version": "1.2.1", - "from": "camelcase@>=1.2.1 <2.0.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-1.2.1.tgz" - }, - "camelcase-keys": { - "version": "2.0.0", - "from": "camelcase-keys@>=2.0.0 <3.0.0", - "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-2.0.0.tgz", - "dependencies": { - "camelcase": { - "version": "2.0.1", - "from": "camelcase@>=2.0.0 <3.0.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-2.0.1.tgz" - } - } - }, - "caniuse-db": { - "version": "1.0.30000372", - "from": "caniuse-db@>=1.0.30000372 <2.0.0", - "resolved": "https://registry.npmjs.org/caniuse-db/-/caniuse-db-1.0.30000372.tgz" - }, - "caseless": { - "version": "0.11.0", - "from": "caseless@>=0.11.0 <0.12.0", - "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.11.0.tgz" - }, - "center-align": { - "version": "0.1.2", - "from": "center-align@>=0.1.1 <0.2.0", - "resolved": "https://registry.npmjs.org/center-align/-/center-align-0.1.2.tgz" - }, - "chalk": { - "version": "1.1.1", - "from": "chalk@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.1.tgz" - }, - "character-parser": { - "version": "1.2.1", - "from": "character-parser@1.2.1", - "resolved": "https://registry.npmjs.org/character-parser/-/character-parser-1.2.1.tgz" - }, - "chokidar": { - "version": "1.3.0", - "from": "chokidar@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-1.3.0.tgz" - }, - "classnames": { - "version": "2.2.1", - "from": "classnames@>=2.1.5 <3.0.0", - "resolved": "https://registry.npmjs.org/classnames/-/classnames-2.2.1.tgz" - }, - "clean-css": { - "version": "3.4.8", - "from": "clean-css@>=3.1.9 <4.0.0", - "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-3.4.8.tgz", - "dependencies": { - "commander": { - "version": "2.8.1", - "from": "commander@>=2.8.0 <2.9.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.8.1.tgz" - }, - "source-map": { - "version": "0.4.4", - "from": "source-map@>=0.4.0 <0.5.0", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz" - } - } - }, - "cli-cursor": { - "version": "1.0.2", - "from": "cli-cursor@>=1.0.1 <2.0.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-1.0.2.tgz" - }, - "cli-table": { - "version": "0.3.1", - "from": "cli-table@>=0.3.1 <0.4.0", - "resolved": "https://registry.npmjs.org/cli-table/-/cli-table-0.3.1.tgz", - "dependencies": { - "colors": { - "version": "1.0.3", - "from": "colors@1.0.3", - "resolved": "https://registry.npmjs.org/colors/-/colors-1.0.3.tgz" - } - } - }, - "cli-width": { - "version": "1.1.0", - "from": "cli-width@>=1.0.1 <2.0.0", - "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-1.1.0.tgz" - }, - "cliui": { - "version": "2.1.0", - "from": "cliui@>=2.1.0 <3.0.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-2.1.0.tgz" - }, - "clone": { - "version": "1.0.2", - "from": "clone@>=1.0.2 <2.0.0", - "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.2.tgz" - }, - "coa": { - "version": "1.0.1", - "from": "coa@>=1.0.1 <1.1.0", - "resolved": "https://registry.npmjs.org/coa/-/coa-1.0.1.tgz" - }, - "code-point-at": { - "version": "1.0.0", - "from": "code-point-at@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.0.0.tgz" - }, - "colors": { - "version": "1.1.2", - "from": "colors@>=1.1.2 <1.2.0", - "resolved": "https://registry.npmjs.org/colors/-/colors-1.1.2.tgz" - }, - "colr-convert": { - "version": "1.0.5", - "from": "colr-convert@>=1.0.5 <2.0.0", - "resolved": "https://registry.npmjs.org/colr-convert/-/colr-convert-1.0.5.tgz" - }, - "combined-stream": { - "version": "1.0.5", - "from": "combined-stream@>=1.0.5 <1.1.0", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.5.tgz" - }, - "commander": { - "version": "2.9.0", - "from": "commander@>=2.5.0 <3.0.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.9.0.tgz" - }, - "comment-parser": { - "version": "0.3.0", - "from": "comment-parser@0.3.0", - "resolved": "https://registry.npmjs.org/comment-parser/-/comment-parser-0.3.0.tgz" - }, - "commoner": { - "version": "0.10.4", - "from": "commoner@>=0.10.3 <0.11.0", - "resolved": "https://registry.npmjs.org/commoner/-/commoner-0.10.4.tgz" - }, - "compressible": { - "version": "2.0.6", - "from": "compressible@>=2.0.6 <2.1.0", - "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.6.tgz" - }, - "compression": { - "version": "1.6.0", - "from": "compression@>=1.5.2 <2.0.0", - "resolved": "https://registry.npmjs.org/compression/-/compression-1.6.0.tgz", - "dependencies": { - "accepts": { - "version": "1.3.0", - "from": "accepts@>=1.3.0 <1.4.0", - "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.0.tgz" - }, - "negotiator": { - "version": "0.6.0", - "from": "negotiator@0.6.0", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.0.tgz" - }, - "vary": { - "version": "1.1.0", - "from": "vary@>=1.1.0 <1.2.0", - "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.0.tgz" - } - } - }, - "concat-map": { - "version": "0.0.1", - "from": "concat-map@0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz" - }, - "concat-stream": { - "version": "1.5.1", - "from": "concat-stream@>=1.4.6 <2.0.0", - "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.5.1.tgz" - }, - "config-chain": { - "version": "1.1.9", - "from": "config-chain@>=1.1.8 <1.2.0", - "resolved": "https://registry.npmjs.org/config-chain/-/config-chain-1.1.9.tgz" - }, - "connect-history-api-fallback": { - "version": "1.1.0", - "from": "connect-history-api-fallback@1.1.0", - "resolved": "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-1.1.0.tgz" - }, - "console-browserify": { - "version": "1.1.0", - "from": "console-browserify@>=1.1.0 <2.0.0", - "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.1.0.tgz" - }, - "constantinople": { - "version": "3.0.2", - "from": "constantinople@>=3.0.1 <3.1.0", - "resolved": "https://registry.npmjs.org/constantinople/-/constantinople-3.0.2.tgz", - "dependencies": { - "acorn": { - "version": "2.6.4", - "from": "acorn@>=2.1.0 <3.0.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-2.6.4.tgz" - } - } - }, - "constants-browserify": { - "version": "0.0.1", - "from": "constants-browserify@0.0.1", - "resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-0.0.1.tgz" - }, - "content-disposition": { - "version": "0.5.0", - "from": "content-disposition@0.5.0", - "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.0.tgz" - }, - "content-type": { - "version": "1.0.1", - "from": "content-type@>=1.0.1 <1.1.0", - "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.1.tgz" - }, - "convert-source-map": { - "version": "1.1.2", - "from": "convert-source-map@>=1.1.0 <2.0.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.1.2.tgz" - }, - "cookie": { - "version": "0.1.3", - "from": "cookie@0.1.3", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.1.3.tgz" - }, - "cookie-signature": { - "version": "1.0.6", - "from": "cookie-signature@1.0.6", - "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz" - }, - "core-js": { - "version": "1.2.6", - "from": "core-js@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-1.2.6.tgz" - }, - "core-util-is": { - "version": "1.0.2", - "from": "core-util-is@>=1.0.0 <1.1.0", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz" - }, - "cross-spawn": { - "version": "2.0.1", - "from": "cross-spawn@>=2.0.0 <3.0.0", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-2.0.1.tgz" - }, - "cross-spawn-async": { - "version": "2.0.1", - "from": "cross-spawn-async@>=2.0.0 <3.0.0", - "resolved": "https://registry.npmjs.org/cross-spawn-async/-/cross-spawn-async-2.0.1.tgz", - "dependencies": { - "lru-cache": { - "version": "3.2.0", - "from": "lru-cache@>=3.2.0 <4.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-3.2.0.tgz" - } - } - }, - "cryptiles": { - "version": "2.0.5", - "from": "cryptiles@>=2.0.0 <3.0.0", - "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-2.0.5.tgz" - }, - "crypto-browserify": { - "version": "3.2.8", - "from": "crypto-browserify@>=3.2.6 <3.3.0", - "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.2.8.tgz" - }, - "css": { - "version": "1.0.8", - "from": "css@>=1.0.8 <1.1.0", - "resolved": "https://registry.npmjs.org/css/-/css-1.0.8.tgz" - }, - "css-color-names": { - "version": "0.0.2", - "from": "css-color-names@0.0.2", - "resolved": "https://registry.npmjs.org/css-color-names/-/css-color-names-0.0.2.tgz" - }, - "css-parse": { - "version": "1.0.4", - "from": "css-parse@1.0.4", - "resolved": "https://registry.npmjs.org/css-parse/-/css-parse-1.0.4.tgz" - }, - "css-selector-tokenizer": { - "version": "0.5.4", - "from": "css-selector-tokenizer@>=0.5.1 <0.6.0", - "resolved": "https://registry.npmjs.org/css-selector-tokenizer/-/css-selector-tokenizer-0.5.4.tgz" - }, - "css-stringify": { - "version": "1.0.5", - "from": "css-stringify@1.0.5", - "resolved": "https://registry.npmjs.org/css-stringify/-/css-stringify-1.0.5.tgz" - }, - "cssesc": { - "version": "0.1.0", - "from": "cssesc@>=0.1.0 <0.2.0", - "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-0.1.0.tgz" - }, - "cssnano": { - "version": "3.3.2", - "from": "cssnano@>=2.6.1 <4.0.0", - "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-3.3.2.tgz", - "dependencies": { - "object-assign": { - "version": "4.0.1", - "from": "object-assign@>=4.0.1 <5.0.0", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.0.1.tgz" - } - } - }, - "cssom": { - "version": "0.3.0", - "from": "cssom@>=0.3.0 <0.4.0", - "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.0.tgz" - }, - "cssstyle": { - "version": "0.2.30", - "from": "cssstyle@>=0.2.29 <0.3.0", - "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-0.2.30.tgz" - }, - "cycle": { - "version": "1.0.3", - "from": "cycle@>=1.0.0 <1.1.0", - "resolved": "https://registry.npmjs.org/cycle/-/cycle-1.0.3.tgz" - }, - "d": { - "version": "0.1.1", - "from": "d@>=0.1.1 <0.2.0", - "resolved": "https://registry.npmjs.org/d/-/d-0.1.1.tgz" - }, - "dashdash": { - "version": "1.10.1", - "from": "dashdash@>=1.10.1 <2.0.0", - "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.10.1.tgz" - }, - "date-now": { - "version": "0.1.4", - "from": "date-now@>=0.1.4 <0.2.0", - "resolved": "https://registry.npmjs.org/date-now/-/date-now-0.1.4.tgz" - }, - "debug": { - "version": "2.2.0", - "from": "debug@>=2.1.1 <3.0.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.2.0.tgz" - }, - "decamelize": { - "version": "1.1.1", - "from": "decamelize@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.1.1.tgz" - }, - "deep-eql": { - "version": "0.1.3", - "from": "deep-eql@>=0.1.3 <0.2.0", - "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-0.1.3.tgz", - "dependencies": { - "type-detect": { - "version": "0.1.1", - "from": "type-detect@0.1.1", - "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-0.1.1.tgz" - } - } - }, - "deep-equal": { - "version": "1.0.1", - "from": "deep-equal@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.0.1.tgz" - }, - "deep-is": { - "version": "0.1.3", - "from": "deep-is@>=0.1.3 <0.2.0", - "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz" - }, - "defined": { - "version": "1.0.0", - "from": "defined@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/defined/-/defined-1.0.0.tgz" - }, - "defs": { - "version": "1.1.1", - "from": "defs@>=1.1.0 <1.2.0", - "resolved": "https://registry.npmjs.org/defs/-/defs-1.1.1.tgz" - }, - "del": { - "version": "2.1.0", - "from": "del@>=2.0.2 <3.0.0", - "resolved": "https://registry.npmjs.org/del/-/del-2.1.0.tgz", - "dependencies": { - "object-assign": { - "version": "4.0.1", - "from": "object-assign@>=4.0.1 <5.0.0", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.0.1.tgz" - } - } - }, - "delayed-stream": { - "version": "1.0.0", - "from": "delayed-stream@>=1.0.0 <1.1.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz" - }, - "delegates": { - "version": "0.1.0", - "from": "delegates@>=0.1.0 <0.2.0", - "resolved": "https://registry.npmjs.org/delegates/-/delegates-0.1.0.tgz" - }, - "depd": { - "version": "1.1.0", - "from": "depd@>=1.1.0 <1.2.0", - "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.0.tgz" - }, - "destroy": { - "version": "1.0.3", - "from": "destroy@1.0.3", - "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.3.tgz" - }, - "detect-indent": { - "version": "3.0.1", - "from": "detect-indent@>=3.0.0 <4.0.0", - "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-3.0.1.tgz" - }, - "detective": { - "version": "4.3.1", - "from": "detective@>=4.3.1 <5.0.0", - "resolved": "https://registry.npmjs.org/detective/-/detective-4.3.1.tgz" - }, - "diff": { - "version": "1.4.0", - "from": "diff@1.4.0", - "resolved": "https://registry.npmjs.org/diff/-/diff-1.4.0.tgz" - }, - "doctrine": { - "version": "0.7.2", - "from": "doctrine@>=0.7.1 <0.8.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-0.7.2.tgz", - "dependencies": { - "esutils": { - "version": "1.1.6", - "from": "esutils@>=1.1.6 <2.0.0", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-1.1.6.tgz" - } - } - }, - "dom-helpers": { - "version": "2.4.0", - "from": "dom-helpers@>=2.4.0 <3.0.0", - "resolved": "https://registry.npmjs.org/dom-helpers/-/dom-helpers-2.4.0.tgz" - }, - "dom-serializer": { - "version": "0.1.0", - "from": "dom-serializer@>=0.0.0 <1.0.0", - "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.1.0.tgz", - "dependencies": { - "domelementtype": { - "version": "1.1.3", - "from": "domelementtype@>=1.1.1 <1.2.0", - "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.1.3.tgz" - }, - "entities": { - "version": "1.1.1", - "from": "entities@>=1.1.1 <1.2.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-1.1.1.tgz" - } - } - }, - "dom-walk": { - "version": "0.1.1", - "from": "dom-walk@>=0.1.0 <0.2.0", - "resolved": "https://registry.npmjs.org/dom-walk/-/dom-walk-0.1.1.tgz" - }, - "domain-browser": { - "version": "1.1.4", - "from": "domain-browser@>=1.1.1 <2.0.0", - "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.1.4.tgz" - }, - "domelementtype": { - "version": "1.3.0", - "from": "domelementtype@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.0.tgz" - }, - "domhandler": { - "version": "2.3.0", - "from": "domhandler@>=2.3.0 <2.4.0", - "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-2.3.0.tgz" - }, - "domutils": { - "version": "1.5.1", - "from": "domutils@>=1.5.0 <1.6.0", - "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.5.1.tgz" - }, - "ecc-jsbn": { - "version": "0.1.1", - "from": "ecc-jsbn@>=0.0.1 <1.0.0", - "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz" - }, - "ee-first": { - "version": "1.1.1", - "from": "ee-first@1.1.1", - "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz" - }, - "enhanced-resolve": { - "version": "0.9.1", - "from": "enhanced-resolve@>=0.9.0 <0.10.0", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-0.9.1.tgz", - "dependencies": { - "memory-fs": { - "version": "0.2.0", - "from": "memory-fs@>=0.2.0 <0.3.0", - "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.2.0.tgz" - } - } - }, - "entities": { - "version": "1.0.0", - "from": "entities@>=1.0.0 <1.1.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-1.0.0.tgz" - }, - "envify": { - "version": "3.4.0", - "from": "envify@>=3.0.0 <4.0.0", - "resolved": "https://registry.npmjs.org/envify/-/envify-3.4.0.tgz" - }, - "errno": { - "version": "0.1.4", - "from": "errno@>=0.1.3 <0.2.0", - "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.4.tgz" - }, - "error-ex": { - "version": "1.3.0", - "from": "error-ex@>=1.2.0 <2.0.0", - "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.0.tgz" - }, - "es5-ext": { - "version": "0.10.9", - "from": "es5-ext@>=0.10.8 <0.11.0", - "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.9.tgz" - }, - "es5-shim": { - "version": "4.3.1", - "from": "es5-shim@>=4.3.1 <5.0.0", - "resolved": "https://registry.npmjs.org/es5-shim/-/es5-shim-4.3.1.tgz" - }, - "es6-iterator": { - "version": "2.0.0", - "from": "es6-iterator@>=2.0.0 <3.0.0", - "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.0.tgz" - }, - "es6-map": { - "version": "0.1.3", - "from": "es6-map@>=0.1.2 <0.2.0", - "resolved": "https://registry.npmjs.org/es6-map/-/es6-map-0.1.3.tgz" - }, - "es6-promise": { - "version": "3.0.2", - "from": "es6-promise@>=3.0.2 <4.0.0", - "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-3.0.2.tgz" - }, - "es6-set": { - "version": "0.1.3", - "from": "es6-set@>=0.1.3 <0.2.0", - "resolved": "https://registry.npmjs.org/es6-set/-/es6-set-0.1.3.tgz" - }, - "es6-symbol": { - "version": "3.0.1", - "from": "es6-symbol@>=3.0.1 <3.1.0", - "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.0.1.tgz" - }, - "es6-weak-map": { - "version": "2.0.1", - "from": "es6-weak-map@>=2.0.1 <3.0.0", - "resolved": "https://registry.npmjs.org/es6-weak-map/-/es6-weak-map-2.0.1.tgz" - }, - "escape-html": { - "version": "1.0.2", - "from": "escape-html@1.0.2", - "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.2.tgz" - }, - "escape-string-regexp": { - "version": "1.0.3", - "from": "escape-string-regexp@>=1.0.2 <2.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.3.tgz" - }, - "escodegen": { - "version": "1.7.1", - "from": "escodegen@>=1.6.1 <2.0.0", - "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.7.1.tgz", - "dependencies": { - "esprima": { - "version": "1.2.5", - "from": "esprima@>=1.2.2 <2.0.0", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-1.2.5.tgz" - }, - "estraverse": { - "version": "1.9.3", - "from": "estraverse@>=1.9.1 <2.0.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-1.9.3.tgz" - }, - "optionator": { - "version": "0.5.0", - "from": "optionator@>=0.5.0 <0.6.0", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.5.0.tgz" - }, - "source-map": { - "version": "0.2.0", - "from": "source-map@>=0.2.0 <0.3.0", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.2.0.tgz" - } - } - }, - "escope": { - "version": "3.3.0", - "from": "escope@>=3.3.0 <4.0.0", - "resolved": "https://registry.npmjs.org/escope/-/escope-3.3.0.tgz" - }, - "esprima-fb": { - "version": "15001.1001.0-dev-harmony-fb", - "from": "esprima-fb@>=15001.1001.0-dev-harmony-fb <15001.1002.0", - "resolved": "https://registry.npmjs.org/esprima-fb/-/esprima-fb-15001.1001.0-dev-harmony-fb.tgz" - }, - "esrecurse": { - "version": "3.1.1", - "from": "esrecurse@>=3.1.1 <4.0.0", - "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-3.1.1.tgz", - "dependencies": { - "estraverse": { - "version": "3.1.0", - "from": "estraverse@>=3.1.0 <3.2.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-3.1.0.tgz" - } - } - }, - "estraverse": { - "version": "4.1.1", - "from": "estraverse@>=4.1.1 <5.0.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.1.1.tgz" - }, - "estraverse-fb": { - "version": "1.3.1", - "from": "estraverse-fb@>=1.3.1 <2.0.0", - "resolved": "https://registry.npmjs.org/estraverse-fb/-/estraverse-fb-1.3.1.tgz" - }, - "esutils": { - "version": "2.0.2", - "from": "esutils@>=2.0.0 <3.0.0", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz" - }, - "etag": { - "version": "1.7.0", - "from": "etag@>=1.7.0 <1.8.0", - "resolved": "https://registry.npmjs.org/etag/-/etag-1.7.0.tgz" - }, - "event-emitter": { - "version": "0.3.4", - "from": "event-emitter@>=0.3.4 <0.4.0", - "resolved": "https://registry.npmjs.org/event-emitter/-/event-emitter-0.3.4.tgz" - }, - "eventemitter3": { - "version": "1.1.1", - "from": "eventemitter3@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-1.1.1.tgz" - }, - "events": { - "version": "1.1.0", - "from": "events@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/events/-/events-1.1.0.tgz" - }, - "eventsource": { - "version": "0.1.6", - "from": "eventsource@>=0.1.3 <0.2.0", - "resolved": "https://registry.npmjs.org/eventsource/-/eventsource-0.1.6.tgz" - }, - "exit": { - "version": "0.1.2", - "from": "exit@>=0.1.2 <0.2.0", - "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz" - }, - "exit-hook": { - "version": "1.1.1", - "from": "exit-hook@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/exit-hook/-/exit-hook-1.1.1.tgz" - }, - "expand-brackets": { - "version": "0.1.4", - "from": "expand-brackets@>=0.1.4 <0.2.0", - "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-0.1.4.tgz" - }, - "expand-range": { - "version": "1.8.1", - "from": "expand-range@>=1.8.1 <2.0.0", - "resolved": "https://registry.npmjs.org/expand-range/-/expand-range-1.8.1.tgz" - }, - "expose-loader": { - "version": "0.7.1", - "from": "expose-loader@>=0.7.1 <0.8.0", - "resolved": "https://registry.npmjs.org/expose-loader/-/expose-loader-0.7.1.tgz" - }, - "express": { - "version": "4.13.3", - "from": "express@>=4.13.3 <5.0.0", - "resolved": "https://registry.npmjs.org/express/-/express-4.13.3.tgz", - "dependencies": { - "depd": { - "version": "1.0.1", - "from": "depd@>=1.0.1 <1.1.0", - "resolved": "https://registry.npmjs.org/depd/-/depd-1.0.1.tgz" - }, - "qs": { - "version": "4.0.0", - "from": "qs@4.0.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-4.0.0.tgz" - } - } - }, - "extend": { - "version": "3.0.0", - "from": "extend@>=3.0.0 <3.1.0", - "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.0.tgz" - }, - "extglob": { - "version": "0.3.1", - "from": "extglob@>=0.3.1 <0.4.0", - "resolved": "https://registry.npmjs.org/extglob/-/extglob-0.3.1.tgz" - }, - "extsprintf": { - "version": "1.0.2", - "from": "extsprintf@1.0.2", - "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.0.2.tgz" - }, - "eyes": { - "version": "0.1.8", - "from": "eyes@>=0.1.0 <0.2.0", - "resolved": "https://registry.npmjs.org/eyes/-/eyes-0.1.8.tgz" - }, - "fast-levenshtein": { - "version": "1.0.7", - "from": "fast-levenshtein@>=1.0.6 <1.1.0", - "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-1.0.7.tgz" - }, - "fastparse": { - "version": "1.1.1", - "from": "fastparse@>=1.1.1 <2.0.0", - "resolved": "https://registry.npmjs.org/fastparse/-/fastparse-1.1.1.tgz" - }, - "faye-websocket": { - "version": "0.9.4", - "from": "faye-websocket@>=0.9.3 <0.10.0", - "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.9.4.tgz" - }, - "fbjs": { - "version": "0.3.2", - "from": "fbjs@>=0.3.1 <0.4.0", - "resolved": "https://registry.npmjs.org/fbjs/-/fbjs-0.3.2.tgz" - }, - "figures": { - "version": "1.4.0", - "from": "figures@>=1.3.5 <2.0.0", - "resolved": "https://registry.npmjs.org/figures/-/figures-1.4.0.tgz" - }, - "file-entry-cache": { - "version": "1.2.4", - "from": "file-entry-cache@>=1.1.1 <2.0.0", - "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-1.2.4.tgz", - "dependencies": { - "object-assign": { - "version": "4.0.1", - "from": "object-assign@>=4.0.1 <5.0.0", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.0.1.tgz" - } - } - }, - "filename-regex": { - "version": "2.0.0", - "from": "filename-regex@>=2.0.0 <3.0.0", - "resolved": "https://registry.npmjs.org/filename-regex/-/filename-regex-2.0.0.tgz" - }, - "fill-range": { - "version": "2.2.2", - "from": "fill-range@>=2.1.0 <3.0.0", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-2.2.2.tgz" - }, - "finalhandler": { - "version": "0.4.0", - "from": "finalhandler@0.4.0", - "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-0.4.0.tgz" - }, - "find-up": { - "version": "1.1.0", - "from": "find-up@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.0.tgz", - "dependencies": { - "path-exists": { - "version": "2.1.0", - "from": "path-exists@>=2.0.0 <3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz" - } - } - }, - "flat-cache": { - "version": "1.0.10", - "from": "flat-cache@>=1.0.9 <2.0.0", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-1.0.10.tgz" - }, - "flatten": { - "version": "0.0.1", - "from": "flatten@0.0.1", - "resolved": "https://registry.npmjs.org/flatten/-/flatten-0.0.1.tgz" - }, - "flux-standard-action": { - "version": "0.6.0", - "from": "flux-standard-action@0.6.0", - "resolved": "https://registry.npmjs.org/flux-standard-action/-/flux-standard-action-0.6.0.tgz" - }, - "for-in": { - "version": "0.1.4", - "from": "for-in@>=0.1.4 <0.2.0", - "resolved": "https://registry.npmjs.org/for-in/-/for-in-0.1.4.tgz" - }, - "for-own": { - "version": "0.1.3", - "from": "for-own@>=0.1.3 <0.2.0", - "resolved": "https://registry.npmjs.org/for-own/-/for-own-0.1.3.tgz" - }, - "forever-agent": { - "version": "0.6.1", - "from": "forever-agent@>=0.6.1 <0.7.0", - "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz" - }, - "form-data": { - "version": "1.0.0-rc3", - "from": "form-data@>=1.0.0-rc3 <1.1.0", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-1.0.0-rc3.tgz" - }, - "forwarded": { - "version": "0.1.0", - "from": "forwarded@>=0.1.0 <0.2.0", - "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.0.tgz" - }, - "fresh": { - "version": "0.3.0", - "from": "fresh@0.3.0", - "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.3.0.tgz" - }, - "fs-readdir-recursive": { - "version": "0.1.2", - "from": "fs-readdir-recursive@>=0.1.0 <0.2.0", - "resolved": "https://registry.npmjs.org/fs-readdir-recursive/-/fs-readdir-recursive-0.1.2.tgz" - }, - "fsevents": { - "version": "1.0.5", - "from": "fsevents@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.0.5.tgz", - "dependencies": { - "abbrev": { - "version": "1.0.7", - "from": "abbrev@1", - "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.0.7.tgz" - }, - "ansi": { - "version": "0.3.0", - "from": "ansi@~0.3.0", - "resolved": "https://registry.npmjs.org/ansi/-/ansi-0.3.0.tgz" - }, - "ansi-regex": { - "version": "2.0.0", - "from": "ansi-regex@^2.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.0.0.tgz" - }, - "ansi-styles": { - "version": "2.1.0", - "from": "ansi-styles@^2.1.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.1.0.tgz" - }, - "are-we-there-yet": { - "version": "1.0.4", - "from": "are-we-there-yet@~1.0.0", - "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.0.4.tgz" - }, - "asn1": { - "version": "0.1.11", - "from": "asn1@0.1.11", - "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.1.11.tgz" - }, - "assert-plus": { - "version": "0.1.5", - "from": "assert-plus@^0.1.5", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-0.1.5.tgz" - }, - "async": { - "version": "1.5.0", - "from": "async@^1.4.0", - "resolved": "https://registry.npmjs.org/async/-/async-1.5.0.tgz" - }, - "aws-sign2": { - "version": "0.6.0", - "from": "aws-sign2@~0.6.0", - "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.6.0.tgz" - }, - "balanced-match": { - "version": "0.2.1", - "from": "balanced-match@>=0.2.0 <0.3.0", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-0.2.1.tgz" - }, - "bl": { - "version": "1.0.0", - "from": "bl@~1.0.0", - "resolved": "https://registry.npmjs.org/bl/-/bl-1.0.0.tgz", - "dependencies": { - "readable-stream": { - "version": "2.0.4", - "from": "readable-stream@~2.0.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.0.4.tgz", - "dependencies": { - "core-util-is": { - "version": "1.0.1", - "from": "core-util-is@~1.0.0", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.1.tgz" - }, - "inherits": { - "version": "2.0.1", - "from": "inherits@~2.0.1", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz" - }, - "isarray": { - "version": "0.0.1", - "from": "isarray@0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz" - }, - "process-nextick-args": { - "version": "1.0.3", - "from": "process-nextick-args@~1.0.0", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.3.tgz" - }, - "string_decoder": { - "version": "0.10.31", - "from": "string_decoder@~0.10.x", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz" - }, - "util-deprecate": { - "version": "1.0.2", - "from": "util-deprecate@~1.0.1", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz" - } - } - } - } - }, - "block-stream": { - "version": "0.0.8", - "from": "block-stream@*", - "resolved": "https://registry.npmjs.org/block-stream/-/block-stream-0.0.8.tgz" - }, - "boom": { - "version": "2.10.1", - "from": "boom@^2.8.x", - "resolved": "https://registry.npmjs.org/boom/-/boom-2.10.1.tgz" - }, - "brace-expansion": { - "version": "1.1.1", - "from": "brace-expansion@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.1.tgz" - }, - "caseless": { - "version": "0.11.0", - "from": "caseless@~0.11.0", - "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.11.0.tgz" - }, - "chalk": { - "version": "1.1.1", - "from": "chalk@^1.1.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.1.tgz" - }, - "combined-stream": { - "version": "1.0.5", - "from": "combined-stream@~1.0.5", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.5.tgz" - }, - "commander": { - "version": "2.9.0", - "from": "commander@^2.8.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.9.0.tgz" - }, - "concat-map": { - "version": "0.0.1", - "from": "concat-map@0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz" - }, - "core-util-is": { - "version": "1.0.1", - "from": "core-util-is@~1.0.0", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.1.tgz" - }, - "cryptiles": { - "version": "2.0.5", - "from": "cryptiles@2.x.x", - "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-2.0.5.tgz" - }, - "ctype": { - "version": "0.5.3", - "from": "ctype@0.5.3", - "resolved": "https://registry.npmjs.org/ctype/-/ctype-0.5.3.tgz" - }, - "debug": { - "version": "0.7.4", - "from": "debug@~0.7.2", - "resolved": "https://registry.npmjs.org/debug/-/debug-0.7.4.tgz" - }, - "deep-extend": { - "version": "0.2.11", - "from": "deep-extend@~0.2.5", - "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.2.11.tgz" - }, - "delayed-stream": { - "version": "1.0.0", - "from": "delayed-stream@~1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz" - }, - "delegates": { - "version": "0.1.0", - "from": "delegates@^0.1.0", - "resolved": "https://registry.npmjs.org/delegates/-/delegates-0.1.0.tgz" - }, - "escape-string-regexp": { - "version": "1.0.3", - "from": "escape-string-regexp@^1.0.2", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.3.tgz" - }, - "extend": { - "version": "3.0.0", - "from": "extend@~3.0.0", - "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.0.tgz" - }, - "forever-agent": { - "version": "0.6.1", - "from": "forever-agent@~0.6.1", - "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz" - }, - "form-data": { - "version": "1.0.0-rc3", - "from": "form-data@~1.0.0-rc3", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-1.0.0-rc3.tgz" - }, - "fstream": { - "version": "1.0.8", - "from": "fstream@^1.0.2", - "resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.8.tgz" - }, - "fstream-ignore": { - "version": "1.0.3", - "from": "fstream-ignore@~1.0.3", - "resolved": "https://registry.npmjs.org/fstream-ignore/-/fstream-ignore-1.0.3.tgz", - "dependencies": { - "minimatch": { - "version": "3.0.0", - "from": "minimatch@>=3.0.0 <4.0.0" - } - } - }, - "gauge": { - "version": "1.2.2", - "from": "gauge@~1.2.0", - "resolved": "https://registry.npmjs.org/gauge/-/gauge-1.2.2.tgz" - }, - "generate-function": { - "version": "2.0.0", - "from": "generate-function@^2.0.0", - "resolved": "https://registry.npmjs.org/generate-function/-/generate-function-2.0.0.tgz" - }, - "generate-object-property": { - "version": "1.2.0", - "from": "generate-object-property@^1.1.0", - "resolved": "https://registry.npmjs.org/generate-object-property/-/generate-object-property-1.2.0.tgz" - }, - "graceful-fs": { - "version": "4.1.2", - "from": "graceful-fs@4.1", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.2.tgz" - }, - "graceful-readlink": { - "version": "1.0.1", - "from": "graceful-readlink@>= 1.0.0", - "resolved": "https://registry.npmjs.org/graceful-readlink/-/graceful-readlink-1.0.1.tgz" - }, - "har-validator": { - "version": "2.0.2", - "from": "har-validator@~2.0.2", - "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-2.0.2.tgz" - }, - "has-ansi": { - "version": "2.0.0", - "from": "has-ansi@^2.0.0", - "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz" - }, - "has-unicode": { - "version": "1.0.1", - "from": "has-unicode@^1.0.0", - "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-1.0.1.tgz" - }, - "hawk": { - "version": "3.1.0", - "from": "hawk@~3.1.0", - "resolved": "https://registry.npmjs.org/hawk/-/hawk-3.1.0.tgz" - }, - "hoek": { - "version": "2.16.3", - "from": "hoek@2.x.x", - "resolved": "https://registry.npmjs.org/hoek/-/hoek-2.16.3.tgz" - }, - "http-signature": { - "version": "0.11.0", - "from": "http-signature@~0.11.0", - "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-0.11.0.tgz" - }, - "inflight": { - "version": "1.0.4", - "from": "inflight@>=1.0.4 <2.0.0", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.4.tgz", - "dependencies": { - "once": { - "version": "1.3.2", - "from": "once@>=1.3.0 <2.0.0" - } - } - }, - "inherits": { - "version": "2.0.1", - "from": "inherits@*", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz" - }, - "ini": { - "version": "1.3.4", - "from": "ini@~1.3.0", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.4.tgz" - }, - "is-my-json-valid": { - "version": "2.12.2", - "from": "is-my-json-valid@^2.12.2", - "resolved": "https://registry.npmjs.org/is-my-json-valid/-/is-my-json-valid-2.12.2.tgz" - }, - "is-property": { - "version": "1.0.2", - "from": "is-property@^1.0.0", - "resolved": "https://registry.npmjs.org/is-property/-/is-property-1.0.2.tgz" - }, - "isarray": { - "version": "0.0.1", - "from": "isarray@0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz" - }, - "isstream": { - "version": "0.1.2", - "from": "isstream@~0.1.2", - "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz" - }, - "json-stringify-safe": { - "version": "5.0.1", - "from": "json-stringify-safe@~5.0.1", - "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz" - }, - "jsonpointer": { - "version": "2.0.0", - "from": "jsonpointer@2.0.0", - "resolved": "https://registry.npmjs.org/jsonpointer/-/jsonpointer-2.0.0.tgz" - }, - "lodash._basetostring": { - "version": "3.0.1", - "from": "lodash._basetostring@^3.0.0", - "resolved": "https://registry.npmjs.org/lodash._basetostring/-/lodash._basetostring-3.0.1.tgz" - }, - "lodash._createpadding": { - "version": "3.6.1", - "from": "lodash._createpadding@^3.0.0", - "resolved": "https://registry.npmjs.org/lodash._createpadding/-/lodash._createpadding-3.6.1.tgz" - }, - "lodash.pad": { - "version": "3.1.1", - "from": "lodash.pad@^3.0.0", - "resolved": "https://registry.npmjs.org/lodash.pad/-/lodash.pad-3.1.1.tgz" - }, - "lodash.padleft": { - "version": "3.1.1", - "from": "lodash.padleft@^3.0.0", - "resolved": "https://registry.npmjs.org/lodash.padleft/-/lodash.padleft-3.1.1.tgz" - }, - "lodash.padright": { - "version": "3.1.1", - "from": "lodash.padright@^3.0.0", - "resolved": "https://registry.npmjs.org/lodash.padright/-/lodash.padright-3.1.1.tgz" - }, - "lodash.repeat": { - "version": "3.0.1", - "from": "lodash.repeat@^3.0.0", - "resolved": "https://registry.npmjs.org/lodash.repeat/-/lodash.repeat-3.0.1.tgz" - }, - "mime-db": { - "version": "1.19.0", - "from": "mime-db@~1.19.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.19.0.tgz" - }, - "mime-types": { - "version": "2.1.7", - "from": "mime-types@~2.1.7", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.7.tgz" - }, - "minimist": { - "version": "0.0.8", - "from": "minimist@0.0.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz" - }, - "mkdirp": { - "version": "0.5.1", - "from": "mkdirp@>=0.3.0 <0.4.0||>=0.4.0 <0.5.0||>=0.5.0 <0.6.0", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz" - }, - "node-pre-gyp": { - "version": "0.6.15", - "from": "node-pre-gyp@latest", - "resolved": "https://registry.npmjs.org/node-pre-gyp/-/node-pre-gyp-0.6.15.tgz", - "dependencies": { - "nopt": { - "version": "3.0.4", - "from": "nopt@>=3.0.1 <3.1.0", - "resolved": "https://registry.npmjs.org/nopt/-/nopt-3.0.4.tgz" - } - } - }, - "node-uuid": { - "version": "1.4.3", - "from": "node-uuid@~1.4.3", - "resolved": "https://registry.npmjs.org/node-uuid/-/node-uuid-1.4.3.tgz" - }, - "npmlog": { - "version": "1.2.1", - "from": "npmlog@~1.2.0", - "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-1.2.1.tgz" - }, - "oauth-sign": { - "version": "0.8.0", - "from": "oauth-sign@~0.8.0", - "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.8.0.tgz" - }, - "once": { - "version": "1.1.1", - "from": "once@~1.1.1", - "resolved": "https://registry.npmjs.org/once/-/once-1.1.1.tgz" - }, - "path-is-absolute": { - "version": "1.0.0", - "from": "path-is-absolute@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.0.tgz" - }, - "pinkie": { - "version": "1.0.0", - "from": "pinkie@^1.0.0", - "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-1.0.0.tgz" - }, - "pinkie-promise": { - "version": "1.0.0", - "from": "pinkie-promise@^1.0.0", - "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-1.0.0.tgz" - }, - "qs": { - "version": "5.2.0", - "from": "qs@~5.2.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-5.2.0.tgz" - }, - "rc": { - "version": "1.1.2", - "from": "rc@~1.1.0", - "resolved": "https://registry.npmjs.org/rc/-/rc-1.1.2.tgz", - "dependencies": { - "minimist": { - "version": "1.2.0", - "from": "minimist@^1.1.2", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz" - } - } - }, - "readable-stream": { - "version": "1.1.13", - "from": "readable-stream@^1.1.13", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.13.tgz" - }, - "request": { - "version": "2.65.0", - "from": "request@2.x", - "resolved": "https://registry.npmjs.org/request/-/request-2.65.0.tgz" - }, - "rimraf": { - "version": "2.4.3", - "from": "rimraf@~2.4.0", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.4.3.tgz", - "dependencies": { - "glob": { - "version": "5.0.15", - "from": "glob@>=5.0.14 <6.0.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-5.0.15.tgz" - }, - "minimatch": { - "version": "3.0.0", - "from": "minimatch@>=2.0.0 <3.0.0||>=3.0.0 <4.0.0", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.0.tgz" - }, - "once": { - "version": "1.3.2", - "from": "once@>=1.3.0 <2.0.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.3.2.tgz" - } - } - }, - "semver": { - "version": "5.0.3", - "from": "semver@~5.0.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.0.3.tgz" - }, - "sntp": { - "version": "1.0.9", - "from": "sntp@1.x.x", - "resolved": "https://registry.npmjs.org/sntp/-/sntp-1.0.9.tgz" - }, - "string_decoder": { - "version": "0.10.31", - "from": "string_decoder@~0.10.x", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz" - }, - "stringstream": { - "version": "0.0.5", - "from": "stringstream@~0.0.4", - "resolved": "https://registry.npmjs.org/stringstream/-/stringstream-0.0.5.tgz" - }, - "strip-ansi": { - "version": "3.0.0", - "from": "strip-ansi@^3.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.0.tgz" - }, - "strip-json-comments": { - "version": "0.1.3", - "from": "strip-json-comments@0.1.x", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-0.1.3.tgz" - }, - "supports-color": { - "version": "2.0.0", - "from": "supports-color@^2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz" - }, - "tar": { - "version": "2.2.1", - "from": "tar@~2.2.0", - "resolved": "https://registry.npmjs.org/tar/-/tar-2.2.1.tgz" - }, - "tar-pack": { - "version": "3.1.0", - "from": "tar-pack@~3.1.0", - "resolved": "https://registry.npmjs.org/tar-pack/-/tar-pack-3.1.0.tgz", - "dependencies": { - "readable-stream": { - "version": "1.0.33", - "from": "readable-stream@~1.0.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.33.tgz", - "dependencies": { - "core-util-is": { - "version": "1.0.1", - "from": "core-util-is@~1.0.0", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.1.tgz" - }, - "inherits": { - "version": "2.0.1", - "from": "inherits@~2.0.1", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz" - }, - "isarray": { - "version": "0.0.1", - "from": "isarray@0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz" - }, - "string_decoder": { - "version": "0.10.31", - "from": "string_decoder@~0.10.x", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz" - } - } - }, - "rimraf": { - "version": "2.2.8", - "from": "rimraf@~2.2.0", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.2.8.tgz" - } - } - }, - "tough-cookie": { - "version": "2.2.0", - "from": "tough-cookie@~2.2.0", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.2.0.tgz" - }, - "tunnel-agent": { - "version": "0.4.1", - "from": "tunnel-agent@~0.4.1", - "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.4.1.tgz" - }, - "uid-number": { - "version": "0.0.3", - "from": "uid-number@0.0.3", - "resolved": "https://registry.npmjs.org/uid-number/-/uid-number-0.0.3.tgz" - }, - "wrappy": { - "version": "1.0.1", - "from": "wrappy@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.1.tgz" - }, - "xtend": { - "version": "4.0.1", - "from": "xtend@^4.0.0", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz" - } - } - }, - "fstream": { - "version": "1.0.8", - "from": "fstream@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.8.tgz" - }, - "gauge": { - "version": "1.2.2", - "from": "gauge@>=1.2.0 <1.3.0", - "resolved": "https://registry.npmjs.org/gauge/-/gauge-1.2.2.tgz" - }, - "gaze": { - "version": "0.5.2", - "from": "gaze@>=0.5.1 <0.6.0", - "resolved": "https://registry.npmjs.org/gaze/-/gaze-0.5.2.tgz" - }, - "generate-function": { - "version": "2.0.0", - "from": "generate-function@>=2.0.0 <3.0.0", - "resolved": "https://registry.npmjs.org/generate-function/-/generate-function-2.0.0.tgz" - }, - "generate-object-property": { - "version": "1.2.0", - "from": "generate-object-property@>=1.1.0 <2.0.0", - "resolved": "https://registry.npmjs.org/generate-object-property/-/generate-object-property-1.2.0.tgz" - }, - "get-stdin": { - "version": "4.0.1", - "from": "get-stdin@>=4.0.1 <5.0.0", - "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz" - }, - "glob": { - "version": "5.0.15", - "from": "glob@>=5.0.15 <6.0.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-5.0.15.tgz" - }, - "glob-base": { - "version": "0.3.0", - "from": "glob-base@>=0.3.0 <0.4.0", - "resolved": "https://registry.npmjs.org/glob-base/-/glob-base-0.3.0.tgz" - }, - "glob-parent": { - "version": "2.0.0", - "from": "glob-parent@>=2.0.0 <3.0.0", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-2.0.0.tgz" - }, - "global": { - "version": "4.3.0", - "from": "global@>=4.3.0 <5.0.0", - "resolved": "https://registry.npmjs.org/global/-/global-4.3.0.tgz", - "dependencies": { - "process": { - "version": "0.5.2", - "from": "process@>=0.5.1 <0.6.0", - "resolved": "https://registry.npmjs.org/process/-/process-0.5.2.tgz" - } - } - }, - "globals": { - "version": "6.4.1", - "from": "globals@>=6.4.0 <7.0.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-6.4.1.tgz" - }, - "globby": { - "version": "3.0.1", - "from": "globby@>=3.0.0 <4.0.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-3.0.1.tgz", - "dependencies": { - "object-assign": { - "version": "4.0.1", - "from": "object-assign@>=4.0.1 <5.0.0", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.0.1.tgz" - }, - "pinkie-promise": { - "version": "1.0.0", - "from": "pinkie-promise@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-1.0.0.tgz" - } - } - }, - "globule": { - "version": "0.1.0", - "from": "globule@>=0.1.0 <0.2.0", - "resolved": "https://registry.npmjs.org/globule/-/globule-0.1.0.tgz", - "dependencies": { - "glob": { - "version": "3.1.21", - "from": "glob@>=3.1.21 <3.2.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-3.1.21.tgz" - }, - "graceful-fs": { - "version": "1.2.3", - "from": "graceful-fs@>=1.2.0 <1.3.0", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-1.2.3.tgz" - }, - "inherits": { - "version": "1.0.2", - "from": "inherits@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-1.0.2.tgz" - }, - "lodash": { - "version": "1.0.2", - "from": "lodash@>=1.0.1 <1.1.0", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-1.0.2.tgz" - }, - "minimatch": { - "version": "0.2.14", - "from": "minimatch@>=0.2.11 <0.3.0", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-0.2.14.tgz" - } - } - }, - "graceful-fs": { - "version": "4.1.2", - "from": "graceful-fs@>=4.1.2 <5.0.0", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.2.tgz" - }, - "graceful-readlink": { - "version": "1.0.1", - "from": "graceful-readlink@>=1.0.0", - "resolved": "https://registry.npmjs.org/graceful-readlink/-/graceful-readlink-1.0.1.tgz" - }, - "growl": { - "version": "1.8.1", - "from": "growl@1.8.1", - "resolved": "https://registry.npmjs.org/growl/-/growl-1.8.1.tgz" - }, - "handlebars": { - "version": "4.0.5", - "from": "handlebars@>=4.0.0 <5.0.0", - "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.0.5.tgz", - "dependencies": { - "source-map": { - "version": "0.4.4", - "from": "source-map@>=0.4.4 <0.5.0", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz" - } - } - }, - "har-validator": { - "version": "2.0.3", - "from": "har-validator@>=2.0.2 <2.1.0", - "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-2.0.3.tgz" - }, - "has-ansi": { - "version": "2.0.0", - "from": "has-ansi@>=2.0.0 <3.0.0", - "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz" - }, - "has-color": { - "version": "0.1.7", - "from": "has-color@>=0.1.0 <0.2.0", - "resolved": "https://registry.npmjs.org/has-color/-/has-color-0.1.7.tgz" - }, - "has-flag": { - "version": "1.0.0", - "from": "has-flag@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz" - }, - "has-own": { - "version": "1.0.0", - "from": "has-own@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/has-own/-/has-own-1.0.0.tgz" - }, - "has-unicode": { - "version": "1.0.1", - "from": "has-unicode@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-1.0.1.tgz" - }, - "hawk": { - "version": "3.1.2", - "from": "hawk@>=3.1.0 <3.2.0", - "resolved": "https://registry.npmjs.org/hawk/-/hawk-3.1.2.tgz" - }, - "history": { - "version": "1.13.1", - "from": "history@>=1.12.5 <2.0.0", - "resolved": "https://registry.npmjs.org/history/-/history-1.13.1.tgz", - "dependencies": { - "qs": { - "version": "4.0.0", - "from": "qs@>=4.0.0 <5.0.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-4.0.0.tgz" - } - } - }, - "hoek": { - "version": "2.16.3", - "from": "hoek@>=2.0.0 <3.0.0", - "resolved": "https://registry.npmjs.org/hoek/-/hoek-2.16.3.tgz" - }, - "hoist-non-react-statics": { - "version": "1.0.3", - "from": "hoist-non-react-statics@>=1.0.3 <2.0.0", - "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-1.0.3.tgz" - }, - "home-or-tmp": { - "version": "1.0.0", - "from": "home-or-tmp@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/home-or-tmp/-/home-or-tmp-1.0.0.tgz" - }, - "hosted-git-info": { - "version": "2.1.4", - "from": "hosted-git-info@>=2.1.4 <3.0.0", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.1.4.tgz" - }, - "htmlparser2": { - "version": "3.8.3", - "from": "htmlparser2@3.8.3", - "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.8.3.tgz", - "dependencies": { - "readable-stream": { - "version": "1.1.13", - "from": "readable-stream@>=1.1.0 <1.2.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.13.tgz" - } - } - }, - "http-browserify": { - "version": "1.7.0", - "from": "http-browserify@>=1.3.2 <2.0.0", - "resolved": "https://registry.npmjs.org/http-browserify/-/http-browserify-1.7.0.tgz" - }, - "http-errors": { - "version": "1.3.1", - "from": "http-errors@>=1.3.1 <1.4.0", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.3.1.tgz" - }, - "http-proxy": { - "version": "1.12.0", - "from": "http-proxy@>=1.11.2 <2.0.0", - "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.12.0.tgz" - }, - "http-signature": { - "version": "1.1.0", - "from": "http-signature@>=1.1.0 <1.2.0", - "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.1.0.tgz" - }, - "https-browserify": { - "version": "0.0.0", - "from": "https-browserify@0.0.0", - "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-0.0.0.tgz" - }, - "i": { - "version": "0.3.3", - "from": "i@>=0.3.0 <0.4.0", - "resolved": "https://registry.npmjs.org/i/-/i-0.3.3.tgz" - }, - "iconv-lite": { - "version": "0.4.13", - "from": "iconv-lite@>=0.4.5 <0.5.0", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.13.tgz" - }, - "icss-replace-symbols": { - "version": "1.0.2", - "from": "icss-replace-symbols@>=1.0.2 <2.0.0", - "resolved": "https://registry.npmjs.org/icss-replace-symbols/-/icss-replace-symbols-1.0.2.tgz" - }, - "ieee754": { - "version": "1.1.6", - "from": "ieee754@>=1.1.4 <2.0.0", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.6.tgz" - }, - "immutable": { - "version": "3.7.5", - "from": "immutable@>=3.7.5 <4.0.0", - "resolved": "https://registry.npmjs.org/immutable/-/immutable-3.7.5.tgz" - }, - "imports-loader": { - "version": "0.6.5", - "from": "imports-loader@>=0.6.5 <0.7.0", - "resolved": "https://registry.npmjs.org/imports-loader/-/imports-loader-0.6.5.tgz", - "dependencies": { - "source-map": { - "version": "0.1.43", - "from": "source-map@>=0.1.0 <0.2.0", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.1.43.tgz" - } - } - }, - "indent-string": { - "version": "2.1.0", - "from": "indent-string@>=2.1.0 <3.0.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-2.1.0.tgz", - "dependencies": { - "repeating": { - "version": "2.0.0", - "from": "repeating@>=2.0.0 <3.0.0", - "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.0.tgz" - } - } - }, - "indexes-of": { - "version": "1.0.1", - "from": "indexes-of@>=1.0.1 <2.0.0", - "resolved": "https://registry.npmjs.org/indexes-of/-/indexes-of-1.0.1.tgz" - }, - "indexof": { - "version": "0.0.1", - "from": "indexof@0.0.1", - "resolved": "https://registry.npmjs.org/indexof/-/indexof-0.0.1.tgz" - }, - "inflight": { - "version": "1.0.4", - "from": "inflight@>=1.0.4 <2.0.0", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.4.tgz" - }, - "inherit": { - "version": "2.2.2", - "from": "inherit@>=2.2.2 <3.0.0", - "resolved": "https://registry.npmjs.org/inherit/-/inherit-2.2.2.tgz" - }, - "inherits": { - "version": "2.0.1", - "from": "inherits@>=2.0.0 <3.0.0", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz" - }, - "ini": { - "version": "1.3.4", - "from": "ini@>=1.2.0 <2.0.0", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.4.tgz" - }, - "inquirer": { - "version": "0.11.0", - "from": "inquirer@>=0.11.0 <0.12.0", - "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-0.11.0.tgz" - }, - "interpret": { - "version": "0.6.6", - "from": "interpret@>=0.6.4 <0.7.0", - "resolved": "https://registry.npmjs.org/interpret/-/interpret-0.6.6.tgz" - }, - "invariant": { - "version": "2.2.0", - "from": "invariant@>=2.0.0 <3.0.0", - "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.0.tgz" - }, - "invert-kv": { - "version": "1.0.0", - "from": "invert-kv@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz" - }, - "ipaddr.js": { - "version": "1.0.4", - "from": "ipaddr.js@1.0.4", - "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.0.4.tgz" - }, - "is-absolute": { - "version": "0.1.7", - "from": "is-absolute@>=0.1.7 <0.2.0", - "resolved": "https://registry.npmjs.org/is-absolute/-/is-absolute-0.1.7.tgz" - }, - "is-absolute-url": { - "version": "2.0.0", - "from": "is-absolute-url@>=2.0.0 <3.0.0", - "resolved": "https://registry.npmjs.org/is-absolute-url/-/is-absolute-url-2.0.0.tgz" - }, - "is-array": { - "version": "1.0.1", - "from": "is-array@>=1.0.1 <2.0.0", - "resolved": "https://registry.npmjs.org/is-array/-/is-array-1.0.1.tgz" - }, - "is-arrayish": { - "version": "0.2.1", - "from": "is-arrayish@>=0.2.1 <0.3.0", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz" - }, - "is-binary-path": { - "version": "1.0.1", - "from": "is-binary-path@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz" - }, - "is-buffer": { - "version": "1.1.0", - "from": "is-buffer@>=1.0.2 <2.0.0", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.0.tgz" - }, - "is-builtin-module": { - "version": "1.0.0", - "from": "is-builtin-module@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-1.0.0.tgz" - }, - "is-dotfile": { - "version": "1.0.2", - "from": "is-dotfile@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/is-dotfile/-/is-dotfile-1.0.2.tgz" - }, - "is-equal-shallow": { - "version": "0.1.3", - "from": "is-equal-shallow@>=0.1.1 <0.2.0", - "resolved": "https://registry.npmjs.org/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz" - }, - "is-extendable": { - "version": "0.1.1", - "from": "is-extendable@>=0.1.1 <0.2.0", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz" - }, - "is-extglob": { - "version": "1.0.0", - "from": "is-extglob@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz" - }, - "is-finite": { - "version": "1.0.1", - "from": "is-finite@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.1.tgz" - }, - "is-fullwidth-code-point": { - "version": "1.0.0", - "from": "is-fullwidth-code-point@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz" - }, - "is-glob": { - "version": "2.0.1", - "from": "is-glob@>=2.0.0 <3.0.0", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz" - }, - "is-integer": { - "version": "1.0.6", - "from": "is-integer@>=1.0.4 <2.0.0", - "resolved": "https://registry.npmjs.org/is-integer/-/is-integer-1.0.6.tgz" - }, - "is-my-json-valid": { - "version": "2.12.3", - "from": "is-my-json-valid@>=2.10.0 <3.0.0", - "resolved": "https://registry.npmjs.org/is-my-json-valid/-/is-my-json-valid-2.12.3.tgz" - }, - "is-number": { - "version": "1.1.2", - "from": "is-number@>=1.1.2 <2.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-1.1.2.tgz" - }, - "is-path-cwd": { - "version": "1.0.0", - "from": "is-path-cwd@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-1.0.0.tgz" - }, - "is-path-in-cwd": { - "version": "1.0.0", - "from": "is-path-in-cwd@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-1.0.0.tgz" - }, - "is-path-inside": { - "version": "1.0.0", - "from": "is-path-inside@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-1.0.0.tgz" - }, - "is-plain-obj": { - "version": "1.1.0", - "from": "is-plain-obj@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz" - }, - "is-primitive": { - "version": "2.0.0", - "from": "is-primitive@>=2.0.0 <3.0.0", - "resolved": "https://registry.npmjs.org/is-primitive/-/is-primitive-2.0.0.tgz" - }, - "is-promise": { - "version": "2.1.0", - "from": "is-promise@>=2.0.0 <3.0.0", - "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.1.0.tgz" - }, - "is-property": { - "version": "1.0.2", - "from": "is-property@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/is-property/-/is-property-1.0.2.tgz" - }, - "is-relative": { - "version": "0.1.3", - "from": "is-relative@>=0.1.0 <0.2.0", - "resolved": "https://registry.npmjs.org/is-relative/-/is-relative-0.1.3.tgz" - }, - "is-resolvable": { - "version": "1.0.0", - "from": "is-resolvable@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/is-resolvable/-/is-resolvable-1.0.0.tgz" - }, - "is-svg": { - "version": "1.1.1", - "from": "is-svg@>=1.1.1 <2.0.0", - "resolved": "https://registry.npmjs.org/is-svg/-/is-svg-1.1.1.tgz" - }, - "is-typedarray": { - "version": "1.0.0", - "from": "is-typedarray@>=1.0.0 <1.1.0", - "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz" - }, - "is-utf8": { - "version": "0.2.0", - "from": "is-utf8@>=0.2.0 <0.3.0", - "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.0.tgz" - }, - "isarray": { - "version": "0.0.1", - "from": "isarray@0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz" - }, - "isobject": { - "version": "1.0.2", - "from": "isobject@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-1.0.2.tgz" - }, - "isstream": { - "version": "0.1.2", - "from": "isstream@>=0.1.0 <0.2.0", - "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz" - }, - "jodid25519": { - "version": "1.0.2", - "from": "jodid25519@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/jodid25519/-/jodid25519-1.0.2.tgz" - }, - "jquery": { - "version": "2.1.4", - "from": "jquery@>=2.1.4 <3.0.0", - "resolved": "https://registry.npmjs.org/jquery/-/jquery-2.1.4.tgz" - }, - "jquery-ujs": { - "version": "1.1.0-1", - "from": "jquery-ujs@>=1.1.0-1 <2.0.0", - "resolved": "https://registry.npmjs.org/jquery-ujs/-/jquery-ujs-1.1.0-1.tgz" - }, - "js-base64": { - "version": "2.1.9", - "from": "js-base64@>=2.1.9 <3.0.0", - "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-2.1.9.tgz" - }, - "js-tokens": { - "version": "1.0.1", - "from": "js-tokens@1.0.1", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-1.0.1.tgz" - }, - "js-yaml": { - "version": "3.3.1", - "from": "js-yaml@>=3.3.1 <3.4.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.3.1.tgz", - "dependencies": { - "esprima": { - "version": "2.2.0", - "from": "esprima@>=2.2.0 <2.3.0", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-2.2.0.tgz" - } - } - }, - "jsbn": { - "version": "0.1.0", - "from": "jsbn@>=0.1.0 <0.2.0", - "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.0.tgz" - }, - "jscs-jsdoc": { - "version": "1.2.0", - "from": "jscs-jsdoc@1.2.0", - "resolved": "https://registry.npmjs.org/jscs-jsdoc/-/jscs-jsdoc-1.2.0.tgz" - }, - "jscs-preset-wikimedia": { - "version": "1.0.0", - "from": "jscs-preset-wikimedia@>=1.0.0 <1.1.0", - "resolved": "https://registry.npmjs.org/jscs-preset-wikimedia/-/jscs-preset-wikimedia-1.0.0.tgz" - }, - "jsdoctypeparser": { - "version": "1.2.0", - "from": "jsdoctypeparser@>=1.2.0 <1.3.0", - "resolved": "https://registry.npmjs.org/jsdoctypeparser/-/jsdoctypeparser-1.2.0.tgz" - }, - "jsesc": { - "version": "0.5.0", - "from": "jsesc@>=0.5.0 <0.6.0", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz" - }, - "json-schema": { - "version": "0.2.2", - "from": "json-schema@0.2.2", - "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.2.tgz" - }, - "json-stable-stringify": { - "version": "1.0.0", - "from": "json-stable-stringify@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-1.0.0.tgz" - }, - "json-stringify-safe": { - "version": "5.0.1", - "from": "json-stringify-safe@>=5.0.1 <5.1.0", - "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz" - }, - "json3": { - "version": "3.3.2", - "from": "json3@>=3.3.2 <4.0.0", - "resolved": "https://registry.npmjs.org/json3/-/json3-3.3.2.tgz" - }, - "json5": { - "version": "0.4.0", - "from": "json5@>=0.4.0 <0.5.0", - "resolved": "https://registry.npmjs.org/json5/-/json5-0.4.0.tgz" - }, - "jsonify": { - "version": "0.0.0", - "from": "jsonify@>=0.0.0 <0.1.0", - "resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz" - }, - "jsonlint": { - "version": "1.6.2", - "from": "jsonlint@>=1.6.2 <1.7.0", - "resolved": "https://registry.npmjs.org/jsonlint/-/jsonlint-1.6.2.tgz" - }, - "jsonpointer": { - "version": "2.0.0", - "from": "jsonpointer@2.0.0", - "resolved": "https://registry.npmjs.org/jsonpointer/-/jsonpointer-2.0.0.tgz" - }, - "jsprim": { - "version": "1.2.2", - "from": "jsprim@>=1.2.2 <2.0.0", - "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.2.2.tgz" - }, - "jstransform": { - "version": "10.1.0", - "from": "jstransform@>=10.0.1 <11.0.0", - "resolved": "https://registry.npmjs.org/jstransform/-/jstransform-10.1.0.tgz", - "dependencies": { - "esprima-fb": { - "version": "13001.1001.0-dev-harmony-fb", - "from": "esprima-fb@13001.1001.0-dev-harmony-fb", - "resolved": "https://registry.npmjs.org/esprima-fb/-/esprima-fb-13001.1001.0-dev-harmony-fb.tgz" - }, - "source-map": { - "version": "0.1.31", - "from": "source-map@0.1.31", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.1.31.tgz" - } - } - }, - "jstransformer": { - "version": "0.0.2", - "from": "jstransformer@0.0.2", - "resolved": "https://registry.npmjs.org/jstransformer/-/jstransformer-0.0.2.tgz", - "dependencies": { - "asap": { - "version": "1.0.0", - "from": "asap@>=1.0.0 <1.1.0", - "resolved": "https://registry.npmjs.org/asap/-/asap-1.0.0.tgz" - }, - "promise": { - "version": "6.1.0", - "from": "promise@>=6.0.1 <7.0.0", - "resolved": "https://registry.npmjs.org/promise/-/promise-6.1.0.tgz" - } - } - }, - "JSV": { - "version": "4.0.2", - "from": "JSV@>=4.0.0", - "resolved": "https://registry.npmjs.org/JSV/-/JSV-4.0.2.tgz" - }, - "keycode": { - "version": "2.1.0", - "from": "keycode@>=2.1.0 <3.0.0", - "resolved": "https://registry.npmjs.org/keycode/-/keycode-2.1.0.tgz" - }, - "kind-of": { - "version": "2.0.1", - "from": "kind-of@>=2.0.0 <3.0.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-2.0.1.tgz" - }, - "lazy-cache": { - "version": "0.2.4", - "from": "lazy-cache@>=0.2.4 <0.3.0", - "resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-0.2.4.tgz" - }, - "lcid": { - "version": "1.0.0", - "from": "lcid@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz" - }, - "left-pad": { - "version": "0.0.3", - "from": "left-pad@0.0.3", - "resolved": "https://registry.npmjs.org/left-pad/-/left-pad-0.0.3.tgz" - }, - "leven": { - "version": "1.0.2", - "from": "leven@>=1.0.2 <2.0.0", - "resolved": "https://registry.npmjs.org/leven/-/leven-1.0.2.tgz" - }, - "levn": { - "version": "0.2.5", - "from": "levn@>=0.2.5 <0.3.0", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.2.5.tgz" - }, - "line-numbers": { - "version": "0.2.0", - "from": "line-numbers@0.2.0", - "resolved": "https://registry.npmjs.org/line-numbers/-/line-numbers-0.2.0.tgz" - }, - "load-json-file": { - "version": "1.1.0", - "from": "load-json-file@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz" - }, - "loader-utils": { - "version": "0.2.12", - "from": "loader-utils@>=0.2.11 <0.3.0", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-0.2.12.tgz" - }, - "lodash": { - "version": "3.10.1", - "from": "lodash@>=3.10.1 <4.0.0", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-3.10.1.tgz" - }, - "lodash-compat": { - "version": "3.10.1", - "from": "lodash-compat@>=3.10.1 <4.0.0", - "resolved": "https://registry.npmjs.org/lodash-compat/-/lodash-compat-3.10.1.tgz" - }, - "lodash._arraycopy": { - "version": "3.0.0", - "from": "lodash._arraycopy@>=3.0.0 <4.0.0", - "resolved": "https://registry.npmjs.org/lodash._arraycopy/-/lodash._arraycopy-3.0.0.tgz" - }, - "lodash._arrayeach": { - "version": "3.0.0", - "from": "lodash._arrayeach@>=3.0.0 <4.0.0", - "resolved": "https://registry.npmjs.org/lodash._arrayeach/-/lodash._arrayeach-3.0.0.tgz" - }, - "lodash._arraymap": { - "version": "3.0.0", - "from": "lodash._arraymap@>=3.0.0 <4.0.0", - "resolved": "https://registry.npmjs.org/lodash._arraymap/-/lodash._arraymap-3.0.0.tgz" - }, - "lodash._baseassign": { - "version": "3.2.0", - "from": "lodash._baseassign@>=3.0.0 <4.0.0", - "resolved": "https://registry.npmjs.org/lodash._baseassign/-/lodash._baseassign-3.2.0.tgz" - }, - "lodash._baseclone": { - "version": "3.3.0", - "from": "lodash._baseclone@>=3.0.0 <4.0.0", - "resolved": "https://registry.npmjs.org/lodash._baseclone/-/lodash._baseclone-3.3.0.tgz" - }, - "lodash._basecopy": { - "version": "3.0.1", - "from": "lodash._basecopy@>=3.0.0 <4.0.0", - "resolved": "https://registry.npmjs.org/lodash._basecopy/-/lodash._basecopy-3.0.1.tgz" - }, - "lodash._basedifference": { - "version": "3.0.3", - "from": "lodash._basedifference@>=3.0.0 <4.0.0", - "resolved": "https://registry.npmjs.org/lodash._basedifference/-/lodash._basedifference-3.0.3.tgz" - }, - "lodash._baseflatten": { - "version": "3.1.4", - "from": "lodash._baseflatten@>=3.0.0 <4.0.0", - "resolved": "https://registry.npmjs.org/lodash._baseflatten/-/lodash._baseflatten-3.1.4.tgz" - }, - "lodash._basefor": { - "version": "3.0.2", - "from": "lodash._basefor@>=3.0.0 <4.0.0", - "resolved": "https://registry.npmjs.org/lodash._basefor/-/lodash._basefor-3.0.2.tgz" - }, - "lodash._baseindexof": { - "version": "3.1.0", - "from": "lodash._baseindexof@>=3.0.0 <4.0.0", - "resolved": "https://registry.npmjs.org/lodash._baseindexof/-/lodash._baseindexof-3.1.0.tgz" - }, - "lodash._basetostring": { - "version": "3.0.1", - "from": "lodash._basetostring@>=3.0.0 <4.0.0", - "resolved": "https://registry.npmjs.org/lodash._basetostring/-/lodash._basetostring-3.0.1.tgz" - }, - "lodash._bindcallback": { - "version": "3.0.1", - "from": "lodash._bindcallback@>=3.0.0 <4.0.0", - "resolved": "https://registry.npmjs.org/lodash._bindcallback/-/lodash._bindcallback-3.0.1.tgz" - }, - "lodash._cacheindexof": { - "version": "3.0.2", - "from": "lodash._cacheindexof@>=3.0.0 <4.0.0", - "resolved": "https://registry.npmjs.org/lodash._cacheindexof/-/lodash._cacheindexof-3.0.2.tgz" - }, - "lodash._createassigner": { - "version": "3.1.1", - "from": "lodash._createassigner@>=3.0.0 <4.0.0", - "resolved": "https://registry.npmjs.org/lodash._createassigner/-/lodash._createassigner-3.1.1.tgz" - }, - "lodash._createcache": { - "version": "3.1.2", - "from": "lodash._createcache@>=3.0.0 <4.0.0", - "resolved": "https://registry.npmjs.org/lodash._createcache/-/lodash._createcache-3.1.2.tgz" - }, - "lodash._createcompounder": { - "version": "3.0.0", - "from": "lodash._createcompounder@>=3.0.0 <4.0.0", - "resolved": "https://registry.npmjs.org/lodash._createcompounder/-/lodash._createcompounder-3.0.0.tgz" - }, - "lodash._createpadding": { - "version": "3.6.1", - "from": "lodash._createpadding@>=3.0.0 <4.0.0", - "resolved": "https://registry.npmjs.org/lodash._createpadding/-/lodash._createpadding-3.6.1.tgz" - }, - "lodash._getnative": { - "version": "3.9.1", - "from": "lodash._getnative@>=3.0.0 <4.0.0", - "resolved": "https://registry.npmjs.org/lodash._getnative/-/lodash._getnative-3.9.1.tgz" - }, - "lodash._isiterateecall": { - "version": "3.0.9", - "from": "lodash._isiterateecall@>=3.0.0 <4.0.0", - "resolved": "https://registry.npmjs.org/lodash._isiterateecall/-/lodash._isiterateecall-3.0.9.tgz" - }, - "lodash._pickbyarray": { - "version": "3.0.2", - "from": "lodash._pickbyarray@>=3.0.0 <4.0.0", - "resolved": "https://registry.npmjs.org/lodash._pickbyarray/-/lodash._pickbyarray-3.0.2.tgz" - }, - "lodash._pickbycallback": { - "version": "3.0.0", - "from": "lodash._pickbycallback@>=3.0.0 <4.0.0", - "resolved": "https://registry.npmjs.org/lodash._pickbycallback/-/lodash._pickbycallback-3.0.0.tgz" - }, - "lodash.assign": { - "version": "3.2.0", - "from": "lodash.assign@>=3.2.0 <4.0.0", - "resolved": "https://registry.npmjs.org/lodash.assign/-/lodash.assign-3.2.0.tgz" - }, - "lodash.camelcase": { - "version": "3.0.1", - "from": "lodash.camelcase@>=3.0.1 <4.0.0", - "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-3.0.1.tgz" - }, - "lodash.clonedeep": { - "version": "3.0.2", - "from": "lodash.clonedeep@>=3.0.1 <4.0.0", - "resolved": "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-3.0.2.tgz" - }, - "lodash.deburr": { - "version": "3.0.2", - "from": "lodash.deburr@>=3.0.0 <4.0.0", - "resolved": "https://registry.npmjs.org/lodash.deburr/-/lodash.deburr-3.0.2.tgz" - }, - "lodash.isarguments": { - "version": "3.0.4", - "from": "lodash.isarguments@>=3.0.0 <4.0.0", - "resolved": "https://registry.npmjs.org/lodash.isarguments/-/lodash.isarguments-3.0.4.tgz" - }, - "lodash.isarray": { - "version": "3.0.4", - "from": "lodash.isarray@>=3.0.0 <4.0.0", - "resolved": "https://registry.npmjs.org/lodash.isarray/-/lodash.isarray-3.0.4.tgz" - }, - "lodash.isplainobject": { - "version": "3.2.0", - "from": "lodash.isplainobject@>=3.2.0 <4.0.0", - "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-3.2.0.tgz" - }, - "lodash.istypedarray": { - "version": "3.0.2", - "from": "lodash.istypedarray@>=3.0.0 <4.0.0", - "resolved": "https://registry.npmjs.org/lodash.istypedarray/-/lodash.istypedarray-3.0.2.tgz" - }, - "lodash.keys": { - "version": "3.1.2", - "from": "lodash.keys@>=3.0.0 <4.0.0", - "resolved": "https://registry.npmjs.org/lodash.keys/-/lodash.keys-3.1.2.tgz" - }, - "lodash.keysin": { - "version": "3.0.8", - "from": "lodash.keysin@>=3.0.0 <4.0.0", - "resolved": "https://registry.npmjs.org/lodash.keysin/-/lodash.keysin-3.0.8.tgz" - }, - "lodash.merge": { - "version": "3.3.2", - "from": "lodash.merge@>=3.3.2 <4.0.0", - "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-3.3.2.tgz" - }, - "lodash.omit": { - "version": "3.1.0", - "from": "lodash.omit@>=3.1.0 <4.0.0", - "resolved": "https://registry.npmjs.org/lodash.omit/-/lodash.omit-3.1.0.tgz" - }, - "lodash.pad": { - "version": "3.1.1", - "from": "lodash.pad@>=3.0.0 <4.0.0", - "resolved": "https://registry.npmjs.org/lodash.pad/-/lodash.pad-3.1.1.tgz" - }, - "lodash.padleft": { - "version": "3.1.1", - "from": "lodash.padleft@>=3.0.0 <4.0.0", - "resolved": "https://registry.npmjs.org/lodash.padleft/-/lodash.padleft-3.1.1.tgz" - }, - "lodash.padright": { - "version": "3.1.1", - "from": "lodash.padright@>=3.0.0 <4.0.0", - "resolved": "https://registry.npmjs.org/lodash.padright/-/lodash.padright-3.1.1.tgz" - }, - "lodash.pick": { - "version": "3.1.0", - "from": "lodash.pick@>=3.1.0 <4.0.0", - "resolved": "https://registry.npmjs.org/lodash.pick/-/lodash.pick-3.1.0.tgz" - }, - "lodash.repeat": { - "version": "3.0.1", - "from": "lodash.repeat@>=3.0.0 <4.0.0", - "resolved": "https://registry.npmjs.org/lodash.repeat/-/lodash.repeat-3.0.1.tgz" - }, - "lodash.restparam": { - "version": "3.6.1", - "from": "lodash.restparam@>=3.0.0 <4.0.0", - "resolved": "https://registry.npmjs.org/lodash.restparam/-/lodash.restparam-3.6.1.tgz" - }, - "lodash.toplainobject": { - "version": "3.0.0", - "from": "lodash.toplainobject@>=3.0.0 <4.0.0", - "resolved": "https://registry.npmjs.org/lodash.toplainobject/-/lodash.toplainobject-3.0.0.tgz" - }, - "lodash.words": { - "version": "3.0.2", - "from": "lodash.words@>=3.0.0 <4.0.0", - "resolved": "https://registry.npmjs.org/lodash.words/-/lodash.words-3.0.2.tgz" - }, - "longest": { - "version": "1.0.1", - "from": "longest@>=1.0.1 <2.0.0", - "resolved": "https://registry.npmjs.org/longest/-/longest-1.0.1.tgz" - }, - "loose-envify": { - "version": "1.1.0", - "from": "loose-envify@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.1.0.tgz" - }, - "loud-rejection": { - "version": "1.2.0", - "from": "loud-rejection@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/loud-rejection/-/loud-rejection-1.2.0.tgz" - }, - "lru-cache": { - "version": "2.7.3", - "from": "lru-cache@>=2.0.0 <3.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-2.7.3.tgz" - }, - "map-obj": { - "version": "1.0.1", - "from": "map-obj@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz" - }, - "marked": { - "version": "0.3.5", - "from": "marked@>=0.3.5 <0.4.0", - "resolved": "https://registry.npmjs.org/marked/-/marked-0.3.5.tgz" - }, - "media-typer": { - "version": "0.3.0", - "from": "media-typer@0.3.0", - "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz" - }, - "memory-fs": { - "version": "0.3.0", - "from": "memory-fs@>=0.3.0 <0.4.0", - "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.3.0.tgz" - }, - "meow": { - "version": "3.6.0", - "from": "meow@>=3.3.0 <4.0.0", - "resolved": "https://registry.npmjs.org/meow/-/meow-3.6.0.tgz", - "dependencies": { - "object-assign": { - "version": "4.0.1", - "from": "object-assign@>=4.0.1 <5.0.0", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.0.1.tgz" - } - } - }, - "merge-descriptors": { - "version": "1.0.0", - "from": "merge-descriptors@1.0.0", - "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.0.tgz" - }, - "methods": { - "version": "1.1.1", - "from": "methods@>=1.1.1 <1.2.0", - "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.1.tgz" - }, - "micromatch": { - "version": "2.3.3", - "from": "micromatch@>=2.1.5 <3.0.0", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-2.3.3.tgz" - }, - "mime": { - "version": "1.3.4", - "from": "mime@1.3.4", - "resolved": "https://registry.npmjs.org/mime/-/mime-1.3.4.tgz" - }, - "mime-db": { - "version": "1.20.0", - "from": "mime-db@>=1.20.0 <1.21.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.20.0.tgz" - }, - "mime-types": { - "version": "2.1.8", - "from": "mime-types@>=2.1.8 <2.2.0", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.8.tgz" - }, - "min-document": { - "version": "2.17.0", - "from": "min-document@>=2.6.1 <3.0.0", - "resolved": "https://registry.npmjs.org/min-document/-/min-document-2.17.0.tgz" - }, - "minimatch": { - "version": "2.0.10", - "from": "minimatch@>=2.0.3 <3.0.0", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-2.0.10.tgz" - }, - "minimist": { - "version": "1.2.0", - "from": "minimist@>=1.1.0 <2.0.0", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz" - }, - "mkdirp": { - "version": "0.5.1", - "from": "mkdirp@>=0.5.1 <0.6.0", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", - "dependencies": { - "minimist": { - "version": "0.0.8", - "from": "minimist@0.0.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz" - } - } - }, - "ms": { - "version": "0.7.1", - "from": "ms@0.7.1", - "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.1.tgz" - }, - "mute-stream": { - "version": "0.0.5", - "from": "mute-stream@0.0.5", - "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.5.tgz" - }, - "nan": { - "version": "2.1.0", - "from": "nan@>=2.0.0", - "resolved": "https://registry.npmjs.org/nan/-/nan-2.1.0.tgz" - }, - "natural-compare": { - "version": "1.2.2", - "from": "natural-compare@>=1.2.2 <1.3.0", - "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.2.2.tgz" - }, - "ncp": { - "version": "0.4.2", - "from": "ncp@>=0.4.0 <0.5.0", - "resolved": "https://registry.npmjs.org/ncp/-/ncp-0.4.2.tgz" - }, - "negotiator": { - "version": "0.5.3", - "from": "negotiator@0.5.3", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.5.3.tgz" - }, - "node-gyp": { - "version": "3.2.0", - "from": "node-gyp@>=3.0.1 <4.0.0", - "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-3.2.0.tgz", - "dependencies": { - "glob": { - "version": "4.5.3", - "from": "glob@>=3.0.0 <4.0.0||>=4.0.0 <5.0.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-4.5.3.tgz", - "dependencies": { - "minimatch": { - "version": "2.0.10", - "from": "minimatch@>=2.0.1 <3.0.0" - } - } - }, - "minimatch": { - "version": "1.0.0", - "from": "minimatch@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-1.0.0.tgz" - } - } - }, - "node-libs-browser": { - "version": "0.5.3", - "from": "node-libs-browser@>=0.4.0 <=0.6.0", - "resolved": "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-0.5.3.tgz", - "dependencies": { - "readable-stream": { - "version": "1.1.13", - "from": "readable-stream@>=1.1.13 <2.0.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.13.tgz" - } - } - }, - "node-uuid": { - "version": "1.4.7", - "from": "node-uuid@>=1.4.2 <2.0.0", - "resolved": "https://registry.npmjs.org/node-uuid/-/node-uuid-1.4.7.tgz" - }, - "nomnom": { - "version": "1.8.1", - "from": "nomnom@>=1.5.0", - "resolved": "https://registry.npmjs.org/nomnom/-/nomnom-1.8.1.tgz", - "dependencies": { - "ansi-styles": { - "version": "1.0.0", - "from": "ansi-styles@>=1.0.0 <1.1.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-1.0.0.tgz" - }, - "chalk": { - "version": "0.4.0", - "from": "chalk@>=0.4.0 <0.5.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-0.4.0.tgz" - }, - "strip-ansi": { - "version": "0.1.1", - "from": "strip-ansi@>=0.1.0 <0.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-0.1.1.tgz" - } - } - }, - "nopt": { - "version": "3.0.6", - "from": "nopt@>=2.0.0 <3.0.0||>=3.0.0 <4.0.0", - "resolved": "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz" - }, - "normalize-package-data": { - "version": "2.3.5", - "from": "normalize-package-data@>=2.3.4 <3.0.0", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.3.5.tgz" - }, - "normalize-path": { - "version": "2.0.1", - "from": "normalize-path@>=2.0.0 <3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.0.1.tgz" - }, - "normalize-url": { - "version": "1.4.0", - "from": "normalize-url@>=1.3.1 <2.0.0", - "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-1.4.0.tgz", - "dependencies": { - "object-assign": { - "version": "4.0.1", - "from": "object-assign@>=4.0.1 <5.0.0", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.0.1.tgz" - } - } - }, - "npmconf": { - "version": "2.1.2", - "from": "npmconf@>=2.1.2 <3.0.0", - "resolved": "https://registry.npmjs.org/npmconf/-/npmconf-2.1.2.tgz", - "dependencies": { - "semver": { - "version": "4.3.6", - "from": "semver@>=2.0.0 <3.0.0||>=3.0.0 <4.0.0||>=4.0.0 <5.0.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-4.3.6.tgz" - } - } - }, - "npmlog": { - "version": "1.2.1", - "from": "npmlog@>=0.0.0 <1.0.0||>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-1.2.1.tgz" - }, - "num2fraction": { - "version": "1.2.2", - "from": "num2fraction@>=1.2.2 <2.0.0", - "resolved": "https://registry.npmjs.org/num2fraction/-/num2fraction-1.2.2.tgz" - }, - "number-is-nan": { - "version": "1.0.0", - "from": "number-is-nan@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.0.tgz" - }, - "nwmatcher": { - "version": "1.3.7", - "from": "nwmatcher@>=1.3.7 <2.0.0", - "resolved": "https://registry.npmjs.org/nwmatcher/-/nwmatcher-1.3.7.tgz" - }, - "oauth-sign": { - "version": "0.8.0", - "from": "oauth-sign@>=0.8.0 <0.9.0", - "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.8.0.tgz" - }, - "object-assign": { - "version": "3.0.0", - "from": "object-assign@>=3.0.0 <4.0.0", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-3.0.0.tgz" - }, - "object.omit": { - "version": "2.0.0", - "from": "object.omit@>=2.0.0 <3.0.0", - "resolved": "https://registry.npmjs.org/object.omit/-/object.omit-2.0.0.tgz" - }, - "on-finished": { - "version": "2.3.0", - "from": "on-finished@>=2.3.0 <2.4.0", - "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz" - }, - "on-headers": { - "version": "1.0.1", - "from": "on-headers@>=1.0.1 <1.1.0", - "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.1.tgz" - }, - "once": { - "version": "1.3.3", - "from": "once@>=1.3.0 <2.0.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.3.3.tgz" - }, - "onetime": { - "version": "1.0.0", - "from": "onetime@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-1.0.0.tgz" - }, - "optimist": { - "version": "0.6.1", - "from": "optimist@>=0.6.0 <0.7.0", - "resolved": "https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz", - "dependencies": { - "minimist": { - "version": "0.0.10", - "from": "minimist@>=0.0.1 <0.1.0", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.10.tgz" - } - } - }, - "optionator": { - "version": "0.6.0", - "from": "optionator@>=0.6.0 <0.7.0", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.6.0.tgz" - }, - "original": { - "version": "1.0.0", - "from": "original@>=0.0.5", - "resolved": "https://registry.npmjs.org/original/-/original-1.0.0.tgz" - }, - "os-browserify": { - "version": "0.1.2", - "from": "os-browserify@>=0.1.2 <0.2.0", - "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.1.2.tgz" - }, - "os-homedir": { - "version": "1.0.1", - "from": "os-homedir@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.1.tgz" - }, - "os-locale": { - "version": "1.4.0", - "from": "os-locale@>=1.4.0 <2.0.0", - "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-1.4.0.tgz" - }, - "os-shim": { - "version": "0.1.3", - "from": "os-shim@>=0.1.2 <0.2.0", - "resolved": "https://registry.npmjs.org/os-shim/-/os-shim-0.1.3.tgz" - }, - "os-tmpdir": { - "version": "1.0.1", - "from": "os-tmpdir@>=1.0.1 <2.0.0", - "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.1.tgz" - }, - "osenv": { - "version": "0.1.3", - "from": "osenv@>=0.0.0 <1.0.0", - "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.3.tgz" - }, - "output-file-sync": { - "version": "1.1.1", - "from": "output-file-sync@>=1.1.0 <2.0.0", - "resolved": "https://registry.npmjs.org/output-file-sync/-/output-file-sync-1.1.1.tgz" - }, - "pako": { - "version": "0.2.8", - "from": "pako@>=0.2.0 <0.3.0", - "resolved": "https://registry.npmjs.org/pako/-/pako-0.2.8.tgz" - }, - "parse-glob": { - "version": "3.0.4", - "from": "parse-glob@>=3.0.4 <4.0.0", - "resolved": "https://registry.npmjs.org/parse-glob/-/parse-glob-3.0.4.tgz" - }, - "parse-json": { - "version": "2.2.0", - "from": "parse-json@>=2.2.0 <3.0.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz" - }, - "parse5": { - "version": "1.5.1", - "from": "parse5@>=1.4.2 <2.0.0", - "resolved": "https://registry.npmjs.org/parse5/-/parse5-1.5.1.tgz" - }, - "parseurl": { - "version": "1.3.0", - "from": "parseurl@>=1.3.0 <1.4.0", - "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.0.tgz" - }, - "path-array": { - "version": "1.0.0", - "from": "path-array@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/path-array/-/path-array-1.0.0.tgz" - }, - "path-browserify": { - "version": "0.0.0", - "from": "path-browserify@0.0.0", - "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.0.tgz" - }, - "path-exists": { - "version": "1.0.0", - "from": "path-exists@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-1.0.0.tgz" - }, - "path-is-absolute": { - "version": "1.0.0", - "from": "path-is-absolute@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.0.tgz" - }, - "path-is-inside": { - "version": "1.0.1", - "from": "path-is-inside@>=1.0.1 <2.0.0", - "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.1.tgz" - }, - "path-parse": { - "version": "1.0.5", - "from": "path-parse@>=1.0.5 <2.0.0", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.5.tgz" - }, - "path-to-regexp": { - "version": "0.1.7", - "from": "path-to-regexp@0.1.7", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz" - }, - "path-type": { - "version": "1.1.0", - "from": "path-type@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz" - }, - "pathval": { - "version": "0.1.1", - "from": "pathval@>=0.1.1 <0.2.0", - "resolved": "https://registry.npmjs.org/pathval/-/pathval-0.1.1.tgz" - }, - "pbkdf2-compat": { - "version": "2.0.1", - "from": "pbkdf2-compat@2.0.1", - "resolved": "https://registry.npmjs.org/pbkdf2-compat/-/pbkdf2-compat-2.0.1.tgz" - }, - "pify": { - "version": "2.3.0", - "from": "pify@>=2.0.0 <3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz" - }, - "pinkie": { - "version": "1.0.0", - "from": "pinkie@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-1.0.0.tgz" - }, - "pinkie-promise": { - "version": "2.0.0", - "from": "pinkie-promise@>=2.0.0 <3.0.0", - "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.0.tgz", - "dependencies": { - "pinkie": { - "version": "2.0.1", - "from": "pinkie@>=2.0.0 <3.0.0", - "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.1.tgz" - } - } - }, - "pkginfo": { - "version": "0.3.1", - "from": "pkginfo@>=0.0.0 <1.0.0", - "resolved": "https://registry.npmjs.org/pkginfo/-/pkginfo-0.3.1.tgz" - }, - "postcss": { - "version": "5.0.12", - "from": "postcss@>=5.0.6 <6.0.0", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.0.12.tgz", - "dependencies": { - "supports-color": { - "version": "3.1.2", - "from": "supports-color@>=3.1.2 <4.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.1.2.tgz" - } - } - }, - "postcss-calc": { - "version": "5.0.0", - "from": "postcss-calc@>=5.0.0 <6.0.0", - "resolved": "https://registry.npmjs.org/postcss-calc/-/postcss-calc-5.0.0.tgz" - }, - "postcss-colormin": { - "version": "2.1.7", - "from": "postcss-colormin@>=2.1.7 <3.0.0", - "resolved": "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-2.1.7.tgz" - }, - "postcss-convert-values": { - "version": "2.3.4", - "from": "postcss-convert-values@>=2.3.4 <3.0.0", - "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-2.3.4.tgz" - }, - "postcss-discard-comments": { - "version": "2.0.2", - "from": "postcss-discard-comments@>=2.0.2 <3.0.0", - "resolved": "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-2.0.2.tgz" - }, - "postcss-discard-duplicates": { - "version": "2.0.0", - "from": "postcss-discard-duplicates@>=2.0.0 <3.0.0", - "resolved": "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-2.0.0.tgz" - }, - "postcss-discard-empty": { - "version": "2.0.0", - "from": "postcss-discard-empty@>=2.0.0 <3.0.0", - "resolved": "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-2.0.0.tgz" - }, - "postcss-discard-unused": { - "version": "2.1.0", - "from": "postcss-discard-unused@>=2.1.0 <3.0.0", - "resolved": "https://registry.npmjs.org/postcss-discard-unused/-/postcss-discard-unused-2.1.0.tgz" - }, - "postcss-filter-plugins": { - "version": "2.0.0", - "from": "postcss-filter-plugins@>=2.0.0 <3.0.0", - "resolved": "https://registry.npmjs.org/postcss-filter-plugins/-/postcss-filter-plugins-2.0.0.tgz" - }, - "postcss-merge-idents": { - "version": "2.1.3", - "from": "postcss-merge-idents@>=2.1.3 <3.0.0", - "resolved": "https://registry.npmjs.org/postcss-merge-idents/-/postcss-merge-idents-2.1.3.tgz" - }, - "postcss-merge-longhand": { - "version": "2.0.1", - "from": "postcss-merge-longhand@>=2.0.1 <3.0.0", - "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-2.0.1.tgz" - }, - "postcss-merge-rules": { - "version": "2.0.2", - "from": "postcss-merge-rules@>=2.0.1 <3.0.0", - "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-2.0.2.tgz" - }, - "postcss-message-helpers": { - "version": "2.0.0", - "from": "postcss-message-helpers@>=2.0.0 <3.0.0", - "resolved": "https://registry.npmjs.org/postcss-message-helpers/-/postcss-message-helpers-2.0.0.tgz" - }, - "postcss-minify-font-values": { - "version": "1.0.2", - "from": "postcss-minify-font-values@>=1.0.2 <2.0.0", - "resolved": "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-1.0.2.tgz", - "dependencies": { - "object-assign": { - "version": "4.0.1", - "from": "object-assign@>=4.0.1 <5.0.0", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.0.1.tgz" - } - } - }, - "postcss-minify-params": { - "version": "1.0.4", - "from": "postcss-minify-params@>=1.0.4 <2.0.0", - "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-1.0.4.tgz" - }, - "postcss-minify-selectors": { - "version": "2.0.1", - "from": "postcss-minify-selectors@>=2.0.1 <3.0.0", - "resolved": "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-2.0.1.tgz" - }, - "postcss-modules-extract-imports": { - "version": "1.0.0", - "from": "postcss-modules-extract-imports@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-1.0.0.tgz" - }, - "postcss-modules-local-by-default": { - "version": "1.0.0", - "from": "postcss-modules-local-by-default@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-1.0.0.tgz" - }, - "postcss-modules-scope": { - "version": "1.0.0", - "from": "postcss-modules-scope@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-1.0.0.tgz" - }, - "postcss-modules-values": { - "version": "1.1.1", - "from": "postcss-modules-values@>=1.1.0 <2.0.0", - "resolved": "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-1.1.1.tgz" - }, - "postcss-normalize-charset": { - "version": "1.1.0", - "from": "postcss-normalize-charset@>=1.1.0 <2.0.0", - "resolved": "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-1.1.0.tgz" - }, - "postcss-normalize-url": { - "version": "3.0.4", - "from": "postcss-normalize-url@>=3.0.4 <4.0.0", - "resolved": "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-3.0.4.tgz", - "dependencies": { - "object-assign": { - "version": "4.0.1", - "from": "object-assign@>=4.0.1 <5.0.0", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.0.1.tgz" - } - } - }, - "postcss-ordered-values": { - "version": "2.0.2", - "from": "postcss-ordered-values@>=2.0.2 <3.0.0", - "resolved": "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-2.0.2.tgz" - }, - "postcss-reduce-idents": { - "version": "2.2.1", - "from": "postcss-reduce-idents@>=2.2.1 <3.0.0", - "resolved": "https://registry.npmjs.org/postcss-reduce-idents/-/postcss-reduce-idents-2.2.1.tgz" - }, - "postcss-reduce-transforms": { - "version": "1.0.3", - "from": "postcss-reduce-transforms@>=1.0.3 <2.0.0", - "resolved": "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-1.0.3.tgz" - }, - "postcss-selector-parser": { - "version": "1.3.0", - "from": "postcss-selector-parser@>=1.1.4 <2.0.0", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-1.3.0.tgz" - }, - "postcss-svgo": { - "version": "2.1.0", - "from": "postcss-svgo@>=2.0.4 <3.0.0", - "resolved": "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-2.1.0.tgz" - }, - "postcss-unique-selectors": { - "version": "2.0.1", - "from": "postcss-unique-selectors@>=2.0.1 <3.0.0", - "resolved": "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-2.0.1.tgz" - }, - "postcss-value-parser": { - "version": "3.1.3", - "from": "postcss-value-parser@>=3.1.1 <4.0.0", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.1.3.tgz" - }, - "postcss-zindex": { - "version": "2.0.0", - "from": "postcss-zindex@>=2.0.0 <3.0.0", - "resolved": "https://registry.npmjs.org/postcss-zindex/-/postcss-zindex-2.0.0.tgz" - }, - "prelude-ls": { - "version": "1.1.2", - "from": "prelude-ls@>=1.1.1 <1.2.0", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz" - }, - "prepend-http": { - "version": "1.0.3", - "from": "prepend-http@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-1.0.3.tgz" - }, - "preserve": { - "version": "0.2.0", - "from": "preserve@>=0.2.0 <0.3.0", - "resolved": "https://registry.npmjs.org/preserve/-/preserve-0.2.0.tgz" - }, - "private": { - "version": "0.1.6", - "from": "private@>=0.1.6 <0.2.0", - "resolved": "https://registry.npmjs.org/private/-/private-0.1.6.tgz" - }, - "process": { - "version": "0.11.2", - "from": "process@>=0.11.0 <0.12.0", - "resolved": "https://registry.npmjs.org/process/-/process-0.11.2.tgz" - }, - "process-nextick-args": { - "version": "1.0.5", - "from": "process-nextick-args@>=1.0.0 <1.1.0", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.5.tgz" - }, - "promise": { - "version": "7.0.4", - "from": "promise@>=7.0.3 <8.0.0", - "resolved": "https://registry.npmjs.org/promise/-/promise-7.0.4.tgz" - }, - "prompt": { - "version": "0.2.14", - "from": "prompt@>=0.2.14 <0.3.0", - "resolved": "https://registry.npmjs.org/prompt/-/prompt-0.2.14.tgz" - }, - "proto-list": { - "version": "1.2.4", - "from": "proto-list@>=1.2.1 <1.3.0", - "resolved": "https://registry.npmjs.org/proto-list/-/proto-list-1.2.4.tgz" - }, - "proxy-addr": { - "version": "1.0.9", - "from": "proxy-addr@>=1.0.8 <1.1.0", - "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-1.0.9.tgz" - }, - "prr": { - "version": "0.0.0", - "from": "prr@>=0.0.0 <0.1.0", - "resolved": "https://registry.npmjs.org/prr/-/prr-0.0.0.tgz" - }, - "pseudomap": { - "version": "1.0.1", - "from": "pseudomap@>=1.0.1 <2.0.0", - "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.1.tgz" - }, - "punycode": { - "version": "1.3.2", - "from": "punycode@>=1.2.4 <2.0.0", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz" - }, - "q": { - "version": "1.4.1", - "from": "q@>=1.1.2 <2.0.0", - "resolved": "https://registry.npmjs.org/q/-/q-1.4.1.tgz" - }, - "qs": { - "version": "5.1.0", - "from": "qs@5.1.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-5.1.0.tgz" - }, - "query-string": { - "version": "3.0.0", - "from": "query-string@>=3.0.0 <4.0.0", - "resolved": "https://registry.npmjs.org/query-string/-/query-string-3.0.0.tgz" - }, - "querystring": { - "version": "0.2.0", - "from": "querystring@0.2.0", - "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz" - }, - "querystring-es3": { - "version": "0.2.1", - "from": "querystring-es3@>=0.2.0 <0.3.0", - "resolved": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz" - }, - "querystringify": { - "version": "0.0.3", - "from": "querystringify@>=0.0.0 <0.1.0", - "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-0.0.3.tgz" - }, - "randomatic": { - "version": "1.1.3", - "from": "randomatic@>=1.1.0 <2.0.0", - "resolved": "https://registry.npmjs.org/randomatic/-/randomatic-1.1.3.tgz", - "dependencies": { - "is-number": { - "version": "2.1.0", - "from": "is-number@>=2.0.2 <3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-2.1.0.tgz", - "dependencies": { - "kind-of": { - "version": "3.0.2", - "from": "kind-of@>=3.0.2 <4.0.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.0.2.tgz" - } - } - } - } - }, - "range-parser": { - "version": "1.0.3", - "from": "range-parser@>=1.0.2 <1.1.0", - "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.0.3.tgz" - }, - "raw-body": { - "version": "2.1.5", - "from": "raw-body@>=2.1.4 <2.2.0", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.1.5.tgz", - "dependencies": { - "bytes": { - "version": "2.2.0", - "from": "bytes@2.2.0", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-2.2.0.tgz" - } - } - }, - "react": { - "version": "0.14.3", - "from": "react@>=0.14.3 <0.15.0", - "resolved": "https://registry.npmjs.org/react/-/react-0.14.3.tgz" - }, - "react-bootstrap": { - "version": "0.28.1", - "from": "react-bootstrap@>=0.28.1 <0.29.0", - "resolved": "https://registry.npmjs.org/react-bootstrap/-/react-bootstrap-0.28.1.tgz" - }, - "react-deep-force-update": { - "version": "1.0.0", - "from": "react-deep-force-update@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/react-deep-force-update/-/react-deep-force-update-1.0.0.tgz" - }, - "react-dom": { - "version": "0.14.3", - "from": "react-dom@>=0.14.3 <0.15.0", - "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-0.14.3.tgz" - }, - "react-overlays": { - "version": "0.5.4", - "from": "react-overlays@>=0.5.2 <0.6.0", - "resolved": "https://registry.npmjs.org/react-overlays/-/react-overlays-0.5.4.tgz", - "dependencies": { - "react-prop-types": { - "version": "0.2.2", - "from": "react-prop-types@>=0.2.1 <0.3.0", - "resolved": "https://registry.npmjs.org/react-prop-types/-/react-prop-types-0.2.2.tgz" - } - } - }, - "react-prop-types": { - "version": "0.3.0", - "from": "react-prop-types@>=0.3.0 <0.4.0", - "resolved": "https://registry.npmjs.org/react-prop-types/-/react-prop-types-0.3.0.tgz" - }, - "react-proxy": { - "version": "1.1.1", - "from": "react-proxy@>=1.1.1 <2.0.0", - "resolved": "https://registry.npmjs.org/react-proxy/-/react-proxy-1.1.1.tgz" - }, - "react-redux": { - "version": "4.0.0", - "from": "react-redux@>=4.0.0 <5.0.0", - "resolved": "https://registry.npmjs.org/react-redux/-/react-redux-4.0.0.tgz" - }, - "react-router": { - "version": "1.0.0", - "from": "react-router@>=1.0.0-rc3 <2.0.0", - "resolved": "https://registry.npmjs.org/react-router/-/react-router-1.0.0.tgz" - }, - "read": { - "version": "1.0.7", - "from": "read@>=1.0.0 <1.1.0", - "resolved": "https://registry.npmjs.org/read/-/read-1.0.7.tgz" - }, - "read-json-sync": { - "version": "1.1.0", - "from": "read-json-sync@>=1.1.0 <2.0.0", - "resolved": "https://registry.npmjs.org/read-json-sync/-/read-json-sync-1.1.0.tgz", - "dependencies": { - "graceful-fs": { - "version": "3.0.8", - "from": "graceful-fs@>=3.0.5 <4.0.0", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-3.0.8.tgz" - } - } - }, - "read-pkg": { - "version": "1.1.0", - "from": "read-pkg@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz" - }, - "read-pkg-up": { - "version": "1.0.1", - "from": "read-pkg-up@>=1.0.1 <2.0.0", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz" - }, - "readable-stream": { - "version": "2.0.4", - "from": "readable-stream@>=2.0.1 <3.0.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.0.4.tgz" - }, - "readdirp": { - "version": "2.0.0", - "from": "readdirp@>=2.0.0 <3.0.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.0.0.tgz" - }, - "readline2": { - "version": "1.0.1", - "from": "readline2@>=1.0.1 <2.0.0", - "resolved": "https://registry.npmjs.org/readline2/-/readline2-1.0.1.tgz" - }, - "recast": { - "version": "0.10.33", - "from": "recast@0.10.33", - "resolved": "https://registry.npmjs.org/recast/-/recast-0.10.33.tgz" - }, - "redent": { - "version": "1.0.0", - "from": "redent@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/redent/-/redent-1.0.0.tgz" - }, - "reduce-css-calc": { - "version": "1.2.0", - "from": "reduce-css-calc@>=1.2.0 <2.0.0", - "resolved": "https://registry.npmjs.org/reduce-css-calc/-/reduce-css-calc-1.2.0.tgz", - "dependencies": { - "balanced-match": { - "version": "0.1.0", - "from": "balanced-match@>=0.1.0 <0.2.0", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-0.1.0.tgz" - } - } - }, - "reduce-function-call": { - "version": "1.0.1", - "from": "reduce-function-call@>=1.0.1 <2.0.0", - "resolved": "https://registry.npmjs.org/reduce-function-call/-/reduce-function-call-1.0.1.tgz", - "dependencies": { - "balanced-match": { - "version": "0.1.0", - "from": "balanced-match@>=0.1.0 <0.2.0", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-0.1.0.tgz" - } - } - }, - "redux": { - "version": "3.0.4", - "from": "redux@>=3.0.4 <4.0.0", - "resolved": "https://registry.npmjs.org/redux/-/redux-3.0.4.tgz" - }, - "redux-promise": { - "version": "0.5.0", - "from": "redux-promise@>=0.5.0 <0.6.0", - "resolved": "https://registry.npmjs.org/redux-promise/-/redux-promise-0.5.0.tgz" - }, - "redux-thunk": { - "version": "1.0.0", - "from": "redux-thunk@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/redux-thunk/-/redux-thunk-1.0.0.tgz" - }, - "regenerate": { - "version": "1.2.1", - "from": "regenerate@>=1.2.1 <2.0.0", - "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.2.1.tgz" - }, - "regenerator": { - "version": "0.8.40", - "from": "regenerator@0.8.40", - "resolved": "https://registry.npmjs.org/regenerator/-/regenerator-0.8.40.tgz" - }, - "regex-cache": { - "version": "0.4.2", - "from": "regex-cache@>=0.4.2 <0.5.0", - "resolved": "https://registry.npmjs.org/regex-cache/-/regex-cache-0.4.2.tgz" - }, - "regexpu": { - "version": "1.3.0", - "from": "regexpu@>=1.3.0 <2.0.0", - "resolved": "https://registry.npmjs.org/regexpu/-/regexpu-1.3.0.tgz", - "dependencies": { - "esprima": { - "version": "2.7.0", - "from": "esprima@>=2.6.0 <3.0.0", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-2.7.0.tgz" - } - } - }, - "regjsgen": { - "version": "0.2.0", - "from": "regjsgen@>=0.2.0 <0.3.0", - "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.2.0.tgz" - }, - "regjsparser": { - "version": "0.1.5", - "from": "regjsparser@>=0.1.4 <0.2.0", - "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.1.5.tgz" - }, - "repeat-element": { - "version": "1.1.2", - "from": "repeat-element@>=1.1.2 <2.0.0", - "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.2.tgz" - }, - "repeat-string": { - "version": "1.5.2", - "from": "repeat-string@>=1.5.2 <2.0.0", - "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.5.2.tgz" - }, - "repeating": { - "version": "1.1.3", - "from": "repeating@>=1.1.2 <2.0.0", - "resolved": "https://registry.npmjs.org/repeating/-/repeating-1.1.3.tgz" - }, - "request": { - "version": "2.67.0", - "from": "request@>=2.55.0 <3.0.0", - "resolved": "https://registry.npmjs.org/request/-/request-2.67.0.tgz", - "dependencies": { - "qs": { - "version": "5.2.0", - "from": "qs@>=5.2.0 <5.3.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-5.2.0.tgz" - } - } - }, - "requires-port": { - "version": "0.0.1", - "from": "requires-port@>=0.0.0 <1.0.0", - "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-0.0.1.tgz" - }, - "reserved-words": { - "version": "0.1.1", - "from": "reserved-words@>=0.1.1 <0.2.0", - "resolved": "https://registry.npmjs.org/reserved-words/-/reserved-words-0.1.1.tgz" - }, - "resolve": { - "version": "1.1.6", - "from": "resolve@>=1.1.6 <2.0.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.1.6.tgz" - }, - "restore-cursor": { - "version": "1.0.1", - "from": "restore-cursor@>=1.0.1 <2.0.0", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-1.0.1.tgz" - }, - "revalidator": { - "version": "0.1.8", - "from": "revalidator@>=0.1.0 <0.2.0", - "resolved": "https://registry.npmjs.org/revalidator/-/revalidator-0.1.8.tgz" - }, - "right-align": { - "version": "0.1.3", - "from": "right-align@>=0.1.1 <0.2.0", - "resolved": "https://registry.npmjs.org/right-align/-/right-align-0.1.3.tgz" - }, - "rimraf": { - "version": "2.4.4", - "from": "rimraf@>=2.2.8 <3.0.0", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.4.4.tgz" - }, - "ripemd160": { - "version": "0.2.0", - "from": "ripemd160@0.2.0", - "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-0.2.0.tgz" - }, - "run-async": { - "version": "0.1.0", - "from": "run-async@>=0.1.0 <0.2.0", - "resolved": "https://registry.npmjs.org/run-async/-/run-async-0.1.0.tgz" - }, - "rx-lite": { - "version": "3.1.2", - "from": "rx-lite@>=3.1.2 <4.0.0", - "resolved": "https://registry.npmjs.org/rx-lite/-/rx-lite-3.1.2.tgz" - }, - "sass-graph": { - "version": "2.0.1", - "from": "sass-graph@>=2.0.1 <3.0.0", - "resolved": "https://registry.npmjs.org/sass-graph/-/sass-graph-2.0.1.tgz" - }, - "sax": { - "version": "1.1.4", - "from": "sax@>=1.1.1 <1.2.0", - "resolved": "https://registry.npmjs.org/sax/-/sax-1.1.4.tgz" - }, - "semver": { - "version": "5.1.0", - "from": "semver@>=2.0.0 <3.0.0||>=3.0.0 <4.0.0||>=4.0.0 <5.0.0||>=5.0.0 <6.0.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.1.0.tgz" - }, - "send": { - "version": "0.13.0", - "from": "send@0.13.0", - "resolved": "https://registry.npmjs.org/send/-/send-0.13.0.tgz", - "dependencies": { - "depd": { - "version": "1.0.1", - "from": "depd@>=1.0.1 <1.1.0", - "resolved": "https://registry.npmjs.org/depd/-/depd-1.0.1.tgz" - } - } - }, - "serve-index": { - "version": "1.7.2", - "from": "serve-index@>=1.7.2 <2.0.0", - "resolved": "https://registry.npmjs.org/serve-index/-/serve-index-1.7.2.tgz" - }, - "serve-static": { - "version": "1.10.0", - "from": "serve-static@>=1.10.0 <1.11.0", - "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.10.0.tgz" - }, - "sha.js": { - "version": "2.2.6", - "from": "sha.js@2.2.6", - "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.2.6.tgz" - }, - "shebang-regex": { - "version": "1.0.0", - "from": "shebang-regex@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz" - }, - "shelljs": { - "version": "0.5.3", - "from": "shelljs@>=0.5.3 <0.6.0", - "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.5.3.tgz" - }, - "sigmund": { - "version": "1.0.1", - "from": "sigmund@>=1.0.0 <1.1.0", - "resolved": "https://registry.npmjs.org/sigmund/-/sigmund-1.0.1.tgz" - }, - "signal-exit": { - "version": "2.1.2", - "from": "signal-exit@>=2.1.2 <3.0.0", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-2.1.2.tgz" - }, - "simple-fmt": { - "version": "0.1.0", - "from": "simple-fmt@>=0.1.0 <0.2.0", - "resolved": "https://registry.npmjs.org/simple-fmt/-/simple-fmt-0.1.0.tgz" - }, - "simple-is": { - "version": "0.2.0", - "from": "simple-is@>=0.2.0 <0.3.0", - "resolved": "https://registry.npmjs.org/simple-is/-/simple-is-0.2.0.tgz" - }, - "slash": { - "version": "1.0.0", - "from": "slash@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz" - }, - "sleep": { - "version": "3.0.0", - "from": "sleep@>=3.0.0 <4.0.0", - "resolved": "https://registry.npmjs.org/sleep/-/sleep-3.0.0.tgz" - }, - "sntp": { - "version": "1.0.9", - "from": "sntp@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/sntp/-/sntp-1.0.9.tgz" - }, - "sockjs": { - "version": "0.3.15", - "from": "sockjs@>=0.3.15 <0.4.0", - "resolved": "https://registry.npmjs.org/sockjs/-/sockjs-0.3.15.tgz" - }, - "sockjs-client": { - "version": "1.0.3", - "from": "sockjs-client@>=1.0.3 <2.0.0", - "resolved": "https://registry.npmjs.org/sockjs-client/-/sockjs-client-1.0.3.tgz", - "dependencies": { - "faye-websocket": { - "version": "0.7.3", - "from": "faye-websocket@>=0.7.3 <0.8.0", - "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.7.3.tgz" - } - } - }, - "sort-keys": { - "version": "1.1.1", - "from": "sort-keys@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/sort-keys/-/sort-keys-1.1.1.tgz" - }, - "source-list-map": { - "version": "0.1.5", - "from": "source-list-map@>=0.1.0 <0.2.0", - "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-0.1.5.tgz" - }, - "source-map": { - "version": "0.5.3", - "from": "source-map@>=0.5.0 <0.6.0", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.3.tgz" - }, - "source-map-support": { - "version": "0.2.10", - "from": "source-map-support@>=0.2.10 <0.3.0", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.2.10.tgz", - "dependencies": { - "source-map": { - "version": "0.1.32", - "from": "source-map@0.1.32", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.1.32.tgz" - } - } - }, - "spawn-sync": { - "version": "1.0.13", - "from": "spawn-sync@1.0.13", - "resolved": "https://registry.npmjs.org/spawn-sync/-/spawn-sync-1.0.13.tgz" - }, - "spdx-correct": { - "version": "1.0.2", - "from": "spdx-correct@>=1.0.0 <1.1.0", - "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-1.0.2.tgz" - }, - "spdx-exceptions": { - "version": "1.0.4", - "from": "spdx-exceptions@>=1.0.4 <2.0.0", - "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-1.0.4.tgz" - }, - "spdx-expression-parse": { - "version": "1.0.2", - "from": "spdx-expression-parse@>=1.0.0 <1.1.0", - "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-1.0.2.tgz" - }, - "spdx-license-ids": { - "version": "1.1.0", - "from": "spdx-license-ids@>=1.0.2 <2.0.0", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-1.1.0.tgz" - }, - "sprintf-js": { - "version": "1.0.3", - "from": "sprintf-js@>=1.0.2 <1.1.0", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz" - }, - "sshpk": { - "version": "1.7.1", - "from": "sshpk@>=1.7.0 <2.0.0", - "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.7.1.tgz", - "dependencies": { - "assert-plus": { - "version": "0.2.0", - "from": "assert-plus@>=0.2.0 <0.3.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-0.2.0.tgz" - } - } - }, - "stable": { - "version": "0.1.5", - "from": "stable@>=0.1.3 <0.2.0", - "resolved": "https://registry.npmjs.org/stable/-/stable-0.1.5.tgz" - }, - "stack-trace": { - "version": "0.0.9", - "from": "stack-trace@>=0.0.0 <0.1.0", - "resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.9.tgz" - }, - "statuses": { - "version": "1.2.1", - "from": "statuses@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.2.1.tgz" - }, - "stream-browserify": { - "version": "1.0.0", - "from": "stream-browserify@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-1.0.0.tgz", - "dependencies": { - "readable-stream": { - "version": "1.1.13", - "from": "readable-stream@>=1.0.27-1 <2.0.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.13.tgz" - } - } - }, - "stream-cache": { - "version": "0.0.2", - "from": "stream-cache@>=0.0.1 <0.1.0", - "resolved": "https://registry.npmjs.org/stream-cache/-/stream-cache-0.0.2.tgz" - }, - "strict-uri-encode": { - "version": "1.0.2", - "from": "strict-uri-encode@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-1.0.2.tgz" - }, - "string_decoder": { - "version": "0.10.31", - "from": "string_decoder@>=0.10.0 <0.11.0", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz" - }, - "stringmap": { - "version": "0.2.2", - "from": "stringmap@>=0.2.2 <0.3.0", - "resolved": "https://registry.npmjs.org/stringmap/-/stringmap-0.2.2.tgz" - }, - "stringset": { - "version": "0.2.1", - "from": "stringset@>=0.2.1 <0.3.0", - "resolved": "https://registry.npmjs.org/stringset/-/stringset-0.2.1.tgz" - }, - "stringstream": { - "version": "0.0.5", - "from": "stringstream@>=0.0.4 <0.1.0", - "resolved": "https://registry.npmjs.org/stringstream/-/stringstream-0.0.5.tgz" - }, - "strip-ansi": { - "version": "3.0.0", - "from": "strip-ansi@>=3.0.0 <4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.0.tgz" - }, - "strip-bom": { - "version": "2.0.0", - "from": "strip-bom@>=2.0.0 <3.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz" - }, - "strip-indent": { - "version": "1.0.1", - "from": "strip-indent@>=1.0.1 <2.0.0", - "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-1.0.1.tgz" - }, - "strip-json-comments": { - "version": "1.0.4", - "from": "strip-json-comments@>=1.0.1 <1.1.0", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-1.0.4.tgz" - }, - "success-symbol": { - "version": "0.1.0", - "from": "success-symbol@>=0.1.0 <0.2.0", - "resolved": "https://registry.npmjs.org/success-symbol/-/success-symbol-0.1.0.tgz" - }, - "supports-color": { - "version": "2.0.0", - "from": "supports-color@>=2.0.0 <3.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz" - }, - "svgo": { - "version": "0.5.6", - "from": "svgo@>=0.5.6 <0.6.0", - "resolved": "https://registry.npmjs.org/svgo/-/svgo-0.5.6.tgz" - }, - "symbol-tree": { - "version": "3.1.4", - "from": "symbol-tree@>=3.1.0 <4.0.0", - "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.1.4.tgz" - }, - "tapable": { - "version": "0.1.10", - "from": "tapable@>=0.1.8 <0.2.0", - "resolved": "https://registry.npmjs.org/tapable/-/tapable-0.1.10.tgz" - }, - "tar": { - "version": "2.2.1", - "from": "tar@>=2.0.0 <3.0.0", - "resolved": "https://registry.npmjs.org/tar/-/tar-2.2.1.tgz" - }, - "text-table": { - "version": "0.2.0", - "from": "text-table@>=0.2.0 <0.3.0", - "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz" - }, - "through": { - "version": "2.3.8", - "from": "through@>=2.3.8 <2.4.0", - "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz" - }, - "timers-browserify": { - "version": "1.4.1", - "from": "timers-browserify@>=1.0.1 <2.0.0", - "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-1.4.1.tgz" - }, - "to-double-quotes": { - "version": "2.0.0", - "from": "to-double-quotes@>=2.0.0 <3.0.0", - "resolved": "https://registry.npmjs.org/to-double-quotes/-/to-double-quotes-2.0.0.tgz" - }, - "to-fast-properties": { - "version": "1.0.1", - "from": "to-fast-properties@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.1.tgz" - }, - "to-single-quotes": { - "version": "2.0.0", - "from": "to-single-quotes@>=2.0.0 <3.0.0", - "resolved": "https://registry.npmjs.org/to-single-quotes/-/to-single-quotes-2.0.0.tgz" - }, - "tough-cookie": { - "version": "2.2.1", - "from": "tough-cookie@>=2.2.0 <3.0.0", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.2.1.tgz" - }, - "tr46": { - "version": "0.0.2", - "from": "tr46@>=0.0.1 <0.1.0", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.2.tgz" - }, - "transformers": { - "version": "2.1.0", - "from": "transformers@2.1.0", - "resolved": "https://registry.npmjs.org/transformers/-/transformers-2.1.0.tgz", - "dependencies": { - "is-promise": { - "version": "1.0.1", - "from": "is-promise@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-1.0.1.tgz" - }, - "optimist": { - "version": "0.3.7", - "from": "optimist@>=0.3.5 <0.4.0", - "resolved": "https://registry.npmjs.org/optimist/-/optimist-0.3.7.tgz" - }, - "promise": { - "version": "2.0.0", - "from": "promise@>=2.0.0 <2.1.0", - "resolved": "https://registry.npmjs.org/promise/-/promise-2.0.0.tgz" - }, - "source-map": { - "version": "0.1.43", - "from": "source-map@>=0.1.7 <0.2.0", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.1.43.tgz" - }, - "uglify-js": { - "version": "2.2.5", - "from": "uglify-js@>=2.2.5 <2.3.0", - "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.2.5.tgz" - } - } - }, - "trim-newlines": { - "version": "1.0.0", - "from": "trim-newlines@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-1.0.0.tgz" - }, - "trim-right": { - "version": "1.0.1", - "from": "trim-right@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/trim-right/-/trim-right-1.0.1.tgz" - }, - "try-resolve": { - "version": "1.0.1", - "from": "try-resolve@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/try-resolve/-/try-resolve-1.0.1.tgz" - }, - "tryit": { - "version": "1.0.2", - "from": "tryit@>=1.0.1 <2.0.0", - "resolved": "https://registry.npmjs.org/tryit/-/tryit-1.0.2.tgz" - }, - "tryor": { - "version": "0.1.2", - "from": "tryor@>=0.1.2 <0.2.0", - "resolved": "https://registry.npmjs.org/tryor/-/tryor-0.1.2.tgz" - }, - "tty-browserify": { - "version": "0.0.0", - "from": "tty-browserify@0.0.0", - "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.0.tgz" - }, - "tunnel-agent": { - "version": "0.4.1", - "from": "tunnel-agent@>=0.4.1 <0.5.0", - "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.4.1.tgz" - }, - "tweetnacl": { - "version": "0.13.2", - "from": "tweetnacl@>=0.13.0 <1.0.0", - "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.13.2.tgz" - }, - "type-check": { - "version": "0.3.1", - "from": "type-check@>=0.3.1 <0.4.0", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.1.tgz" - }, - "type-detect": { - "version": "1.0.0", - "from": "type-detect@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-1.0.0.tgz" - }, - "type-is": { - "version": "1.6.10", - "from": "type-is@>=1.6.9 <1.7.0", - "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.10.tgz" - }, - "typedarray": { - "version": "0.0.6", - "from": "typedarray@>=0.0.5 <0.1.0", - "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz" - }, - "ua-parser-js": { - "version": "0.7.9", - "from": "ua-parser-js@>=0.7.9 <0.8.0", - "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.9.tgz" - }, - "uglify-js": { - "version": "2.6.1", - "from": "uglify-js@>=2.6.0 <2.7.0", - "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.6.1.tgz", - "dependencies": { - "async": { - "version": "0.2.10", - "from": "async@>=0.2.6 <0.3.0", - "resolved": "https://registry.npmjs.org/async/-/async-0.2.10.tgz" - }, - "window-size": { - "version": "0.1.0", - "from": "window-size@0.1.0", - "resolved": "https://registry.npmjs.org/window-size/-/window-size-0.1.0.tgz" - }, - "yargs": { - "version": "3.10.0", - "from": "yargs@>=3.10.0 <3.11.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-3.10.0.tgz" - } - } - }, - "uglify-to-browserify": { - "version": "1.0.2", - "from": "uglify-to-browserify@>=1.0.0 <1.1.0", - "resolved": "https://registry.npmjs.org/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz" - }, - "uid-number": { - "version": "0.0.5", - "from": "uid-number@0.0.5", - "resolved": "https://registry.npmjs.org/uid-number/-/uid-number-0.0.5.tgz" - }, - "uncontrollable": { - "version": "3.1.4", - "from": "uncontrollable@>=3.1.3 <4.0.0", - "resolved": "https://registry.npmjs.org/uncontrollable/-/uncontrollable-3.1.4.tgz" - }, - "underscore": { - "version": "1.6.0", - "from": "underscore@>=1.6.0 <1.7.0", - "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.6.0.tgz" - }, - "uniq": { - "version": "1.0.1", - "from": "uniq@>=1.0.1 <2.0.0", - "resolved": "https://registry.npmjs.org/uniq/-/uniq-1.0.1.tgz" - }, - "uniqid": { - "version": "1.0.0", - "from": "uniqid@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/uniqid/-/uniqid-1.0.0.tgz" - }, - "uniqs": { - "version": "2.0.0", - "from": "uniqs@>=2.0.0 <3.0.0", - "resolved": "https://registry.npmjs.org/uniqs/-/uniqs-2.0.0.tgz" - }, - "unpipe": { - "version": "1.0.0", - "from": "unpipe@1.0.0", - "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz" - }, - "url": { - "version": "0.10.3", - "from": "url@>=0.10.1 <0.11.0", - "resolved": "https://registry.npmjs.org/url/-/url-0.10.3.tgz" - }, - "url-parse": { - "version": "1.0.5", - "from": "url-parse@>=1.0.1 <2.0.0", - "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.0.5.tgz", - "dependencies": { - "requires-port": { - "version": "1.0.0", - "from": "requires-port@>=1.0.0 <1.1.0", - "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz" - } - } - }, - "user-home": { - "version": "1.1.1", - "from": "user-home@>=1.1.1 <2.0.0", - "resolved": "https://registry.npmjs.org/user-home/-/user-home-1.1.1.tgz" - }, - "util": { - "version": "0.10.3", - "from": "util@>=0.10.3 <0.11.0", - "resolved": "https://registry.npmjs.org/util/-/util-0.10.3.tgz" - }, - "util-deprecate": { - "version": "1.0.2", - "from": "util-deprecate@>=1.0.1 <1.1.0", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz" - }, - "utile": { - "version": "0.2.1", - "from": "utile@>=0.2.0 <0.3.0", - "resolved": "https://registry.npmjs.org/utile/-/utile-0.2.1.tgz", - "dependencies": { - "async": { - "version": "0.2.10", - "from": "async@>=0.2.9 <0.3.0", - "resolved": "https://registry.npmjs.org/async/-/async-0.2.10.tgz" - } - } - }, - "utils-merge": { - "version": "1.0.0", - "from": "utils-merge@1.0.0", - "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.0.tgz" - }, - "validate-npm-package-license": { - "version": "3.0.1", - "from": "validate-npm-package-license@>=3.0.1 <4.0.0", - "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.1.tgz" - }, - "vary": { - "version": "1.0.1", - "from": "vary@>=1.0.1 <1.1.0", - "resolved": "https://registry.npmjs.org/vary/-/vary-1.0.1.tgz" - }, - "verror": { - "version": "1.3.6", - "from": "verror@1.3.6", - "resolved": "https://registry.npmjs.org/verror/-/verror-1.3.6.tgz" - }, - "vm-browserify": { - "version": "0.0.4", - "from": "vm-browserify@0.0.4", - "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-0.0.4.tgz" - }, - "void-elements": { - "version": "2.0.1", - "from": "void-elements@>=2.0.1 <2.1.0", - "resolved": "https://registry.npmjs.org/void-elements/-/void-elements-2.0.1.tgz" - }, - "vow": { - "version": "0.4.11", - "from": "vow@>=0.4.8 <0.5.0", - "resolved": "https://registry.npmjs.org/vow/-/vow-0.4.11.tgz" - }, - "vow-fs": { - "version": "0.3.4", - "from": "vow-fs@>=0.3.4 <0.4.0", - "resolved": "https://registry.npmjs.org/vow-fs/-/vow-fs-0.3.4.tgz", - "dependencies": { - "glob": { - "version": "4.5.3", - "from": "glob@>=4.3.1 <5.0.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-4.5.3.tgz" - } - } - }, - "vow-queue": { - "version": "0.4.2", - "from": "vow-queue@>=0.4.1 <0.5.0", - "resolved": "https://registry.npmjs.org/vow-queue/-/vow-queue-0.4.2.tgz" - }, - "warning": { - "version": "2.1.0", - "from": "warning@>=2.0.0 <3.0.0", - "resolved": "https://registry.npmjs.org/warning/-/warning-2.1.0.tgz" - }, - "watchpack": { - "version": "0.2.9", - "from": "watchpack@>=0.2.1 <0.3.0", - "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-0.2.9.tgz", - "dependencies": { - "async": { - "version": "0.9.2", - "from": "async@>=0.9.0 <0.10.0", - "resolved": "https://registry.npmjs.org/async/-/async-0.9.2.tgz" - } - } - }, - "webidl-conversions": { - "version": "2.0.1", - "from": "webidl-conversions@>=2.0.0 <3.0.0", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-2.0.1.tgz" - }, - "webpack": { - "version": "1.12.9", - "from": "webpack@>=1.12.8 <2.0.0", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-1.12.9.tgz", - "dependencies": { - "esprima": { - "version": "2.7.0", - "from": "esprima@>=2.5.0 <3.0.0" - }, - "supports-color": { - "version": "3.1.2", - "from": "supports-color@>=3.1.0 <4.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.1.2.tgz" - } - } - }, - "webpack-core": { - "version": "0.6.8", - "from": "webpack-core@>=0.6.0 <0.7.0", - "resolved": "https://registry.npmjs.org/webpack-core/-/webpack-core-0.6.8.tgz", - "dependencies": { - "source-map": { - "version": "0.4.4", - "from": "source-map@>=0.4.1 <0.5.0", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz" - } - } - }, - "webpack-dev-middleware": { - "version": "1.4.0", - "from": "webpack-dev-middleware@>=1.4.0 <2.0.0", - "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-1.4.0.tgz" - }, - "websocket-driver": { - "version": "0.6.3", - "from": "websocket-driver@>=0.5.1", - "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.6.3.tgz" - }, - "websocket-extensions": { - "version": "0.1.1", - "from": "websocket-extensions@>=0.1.1", - "resolved": "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.1.tgz" - }, - "whatwg-fetch": { - "version": "0.9.0", - "from": "whatwg-fetch@>=0.9.0 <0.10.0", - "resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-0.9.0.tgz" - }, - "whatwg-url-compat": { - "version": "0.6.5", - "from": "whatwg-url-compat@>=0.6.5 <0.7.0", - "resolved": "https://registry.npmjs.org/whatwg-url-compat/-/whatwg-url-compat-0.6.5.tgz" - }, - "whet.extend": { - "version": "0.9.9", - "from": "whet.extend@>=0.9.9 <0.10.0", - "resolved": "https://registry.npmjs.org/whet.extend/-/whet.extend-0.9.9.tgz" - }, - "which": { - "version": "1.2.0", - "from": "which@>=1.2.0 <2.0.0", - "resolved": "https://registry.npmjs.org/which/-/which-1.2.0.tgz" - }, - "window-size": { - "version": "0.1.4", - "from": "window-size@>=0.1.2 <0.2.0", - "resolved": "https://registry.npmjs.org/window-size/-/window-size-0.1.4.tgz" - }, - "winston": { - "version": "0.8.3", - "from": "winston@>=0.8.0 <0.9.0", - "resolved": "https://registry.npmjs.org/winston/-/winston-0.8.3.tgz", - "dependencies": { - "async": { - "version": "0.2.10", - "from": "async@>=0.2.0 <0.3.0", - "resolved": "https://registry.npmjs.org/async/-/async-0.2.10.tgz" - }, - "colors": { - "version": "0.6.2", - "from": "colors@>=0.6.0 <0.7.0", - "resolved": "https://registry.npmjs.org/colors/-/colors-0.6.2.tgz" - } - } - }, - "with": { - "version": "4.0.3", - "from": "with@>=4.0.0 <4.1.0", - "resolved": "https://registry.npmjs.org/with/-/with-4.0.3.tgz" - }, - "wordwrap": { - "version": "0.0.2", - "from": "wordwrap@0.0.2", - "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.2.tgz" - }, - "wrappy": { - "version": "1.0.1", - "from": "wrappy@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.1.tgz" - }, - "write": { - "version": "0.2.1", - "from": "write@>=0.2.1 <0.3.0", - "resolved": "https://registry.npmjs.org/write/-/write-0.2.1.tgz" - }, - "xml-escape": { - "version": "1.0.0", - "from": "xml-escape@>=1.0.0 <1.1.0", - "resolved": "https://registry.npmjs.org/xml-escape/-/xml-escape-1.0.0.tgz" - }, - "xml-name-validator": { - "version": "2.0.1", - "from": "xml-name-validator@>=2.0.1 <3.0.0", - "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-2.0.1.tgz" - }, - "xmlbuilder": { - "version": "3.1.0", - "from": "xmlbuilder@>=3.1.0 <4.0.0", - "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-3.1.0.tgz" - }, - "xtend": { - "version": "4.0.1", - "from": "xtend@>=4.0.0 <5.0.0", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz" - }, - "y18n": { - "version": "3.2.0", - "from": "y18n@>=3.2.0 <4.0.0", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.0.tgz" - }, - "yargs": { - "version": "3.27.0", - "from": "yargs@>=3.27.0 <3.28.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-3.27.0.tgz" - } - } -} diff --git a/client/package.json b/client/package.json index ad6a80a2..3f243b1a 100644 --- a/client/package.json +++ b/client/package.json @@ -39,10 +39,13 @@ "axios": "^0.7.0", "babel-core": "^5.8.25", "babel-loader": "^5.3.2", - "body-parser": "^1.14.1", + "bootstrap-sass": "^3.3.5", + "bootstrap-sass-loader": "^1.0.9", + "css-loader": "^0.23.0", "es5-shim": "^4.3.1", "es6-promise": "^3.0.2", "expose-loader": "^0.7.1", + "file-loader": "^0.8.4", "history": "^1.12.5", "immutable": "^3.7.5", "imports-loader": "^0.6.5", @@ -51,6 +54,7 @@ "loader-utils": "^0.2.11", "lodash": "^3.10.1", "marked": "^0.3.5", + "node-sass": "^3.4.2", "node-uuid": "^1.4.7", "react": "^0.14.3", "react-bootstrap": "^0.28.1", @@ -60,33 +64,29 @@ "redux": "^3.0.4", "redux-promise": "^0.5.0", "redux-thunk": "^1.0.0", - "sleep": "^3.0.0", + "sass-loader": "^3.1.1", + "style-loader": "^0.13.0", + "url-loader": "^0.5.6", "webpack": "^1.12.8" }, "devDependencies": { "babel-eslint": "^4.1.6", "babel-plugin-react-transform": "^1.1.1", - "bootstrap-sass": "^3.3.5", - "bootstrap-sass-loader": "^1.0.9", + "body-parser": "^1.14.1", "chai": "^3.4.1", "chai-immutable": "^1.5.3", - "css-loader": "^0.23.0", "eslint": "^1.10.1", "eslint-config-airbnb": "1.0.2", "eslint-plugin-react": "^3.11.3", "esprima-fb": "^15001.1001.0-dev-harmony-fb", "express": "^4.13.3", - "file-loader": "^0.8.4", "jade": "^1.11.0", "jscs": "^2.6.0", "jsdom": "^7.0.2", "mocha": "^2.3.4", - "node-sass": "^3.4.2", "react-addons-test-utils": "^0.14.3", "react-transform-hmr": "^1.0.1", - "sass-loader": "^3.1.1", - "style-loader": "^0.13.0", - "url-loader": "^0.5.6", + "sleep": "^3.0.0", "webpack-dev-server": "^1.12.1" } } From 98c466340b34cb5f74d68f17ebbeef51c971e0c9 Mon Sep 17 00:00:00 2001 From: Alex Fedoseev Date: Sat, 12 Dec 2015 02:26:18 +0300 Subject: [PATCH 02/11] Update linters --- client/{.eslintrc => .eslintrc.yml} | 1 + client/app/bundles/Comments/components/Comment.jsx | 2 +- .../Comments/components/NonRouterCommentScreen.jsx | 2 +- .../bundles/Comments/components/RouterCommentScreen.jsx | 2 +- .../bundles/Comments/components/SimpleCommentScreen.jsx | 2 +- client/package.json | 9 ++++----- client/server.js | 2 +- 7 files changed, 10 insertions(+), 10 deletions(-) rename client/{.eslintrc => .eslintrc.yml} (96%) diff --git a/client/.eslintrc b/client/.eslintrc.yml similarity index 96% rename from client/.eslintrc rename to client/.eslintrc.yml index d73a8c02..6100a38e 100644 --- a/client/.eslintrc +++ b/client/.eslintrc.yml @@ -23,6 +23,7 @@ rules: ### Stylistic issues indent: [1, 2, { SwitchCase: 1, VariableDeclarator: 2 }] id-length: [1, { min: 2, exceptions: [_, e, i, k, v] }] + space-before-function-paren: [1, "never"] ### React jsx-quotes: [1, prefer-double] diff --git a/client/app/bundles/Comments/components/Comment.jsx b/client/app/bundles/Comments/components/Comment.jsx index b05816ac..7a36c394 100644 --- a/client/app/bundles/Comments/components/Comment.jsx +++ b/client/app/bundles/Comments/components/Comment.jsx @@ -16,7 +16,7 @@ class Comment extends React.Component {

{author}

- + ); } diff --git a/client/app/bundles/Comments/components/NonRouterCommentScreen.jsx b/client/app/bundles/Comments/components/NonRouterCommentScreen.jsx index fa137825..0dc869db 100644 --- a/client/app/bundles/Comments/components/NonRouterCommentScreen.jsx +++ b/client/app/bundles/Comments/components/NonRouterCommentScreen.jsx @@ -19,7 +19,7 @@ class NonRouterCommentScreen extends React.Component { const { dispatch, data } = this.props; const actions = bindActionCreators(commentsActionCreators, dispatch); return ( - + ); } } diff --git a/client/app/bundles/Comments/components/RouterCommentScreen.jsx b/client/app/bundles/Comments/components/RouterCommentScreen.jsx index bc50004a..7bdf7b32 100644 --- a/client/app/bundles/Comments/components/RouterCommentScreen.jsx +++ b/client/app/bundles/Comments/components/RouterCommentScreen.jsx @@ -36,7 +36,7 @@ class RouterCommentScreen extends React.Component { return (
{this._renderNotification()} - +
); } diff --git a/client/app/bundles/Comments/components/SimpleCommentScreen.jsx b/client/app/bundles/Comments/components/SimpleCommentScreen.jsx index f8e00576..274bcabb 100644 --- a/client/app/bundles/Comments/components/SimpleCommentScreen.jsx +++ b/client/app/bundles/Comments/components/SimpleCommentScreen.jsx @@ -69,7 +69,7 @@ class SimpleCommentScreen extends React.Component {

Date: Sat, 12 Dec 2015 12:57:40 +0300 Subject: [PATCH 03/11] Update to babel@6 --- client/.babelrc | 2 +- client/package.json | 12 +++++++++--- client/webpack.client.base.config.js | 2 +- client/webpack.client.hot.config.js | 26 ++++++++++++++------------ 4 files changed, 25 insertions(+), 17 deletions(-) diff --git a/client/.babelrc b/client/.babelrc index b0b9a96e..9b7d435a 100644 --- a/client/.babelrc +++ b/client/.babelrc @@ -1,3 +1,3 @@ { - "stage": 0 + "presets": ["es2015", "stage-0", "react"] } diff --git a/client/package.json b/client/package.json index 63147049..13df0d4b 100644 --- a/client/package.json +++ b/client/package.json @@ -37,8 +37,14 @@ }, "dependencies": { "axios": "^0.7.0", - "babel-core": "^5.8.25", - "babel-loader": "^5.3.2", + "babel": "^6.3.13", + "babel-cli": "^6.3.17", + "babel-core": "^6.3.17", + "babel-loader": "^6.2.0", + "babel-polyfill": "^6.3.14", + "babel-preset-es2015": "^6.3.13", + "babel-preset-react": "^6.3.13", + "babel-preset-stage-0": "^6.3.13", "bootstrap-sass": "^3.3.5", "bootstrap-sass-loader": "^1.0.9", "css-loader": "^0.23.0", @@ -71,7 +77,7 @@ }, "devDependencies": { "babel-eslint": "^5.0.0-beta6", - "babel-plugin-react-transform": "^1.1.1", + "babel-plugin-react-transform": "^2.0.0-beta1", "body-parser": "^1.14.1", "chai": "^3.4.1", "chai-immutable": "^1.5.3", diff --git a/client/webpack.client.base.config.js b/client/webpack.client.base.config.js index d572563e..c0019298 100644 --- a/client/webpack.client.base.config.js +++ b/client/webpack.client.base.config.js @@ -14,7 +14,7 @@ module.exports = { // See use of 'vendor' in the CommonsChunkPlugin inclusion below. vendor: [ - 'babel-core/polyfill', + 'babel-polyfill', 'jquery', 'react', 'react-dom', diff --git a/client/webpack.client.hot.config.js b/client/webpack.client.hot.config.js index 825aceff..3d18b13e 100644 --- a/client/webpack.client.hot.config.js +++ b/client/webpack.client.hot.config.js @@ -35,18 +35,20 @@ config.module.loaders.push( loader: 'babel', exclude: /node_modules/, query: { - plugins: ['react-transform'], - extra: { - 'react-transform': { - transforms: [ - { - transform: 'react-transform-hmr', - imports: ['react'], - locals: ['module'], - }, - ], - }, - }, + plugins: [ + [ + 'react-transform', + { + transforms: [ + { + transform: 'react-transform-hmr', + imports: ['react'], + locals: ['module'], + }, + ], + }, + ], + ], }, }, { test: /\.css$/, loader: 'style-loader!css-loader' }, From e4832d43e849df58f42567db81bb513cee9c959b Mon Sep 17 00:00:00 2001 From: Alex Fedoseev Date: Sat, 12 Dec 2015 17:19:23 +0300 Subject: [PATCH 04/11] Component oriented structure --- .../actions/commentsActionCreators.js | 10 ++-- .../{ => CommentBox}/CommentBox.jsx | 13 +---- .../CommentForm}/CommentForm.jsx | 28 +++++----- .../CommentList/Comment}/Comment.jsx | 12 ++-- .../CommentList/Comment/Comment.spec.jsx} | 5 +- .../CommentList}/CommentList.jsx | 23 ++++---- .../CommentList/CommentList.spec.jsx} | 7 ++- .../{ => CommentScreen}/CommentScreen.jsx | 7 +-- .../SimpleCommentScreen.jsx | 56 ++++++++++--------- .../{ => TestReactRouter}/TestReactRouter.jsx | 0 .../TestReactRouterRedirect.jsx | 0 .../NonRouterCommentsContainer.jsx} | 6 +- .../RouterCommentsContainer.jsx} | 6 +- client/app/bundles/Comments/layout/Layout.jsx | 13 ++++- client/app/bundles/Comments/routes/routes.jsx | 8 +-- .../bundles/Comments/startup/ClientApp.jsx | 9 +-- .../Comments/startup/ClientRouterApp.jsx | 5 +- .../bundles/Comments/startup/ServerApp.jsx | 8 +-- .../Comments/startup/ServerRouterApp.jsx | 4 +- .../Comments/startup/clientGlobals.jsx | 2 +- .../bundles/Comments/store/commentsStore.js | 2 +- .../bundles/Comments/utils/metaTagsManager.js | 16 ------ client/app/libs/metaTagsManager.js | 15 +++++ .../middlewares/loggerMiddleware.js | 0 .../requestsManager.js} | 20 +++---- .../test_helper.js => app/libs/testHelper.js} | 0 client/package.json | 4 +- client/webpack.client.base.config.js | 6 +- client/webpack.server.rails.config.js | 10 +++- 29 files changed, 146 insertions(+), 149 deletions(-) rename client/app/bundles/Comments/components/{ => CommentBox}/CommentBox.jsx (80%) rename client/app/bundles/Comments/components/{ => CommentBox/CommentForm}/CommentForm.jsx (96%) rename client/app/bundles/Comments/components/{ => CommentBox/CommentList/Comment}/Comment.jsx (70%) rename client/{test/components/Comment_spec.jsx => app/bundles/Comments/components/CommentBox/CommentList/Comment/Comment.spec.jsx} (90%) rename client/app/bundles/Comments/components/{ => CommentBox/CommentList}/CommentList.jsx (87%) rename client/{test/components/CommentList_spec.jsx => app/bundles/Comments/components/CommentBox/CommentList/CommentList.spec.jsx} (83%) rename client/app/bundles/Comments/components/{ => CommentScreen}/CommentScreen.jsx (88%) rename client/app/bundles/Comments/components/{ => SimpleCommentScreen}/SimpleCommentScreen.jsx (57%) rename client/app/bundles/Comments/components/{ => TestReactRouter}/TestReactRouter.jsx (100%) rename client/app/bundles/Comments/components/{ => TestReactRouterRedirect}/TestReactRouterRedirect.jsx (100%) rename client/app/bundles/Comments/{components/NonRouterCommentScreen.jsx => containers/NonRouterCommentsContainer.jsx} (78%) rename client/app/bundles/Comments/{components/RouterCommentScreen.jsx => containers/RouterCommentsContainer.jsx} (86%) delete mode 100644 client/app/bundles/Comments/utils/metaTagsManager.js create mode 100644 client/app/libs/metaTagsManager.js rename client/app/{lib => libs}/middlewares/loggerMiddleware.js (100%) rename client/app/{bundles/Comments/utils/commentsManager.js => libs/requestsManager.js} (53%) rename client/{test/test_helper.js => app/libs/testHelper.js} (100%) diff --git a/client/app/bundles/Comments/actions/commentsActionCreators.js b/client/app/bundles/Comments/actions/commentsActionCreators.js index 06c2ad79..97028c74 100644 --- a/client/app/bundles/Comments/actions/commentsActionCreators.js +++ b/client/app/bundles/Comments/actions/commentsActionCreators.js @@ -1,4 +1,4 @@ -import commentsManager from '../utils/commentsManager'; +import requestsManager from 'libs/requestsManager'; import * as actionTypes from '../constants/commentsConstants'; export function setIsFetching() { @@ -45,8 +45,8 @@ export function fetchComments() { return dispatch => { dispatch(setIsFetching()); return ( - commentsManager - .fetchComments() + requestsManager + .fetchEntities() .then(res => dispatch(fetchCommentsSuccess(res.data))) .catch(res => dispatch(fetchCommentsFailure(res.data))) ); @@ -57,8 +57,8 @@ export function submitComment(comment) { return dispatch => { dispatch(setIsSaving()); return ( - commentsManager - .submitComment(comment) + requestsManager + .submitEntity({ comment }) .then(res => dispatch(submitCommentSuccess(res.data))) .catch(res => dispatch(submitCommentFailure(res.data))) ); diff --git a/client/app/bundles/Comments/components/CommentBox.jsx b/client/app/bundles/Comments/components/CommentBox/CommentBox.jsx similarity index 80% rename from client/app/bundles/Comments/components/CommentBox.jsx rename to client/app/bundles/Comments/components/CommentBox/CommentBox.jsx index 1544ec6c..655f1102 100644 --- a/client/app/bundles/Comments/components/CommentBox.jsx +++ b/client/app/bundles/Comments/components/CommentBox/CommentBox.jsx @@ -1,15 +1,10 @@ import React, { PropTypes } from 'react'; -import CommentForm from './CommentForm'; -import CommentList from './CommentList'; +import CommentForm from './CommentForm/CommentForm'; +import CommentList from './CommentList/CommentList'; -class CommentBox extends React.Component { - constructor(props, context) { - super(props, context); - this.state = {}; - } +export default class CommentBox extends React.Component { - static displayName = 'CommentBox'; static propTypes = { pollInterval: PropTypes.number.isRequired, actions: PropTypes.object.isRequired, @@ -51,5 +46,3 @@ class CommentBox extends React.Component { ); } } - -export default CommentBox; diff --git a/client/app/bundles/Comments/components/CommentForm.jsx b/client/app/bundles/Comments/components/CommentBox/CommentForm/CommentForm.jsx similarity index 96% rename from client/app/bundles/Comments/components/CommentForm.jsx rename to client/app/bundles/Comments/components/CommentBox/CommentForm/CommentForm.jsx index fccdf60c..c0b6e2f7 100644 --- a/client/app/bundles/Comments/components/CommentForm.jsx +++ b/client/app/bundles/Comments/components/CommentBox/CommentForm/CommentForm.jsx @@ -11,7 +11,14 @@ import _ from 'lodash'; const emptyComment = { author: '', text: '' }; const textPlaceholder = 'Say something using markdown...'; -class CommentForm extends React.Component { +export default class CommentForm extends React.Component { + + static propTypes = { + isSaving: PropTypes.bool.isRequired, + actions: PropTypes.object.isRequired, + error: PropTypes.any, + }; + constructor(props, context) { super(props, context); this.state = { @@ -19,17 +26,14 @@ class CommentForm extends React.Component { comment: emptyComment, }; - _.bindAll(this, '_handleSelect', '_handleChange', '_handleSubmit', '_resetAndFocus'); + _.bindAll(this, [ + '_handleSelect', + '_handleChange', + '_handleSubmit', + '_resetAndFocus', + ]); } - static displayName = 'CommentForm'; - - static propTypes = { - isSaving: PropTypes.bool.isRequired, - actions: PropTypes.object.isRequired, - error: PropTypes.any, - }; - _handleSelect(selectedKey) { this.setState({ formMode: selectedKey }); } @@ -201,7 +205,7 @@ class CommentForm extends React.Component { _errorWarning() { // If there is no error, there is nothing to add to the DOM - if (!this.props.error) return undefined; + if (!this.props.error) return null; return ( Your comment was not saved! @@ -245,5 +249,3 @@ class CommentForm extends React.Component { ); } } - -export default CommentForm; diff --git a/client/app/bundles/Comments/components/Comment.jsx b/client/app/bundles/Comments/components/CommentBox/CommentList/Comment/Comment.jsx similarity index 70% rename from client/app/bundles/Comments/components/Comment.jsx rename to client/app/bundles/Comments/components/CommentBox/CommentList/Comment/Comment.jsx index 7a36c394..588234c6 100644 --- a/client/app/bundles/Comments/components/Comment.jsx +++ b/client/app/bundles/Comments/components/CommentBox/CommentList/Comment/Comment.jsx @@ -1,8 +1,8 @@ import React, { PropTypes } from 'react'; import marked from 'marked'; -class Comment extends React.Component { - static displayName = 'Comment'; +export default class Comment extends React.Component { + static propTypes = { author: PropTypes.string.isRequired, text: PropTypes.string.isRequired, @@ -11,15 +11,17 @@ class Comment extends React.Component { render() { const { author, text } = this.props; const rawMarkup = marked(text, { gfm: true, sanitize: true }); + return (

{author}

- +
); } } - -export default Comment; diff --git a/client/test/components/Comment_spec.jsx b/client/app/bundles/Comments/components/CommentBox/CommentList/Comment/Comment.spec.jsx similarity index 90% rename from client/test/components/Comment_spec.jsx rename to client/app/bundles/Comments/components/CommentBox/CommentList/Comment/Comment.spec.jsx index 5efb21e4..66d4c5d4 100644 --- a/client/test/components/Comment_spec.jsx +++ b/client/app/bundles/Comments/components/CommentBox/CommentList/Comment/Comment.spec.jsx @@ -1,5 +1,6 @@ -import { React, expect, TestUtils } from '../test_helper'; -import Comment from '../../app/bundles/Comments/components/Comment'; +import { React, expect, TestUtils } from 'libs/testHelper'; + +import Comment from './Comment'; const { renderIntoDocument, diff --git a/client/app/bundles/Comments/components/CommentList.jsx b/client/app/bundles/Comments/components/CommentBox/CommentList/CommentList.jsx similarity index 87% rename from client/app/bundles/Comments/components/CommentList.jsx rename to client/app/bundles/Comments/components/CommentBox/CommentList/CommentList.jsx index d1e6157b..de9b5920 100644 --- a/client/app/bundles/Comments/components/CommentList.jsx +++ b/client/app/bundles/Comments/components/CommentBox/CommentList/CommentList.jsx @@ -2,27 +2,26 @@ import React, { PropTypes } from 'react'; import Immutable from 'immutable'; import Alert from 'react-bootstrap/lib/Alert'; import ReactCSSTransitionGroup from 'react/lib/ReactCSSTransitionGroup'; +import _ from 'lodash'; -import Comment from './Comment'; +import Comment from './Comment/Comment'; -class CommentList extends React.Component { - constructor(props, context) { - super(props, context); - this.state = {}; - - this._errorWarning = this._errorWarning.bind(this); - } - - static displayName = 'CommentList'; +export default class CommentList extends React.Component { static propTypes = { $$comments: PropTypes.instanceOf(Immutable.List).isRequired, error: PropTypes.any, }; + constructor(props, context) { + super(props, context); + this.state = {}; + _.bindAll(this, '_errorWarning'); + } + _errorWarning() { // If there is no error, there is nothing to add to the DOM - if (!this.props.error) return undefined; + if (!this.props.error) return null; return ( Comments could not be retrieved. @@ -69,5 +68,3 @@ class CommentList extends React.Component { ); } } - -export default CommentList; diff --git a/client/test/components/CommentList_spec.jsx b/client/app/bundles/Comments/components/CommentBox/CommentList/CommentList.spec.jsx similarity index 83% rename from client/test/components/CommentList_spec.jsx rename to client/app/bundles/Comments/components/CommentBox/CommentList/CommentList.spec.jsx index 82c0bd7c..35e45f91 100644 --- a/client/test/components/CommentList_spec.jsx +++ b/client/app/bundles/Comments/components/CommentBox/CommentList/CommentList.spec.jsx @@ -1,7 +1,8 @@ -import { React, expect, TestUtils } from '../test_helper'; +import { React, expect, TestUtils } from 'libs/testHelper'; import { List, Map } from 'immutable'; -import CommentList from '../../app/bundles/Comments/components/CommentList'; -import Comment from '../../app/bundles/Comments/components/Comment'; + +import CommentList from './CommentList'; +import Comment from './Comment/Comment'; const { renderIntoDocument, diff --git a/client/app/bundles/Comments/components/CommentScreen.jsx b/client/app/bundles/Comments/components/CommentScreen/CommentScreen.jsx similarity index 88% rename from client/app/bundles/Comments/components/CommentScreen.jsx rename to client/app/bundles/Comments/components/CommentScreen/CommentScreen.jsx index 79e6ce97..dc3e55c8 100644 --- a/client/app/bundles/Comments/components/CommentScreen.jsx +++ b/client/app/bundles/Comments/components/CommentScreen/CommentScreen.jsx @@ -1,7 +1,8 @@ import React, { PropTypes } from 'react'; -import CommentBox from './CommentBox'; +import CommentBox from '../CommentBox/CommentBox'; + +export default class CommentScreen extends React.Component { -class CommentScreen extends React.Component { static propTypes = { actions: PropTypes.object.isRequired, data: PropTypes.object.isRequired, @@ -34,5 +35,3 @@ class CommentScreen extends React.Component { ); } } - -export default CommentScreen; diff --git a/client/app/bundles/Comments/components/SimpleCommentScreen.jsx b/client/app/bundles/Comments/components/SimpleCommentScreen/SimpleCommentScreen.jsx similarity index 57% rename from client/app/bundles/Comments/components/SimpleCommentScreen.jsx rename to client/app/bundles/Comments/components/SimpleCommentScreen/SimpleCommentScreen.jsx index 274bcabb..bda4baa5 100644 --- a/client/app/bundles/Comments/components/SimpleCommentScreen.jsx +++ b/client/app/bundles/Comments/components/SimpleCommentScreen/SimpleCommentScreen.jsx @@ -1,12 +1,14 @@ import React from 'react'; import Immutable from 'immutable'; import request from 'axios'; -import CommentForm from './CommentForm'; -import CommentList from './CommentList'; -import metaTagsManager from '../utils/metaTagsManager'; import _ from 'lodash'; -class SimpleCommentScreen extends React.Component { +import metaTagsManager from 'libs/metaTagsManager'; +import CommentForm from '../CommentBox/CommentForm/CommentForm'; +import CommentList from '../CommentBox/CommentList/CommentList'; + +export default class SimpleCommentScreen extends React.Component { + constructor(props, context) { super(props, context); this.state = { @@ -19,16 +21,17 @@ class SimpleCommentScreen extends React.Component { _.bindAll(this, '_fetchComments', '_handleCommentSubmit'); } - static displayName = 'SimpleCommentScreen'; - componentDidMount() { this._fetchComments(); } _fetchComments() { - return request.get('comments.json', { responseType: 'json' }) - .then(res => this.setState({ $$comments: Immutable.fromJS(res.data) })) - .catch(error => this.setState({ fetchCommentsError: error })); + return ( + request + .get('comments.json', { responseType: 'json' }) + .then(res => this.setState({ $$comments: Immutable.fromJS(res.data) })) + .catch(error => this.setState({ fetchCommentsError: error })) + ); } _handleCommentSubmit(comment) { @@ -41,22 +44,25 @@ class SimpleCommentScreen extends React.Component { }, }; - return request.post('comments.json', { comment }, requestConfig) - .then(() => { - const { $$comments } = this.state; - const $$comment = Immutable.fromJS(comment); + return ( + request + .post('comments.json', { comment }, requestConfig) + .then(() => { + const { $$comments } = this.state; + const $$comment = Immutable.fromJS(comment); - this.setState({ - $$comments: $$comments.push($$comment), - ajaxSending: false, - }); - }) - .catch(error => { - this.setState({ - submitCommentError: error, - ajaxSending: false, - }); - }); + this.setState({ + $$comments: $$comments.push($$comment), + ajaxSending: false, + }); + }) + .catch(error => { + this.setState({ + submitCommentError: error, + ajaxSending: false, + }); + }) + ); } render() { @@ -80,5 +86,3 @@ class SimpleCommentScreen extends React.Component { ); } } - -export default SimpleCommentScreen; diff --git a/client/app/bundles/Comments/components/TestReactRouter.jsx b/client/app/bundles/Comments/components/TestReactRouter/TestReactRouter.jsx similarity index 100% rename from client/app/bundles/Comments/components/TestReactRouter.jsx rename to client/app/bundles/Comments/components/TestReactRouter/TestReactRouter.jsx diff --git a/client/app/bundles/Comments/components/TestReactRouterRedirect.jsx b/client/app/bundles/Comments/components/TestReactRouterRedirect/TestReactRouterRedirect.jsx similarity index 100% rename from client/app/bundles/Comments/components/TestReactRouterRedirect.jsx rename to client/app/bundles/Comments/components/TestReactRouterRedirect/TestReactRouterRedirect.jsx diff --git a/client/app/bundles/Comments/components/NonRouterCommentScreen.jsx b/client/app/bundles/Comments/containers/NonRouterCommentsContainer.jsx similarity index 78% rename from client/app/bundles/Comments/components/NonRouterCommentScreen.jsx rename to client/app/bundles/Comments/containers/NonRouterCommentsContainer.jsx index 0dc869db..cc4a5d6d 100644 --- a/client/app/bundles/Comments/components/NonRouterCommentScreen.jsx +++ b/client/app/bundles/Comments/containers/NonRouterCommentsContainer.jsx @@ -1,5 +1,5 @@ import React, { PropTypes } from 'react'; -import CommentScreen from './CommentScreen'; +import CommentScreen from '../components/CommentScreen/CommentScreen'; import { connect } from 'react-redux'; import { bindActionCreators } from 'redux'; import * as commentsActionCreators from '../actions/commentsActionCreators'; @@ -9,7 +9,7 @@ function select(state) { return { data: state.$$commentsStore }; } -class NonRouterCommentScreen extends React.Component { +class NonRouterCommentsContainer extends React.Component { static propTypes = { dispatch: PropTypes.func.isRequired, data: PropTypes.object.isRequired, @@ -25,4 +25,4 @@ class NonRouterCommentScreen extends React.Component { } // Don't forget to actually use connect! -export default connect(select)(NonRouterCommentScreen); +export default connect(select)(NonRouterCommentsContainer); diff --git a/client/app/bundles/Comments/components/RouterCommentScreen.jsx b/client/app/bundles/Comments/containers/RouterCommentsContainer.jsx similarity index 86% rename from client/app/bundles/Comments/components/RouterCommentScreen.jsx rename to client/app/bundles/Comments/containers/RouterCommentsContainer.jsx index 7bdf7b32..58b4e5d5 100644 --- a/client/app/bundles/Comments/components/RouterCommentScreen.jsx +++ b/client/app/bundles/Comments/containers/RouterCommentsContainer.jsx @@ -1,5 +1,5 @@ import React, { PropTypes } from 'react'; -import CommentScreen from './CommentScreen'; +import CommentScreen from '../components/CommentScreen/CommentScreen'; import { connect } from 'react-redux'; import { bindActionCreators } from 'redux'; import * as commentsActionCreators from '../actions/commentsActionCreators'; @@ -9,7 +9,7 @@ function select(state) { return { data: state.$$commentsStore }; } -class RouterCommentScreen extends React.Component { +class RouterCommentsContainer extends React.Component { static propTypes = { dispatch: PropTypes.func.isRequired, data: PropTypes.object.isRequired, @@ -43,4 +43,4 @@ class RouterCommentScreen extends React.Component { } // Don't forget to actually use connect! -export default connect(select)(RouterCommentScreen); +export default connect(select)(RouterCommentsContainer); diff --git a/client/app/bundles/Comments/layout/Layout.jsx b/client/app/bundles/Comments/layout/Layout.jsx index db4a0769..95557ffe 100644 --- a/client/app/bundles/Comments/layout/Layout.jsx +++ b/client/app/bundles/Comments/layout/Layout.jsx @@ -13,13 +13,20 @@ export default class Layout extends React.Component {
  • - Comments (Root URL) + + Comments (Root URL) +
  • - Test React Router ('/react-router') + + Test React Router ('/react-router') +
  • - Test Redirect (url to '/react-router/redirect' which goes to root '/') + + Test Redirect + (url to '/react-router/redirect' which goes to root '/') +
diff --git a/client/app/bundles/Comments/routes/routes.jsx b/client/app/bundles/Comments/routes/routes.jsx index eea009ea..8ae88e9e 100644 --- a/client/app/bundles/Comments/routes/routes.jsx +++ b/client/app/bundles/Comments/routes/routes.jsx @@ -1,14 +1,14 @@ import React from 'react'; import { Route, IndexRoute } from 'react-router'; import Layout from '../layout/Layout'; -import TestReactRouter from '../components/TestReactRouter'; -import TestReactRouterRedirect from '../components/TestReactRouterRedirect'; -import RouterCommentScreen from '../components/RouterCommentScreen'; +import TestReactRouter from '../components/TestReactRouter/TestReactRouter'; +import TestReactRouterRedirect from '../components/TestReactRouterRedirect/TestReactRouterRedirect'; +import RouterCommentsContainer from '../containers/RouterCommentsContainer'; export default ( { +export default props => { const store = createStore(props); return ( - + ); }; - -// Export is needed for the hot reload server -export default App; diff --git a/client/app/bundles/Comments/startup/ClientRouterApp.jsx b/client/app/bundles/Comments/startup/ClientRouterApp.jsx index f31baf22..8faf1a28 100644 --- a/client/app/bundles/Comments/startup/ClientRouterApp.jsx +++ b/client/app/bundles/Comments/startup/ClientRouterApp.jsx @@ -6,7 +6,7 @@ import createHistory from 'history/lib/createBrowserHistory'; import createStore from '../store/commentsStore'; import routes from '../routes/routes'; -const RouterApp = (props, location) => { +export default (props, location) => { const store = createStore(props); const history = createHistory(); @@ -16,6 +16,3 @@ const RouterApp = (props, location) => { ); }; - -// Export is needed for the hot reload server -export default RouterApp; diff --git a/client/app/bundles/Comments/startup/ServerApp.jsx b/client/app/bundles/Comments/startup/ServerApp.jsx index 38664e8b..22b32b2f 100644 --- a/client/app/bundles/Comments/startup/ServerApp.jsx +++ b/client/app/bundles/Comments/startup/ServerApp.jsx @@ -2,15 +2,13 @@ import React from 'react'; import { Provider } from 'react-redux'; import createStore from '../store/commentsStore'; -import NonRouterCommentScreen from '../components/NonRouterCommentScreen'; +import NonRouterCommentsContainer from '../containers/NonRouterCommentsContainer'; -const App = props => { +export default props => { const store = createStore(props); return ( - + ); }; - -export default App; diff --git a/client/app/bundles/Comments/startup/ServerRouterApp.jsx b/client/app/bundles/Comments/startup/ServerRouterApp.jsx index f89e4dcc..8cf27bfa 100644 --- a/client/app/bundles/Comments/startup/ServerRouterApp.jsx +++ b/client/app/bundles/Comments/startup/ServerRouterApp.jsx @@ -5,7 +5,7 @@ import { match, RoutingContext } from 'react-router'; import createStore from '../store/commentsStore'; import routes from '../routes/routes'; -const RouterApp = (props, location) => { +export default (props, location) => { const store = createStore(props); let error; @@ -33,5 +33,3 @@ const RouterApp = (props, location) => { ); }; - -export default RouterApp; diff --git a/client/app/bundles/Comments/startup/clientGlobals.jsx b/client/app/bundles/Comments/startup/clientGlobals.jsx index 8ef55c54..ce05dbd5 100644 --- a/client/app/bundles/Comments/startup/clientGlobals.jsx +++ b/client/app/bundles/Comments/startup/clientGlobals.jsx @@ -1,6 +1,6 @@ import App from './ClientApp'; import RouterApp from './ClientRouterApp'; -import SimpleCommentScreen from '../components/SimpleCommentScreen'; +import SimpleCommentScreen from '../components/SimpleCommentScreen/SimpleCommentScreen'; window.App = App; window.RouterApp = RouterApp; diff --git a/client/app/bundles/Comments/store/commentsStore.js b/client/app/bundles/Comments/store/commentsStore.js index 7a71ad8e..c7e7516a 100644 --- a/client/app/bundles/Comments/store/commentsStore.js +++ b/client/app/bundles/Comments/store/commentsStore.js @@ -1,6 +1,6 @@ import { compose, createStore, applyMiddleware, combineReducers } from 'redux'; import thunkMiddleware from 'redux-thunk'; -import loggerMiddleware from 'lib/middlewares/loggerMiddleware'; +import loggerMiddleware from 'libs/middlewares/loggerMiddleware'; import reducers from '../reducers'; import { initalStates } from '../reducers'; diff --git a/client/app/bundles/Comments/utils/metaTagsManager.js b/client/app/bundles/Comments/utils/metaTagsManager.js deleted file mode 100644 index 524903aa..00000000 --- a/client/app/bundles/Comments/utils/metaTagsManager.js +++ /dev/null @@ -1,16 +0,0 @@ -import _find from 'lodash/collection/find'; - -const MetaTagsManager = { - - /** - * Get CSRF Token from the DOM. - * - * @returns {String} - CSRF Token. - */ - getCSRFToken() { - const token = _find(document.querySelectorAll('meta'), 'name', 'csrf-token'); - return token ? token.content : null; - }, -}; - -export default MetaTagsManager; diff --git a/client/app/libs/metaTagsManager.js b/client/app/libs/metaTagsManager.js new file mode 100644 index 00000000..9a64e58d --- /dev/null +++ b/client/app/libs/metaTagsManager.js @@ -0,0 +1,15 @@ +import _ from 'lodash'; + +export default { + + /** + * Get CSRF Token from the DOM. + * + * @returns {String} - CSRF Token. + */ + getCSRFToken() { + const token = _.find(document.querySelectorAll('meta'), 'name', 'csrf-token'); + return token ? token.content : null; + }, + +}; diff --git a/client/app/lib/middlewares/loggerMiddleware.js b/client/app/libs/middlewares/loggerMiddleware.js similarity index 100% rename from client/app/lib/middlewares/loggerMiddleware.js rename to client/app/libs/middlewares/loggerMiddleware.js diff --git a/client/app/bundles/Comments/utils/commentsManager.js b/client/app/libs/requestsManager.js similarity index 53% rename from client/app/bundles/Comments/utils/commentsManager.js rename to client/app/libs/requestsManager.js index 41f7c8a1..2b865103 100644 --- a/client/app/bundles/Comments/utils/commentsManager.js +++ b/client/app/libs/requestsManager.js @@ -3,14 +3,14 @@ import metaTagsManager from './metaTagsManager'; const API_URL = 'comments.json'; -const CommentsManager = { +export default { /** - * Retrieve comments from server using AJAX call. + * Retrieve list of entities from server using AJAX call. * - * @returns {Promise} - result of ajax call. + * @returns {Promise} - Result of ajax call. */ - fetchComments() { + fetchEntities() { return request({ method: 'GET', url: API_URL, @@ -19,12 +19,12 @@ const CommentsManager = { }, /** - * Submit new comment to server using AJAX call. + * Submit new entity to server using AJAX call. * - * @param {Object} comment - Comment body to post. - * @returns {Promise} - result of ajax call. + * @param {Object} entity - Request body to post. + * @returns {Promise} - Result of ajax call. */ - submitComment(comment) { + submitEntity(entity) { return request({ method: 'POST', url: API_URL, @@ -32,10 +32,8 @@ const CommentsManager = { headers: { 'X-CSRF-Token': metaTagsManager.getCSRFToken(), }, - data: { comment }, + data: entity, }); }, }; - -export default CommentsManager; diff --git a/client/test/test_helper.js b/client/app/libs/testHelper.js similarity index 100% rename from client/test/test_helper.js rename to client/app/libs/testHelper.js diff --git a/client/package.json b/client/package.json index 13df0d4b..8cd4641b 100644 --- a/client/package.json +++ b/client/package.json @@ -24,7 +24,7 @@ }, "homepage": "https://github.com/shakacode/react-webpack-rails-tutorial", "scripts": { - "test": "mocha --compilers js:babel-core/register --require ./test/test_helper.js 'test/**/*.@(js|jsx)'", + "test": "NODE_PATH=./app mocha --compilers js:babel-core/register --require ./app/libs/testHelper.js 'app/**/*.spec.@(js|jsx)'", "test:debug": "npm run test -- --debug-brk", "start": "node server.js", "build:client": "NODE_ENV=production webpack --config webpack.client.rails.config.js", @@ -52,7 +52,7 @@ "es6-promise": "^3.0.2", "expose-loader": "^0.7.1", "file-loader": "^0.8.4", - "history": "^1.12.5", + "history": "^1.13.1", "immutable": "^3.7.5", "imports-loader": "^0.6.5", "jquery": "^2.1.4", diff --git a/client/webpack.client.base.config.js b/client/webpack.client.base.config.js index c0019298..4b7a4a0e 100644 --- a/client/webpack.client.base.config.js +++ b/client/webpack.client.base.config.js @@ -22,13 +22,13 @@ module.exports = { // This will contain the app entry points defined by webpack.hot.config and webpack.rails.config app: [ - './app/bundles/Comments/startup/clientGlobals', + './app/bundles/comments/startup/clientGlobals', ], }, resolve: { - extensions: ['', '.webpack.js', '.web.js', '.js', '.jsx', '.scss', '.css', 'config.js'], + extensions: ['', '.js', '.jsx'], alias: { - lib: path.join(process.cwd(), 'app', 'lib'), + libs: path.join(process.cwd(), 'app', 'libs'), }, }, plugins: [ diff --git a/client/webpack.server.rails.config.js b/client/webpack.server.rails.config.js index e5a4458b..be954637 100644 --- a/client/webpack.server.rails.config.js +++ b/client/webpack.server.rails.config.js @@ -10,15 +10,19 @@ module.exports = { // the project dir context: __dirname, - entry: ['./app/bundles/Comments/startup/serverGlobals', 'react-dom/server', 'react'], + entry: [ + 'react', + 'react-dom/server', + './app/bundles/comments/startup/serverGlobals', + ], output: { filename: 'server-bundle.js', path: '../app/assets/javascripts/generated', }, resolve: { - extensions: ['', '.webpack.js', '.web.js', '.js', '.jsx', 'config.js'], + extensions: ['', '.js', '.jsx'], alias: { - lib: path.join(process.cwd(), 'app', 'lib'), + libs: path.join(process.cwd(), 'app', 'libs'), }, }, plugins: [ From 832273ab3f9e2defa87d02c1faac15170b1a3b1b Mon Sep 17 00:00:00 2001 From: Alex Fedoseev Date: Sat, 12 Dec 2015 22:42:40 +0300 Subject: [PATCH 05/11] Transfer all assets management to webpack, switch to CSS Modules --- .gitignore | 2 +- Procfile.dev | 2 +- app/assets/javascripts/application.js | 12 +- app/assets/stylesheets/_bootstrap-custom.scss | 59 --------- app/assets/stylesheets/application.css.scss | 15 +-- app/assets/stylesheets/scaffolds.css.scss | 77 ----------- client/.bootstraprc | 123 ++++++++++++++++++ .../app}/assets/fonts/OpenSans-Bold.eot | Bin .../app}/assets/fonts/OpenSans-Bold.svg | 0 .../app}/assets/fonts/OpenSans-Bold.ttf | Bin .../app}/assets/fonts/OpenSans-Bold.woff | Bin .../app}/assets/fonts/OpenSans-Light.eot | Bin .../app}/assets/fonts/OpenSans-Light.svg | 0 .../app}/assets/fonts/OpenSans-Light.ttf | Bin .../app}/assets/fonts/OpenSans-Light.woff | Bin client/app/assets/styles/app-variables.scss | 10 ++ .../styles/bootstrap-pre-customizations.scss | 10 ++ .../components/CommentBox/CommentBox.jsx | 10 ++ .../components/CommentBox/CommentBox.scss | 17 +++ .../CommentBox/CommentForm/CommentForm.jsx | 6 +- .../CommentList/Comment/Comment.jsx | 6 +- .../CommentList/Comment/Comment.scss | 11 ++ .../CommentList/Comment/Comment.spec.jsx | 9 +- .../CommentBox/CommentList/CommentList.jsx | 15 ++- .../CommentScreen/CommentScreen.jsx | 53 +++++--- .../CommentScreen/CommentScreen.scss | 17 +++ .../CommentScreen}/images/railsonmaui.png | Bin .../CommentScreen}/images/twitter_64.png | Bin .../containers/RouterCommentsContainer.jsx | 18 +-- client/app/bundles/Comments/layout/Layout.jsx | 2 + .../app/bundles/Comments/layout/Layout.scss | 23 ++++ client/assets/fonts | 1 - client/assets/images | 1 - .../_app-styling-post-bootstrap-loading.scss | 65 --------- .../_bootstrap-variables-customization.scss | 34 ----- .../_test-sass-stylesheet-partial.scss | 5 - .../stylesheets/test-sass-stylesheet.scss | 13 -- client/assets/stylesheets/test-stylesheet.css | 5 - client/bootstrap-sass.config.js | 88 ------------- client/package.json | 7 +- client/webpack.client.base.config.js | 24 +++- client/webpack.client.hot.config.js | 44 ++++--- client/webpack.client.rails.config.js | 39 ++++-- client/webpack.server.rails.config.js | 19 ++- config/application.rb | 3 + config/initializers/assets.rb | 4 - config/initializers/react_on_rails.rb | 2 +- 47 files changed, 399 insertions(+), 452 deletions(-) delete mode 100644 app/assets/stylesheets/_bootstrap-custom.scss delete mode 100644 app/assets/stylesheets/scaffolds.css.scss create mode 100644 client/.bootstraprc rename {app => client/app}/assets/fonts/OpenSans-Bold.eot (100%) rename {app => client/app}/assets/fonts/OpenSans-Bold.svg (100%) rename {app => client/app}/assets/fonts/OpenSans-Bold.ttf (100%) rename {app => client/app}/assets/fonts/OpenSans-Bold.woff (100%) rename {app => client/app}/assets/fonts/OpenSans-Light.eot (100%) rename {app => client/app}/assets/fonts/OpenSans-Light.svg (100%) rename {app => client/app}/assets/fonts/OpenSans-Light.ttf (100%) rename {app => client/app}/assets/fonts/OpenSans-Light.woff (100%) create mode 100644 client/app/assets/styles/app-variables.scss create mode 100644 client/app/assets/styles/bootstrap-pre-customizations.scss create mode 100644 client/app/bundles/Comments/components/CommentBox/CommentBox.scss create mode 100644 client/app/bundles/Comments/components/CommentBox/CommentList/Comment/Comment.scss create mode 100644 client/app/bundles/Comments/components/CommentScreen/CommentScreen.scss rename {app/assets => client/app/bundles/Comments/components/CommentScreen}/images/railsonmaui.png (100%) rename {app/assets => client/app/bundles/Comments/components/CommentScreen}/images/twitter_64.png (100%) create mode 100644 client/app/bundles/Comments/layout/Layout.scss delete mode 120000 client/assets/fonts delete mode 120000 client/assets/images delete mode 100644 client/assets/stylesheets/_app-styling-post-bootstrap-loading.scss delete mode 100644 client/assets/stylesheets/_bootstrap-variables-customization.scss delete mode 100644 client/assets/stylesheets/_test-sass-stylesheet-partial.scss delete mode 100644 client/assets/stylesheets/test-sass-stylesheet.scss delete mode 100644 client/assets/stylesheets/test-stylesheet.css delete mode 100644 client/bootstrap-sass.config.js diff --git a/.gitignore b/.gitignore index 86a34a7b..0293f91f 100644 --- a/.gitignore +++ b/.gitignore @@ -27,7 +27,7 @@ vendor/ruby .ruby-gemset # Generated js bundles -/app/assets/javascripts/generated/* +/app/assets/webpack/ # Rubymine/IntelliJ .idea diff --git a/Procfile.dev b/Procfile.dev index 6fb953b3..9862aa33 100644 --- a/Procfile.dev +++ b/Procfile.dev @@ -1,4 +1,4 @@ web: rails s -client: sh -c 'rm app/assets/javascripts/generated/* || true && cd client && npm run build:dev:client' +client: sh -c 'rm app/assets/webpack/* || true && cd client && npm run build:dev:client' server: sh -c 'cd client && npm run build:dev:server' hot: sh -c 'cd client && npm start' diff --git a/app/assets/javascripts/application.js b/app/assets/javascripts/application.js index 8bba0bba..4d331823 100644 --- a/app/assets/javascripts/application.js +++ b/app/assets/javascripts/application.js @@ -10,14 +10,14 @@ // Read Sprockets README (https://github.com/sstephenson/sprockets#sprockets-directives) for details // about supported directives. -// CRITICAL that generated/vendor-bundle must be BEFORE bootstrap-sprockets and turbolinks since it is -// exposing jQuery and jQuery-ujs -//= require generated/vendor-bundle -//= require generated/app-bundle +// These assets are located in app/assets/webpack directory +// CRITICAL that webpack/vendor-bundle must be BEFORE turbolinks +// since it is exposing jQuery and jQuery-ujs +//= require vendor-bundle +//= require app-bundle -// Next two depend on jQuery +// Next one depend on jQuery //= require turbolinks -//= require bootstrap-sprockets //= require react_on_rails diff --git a/app/assets/stylesheets/_bootstrap-custom.scss b/app/assets/stylesheets/_bootstrap-custom.scss deleted file mode 100644 index f2708cb7..00000000 --- a/app/assets/stylesheets/_bootstrap-custom.scss +++ /dev/null @@ -1,59 +0,0 @@ -// Customizations - needs to be imported first! -// The _bootstrap-variables-customization.scss file is located under -// client/assets/stylesheets, which has been added to the Rails asset -// pipeline search path. See config/application.rb. -@import 'bootstrap-variables-customization'; - -// Core variables and mixins -@import 'bootstrap/variables'; -@import 'bootstrap/mixins'; - -// Reset and dependencies -@import 'bootstrap/normalize'; -@import 'bootstrap/print'; -@import 'bootstrap/glyphicons'; - -// Core CSS -@import 'bootstrap/scaffolding'; -@import 'bootstrap/type'; -@import 'bootstrap/code'; -@import 'bootstrap/grid'; -@import 'bootstrap/tables'; -@import 'bootstrap/forms'; -@import 'bootstrap/buttons'; - -// Components -@import 'bootstrap/component-animations'; -@import 'bootstrap/dropdowns'; -@import 'bootstrap/button-groups'; -@import 'bootstrap/input-groups'; -@import 'bootstrap/navs'; -@import 'bootstrap/navbar'; -@import 'bootstrap/breadcrumbs'; -@import 'bootstrap/pagination'; -@import 'bootstrap/pager'; -@import 'bootstrap/labels'; -@import 'bootstrap/badges'; -//@import 'bootstrap/jumbotron'; // excluding as an example -@import 'bootstrap/thumbnails'; -@import 'bootstrap/alerts'; -//@import 'bootstrap/progress-bars'; // excluding as an example -@import 'bootstrap/media'; -@import 'bootstrap/list-group'; -@import 'bootstrap/panels'; -@import 'bootstrap/responsive-embed'; -@import 'bootstrap/wells'; -@import 'bootstrap/close'; - -// Components w/ JavaScript -@import 'bootstrap/modals'; // excluding as an example -@import 'bootstrap/tooltip'; -@import 'bootstrap/popovers'; -@import 'bootstrap/carousel'; // excluding as an example - -// Utility classes -@import 'bootstrap/utilities'; -@import 'bootstrap/responsive-utilities'; - -// This must come after all the boostrap styles are loaded so that these styles can override those. -@import 'app-styling-post-bootstrap-loading'; diff --git a/app/assets/stylesheets/application.css.scss b/app/assets/stylesheets/application.css.scss index e2670123..f04425c6 100644 --- a/app/assets/stylesheets/application.css.scss +++ b/app/assets/stylesheets/application.css.scss @@ -1,12 +1,3 @@ -// This variable $rails is used by bootstrap-custom so that fonts are loaded slightly differently -// with Rails vs. the Webpack Dev Server -$rails: true; - -// Those scss files are located under client/assets/stylesheets, -// which has been added to the Rails asset pipeline search path. -// See config/application.rb. -@import 'bootstrap-custom'; -@import 'test-stylesheet'; -@import 'test-sass-stylesheet'; - -@import 'bootstrap-sprockets'; +// These assets are located in app/assets/webpack directory +@import 'vendor-bundle'; +@import 'app-bundle'; diff --git a/app/assets/stylesheets/scaffolds.css.scss b/app/assets/stylesheets/scaffolds.css.scss deleted file mode 100644 index 5bb34c9a..00000000 --- a/app/assets/stylesheets/scaffolds.css.scss +++ /dev/null @@ -1,77 +0,0 @@ -// scss-lint:disable SelectorFormat, IdSelector -body { - background-color: #FFFFFF; - color: #333333; - font-family: verdana, arial, helvetica, sans-serif; - font-size: 13px; - line-height: 18px; -} - -p, -ol, -ul, -td { - font-family: verdana, arial, helvetica, sans-serif; - font-size: 13px; - line-height: 18px; -} - -pre { - background-color: #EEEEEE; - font-size: 11px; - padding: 10px; -} - -a { - color: #000000; - - &:visited { - color: #666666; - } - - &:hover { - background-color: #000000; - color: #FFFFFF; - } -} - -div { - &.field, - &.actions { - margin-bottom: 10px; - } -} - -#notice { - color: green; -} - -.field_with_errors { - background-color: red; - display: table; - padding: 2px; -} - -#error_explanation { - background-color: #F0F0F0; - border: 2px solid red; - margin-bottom: 20px; - padding: 7px 7px 0; - width: 450px; - - h2 { - background-color: #CC0000; - color: #FFFFFF; - font-size: 12px; - font-weight: bold; - margin: -7px; - margin-bottom: 0; - padding: 5px 5px 5px 15px; - text-align: left; - } - - ul li { - font-size: 12px; - list-style: square; - } -} diff --git a/client/.bootstraprc b/client/.bootstraprc new file mode 100644 index 00000000..5286126b --- /dev/null +++ b/client/.bootstraprc @@ -0,0 +1,123 @@ +--- +# Output debugging info +# loglevel: debug + +# Major version of Bootstrap: 3 or 4 +bootstrapVersion: 3 + +# Webpack loaders, order matters +styleLoaders: + - style + - css + - sass + +# Extract styles to stand-alone css file +# Different settings for different environments can be used, +# It depends on value of NODE_ENV environment variable +# This param can also be set in webpack config: +# entry: 'bootstrap-loader/extractStyles' +extractStyles: false +# env: +# development: +# extractStyles: false +# production: +# extractStyles: true + +# Customize Bootstrap variables that get imported before the original Bootstrap variables. +# Thus original Bootstrap variables can depend on values from here. All the bootstrap +# variables are configured with !default, and thus, if you define the variable here, then +# that value is used, rather than the default. However, many bootstrap variables are derived +# from other bootstrap variables, and thus, you want to set this up before we load the +# official bootstrap versions. +# For example, _variables.scss contains: +# $input-color: $gray !default; +# This means you can define $input-color before we load _variables.scss +preBootstrapCustomizations: ./app/assets/styles/bootstrap-pre-customizations.scss + +# This gets loaded after bootstrap/variables is loaded and before bootstrap is loaded. +# A good example of this is when you want to override a bootstrap variable to be based +# on the default value of bootstrap. This is pretty specialized case. Thus, you normally +# just override bootrap variables in preBootstrapCustomizations so that derived +# variables will use your definition. +# +# For example, in _variables.scss: +# $input-height: (($font-size-base * $line-height) + ($input-padding-y * 2) + ($border-width * 2)) !default; +# This means that you could define this yourself in preBootstrapCustomizations. Or you can do +# this in bootstrapCustomizations to make the input height 10% bigger than the default calculation. +# Thus you can leverage the default calculations. +# $input-height: $input-height * 1.10; +# bootstrapCustomizations: ./app/assets/styles/bootstrap-customizations.scss + +# Import your custom styles here. You have access to all the bootstrap variables. If you require +# your sass files separately, you will not have access to the bootstrap variables, mixins, clases, etc. +# Usually this endpoint-file contains list of @imports of your application styles. +# But since we use CSS Modules, we don't need it - every module gets imported from JS component. +# appStyles: ./app/styles/app.scss + +### Bootstrap styles +styles: + + # Mixins + mixins: true + + # Reset and dependencies + normalize: true + print: true + glyphicons: true + + # Core CSS + scaffolding: true + type: true + code: true + grid: true + tables: true + forms: true + buttons: true + + # Components + component-animations: true + dropdowns: true + button-groups: true + input-groups: true + navs: true + navbar: true + breadcrumbs: true + pagination: true + pager: true + labels: true + badges: true + jumbotron: true + thumbnails: true + alerts: true + progress-bars: true + media: true + list-group: true + panels: true + wells: true + responsive-embed: true + close: true + + # Components w/ JavaScript + modals: true + tooltip: true + popovers: true + carousel: true + + # Utility classes + utilities: true + responsive-utilities: true + +### Bootstrap scripts +scripts: + transition: true + alert: true + button: true + carousel: true + collapse: true + dropdown: true + modal: true + tooltip: true + popover: true + scrollspy: true + tab: true + affix: true diff --git a/app/assets/fonts/OpenSans-Bold.eot b/client/app/assets/fonts/OpenSans-Bold.eot similarity index 100% rename from app/assets/fonts/OpenSans-Bold.eot rename to client/app/assets/fonts/OpenSans-Bold.eot diff --git a/app/assets/fonts/OpenSans-Bold.svg b/client/app/assets/fonts/OpenSans-Bold.svg similarity index 100% rename from app/assets/fonts/OpenSans-Bold.svg rename to client/app/assets/fonts/OpenSans-Bold.svg diff --git a/app/assets/fonts/OpenSans-Bold.ttf b/client/app/assets/fonts/OpenSans-Bold.ttf similarity index 100% rename from app/assets/fonts/OpenSans-Bold.ttf rename to client/app/assets/fonts/OpenSans-Bold.ttf diff --git a/app/assets/fonts/OpenSans-Bold.woff b/client/app/assets/fonts/OpenSans-Bold.woff similarity index 100% rename from app/assets/fonts/OpenSans-Bold.woff rename to client/app/assets/fonts/OpenSans-Bold.woff diff --git a/app/assets/fonts/OpenSans-Light.eot b/client/app/assets/fonts/OpenSans-Light.eot similarity index 100% rename from app/assets/fonts/OpenSans-Light.eot rename to client/app/assets/fonts/OpenSans-Light.eot diff --git a/app/assets/fonts/OpenSans-Light.svg b/client/app/assets/fonts/OpenSans-Light.svg similarity index 100% rename from app/assets/fonts/OpenSans-Light.svg rename to client/app/assets/fonts/OpenSans-Light.svg diff --git a/app/assets/fonts/OpenSans-Light.ttf b/client/app/assets/fonts/OpenSans-Light.ttf similarity index 100% rename from app/assets/fonts/OpenSans-Light.ttf rename to client/app/assets/fonts/OpenSans-Light.ttf diff --git a/app/assets/fonts/OpenSans-Light.woff b/client/app/assets/fonts/OpenSans-Light.woff similarity index 100% rename from app/assets/fonts/OpenSans-Light.woff rename to client/app/assets/fonts/OpenSans-Light.woff diff --git a/client/app/assets/styles/app-variables.scss b/client/app/assets/styles/app-variables.scss new file mode 100644 index 00000000..358d685b --- /dev/null +++ b/client/app/assets/styles/app-variables.scss @@ -0,0 +1,10 @@ +// Defining application SASS variables in stand-alone file, +// so we can use them in bootstrap-loader and CSS Modules via sass-resources-loader +$body-bg: #eff8fb; // background w/ character +$navbar-default-bg: #ffffe0; // fancy yellow navbar +$font-size-base: 15px; // make it bigger! +$font-family-sans-serif: 'OpenSans-Light'; // apply custom font + +// It will be used in SASS components imported as CSS Modules +$comment-author-color: blue; +$comment-text-color: purple; diff --git a/client/app/assets/styles/bootstrap-pre-customizations.scss b/client/app/assets/styles/bootstrap-pre-customizations.scss new file mode 100644 index 00000000..6f42ee6e --- /dev/null +++ b/client/app/assets/styles/bootstrap-pre-customizations.scss @@ -0,0 +1,10 @@ +// These variables get loaded BEFORE Bootstrap thus overriding them in Bootstrap. +@import "./app-variables"; + +// This path is relative to this file! +$fonts-url-path: "../fonts"; + +@font-face { + font-family: "OpenSans-Light"; + src: url("#{$fonts-url-path}/OpenSans-Light.ttf") format("truetype"); +} diff --git a/client/app/bundles/Comments/components/CommentBox/CommentBox.jsx b/client/app/bundles/Comments/components/CommentBox/CommentBox.jsx index 655f1102..88d22982 100644 --- a/client/app/bundles/Comments/components/CommentBox/CommentBox.jsx +++ b/client/app/bundles/Comments/components/CommentBox/CommentBox.jsx @@ -3,6 +3,8 @@ import React, { PropTypes } from 'react'; import CommentForm from './CommentForm/CommentForm'; import CommentList from './CommentList/CommentList'; +import css from './CommentBox.scss'; + export default class CommentBox extends React.Component { static propTypes = { @@ -23,6 +25,12 @@ export default class CommentBox extends React.Component { render() { const { actions, data } = this.props; + const cssTransitionGroupClassNames = { + enter: css.elementEnter, + enterActive: css.elementEnterActive, + leave: css.elementLeave, + leaveActive: css.elementLeaveActive, + }; return (
@@ -37,10 +45,12 @@ export default class CommentBox extends React.Component { isSaving={data.get('isSaving')} error={data.get('submitCommentError')} actions={actions} + cssTransitionGroupClassNames={cssTransitionGroupClassNames} />
); diff --git a/client/app/bundles/Comments/components/CommentBox/CommentBox.scss b/client/app/bundles/Comments/components/CommentBox/CommentBox.scss new file mode 100644 index 00000000..8cfd2d06 --- /dev/null +++ b/client/app/bundles/Comments/components/CommentBox/CommentBox.scss @@ -0,0 +1,17 @@ +.elementEnter { + opacity: 0.01; + + &.elementEnterActive { + opacity: 1; + transition: opacity 0.5s ease-in; + } +} + +.elementLeave { + opacity: 1; + + &.elementLeaveActive { + opacity: 0.01; + transition: opacity 0.5s ease-in; + } +} diff --git a/client/app/bundles/Comments/components/CommentBox/CommentForm/CommentForm.jsx b/client/app/bundles/Comments/components/CommentBox/CommentForm/CommentForm.jsx index c0b6e2f7..23413b24 100644 --- a/client/app/bundles/Comments/components/CommentBox/CommentForm/CommentForm.jsx +++ b/client/app/bundles/Comments/components/CommentBox/CommentForm/CommentForm.jsx @@ -17,6 +17,7 @@ export default class CommentForm extends React.Component { isSaving: PropTypes.bool.isRequired, actions: PropTypes.object.isRequired, error: PropTypes.any, + cssTransitionGroupClassNames: PropTypes.object.isRequired, }; constructor(props, context) { @@ -229,10 +230,13 @@ export default class CommentForm extends React.Component { default: throw new Error(`Unknown form mode: ${this.state.formMode}.`); } + + const { cssTransitionGroupClassNames } = this.props; + return (
diff --git a/client/app/bundles/Comments/components/CommentBox/CommentList/Comment/Comment.jsx b/client/app/bundles/Comments/components/CommentBox/CommentList/Comment/Comment.jsx index 588234c6..878225e8 100644 --- a/client/app/bundles/Comments/components/CommentBox/CommentList/Comment/Comment.jsx +++ b/client/app/bundles/Comments/components/CommentBox/CommentList/Comment/Comment.jsx @@ -1,6 +1,8 @@ import React, { PropTypes } from 'react'; import marked from 'marked'; +import css from './Comment.scss'; + export default class Comment extends React.Component { static propTypes = { @@ -13,8 +15,8 @@ export default class Comment extends React.Component { const rawMarkup = marked(text, { gfm: true, sanitize: true }); return ( -
-

+
+

{author}

{ ); - const comment = findRenderedDOMComponentWithTag(component, 'div'); - expect(comment.className).to.equal('comment'); - const author = findRenderedDOMComponentWithTag(component, 'h2'); - expect(author.className).to.equal('comment-author'); + // TODO: Setup testing of CSS Modules classNames + // const comment = findRenderedDOMComponentWithTag(component, 'div'); + // expect(comment.className).to.equal('comment'); + // const author = findRenderedDOMComponentWithTag(component, 'h2'); + // expect(author.className).to.equal('comment-author'); const text = findRenderedDOMComponentWithTag(component, 'span'); expect(text.className).to.equal('comment-text'); }); diff --git a/client/app/bundles/Comments/components/CommentBox/CommentList/CommentList.jsx b/client/app/bundles/Comments/components/CommentBox/CommentList/CommentList.jsx index de9b5920..a889525a 100644 --- a/client/app/bundles/Comments/components/CommentBox/CommentList/CommentList.jsx +++ b/client/app/bundles/Comments/components/CommentBox/CommentList/CommentList.jsx @@ -11,6 +11,7 @@ export default class CommentList extends React.Component { static propTypes = { $$comments: PropTypes.instanceOf(Immutable.List).isRequired, error: PropTypes.any, + cssTransitionGroupClassNames: PropTypes.object.isRequired, }; constructor(props, context) { @@ -31,7 +32,7 @@ export default class CommentList extends React.Component { } render() { - const { $$comments } = this.props; + const { $$comments, cssTransitionGroupClassNames } = this.props; const commentNodes = $$comments.reverse().map($$comment => { // `key` is a React-specific concept and is not mandatory for the // purpose of this tutorial. if you're curious, see more here: @@ -48,7 +49,7 @@ export default class CommentList extends React.Component { return (
@@ -56,11 +57,11 @@ export default class CommentList extends React.Component { {commentNodes} diff --git a/client/app/bundles/Comments/components/CommentScreen/CommentScreen.jsx b/client/app/bundles/Comments/components/CommentScreen/CommentScreen.jsx index dc3e55c8..b83bd07f 100644 --- a/client/app/bundles/Comments/components/CommentScreen/CommentScreen.jsx +++ b/client/app/bundles/Comments/components/CommentScreen/CommentScreen.jsx @@ -1,35 +1,54 @@ import React, { PropTypes } from 'react'; + import CommentBox from '../CommentBox/CommentBox'; +import css from './CommentScreen.scss'; + export default class CommentScreen extends React.Component { static propTypes = { actions: PropTypes.object.isRequired, data: PropTypes.object.isRequired, + locationState: PropTypes.object, }; + _renderNotification() { + const { locationState } = this.props; + + if (!locationState || !locationState.redirectFrom) return null; + + return ( +
+ You've been redirected from {locationState.redirectFrom} +
+ ); + } + render() { const { data, actions } = this.props; return (
- -
- -

-
- Example of styling using image-url and Open Sans Light custom font -

-
- -
- Rails On Maui on Twitter - + {this._renderNotification()} + ); diff --git a/client/app/bundles/Comments/components/CommentScreen/CommentScreen.scss b/client/app/bundles/Comments/components/CommentScreen/CommentScreen.scss new file mode 100644 index 00000000..10953236 --- /dev/null +++ b/client/app/bundles/Comments/components/CommentScreen/CommentScreen.scss @@ -0,0 +1,17 @@ +.notification { + padding: 1em 1.5em; +} + +.logo { + background: url(./images/railsonmaui.png) no-repeat left bottom; + display: inline-block; + height: 40px; + margin-right: 10px; + width: 146px; +} + +.twitterImage { + background: url(./images/twitter_64.png) no-repeat; + height: 64px; + width: 64px; +} diff --git a/app/assets/images/railsonmaui.png b/client/app/bundles/Comments/components/CommentScreen/images/railsonmaui.png similarity index 100% rename from app/assets/images/railsonmaui.png rename to client/app/bundles/Comments/components/CommentScreen/images/railsonmaui.png diff --git a/app/assets/images/twitter_64.png b/client/app/bundles/Comments/components/CommentScreen/images/twitter_64.png similarity index 100% rename from app/assets/images/twitter_64.png rename to client/app/bundles/Comments/components/CommentScreen/images/twitter_64.png diff --git a/client/app/bundles/Comments/containers/RouterCommentsContainer.jsx b/client/app/bundles/Comments/containers/RouterCommentsContainer.jsx index 58b4e5d5..fead43dc 100644 --- a/client/app/bundles/Comments/containers/RouterCommentsContainer.jsx +++ b/client/app/bundles/Comments/containers/RouterCommentsContainer.jsx @@ -10,6 +10,7 @@ function select(state) { } class RouterCommentsContainer extends React.Component { + static propTypes = { dispatch: PropTypes.func.isRequired, data: PropTypes.object.isRequired, @@ -18,26 +19,13 @@ class RouterCommentsContainer extends React.Component { }).isRequired, }; - _renderNotification() { - const locationState = this.props.location.state; - if (!locationState || !locationState.redirectFrom) return null; - - return ( -
- You've been redirected from {locationState.redirectFrom} -
- ); - } - render() { const { dispatch, data } = this.props; const actions = bindActionCreators(commentsActionCreators, dispatch); + const locationState = this.props.location.state; return ( -
- {this._renderNotification()} - -
+ ); } } diff --git a/client/app/bundles/Comments/layout/Layout.jsx b/client/app/bundles/Comments/layout/Layout.jsx index 95557ffe..cb24ceaf 100644 --- a/client/app/bundles/Comments/layout/Layout.jsx +++ b/client/app/bundles/Comments/layout/Layout.jsx @@ -1,6 +1,8 @@ import React, { PropTypes } from 'react'; import { IndexLink, Link } from 'react-router'; +import './Layout.scss'; + export default class Layout extends React.Component { static propTypes = { diff --git a/client/app/bundles/Comments/layout/Layout.scss b/client/app/bundles/Comments/layout/Layout.scss new file mode 100644 index 00000000..fa3ff596 --- /dev/null +++ b/client/app/bundles/Comments/layout/Layout.scss @@ -0,0 +1,23 @@ +// This way we turn CSS Modules off and apply these css rules globaly +:global { + + body { + padding-top: 20px; + } + + .active:visited, + .active { + color: purple; + font-weight: bold; + text-decoration: underline; + } + + // scss-lint:disable IdSelector + #nav.affix { + position: fixed; + top: 3px; + width: 80%; + z-index: 10; + } + +} diff --git a/client/assets/fonts b/client/assets/fonts deleted file mode 120000 index 7a488174..00000000 --- a/client/assets/fonts +++ /dev/null @@ -1 +0,0 @@ -../../app/assets/fonts \ No newline at end of file diff --git a/client/assets/images b/client/assets/images deleted file mode 120000 index 67b6dd19..00000000 --- a/client/assets/images +++ /dev/null @@ -1 +0,0 @@ -../../app/assets/images \ No newline at end of file diff --git a/client/assets/stylesheets/_app-styling-post-bootstrap-loading.scss b/client/assets/stylesheets/_app-styling-post-bootstrap-loading.scss deleted file mode 100644 index f27addf0..00000000 --- a/client/assets/stylesheets/_app-styling-post-bootstrap-loading.scss +++ /dev/null @@ -1,65 +0,0 @@ -// This file is used as part of the bootstrap-sass-loader customization -// ## Baseline - -// Included from bootstrap-sass.config.js -body { - padding-top: 20px; -} - -.doc-content { - padding-top: 10px; -} - -.logo { - background: img-url('railsonmaui.png') no-repeat left bottom; - display: inline-block; - height: 40px; - margin-right: 10px; - width: 146px; -} - -.twitter-image { - background: img-url('twitter_64.png') no-repeat; - height: 64px; - width: 64px; -} - -.open-sans-light { - font-family: 'OpenSans-Light', sans-serif; // making use of custom fonts -} - -// ## Nav -// When nav is affixed, set it's position and size. - -// scss-lint:disable IdSelector -#nav.affix { - position: fixed; - top: 3px; - width: 80%; - z-index: 10; -} - -.element-enter { - opacity: 0.01; - - &.element-enter-active { - opacity: 1; - transition: opacity 0.5s ease-in; - } -} - -.element-leave { - opacity: 1; - - &.element-leave-active { - opacity: 0.01; - transition: opacity 0.5s ease-in; - } -} - -.active:visited, -.active { - color: purple; - font-weight: bold; - text-decoration: underline; -} diff --git a/client/assets/stylesheets/_bootstrap-variables-customization.scss b/client/assets/stylesheets/_bootstrap-variables-customization.scss deleted file mode 100644 index 003f0b6d..00000000 --- a/client/assets/stylesheets/_bootstrap-variables-customization.scss +++ /dev/null @@ -1,34 +0,0 @@ -$rails: false !default; -// defaults to false (e.g. webpack environment) - -// These variables get loaded BEFORE Bootstrap thus overriding them in Bootstrap. -$body-bg: #EFF8FB; -// background w/ character -$navbar-default-bg: #FFFFE0; -// fancy yellow navbar -$font-size-base: 15px; -// make it bigger! - -// Define a custom font. -// Libsass, which is used by the webpack sass loader, does not support font-url() -// so we use url() instead. This is a known issue. -@font-face { - font-family: 'OpenSans-Light'; - @if $rails { - src: font-url('OpenSans-Light.ttf') format('truetype'); - } @else { - src: url('assets/fonts/OpenSans-Light.ttf') format('truetype'); - } -} - -// Sass 3 removes image-url helper -// https://github.com/sass/libsass/issues/489 -$image-url-path: '/assets/images/' !default; - -@function img-url($image) { - @if $rails { - @return image-url($image); - } @else { - @return url('#{$image-url-path}#{$image}'); - } -} diff --git a/client/assets/stylesheets/_test-sass-stylesheet-partial.scss b/client/assets/stylesheets/_test-sass-stylesheet-partial.scss deleted file mode 100644 index c85f5f2f..00000000 --- a/client/assets/stylesheets/_test-sass-stylesheet-partial.scss +++ /dev/null @@ -1,5 +0,0 @@ -// Example of a partial setting a variable - -$comment-text-color: purple; - - diff --git a/client/assets/stylesheets/test-sass-stylesheet.scss b/client/assets/stylesheets/test-sass-stylesheet.scss deleted file mode 100644 index 97929ac6..00000000 --- a/client/assets/stylesheets/test-sass-stylesheet.scss +++ /dev/null @@ -1,13 +0,0 @@ -// Proof of concept of loading css from webpack -// partial defines the $comment-text-color -@import 'test-sass-stylesheet-partial'; - -.comment { - p { - color: $comment-text-color; - } -} - -.notification { - padding: 1em 1.5em; -} diff --git a/client/assets/stylesheets/test-stylesheet.css b/client/assets/stylesheets/test-stylesheet.css deleted file mode 100644 index b5f69e62..00000000 --- a/client/assets/stylesheets/test-stylesheet.css +++ /dev/null @@ -1,5 +0,0 @@ -// Proof of concept of loading css from webpack - -.comment-author { - color: blue; -} diff --git a/client/bootstrap-sass.config.js b/client/bootstrap-sass.config.js deleted file mode 100644 index f7718848..00000000 --- a/client/bootstrap-sass.config.js +++ /dev/null @@ -1,88 +0,0 @@ -// IMPORTANT: Make sure to keep the customizations defined in this file -// in-sync with the ones defined in app/assets/stylesheets/_bootstrap-custom.scss. - -module.exports = { - bootstrapCustomizations: './assets/stylesheets/_bootstrap-variables-customization.scss', - mainSass: './assets/stylesheets/_app-styling-post-bootstrap-loading.scss', - - // Default for the style loading is to put in your js files - // styleLoader: 'style-loader!css-loader!sass-loader', - - // See: https://github.com/sass/node-sass#outputstyle - // https://github.com/sass/node-sass#imagepath - styleLoader: 'style-loader!css-loader!sass-loader?imagePath=/assets/images', - - // ### Scripts - // Any scripts here set to false will never make it to the client, - // i.e. it's not packaged by webpack. - scripts: { - transition: true, - alert: true, - button: true, - - // excluding as an example - carousel: false, - collapse: true, - dropdown: true, - - // excluding as an example - modal: false, - tooltip: true, - popover: true, - scrollspy: true, - tab: true, - affix: true, - }, - - // ### Styles - // Enable or disable certain less components and thus remove - // the css for them from the build. - styles: { - mixins: true, - - normalize: true, - print: true, - - scaffolding: true, - type: true, - code: true, - grid: true, - tables: true, - forms: true, - buttons: true, - - 'component-animations': true, - glyphicons: true, - dropdowns: true, - 'button-groups': true, - 'input-groups': true, - navs: true, - navbar: true, - breadcrumbs: true, - pagination: true, - pager: true, - labels: true, - badges: true, - - // excluding as an example - jumbotron: false, - thumbnails: true, - alerts: true, - - // excluding as an example - 'progress-bars': false, - media: true, - 'list-group': true, - panels: true, - wells: true, - close: true, - - modals: true, - tooltip: true, - popovers: true, - carousel: true, - - utilities: true, - 'responsive-utilities': true, - }, -}; diff --git a/client/package.json b/client/package.json index 8cd4641b..cd34d2a8 100644 --- a/client/package.json +++ b/client/package.json @@ -36,6 +36,7 @@ "jscs": "jscs --verbose ." }, "dependencies": { + "autoprefixer": "^6.1.2", "axios": "^0.7.0", "babel": "^6.3.13", "babel-cli": "^6.3.17", @@ -45,12 +46,13 @@ "babel-preset-es2015": "^6.3.13", "babel-preset-react": "^6.3.13", "babel-preset-stage-0": "^6.3.13", + "bootstrap-loader": "^1.0.0-rc", "bootstrap-sass": "^3.3.5", - "bootstrap-sass-loader": "^1.0.9", "css-loader": "^0.23.0", "es5-shim": "^4.3.1", "es6-promise": "^3.0.2", "expose-loader": "^0.7.1", + "extract-text-webpack-plugin": "^0.9.1", "file-loader": "^0.8.4", "history": "^1.13.1", "immutable": "^3.7.5", @@ -62,6 +64,7 @@ "marked": "^0.3.5", "node-sass": "^3.4.2", "node-uuid": "^1.4.7", + "postcss-loader": "^0.8.0", "react": "^0.14.3", "react-bootstrap": "^0.28.1", "react-dom": "^0.14.3", @@ -70,7 +73,9 @@ "redux": "^3.0.4", "redux-promise": "^0.5.0", "redux-thunk": "^1.0.0", + "resolve-url-loader": "^1.4.3", "sass-loader": "^3.1.1", + "sass-resources-loader": "0.0.2", "style-loader": "^0.13.0", "url-loader": "^0.5.6", "webpack": "^1.12.8" diff --git a/client/webpack.client.base.config.js b/client/webpack.client.base.config.js index 4b7a4a0e..d9272ba4 100644 --- a/client/webpack.client.base.config.js +++ b/client/webpack.client.base.config.js @@ -2,6 +2,7 @@ const webpack = require('webpack'); const path = require('path'); +const autoprefixer = require('autoprefixer'); const devBuild = process.env.NODE_ENV !== 'production'; const nodeEnv = devBuild ? 'development' : 'production'; @@ -54,12 +55,33 @@ module.exports = { ], module: { loaders: [ + { test: /\.(woff2?|svg)$/, loader: 'url?limit=10000' }, + { test: /\.(ttf|eot)$/, loader: 'file' }, + { test: /\.(jpe?g|png|gif|svg|ico)$/, loader: 'url?limit=10000' }, - // React is necessary for the client rendering: + // React is necessary for the client rendering { test: require.resolve('react'), loader: 'expose?React' }, { test: require.resolve('react-dom'), loader: 'expose?ReactDOM' }, { test: require.resolve('jquery'), loader: 'expose?jQuery' }, { test: require.resolve('jquery'), loader: 'expose?$' }, + + // Use one of these to serve jQuery for Bootstrap scripts: + + // Bootstrap 3 + { test: /bootstrap-sass\/assets\/javascripts\//, loader: 'imports?jQuery=jquery' }, + + // Bootstrap 4 + { test: /bootstrap\/dist\/js\/umd\//, loader: 'imports?jQuery=jquery' }, ], }, + + // Place here all postCSS plugins here, so postcss-loader will apply them + postcss: [autoprefixer], + + // Place here all SASS files with variables, mixins etc. + // And sass-resources-loader will load them in every CSS Module (SASS file) for you + // (so don't need to @import them explicitly) + // https://github.com/shakacode/sass-resources-loader + sassResources: ['./app/assets/styles/app-variables.scss'], + }; diff --git a/client/webpack.client.hot.config.js b/client/webpack.client.hot.config.js index 3d18b13e..da9fba0c 100644 --- a/client/webpack.client.hot.config.js +++ b/client/webpack.client.hot.config.js @@ -2,21 +2,15 @@ // cd client && node server.js const webpack = require('webpack'); -const path = require('path'); + const config = require('./webpack.client.base.config'); -// We're using the bootstrap-sass loader. -// See: https://github.com/shakacode/bootstrap-sass-loader -config.entry.vendor.push('bootstrap-sass!./bootstrap-sass.config.js'); +config.entry.vendor.push('bootstrap-loader'); config.entry.app.push( // Webpack dev server 'webpack-dev-server/client?http://localhost:4000', - 'webpack/hot/dev-server', - - // Test out Css & Sass - './assets/stylesheets/test-stylesheet.css', - './assets/stylesheets/test-sass-stylesheet.scss' + 'webpack/hot/dev-server' ); config.output = { @@ -25,7 +19,10 @@ config.output = { filename: '[name]-bundle.js', path: __dirname, }; -config.plugins.unshift(new webpack.HotModuleReplacementPlugin()); +config.plugins.unshift( + new webpack.HotModuleReplacementPlugin(), + new webpack.NoErrorsPlugin() +); config.devtool = 'eval-source-map'; // All the styling loaders only apply to hot-reload, not rails @@ -51,19 +48,24 @@ config.module.loaders.push( ], }, }, - { test: /\.css$/, loader: 'style-loader!css-loader' }, { - test: /\.scss$/, - loader: 'style!css!sass?outputStyle=expanded&imagePath=/assets/images&includePaths[]=' + - path.resolve(__dirname, './assets/stylesheets'), + test: /\.css$/, + loaders: [ + 'style', + 'css?modules&importLoaders=1&localIdentName=[name]__[local]__[hash:base64:5]', + 'postcss', + ], }, - - // The url-loader uses DataUrls. The file-loader emits files. - { test: /\.woff$/, loader: 'url-loader?limit=10000&mimetype=application/font-woff' }, - { test: /\.woff2$/, loader: 'url-loader?limit=10000&mimetype=application/font-woff' }, - { test: /\.ttf$/, loader: 'file-loader' }, - { test: /\.eot$/, loader: 'file-loader' }, - { test: /\.svg$/, loader: 'file-loader' } + { + test: /\.scss$/, + loaders: [ + 'style', + 'css?modules&importLoaders=3&localIdentName=[name]__[local]__[hash:base64:5]', + 'postcss', + 'sass', + 'sass-resources', + ], + } ); module.exports = config; diff --git a/client/webpack.client.rails.config.js b/client/webpack.client.rails.config.js index bd1ce725..d185f4ed 100644 --- a/client/webpack.client.rails.config.js +++ b/client/webpack.client.rails.config.js @@ -1,23 +1,24 @@ // Run like this: -// cd client && npm run build:dev +// cd client && npm run build:dev:client // Note that Foreman (Procfile.dev) has also been configured to take care of this. -// NOTE: All style sheets handled by the asset pipeline in rails - const webpack = require('webpack'); +const ExtractTextPlugin = require('extract-text-webpack-plugin'); + const config = require('./webpack.client.base.config'); const devBuild = process.env.NODE_ENV !== 'production'; config.output = { filename: '[name]-bundle.js', - path: '../app/assets/javascripts/generated', + path: '../app/assets/webpack', }; // You can add entry points specific to rails here config.entry.vendor.unshift( 'es5-shim/es5-shim', - 'es5-shim/es5-sham' + 'es5-shim/es5-sham', + 'bootstrap-loader/extractStyles' ); // jquery-ujs MUST GO AFTER jquery, so must use 'push' @@ -27,17 +28,37 @@ config.entry.app.push('jquery-ujs'); config.module.loaders.push( { test: /\.jsx?$/, loader: 'babel-loader', exclude: /node_modules/ }, + { + test: /\.css$/, + loader: ExtractTextPlugin.extract( + 'style', + 'css?minimize&modules&importLoaders=1&localIdentName=[name]__[local]__[hash:base64:5]' + + '!postcss' + ), + }, + { + test: /\.scss$/, + loader: ExtractTextPlugin.extract( + 'style', + 'css?minimize&modules&importLoaders=3&localIdentName=[name]__[local]__[hash:base64:5]' + + '!postcss' + + '!sass' + + '!sass-resources' + ), + }, { test: require.resolve('react'), loader: 'imports?shim=es5-shim/es5-shim&sham=es5-shim/es5-sham' } ); -module.exports = config; +config.plugins.push( + new ExtractTextPlugin('[name]-bundle.css', { allChunks: true }), + new webpack.optimize.DedupePlugin() +); if (devBuild) { console.log('Webpack dev build for Rails'); // eslint-disable-line no-console module.exports.devtool = 'eval-source-map'; } else { - config.plugins.push( - new webpack.optimize.DedupePlugin() - ); console.log('Webpack production build for Rails'); // eslint-disable-line no-console } + +module.exports = config; diff --git a/client/webpack.server.rails.config.js b/client/webpack.server.rails.config.js index be954637..35364f76 100644 --- a/client/webpack.server.rails.config.js +++ b/client/webpack.server.rails.config.js @@ -17,7 +17,7 @@ module.exports = { ], output: { filename: 'server-bundle.js', - path: '../app/assets/javascripts/generated', + path: '../app/assets/webpack', }, resolve: { extensions: ['', '.js', '.jsx'], @@ -35,10 +35,27 @@ module.exports = { module: { loaders: [ { test: /\.jsx?$/, loader: 'babel-loader', exclude: /node_modules/ }, + { + test: /\.css$/, + loaders: [ + 'css/locals?modules&importLoaders=0&localIdentName=[name]__[local]__[hash:base64:5]', + ], + }, + { + test: /\.scss$/, + loaders: [ + 'css/locals?modules&importLoaders=2&localIdentName=[name]__[local]__[hash:base64:5]', + 'sass', + 'sass-resources', + ], + }, // React is necessary for the client rendering: { test: require.resolve('react'), loader: 'expose?React' }, { test: require.resolve('react-dom/server'), loader: 'expose?ReactDOMServer' }, ], }, + + sassResources: ['./app/assets/styles/app-variables.scss'], + }; diff --git a/config/application.rb b/config/application.rb index 4638d1ab..28452ae2 100644 --- a/config/application.rb +++ b/config/application.rb @@ -20,6 +20,9 @@ class Application < Rails::Application # config.i18n.load_path += Dir[Rails.root.join("my", "locales", "*.{rb,yml}").to_s] # config.i18n.default_locale = :de + # Add folder with webpack generated assets to assets.paths + config.assets.paths << Rails.root.join("app", "assets", "webpack") + # For not swallow errors in after_commit/after_rollback callbacks. config.active_record.raise_in_transactional_callbacks = true end diff --git a/config/initializers/assets.rb b/config/initializers/assets.rb index 5f3f7d21..632389c3 100644 --- a/config/initializers/assets.rb +++ b/config/initializers/assets.rb @@ -6,9 +6,5 @@ # Add additional assets to the asset load path # Rails.application.config.assets.paths << Emoji.images_path -# Add client/assets/stylesheets to asset pipeline's search path. -Rails.application.config.assets.paths << Rails.root.join("client", "assets", "stylesheets") - # Precompile additional assets. # application.js, application.css, and all non-JS/CSS in app/assets folder are already added. -Rails.application.config.assets.precompile += %w( generated/server-bundle.js ) diff --git a/config/initializers/react_on_rails.rb b/config/initializers/react_on_rails.rb index 6e929b29..41d6c24e 100644 --- a/config/initializers/react_on_rails.rb +++ b/config/initializers/react_on_rails.rb @@ -4,7 +4,7 @@ # 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 + config.server_bundle_js_file = "app/assets/webpack/server-bundle.js" # This is the default # Below options can be overriden by passing to the helper method. config.prerender = true # default is false From aae804d65533ba671fac510b86e0196183c2060d Mon Sep 17 00:00:00 2001 From: Alex Fedoseev Date: Sun, 13 Dec 2015 00:27:33 +0300 Subject: [PATCH 06/11] Make Rails development views hot reloadable --- Procfile.dev | 4 +- .../{application.js => application_dev.js} | 10 +-- app/assets/javascripts/application_prod.js | 13 +++ .../stylesheets/application_dev.css.scss | 2 + ...ion.css.scss => application_prod.css.scss} | 3 + app/helpers/application_helper.rb | 9 ++ app/views/layouts/application.html.erb | 6 +- client/package.json | 4 +- client/server.rails.hot.js | 35 ++++++++ client/webpack.client.hot.config.js | 4 +- ...s => webpack.client.rails.build.config.js} | 8 +- client/webpack.client.rails.hot.config.js | 82 +++++++++++++++++++ config/initializers/assets.rb | 1 + 13 files changed, 163 insertions(+), 18 deletions(-) rename app/assets/javascripts/{application.js => application_dev.js} (72%) create mode 100644 app/assets/javascripts/application_prod.js create mode 100644 app/assets/stylesheets/application_dev.css.scss rename app/assets/stylesheets/{application.css.scss => application_prod.css.scss} (68%) create mode 100644 client/server.rails.hot.js rename client/{webpack.client.rails.config.js => webpack.client.rails.build.config.js} (90%) create mode 100644 client/webpack.client.rails.hot.config.js diff --git a/Procfile.dev b/Procfile.dev index 9862aa33..095b497d 100644 --- a/Procfile.dev +++ b/Procfile.dev @@ -1,4 +1,4 @@ web: rails s -client: sh -c 'rm app/assets/webpack/* || true && cd client && npm run build:dev:client' +client: sh -c 'rm app/assets/webpack/* || true && cd client && HOT_RAILS_PORT=3500 npm run build:dev:client' server: sh -c 'cd client && npm run build:dev:server' -hot: sh -c 'cd client && npm start' +hot: sh -c 'cd client && HOT_PORT=4000 npm start' diff --git a/app/assets/javascripts/application.js b/app/assets/javascripts/application_dev.js similarity index 72% rename from app/assets/javascripts/application.js rename to app/assets/javascripts/application_dev.js index 4d331823..8b07b5d2 100644 --- a/app/assets/javascripts/application.js +++ b/app/assets/javascripts/application_dev.js @@ -10,13 +10,11 @@ // Read Sprockets README (https://github.com/sstephenson/sprockets#sprockets-directives) for details // about supported directives. -// These assets are located in app/assets/webpack directory -// CRITICAL that webpack/vendor-bundle must be BEFORE turbolinks -// since it is exposing jQuery and jQuery-ujs -//= require vendor-bundle -//= require app-bundle +// All webpack assets in development will be loaded via webpack dev server +// It's important to include them in layout view above this asset +// b/c it exposes jQuery for turbolinks and another non-webpack JS (if any) -// Next one depend on jQuery +// This one depend on jQuery //= require turbolinks //= require react_on_rails diff --git a/app/assets/javascripts/application_prod.js b/app/assets/javascripts/application_prod.js new file mode 100644 index 00000000..9ca7530a --- /dev/null +++ b/app/assets/javascripts/application_prod.js @@ -0,0 +1,13 @@ +// This file is used in production to server generated JS assets. In development mode, we use the Webpack Dev Server +// to provide assets. This allows for hot reloading of the JS and CSS. +// See app/helpers/application_helper.rb for how the correct assets file is picked based on the Rails environment. +// Those helpers are used here: app/views/layouts/application.html.erb + +// These assets are located in app/assets/webpack directory +// CRITICAL that webpack/vendor-bundle must be BEFORE turbolinks +// since it is exposing jQuery and jQuery-ujs +//= require vendor-bundle +//= require app-bundle + +// Non-webpack assets incl turbolinks +//= require application_dev diff --git a/app/assets/stylesheets/application_dev.css.scss b/app/assets/stylesheets/application_dev.css.scss new file mode 100644 index 00000000..d880a065 --- /dev/null +++ b/app/assets/stylesheets/application_dev.css.scss @@ -0,0 +1,2 @@ +// Any non webpack assets can be imported here +// Others will be served via webpack-dev-server diff --git a/app/assets/stylesheets/application.css.scss b/app/assets/stylesheets/application_prod.css.scss similarity index 68% rename from app/assets/stylesheets/application.css.scss rename to app/assets/stylesheets/application_prod.css.scss index f04425c6..8de4dcc0 100644 --- a/app/assets/stylesheets/application.css.scss +++ b/app/assets/stylesheets/application_prod.css.scss @@ -1,3 +1,6 @@ // These assets are located in app/assets/webpack directory @import 'vendor-bundle'; @import 'app-bundle'; + +// Non-webpack assets +@import 'application_dev'; diff --git a/app/helpers/application_helper.rb b/app/helpers/application_helper.rb index de6be794..1e98ca0e 100644 --- a/app/helpers/application_helper.rb +++ b/app/helpers/application_helper.rb @@ -1,2 +1,11 @@ module ApplicationHelper + def javascript_include_env_tag(asset, dev_asset, params = {}) + asset_file = Rails.env.production? ? asset : dev_asset + return javascript_include_tag(asset_file, params) if asset_file + end + + def stylesheet_link_env_tag(asset, dev_asset, params = {}) + asset_file = Rails.env.production? ? asset : dev_asset + return stylesheet_link_tag(asset_file, params) if asset_file + end end diff --git a/app/views/layouts/application.html.erb b/app/views/layouts/application.html.erb index 07b15239..b958afe4 100644 --- a/app/views/layouts/application.html.erb +++ b/app/views/layouts/application.html.erb @@ -2,8 +2,10 @@ RailsReactTutorial - <%= stylesheet_link_tag 'application', media: 'all', 'data-turbolinks-track' => true %> - <%= javascript_include_tag 'application', 'data-turbolinks-track' => true %> + <%= stylesheet_link_env_tag 'application_prod', 'application_dev', media: 'all', 'data-turbolinks-track' => true %> + <%= javascript_include_env_tag nil, 'http://localhost:3500/vendor-bundle.js' %> + <%= javascript_include_env_tag nil, 'http://localhost:3500/app-bundle.js' %> + <%= javascript_include_env_tag 'application_prod', 'application_dev', 'data-turbolinks-track' => true %> <%= csrf_meta_tags %> diff --git a/client/package.json b/client/package.json index cd34d2a8..ac5da708 100644 --- a/client/package.json +++ b/client/package.json @@ -27,9 +27,9 @@ "test": "NODE_PATH=./app mocha --compilers js:babel-core/register --require ./app/libs/testHelper.js 'app/**/*.spec.@(js|jsx)'", "test:debug": "npm run test -- --debug-brk", "start": "node server.js", - "build:client": "NODE_ENV=production webpack --config webpack.client.rails.config.js", + "build:client": "NODE_ENV=production webpack --config webpack.client.rails.build.config.js", "build:server": "NODE_ENV=production webpack --config webpack.server.rails.config.js", - "build:dev:client": "webpack -w --config webpack.client.rails.config.js", + "build:dev:client": "babel-node server.rails.hot.js", "build:dev:server": "webpack -w --config webpack.server.rails.config.js", "lint": "npm run eslint && npm run jscs", "eslint": "eslint --ext .js,.jsx .", diff --git a/client/server.rails.hot.js b/client/server.rails.hot.js new file mode 100644 index 00000000..4194effa --- /dev/null +++ b/client/server.rails.hot.js @@ -0,0 +1,35 @@ +/* eslint no-var: 0, no-console: 0 */ + +import webpack from 'webpack'; +import WebpackDevServer from 'webpack-dev-server'; + +import webpackConfig from './webpack.client.rails.hot.config'; + +const hotRailsPort = process.env.HOT_RAILS_PORT || 3500; + +const compiler = webpack(webpackConfig); + +const devServer = new WebpackDevServer(compiler, { + contentBase: 'http://lvh.me:' + hotRailsPort, + publicPath: webpackConfig.output.publicPath, + hot: true, + inline: true, + historyApiFallback: true, + quiet: false, + noInfo: false, + lazy: false, + stats: { + colors: true, + hash: false, + version: false, + chunks: false, + children: false, + }, +}); + +devServer.listen(3500, 'localhost', err => { + if (err) console.error(err); + console.log( + '=> 🔥 Webpack development server is running on port ' + hotRailsPort + ); +}); diff --git a/client/webpack.client.hot.config.js b/client/webpack.client.hot.config.js index da9fba0c..78d4d507 100644 --- a/client/webpack.client.hot.config.js +++ b/client/webpack.client.hot.config.js @@ -5,11 +5,13 @@ const webpack = require('webpack'); const config = require('./webpack.client.base.config'); +const hotPort = process.env.HOT_PORT || 4000; + config.entry.vendor.push('bootstrap-loader'); config.entry.app.push( // Webpack dev server - 'webpack-dev-server/client?http://localhost:4000', + 'webpack-dev-server/client?http://localhost:' + hotPort, 'webpack/hot/dev-server' ); diff --git a/client/webpack.client.rails.config.js b/client/webpack.client.rails.build.config.js similarity index 90% rename from client/webpack.client.rails.config.js rename to client/webpack.client.rails.build.config.js index d185f4ed..5dfdc0b9 100644 --- a/client/webpack.client.rails.config.js +++ b/client/webpack.client.rails.build.config.js @@ -1,5 +1,5 @@ // Run like this: -// cd client && npm run build:dev:client +// cd client && npm run build:client // Note that Foreman (Procfile.dev) has also been configured to take care of this. const webpack = require('webpack'); @@ -18,12 +18,10 @@ config.output = { config.entry.vendor.unshift( 'es5-shim/es5-shim', 'es5-shim/es5-sham', + 'jquery-ujs', 'bootstrap-loader/extractStyles' ); -// jquery-ujs MUST GO AFTER jquery, so must use 'push' -config.entry.app.push('jquery-ujs'); - // See webpack.common.config for adding modules common to both the webpack dev server and rails config.module.loaders.push( @@ -56,7 +54,7 @@ config.plugins.push( if (devBuild) { console.log('Webpack dev build for Rails'); // eslint-disable-line no-console - module.exports.devtool = 'eval-source-map'; + config.devtool = 'eval-source-map'; } else { console.log('Webpack production build for Rails'); // eslint-disable-line no-console } diff --git a/client/webpack.client.rails.hot.config.js b/client/webpack.client.rails.hot.config.js new file mode 100644 index 00000000..e42fb7b8 --- /dev/null +++ b/client/webpack.client.rails.hot.config.js @@ -0,0 +1,82 @@ +// Run with Rails server like this: +// rails s +// cd client && babel-node server.rails.hot.js +// Note that Foreman (Procfile.dev) has also been configured to take care of this. + +const path = require('path'); +const webpack = require('webpack'); + +const config = require('./webpack.client.base.config'); + +const hotRailsPort = process.env.HOT_RAILS_PORT || 3500; + +config.entry.app.push( + 'webpack-dev-server/client?http://localhost:' + hotRailsPort, + 'webpack/hot/only-dev-server' +); + +config.entry.vendor.push( + 'es5-shim/es5-shim', + 'es5-shim/es5-sham', + 'jquery-ujs', + 'bootstrap-loader' +); + +config.output = { + filename: '[name]-bundle.js', + path: path.join(__dirname, 'public'), + publicPath: `http://localhost:${hotRailsPort}/`, +}; + +config.module.loaders.push( + { + test: /\.jsx?$/, + loader: 'babel', + exclude: /node_modules/, + query: { + plugins: [ + [ + 'react-transform', + { + transforms: [ + { + transform: 'react-transform-hmr', + imports: ['react'], + locals: ['module'], + }, + ], + }, + ], + ], + }, + }, + { + test: /\.css$/, + loaders: [ + 'style', + 'css?modules&importLoaders=1&localIdentName=[name]__[local]__[hash:base64:5]', + 'postcss', + ], + }, + { + test: /\.scss$/, + loaders: [ + 'style', + 'css?modules&importLoaders=3&localIdentName=[name]__[local]__[hash:base64:5]', + 'postcss', + 'sass', + 'sass-resources', + ], + } +); + +config.plugins.push( + new webpack.HotModuleReplacementPlugin(), + new webpack.NoErrorsPlugin() +); + +config.devtool = 'eval-source-map'; + +console.log('Webpack dev build for Rails'); // eslint-disable-line no-console + +module.exports = config; diff --git a/config/initializers/assets.rb b/config/initializers/assets.rb index 632389c3..fee2265a 100644 --- a/config/initializers/assets.rb +++ b/config/initializers/assets.rb @@ -8,3 +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( application_*.* ) From c7577bd4480ced1f444f615b83ea6ac2ea3aba35 Mon Sep 17 00:00:00 2001 From: Alex Fedoseev Date: Sun, 13 Dec 2015 01:45:17 +0300 Subject: [PATCH 07/11] Fix case in dir name --- .../actions/commentsActionCreators.js | 0 .../components/CommentBox/CommentBox.jsx | 0 .../components/CommentBox/CommentBox.scss | 0 .../CommentBox/CommentForm/CommentForm.jsx | 0 .../CommentBox/CommentList/Comment/Comment.jsx | 0 .../CommentBox/CommentList/Comment/Comment.scss | 0 .../CommentBox/CommentList/Comment/Comment.spec.jsx | 0 .../CommentBox/CommentList/CommentList.jsx | 0 .../CommentBox/CommentList/CommentList.spec.jsx | 0 .../components/CommentScreen/CommentScreen.jsx | 0 .../components/CommentScreen/CommentScreen.scss | 0 .../components/CommentScreen/images/railsonmaui.png | Bin .../components/CommentScreen/images/twitter_64.png | Bin .../SimpleCommentScreen/SimpleCommentScreen.jsx | 0 .../components/TestReactRouter/TestReactRouter.jsx | 0 .../TestReactRouterRedirect.jsx | 0 .../constants/commentsConstants.js | 0 .../containers/NonRouterCommentsContainer.jsx | 0 .../containers/RouterCommentsContainer.jsx | 0 .../{Comments => comments}/layout/Layout.jsx | 0 .../{Comments => comments}/layout/Layout.scss | 0 .../reducers/commentsReducer.js | 0 .../{Comments => comments}/reducers/index.js | 0 .../{Comments => comments}/routes/routes.jsx | 0 .../{Comments => comments}/startup/ClientApp.jsx | 0 .../startup/ClientRouterApp.jsx | 0 .../{Comments => comments}/startup/ServerApp.jsx | 0 .../startup/ServerRouterApp.jsx | 0 .../startup/clientGlobals.jsx | 0 .../startup/serverGlobals.jsx | 0 .../{Comments => comments}/store/commentsStore.js | 0 31 files changed, 0 insertions(+), 0 deletions(-) rename client/app/bundles/{Comments => comments}/actions/commentsActionCreators.js (100%) rename client/app/bundles/{Comments => comments}/components/CommentBox/CommentBox.jsx (100%) rename client/app/bundles/{Comments => comments}/components/CommentBox/CommentBox.scss (100%) rename client/app/bundles/{Comments => comments}/components/CommentBox/CommentForm/CommentForm.jsx (100%) rename client/app/bundles/{Comments => comments}/components/CommentBox/CommentList/Comment/Comment.jsx (100%) rename client/app/bundles/{Comments => comments}/components/CommentBox/CommentList/Comment/Comment.scss (100%) rename client/app/bundles/{Comments => comments}/components/CommentBox/CommentList/Comment/Comment.spec.jsx (100%) rename client/app/bundles/{Comments => comments}/components/CommentBox/CommentList/CommentList.jsx (100%) rename client/app/bundles/{Comments => comments}/components/CommentBox/CommentList/CommentList.spec.jsx (100%) rename client/app/bundles/{Comments => comments}/components/CommentScreen/CommentScreen.jsx (100%) rename client/app/bundles/{Comments => comments}/components/CommentScreen/CommentScreen.scss (100%) rename client/app/bundles/{Comments => comments}/components/CommentScreen/images/railsonmaui.png (100%) rename client/app/bundles/{Comments => comments}/components/CommentScreen/images/twitter_64.png (100%) rename client/app/bundles/{Comments => comments}/components/SimpleCommentScreen/SimpleCommentScreen.jsx (100%) rename client/app/bundles/{Comments => comments}/components/TestReactRouter/TestReactRouter.jsx (100%) rename client/app/bundles/{Comments => comments}/components/TestReactRouterRedirect/TestReactRouterRedirect.jsx (100%) rename client/app/bundles/{Comments => comments}/constants/commentsConstants.js (100%) rename client/app/bundles/{Comments => comments}/containers/NonRouterCommentsContainer.jsx (100%) rename client/app/bundles/{Comments => comments}/containers/RouterCommentsContainer.jsx (100%) rename client/app/bundles/{Comments => comments}/layout/Layout.jsx (100%) rename client/app/bundles/{Comments => comments}/layout/Layout.scss (100%) rename client/app/bundles/{Comments => comments}/reducers/commentsReducer.js (100%) rename client/app/bundles/{Comments => comments}/reducers/index.js (100%) rename client/app/bundles/{Comments => comments}/routes/routes.jsx (100%) rename client/app/bundles/{Comments => comments}/startup/ClientApp.jsx (100%) rename client/app/bundles/{Comments => comments}/startup/ClientRouterApp.jsx (100%) rename client/app/bundles/{Comments => comments}/startup/ServerApp.jsx (100%) rename client/app/bundles/{Comments => comments}/startup/ServerRouterApp.jsx (100%) rename client/app/bundles/{Comments => comments}/startup/clientGlobals.jsx (100%) rename client/app/bundles/{Comments => comments}/startup/serverGlobals.jsx (100%) rename client/app/bundles/{Comments => comments}/store/commentsStore.js (100%) diff --git a/client/app/bundles/Comments/actions/commentsActionCreators.js b/client/app/bundles/comments/actions/commentsActionCreators.js similarity index 100% rename from client/app/bundles/Comments/actions/commentsActionCreators.js rename to client/app/bundles/comments/actions/commentsActionCreators.js diff --git a/client/app/bundles/Comments/components/CommentBox/CommentBox.jsx b/client/app/bundles/comments/components/CommentBox/CommentBox.jsx similarity index 100% rename from client/app/bundles/Comments/components/CommentBox/CommentBox.jsx rename to client/app/bundles/comments/components/CommentBox/CommentBox.jsx diff --git a/client/app/bundles/Comments/components/CommentBox/CommentBox.scss b/client/app/bundles/comments/components/CommentBox/CommentBox.scss similarity index 100% rename from client/app/bundles/Comments/components/CommentBox/CommentBox.scss rename to client/app/bundles/comments/components/CommentBox/CommentBox.scss diff --git a/client/app/bundles/Comments/components/CommentBox/CommentForm/CommentForm.jsx b/client/app/bundles/comments/components/CommentBox/CommentForm/CommentForm.jsx similarity index 100% rename from client/app/bundles/Comments/components/CommentBox/CommentForm/CommentForm.jsx rename to client/app/bundles/comments/components/CommentBox/CommentForm/CommentForm.jsx diff --git a/client/app/bundles/Comments/components/CommentBox/CommentList/Comment/Comment.jsx b/client/app/bundles/comments/components/CommentBox/CommentList/Comment/Comment.jsx similarity index 100% rename from client/app/bundles/Comments/components/CommentBox/CommentList/Comment/Comment.jsx rename to client/app/bundles/comments/components/CommentBox/CommentList/Comment/Comment.jsx diff --git a/client/app/bundles/Comments/components/CommentBox/CommentList/Comment/Comment.scss b/client/app/bundles/comments/components/CommentBox/CommentList/Comment/Comment.scss similarity index 100% rename from client/app/bundles/Comments/components/CommentBox/CommentList/Comment/Comment.scss rename to client/app/bundles/comments/components/CommentBox/CommentList/Comment/Comment.scss diff --git a/client/app/bundles/Comments/components/CommentBox/CommentList/Comment/Comment.spec.jsx b/client/app/bundles/comments/components/CommentBox/CommentList/Comment/Comment.spec.jsx similarity index 100% rename from client/app/bundles/Comments/components/CommentBox/CommentList/Comment/Comment.spec.jsx rename to client/app/bundles/comments/components/CommentBox/CommentList/Comment/Comment.spec.jsx diff --git a/client/app/bundles/Comments/components/CommentBox/CommentList/CommentList.jsx b/client/app/bundles/comments/components/CommentBox/CommentList/CommentList.jsx similarity index 100% rename from client/app/bundles/Comments/components/CommentBox/CommentList/CommentList.jsx rename to client/app/bundles/comments/components/CommentBox/CommentList/CommentList.jsx diff --git a/client/app/bundles/Comments/components/CommentBox/CommentList/CommentList.spec.jsx b/client/app/bundles/comments/components/CommentBox/CommentList/CommentList.spec.jsx similarity index 100% rename from client/app/bundles/Comments/components/CommentBox/CommentList/CommentList.spec.jsx rename to client/app/bundles/comments/components/CommentBox/CommentList/CommentList.spec.jsx diff --git a/client/app/bundles/Comments/components/CommentScreen/CommentScreen.jsx b/client/app/bundles/comments/components/CommentScreen/CommentScreen.jsx similarity index 100% rename from client/app/bundles/Comments/components/CommentScreen/CommentScreen.jsx rename to client/app/bundles/comments/components/CommentScreen/CommentScreen.jsx diff --git a/client/app/bundles/Comments/components/CommentScreen/CommentScreen.scss b/client/app/bundles/comments/components/CommentScreen/CommentScreen.scss similarity index 100% rename from client/app/bundles/Comments/components/CommentScreen/CommentScreen.scss rename to client/app/bundles/comments/components/CommentScreen/CommentScreen.scss diff --git a/client/app/bundles/Comments/components/CommentScreen/images/railsonmaui.png b/client/app/bundles/comments/components/CommentScreen/images/railsonmaui.png similarity index 100% rename from client/app/bundles/Comments/components/CommentScreen/images/railsonmaui.png rename to client/app/bundles/comments/components/CommentScreen/images/railsonmaui.png diff --git a/client/app/bundles/Comments/components/CommentScreen/images/twitter_64.png b/client/app/bundles/comments/components/CommentScreen/images/twitter_64.png similarity index 100% rename from client/app/bundles/Comments/components/CommentScreen/images/twitter_64.png rename to client/app/bundles/comments/components/CommentScreen/images/twitter_64.png diff --git a/client/app/bundles/Comments/components/SimpleCommentScreen/SimpleCommentScreen.jsx b/client/app/bundles/comments/components/SimpleCommentScreen/SimpleCommentScreen.jsx similarity index 100% rename from client/app/bundles/Comments/components/SimpleCommentScreen/SimpleCommentScreen.jsx rename to client/app/bundles/comments/components/SimpleCommentScreen/SimpleCommentScreen.jsx diff --git a/client/app/bundles/Comments/components/TestReactRouter/TestReactRouter.jsx b/client/app/bundles/comments/components/TestReactRouter/TestReactRouter.jsx similarity index 100% rename from client/app/bundles/Comments/components/TestReactRouter/TestReactRouter.jsx rename to client/app/bundles/comments/components/TestReactRouter/TestReactRouter.jsx diff --git a/client/app/bundles/Comments/components/TestReactRouterRedirect/TestReactRouterRedirect.jsx b/client/app/bundles/comments/components/TestReactRouterRedirect/TestReactRouterRedirect.jsx similarity index 100% rename from client/app/bundles/Comments/components/TestReactRouterRedirect/TestReactRouterRedirect.jsx rename to client/app/bundles/comments/components/TestReactRouterRedirect/TestReactRouterRedirect.jsx diff --git a/client/app/bundles/Comments/constants/commentsConstants.js b/client/app/bundles/comments/constants/commentsConstants.js similarity index 100% rename from client/app/bundles/Comments/constants/commentsConstants.js rename to client/app/bundles/comments/constants/commentsConstants.js diff --git a/client/app/bundles/Comments/containers/NonRouterCommentsContainer.jsx b/client/app/bundles/comments/containers/NonRouterCommentsContainer.jsx similarity index 100% rename from client/app/bundles/Comments/containers/NonRouterCommentsContainer.jsx rename to client/app/bundles/comments/containers/NonRouterCommentsContainer.jsx diff --git a/client/app/bundles/Comments/containers/RouterCommentsContainer.jsx b/client/app/bundles/comments/containers/RouterCommentsContainer.jsx similarity index 100% rename from client/app/bundles/Comments/containers/RouterCommentsContainer.jsx rename to client/app/bundles/comments/containers/RouterCommentsContainer.jsx diff --git a/client/app/bundles/Comments/layout/Layout.jsx b/client/app/bundles/comments/layout/Layout.jsx similarity index 100% rename from client/app/bundles/Comments/layout/Layout.jsx rename to client/app/bundles/comments/layout/Layout.jsx diff --git a/client/app/bundles/Comments/layout/Layout.scss b/client/app/bundles/comments/layout/Layout.scss similarity index 100% rename from client/app/bundles/Comments/layout/Layout.scss rename to client/app/bundles/comments/layout/Layout.scss diff --git a/client/app/bundles/Comments/reducers/commentsReducer.js b/client/app/bundles/comments/reducers/commentsReducer.js similarity index 100% rename from client/app/bundles/Comments/reducers/commentsReducer.js rename to client/app/bundles/comments/reducers/commentsReducer.js diff --git a/client/app/bundles/Comments/reducers/index.js b/client/app/bundles/comments/reducers/index.js similarity index 100% rename from client/app/bundles/Comments/reducers/index.js rename to client/app/bundles/comments/reducers/index.js diff --git a/client/app/bundles/Comments/routes/routes.jsx b/client/app/bundles/comments/routes/routes.jsx similarity index 100% rename from client/app/bundles/Comments/routes/routes.jsx rename to client/app/bundles/comments/routes/routes.jsx diff --git a/client/app/bundles/Comments/startup/ClientApp.jsx b/client/app/bundles/comments/startup/ClientApp.jsx similarity index 100% rename from client/app/bundles/Comments/startup/ClientApp.jsx rename to client/app/bundles/comments/startup/ClientApp.jsx diff --git a/client/app/bundles/Comments/startup/ClientRouterApp.jsx b/client/app/bundles/comments/startup/ClientRouterApp.jsx similarity index 100% rename from client/app/bundles/Comments/startup/ClientRouterApp.jsx rename to client/app/bundles/comments/startup/ClientRouterApp.jsx diff --git a/client/app/bundles/Comments/startup/ServerApp.jsx b/client/app/bundles/comments/startup/ServerApp.jsx similarity index 100% rename from client/app/bundles/Comments/startup/ServerApp.jsx rename to client/app/bundles/comments/startup/ServerApp.jsx diff --git a/client/app/bundles/Comments/startup/ServerRouterApp.jsx b/client/app/bundles/comments/startup/ServerRouterApp.jsx similarity index 100% rename from client/app/bundles/Comments/startup/ServerRouterApp.jsx rename to client/app/bundles/comments/startup/ServerRouterApp.jsx diff --git a/client/app/bundles/Comments/startup/clientGlobals.jsx b/client/app/bundles/comments/startup/clientGlobals.jsx similarity index 100% rename from client/app/bundles/Comments/startup/clientGlobals.jsx rename to client/app/bundles/comments/startup/clientGlobals.jsx diff --git a/client/app/bundles/Comments/startup/serverGlobals.jsx b/client/app/bundles/comments/startup/serverGlobals.jsx similarity index 100% rename from client/app/bundles/Comments/startup/serverGlobals.jsx rename to client/app/bundles/comments/startup/serverGlobals.jsx diff --git a/client/app/bundles/Comments/store/commentsStore.js b/client/app/bundles/comments/store/commentsStore.js similarity index 100% rename from client/app/bundles/Comments/store/commentsStore.js rename to client/app/bundles/comments/store/commentsStore.js From a6666894cb47b6bfdf5c26276297e66607f0b5e7 Mon Sep 17 00:00:00 2001 From: Justin Gordon Date: Sat, 12 Dec 2015 22:38:05 -1000 Subject: [PATCH 08/11] Fix testing issues with Rails hot reloading setup Configured testing so that: * If we're not running a webpack process to watch the client JS files, then we build the client or server files. * Test will let you know if it's skipping building. Expression used to see if a watch process is running: `pgrep -fl '\\-w \\-\\-config webpack\\.#{type}\\.rails\\.build\\.config\\.js'` * Renamed asset helpers so usage is like this: <%= env_stylesheet_link_tag 'application_prod', 'application_dev', media: 'all', 'data-turbolinks-track' => true %> <%= env_javascript_include_tag nil, 'http://localhost:3500/vendor-bundle.js' %> <%= env_javascript_include_tag nil, 'http://localhost:3500/app-bundle.js' %> <%= env_javascript_include_tag 'application_prod', 'application_dev', 'data-turbolinks-track' => true %> TODO: Should we consider having tests use the Rails hot reload server? Remove building bundles from install script Since the new spec configuration does it. Fix scss linter errors Had to turn off SelectorFormat since css modules require JS style names. Fix typo --- .scss-lint.yml | 8 +++-- .travis.yml | 2 -- Procfile.dev | 7 ++++ README.md | 11 ++++--- app/assets/javascripts/application_dev.js | 3 +- app/helpers/application_helper.rb | 11 ++++--- app/views/comments/show.html.erb | 4 +-- app/views/layouts/application.html.erb | 8 ++--- app/views/pages/no_router.html.erb | 2 +- client/app/assets/styles/app-variables.scss | 4 +-- .../styles/bootstrap-pre-customizations.scss | 8 ++--- .../CommentList/Comment/Comment.jsx | 4 +-- .../CommentScreen/CommentScreen.scss | 4 +-- client/package.json | 5 +-- client/webpack.client.base.config.js | 1 + ...s => webpack.server.rails.build.config.js} | 0 config/application.rb | 3 -- config/initializers/assets.rb | 9 ++++-- docs/testing-deployment.md | 10 ++++++ lib/tasks/assets.rake | 10 ++++-- lib/tasks/linters.rake | 2 +- package.json | 8 ++++- scripts/lint | 2 +- spec/features/shared/examples.rb | 4 +-- spec/rails_helper.rb | 3 ++ spec/support/ensure_assets_compiled.rb | 32 +++++++++++++++++++ 26 files changed, 119 insertions(+), 46 deletions(-) rename client/{webpack.server.rails.config.js => webpack.server.rails.build.config.js} (100%) create mode 100644 docs/testing-deployment.md create mode 100644 spec/support/ensure_assets_compiled.rb diff --git a/.scss-lint.yml b/.scss-lint.yml index 52b2a854..7371ca3e 100644 --- a/.scss-lint.yml +++ b/.scss-lint.yml @@ -2,7 +2,9 @@ scss_files: - 'app/assets/stylesheets/**/*.scss' - - 'client/assets/stylesheets/**/*.scss' + - 'client/app/**/*.scss' + +exclude: 'client/node_modules/**' linters: # BangFormat: @@ -132,8 +134,8 @@ linters: # enabled: true # max_depth: 3 # -# SelectorFormat: -# enabled: true + SelectorFormat: + enabled: false # convention: hyphenated_lowercase # or 'strict_BEM', or 'hyphenated_BEM', or 'snake_case', or 'camel_case', or a regex pattern # # Shorthand: diff --git a/.travis.yml b/.travis.yml index f38d2cd2..c8ab4a53 100644 --- a/.travis.yml +++ b/.travis.yml @@ -18,8 +18,6 @@ install: - nvm install 5.0 - nvm use 5.0 - npm install - - cd client && npm run build:client - - npm run build:server before_script: - export DISPLAY=:99.0 - sh -e /etc/init.d/xvfb start diff --git a/Procfile.dev b/Procfile.dev index 095b497d..7912102b 100644 --- a/Procfile.dev +++ b/Procfile.dev @@ -1,4 +1,11 @@ web: rails s + +# Run the hot reload server for client development client: sh -c 'rm app/assets/webpack/* || true && cd client && HOT_RAILS_PORT=3500 npm run build:dev:client' + +# Keep the JS fresh for specs +client-spec: sh -c 'cd client && npm run build:test:client' + +# Keep the JS fresh for server rendering server: sh -c 'cd client && npm run build:dev:server' hot: sh -c 'cd client && HOT_PORT=4000 npm start' diff --git a/README.md b/README.md index 6fb8b75c..3b8a0a6d 100644 --- a/README.md +++ b/README.md @@ -127,11 +127,14 @@ Note that it's important to run the Rails server on a different port than the no # Webpack configuration ## Config Files + - `webpack.client.base.config.js`: Common configuration file to minimize code duplication for client.rails and client.hot. -- `webpack.client.rails.config.js`: Used to generate the Rails bundles for Rails use. -- `webpack.client.hot.config.js`: Used by server.js to run the Webpack Dev server. -- `webpack.server.rails.config.js`: Common configuration file to minimize code duplication -between the HMR and Rails configurations. +- `webpack.client.rails.build.config.js`: Client side js bundle. +- `webpack.server.rails.build.config.js`: Server side js bundle + +These are used for hot reloading (Webpack Dev Server): +- `webpack.client.rails.hot.config.js`: Used to generate the Rails bundles for Rails use so you get hot reloading within your Rails app. +- `webpack.client.hot.config.js`: Used by server.js to run the Webpack Dev server for stubbing the api end points ## Webpack Resources - Good overview: [Pete Hunt's Webpack Howto](https://github.com/petehunt/webpack-howto) diff --git a/app/assets/javascripts/application_dev.js b/app/assets/javascripts/application_dev.js index 8b07b5d2..45981e68 100644 --- a/app/assets/javascripts/application_dev.js +++ b/app/assets/javascripts/application_dev.js @@ -14,9 +14,10 @@ // It's important to include them in layout view above this asset // b/c it exposes jQuery for turbolinks and another non-webpack JS (if any) -// This one depend on jQuery +// This one depends on jQuery //= require turbolinks +// This will soon be removed as it will be in vendor-bundle with react_on_rails 2.0 //= require react_on_rails //= require rails_startup diff --git a/app/helpers/application_helper.rb b/app/helpers/application_helper.rb index 1e98ca0e..5c79a21d 100644 --- a/app/helpers/application_helper.rb +++ b/app/helpers/application_helper.rb @@ -1,11 +1,14 @@ module ApplicationHelper - def javascript_include_env_tag(asset, dev_asset, params = {}) - asset_file = Rails.env.production? ? asset : dev_asset + # TODO: MOVE TO helper in react_on_rails + # See application.html.erb for usage example + def env_javascript_include_tag(prod_asset, dev_asset, params = {}) + asset_file = !Rails.env.development? ? prod_asset : dev_asset return javascript_include_tag(asset_file, params) if asset_file end - def stylesheet_link_env_tag(asset, dev_asset, params = {}) - asset_file = Rails.env.production? ? asset : dev_asset + # TODO: MOVE TO helper in react_on_rails + def env_stylesheet_link_tag(prod_asset, dev_asset, params = {}) + asset_file = !Rails.env.development? ? prod_asset : dev_asset return stylesheet_link_tag(asset_file, params) if asset_file end end diff --git a/app/views/comments/show.html.erb b/app/views/comments/show.html.erb index 64ddc735..2e77ff5e 100644 --- a/app/views/comments/show.html.erb +++ b/app/views/comments/show.html.erb @@ -1,12 +1,12 @@

<%= notice %>

-

+

Author: <%= @comment.author %>

-

+

Text: <%= @comment.text %>

diff --git a/app/views/layouts/application.html.erb b/app/views/layouts/application.html.erb index b958afe4..92c9568b 100644 --- a/app/views/layouts/application.html.erb +++ b/app/views/layouts/application.html.erb @@ -2,10 +2,10 @@ RailsReactTutorial - <%= stylesheet_link_env_tag 'application_prod', 'application_dev', media: 'all', 'data-turbolinks-track' => true %> - <%= javascript_include_env_tag nil, 'http://localhost:3500/vendor-bundle.js' %> - <%= javascript_include_env_tag nil, 'http://localhost:3500/app-bundle.js' %> - <%= javascript_include_env_tag 'application_prod', 'application_dev', 'data-turbolinks-track' => true %> + <%= env_stylesheet_link_tag 'application_prod', 'application_dev', media: 'all', 'data-turbolinks-track' => true %> + <%= env_javascript_include_tag nil, 'http://localhost:3500/vendor-bundle.js' %> + <%= env_javascript_include_tag nil, 'http://localhost:3500/app-bundle.js' %> + <%= env_javascript_include_tag 'application_prod', 'application_dev', 'data-turbolinks-track' => true %> <%= csrf_meta_tags %> diff --git a/app/views/pages/no_router.html.erb b/app/views/pages/no_router.html.erb index eaaf3a4b..4537ac8b 100644 --- a/app/views/pages/no_router.html.erb +++ b/app/views/pages/no_router.html.erb @@ -3,4 +3,4 @@ <%= render "header" %> <%= react_component('App', render(template: "/comments/index.json.jbuilder"), - generator_function: true, prerender: true) %> + generator_function: true, prerender: false) %> diff --git a/client/app/assets/styles/app-variables.scss b/client/app/assets/styles/app-variables.scss index 358d685b..e3516f20 100644 --- a/client/app/assets/styles/app-variables.scss +++ b/client/app/assets/styles/app-variables.scss @@ -1,7 +1,7 @@ // Defining application SASS variables in stand-alone file, // so we can use them in bootstrap-loader and CSS Modules via sass-resources-loader -$body-bg: #eff8fb; // background w/ character -$navbar-default-bg: #ffffe0; // fancy yellow navbar +$body-bg: #EFF8FB; // background w/ character +$navbar-default-bg: #FFFFE0; // fancy yellow navbar $font-size-base: 15px; // make it bigger! $font-family-sans-serif: 'OpenSans-Light'; // apply custom font diff --git a/client/app/assets/styles/bootstrap-pre-customizations.scss b/client/app/assets/styles/bootstrap-pre-customizations.scss index 6f42ee6e..2003b430 100644 --- a/client/app/assets/styles/bootstrap-pre-customizations.scss +++ b/client/app/assets/styles/bootstrap-pre-customizations.scss @@ -1,10 +1,10 @@ // These variables get loaded BEFORE Bootstrap thus overriding them in Bootstrap. -@import "./app-variables"; +@import './app-variables'; // This path is relative to this file! -$fonts-url-path: "../fonts"; +$fonts-url-path: '../fonts'; @font-face { - font-family: "OpenSans-Light"; - src: url("#{$fonts-url-path}/OpenSans-Light.ttf") format("truetype"); + font-family: 'OpenSans-Light'; + src: url('#{$fonts-url-path}/OpenSans-Light.ttf') format('truetype'); } diff --git a/client/app/bundles/comments/components/CommentBox/CommentList/Comment/Comment.jsx b/client/app/bundles/comments/components/CommentBox/CommentList/Comment/Comment.jsx index 878225e8..44e84569 100644 --- a/client/app/bundles/comments/components/CommentBox/CommentList/Comment/Comment.jsx +++ b/client/app/bundles/comments/components/CommentBox/CommentList/Comment/Comment.jsx @@ -16,12 +16,12 @@ export default class Comment extends React.Component { return (
-

+

{author}

); diff --git a/client/app/bundles/comments/components/CommentScreen/CommentScreen.scss b/client/app/bundles/comments/components/CommentScreen/CommentScreen.scss index 10953236..1dc5a1eb 100644 --- a/client/app/bundles/comments/components/CommentScreen/CommentScreen.scss +++ b/client/app/bundles/comments/components/CommentScreen/CommentScreen.scss @@ -3,7 +3,7 @@ } .logo { - background: url(./images/railsonmaui.png) no-repeat left bottom; + background: url('./images/railsonmaui.png') no-repeat left bottom; display: inline-block; height: 40px; margin-right: 10px; @@ -11,7 +11,7 @@ } .twitterImage { - background: url(./images/twitter_64.png) no-repeat; + background: url('./images/twitter_64.png') no-repeat; height: 64px; width: 64px; } diff --git a/client/package.json b/client/package.json index ac5da708..77e5ba08 100644 --- a/client/package.json +++ b/client/package.json @@ -28,9 +28,10 @@ "test:debug": "npm run test -- --debug-brk", "start": "node server.js", "build:client": "NODE_ENV=production webpack --config webpack.client.rails.build.config.js", - "build:server": "NODE_ENV=production webpack --config webpack.server.rails.config.js", + "build:server": "NODE_ENV=production webpack --config webpack.server.rails.build.config.js", "build:dev:client": "babel-node server.rails.hot.js", - "build:dev:server": "webpack -w --config webpack.server.rails.config.js", + "build:dev:server": "webpack -w --config webpack.server.rails.build.config.js", + "build:test:client": "webpack -w --config webpack.client.rails.build.config.js", "lint": "npm run eslint && npm run jscs", "eslint": "eslint --ext .js,.jsx .", "jscs": "jscs --verbose ." diff --git a/client/webpack.client.base.config.js b/client/webpack.client.base.config.js index d9272ba4..5c0ad1e9 100644 --- a/client/webpack.client.base.config.js +++ b/client/webpack.client.base.config.js @@ -62,6 +62,7 @@ module.exports = { // React is necessary for the client rendering { test: require.resolve('react'), loader: 'expose?React' }, { test: require.resolve('react-dom'), loader: 'expose?ReactDOM' }, + { test: require.resolve('jquery-ujs'), loader: 'imports?jQuery=jquery' }, { test: require.resolve('jquery'), loader: 'expose?jQuery' }, { test: require.resolve('jquery'), loader: 'expose?$' }, diff --git a/client/webpack.server.rails.config.js b/client/webpack.server.rails.build.config.js similarity index 100% rename from client/webpack.server.rails.config.js rename to client/webpack.server.rails.build.config.js diff --git a/config/application.rb b/config/application.rb index 28452ae2..4638d1ab 100644 --- a/config/application.rb +++ b/config/application.rb @@ -20,9 +20,6 @@ class Application < Rails::Application # config.i18n.load_path += Dir[Rails.root.join("my", "locales", "*.{rb,yml}").to_s] # config.i18n.default_locale = :de - # Add folder with webpack generated assets to assets.paths - config.assets.paths << Rails.root.join("app", "assets", "webpack") - # For not swallow errors in after_commit/after_rollback callbacks. config.active_record.raise_in_transactional_callbacks = true end diff --git a/config/initializers/assets.rb b/config/initializers/assets.rb index fee2265a..af391c3c 100644 --- a/config/initializers/assets.rb +++ b/config/initializers/assets.rb @@ -3,9 +3,12 @@ # Version of your assets, change this if you want to expire all your assets. Rails.application.config.assets.version = "1.0" -# Add additional assets to the asset load path -# Rails.application.config.assets.paths << Emoji.images_path +# Add folder with webpack generated assets to assets.paths +Rails.application.config.assets.paths << Rails.root.join("app", "assets", "webpack") # Precompile additional assets. # application.js, application.css, and all non-JS/CSS in app/assets folder are already added. -Rails.application.config.assets.precompile += %w( application_*.* ) +Rails.application.config.assets.precompile += %w( + application_*.* + server-bundle.js +) diff --git a/docs/testing-deployment.md b/docs/testing-deployment.md new file mode 100644 index 00000000..59a16005 --- /dev/null +++ b/docs/testing-deployment.md @@ -0,0 +1,10 @@ +# Testing + +1. `rake` runs the test suite +2. To test production with precompiled assets: + +```sh +export SECRET_KEY_BASE=`rake secret` +alias test-prod='rake assets:clobber && RAILS_ENV=production bin/rake assets:precompile \ + && rails s -e production' +``` diff --git a/lib/tasks/assets.rake b/lib/tasks/assets.rake index 7df4f9b5..24ed3444 100644 --- a/lib/tasks/assets.rake +++ b/lib/tasks/assets.rake @@ -15,10 +15,16 @@ namespace :assets do task :webpack do sh "cd client && npm run build:client" sh "cd client && npm run build:server" + sh "mkdir -p public/assets" + + # Critical to manually copy non js/css assets to public/assets as we don't want to fingerprint them + sh "cp -rf app/assets/webpack/*.woff* app/assets/webpack/*.svg app/assets/webpack/*.ttf "\ + "app/assets/webpack/*.eot* public/assets" + + # TODO: We should be gzipping these end task :clobber do - rm_rf "#{Rails.application.config.root}/app/assets/javascripts/generated/client-bundle.js" - rm_rf "#{Rails.application.config.root}/app/assets/javascripts/generated/server-bundle.js" + rm_rf "#{Rails.application.config.root}/app/assets/webpack" end end diff --git a/lib/tasks/linters.rake b/lib/tasks/linters.rake index 8d3ff029..89bf9196 100644 --- a/lib/tasks/linters.rake +++ b/lib/tasks/linters.rake @@ -33,7 +33,7 @@ if %w(development test).include? Rails.env # end SCSSLint::RakeTask.new do |t| - t.files = ["app/assets/stylesheets/", "client/assets/stylesheets/"] + t.files = ["app/assets/stylesheets/", "client/"] end desc "eslint" diff --git a/package.json b/package.json index fdb06033..06d10dd5 100644 --- a/package.json +++ b/package.json @@ -11,7 +11,13 @@ "postinstall": "cd client && npm install", "test": "rspec && npm run test:client && npm run lint", "test:client": "(cd client && npm run test --silent)", - "lint": "(cd client && npm run lint --silent)" + "lint": "(cd client && npm run lint --silent)", + "build:clean": "rm app/assets/webpack/*", + "build:client": "(cd client && npm run build:client --silent)", + "build:server": "(cd client && npm run build:server --silent)", + "build:dev:client": "(cd client && npm run build:dev:client --silent)", + "build:dev:server": "(cd client && npm run build:dev:server --silent)", + "build:test:client": "(cd client && npm run build:test:client --silent)" }, "repository": { "type": "git", diff --git a/scripts/lint b/scripts/lint index 969ab363..2b1cee45 100755 --- a/scripts/lint +++ b/scripts/lint @@ -9,6 +9,6 @@ ruby-lint app config spec echo Linting with eslint and jscs (cd client && npm run lint) -scss-lint client/assets/stylesheets/*.scss app/assets/stylesheets/*.scss +scss-lint client/**/*.scss app/assets/stylesheets/*.scss echo Done linting with Rubocop, ruby-lint, eslint, jsrc, and slim-lint diff --git a/spec/features/shared/examples.rb b/spec/features/shared/examples.rb index 73438a6b..e0abc411 100644 --- a/spec/features/shared/examples.rb +++ b/spec/features/shared/examples.rb @@ -8,8 +8,8 @@ include_context "Form Submitted", name: :name, text: :text scenario "comment is added" do - expect(page).to have_css(".comment", text: name) - expect(page).to have_css(".comment", text: text) + expect(page).to have_css(".js-comment-author", text: name) + expect(page).to have_css(".js-comment-text", text: text) end end diff --git a/spec/rails_helper.rb b/spec/rails_helper.rb index 8b9e6c4e..c5793bf1 100644 --- a/spec/rails_helper.rb +++ b/spec/rails_helper.rb @@ -37,6 +37,9 @@ config.before(:suite) do DatabaseCleaner.strategy = :transaction DatabaseCleaner.clean_with :truncation + + # Next line will ensure that assets are built if webpack -w is not running + EnsureAssetsCompiled.check_built_assets end config.around(:each) do |example| diff --git a/spec/support/ensure_assets_compiled.rb b/spec/support/ensure_assets_compiled.rb new file mode 100644 index 00000000..3398b058 --- /dev/null +++ b/spec/support/ensure_assets_compiled.rb @@ -0,0 +1,32 @@ +# TODO: Move to react_on_rails +class EnsureAssetsCompiled + def self.check_built_assets + return if @checked_built_assets + build_all_assets + end + + def self.running_webpack_watch?(type) + running = `pgrep -fl '\\-w \\-\\-config webpack\\.#{type}\\.rails\\.build\\.config\\.js'` + if running.present? + puts "Found process, so skipping rebuild => #{running.ai}" + return true + end + end + + def self.build_assets_for_type(type) + unless running_webpack_watch?(type) + build_output = `cd client && npm run build:#{type}` + if build_output =~ /error/i + fail "Error in building assets!\n#{build_output}" + else + puts "Webpack build completed." + end + end + end + + def self.build_all_assets + build_assets_for_type("client") + build_assets_for_type("server") + @checked_built_assets = true + end +end From dda44b2af06752c1360583a454d340f0fc674c51 Mon Sep 17 00:00:00 2001 From: Alex Fedoseev Date: Sun, 13 Dec 2015 18:35:23 +0300 Subject: [PATCH 09/11] Fix JS tests --- .../CommentBox/CommentList/Comment/Comment.spec.jsx | 6 +++--- client/app/libs/testNullCompiler.js | 8 ++++++++ client/package.json | 2 +- 3 files changed, 12 insertions(+), 4 deletions(-) create mode 100644 client/app/libs/testNullCompiler.js diff --git a/client/app/bundles/comments/components/CommentBox/CommentList/Comment/Comment.spec.jsx b/client/app/bundles/comments/components/CommentBox/CommentList/Comment/Comment.spec.jsx index 16bc2467..2f91f68b 100644 --- a/client/app/bundles/comments/components/CommentBox/CommentList/Comment/Comment.spec.jsx +++ b/client/app/bundles/comments/components/CommentBox/CommentList/Comment/Comment.spec.jsx @@ -20,7 +20,7 @@ describe('Comment', () => { // const author = findRenderedDOMComponentWithTag(component, 'h2'); // expect(author.className).to.equal('comment-author'); const text = findRenderedDOMComponentWithTag(component, 'span'); - expect(text.className).to.equal('comment-text'); + expect(text.className).to.equal('js-comment-text'); }); it('shows the author', () => { @@ -28,7 +28,7 @@ describe('Comment', () => { ); - const author = findRenderedDOMComponentWithClass(component, 'comment-author'); + const author = findRenderedDOMComponentWithClass(component, 'js-comment-author'); expect(author.textContent).to.equal('Frank'); }); @@ -37,7 +37,7 @@ describe('Comment', () => { ); - const comment = findRenderedDOMComponentWithClass(component, 'comment-text'); + const comment = findRenderedDOMComponentWithClass(component, 'js-comment-text'); expect(comment.textContent).to.equal('Hi!\n'); }); }); diff --git a/client/app/libs/testNullCompiler.js b/client/app/libs/testNullCompiler.js new file mode 100644 index 00000000..c2826127 --- /dev/null +++ b/client/app/libs/testNullCompiler.js @@ -0,0 +1,8 @@ +const noop = () => null; + +require.extensions['.css'] = noop; +require.extensions['.scss'] = noop; +require.extensions['.png'] = noop; +require.extensions['.jpg'] = noop; +require.extensions['.jpeg'] = noop; +require.extensions['.gif'] = noop; diff --git a/client/package.json b/client/package.json index 77e5ba08..3b00cad0 100644 --- a/client/package.json +++ b/client/package.json @@ -24,7 +24,7 @@ }, "homepage": "https://github.com/shakacode/react-webpack-rails-tutorial", "scripts": { - "test": "NODE_PATH=./app mocha --compilers js:babel-core/register --require ./app/libs/testHelper.js 'app/**/*.spec.@(js|jsx)'", + "test": "NODE_PATH=./app mocha --compilers js:babel-core/register --require ./app/libs/testHelper.js --require ./app/libs/testNullCompiler.js 'app/**/*.spec.@(js|jsx)'", "test:debug": "npm run test -- --debug-brk", "start": "node server.js", "build:client": "NODE_ENV=production webpack --config webpack.client.rails.build.config.js", From 16e770cc1265c1fcbeea867d9f14586ab94cbc6d Mon Sep 17 00:00:00 2001 From: Alex Fedoseev Date: Sun, 13 Dec 2015 01:48:55 +0300 Subject: [PATCH 10/11] npm shrinkwrap --- client/npm-shrinkwrap.json | 5329 ++++++++++++++++++++++++++++++++++++ 1 file changed, 5329 insertions(+) create mode 100644 client/npm-shrinkwrap.json diff --git a/client/npm-shrinkwrap.json b/client/npm-shrinkwrap.json new file mode 100644 index 00000000..5b61c525 --- /dev/null +++ b/client/npm-shrinkwrap.json @@ -0,0 +1,5329 @@ +{ + "name": "react-webpack-rails-tutorial", + "version": "1.1.0", + "dependencies": { + "abab": { + "version": "1.0.1", + "from": "abab@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/abab/-/abab-1.0.1.tgz" + }, + "abbrev": { + "version": "1.0.7", + "from": "abbrev@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.0.7.tgz" + }, + "accepts": { + "version": "1.2.13", + "from": "accepts@>=1.2.12 <1.3.0", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.2.13.tgz" + }, + "acorn": { + "version": "2.6.4", + "from": "acorn@>=2.1.0 <3.0.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-2.6.4.tgz" + }, + "acorn-globals": { + "version": "1.0.9", + "from": "acorn-globals@>=1.0.3 <2.0.0", + "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-1.0.9.tgz" + }, + "acorn-to-esprima": { + "version": "2.0.4", + "from": "acorn-to-esprima@>=2.0.4 <3.0.0", + "resolved": "https://registry.npmjs.org/acorn-to-esprima/-/acorn-to-esprima-2.0.4.tgz" + }, + "align-text": { + "version": "0.1.3", + "from": "align-text@>=0.1.0 <0.2.0", + "resolved": "https://registry.npmjs.org/align-text/-/align-text-0.1.3.tgz", + "dependencies": { + "kind-of": { + "version": "2.0.1", + "from": "kind-of@>=2.0.0 <3.0.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-2.0.1.tgz" + } + } + }, + "alphanum-sort": { + "version": "1.0.2", + "from": "alphanum-sort@>=1.0.1 <2.0.0", + "resolved": "https://registry.npmjs.org/alphanum-sort/-/alphanum-sort-1.0.2.tgz" + }, + "alter": { + "version": "0.2.0", + "from": "alter@>=0.2.0 <0.3.0", + "resolved": "https://registry.npmjs.org/alter/-/alter-0.2.0.tgz" + }, + "amdefine": { + "version": "1.0.0", + "from": "amdefine@>=0.0.4", + "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.0.tgz" + }, + "ansi": { + "version": "0.3.0", + "from": "ansi@>=0.3.0 <0.4.0", + "resolved": "https://registry.npmjs.org/ansi/-/ansi-0.3.0.tgz" + }, + "ansi-escapes": { + "version": "1.1.0", + "from": "ansi-escapes@>=1.1.0 <2.0.0", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-1.1.0.tgz" + }, + "ansi-green": { + "version": "0.1.1", + "from": "ansi-green@>=0.1.1 <0.2.0", + "resolved": "https://registry.npmjs.org/ansi-green/-/ansi-green-0.1.1.tgz" + }, + "ansi-regex": { + "version": "2.0.0", + "from": "ansi-regex@>=2.0.0 <3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.0.0.tgz" + }, + "ansi-styles": { + "version": "2.1.0", + "from": "ansi-styles@>=2.1.0 <3.0.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.1.0.tgz" + }, + "ansi-wrap": { + "version": "0.1.0", + "from": "ansi-wrap@0.1.0", + "resolved": "https://registry.npmjs.org/ansi-wrap/-/ansi-wrap-0.1.0.tgz" + }, + "anymatch": { + "version": "1.3.0", + "from": "anymatch@>=1.3.0 <2.0.0", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-1.3.0.tgz" + }, + "are-we-there-yet": { + "version": "1.0.5", + "from": "are-we-there-yet@>=1.0.0 <1.1.0", + "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.0.5.tgz" + }, + "argparse": { + "version": "1.0.3", + "from": "argparse@>=1.0.2 <1.1.0", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.3.tgz", + "dependencies": { + "lodash": { + "version": "3.10.1", + "from": "lodash@>=3.2.0 <4.0.0", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-3.10.1.tgz" + } + } + }, + "arr-diff": { + "version": "2.0.0", + "from": "arr-diff@>=2.0.0 <3.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-2.0.0.tgz" + }, + "arr-flatten": { + "version": "1.0.1", + "from": "arr-flatten@>=1.0.1 <2.0.0", + "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.0.1.tgz" + }, + "array-find": { + "version": "1.0.0", + "from": "array-find@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/array-find/-/array-find-1.0.0.tgz" + }, + "array-flatten": { + "version": "1.1.1", + "from": "array-flatten@1.1.1", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz" + }, + "array-index": { + "version": "0.1.1", + "from": "array-index@>=0.1.0 <0.2.0", + "resolved": "https://registry.npmjs.org/array-index/-/array-index-0.1.1.tgz" + }, + "array-union": { + "version": "1.0.1", + "from": "array-union@>=1.0.1 <2.0.0", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.1.tgz" + }, + "array-uniq": { + "version": "1.0.2", + "from": "array-uniq@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.2.tgz" + }, + "array-unique": { + "version": "0.2.1", + "from": "array-unique@>=0.2.1 <0.3.0", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.2.1.tgz" + }, + "arrify": { + "version": "1.0.1", + "from": "arrify@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz" + }, + "asap": { + "version": "2.0.3", + "from": "asap@>=2.0.3 <2.1.0", + "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.3.tgz" + }, + "asn1": { + "version": "0.2.3", + "from": "asn1@>=0.2.3 <0.3.0", + "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.3.tgz" + }, + "assert": { + "version": "1.3.0", + "from": "assert@>=1.1.1 <2.0.0", + "resolved": "https://registry.npmjs.org/assert/-/assert-1.3.0.tgz" + }, + "assert-plus": { + "version": "0.1.5", + "from": "assert-plus@>=0.1.5 <0.2.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-0.1.5.tgz" + }, + "assertion-error": { + "version": "1.0.1", + "from": "assertion-error@>=1.0.1 <2.0.0", + "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.0.1.tgz" + }, + "ast-traverse": { + "version": "0.1.1", + "from": "ast-traverse@>=0.1.1 <0.2.0", + "resolved": "https://registry.npmjs.org/ast-traverse/-/ast-traverse-0.1.1.tgz" + }, + "ast-types": { + "version": "0.8.12", + "from": "ast-types@0.8.12", + "resolved": "https://registry.npmjs.org/ast-types/-/ast-types-0.8.12.tgz" + }, + "async": { + "version": "1.5.0", + "from": "async@>=1.4.0 <2.0.0", + "resolved": "https://registry.npmjs.org/async/-/async-1.5.0.tgz" + }, + "async-each": { + "version": "0.1.6", + "from": "async-each@>=0.1.6 <0.2.0", + "resolved": "https://registry.npmjs.org/async-each/-/async-each-0.1.6.tgz" + }, + "async-foreach": { + "version": "0.1.3", + "from": "async-foreach@>=0.1.3 <0.2.0", + "resolved": "https://registry.npmjs.org/async-foreach/-/async-foreach-0.1.3.tgz" + }, + "atob": { + "version": "1.1.3", + "from": "atob@>=1.1.0 <1.2.0", + "resolved": "https://registry.npmjs.org/atob/-/atob-1.1.3.tgz" + }, + "autoprefixer": { + "version": "6.1.2", + "from": "autoprefixer@*", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-6.1.2.tgz" + }, + "aws-sign2": { + "version": "0.6.0", + "from": "aws-sign2@>=0.6.0 <0.7.0", + "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.6.0.tgz" + }, + "axios": { + "version": "0.7.0", + "from": "axios@>=0.7.0 <0.8.0", + "resolved": "https://registry.npmjs.org/axios/-/axios-0.7.0.tgz" + }, + "babel": { + "version": "6.3.13", + "from": "babel@latest", + "resolved": "https://registry.npmjs.org/babel/-/babel-6.3.13.tgz" + }, + "babel-cli": { + "version": "6.3.17", + "from": "babel-cli@latest", + "resolved": "https://registry.npmjs.org/babel-cli/-/babel-cli-6.3.17.tgz", + "dependencies": { + "lodash": { + "version": "3.10.1", + "from": "lodash@>=3.2.0 <4.0.0", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-3.10.1.tgz" + } + } + }, + "babel-code-frame": { + "version": "6.3.13", + "from": "babel-code-frame@>=6.3.13 <7.0.0", + "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.3.13.tgz" + }, + "babel-core": { + "version": "6.3.17", + "from": "babel-core@latest", + "resolved": "https://registry.npmjs.org/babel-core/-/babel-core-6.3.17.tgz", + "dependencies": { + "lodash": { + "version": "3.10.1", + "from": "lodash@>=3.10.0 <4.0.0" + } + } + }, + "babel-generator": { + "version": "6.3.17", + "from": "babel-generator@>=6.3.17 <7.0.0", + "resolved": "https://registry.npmjs.org/babel-generator/-/babel-generator-6.3.17.tgz", + "dependencies": { + "lodash": { + "version": "3.10.1", + "from": "lodash@>=3.10.1 <4.0.0" + } + } + }, + "babel-helper-bindify-decorators": { + "version": "6.3.13", + "from": "babel-helper-bindify-decorators@>=6.3.13 <7.0.0", + "resolved": "https://registry.npmjs.org/babel-helper-bindify-decorators/-/babel-helper-bindify-decorators-6.3.13.tgz" + }, + "babel-helper-builder-binary-assignment-operator-visitor": { + "version": "6.3.13", + "from": "babel-helper-builder-binary-assignment-operator-visitor@>=6.3.13 <7.0.0", + "resolved": "https://registry.npmjs.org/babel-helper-builder-binary-assignment-operator-visitor/-/babel-helper-builder-binary-assignment-operator-visitor-6.3.13.tgz" + }, + "babel-helper-builder-react-jsx": { + "version": "6.3.13", + "from": "babel-helper-builder-react-jsx@>=6.3.13 <7.0.0", + "resolved": "https://registry.npmjs.org/babel-helper-builder-react-jsx/-/babel-helper-builder-react-jsx-6.3.13.tgz", + "dependencies": { + "lodash": { + "version": "3.10.1", + "from": "lodash@>=3.10.0 <4.0.0" + } + } + }, + "babel-helper-call-delegate": { + "version": "6.3.13", + "from": "babel-helper-call-delegate@>=6.3.13 <7.0.0", + "resolved": "https://registry.npmjs.org/babel-helper-call-delegate/-/babel-helper-call-delegate-6.3.13.tgz" + }, + "babel-helper-define-map": { + "version": "6.3.13", + "from": "babel-helper-define-map@>=6.3.13 <7.0.0", + "resolved": "https://registry.npmjs.org/babel-helper-define-map/-/babel-helper-define-map-6.3.13.tgz", + "dependencies": { + "lodash": { + "version": "3.10.1", + "from": "lodash@>=3.10.0 <4.0.0" + } + } + }, + "babel-helper-explode-assignable-expression": { + "version": "6.3.13", + "from": "babel-helper-explode-assignable-expression@>=6.3.13 <7.0.0", + "resolved": "https://registry.npmjs.org/babel-helper-explode-assignable-expression/-/babel-helper-explode-assignable-expression-6.3.13.tgz" + }, + "babel-helper-explode-class": { + "version": "6.3.13", + "from": "babel-helper-explode-class@>=6.3.13 <7.0.0", + "resolved": "https://registry.npmjs.org/babel-helper-explode-class/-/babel-helper-explode-class-6.3.13.tgz" + }, + "babel-helper-function-name": { + "version": "6.3.15", + "from": "babel-helper-function-name@>=6.3.15 <7.0.0", + "resolved": "https://registry.npmjs.org/babel-helper-function-name/-/babel-helper-function-name-6.3.15.tgz" + }, + "babel-helper-get-function-arity": { + "version": "6.3.13", + "from": "babel-helper-get-function-arity@>=6.3.13 <7.0.0", + "resolved": "https://registry.npmjs.org/babel-helper-get-function-arity/-/babel-helper-get-function-arity-6.3.13.tgz" + }, + "babel-helper-hoist-variables": { + "version": "6.3.13", + "from": "babel-helper-hoist-variables@>=6.3.13 <7.0.0", + "resolved": "https://registry.npmjs.org/babel-helper-hoist-variables/-/babel-helper-hoist-variables-6.3.13.tgz" + }, + "babel-helper-optimise-call-expression": { + "version": "6.3.13", + "from": "babel-helper-optimise-call-expression@>=6.3.13 <7.0.0", + "resolved": "https://registry.npmjs.org/babel-helper-optimise-call-expression/-/babel-helper-optimise-call-expression-6.3.13.tgz" + }, + "babel-helper-regex": { + "version": "6.3.13", + "from": "babel-helper-regex@>=6.3.13 <7.0.0", + "resolved": "https://registry.npmjs.org/babel-helper-regex/-/babel-helper-regex-6.3.13.tgz", + "dependencies": { + "lodash": { + "version": "3.10.1", + "from": "lodash@>=3.10.0 <4.0.0" + } + } + }, + "babel-helper-remap-async-to-generator": { + "version": "6.3.13", + "from": "babel-helper-remap-async-to-generator@>=6.3.13 <7.0.0", + "resolved": "https://registry.npmjs.org/babel-helper-remap-async-to-generator/-/babel-helper-remap-async-to-generator-6.3.13.tgz" + }, + "babel-helper-replace-supers": { + "version": "6.3.13", + "from": "babel-helper-replace-supers@>=6.3.13 <7.0.0", + "resolved": "https://registry.npmjs.org/babel-helper-replace-supers/-/babel-helper-replace-supers-6.3.13.tgz" + }, + "babel-helpers": { + "version": "6.3.13", + "from": "babel-helpers@>=6.3.13 <7.0.0", + "resolved": "https://registry.npmjs.org/babel-helpers/-/babel-helpers-6.3.13.tgz" + }, + "babel-jscs": { + "version": "2.0.5", + "from": "babel-jscs@>=2.0.0 <3.0.0", + "resolved": "https://registry.npmjs.org/babel-jscs/-/babel-jscs-2.0.5.tgz", + "dependencies": { + "babel-core": { + "version": "5.8.34", + "from": "babel-core@>=5.8.3 <5.9.0", + "dependencies": { + "lodash": { + "version": "3.10.1", + "from": "lodash@>=3.10.0 <4.0.0" + } + } + }, + "babylon": { + "version": "5.8.34", + "from": "babylon@>=5.8.34 <6.0.0" + }, + "globals": { + "version": "6.4.1", + "from": "globals@>=6.4.0 <7.0.0" + }, + "js-tokens": { + "version": "1.0.1", + "from": "js-tokens@1.0.1" + } + } + }, + "babel-loader": { + "version": "6.2.0", + "from": "babel-loader@latest", + "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-6.2.0.tgz", + "dependencies": { + "loader-utils": { + "version": "0.2.12", + "from": "loader-utils@>=0.2.11 <0.3.0", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-0.2.12.tgz" + } + } + }, + "babel-messages": { + "version": "6.3.13", + "from": "babel-messages@>=6.3.13 <7.0.0", + "resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-6.3.13.tgz" + }, + "babel-plugin-check-es2015-constants": { + "version": "6.3.13", + "from": "babel-plugin-check-es2015-constants@>=6.3.13 <7.0.0", + "resolved": "https://registry.npmjs.org/babel-plugin-check-es2015-constants/-/babel-plugin-check-es2015-constants-6.3.13.tgz" + }, + "babel-plugin-constant-folding": { + "version": "1.0.1", + "from": "babel-plugin-constant-folding@>=1.0.1 <2.0.0", + "resolved": "https://registry.npmjs.org/babel-plugin-constant-folding/-/babel-plugin-constant-folding-1.0.1.tgz" + }, + "babel-plugin-dead-code-elimination": { + "version": "1.0.2", + "from": "babel-plugin-dead-code-elimination@>=1.0.2 <2.0.0", + "resolved": "https://registry.npmjs.org/babel-plugin-dead-code-elimination/-/babel-plugin-dead-code-elimination-1.0.2.tgz" + }, + "babel-plugin-eval": { + "version": "1.0.1", + "from": "babel-plugin-eval@>=1.0.1 <2.0.0", + "resolved": "https://registry.npmjs.org/babel-plugin-eval/-/babel-plugin-eval-1.0.1.tgz" + }, + "babel-plugin-inline-environment-variables": { + "version": "1.0.1", + "from": "babel-plugin-inline-environment-variables@>=1.0.1 <2.0.0", + "resolved": "https://registry.npmjs.org/babel-plugin-inline-environment-variables/-/babel-plugin-inline-environment-variables-1.0.1.tgz" + }, + "babel-plugin-jscript": { + "version": "1.0.4", + "from": "babel-plugin-jscript@>=1.0.4 <2.0.0", + "resolved": "https://registry.npmjs.org/babel-plugin-jscript/-/babel-plugin-jscript-1.0.4.tgz" + }, + "babel-plugin-member-expression-literals": { + "version": "1.0.1", + "from": "babel-plugin-member-expression-literals@>=1.0.1 <2.0.0", + "resolved": "https://registry.npmjs.org/babel-plugin-member-expression-literals/-/babel-plugin-member-expression-literals-1.0.1.tgz" + }, + "babel-plugin-property-literals": { + "version": "1.0.1", + "from": "babel-plugin-property-literals@>=1.0.1 <2.0.0", + "resolved": "https://registry.npmjs.org/babel-plugin-property-literals/-/babel-plugin-property-literals-1.0.1.tgz" + }, + "babel-plugin-proto-to-assign": { + "version": "1.0.4", + "from": "babel-plugin-proto-to-assign@>=1.0.3 <2.0.0", + "resolved": "https://registry.npmjs.org/babel-plugin-proto-to-assign/-/babel-plugin-proto-to-assign-1.0.4.tgz", + "dependencies": { + "lodash": { + "version": "3.10.1", + "from": "lodash@>=3.9.3 <4.0.0" + } + } + }, + "babel-plugin-react-constant-elements": { + "version": "1.0.3", + "from": "babel-plugin-react-constant-elements@>=1.0.3 <2.0.0", + "resolved": "https://registry.npmjs.org/babel-plugin-react-constant-elements/-/babel-plugin-react-constant-elements-1.0.3.tgz" + }, + "babel-plugin-react-display-name": { + "version": "1.0.3", + "from": "babel-plugin-react-display-name@>=1.0.3 <2.0.0", + "resolved": "https://registry.npmjs.org/babel-plugin-react-display-name/-/babel-plugin-react-display-name-1.0.3.tgz" + }, + "babel-plugin-remove-console": { + "version": "1.0.1", + "from": "babel-plugin-remove-console@>=1.0.1 <2.0.0", + "resolved": "https://registry.npmjs.org/babel-plugin-remove-console/-/babel-plugin-remove-console-1.0.1.tgz" + }, + "babel-plugin-remove-debugger": { + "version": "1.0.1", + "from": "babel-plugin-remove-debugger@>=1.0.1 <2.0.0", + "resolved": "https://registry.npmjs.org/babel-plugin-remove-debugger/-/babel-plugin-remove-debugger-1.0.1.tgz" + }, + "babel-plugin-runtime": { + "version": "1.0.7", + "from": "babel-plugin-runtime@>=1.0.7 <2.0.0", + "resolved": "https://registry.npmjs.org/babel-plugin-runtime/-/babel-plugin-runtime-1.0.7.tgz" + }, + "babel-plugin-syntax-async-functions": { + "version": "6.3.13", + "from": "babel-plugin-syntax-async-functions@>=6.3.13 <7.0.0", + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-async-functions/-/babel-plugin-syntax-async-functions-6.3.13.tgz" + }, + "babel-plugin-syntax-class-constructor-call": { + "version": "6.3.13", + "from": "babel-plugin-syntax-class-constructor-call@>=6.3.13 <7.0.0", + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-class-constructor-call/-/babel-plugin-syntax-class-constructor-call-6.3.13.tgz" + }, + "babel-plugin-syntax-class-properties": { + "version": "6.3.13", + "from": "babel-plugin-syntax-class-properties@>=6.3.13 <7.0.0", + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-class-properties/-/babel-plugin-syntax-class-properties-6.3.13.tgz" + }, + "babel-plugin-syntax-decorators": { + "version": "6.3.13", + "from": "babel-plugin-syntax-decorators@>=6.3.13 <7.0.0", + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-decorators/-/babel-plugin-syntax-decorators-6.3.13.tgz" + }, + "babel-plugin-syntax-do-expressions": { + "version": "6.3.13", + "from": "babel-plugin-syntax-do-expressions@>=6.3.13 <7.0.0", + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-do-expressions/-/babel-plugin-syntax-do-expressions-6.3.13.tgz" + }, + "babel-plugin-syntax-exponentiation-operator": { + "version": "6.3.13", + "from": "babel-plugin-syntax-exponentiation-operator@>=6.3.13 <7.0.0", + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-exponentiation-operator/-/babel-plugin-syntax-exponentiation-operator-6.3.13.tgz" + }, + "babel-plugin-syntax-export-extensions": { + "version": "6.3.13", + "from": "babel-plugin-syntax-export-extensions@>=6.3.13 <7.0.0", + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-export-extensions/-/babel-plugin-syntax-export-extensions-6.3.13.tgz" + }, + "babel-plugin-syntax-flow": { + "version": "6.3.13", + "from": "babel-plugin-syntax-flow@>=6.3.13 <7.0.0", + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-flow/-/babel-plugin-syntax-flow-6.3.13.tgz" + }, + "babel-plugin-syntax-function-bind": { + "version": "6.3.13", + "from": "babel-plugin-syntax-function-bind@>=6.3.13 <7.0.0", + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-function-bind/-/babel-plugin-syntax-function-bind-6.3.13.tgz" + }, + "babel-plugin-syntax-jsx": { + "version": "6.3.13", + "from": "babel-plugin-syntax-jsx@>=6.3.13 <7.0.0", + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-jsx/-/babel-plugin-syntax-jsx-6.3.13.tgz" + }, + "babel-plugin-syntax-object-rest-spread": { + "version": "6.3.13", + "from": "babel-plugin-syntax-object-rest-spread@>=6.3.13 <7.0.0", + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-object-rest-spread/-/babel-plugin-syntax-object-rest-spread-6.3.13.tgz" + }, + "babel-plugin-syntax-trailing-function-commas": { + "version": "6.3.13", + "from": "babel-plugin-syntax-trailing-function-commas@>=6.3.13 <7.0.0", + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-trailing-function-commas/-/babel-plugin-syntax-trailing-function-commas-6.3.13.tgz" + }, + "babel-plugin-transform-async-to-generator": { + "version": "6.3.13", + "from": "babel-plugin-transform-async-to-generator@>=6.3.13 <7.0.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-async-to-generator/-/babel-plugin-transform-async-to-generator-6.3.13.tgz" + }, + "babel-plugin-transform-class-constructor-call": { + "version": "6.3.13", + "from": "babel-plugin-transform-class-constructor-call@>=6.3.13 <7.0.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-class-constructor-call/-/babel-plugin-transform-class-constructor-call-6.3.13.tgz" + }, + "babel-plugin-transform-class-properties": { + "version": "6.3.13", + "from": "babel-plugin-transform-class-properties@>=6.3.13 <7.0.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-class-properties/-/babel-plugin-transform-class-properties-6.3.13.tgz" + }, + "babel-plugin-transform-decorators": { + "version": "6.3.13", + "from": "babel-plugin-transform-decorators@>=6.3.13 <7.0.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-decorators/-/babel-plugin-transform-decorators-6.3.13.tgz" + }, + "babel-plugin-transform-do-expressions": { + "version": "6.3.13", + "from": "babel-plugin-transform-do-expressions@>=6.3.13 <7.0.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-do-expressions/-/babel-plugin-transform-do-expressions-6.3.13.tgz" + }, + "babel-plugin-transform-es2015-arrow-functions": { + "version": "6.3.13", + "from": "babel-plugin-transform-es2015-arrow-functions@>=6.3.13 <7.0.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-arrow-functions/-/babel-plugin-transform-es2015-arrow-functions-6.3.13.tgz" + }, + "babel-plugin-transform-es2015-block-scoped-functions": { + "version": "6.3.13", + "from": "babel-plugin-transform-es2015-block-scoped-functions@>=6.3.13 <7.0.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoped-functions/-/babel-plugin-transform-es2015-block-scoped-functions-6.3.13.tgz" + }, + "babel-plugin-transform-es2015-block-scoping": { + "version": "6.3.13", + "from": "babel-plugin-transform-es2015-block-scoping@>=6.3.13 <7.0.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoping/-/babel-plugin-transform-es2015-block-scoping-6.3.13.tgz", + "dependencies": { + "lodash": { + "version": "3.10.1", + "from": "lodash@>=3.10.0 <4.0.0" + } + } + }, + "babel-plugin-transform-es2015-classes": { + "version": "6.3.15", + "from": "babel-plugin-transform-es2015-classes@>=6.3.13 <7.0.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-classes/-/babel-plugin-transform-es2015-classes-6.3.15.tgz" + }, + "babel-plugin-transform-es2015-computed-properties": { + "version": "6.3.13", + "from": "babel-plugin-transform-es2015-computed-properties@>=6.3.13 <7.0.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-computed-properties/-/babel-plugin-transform-es2015-computed-properties-6.3.13.tgz" + }, + "babel-plugin-transform-es2015-destructuring": { + "version": "6.3.15", + "from": "babel-plugin-transform-es2015-destructuring@>=6.3.13 <7.0.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-destructuring/-/babel-plugin-transform-es2015-destructuring-6.3.15.tgz" + }, + "babel-plugin-transform-es2015-for-of": { + "version": "6.3.13", + "from": "babel-plugin-transform-es2015-for-of@>=6.3.13 <7.0.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-for-of/-/babel-plugin-transform-es2015-for-of-6.3.13.tgz" + }, + "babel-plugin-transform-es2015-function-name": { + "version": "6.3.13", + "from": "babel-plugin-transform-es2015-function-name@>=6.3.13 <7.0.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-function-name/-/babel-plugin-transform-es2015-function-name-6.3.13.tgz" + }, + "babel-plugin-transform-es2015-literals": { + "version": "6.3.13", + "from": "babel-plugin-transform-es2015-literals@>=6.3.13 <7.0.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-literals/-/babel-plugin-transform-es2015-literals-6.3.13.tgz" + }, + "babel-plugin-transform-es2015-modules-commonjs": { + "version": "6.3.16", + "from": "babel-plugin-transform-es2015-modules-commonjs@>=6.3.13 <7.0.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-commonjs/-/babel-plugin-transform-es2015-modules-commonjs-6.3.16.tgz" + }, + "babel-plugin-transform-es2015-object-super": { + "version": "6.3.13", + "from": "babel-plugin-transform-es2015-object-super@>=6.3.13 <7.0.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-object-super/-/babel-plugin-transform-es2015-object-super-6.3.13.tgz" + }, + "babel-plugin-transform-es2015-parameters": { + "version": "6.3.13", + "from": "babel-plugin-transform-es2015-parameters@>=6.3.13 <7.0.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-parameters/-/babel-plugin-transform-es2015-parameters-6.3.13.tgz" + }, + "babel-plugin-transform-es2015-shorthand-properties": { + "version": "6.3.13", + "from": "babel-plugin-transform-es2015-shorthand-properties@>=6.3.13 <7.0.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-shorthand-properties/-/babel-plugin-transform-es2015-shorthand-properties-6.3.13.tgz" + }, + "babel-plugin-transform-es2015-spread": { + "version": "6.3.14", + "from": "babel-plugin-transform-es2015-spread@>=6.3.13 <7.0.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-spread/-/babel-plugin-transform-es2015-spread-6.3.14.tgz" + }, + "babel-plugin-transform-es2015-sticky-regex": { + "version": "6.3.13", + "from": "babel-plugin-transform-es2015-sticky-regex@>=6.3.13 <7.0.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-sticky-regex/-/babel-plugin-transform-es2015-sticky-regex-6.3.13.tgz" + }, + "babel-plugin-transform-es2015-template-literals": { + "version": "6.3.13", + "from": "babel-plugin-transform-es2015-template-literals@>=6.3.13 <7.0.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-template-literals/-/babel-plugin-transform-es2015-template-literals-6.3.13.tgz" + }, + "babel-plugin-transform-es2015-typeof-symbol": { + "version": "6.3.13", + "from": "babel-plugin-transform-es2015-typeof-symbol@>=6.3.13 <7.0.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-typeof-symbol/-/babel-plugin-transform-es2015-typeof-symbol-6.3.13.tgz" + }, + "babel-plugin-transform-es2015-unicode-regex": { + "version": "6.3.13", + "from": "babel-plugin-transform-es2015-unicode-regex@>=6.3.13 <7.0.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-unicode-regex/-/babel-plugin-transform-es2015-unicode-regex-6.3.13.tgz" + }, + "babel-plugin-transform-exponentiation-operator": { + "version": "6.3.13", + "from": "babel-plugin-transform-exponentiation-operator@>=6.3.13 <7.0.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-exponentiation-operator/-/babel-plugin-transform-exponentiation-operator-6.3.13.tgz" + }, + "babel-plugin-transform-export-extensions": { + "version": "6.3.13", + "from": "babel-plugin-transform-export-extensions@>=6.3.13 <7.0.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-export-extensions/-/babel-plugin-transform-export-extensions-6.3.13.tgz" + }, + "babel-plugin-transform-flow-strip-types": { + "version": "6.3.15", + "from": "babel-plugin-transform-flow-strip-types@>=6.3.13 <7.0.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-flow-strip-types/-/babel-plugin-transform-flow-strip-types-6.3.15.tgz" + }, + "babel-plugin-transform-function-bind": { + "version": "6.3.13", + "from": "babel-plugin-transform-function-bind@>=6.3.13 <7.0.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-function-bind/-/babel-plugin-transform-function-bind-6.3.13.tgz" + }, + "babel-plugin-transform-object-rest-spread": { + "version": "6.3.13", + "from": "babel-plugin-transform-object-rest-spread@>=6.3.13 <7.0.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-object-rest-spread/-/babel-plugin-transform-object-rest-spread-6.3.13.tgz" + }, + "babel-plugin-transform-react-display-name": { + "version": "6.3.13", + "from": "babel-plugin-transform-react-display-name@>=6.3.13 <7.0.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-react-display-name/-/babel-plugin-transform-react-display-name-6.3.13.tgz" + }, + "babel-plugin-transform-react-jsx": { + "version": "6.3.13", + "from": "babel-plugin-transform-react-jsx@>=6.3.13 <7.0.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-react-jsx/-/babel-plugin-transform-react-jsx-6.3.13.tgz" + }, + "babel-plugin-transform-react-jsx-source": { + "version": "6.3.13", + "from": "babel-plugin-transform-react-jsx-source@>=6.3.13 <7.0.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-react-jsx-source/-/babel-plugin-transform-react-jsx-source-6.3.13.tgz" + }, + "babel-plugin-transform-regenerator": { + "version": "6.3.13", + "from": "babel-plugin-transform-regenerator@>=6.3.13 <7.0.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-regenerator/-/babel-plugin-transform-regenerator-6.3.13.tgz" + }, + "babel-plugin-transform-strict-mode": { + "version": "6.3.13", + "from": "babel-plugin-transform-strict-mode@>=6.3.13 <7.0.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-strict-mode/-/babel-plugin-transform-strict-mode-6.3.13.tgz" + }, + "babel-plugin-undeclared-variables-check": { + "version": "1.0.2", + "from": "babel-plugin-undeclared-variables-check@>=1.0.2 <2.0.0", + "resolved": "https://registry.npmjs.org/babel-plugin-undeclared-variables-check/-/babel-plugin-undeclared-variables-check-1.0.2.tgz" + }, + "babel-plugin-undefined-to-void": { + "version": "1.1.6", + "from": "babel-plugin-undefined-to-void@>=1.1.6 <2.0.0", + "resolved": "https://registry.npmjs.org/babel-plugin-undefined-to-void/-/babel-plugin-undefined-to-void-1.1.6.tgz" + }, + "babel-polyfill": { + "version": "6.3.14", + "from": "babel-polyfill@latest", + "resolved": "https://registry.npmjs.org/babel-polyfill/-/babel-polyfill-6.3.14.tgz" + }, + "babel-preset-es2015": { + "version": "6.3.13", + "from": "babel-preset-es2015@latest", + "resolved": "https://registry.npmjs.org/babel-preset-es2015/-/babel-preset-es2015-6.3.13.tgz" + }, + "babel-preset-react": { + "version": "6.3.13", + "from": "babel-preset-react@latest", + "resolved": "https://registry.npmjs.org/babel-preset-react/-/babel-preset-react-6.3.13.tgz" + }, + "babel-preset-stage-0": { + "version": "6.3.13", + "from": "babel-preset-stage-0@latest", + "resolved": "https://registry.npmjs.org/babel-preset-stage-0/-/babel-preset-stage-0-6.3.13.tgz" + }, + "babel-preset-stage-1": { + "version": "6.3.13", + "from": "babel-preset-stage-1@>=6.3.13 <7.0.0", + "resolved": "https://registry.npmjs.org/babel-preset-stage-1/-/babel-preset-stage-1-6.3.13.tgz" + }, + "babel-preset-stage-2": { + "version": "6.3.13", + "from": "babel-preset-stage-2@>=6.3.13 <7.0.0", + "resolved": "https://registry.npmjs.org/babel-preset-stage-2/-/babel-preset-stage-2-6.3.13.tgz" + }, + "babel-preset-stage-3": { + "version": "6.3.13", + "from": "babel-preset-stage-3@>=6.3.13 <7.0.0", + "resolved": "https://registry.npmjs.org/babel-preset-stage-3/-/babel-preset-stage-3-6.3.13.tgz" + }, + "babel-regenerator-runtime": { + "version": "6.3.13", + "from": "babel-regenerator-runtime@>=6.3.13 <7.0.0", + "resolved": "https://registry.npmjs.org/babel-regenerator-runtime/-/babel-regenerator-runtime-6.3.13.tgz" + }, + "babel-register": { + "version": "6.3.13", + "from": "babel-register@>=6.3.13 <7.0.0", + "resolved": "https://registry.npmjs.org/babel-register/-/babel-register-6.3.13.tgz", + "dependencies": { + "lodash": { + "version": "3.10.1", + "from": "lodash@>=3.10.0 <4.0.0" + } + } + }, + "babel-runtime": { + "version": "5.8.34", + "from": "babel-runtime@>=5.0.0 <6.0.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-5.8.34.tgz" + }, + "babel-template": { + "version": "6.3.13", + "from": "babel-template@>=6.3.13 <7.0.0", + "resolved": "https://registry.npmjs.org/babel-template/-/babel-template-6.3.13.tgz", + "dependencies": { + "lodash": { + "version": "3.10.1", + "from": "lodash@>=3.10.1 <4.0.0" + } + } + }, + "babel-traverse": { + "version": "6.3.17", + "from": "babel-traverse@>=6.3.17 <7.0.0", + "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.3.17.tgz", + "dependencies": { + "lodash": { + "version": "3.10.1", + "from": "lodash@>=3.10.1 <4.0.0" + } + } + }, + "babel-types": { + "version": "6.3.17", + "from": "babel-types@>=6.3.17 <7.0.0", + "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.3.17.tgz", + "dependencies": { + "lodash": { + "version": "3.10.1", + "from": "lodash@>=3.10.1 <4.0.0" + } + } + }, + "babylon": { + "version": "6.3.15", + "from": "babylon@>=6.3.15 <7.0.0", + "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.3.15.tgz" + }, + "balanced-match": { + "version": "0.3.0", + "from": "balanced-match@>=0.3.0 <0.4.0", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-0.3.0.tgz" + }, + "base62": { + "version": "0.1.1", + "from": "base62@0.1.1", + "resolved": "https://registry.npmjs.org/base62/-/base62-0.1.1.tgz" + }, + "Base64": { + "version": "0.2.1", + "from": "Base64@>=0.2.0 <0.3.0", + "resolved": "https://registry.npmjs.org/Base64/-/Base64-0.2.1.tgz" + }, + "base64-js": { + "version": "0.0.8", + "from": "base64-js@0.0.8", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-0.0.8.tgz" + }, + "batch": { + "version": "0.5.2", + "from": "batch@0.5.2", + "resolved": "https://registry.npmjs.org/batch/-/batch-0.5.2.tgz" + }, + "big.js": { + "version": "3.1.3", + "from": "big.js@>=3.0.2 <4.0.0", + "resolved": "https://registry.npmjs.org/big.js/-/big.js-3.1.3.tgz" + }, + "bin-version": { + "version": "1.0.4", + "from": "bin-version@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/bin-version/-/bin-version-1.0.4.tgz" + }, + "bin-version-check": { + "version": "2.1.0", + "from": "bin-version-check@>=2.1.0 <3.0.0", + "resolved": "https://registry.npmjs.org/bin-version-check/-/bin-version-check-2.1.0.tgz" + }, + "binary-extensions": { + "version": "1.4.0", + "from": "binary-extensions@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.4.0.tgz" + }, + "bl": { + "version": "1.0.0", + "from": "bl@>=1.0.0 <1.1.0", + "resolved": "https://registry.npmjs.org/bl/-/bl-1.0.0.tgz" + }, + "block-stream": { + "version": "0.0.8", + "from": "block-stream@*", + "resolved": "https://registry.npmjs.org/block-stream/-/block-stream-0.0.8.tgz" + }, + "bluebird": { + "version": "2.10.2", + "from": "bluebird@>=2.9.33 <3.0.0", + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-2.10.2.tgz" + }, + "boom": { + "version": "2.10.1", + "from": "boom@>=2.0.0 <3.0.0", + "resolved": "https://registry.npmjs.org/boom/-/boom-2.10.1.tgz" + }, + "bootstrap-loader": { + "version": "1.0.0-rc", + "from": "bootstrap-loader@latest", + "resolved": "https://registry.npmjs.org/bootstrap-loader/-/bootstrap-loader-1.0.0-rc.tgz", + "dependencies": { + "js-yaml": { + "version": "3.4.6", + "from": "js-yaml@>=3.4.3 <4.0.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.4.6.tgz" + }, + "semver": { + "version": "5.1.0", + "from": "semver@>=5.0.3 <6.0.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.1.0.tgz" + } + } + }, + "bootstrap-sass": { + "version": "3.3.6", + "from": "bootstrap-sass@>=3.3.5 <4.0.0", + "resolved": "https://registry.npmjs.org/bootstrap-sass/-/bootstrap-sass-3.3.6.tgz" + }, + "brace-expansion": { + "version": "1.1.2", + "from": "brace-expansion@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.2.tgz" + }, + "braces": { + "version": "1.8.2", + "from": "braces@>=1.8.1 <2.0.0", + "resolved": "https://registry.npmjs.org/braces/-/braces-1.8.2.tgz" + }, + "breakable": { + "version": "1.0.0", + "from": "breakable@>=1.0.0 <1.1.0", + "resolved": "https://registry.npmjs.org/breakable/-/breakable-1.0.0.tgz" + }, + "browserify-zlib": { + "version": "0.1.4", + "from": "browserify-zlib@>=0.1.4 <0.2.0", + "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.1.4.tgz" + }, + "browserslist": { + "version": "1.0.1", + "from": "browserslist@>=1.0.1 <1.1.0", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-1.0.1.tgz" + }, + "buffer": { + "version": "3.5.5", + "from": "buffer@>=3.0.3 <4.0.0", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-3.5.5.tgz", + "dependencies": { + "isarray": { + "version": "1.0.0", + "from": "isarray@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz" + } + } + }, + "builtin-modules": { + "version": "1.1.0", + "from": "builtin-modules@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.0.tgz" + }, + "bytes": { + "version": "2.1.0", + "from": "bytes@2.1.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-2.1.0.tgz" + }, + "camelcase": { + "version": "2.0.1", + "from": "camelcase@>=2.0.0 <3.0.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-2.0.1.tgz" + }, + "camelcase-keys": { + "version": "2.0.0", + "from": "camelcase-keys@>=2.0.0 <3.0.0", + "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-2.0.0.tgz" + }, + "caniuse-db": { + "version": "1.0.30000377", + "from": "caniuse-db@>=1.0.30000372 <2.0.0", + "resolved": "https://registry.npmjs.org/caniuse-db/-/caniuse-db-1.0.30000377.tgz" + }, + "caseless": { + "version": "0.11.0", + "from": "caseless@>=0.11.0 <0.12.0", + "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.11.0.tgz" + }, + "center-align": { + "version": "0.1.2", + "from": "center-align@>=0.1.1 <0.2.0", + "resolved": "https://registry.npmjs.org/center-align/-/center-align-0.1.2.tgz" + }, + "chalk": { + "version": "1.1.1", + "from": "chalk@1.1.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.1.tgz" + }, + "character-parser": { + "version": "1.2.1", + "from": "character-parser@1.2.1", + "resolved": "https://registry.npmjs.org/character-parser/-/character-parser-1.2.1.tgz" + }, + "chokidar": { + "version": "1.4.1", + "from": "chokidar@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-1.4.1.tgz" + }, + "classnames": { + "version": "2.2.1", + "from": "classnames@>=2.1.5 <3.0.0", + "resolved": "https://registry.npmjs.org/classnames/-/classnames-2.2.1.tgz" + }, + "clean-css": { + "version": "3.4.8", + "from": "clean-css@>=3.1.9 <4.0.0", + "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-3.4.8.tgz", + "dependencies": { + "commander": { + "version": "2.8.1", + "from": "commander@>=2.8.0 <2.9.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.8.1.tgz" + }, + "source-map": { + "version": "0.4.4", + "from": "source-map@>=0.4.0 <0.5.0", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz" + } + } + }, + "cli-cursor": { + "version": "1.0.2", + "from": "cli-cursor@>=1.0.1 <2.0.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-1.0.2.tgz" + }, + "cli-table": { + "version": "0.3.1", + "from": "cli-table@>=0.3.1 <0.4.0", + "resolved": "https://registry.npmjs.org/cli-table/-/cli-table-0.3.1.tgz", + "dependencies": { + "colors": { + "version": "1.0.3", + "from": "colors@1.0.3", + "resolved": "https://registry.npmjs.org/colors/-/colors-1.0.3.tgz" + } + } + }, + "cli-width": { + "version": "1.1.0", + "from": "cli-width@>=1.0.1 <2.0.0", + "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-1.1.0.tgz" + }, + "cliui": { + "version": "3.1.0", + "from": "cliui@>=3.0.3 <4.0.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.1.0.tgz" + }, + "clone": { + "version": "1.0.2", + "from": "clone@>=1.0.2 <2.0.0", + "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.2.tgz" + }, + "coa": { + "version": "1.0.1", + "from": "coa@>=1.0.1 <1.1.0", + "resolved": "https://registry.npmjs.org/coa/-/coa-1.0.1.tgz" + }, + "code-point-at": { + "version": "1.0.0", + "from": "code-point-at@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.0.0.tgz" + }, + "colors": { + "version": "1.1.2", + "from": "colors@>=1.1.2 <1.2.0", + "resolved": "https://registry.npmjs.org/colors/-/colors-1.1.2.tgz" + }, + "colr-convert": { + "version": "1.0.5", + "from": "colr-convert@>=1.0.5 <2.0.0", + "resolved": "https://registry.npmjs.org/colr-convert/-/colr-convert-1.0.5.tgz" + }, + "combined-stream": { + "version": "1.0.5", + "from": "combined-stream@>=1.0.5 <1.1.0", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.5.tgz" + }, + "commander": { + "version": "2.9.0", + "from": "commander@>=2.8.1 <3.0.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.9.0.tgz" + }, + "comment-parser": { + "version": "0.3.1", + "from": "comment-parser@>=0.3.1 <0.4.0", + "resolved": "https://registry.npmjs.org/comment-parser/-/comment-parser-0.3.1.tgz" + }, + "commoner": { + "version": "0.10.4", + "from": "commoner@>=0.10.3 <0.11.0", + "resolved": "https://registry.npmjs.org/commoner/-/commoner-0.10.4.tgz" + }, + "compressible": { + "version": "2.0.6", + "from": "compressible@>=2.0.6 <2.1.0", + "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.6.tgz" + }, + "compression": { + "version": "1.6.0", + "from": "compression@>=1.5.2 <2.0.0", + "resolved": "https://registry.npmjs.org/compression/-/compression-1.6.0.tgz", + "dependencies": { + "accepts": { + "version": "1.3.0", + "from": "accepts@>=1.3.0 <1.4.0", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.0.tgz" + }, + "negotiator": { + "version": "0.6.0", + "from": "negotiator@0.6.0", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.0.tgz" + }, + "vary": { + "version": "1.1.0", + "from": "vary@>=1.1.0 <1.2.0", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.0.tgz" + } + } + }, + "concat-map": { + "version": "0.0.1", + "from": "concat-map@0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz" + }, + "concat-stream": { + "version": "1.5.1", + "from": "concat-stream@>=1.4.7 <2.0.0", + "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.5.1.tgz" + }, + "config-chain": { + "version": "1.1.9", + "from": "config-chain@>=1.1.8 <1.2.0", + "resolved": "https://registry.npmjs.org/config-chain/-/config-chain-1.1.9.tgz" + }, + "connect-history-api-fallback": { + "version": "1.1.0", + "from": "connect-history-api-fallback@1.1.0", + "resolved": "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-1.1.0.tgz" + }, + "console-browserify": { + "version": "1.1.0", + "from": "console-browserify@>=1.1.0 <2.0.0", + "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.1.0.tgz" + }, + "constantinople": { + "version": "3.0.2", + "from": "constantinople@>=3.0.1 <3.1.0", + "resolved": "https://registry.npmjs.org/constantinople/-/constantinople-3.0.2.tgz" + }, + "constants-browserify": { + "version": "0.0.1", + "from": "constants-browserify@0.0.1", + "resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-0.0.1.tgz" + }, + "content-disposition": { + "version": "0.5.0", + "from": "content-disposition@0.5.0", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.0.tgz" + }, + "content-type": { + "version": "1.0.1", + "from": "content-type@>=1.0.1 <1.1.0", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.1.tgz" + }, + "convert-source-map": { + "version": "1.1.2", + "from": "convert-source-map@>=1.1.0 <2.0.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.1.2.tgz" + }, + "cookie": { + "version": "0.1.3", + "from": "cookie@0.1.3", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.1.3.tgz" + }, + "cookie-signature": { + "version": "1.0.6", + "from": "cookie-signature@1.0.6", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz" + }, + "core-js": { + "version": "1.2.6", + "from": "core-js@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-1.2.6.tgz" + }, + "core-util-is": { + "version": "1.0.2", + "from": "core-util-is@>=1.0.0 <1.1.0", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz" + }, + "cross-spawn": { + "version": "2.1.0", + "from": "cross-spawn@>=2.0.0 <3.0.0", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-2.1.0.tgz" + }, + "cross-spawn-async": { + "version": "2.1.1", + "from": "cross-spawn-async@>=2.0.0 <3.0.0", + "resolved": "https://registry.npmjs.org/cross-spawn-async/-/cross-spawn-async-2.1.1.tgz" + }, + "cryptiles": { + "version": "2.0.5", + "from": "cryptiles@>=2.0.0 <3.0.0", + "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-2.0.5.tgz" + }, + "crypto-browserify": { + "version": "3.2.8", + "from": "crypto-browserify@>=3.2.6 <3.3.0", + "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.2.8.tgz" + }, + "css": { + "version": "1.0.8", + "from": "css@>=1.0.8 <1.1.0", + "resolved": "https://registry.npmjs.org/css/-/css-1.0.8.tgz" + }, + "css-color-names": { + "version": "0.0.2", + "from": "css-color-names@0.0.2", + "resolved": "https://registry.npmjs.org/css-color-names/-/css-color-names-0.0.2.tgz" + }, + "css-loader": { + "version": "0.23.0", + "from": "css-loader@>=0.23.0 <0.24.0", + "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-0.23.0.tgz", + "dependencies": { + "loader-utils": { + "version": "0.2.12", + "from": "loader-utils@>=0.2.2 <0.3.0" + } + } + }, + "css-parse": { + "version": "1.0.4", + "from": "css-parse@1.0.4", + "resolved": "https://registry.npmjs.org/css-parse/-/css-parse-1.0.4.tgz" + }, + "css-selector-tokenizer": { + "version": "0.5.4", + "from": "css-selector-tokenizer@>=0.5.1 <0.6.0", + "resolved": "https://registry.npmjs.org/css-selector-tokenizer/-/css-selector-tokenizer-0.5.4.tgz" + }, + "css-stringify": { + "version": "1.0.5", + "from": "css-stringify@1.0.5", + "resolved": "https://registry.npmjs.org/css-stringify/-/css-stringify-1.0.5.tgz" + }, + "cssesc": { + "version": "0.1.0", + "from": "cssesc@>=0.1.0 <0.2.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-0.1.0.tgz" + }, + "cssnano": { + "version": "3.4.0", + "from": "cssnano@>=2.6.1 <4.0.0", + "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-3.4.0.tgz" + }, + "cssom": { + "version": "0.3.0", + "from": "cssom@>=0.3.0 <0.4.0", + "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.0.tgz" + }, + "cssstyle": { + "version": "0.2.30", + "from": "cssstyle@>=0.2.29 <0.3.0", + "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-0.2.30.tgz" + }, + "cycle": { + "version": "1.0.3", + "from": "cycle@>=1.0.0 <1.1.0", + "resolved": "https://registry.npmjs.org/cycle/-/cycle-1.0.3.tgz" + }, + "d": { + "version": "0.1.1", + "from": "d@>=0.1.1 <0.2.0", + "resolved": "https://registry.npmjs.org/d/-/d-0.1.1.tgz" + }, + "dashdash": { + "version": "1.10.1", + "from": "dashdash@>=1.10.1 <2.0.0", + "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.10.1.tgz" + }, + "date-now": { + "version": "0.1.4", + "from": "date-now@>=0.1.4 <0.2.0", + "resolved": "https://registry.npmjs.org/date-now/-/date-now-0.1.4.tgz" + }, + "debug": { + "version": "2.2.0", + "from": "debug@>=2.1.1 <3.0.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.2.0.tgz" + }, + "decamelize": { + "version": "1.1.1", + "from": "decamelize@>=1.1.0 <2.0.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.1.1.tgz" + }, + "deep-eql": { + "version": "0.1.3", + "from": "deep-eql@>=0.1.3 <0.2.0", + "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-0.1.3.tgz", + "dependencies": { + "type-detect": { + "version": "0.1.1", + "from": "type-detect@0.1.1", + "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-0.1.1.tgz" + } + } + }, + "deep-equal": { + "version": "1.0.1", + "from": "deep-equal@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.0.1.tgz" + }, + "deep-is": { + "version": "0.1.3", + "from": "deep-is@>=0.1.3 <0.2.0", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz" + }, + "defined": { + "version": "1.0.0", + "from": "defined@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/defined/-/defined-1.0.0.tgz" + }, + "defs": { + "version": "1.1.1", + "from": "defs@>=1.1.0 <1.2.0", + "resolved": "https://registry.npmjs.org/defs/-/defs-1.1.1.tgz", + "dependencies": { + "camelcase": { + "version": "1.2.1", + "from": "camelcase@>=1.2.1 <2.0.0" + }, + "cliui": { + "version": "2.1.0", + "from": "cliui@>=2.1.0 <3.0.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-2.1.0.tgz" + }, + "esprima-fb": { + "version": "15001.1001.0-dev-harmony-fb", + "from": "esprima-fb@>=15001.1001.0-dev-harmony-fb <15001.1002.0", + "resolved": "https://registry.npmjs.org/esprima-fb/-/esprima-fb-15001.1001.0-dev-harmony-fb.tgz" + }, + "wordwrap": { + "version": "0.0.2", + "from": "wordwrap@0.0.2", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.2.tgz" + }, + "yargs": { + "version": "3.27.0", + "from": "yargs@>=3.27.0 <3.28.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-3.27.0.tgz" + } + } + }, + "del": { + "version": "2.2.0", + "from": "del@>=2.0.2 <3.0.0", + "resolved": "https://registry.npmjs.org/del/-/del-2.2.0.tgz" + }, + "delayed-stream": { + "version": "1.0.0", + "from": "delayed-stream@>=1.0.0 <1.1.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz" + }, + "delegates": { + "version": "0.1.0", + "from": "delegates@>=0.1.0 <0.2.0", + "resolved": "https://registry.npmjs.org/delegates/-/delegates-0.1.0.tgz" + }, + "depd": { + "version": "1.1.0", + "from": "depd@>=1.1.0 <1.2.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.0.tgz" + }, + "destroy": { + "version": "1.0.3", + "from": "destroy@1.0.3", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.3.tgz" + }, + "detect-indent": { + "version": "3.0.1", + "from": "detect-indent@>=3.0.1 <4.0.0", + "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-3.0.1.tgz" + }, + "detective": { + "version": "4.3.1", + "from": "detective@>=4.3.1 <5.0.0", + "resolved": "https://registry.npmjs.org/detective/-/detective-4.3.1.tgz", + "dependencies": { + "acorn": { + "version": "1.2.2", + "from": "acorn@>=1.0.3 <2.0.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-1.2.2.tgz" + } + } + }, + "diff": { + "version": "1.4.0", + "from": "diff@1.4.0", + "resolved": "https://registry.npmjs.org/diff/-/diff-1.4.0.tgz" + }, + "doctrine": { + "version": "0.7.2", + "from": "doctrine@>=0.7.1 <0.8.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-0.7.2.tgz", + "dependencies": { + "esutils": { + "version": "1.1.6", + "from": "esutils@>=1.1.6 <2.0.0", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-1.1.6.tgz" + } + } + }, + "dom-helpers": { + "version": "2.4.0", + "from": "dom-helpers@>=2.4.0 <3.0.0", + "resolved": "https://registry.npmjs.org/dom-helpers/-/dom-helpers-2.4.0.tgz" + }, + "dom-serializer": { + "version": "0.1.0", + "from": "dom-serializer@>=0.0.0 <1.0.0", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.1.0.tgz", + "dependencies": { + "domelementtype": { + "version": "1.1.3", + "from": "domelementtype@>=1.1.1 <1.2.0", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.1.3.tgz" + }, + "entities": { + "version": "1.1.1", + "from": "entities@>=1.1.1 <1.2.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-1.1.1.tgz" + } + } + }, + "dom-walk": { + "version": "0.1.1", + "from": "dom-walk@>=0.1.0 <0.2.0", + "resolved": "https://registry.npmjs.org/dom-walk/-/dom-walk-0.1.1.tgz" + }, + "domain-browser": { + "version": "1.1.7", + "from": "domain-browser@>=1.1.1 <2.0.0", + "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.1.7.tgz" + }, + "domelementtype": { + "version": "1.3.0", + "from": "domelementtype@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.0.tgz" + }, + "domhandler": { + "version": "2.3.0", + "from": "domhandler@>=2.3.0 <2.4.0", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-2.3.0.tgz" + }, + "domutils": { + "version": "1.5.1", + "from": "domutils@>=1.5.0 <1.6.0", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.5.1.tgz" + }, + "ecc-jsbn": { + "version": "0.1.1", + "from": "ecc-jsbn@>=0.0.1 <1.0.0", + "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz" + }, + "ee-first": { + "version": "1.1.1", + "from": "ee-first@1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz" + }, + "enhanced-resolve": { + "version": "0.9.1", + "from": "enhanced-resolve@>=0.9.0 <0.10.0", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-0.9.1.tgz", + "dependencies": { + "memory-fs": { + "version": "0.2.0", + "from": "memory-fs@>=0.2.0 <0.3.0", + "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.2.0.tgz" + } + } + }, + "entities": { + "version": "1.0.0", + "from": "entities@>=1.0.0 <1.1.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-1.0.0.tgz" + }, + "envify": { + "version": "3.4.0", + "from": "envify@>=3.0.0 <4.0.0", + "resolved": "https://registry.npmjs.org/envify/-/envify-3.4.0.tgz" + }, + "errno": { + "version": "0.1.4", + "from": "errno@>=0.1.3 <0.2.0", + "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.4.tgz" + }, + "error-ex": { + "version": "1.3.0", + "from": "error-ex@>=1.2.0 <2.0.0", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.0.tgz" + }, + "es5-ext": { + "version": "0.10.10", + "from": "es5-ext@>=0.10.8 <0.11.0", + "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.10.tgz" + }, + "es5-shim": { + "version": "4.4.0", + "from": "es5-shim@>=4.3.1 <5.0.0", + "resolved": "https://registry.npmjs.org/es5-shim/-/es5-shim-4.4.0.tgz" + }, + "es6-iterator": { + "version": "2.0.0", + "from": "es6-iterator@>=2.0.0 <3.0.0", + "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.0.tgz" + }, + "es6-map": { + "version": "0.1.3", + "from": "es6-map@>=0.1.2 <0.2.0", + "resolved": "https://registry.npmjs.org/es6-map/-/es6-map-0.1.3.tgz" + }, + "es6-promise": { + "version": "3.0.2", + "from": "es6-promise@>=3.0.2 <4.0.0", + "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-3.0.2.tgz" + }, + "es6-set": { + "version": "0.1.3", + "from": "es6-set@>=0.1.3 <0.2.0", + "resolved": "https://registry.npmjs.org/es6-set/-/es6-set-0.1.3.tgz" + }, + "es6-symbol": { + "version": "3.0.1", + "from": "es6-symbol@>=3.0.1 <3.1.0", + "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.0.1.tgz" + }, + "es6-weak-map": { + "version": "2.0.1", + "from": "es6-weak-map@>=2.0.1 <3.0.0", + "resolved": "https://registry.npmjs.org/es6-weak-map/-/es6-weak-map-2.0.1.tgz" + }, + "escape-html": { + "version": "1.0.2", + "from": "escape-html@1.0.2", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.2.tgz" + }, + "escape-regexp": { + "version": "0.0.1", + "from": "escape-regexp@0.0.1", + "resolved": "https://registry.npmjs.org/escape-regexp/-/escape-regexp-0.0.1.tgz" + }, + "escape-string-regexp": { + "version": "1.0.3", + "from": "escape-string-regexp@>=1.0.2 <2.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.3.tgz" + }, + "escodegen": { + "version": "1.7.1", + "from": "escodegen@>=1.6.1 <2.0.0", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.7.1.tgz", + "dependencies": { + "esprima": { + "version": "1.2.5", + "from": "esprima@>=1.2.2 <2.0.0", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-1.2.5.tgz" + }, + "estraverse": { + "version": "1.9.3", + "from": "estraverse@>=1.9.1 <2.0.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-1.9.3.tgz" + }, + "optionator": { + "version": "0.5.0", + "from": "optionator@>=0.5.0 <0.6.0", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.5.0.tgz" + }, + "source-map": { + "version": "0.2.0", + "from": "source-map@>=0.2.0 <0.3.0", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.2.0.tgz" + } + } + }, + "escope": { + "version": "3.3.0", + "from": "escope@>=3.3.0 <4.0.0", + "resolved": "https://registry.npmjs.org/escope/-/escope-3.3.0.tgz" + }, + "esprima": { + "version": "2.7.1", + "from": "esprima@>=2.6.0 <3.0.0", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-2.7.1.tgz" + }, + "esrecurse": { + "version": "3.1.1", + "from": "esrecurse@>=3.1.1 <4.0.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-3.1.1.tgz", + "dependencies": { + "estraverse": { + "version": "3.1.0", + "from": "estraverse@>=3.1.0 <3.2.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-3.1.0.tgz" + } + } + }, + "estraverse": { + "version": "4.1.1", + "from": "estraverse@>=4.1.1 <5.0.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.1.1.tgz" + }, + "estraverse-fb": { + "version": "1.3.1", + "from": "estraverse-fb@>=1.3.1 <2.0.0", + "resolved": "https://registry.npmjs.org/estraverse-fb/-/estraverse-fb-1.3.1.tgz" + }, + "esutils": { + "version": "2.0.2", + "from": "esutils@>=2.0.2 <3.0.0", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz" + }, + "etag": { + "version": "1.7.0", + "from": "etag@>=1.7.0 <1.8.0", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.7.0.tgz" + }, + "event-emitter": { + "version": "0.3.4", + "from": "event-emitter@>=0.3.4 <0.4.0", + "resolved": "https://registry.npmjs.org/event-emitter/-/event-emitter-0.3.4.tgz" + }, + "eventemitter3": { + "version": "1.1.1", + "from": "eventemitter3@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-1.1.1.tgz" + }, + "events": { + "version": "1.1.0", + "from": "events@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/events/-/events-1.1.0.tgz" + }, + "eventsource": { + "version": "0.1.6", + "from": "eventsource@>=0.1.3 <0.2.0", + "resolved": "https://registry.npmjs.org/eventsource/-/eventsource-0.1.6.tgz" + }, + "exit": { + "version": "0.1.2", + "from": "exit@>=0.1.2 <0.2.0", + "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz" + }, + "exit-hook": { + "version": "1.1.1", + "from": "exit-hook@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/exit-hook/-/exit-hook-1.1.1.tgz" + }, + "expand-brackets": { + "version": "0.1.4", + "from": "expand-brackets@>=0.1.4 <0.2.0", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-0.1.4.tgz" + }, + "expand-range": { + "version": "1.8.1", + "from": "expand-range@>=1.8.1 <2.0.0", + "resolved": "https://registry.npmjs.org/expand-range/-/expand-range-1.8.1.tgz" + }, + "expose-loader": { + "version": "0.7.1", + "from": "expose-loader@>=0.7.1 <0.8.0", + "resolved": "https://registry.npmjs.org/expose-loader/-/expose-loader-0.7.1.tgz" + }, + "express": { + "version": "4.13.3", + "from": "express@>=4.13.3 <5.0.0", + "resolved": "https://registry.npmjs.org/express/-/express-4.13.3.tgz", + "dependencies": { + "depd": { + "version": "1.0.1", + "from": "depd@>=1.0.1 <1.1.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.0.1.tgz" + }, + "qs": { + "version": "4.0.0", + "from": "qs@4.0.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-4.0.0.tgz" + } + } + }, + "extend": { + "version": "3.0.0", + "from": "extend@>=3.0.0 <3.1.0", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.0.tgz" + }, + "extglob": { + "version": "0.3.1", + "from": "extglob@>=0.3.1 <0.4.0", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-0.3.1.tgz" + }, + "extract-text-webpack-plugin": { + "version": "0.9.1", + "from": "extract-text-webpack-plugin@*", + "resolved": "https://registry.npmjs.org/extract-text-webpack-plugin/-/extract-text-webpack-plugin-0.9.1.tgz" + }, + "extsprintf": { + "version": "1.0.2", + "from": "extsprintf@1.0.2", + "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.0.2.tgz" + }, + "eyes": { + "version": "0.1.8", + "from": "eyes@>=0.1.0 <0.2.0", + "resolved": "https://registry.npmjs.org/eyes/-/eyes-0.1.8.tgz" + }, + "fast-levenshtein": { + "version": "1.0.7", + "from": "fast-levenshtein@>=1.0.6 <1.1.0", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-1.0.7.tgz" + }, + "fastparse": { + "version": "1.1.1", + "from": "fastparse@>=1.1.1 <2.0.0", + "resolved": "https://registry.npmjs.org/fastparse/-/fastparse-1.1.1.tgz" + }, + "faye-websocket": { + "version": "0.9.4", + "from": "faye-websocket@>=0.9.3 <0.10.0", + "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.9.4.tgz" + }, + "fbjs": { + "version": "0.3.2", + "from": "fbjs@>=0.3.1 <0.4.0", + "resolved": "https://registry.npmjs.org/fbjs/-/fbjs-0.3.2.tgz" + }, + "figures": { + "version": "1.4.0", + "from": "figures@>=1.3.5 <2.0.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-1.4.0.tgz" + }, + "file-entry-cache": { + "version": "1.2.4", + "from": "file-entry-cache@>=1.1.1 <2.0.0", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-1.2.4.tgz" + }, + "file-loader": { + "version": "0.8.5", + "from": "file-loader@>=0.8.4 <0.9.0", + "resolved": "https://registry.npmjs.org/file-loader/-/file-loader-0.8.5.tgz", + "dependencies": { + "loader-utils": { + "version": "0.2.12", + "from": "loader-utils@>=0.2.5 <0.3.0" + } + } + }, + "filename-regex": { + "version": "2.0.0", + "from": "filename-regex@>=2.0.0 <3.0.0", + "resolved": "https://registry.npmjs.org/filename-regex/-/filename-regex-2.0.0.tgz" + }, + "fill-range": { + "version": "2.2.3", + "from": "fill-range@>=2.1.0 <3.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-2.2.3.tgz" + }, + "finalhandler": { + "version": "0.4.0", + "from": "finalhandler@0.4.0", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-0.4.0.tgz" + }, + "find-up": { + "version": "1.1.0", + "from": "find-up@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.0.tgz", + "dependencies": { + "path-exists": { + "version": "2.1.0", + "from": "path-exists@>=2.0.0 <3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz" + } + } + }, + "find-versions": { + "version": "1.2.1", + "from": "find-versions@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/find-versions/-/find-versions-1.2.1.tgz" + }, + "flat-cache": { + "version": "1.0.10", + "from": "flat-cache@>=1.0.9 <2.0.0", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-1.0.10.tgz" + }, + "flatten": { + "version": "0.0.1", + "from": "flatten@0.0.1", + "resolved": "https://registry.npmjs.org/flatten/-/flatten-0.0.1.tgz" + }, + "flux-standard-action": { + "version": "0.6.0", + "from": "flux-standard-action@0.6.0", + "resolved": "https://registry.npmjs.org/flux-standard-action/-/flux-standard-action-0.6.0.tgz" + }, + "for-in": { + "version": "0.1.4", + "from": "for-in@>=0.1.4 <0.2.0", + "resolved": "https://registry.npmjs.org/for-in/-/for-in-0.1.4.tgz" + }, + "for-own": { + "version": "0.1.3", + "from": "for-own@>=0.1.3 <0.2.0", + "resolved": "https://registry.npmjs.org/for-own/-/for-own-0.1.3.tgz" + }, + "forever-agent": { + "version": "0.6.1", + "from": "forever-agent@>=0.6.1 <0.7.0", + "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz" + }, + "form-data": { + "version": "1.0.0-rc3", + "from": "form-data@>=1.0.0-rc3 <1.1.0", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-1.0.0-rc3.tgz" + }, + "forwarded": { + "version": "0.1.0", + "from": "forwarded@>=0.1.0 <0.2.0", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.0.tgz" + }, + "fresh": { + "version": "0.3.0", + "from": "fresh@0.3.0", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.3.0.tgz" + }, + "fs-readdir-recursive": { + "version": "0.1.2", + "from": "fs-readdir-recursive@>=0.1.0 <0.2.0", + "resolved": "https://registry.npmjs.org/fs-readdir-recursive/-/fs-readdir-recursive-0.1.2.tgz" + }, + "fsevents": { + "version": "1.0.6", + "from": "fsevents@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.0.6.tgz", + "dependencies": { + "ansi": { + "version": "0.3.0", + "from": "ansi@~0.3.0", + "resolved": "https://registry.npmjs.org/ansi/-/ansi-0.3.0.tgz" + }, + "ansi-regex": { + "version": "2.0.0", + "from": "ansi-regex@^2.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.0.0.tgz" + }, + "ansi-styles": { + "version": "2.1.0", + "from": "ansi-styles@^2.1.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.1.0.tgz" + }, + "are-we-there-yet": { + "version": "1.0.4", + "from": "are-we-there-yet@~1.0.0", + "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.0.4.tgz" + }, + "asn1": { + "version": "0.2.3", + "from": "asn1@>=0.2.3 <0.3.0", + "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.3.tgz" + }, + "assert-plus": { + "version": "0.1.5", + "from": "assert-plus@^0.1.5", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-0.1.5.tgz" + }, + "async": { + "version": "1.5.0", + "from": "async@^1.4.0", + "resolved": "https://registry.npmjs.org/async/-/async-1.5.0.tgz" + }, + "aws-sign2": { + "version": "0.6.0", + "from": "aws-sign2@~0.6.0", + "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.6.0.tgz" + }, + "bl": { + "version": "1.0.0", + "from": "bl@~1.0.0", + "resolved": "https://registry.npmjs.org/bl/-/bl-1.0.0.tgz", + "dependencies": { + "readable-stream": { + "version": "2.0.4", + "from": "readable-stream@~2.0.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.0.4.tgz", + "dependencies": { + "core-util-is": { + "version": "1.0.2", + "from": "core-util-is@~1.0.0", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz" + }, + "inherits": { + "version": "2.0.1", + "from": "inherits@~2.0.1", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz" + }, + "isarray": { + "version": "0.0.1", + "from": "isarray@0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz" + }, + "process-nextick-args": { + "version": "1.0.3", + "from": "process-nextick-args@~1.0.0", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.3.tgz" + }, + "string_decoder": { + "version": "0.10.31", + "from": "string_decoder@~0.10.x", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz" + }, + "util-deprecate": { + "version": "1.0.2", + "from": "util-deprecate@~1.0.1", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz" + } + } + } + } + }, + "block-stream": { + "version": "0.0.8", + "from": "block-stream@*", + "resolved": "https://registry.npmjs.org/block-stream/-/block-stream-0.0.8.tgz" + }, + "boom": { + "version": "2.10.1", + "from": "boom@2.x.x", + "resolved": "https://registry.npmjs.org/boom/-/boom-2.10.1.tgz" + }, + "caseless": { + "version": "0.11.0", + "from": "caseless@~0.11.0", + "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.11.0.tgz" + }, + "chalk": { + "version": "1.1.1", + "from": "chalk@^1.1.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.1.tgz" + }, + "combined-stream": { + "version": "1.0.5", + "from": "combined-stream@~1.0.5", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.5.tgz" + }, + "commander": { + "version": "2.9.0", + "from": "commander@^2.9.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.9.0.tgz" + }, + "core-util-is": { + "version": "1.0.2", + "from": "core-util-is@~1.0.0", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz" + }, + "cryptiles": { + "version": "2.0.5", + "from": "cryptiles@2.x.x", + "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-2.0.5.tgz" + }, + "dashdash": { + "version": "1.10.1", + "from": "dashdash@>=1.10.1 <2.0.0", + "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.10.1.tgz" + }, + "debug": { + "version": "0.7.4", + "from": "debug@~0.7.2", + "resolved": "https://registry.npmjs.org/debug/-/debug-0.7.4.tgz" + }, + "deep-extend": { + "version": "0.4.0", + "from": "deep-extend@~0.4.0", + "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.4.0.tgz" + }, + "delayed-stream": { + "version": "1.0.0", + "from": "delayed-stream@~1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz" + }, + "delegates": { + "version": "0.1.0", + "from": "delegates@^0.1.0", + "resolved": "https://registry.npmjs.org/delegates/-/delegates-0.1.0.tgz" + }, + "ecc-jsbn": { + "version": "0.1.1", + "from": "ecc-jsbn@>=0.0.1 <1.0.0", + "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz" + }, + "escape-string-regexp": { + "version": "1.0.3", + "from": "escape-string-regexp@^1.0.2", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.3.tgz" + }, + "extend": { + "version": "3.0.0", + "from": "extend@~3.0.0", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.0.tgz" + }, + "extsprintf": { + "version": "1.0.2", + "from": "extsprintf@1.0.2", + "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.0.2.tgz" + }, + "forever-agent": { + "version": "0.6.1", + "from": "forever-agent@~0.6.1", + "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz" + }, + "form-data": { + "version": "1.0.0-rc3", + "from": "form-data@~1.0.0-rc3", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-1.0.0-rc3.tgz" + }, + "fstream": { + "version": "1.0.8", + "from": "fstream@^1.0.2", + "resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.8.tgz" + }, + "fstream-ignore": { + "version": "1.0.3", + "from": "fstream-ignore@~1.0.3", + "resolved": "https://registry.npmjs.org/fstream-ignore/-/fstream-ignore-1.0.3.tgz", + "dependencies": { + "minimatch": { + "version": "3.0.0", + "from": "minimatch@^3.0.0", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.0.tgz", + "dependencies": { + "brace-expansion": { + "version": "1.1.1", + "from": "brace-expansion@^1.0.0", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.1.tgz", + "dependencies": { + "balanced-match": { + "version": "0.2.1", + "from": "balanced-match@^0.2.0", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-0.2.1.tgz" + }, + "concat-map": { + "version": "0.0.1", + "from": "concat-map@0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz" + } + } + } + } + } + } + }, + "gauge": { + "version": "1.2.2", + "from": "gauge@~1.2.0", + "resolved": "https://registry.npmjs.org/gauge/-/gauge-1.2.2.tgz" + }, + "generate-function": { + "version": "2.0.0", + "from": "generate-function@^2.0.0", + "resolved": "https://registry.npmjs.org/generate-function/-/generate-function-2.0.0.tgz" + }, + "generate-object-property": { + "version": "1.2.0", + "from": "generate-object-property@^1.1.0", + "resolved": "https://registry.npmjs.org/generate-object-property/-/generate-object-property-1.2.0.tgz" + }, + "graceful-fs": { + "version": "4.1.2", + "from": "graceful-fs@4.1", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.2.tgz" + }, + "graceful-readlink": { + "version": "1.0.1", + "from": "graceful-readlink@>= 1.0.0", + "resolved": "https://registry.npmjs.org/graceful-readlink/-/graceful-readlink-1.0.1.tgz" + }, + "har-validator": { + "version": "2.0.3", + "from": "har-validator@~2.0.2", + "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-2.0.3.tgz" + }, + "has-ansi": { + "version": "2.0.0", + "from": "has-ansi@^2.0.0", + "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz" + }, + "has-unicode": { + "version": "1.0.1", + "from": "has-unicode@^1.0.0", + "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-1.0.1.tgz" + }, + "hawk": { + "version": "3.1.2", + "from": "hawk@~3.1.0", + "resolved": "https://registry.npmjs.org/hawk/-/hawk-3.1.2.tgz" + }, + "hoek": { + "version": "2.16.3", + "from": "hoek@2.x.x", + "resolved": "https://registry.npmjs.org/hoek/-/hoek-2.16.3.tgz" + }, + "http-signature": { + "version": "1.1.0", + "from": "http-signature@~1.1.0", + "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.1.0.tgz" + }, + "inherits": { + "version": "2.0.1", + "from": "inherits@*", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz" + }, + "ini": { + "version": "1.3.4", + "from": "ini@~1.3.0", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.4.tgz" + }, + "is-my-json-valid": { + "version": "2.12.3", + "from": "is-my-json-valid@^2.12.3", + "resolved": "https://registry.npmjs.org/is-my-json-valid/-/is-my-json-valid-2.12.3.tgz" + }, + "is-property": { + "version": "1.0.2", + "from": "is-property@^1.0.0", + "resolved": "https://registry.npmjs.org/is-property/-/is-property-1.0.2.tgz" + }, + "is-typedarray": { + "version": "1.0.0", + "from": "is-typedarray@~1.0.0", + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz" + }, + "isarray": { + "version": "0.0.1", + "from": "isarray@0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz" + }, + "isstream": { + "version": "0.1.2", + "from": "isstream@~0.1.2", + "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz" + }, + "jodid25519": { + "version": "1.0.2", + "from": "jodid25519@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/jodid25519/-/jodid25519-1.0.2.tgz" + }, + "jsbn": { + "version": "0.1.0", + "from": "jsbn@>=0.1.0 <0.2.0", + "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.0.tgz" + }, + "json-schema": { + "version": "0.2.2", + "from": "json-schema@0.2.2", + "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.2.tgz" + }, + "json-stringify-safe": { + "version": "5.0.1", + "from": "json-stringify-safe@~5.0.1", + "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz" + }, + "jsonpointer": { + "version": "2.0.0", + "from": "jsonpointer@2.0.0", + "resolved": "https://registry.npmjs.org/jsonpointer/-/jsonpointer-2.0.0.tgz" + }, + "jsprim": { + "version": "1.2.2", + "from": "jsprim@^1.2.2", + "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.2.2.tgz" + }, + "lodash._basetostring": { + "version": "3.0.1", + "from": "lodash._basetostring@^3.0.0", + "resolved": "https://registry.npmjs.org/lodash._basetostring/-/lodash._basetostring-3.0.1.tgz" + }, + "lodash._createpadding": { + "version": "3.6.1", + "from": "lodash._createpadding@^3.0.0", + "resolved": "https://registry.npmjs.org/lodash._createpadding/-/lodash._createpadding-3.6.1.tgz" + }, + "lodash.pad": { + "version": "3.1.1", + "from": "lodash.pad@^3.0.0", + "resolved": "https://registry.npmjs.org/lodash.pad/-/lodash.pad-3.1.1.tgz" + }, + "lodash.padleft": { + "version": "3.1.1", + "from": "lodash.padleft@^3.0.0", + "resolved": "https://registry.npmjs.org/lodash.padleft/-/lodash.padleft-3.1.1.tgz" + }, + "lodash.padright": { + "version": "3.1.1", + "from": "lodash.padright@^3.0.0", + "resolved": "https://registry.npmjs.org/lodash.padright/-/lodash.padright-3.1.1.tgz" + }, + "lodash.repeat": { + "version": "3.0.1", + "from": "lodash.repeat@^3.0.0", + "resolved": "https://registry.npmjs.org/lodash.repeat/-/lodash.repeat-3.0.1.tgz" + }, + "mime-db": { + "version": "1.19.0", + "from": "mime-db@~1.19.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.19.0.tgz" + }, + "mime-types": { + "version": "2.1.7", + "from": "mime-types@~2.1.7", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.7.tgz" + }, + "minimist": { + "version": "0.0.8", + "from": "minimist@0.0.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz" + }, + "mkdirp": { + "version": "0.5.1", + "from": "mkdirp@>=0.3.0 <0.4.0||>=0.4.0 <0.5.0||>=0.5.0 <0.6.0", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz" + }, + "node-pre-gyp": { + "version": "0.6.17", + "from": "node-pre-gyp@>=0.6.17 <0.7.0", + "resolved": "https://registry.npmjs.org/node-pre-gyp/-/node-pre-gyp-0.6.17.tgz", + "dependencies": { + "nopt": { + "version": "3.0.6", + "from": "nopt@~3.0.1", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz", + "dependencies": { + "abbrev": { + "version": "1.0.7", + "from": "abbrev@1", + "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.0.7.tgz" + } + } + } + } + }, + "node-uuid": { + "version": "1.4.7", + "from": "node-uuid@~1.4.7", + "resolved": "https://registry.npmjs.org/node-uuid/-/node-uuid-1.4.7.tgz" + }, + "npmlog": { + "version": "2.0.0", + "from": "npmlog@~2.0.0", + "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-2.0.0.tgz" + }, + "oauth-sign": { + "version": "0.8.0", + "from": "oauth-sign@~0.8.0", + "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.8.0.tgz" + }, + "once": { + "version": "1.1.1", + "from": "once@~1.1.1", + "resolved": "https://registry.npmjs.org/once/-/once-1.1.1.tgz" + }, + "pinkie": { + "version": "2.0.1", + "from": "pinkie@^2.0.0", + "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.1.tgz" + }, + "pinkie-promise": { + "version": "2.0.0", + "from": "pinkie-promise@^2.0.0", + "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.0.tgz" + }, + "qs": { + "version": "5.2.0", + "from": "qs@~5.2.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-5.2.0.tgz" + }, + "rc": { + "version": "1.1.5", + "from": "rc@~1.1.0", + "resolved": "https://registry.npmjs.org/rc/-/rc-1.1.5.tgz", + "dependencies": { + "minimist": { + "version": "1.2.0", + "from": "minimist@^1.2.0", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz" + } + } + }, + "readable-stream": { + "version": "1.1.13", + "from": "readable-stream@^1.1.13", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.13.tgz" + }, + "request": { + "version": "2.67.0", + "from": "request@2.x", + "resolved": "https://registry.npmjs.org/request/-/request-2.67.0.tgz" + }, + "rimraf": { + "version": "2.4.4", + "from": "rimraf@~2.4.0", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.4.4.tgz", + "dependencies": { + "glob": { + "version": "5.0.15", + "from": "glob@^5.0.14", + "resolved": "https://registry.npmjs.org/glob/-/glob-5.0.15.tgz", + "dependencies": { + "inflight": { + "version": "1.0.4", + "from": "inflight@^1.0.4", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.4.tgz", + "dependencies": { + "wrappy": { + "version": "1.0.1", + "from": "wrappy@1", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.1.tgz" + } + } + }, + "inherits": { + "version": "2.0.1", + "from": "inherits@2", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz" + }, + "minimatch": { + "version": "3.0.0", + "from": "minimatch@2 || 3", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.0.tgz", + "dependencies": { + "brace-expansion": { + "version": "1.1.1", + "from": "brace-expansion@^1.0.0", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.1.tgz", + "dependencies": { + "balanced-match": { + "version": "0.2.1", + "from": "balanced-match@^0.2.0", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-0.2.1.tgz" + }, + "concat-map": { + "version": "0.0.1", + "from": "concat-map@0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz" + } + } + } + } + }, + "once": { + "version": "1.3.3", + "from": "once@^1.3.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.3.3.tgz", + "dependencies": { + "wrappy": { + "version": "1.0.1", + "from": "wrappy@1", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.1.tgz" + } + } + }, + "path-is-absolute": { + "version": "1.0.0", + "from": "path-is-absolute@^1.0.0", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.0.tgz" + } + } + } + } + }, + "semver": { + "version": "5.1.0", + "from": "semver@~5.1.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.1.0.tgz" + }, + "sntp": { + "version": "1.0.9", + "from": "sntp@1.x.x", + "resolved": "https://registry.npmjs.org/sntp/-/sntp-1.0.9.tgz" + }, + "sshpk": { + "version": "1.7.0", + "from": "sshpk@^1.7.0", + "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.7.0.tgz", + "dependencies": { + "assert-plus": { + "version": "0.2.0", + "from": "assert-plus@>=0.2.0 <0.3.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-0.2.0.tgz" + } + } + }, + "string_decoder": { + "version": "0.10.31", + "from": "string_decoder@~0.10.x", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz" + }, + "stringstream": { + "version": "0.0.5", + "from": "stringstream@~0.0.4", + "resolved": "https://registry.npmjs.org/stringstream/-/stringstream-0.0.5.tgz" + }, + "strip-ansi": { + "version": "3.0.0", + "from": "strip-ansi@^3.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.0.tgz" + }, + "strip-json-comments": { + "version": "1.0.4", + "from": "strip-json-comments@~1.0.4", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-1.0.4.tgz" + }, + "supports-color": { + "version": "2.0.0", + "from": "supports-color@^2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz" + }, + "tar": { + "version": "2.2.1", + "from": "tar@~2.2.0", + "resolved": "https://registry.npmjs.org/tar/-/tar-2.2.1.tgz" + }, + "tar-pack": { + "version": "3.1.0", + "from": "tar-pack@~3.1.0", + "resolved": "https://registry.npmjs.org/tar-pack/-/tar-pack-3.1.0.tgz", + "dependencies": { + "readable-stream": { + "version": "1.0.33", + "from": "readable-stream@~1.0.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.33.tgz", + "dependencies": { + "core-util-is": { + "version": "1.0.2", + "from": "core-util-is@~1.0.0", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz" + }, + "inherits": { + "version": "2.0.1", + "from": "inherits@~2.0.0", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz" + }, + "isarray": { + "version": "0.0.1", + "from": "isarray@0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz" + }, + "string_decoder": { + "version": "0.10.31", + "from": "string_decoder@~0.10.x", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz" + } + } + }, + "rimraf": { + "version": "2.2.8", + "from": "rimraf@~2.2.0", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.2.8.tgz" + } + } + }, + "tough-cookie": { + "version": "2.2.1", + "from": "tough-cookie@~2.2.0", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.2.1.tgz" + }, + "tunnel-agent": { + "version": "0.4.1", + "from": "tunnel-agent@~0.4.1", + "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.4.1.tgz" + }, + "tweetnacl": { + "version": "0.13.2", + "from": "tweetnacl@>=0.13.0 <1.0.0", + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.13.2.tgz" + }, + "uid-number": { + "version": "0.0.3", + "from": "uid-number@0.0.3", + "resolved": "https://registry.npmjs.org/uid-number/-/uid-number-0.0.3.tgz" + }, + "verror": { + "version": "1.3.6", + "from": "verror@1.3.6", + "resolved": "https://registry.npmjs.org/verror/-/verror-1.3.6.tgz" + }, + "xtend": { + "version": "4.0.1", + "from": "xtend@^4.0.0", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz" + } + } + }, + "fstream": { + "version": "1.0.8", + "from": "fstream@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.8.tgz" + }, + "gauge": { + "version": "1.2.2", + "from": "gauge@>=1.2.0 <1.3.0", + "resolved": "https://registry.npmjs.org/gauge/-/gauge-1.2.2.tgz" + }, + "gaze": { + "version": "0.5.2", + "from": "gaze@>=0.5.1 <0.6.0", + "resolved": "https://registry.npmjs.org/gaze/-/gaze-0.5.2.tgz" + }, + "generate-function": { + "version": "2.0.0", + "from": "generate-function@>=2.0.0 <3.0.0", + "resolved": "https://registry.npmjs.org/generate-function/-/generate-function-2.0.0.tgz" + }, + "generate-object-property": { + "version": "1.2.0", + "from": "generate-object-property@>=1.1.0 <2.0.0", + "resolved": "https://registry.npmjs.org/generate-object-property/-/generate-object-property-1.2.0.tgz" + }, + "get-stdin": { + "version": "4.0.1", + "from": "get-stdin@>=4.0.1 <5.0.0", + "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz" + }, + "glob": { + "version": "5.0.15", + "from": "glob@>=5.0.5 <6.0.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-5.0.15.tgz" + }, + "glob-base": { + "version": "0.3.0", + "from": "glob-base@>=0.3.0 <0.4.0", + "resolved": "https://registry.npmjs.org/glob-base/-/glob-base-0.3.0.tgz" + }, + "glob-parent": { + "version": "2.0.0", + "from": "glob-parent@>=2.0.0 <3.0.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-2.0.0.tgz" + }, + "global": { + "version": "4.3.0", + "from": "global@>=4.3.0 <5.0.0", + "resolved": "https://registry.npmjs.org/global/-/global-4.3.0.tgz", + "dependencies": { + "process": { + "version": "0.5.2", + "from": "process@>=0.5.1 <0.6.0", + "resolved": "https://registry.npmjs.org/process/-/process-0.5.2.tgz" + } + } + }, + "globals": { + "version": "8.14.0", + "from": "globals@>=8.3.0 <9.0.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-8.14.0.tgz" + }, + "globby": { + "version": "4.0.0", + "from": "globby@>=4.0.0 <5.0.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-4.0.0.tgz", + "dependencies": { + "glob": { + "version": "6.0.1", + "from": "glob@>=6.0.1 <7.0.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-6.0.1.tgz" + } + } + }, + "globule": { + "version": "0.1.0", + "from": "globule@>=0.1.0 <0.2.0", + "resolved": "https://registry.npmjs.org/globule/-/globule-0.1.0.tgz", + "dependencies": { + "glob": { + "version": "3.1.21", + "from": "glob@>=3.1.21 <3.2.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-3.1.21.tgz" + }, + "graceful-fs": { + "version": "1.2.3", + "from": "graceful-fs@>=1.2.0 <1.3.0", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-1.2.3.tgz" + }, + "inherits": { + "version": "1.0.2", + "from": "inherits@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-1.0.2.tgz" + }, + "lodash": { + "version": "1.0.2", + "from": "lodash@>=1.0.1 <1.1.0", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-1.0.2.tgz" + }, + "lru-cache": { + "version": "2.7.3", + "from": "lru-cache@>=2.0.0 <3.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-2.7.3.tgz" + }, + "minimatch": { + "version": "0.2.14", + "from": "minimatch@>=0.2.11 <0.3.0", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-0.2.14.tgz" + } + } + }, + "graceful-fs": { + "version": "4.1.2", + "from": "graceful-fs@>=4.1.2 <5.0.0", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.2.tgz" + }, + "graceful-readlink": { + "version": "1.0.1", + "from": "graceful-readlink@>=1.0.0", + "resolved": "https://registry.npmjs.org/graceful-readlink/-/graceful-readlink-1.0.1.tgz" + }, + "growl": { + "version": "1.8.1", + "from": "growl@1.8.1", + "resolved": "https://registry.npmjs.org/growl/-/growl-1.8.1.tgz" + }, + "handlebars": { + "version": "4.0.5", + "from": "handlebars@>=4.0.0 <5.0.0", + "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.0.5.tgz", + "dependencies": { + "source-map": { + "version": "0.4.4", + "from": "source-map@>=0.4.4 <0.5.0", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz" + } + } + }, + "har-validator": { + "version": "2.0.3", + "from": "har-validator@>=2.0.2 <2.1.0", + "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-2.0.3.tgz" + }, + "has-ansi": { + "version": "2.0.0", + "from": "has-ansi@>=2.0.0 <3.0.0", + "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz" + }, + "has-color": { + "version": "0.1.7", + "from": "has-color@>=0.1.0 <0.2.0", + "resolved": "https://registry.npmjs.org/has-color/-/has-color-0.1.7.tgz" + }, + "has-flag": { + "version": "1.0.0", + "from": "has-flag@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz" + }, + "has-own": { + "version": "1.0.0", + "from": "has-own@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/has-own/-/has-own-1.0.0.tgz" + }, + "has-unicode": { + "version": "1.0.1", + "from": "has-unicode@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-1.0.1.tgz" + }, + "hawk": { + "version": "3.1.2", + "from": "hawk@>=3.1.0 <3.2.0", + "resolved": "https://registry.npmjs.org/hawk/-/hawk-3.1.2.tgz" + }, + "history": { + "version": "1.13.1", + "from": "history@>=1.13.0 <1.14.0", + "resolved": "https://registry.npmjs.org/history/-/history-1.13.1.tgz", + "dependencies": { + "qs": { + "version": "4.0.0", + "from": "qs@>=4.0.0 <5.0.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-4.0.0.tgz" + } + } + }, + "hoek": { + "version": "2.16.3", + "from": "hoek@>=2.0.0 <3.0.0", + "resolved": "https://registry.npmjs.org/hoek/-/hoek-2.16.3.tgz" + }, + "hoist-non-react-statics": { + "version": "1.0.3", + "from": "hoist-non-react-statics@>=1.0.3 <2.0.0", + "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-1.0.3.tgz" + }, + "home-or-tmp": { + "version": "1.0.0", + "from": "home-or-tmp@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/home-or-tmp/-/home-or-tmp-1.0.0.tgz" + }, + "hosted-git-info": { + "version": "2.1.4", + "from": "hosted-git-info@>=2.1.4 <3.0.0", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.1.4.tgz" + }, + "htmlparser2": { + "version": "3.8.3", + "from": "htmlparser2@3.8.3", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.8.3.tgz", + "dependencies": { + "readable-stream": { + "version": "1.1.13", + "from": "readable-stream@>=1.1.0 <1.2.0" + } + } + }, + "http-browserify": { + "version": "1.7.0", + "from": "http-browserify@>=1.3.2 <2.0.0", + "resolved": "https://registry.npmjs.org/http-browserify/-/http-browserify-1.7.0.tgz" + }, + "http-errors": { + "version": "1.3.1", + "from": "http-errors@>=1.3.1 <1.4.0", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.3.1.tgz" + }, + "http-proxy": { + "version": "1.12.0", + "from": "http-proxy@>=1.11.2 <2.0.0", + "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.12.0.tgz" + }, + "http-signature": { + "version": "1.1.0", + "from": "http-signature@>=1.1.0 <1.2.0", + "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.1.0.tgz" + }, + "https-browserify": { + "version": "0.0.0", + "from": "https-browserify@0.0.0", + "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-0.0.0.tgz" + }, + "i": { + "version": "0.3.3", + "from": "i@>=0.3.0 <0.4.0", + "resolved": "https://registry.npmjs.org/i/-/i-0.3.3.tgz" + }, + "iconv-lite": { + "version": "0.4.12", + "from": "iconv-lite@0.4.12", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.12.tgz" + }, + "icss-replace-symbols": { + "version": "1.0.2", + "from": "icss-replace-symbols@>=1.0.2 <2.0.0", + "resolved": "https://registry.npmjs.org/icss-replace-symbols/-/icss-replace-symbols-1.0.2.tgz" + }, + "ieee754": { + "version": "1.1.6", + "from": "ieee754@>=1.1.4 <2.0.0", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.6.tgz" + }, + "immutable": { + "version": "3.7.5", + "from": "immutable@>=3.7.5 <4.0.0", + "resolved": "https://registry.npmjs.org/immutable/-/immutable-3.7.5.tgz" + }, + "imports-loader": { + "version": "0.6.5", + "from": "imports-loader@>=0.6.5 <0.7.0", + "resolved": "https://registry.npmjs.org/imports-loader/-/imports-loader-0.6.5.tgz", + "dependencies": { + "loader-utils": { + "version": "0.2.12", + "from": "loader-utils@>=0.2.0 <0.3.0" + }, + "source-map": { + "version": "0.1.43", + "from": "source-map@>=0.1.0 <0.2.0", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.1.43.tgz" + } + } + }, + "indent-string": { + "version": "2.1.0", + "from": "indent-string@>=2.1.0 <3.0.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-2.1.0.tgz", + "dependencies": { + "repeating": { + "version": "2.0.0", + "from": "repeating@>=2.0.0 <3.0.0", + "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.0.tgz" + } + } + }, + "indexes-of": { + "version": "1.0.1", + "from": "indexes-of@>=1.0.1 <2.0.0", + "resolved": "https://registry.npmjs.org/indexes-of/-/indexes-of-1.0.1.tgz" + }, + "indexof": { + "version": "0.0.1", + "from": "indexof@0.0.1", + "resolved": "https://registry.npmjs.org/indexof/-/indexof-0.0.1.tgz" + }, + "inflight": { + "version": "1.0.4", + "from": "inflight@>=1.0.4 <2.0.0", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.4.tgz" + }, + "inherit": { + "version": "2.2.2", + "from": "inherit@>=2.2.2 <3.0.0", + "resolved": "https://registry.npmjs.org/inherit/-/inherit-2.2.2.tgz" + }, + "inherits": { + "version": "2.0.1", + "from": "inherits@>=2.0.1 <3.0.0", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz" + }, + "ini": { + "version": "1.3.4", + "from": "ini@>=1.2.0 <2.0.0", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.4.tgz" + }, + "inquirer": { + "version": "0.11.0", + "from": "inquirer@>=0.11.0 <0.12.0", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-0.11.0.tgz", + "dependencies": { + "lodash": { + "version": "3.10.1", + "from": "lodash@>=3.3.1 <4.0.0" + } + } + }, + "interpret": { + "version": "0.6.6", + "from": "interpret@>=0.6.4 <0.7.0", + "resolved": "https://registry.npmjs.org/interpret/-/interpret-0.6.6.tgz" + }, + "invariant": { + "version": "2.2.0", + "from": "invariant@>=2.2.0 <3.0.0", + "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.0.tgz" + }, + "invert-kv": { + "version": "1.0.0", + "from": "invert-kv@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz" + }, + "ipaddr.js": { + "version": "1.0.5", + "from": "ipaddr.js@1.0.5", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.0.5.tgz" + }, + "is-absolute": { + "version": "0.1.7", + "from": "is-absolute@>=0.1.7 <0.2.0", + "resolved": "https://registry.npmjs.org/is-absolute/-/is-absolute-0.1.7.tgz" + }, + "is-absolute-url": { + "version": "2.0.0", + "from": "is-absolute-url@>=2.0.0 <3.0.0", + "resolved": "https://registry.npmjs.org/is-absolute-url/-/is-absolute-url-2.0.0.tgz" + }, + "is-arrayish": { + "version": "0.2.1", + "from": "is-arrayish@>=0.2.1 <0.3.0", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz" + }, + "is-binary-path": { + "version": "1.0.1", + "from": "is-binary-path@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz" + }, + "is-buffer": { + "version": "1.1.0", + "from": "is-buffer@>=1.0.2 <2.0.0", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.0.tgz" + }, + "is-builtin-module": { + "version": "1.0.0", + "from": "is-builtin-module@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-1.0.0.tgz" + }, + "is-dotfile": { + "version": "1.0.2", + "from": "is-dotfile@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/is-dotfile/-/is-dotfile-1.0.2.tgz" + }, + "is-equal-shallow": { + "version": "0.1.3", + "from": "is-equal-shallow@>=0.1.1 <0.2.0", + "resolved": "https://registry.npmjs.org/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz" + }, + "is-extendable": { + "version": "0.1.1", + "from": "is-extendable@>=0.1.1 <0.2.0", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz" + }, + "is-extglob": { + "version": "1.0.0", + "from": "is-extglob@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz" + }, + "is-finite": { + "version": "1.0.1", + "from": "is-finite@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.1.tgz" + }, + "is-fullwidth-code-point": { + "version": "1.0.0", + "from": "is-fullwidth-code-point@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz" + }, + "is-glob": { + "version": "2.0.1", + "from": "is-glob@>=2.0.0 <3.0.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz" + }, + "is-integer": { + "version": "1.0.6", + "from": "is-integer@>=1.0.4 <2.0.0", + "resolved": "https://registry.npmjs.org/is-integer/-/is-integer-1.0.6.tgz" + }, + "is-my-json-valid": { + "version": "2.12.3", + "from": "is-my-json-valid@>=2.12.3 <3.0.0", + "resolved": "https://registry.npmjs.org/is-my-json-valid/-/is-my-json-valid-2.12.3.tgz" + }, + "is-number": { + "version": "2.1.0", + "from": "is-number@>=2.1.0 <3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-2.1.0.tgz" + }, + "is-path-cwd": { + "version": "1.0.0", + "from": "is-path-cwd@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-1.0.0.tgz" + }, + "is-path-in-cwd": { + "version": "1.0.0", + "from": "is-path-in-cwd@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-1.0.0.tgz" + }, + "is-path-inside": { + "version": "1.0.0", + "from": "is-path-inside@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-1.0.0.tgz" + }, + "is-plain-obj": { + "version": "1.1.0", + "from": "is-plain-obj@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz" + }, + "is-primitive": { + "version": "2.0.0", + "from": "is-primitive@>=2.0.0 <3.0.0", + "resolved": "https://registry.npmjs.org/is-primitive/-/is-primitive-2.0.0.tgz" + }, + "is-promise": { + "version": "2.1.0", + "from": "is-promise@>=2.0.0 <3.0.0", + "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.1.0.tgz" + }, + "is-property": { + "version": "1.0.2", + "from": "is-property@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/is-property/-/is-property-1.0.2.tgz" + }, + "is-relative": { + "version": "0.1.3", + "from": "is-relative@>=0.1.0 <0.2.0", + "resolved": "https://registry.npmjs.org/is-relative/-/is-relative-0.1.3.tgz" + }, + "is-resolvable": { + "version": "1.0.0", + "from": "is-resolvable@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/is-resolvable/-/is-resolvable-1.0.0.tgz" + }, + "is-svg": { + "version": "1.1.1", + "from": "is-svg@>=1.1.1 <2.0.0", + "resolved": "https://registry.npmjs.org/is-svg/-/is-svg-1.1.1.tgz" + }, + "is-typedarray": { + "version": "1.0.0", + "from": "is-typedarray@>=1.0.0 <1.1.0", + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz" + }, + "is-utf8": { + "version": "0.2.0", + "from": "is-utf8@>=0.2.0 <0.3.0", + "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.0.tgz" + }, + "isarray": { + "version": "0.0.1", + "from": "isarray@0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz" + }, + "isobject": { + "version": "2.0.0", + "from": "isobject@>=2.0.0 <3.0.0", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.0.0.tgz" + }, + "isstream": { + "version": "0.1.2", + "from": "isstream@>=0.1.2 <0.2.0", + "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz" + }, + "jodid25519": { + "version": "1.0.2", + "from": "jodid25519@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/jodid25519/-/jodid25519-1.0.2.tgz" + }, + "jquery": { + "version": "2.1.4", + "from": "jquery@>=2.1.4 <3.0.0", + "resolved": "https://registry.npmjs.org/jquery/-/jquery-2.1.4.tgz" + }, + "jquery-ujs": { + "version": "1.1.0-1", + "from": "jquery-ujs@>=1.1.0-1 <2.0.0", + "resolved": "https://registry.npmjs.org/jquery-ujs/-/jquery-ujs-1.1.0-1.tgz" + }, + "js-base64": { + "version": "2.1.9", + "from": "js-base64@>=2.1.9 <3.0.0", + "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-2.1.9.tgz" + }, + "js-tokens": { + "version": "1.0.2", + "from": "js-tokens@>=1.0.1 <2.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-1.0.2.tgz" + }, + "js-yaml": { + "version": "3.3.1", + "from": "js-yaml@>=3.3.1 <3.4.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.3.1.tgz", + "dependencies": { + "esprima": { + "version": "2.2.0", + "from": "esprima@>=2.2.0 <2.3.0", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-2.2.0.tgz" + } + } + }, + "jsbn": { + "version": "0.1.0", + "from": "jsbn@>=0.1.0 <0.2.0", + "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.0.tgz" + }, + "jscs-jsdoc": { + "version": "1.3.1", + "from": "jscs-jsdoc@>=1.3.1 <2.0.0", + "resolved": "https://registry.npmjs.org/jscs-jsdoc/-/jscs-jsdoc-1.3.1.tgz" + }, + "jscs-preset-wikimedia": { + "version": "1.0.0", + "from": "jscs-preset-wikimedia@>=1.0.0 <1.1.0", + "resolved": "https://registry.npmjs.org/jscs-preset-wikimedia/-/jscs-preset-wikimedia-1.0.0.tgz" + }, + "jsdoctypeparser": { + "version": "1.2.0", + "from": "jsdoctypeparser@>=1.2.0 <1.3.0", + "resolved": "https://registry.npmjs.org/jsdoctypeparser/-/jsdoctypeparser-1.2.0.tgz", + "dependencies": { + "lodash": { + "version": "3.10.1", + "from": "lodash@>=3.7.0 <4.0.0" + } + } + }, + "jsesc": { + "version": "0.5.0", + "from": "jsesc@>=0.5.0 <0.6.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz" + }, + "json-schema": { + "version": "0.2.2", + "from": "json-schema@0.2.2", + "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.2.tgz" + }, + "json-stable-stringify": { + "version": "1.0.0", + "from": "json-stable-stringify@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-1.0.0.tgz" + }, + "json-stringify-safe": { + "version": "5.0.1", + "from": "json-stringify-safe@>=5.0.1 <5.1.0", + "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz" + }, + "json3": { + "version": "3.3.2", + "from": "json3@>=3.3.2 <4.0.0", + "resolved": "https://registry.npmjs.org/json3/-/json3-3.3.2.tgz" + }, + "json5": { + "version": "0.4.0", + "from": "json5@>=0.4.0 <0.5.0", + "resolved": "https://registry.npmjs.org/json5/-/json5-0.4.0.tgz" + }, + "jsonify": { + "version": "0.0.0", + "from": "jsonify@>=0.0.0 <0.1.0", + "resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz" + }, + "jsonlint": { + "version": "1.6.2", + "from": "jsonlint@>=1.6.2 <1.7.0", + "resolved": "https://registry.npmjs.org/jsonlint/-/jsonlint-1.6.2.tgz" + }, + "jsonpointer": { + "version": "2.0.0", + "from": "jsonpointer@2.0.0", + "resolved": "https://registry.npmjs.org/jsonpointer/-/jsonpointer-2.0.0.tgz" + }, + "jsprim": { + "version": "1.2.2", + "from": "jsprim@>=1.2.2 <2.0.0", + "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.2.2.tgz" + }, + "jstransform": { + "version": "10.1.0", + "from": "jstransform@>=10.0.1 <11.0.0", + "resolved": "https://registry.npmjs.org/jstransform/-/jstransform-10.1.0.tgz", + "dependencies": { + "esprima-fb": { + "version": "13001.1001.0-dev-harmony-fb", + "from": "esprima-fb@13001.1001.0-dev-harmony-fb", + "resolved": "https://registry.npmjs.org/esprima-fb/-/esprima-fb-13001.1001.0-dev-harmony-fb.tgz" + }, + "source-map": { + "version": "0.1.31", + "from": "source-map@0.1.31", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.1.31.tgz" + } + } + }, + "jstransformer": { + "version": "0.0.2", + "from": "jstransformer@0.0.2", + "resolved": "https://registry.npmjs.org/jstransformer/-/jstransformer-0.0.2.tgz", + "dependencies": { + "asap": { + "version": "1.0.0", + "from": "asap@>=1.0.0 <1.1.0", + "resolved": "https://registry.npmjs.org/asap/-/asap-1.0.0.tgz" + }, + "promise": { + "version": "6.1.0", + "from": "promise@>=6.0.1 <7.0.0", + "resolved": "https://registry.npmjs.org/promise/-/promise-6.1.0.tgz" + } + } + }, + "JSV": { + "version": "4.0.2", + "from": "JSV@>=4.0.0", + "resolved": "https://registry.npmjs.org/JSV/-/JSV-4.0.2.tgz" + }, + "keycode": { + "version": "2.1.0", + "from": "keycode@>=2.1.0 <3.0.0", + "resolved": "https://registry.npmjs.org/keycode/-/keycode-2.1.0.tgz" + }, + "kind-of": { + "version": "3.0.2", + "from": "kind-of@>=3.0.2 <4.0.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.0.2.tgz" + }, + "lazy-cache": { + "version": "0.2.7", + "from": "lazy-cache@>=0.2.3 <0.3.0", + "resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-0.2.7.tgz" + }, + "lcid": { + "version": "1.0.0", + "from": "lcid@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz" + }, + "left-pad": { + "version": "0.0.3", + "from": "left-pad@0.0.3", + "resolved": "https://registry.npmjs.org/left-pad/-/left-pad-0.0.3.tgz" + }, + "leven": { + "version": "1.0.2", + "from": "leven@>=1.0.2 <2.0.0", + "resolved": "https://registry.npmjs.org/leven/-/leven-1.0.2.tgz" + }, + "levn": { + "version": "0.2.5", + "from": "levn@>=0.2.5 <0.3.0", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.2.5.tgz" + }, + "line-numbers": { + "version": "0.2.0", + "from": "line-numbers@>=0.2.0 <0.3.0", + "resolved": "https://registry.npmjs.org/line-numbers/-/line-numbers-0.2.0.tgz" + }, + "load-json-file": { + "version": "1.1.0", + "from": "load-json-file@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz" + }, + "loader-utils": { + "version": "0.2.12", + "from": "loader-utils@>=0.2.11 <0.3.0", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-0.2.12.tgz" + }, + "lodash": { + "version": "3.10.1", + "from": "lodash@>=3.10.1 <4.0.0", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-3.10.1.tgz" + }, + "lodash-compat": { + "version": "3.10.1", + "from": "lodash-compat@>=3.10.1 <4.0.0", + "resolved": "https://registry.npmjs.org/lodash-compat/-/lodash-compat-3.10.1.tgz" + }, + "lodash._arraycopy": { + "version": "3.0.0", + "from": "lodash._arraycopy@>=3.0.0 <4.0.0", + "resolved": "https://registry.npmjs.org/lodash._arraycopy/-/lodash._arraycopy-3.0.0.tgz" + }, + "lodash._arrayeach": { + "version": "3.0.0", + "from": "lodash._arrayeach@>=3.0.0 <4.0.0", + "resolved": "https://registry.npmjs.org/lodash._arrayeach/-/lodash._arrayeach-3.0.0.tgz" + }, + "lodash._arraymap": { + "version": "3.0.0", + "from": "lodash._arraymap@>=3.0.0 <4.0.0", + "resolved": "https://registry.npmjs.org/lodash._arraymap/-/lodash._arraymap-3.0.0.tgz" + }, + "lodash._baseassign": { + "version": "3.2.0", + "from": "lodash._baseassign@>=3.0.0 <4.0.0", + "resolved": "https://registry.npmjs.org/lodash._baseassign/-/lodash._baseassign-3.2.0.tgz" + }, + "lodash._baseclone": { + "version": "3.3.0", + "from": "lodash._baseclone@>=3.0.0 <4.0.0", + "resolved": "https://registry.npmjs.org/lodash._baseclone/-/lodash._baseclone-3.3.0.tgz" + }, + "lodash._basecopy": { + "version": "3.0.1", + "from": "lodash._basecopy@>=3.0.0 <4.0.0", + "resolved": "https://registry.npmjs.org/lodash._basecopy/-/lodash._basecopy-3.0.1.tgz" + }, + "lodash._basedifference": { + "version": "3.0.3", + "from": "lodash._basedifference@>=3.0.0 <4.0.0", + "resolved": "https://registry.npmjs.org/lodash._basedifference/-/lodash._basedifference-3.0.3.tgz" + }, + "lodash._baseflatten": { + "version": "3.1.4", + "from": "lodash._baseflatten@>=3.0.0 <4.0.0", + "resolved": "https://registry.npmjs.org/lodash._baseflatten/-/lodash._baseflatten-3.1.4.tgz" + }, + "lodash._basefor": { + "version": "3.0.2", + "from": "lodash._basefor@>=3.0.0 <4.0.0", + "resolved": "https://registry.npmjs.org/lodash._basefor/-/lodash._basefor-3.0.2.tgz" + }, + "lodash._baseindexof": { + "version": "3.1.0", + "from": "lodash._baseindexof@>=3.0.0 <4.0.0", + "resolved": "https://registry.npmjs.org/lodash._baseindexof/-/lodash._baseindexof-3.1.0.tgz" + }, + "lodash._basetostring": { + "version": "3.0.1", + "from": "lodash._basetostring@>=3.0.0 <4.0.0", + "resolved": "https://registry.npmjs.org/lodash._basetostring/-/lodash._basetostring-3.0.1.tgz" + }, + "lodash._bindcallback": { + "version": "3.0.1", + "from": "lodash._bindcallback@>=3.0.0 <4.0.0", + "resolved": "https://registry.npmjs.org/lodash._bindcallback/-/lodash._bindcallback-3.0.1.tgz" + }, + "lodash._cacheindexof": { + "version": "3.0.2", + "from": "lodash._cacheindexof@>=3.0.0 <4.0.0", + "resolved": "https://registry.npmjs.org/lodash._cacheindexof/-/lodash._cacheindexof-3.0.2.tgz" + }, + "lodash._createassigner": { + "version": "3.1.1", + "from": "lodash._createassigner@>=3.0.0 <4.0.0", + "resolved": "https://registry.npmjs.org/lodash._createassigner/-/lodash._createassigner-3.1.1.tgz" + }, + "lodash._createcache": { + "version": "3.1.2", + "from": "lodash._createcache@>=3.0.0 <4.0.0", + "resolved": "https://registry.npmjs.org/lodash._createcache/-/lodash._createcache-3.1.2.tgz" + }, + "lodash._createcompounder": { + "version": "3.0.0", + "from": "lodash._createcompounder@>=3.0.0 <4.0.0", + "resolved": "https://registry.npmjs.org/lodash._createcompounder/-/lodash._createcompounder-3.0.0.tgz" + }, + "lodash._createpadding": { + "version": "3.6.1", + "from": "lodash._createpadding@>=3.0.0 <4.0.0", + "resolved": "https://registry.npmjs.org/lodash._createpadding/-/lodash._createpadding-3.6.1.tgz" + }, + "lodash._getnative": { + "version": "3.9.1", + "from": "lodash._getnative@>=3.0.0 <4.0.0", + "resolved": "https://registry.npmjs.org/lodash._getnative/-/lodash._getnative-3.9.1.tgz" + }, + "lodash._isiterateecall": { + "version": "3.0.9", + "from": "lodash._isiterateecall@>=3.0.0 <4.0.0", + "resolved": "https://registry.npmjs.org/lodash._isiterateecall/-/lodash._isiterateecall-3.0.9.tgz" + }, + "lodash._pickbyarray": { + "version": "3.0.2", + "from": "lodash._pickbyarray@>=3.0.0 <4.0.0", + "resolved": "https://registry.npmjs.org/lodash._pickbyarray/-/lodash._pickbyarray-3.0.2.tgz" + }, + "lodash._pickbycallback": { + "version": "3.0.0", + "from": "lodash._pickbycallback@>=3.0.0 <4.0.0", + "resolved": "https://registry.npmjs.org/lodash._pickbycallback/-/lodash._pickbycallback-3.0.0.tgz" + }, + "lodash.assign": { + "version": "3.2.0", + "from": "lodash.assign@>=3.2.0 <4.0.0", + "resolved": "https://registry.npmjs.org/lodash.assign/-/lodash.assign-3.2.0.tgz" + }, + "lodash.camelcase": { + "version": "3.0.1", + "from": "lodash.camelcase@>=3.0.1 <4.0.0", + "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-3.0.1.tgz" + }, + "lodash.clonedeep": { + "version": "3.0.2", + "from": "lodash.clonedeep@>=3.0.1 <4.0.0", + "resolved": "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-3.0.2.tgz" + }, + "lodash.deburr": { + "version": "3.0.2", + "from": "lodash.deburr@>=3.0.0 <4.0.0", + "resolved": "https://registry.npmjs.org/lodash.deburr/-/lodash.deburr-3.0.2.tgz" + }, + "lodash.defaults": { + "version": "3.1.2", + "from": "lodash.defaults@>=3.1.2 <4.0.0", + "resolved": "https://registry.npmjs.org/lodash.defaults/-/lodash.defaults-3.1.2.tgz" + }, + "lodash.isarguments": { + "version": "3.0.4", + "from": "lodash.isarguments@>=3.0.0 <4.0.0", + "resolved": "https://registry.npmjs.org/lodash.isarguments/-/lodash.isarguments-3.0.4.tgz" + }, + "lodash.isarray": { + "version": "3.0.4", + "from": "lodash.isarray@>=3.0.0 <4.0.0", + "resolved": "https://registry.npmjs.org/lodash.isarray/-/lodash.isarray-3.0.4.tgz" + }, + "lodash.isplainobject": { + "version": "3.2.0", + "from": "lodash.isplainobject@>=3.2.0 <4.0.0", + "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-3.2.0.tgz" + }, + "lodash.istypedarray": { + "version": "3.0.2", + "from": "lodash.istypedarray@>=3.0.0 <4.0.0", + "resolved": "https://registry.npmjs.org/lodash.istypedarray/-/lodash.istypedarray-3.0.2.tgz" + }, + "lodash.keys": { + "version": "3.1.2", + "from": "lodash.keys@>=3.0.0 <4.0.0", + "resolved": "https://registry.npmjs.org/lodash.keys/-/lodash.keys-3.1.2.tgz" + }, + "lodash.keysin": { + "version": "3.0.8", + "from": "lodash.keysin@>=3.0.0 <4.0.0", + "resolved": "https://registry.npmjs.org/lodash.keysin/-/lodash.keysin-3.0.8.tgz" + }, + "lodash.merge": { + "version": "3.3.2", + "from": "lodash.merge@>=3.3.2 <4.0.0", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-3.3.2.tgz" + }, + "lodash.omit": { + "version": "3.1.0", + "from": "lodash.omit@>=3.1.0 <4.0.0", + "resolved": "https://registry.npmjs.org/lodash.omit/-/lodash.omit-3.1.0.tgz" + }, + "lodash.pad": { + "version": "3.1.1", + "from": "lodash.pad@>=3.0.0 <4.0.0", + "resolved": "https://registry.npmjs.org/lodash.pad/-/lodash.pad-3.1.1.tgz" + }, + "lodash.padleft": { + "version": "3.1.1", + "from": "lodash.padleft@>=3.0.0 <4.0.0", + "resolved": "https://registry.npmjs.org/lodash.padleft/-/lodash.padleft-3.1.1.tgz" + }, + "lodash.padright": { + "version": "3.1.1", + "from": "lodash.padright@>=3.0.0 <4.0.0", + "resolved": "https://registry.npmjs.org/lodash.padright/-/lodash.padright-3.1.1.tgz" + }, + "lodash.pick": { + "version": "3.1.0", + "from": "lodash.pick@>=3.1.0 <4.0.0", + "resolved": "https://registry.npmjs.org/lodash.pick/-/lodash.pick-3.1.0.tgz" + }, + "lodash.repeat": { + "version": "3.0.1", + "from": "lodash.repeat@>=3.0.0 <4.0.0", + "resolved": "https://registry.npmjs.org/lodash.repeat/-/lodash.repeat-3.0.1.tgz" + }, + "lodash.restparam": { + "version": "3.6.1", + "from": "lodash.restparam@>=3.0.0 <4.0.0", + "resolved": "https://registry.npmjs.org/lodash.restparam/-/lodash.restparam-3.6.1.tgz" + }, + "lodash.toplainobject": { + "version": "3.0.0", + "from": "lodash.toplainobject@>=3.0.0 <4.0.0", + "resolved": "https://registry.npmjs.org/lodash.toplainobject/-/lodash.toplainobject-3.0.0.tgz" + }, + "lodash.words": { + "version": "3.0.2", + "from": "lodash.words@>=3.0.0 <4.0.0", + "resolved": "https://registry.npmjs.org/lodash.words/-/lodash.words-3.0.2.tgz" + }, + "log-symbols": { + "version": "1.0.2", + "from": "log-symbols@>=1.0.2 <2.0.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-1.0.2.tgz" + }, + "longest": { + "version": "1.0.1", + "from": "longest@>=1.0.1 <2.0.0", + "resolved": "https://registry.npmjs.org/longest/-/longest-1.0.1.tgz" + }, + "loose-envify": { + "version": "1.1.0", + "from": "loose-envify@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.1.0.tgz" + }, + "loud-rejection": { + "version": "1.2.0", + "from": "loud-rejection@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/loud-rejection/-/loud-rejection-1.2.0.tgz" + }, + "lru-cache": { + "version": "3.2.0", + "from": "lru-cache@>=3.2.0 <4.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-3.2.0.tgz" + }, + "map-obj": { + "version": "1.0.1", + "from": "map-obj@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz" + }, + "marked": { + "version": "0.3.5", + "from": "marked@>=0.3.5 <0.4.0", + "resolved": "https://registry.npmjs.org/marked/-/marked-0.3.5.tgz" + }, + "media-typer": { + "version": "0.3.0", + "from": "media-typer@0.3.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz" + }, + "memory-fs": { + "version": "0.3.0", + "from": "memory-fs@>=0.3.0 <0.4.0", + "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.3.0.tgz" + }, + "meow": { + "version": "3.6.0", + "from": "meow@>=3.5.0 <4.0.0", + "resolved": "https://registry.npmjs.org/meow/-/meow-3.6.0.tgz" + }, + "merge-descriptors": { + "version": "1.0.0", + "from": "merge-descriptors@1.0.0", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.0.tgz" + }, + "methods": { + "version": "1.1.1", + "from": "methods@>=1.1.1 <1.2.0", + "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.1.tgz" + }, + "micromatch": { + "version": "2.3.5", + "from": "micromatch@>=2.1.5 <3.0.0", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-2.3.5.tgz" + }, + "mime": { + "version": "1.2.11", + "from": "mime@>=1.2.0 <1.3.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.2.11.tgz" + }, + "mime-db": { + "version": "1.20.0", + "from": "mime-db@>=1.20.0 <1.21.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.20.0.tgz" + }, + "mime-types": { + "version": "2.1.8", + "from": "mime-types@>=2.1.7 <2.2.0", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.8.tgz" + }, + "min-document": { + "version": "2.17.0", + "from": "min-document@>=2.6.1 <3.0.0", + "resolved": "https://registry.npmjs.org/min-document/-/min-document-2.17.0.tgz" + }, + "minimatch": { + "version": "2.0.10", + "from": "minimatch@>=2.0.3 <3.0.0", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-2.0.10.tgz" + }, + "minimist": { + "version": "1.2.0", + "from": "minimist@>=1.1.0 <2.0.0", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz" + }, + "mkdirp": { + "version": "0.5.1", + "from": "mkdirp@>=0.5.1 <0.6.0", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", + "dependencies": { + "minimist": { + "version": "0.0.8", + "from": "minimist@0.0.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz" + } + } + }, + "ms": { + "version": "0.7.1", + "from": "ms@0.7.1", + "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.1.tgz" + }, + "mute-stream": { + "version": "0.0.5", + "from": "mute-stream@0.0.5", + "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.5.tgz" + }, + "nan": { + "version": "2.1.0", + "from": "nan@>=2.1.0 <3.0.0", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.1.0.tgz" + }, + "natural-compare": { + "version": "1.2.2", + "from": "natural-compare@>=1.2.2 <1.3.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.2.2.tgz" + }, + "ncp": { + "version": "0.4.2", + "from": "ncp@>=0.4.0 <0.5.0", + "resolved": "https://registry.npmjs.org/ncp/-/ncp-0.4.2.tgz" + }, + "negotiator": { + "version": "0.5.3", + "from": "negotiator@0.5.3", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.5.3.tgz" + }, + "node-gyp": { + "version": "3.2.1", + "from": "node-gyp@>=3.0.1 <4.0.0", + "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-3.2.1.tgz", + "dependencies": { + "glob": { + "version": "4.5.3", + "from": "glob@>=3.0.0 <4.0.0||>=4.0.0 <5.0.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-4.5.3.tgz", + "dependencies": { + "minimatch": { + "version": "2.0.10", + "from": "minimatch@>=2.0.1 <3.0.0", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-2.0.10.tgz" + } + } + }, + "lru-cache": { + "version": "2.7.3", + "from": "lru-cache@>=2.0.0 <3.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-2.7.3.tgz" + }, + "minimatch": { + "version": "1.0.0", + "from": "minimatch@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-1.0.0.tgz" + } + } + }, + "node-libs-browser": { + "version": "0.5.3", + "from": "node-libs-browser@>=0.4.0 <=0.6.0", + "resolved": "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-0.5.3.tgz", + "dependencies": { + "readable-stream": { + "version": "1.1.13", + "from": "readable-stream@>=1.1.13 <2.0.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.13.tgz" + } + } + }, + "node-sass": { + "version": "3.4.2", + "from": "node-sass@>=3.4.2 <4.0.0", + "resolved": "https://registry.npmjs.org/node-sass/-/node-sass-3.4.2.tgz" + }, + "node-uuid": { + "version": "1.4.7", + "from": "node-uuid@>=1.4.7 <2.0.0", + "resolved": "https://registry.npmjs.org/node-uuid/-/node-uuid-1.4.7.tgz" + }, + "nomnom": { + "version": "1.8.1", + "from": "nomnom@>=1.5.0", + "resolved": "https://registry.npmjs.org/nomnom/-/nomnom-1.8.1.tgz", + "dependencies": { + "ansi-styles": { + "version": "1.0.0", + "from": "ansi-styles@>=1.0.0 <1.1.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-1.0.0.tgz" + }, + "chalk": { + "version": "0.4.0", + "from": "chalk@>=0.4.0 <0.5.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-0.4.0.tgz" + }, + "strip-ansi": { + "version": "0.1.1", + "from": "strip-ansi@>=0.1.0 <0.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-0.1.1.tgz" + } + } + }, + "nopt": { + "version": "3.0.6", + "from": "nopt@>=2.0.0 <3.0.0||>=3.0.0 <4.0.0", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz" + }, + "normalize-package-data": { + "version": "2.3.5", + "from": "normalize-package-data@>=2.3.4 <3.0.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.3.5.tgz" + }, + "normalize-path": { + "version": "2.0.1", + "from": "normalize-path@>=2.0.0 <3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.0.1.tgz" + }, + "normalize-url": { + "version": "1.4.0", + "from": "normalize-url@>=1.3.1 <2.0.0", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-1.4.0.tgz" + }, + "npmconf": { + "version": "2.1.2", + "from": "npmconf@>=2.1.2 <3.0.0", + "resolved": "https://registry.npmjs.org/npmconf/-/npmconf-2.1.2.tgz" + }, + "npmlog": { + "version": "1.2.1", + "from": "npmlog@>=0.0.0 <1.0.0||>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-1.2.1.tgz" + }, + "num2fraction": { + "version": "1.2.2", + "from": "num2fraction@>=1.2.2 <2.0.0", + "resolved": "https://registry.npmjs.org/num2fraction/-/num2fraction-1.2.2.tgz" + }, + "number-is-nan": { + "version": "1.0.0", + "from": "number-is-nan@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.0.tgz" + }, + "nwmatcher": { + "version": "1.3.7", + "from": "nwmatcher@>=1.3.7 <2.0.0", + "resolved": "https://registry.npmjs.org/nwmatcher/-/nwmatcher-1.3.7.tgz" + }, + "oauth-sign": { + "version": "0.8.0", + "from": "oauth-sign@>=0.8.0 <0.9.0", + "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.8.0.tgz" + }, + "object-assign": { + "version": "4.0.1", + "from": "object-assign@>=4.0.1 <5.0.0", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.0.1.tgz" + }, + "object.omit": { + "version": "2.0.0", + "from": "object.omit@>=2.0.0 <3.0.0", + "resolved": "https://registry.npmjs.org/object.omit/-/object.omit-2.0.0.tgz" + }, + "on-finished": { + "version": "2.3.0", + "from": "on-finished@>=2.3.0 <2.4.0", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz" + }, + "on-headers": { + "version": "1.0.1", + "from": "on-headers@>=1.0.1 <1.1.0", + "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.1.tgz" + }, + "once": { + "version": "1.3.3", + "from": "once@>=1.3.0 <2.0.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.3.3.tgz" + }, + "onetime": { + "version": "1.0.0", + "from": "onetime@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-1.0.0.tgz" + }, + "optimist": { + "version": "0.6.1", + "from": "optimist@>=0.6.0 <0.7.0", + "resolved": "https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz", + "dependencies": { + "minimist": { + "version": "0.0.10", + "from": "minimist@>=0.0.1 <0.1.0", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.10.tgz" + } + } + }, + "optionator": { + "version": "0.6.0", + "from": "optionator@>=0.6.0 <0.7.0", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.6.0.tgz" + }, + "original": { + "version": "1.0.0", + "from": "original@>=0.0.5", + "resolved": "https://registry.npmjs.org/original/-/original-1.0.0.tgz" + }, + "os-browserify": { + "version": "0.1.2", + "from": "os-browserify@>=0.1.2 <0.2.0", + "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.1.2.tgz" + }, + "os-homedir": { + "version": "1.0.1", + "from": "os-homedir@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.1.tgz" + }, + "os-locale": { + "version": "1.4.0", + "from": "os-locale@>=1.4.0 <2.0.0", + "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-1.4.0.tgz" + }, + "os-shim": { + "version": "0.1.3", + "from": "os-shim@>=0.1.2 <0.2.0", + "resolved": "https://registry.npmjs.org/os-shim/-/os-shim-0.1.3.tgz" + }, + "os-tmpdir": { + "version": "1.0.1", + "from": "os-tmpdir@>=1.0.1 <2.0.0", + "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.1.tgz" + }, + "osenv": { + "version": "0.1.3", + "from": "osenv@>=0.0.0 <1.0.0", + "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.3.tgz" + }, + "output-file-sync": { + "version": "1.1.1", + "from": "output-file-sync@>=1.1.0 <2.0.0", + "resolved": "https://registry.npmjs.org/output-file-sync/-/output-file-sync-1.1.1.tgz" + }, + "pako": { + "version": "0.2.8", + "from": "pako@>=0.2.0 <0.3.0", + "resolved": "https://registry.npmjs.org/pako/-/pako-0.2.8.tgz" + }, + "parse-glob": { + "version": "3.0.4", + "from": "parse-glob@>=3.0.4 <4.0.0", + "resolved": "https://registry.npmjs.org/parse-glob/-/parse-glob-3.0.4.tgz" + }, + "parse-json": { + "version": "2.2.0", + "from": "parse-json@>=2.2.0 <3.0.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz" + }, + "parse5": { + "version": "1.5.1", + "from": "parse5@>=1.5.1 <2.0.0", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-1.5.1.tgz" + }, + "parseurl": { + "version": "1.3.0", + "from": "parseurl@>=1.3.0 <1.4.0", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.0.tgz" + }, + "path-array": { + "version": "1.0.0", + "from": "path-array@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/path-array/-/path-array-1.0.0.tgz" + }, + "path-browserify": { + "version": "0.0.0", + "from": "path-browserify@0.0.0", + "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.0.tgz" + }, + "path-exists": { + "version": "1.0.0", + "from": "path-exists@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-1.0.0.tgz" + }, + "path-is-absolute": { + "version": "1.0.0", + "from": "path-is-absolute@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.0.tgz" + }, + "path-is-inside": { + "version": "1.0.1", + "from": "path-is-inside@>=1.0.1 <2.0.0", + "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.1.tgz" + }, + "path-to-regexp": { + "version": "0.1.7", + "from": "path-to-regexp@0.1.7", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz" + }, + "path-type": { + "version": "1.1.0", + "from": "path-type@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz" + }, + "pathval": { + "version": "0.1.1", + "from": "pathval@>=0.1.1 <0.2.0", + "resolved": "https://registry.npmjs.org/pathval/-/pathval-0.1.1.tgz" + }, + "pbkdf2-compat": { + "version": "2.0.1", + "from": "pbkdf2-compat@2.0.1", + "resolved": "https://registry.npmjs.org/pbkdf2-compat/-/pbkdf2-compat-2.0.1.tgz" + }, + "pify": { + "version": "2.3.0", + "from": "pify@>=2.0.0 <3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz" + }, + "pinkie": { + "version": "2.0.1", + "from": "pinkie@>=2.0.0 <3.0.0", + "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.1.tgz" + }, + "pinkie-promise": { + "version": "2.0.0", + "from": "pinkie-promise@>=2.0.0 <3.0.0", + "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.0.tgz" + }, + "pkginfo": { + "version": "0.3.1", + "from": "pkginfo@>=0.0.0 <1.0.0", + "resolved": "https://registry.npmjs.org/pkginfo/-/pkginfo-0.3.1.tgz" + }, + "postcss": { + "version": "5.0.12", + "from": "postcss@>=5.0.6 <6.0.0", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.0.12.tgz", + "dependencies": { + "supports-color": { + "version": "3.1.2", + "from": "supports-color@>=3.1.2 <4.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.1.2.tgz" + } + } + }, + "postcss-calc": { + "version": "5.0.0", + "from": "postcss-calc@>=5.0.0 <6.0.0", + "resolved": "https://registry.npmjs.org/postcss-calc/-/postcss-calc-5.0.0.tgz" + }, + "postcss-colormin": { + "version": "2.1.7", + "from": "postcss-colormin@>=2.1.7 <3.0.0", + "resolved": "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-2.1.7.tgz" + }, + "postcss-convert-values": { + "version": "2.3.4", + "from": "postcss-convert-values@>=2.3.4 <3.0.0", + "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-2.3.4.tgz" + }, + "postcss-discard-comments": { + "version": "2.0.2", + "from": "postcss-discard-comments@>=2.0.2 <3.0.0", + "resolved": "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-2.0.2.tgz" + }, + "postcss-discard-duplicates": { + "version": "2.0.0", + "from": "postcss-discard-duplicates@>=2.0.0 <3.0.0", + "resolved": "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-2.0.0.tgz" + }, + "postcss-discard-empty": { + "version": "2.0.0", + "from": "postcss-discard-empty@>=2.0.0 <3.0.0", + "resolved": "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-2.0.0.tgz" + }, + "postcss-discard-unused": { + "version": "2.1.0", + "from": "postcss-discard-unused@>=2.1.0 <3.0.0", + "resolved": "https://registry.npmjs.org/postcss-discard-unused/-/postcss-discard-unused-2.1.0.tgz" + }, + "postcss-filter-plugins": { + "version": "2.0.0", + "from": "postcss-filter-plugins@>=2.0.0 <3.0.0", + "resolved": "https://registry.npmjs.org/postcss-filter-plugins/-/postcss-filter-plugins-2.0.0.tgz" + }, + "postcss-loader": { + "version": "0.8.0", + "from": "postcss-loader@*", + "resolved": "https://registry.npmjs.org/postcss-loader/-/postcss-loader-0.8.0.tgz" + }, + "postcss-merge-idents": { + "version": "2.1.3", + "from": "postcss-merge-idents@>=2.1.3 <3.0.0", + "resolved": "https://registry.npmjs.org/postcss-merge-idents/-/postcss-merge-idents-2.1.3.tgz" + }, + "postcss-merge-longhand": { + "version": "2.0.1", + "from": "postcss-merge-longhand@>=2.0.1 <3.0.0", + "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-2.0.1.tgz" + }, + "postcss-merge-rules": { + "version": "2.0.3", + "from": "postcss-merge-rules@>=2.0.1 <3.0.0", + "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-2.0.3.tgz" + }, + "postcss-message-helpers": { + "version": "2.0.0", + "from": "postcss-message-helpers@>=2.0.0 <3.0.0", + "resolved": "https://registry.npmjs.org/postcss-message-helpers/-/postcss-message-helpers-2.0.0.tgz" + }, + "postcss-minify-font-values": { + "version": "1.0.2", + "from": "postcss-minify-font-values@>=1.0.2 <2.0.0", + "resolved": "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-1.0.2.tgz" + }, + "postcss-minify-gradients": { + "version": "1.0.1", + "from": "postcss-minify-gradients@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-1.0.1.tgz" + }, + "postcss-minify-params": { + "version": "1.0.4", + "from": "postcss-minify-params@>=1.0.4 <2.0.0", + "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-1.0.4.tgz" + }, + "postcss-minify-selectors": { + "version": "2.0.1", + "from": "postcss-minify-selectors@>=2.0.1 <3.0.0", + "resolved": "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-2.0.1.tgz" + }, + "postcss-modules-extract-imports": { + "version": "1.0.0", + "from": "postcss-modules-extract-imports@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-1.0.0.tgz" + }, + "postcss-modules-local-by-default": { + "version": "1.0.0", + "from": "postcss-modules-local-by-default@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-1.0.0.tgz" + }, + "postcss-modules-scope": { + "version": "1.0.0", + "from": "postcss-modules-scope@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-1.0.0.tgz" + }, + "postcss-modules-values": { + "version": "1.1.1", + "from": "postcss-modules-values@>=1.1.0 <2.0.0", + "resolved": "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-1.1.1.tgz" + }, + "postcss-normalize-charset": { + "version": "1.1.0", + "from": "postcss-normalize-charset@>=1.1.0 <2.0.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-1.1.0.tgz" + }, + "postcss-normalize-url": { + "version": "3.0.4", + "from": "postcss-normalize-url@>=3.0.4 <4.0.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-3.0.4.tgz" + }, + "postcss-ordered-values": { + "version": "2.0.2", + "from": "postcss-ordered-values@>=2.0.2 <3.0.0", + "resolved": "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-2.0.2.tgz" + }, + "postcss-reduce-idents": { + "version": "2.2.1", + "from": "postcss-reduce-idents@>=2.2.1 <3.0.0", + "resolved": "https://registry.npmjs.org/postcss-reduce-idents/-/postcss-reduce-idents-2.2.1.tgz" + }, + "postcss-reduce-transforms": { + "version": "1.0.3", + "from": "postcss-reduce-transforms@>=1.0.3 <2.0.0", + "resolved": "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-1.0.3.tgz" + }, + "postcss-selector-parser": { + "version": "1.3.0", + "from": "postcss-selector-parser@>=1.1.4 <2.0.0", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-1.3.0.tgz" + }, + "postcss-svgo": { + "version": "2.1.0", + "from": "postcss-svgo@>=2.0.4 <3.0.0", + "resolved": "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-2.1.0.tgz" + }, + "postcss-unique-selectors": { + "version": "2.0.1", + "from": "postcss-unique-selectors@>=2.0.1 <3.0.0", + "resolved": "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-2.0.1.tgz" + }, + "postcss-value-parser": { + "version": "3.1.3", + "from": "postcss-value-parser@>=3.1.1 <4.0.0", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.1.3.tgz" + }, + "postcss-zindex": { + "version": "2.0.0", + "from": "postcss-zindex@>=2.0.0 <3.0.0", + "resolved": "https://registry.npmjs.org/postcss-zindex/-/postcss-zindex-2.0.0.tgz" + }, + "prelude-ls": { + "version": "1.1.2", + "from": "prelude-ls@>=1.1.1 <1.2.0", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz" + }, + "prepend-http": { + "version": "1.0.3", + "from": "prepend-http@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-1.0.3.tgz" + }, + "preserve": { + "version": "0.2.0", + "from": "preserve@>=0.2.0 <0.3.0", + "resolved": "https://registry.npmjs.org/preserve/-/preserve-0.2.0.tgz" + }, + "private": { + "version": "0.1.6", + "from": "private@>=0.1.6 <0.2.0", + "resolved": "https://registry.npmjs.org/private/-/private-0.1.6.tgz" + }, + "process": { + "version": "0.11.2", + "from": "process@>=0.11.0 <0.12.0", + "resolved": "https://registry.npmjs.org/process/-/process-0.11.2.tgz" + }, + "process-nextick-args": { + "version": "1.0.6", + "from": "process-nextick-args@>=1.0.0 <1.1.0", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.6.tgz" + }, + "promise": { + "version": "7.0.4", + "from": "promise@>=7.0.3 <8.0.0", + "resolved": "https://registry.npmjs.org/promise/-/promise-7.0.4.tgz" + }, + "prompt": { + "version": "0.2.14", + "from": "prompt@>=0.2.14 <0.3.0", + "resolved": "https://registry.npmjs.org/prompt/-/prompt-0.2.14.tgz" + }, + "proto-list": { + "version": "1.2.4", + "from": "proto-list@>=1.2.1 <1.3.0", + "resolved": "https://registry.npmjs.org/proto-list/-/proto-list-1.2.4.tgz" + }, + "proxy-addr": { + "version": "1.0.10", + "from": "proxy-addr@>=1.0.8 <1.1.0", + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-1.0.10.tgz" + }, + "prr": { + "version": "0.0.0", + "from": "prr@>=0.0.0 <0.1.0", + "resolved": "https://registry.npmjs.org/prr/-/prr-0.0.0.tgz" + }, + "pseudomap": { + "version": "1.0.1", + "from": "pseudomap@>=1.0.1 <2.0.0", + "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.1.tgz" + }, + "punycode": { + "version": "1.4.0", + "from": "punycode@>=1.2.4 <2.0.0", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.0.tgz" + }, + "q": { + "version": "1.4.1", + "from": "q@>=1.1.2 <2.0.0", + "resolved": "https://registry.npmjs.org/q/-/q-1.4.1.tgz" + }, + "qs": { + "version": "5.2.0", + "from": "qs@>=5.2.0 <5.3.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-5.2.0.tgz" + }, + "query-string": { + "version": "3.0.0", + "from": "query-string@>=3.0.0 <4.0.0", + "resolved": "https://registry.npmjs.org/query-string/-/query-string-3.0.0.tgz" + }, + "querystring": { + "version": "0.2.0", + "from": "querystring@0.2.0", + "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz" + }, + "querystring-es3": { + "version": "0.2.1", + "from": "querystring-es3@>=0.2.0 <0.3.0", + "resolved": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz" + }, + "querystringify": { + "version": "0.0.3", + "from": "querystringify@>=0.0.0 <0.1.0", + "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-0.0.3.tgz" + }, + "randomatic": { + "version": "1.1.5", + "from": "randomatic@>=1.1.3 <2.0.0", + "resolved": "https://registry.npmjs.org/randomatic/-/randomatic-1.1.5.tgz" + }, + "range-parser": { + "version": "1.0.3", + "from": "range-parser@>=1.0.2 <1.1.0", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.0.3.tgz" + }, + "raw-body": { + "version": "2.1.5", + "from": "raw-body@>=2.1.4 <2.2.0", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.1.5.tgz", + "dependencies": { + "bytes": { + "version": "2.2.0", + "from": "bytes@2.2.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-2.2.0.tgz" + }, + "iconv-lite": { + "version": "0.4.13", + "from": "iconv-lite@0.4.13", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.13.tgz" + } + } + }, + "react": { + "version": "0.14.3", + "from": "react@>=0.14.3 <0.15.0", + "resolved": "https://registry.npmjs.org/react/-/react-0.14.3.tgz" + }, + "react-bootstrap": { + "version": "0.28.1", + "from": "react-bootstrap@>=0.28.1 <0.29.0", + "resolved": "https://registry.npmjs.org/react-bootstrap/-/react-bootstrap-0.28.1.tgz" + }, + "react-deep-force-update": { + "version": "1.0.0", + "from": "react-deep-force-update@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/react-deep-force-update/-/react-deep-force-update-1.0.0.tgz" + }, + "react-dom": { + "version": "0.14.3", + "from": "react-dom@>=0.14.3 <0.15.0", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-0.14.3.tgz" + }, + "react-overlays": { + "version": "0.5.4", + "from": "react-overlays@>=0.5.2 <0.6.0", + "resolved": "https://registry.npmjs.org/react-overlays/-/react-overlays-0.5.4.tgz", + "dependencies": { + "react-prop-types": { + "version": "0.2.2", + "from": "react-prop-types@>=0.2.1 <0.3.0", + "resolved": "https://registry.npmjs.org/react-prop-types/-/react-prop-types-0.2.2.tgz" + } + } + }, + "react-prop-types": { + "version": "0.3.0", + "from": "react-prop-types@>=0.3.0 <0.4.0", + "resolved": "https://registry.npmjs.org/react-prop-types/-/react-prop-types-0.3.0.tgz" + }, + "react-proxy": { + "version": "1.1.1", + "from": "react-proxy@>=1.1.1 <2.0.0", + "resolved": "https://registry.npmjs.org/react-proxy/-/react-proxy-1.1.1.tgz", + "dependencies": { + "lodash": { + "version": "3.10.1", + "from": "lodash@>=3.7.0 <4.0.0" + } + } + }, + "react-redux": { + "version": "4.0.0", + "from": "react-redux@>=4.0.0 <5.0.0", + "resolved": "https://registry.npmjs.org/react-redux/-/react-redux-4.0.0.tgz" + }, + "react-router": { + "version": "1.0.2", + "from": "react-router@>=1.0.0-rc3 <2.0.0", + "resolved": "https://registry.npmjs.org/react-router/-/react-router-1.0.2.tgz" + }, + "read": { + "version": "1.0.7", + "from": "read@>=1.0.0 <1.1.0", + "resolved": "https://registry.npmjs.org/read/-/read-1.0.7.tgz" + }, + "read-json-sync": { + "version": "1.1.1", + "from": "read-json-sync@>=1.1.0 <2.0.0", + "resolved": "https://registry.npmjs.org/read-json-sync/-/read-json-sync-1.1.1.tgz" + }, + "read-pkg": { + "version": "1.1.0", + "from": "read-pkg@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz" + }, + "read-pkg-up": { + "version": "1.0.1", + "from": "read-pkg-up@>=1.0.1 <2.0.0", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz" + }, + "readable-stream": { + "version": "2.0.4", + "from": "readable-stream@>=2.0.2 <3.0.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.0.4.tgz" + }, + "readdirp": { + "version": "2.0.0", + "from": "readdirp@>=2.0.0 <3.0.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.0.0.tgz" + }, + "readline2": { + "version": "1.0.1", + "from": "readline2@>=1.0.1 <2.0.0", + "resolved": "https://registry.npmjs.org/readline2/-/readline2-1.0.1.tgz" + }, + "recast": { + "version": "0.10.39", + "from": "recast@>=0.10.10 <0.11.0", + "resolved": "https://registry.npmjs.org/recast/-/recast-0.10.39.tgz", + "dependencies": { + "esprima-fb": { + "version": "15001.1001.0-dev-harmony-fb", + "from": "esprima-fb@>=15001.1001.0-dev-harmony-fb <15001.1002.0", + "resolved": "https://registry.npmjs.org/esprima-fb/-/esprima-fb-15001.1001.0-dev-harmony-fb.tgz" + } + } + }, + "redent": { + "version": "1.0.0", + "from": "redent@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/redent/-/redent-1.0.0.tgz" + }, + "reduce-css-calc": { + "version": "1.2.0", + "from": "reduce-css-calc@>=1.2.0 <2.0.0", + "resolved": "https://registry.npmjs.org/reduce-css-calc/-/reduce-css-calc-1.2.0.tgz", + "dependencies": { + "balanced-match": { + "version": "0.1.0", + "from": "balanced-match@>=0.1.0 <0.2.0", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-0.1.0.tgz" + } + } + }, + "reduce-function-call": { + "version": "1.0.1", + "from": "reduce-function-call@>=1.0.1 <2.0.0", + "resolved": "https://registry.npmjs.org/reduce-function-call/-/reduce-function-call-1.0.1.tgz", + "dependencies": { + "balanced-match": { + "version": "0.1.0", + "from": "balanced-match@>=0.1.0 <0.2.0" + } + } + }, + "redux": { + "version": "3.0.4", + "from": "redux@>=3.0.4 <4.0.0", + "resolved": "https://registry.npmjs.org/redux/-/redux-3.0.4.tgz" + }, + "redux-promise": { + "version": "0.5.0", + "from": "redux-promise@>=0.5.0 <0.6.0", + "resolved": "https://registry.npmjs.org/redux-promise/-/redux-promise-0.5.0.tgz" + }, + "redux-thunk": { + "version": "1.0.0", + "from": "redux-thunk@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/redux-thunk/-/redux-thunk-1.0.0.tgz" + }, + "regenerate": { + "version": "1.2.1", + "from": "regenerate@>=1.2.1 <2.0.0", + "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.2.1.tgz" + }, + "regenerator": { + "version": "0.8.40", + "from": "regenerator@0.8.40", + "resolved": "https://registry.npmjs.org/regenerator/-/regenerator-0.8.40.tgz", + "dependencies": { + "esprima-fb": { + "version": "15001.1001.0-dev-harmony-fb", + "from": "esprima-fb@>=15001.1001.0-dev-harmony-fb <15001.1002.0", + "resolved": "https://registry.npmjs.org/esprima-fb/-/esprima-fb-15001.1001.0-dev-harmony-fb.tgz" + }, + "recast": { + "version": "0.10.33", + "from": "recast@0.10.33", + "resolved": "https://registry.npmjs.org/recast/-/recast-0.10.33.tgz" + } + } + }, + "regex-cache": { + "version": "0.4.2", + "from": "regex-cache@>=0.4.2 <0.5.0", + "resolved": "https://registry.npmjs.org/regex-cache/-/regex-cache-0.4.2.tgz" + }, + "regexpu": { + "version": "1.3.0", + "from": "regexpu@>=1.1.2 <2.0.0", + "resolved": "https://registry.npmjs.org/regexpu/-/regexpu-1.3.0.tgz" + }, + "regjsgen": { + "version": "0.2.0", + "from": "regjsgen@>=0.2.0 <0.3.0", + "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.2.0.tgz" + }, + "regjsparser": { + "version": "0.1.5", + "from": "regjsparser@>=0.1.4 <0.2.0", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.1.5.tgz" + }, + "repeat-element": { + "version": "1.1.2", + "from": "repeat-element@>=1.1.2 <2.0.0", + "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.2.tgz" + }, + "repeat-string": { + "version": "1.5.2", + "from": "repeat-string@>=1.5.2 <2.0.0", + "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.5.2.tgz" + }, + "repeating": { + "version": "1.1.3", + "from": "repeating@>=1.1.3 <2.0.0", + "resolved": "https://registry.npmjs.org/repeating/-/repeating-1.1.3.tgz" + }, + "request": { + "version": "2.67.0", + "from": "request@>=2.65.0 <3.0.0", + "resolved": "https://registry.npmjs.org/request/-/request-2.67.0.tgz", + "dependencies": { + "node-uuid": { + "version": "1.4.7", + "from": "node-uuid@>=1.4.7 <1.5.0", + "resolved": "https://registry.npmjs.org/node-uuid/-/node-uuid-1.4.7.tgz" + } + } + }, + "requires-port": { + "version": "0.0.1", + "from": "requires-port@>=0.0.0 <1.0.0", + "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-0.0.1.tgz" + }, + "reserved-words": { + "version": "0.1.1", + "from": "reserved-words@>=0.1.1 <0.2.0", + "resolved": "https://registry.npmjs.org/reserved-words/-/reserved-words-0.1.1.tgz" + }, + "resolve": { + "version": "1.1.6", + "from": "resolve@>=1.1.6 <2.0.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.1.6.tgz" + }, + "resolve-url": { + "version": "0.2.1", + "from": "resolve-url@>=0.2.1 <0.3.0", + "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz" + }, + "resolve-url-loader": { + "version": "1.4.3", + "from": "resolve-url-loader@latest", + "resolved": "https://registry.npmjs.org/resolve-url-loader/-/resolve-url-loader-1.4.3.tgz", + "dependencies": { + "camelcase": { + "version": "1.2.1", + "from": "camelcase@>=1.2.1 <2.0.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-1.2.1.tgz" + }, + "source-map": { + "version": "0.1.43", + "from": "source-map@>=0.1.43 <0.2.0", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.1.43.tgz" + } + } + }, + "restore-cursor": { + "version": "1.0.1", + "from": "restore-cursor@>=1.0.1 <2.0.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-1.0.1.tgz" + }, + "revalidator": { + "version": "0.1.8", + "from": "revalidator@>=0.1.0 <0.2.0", + "resolved": "https://registry.npmjs.org/revalidator/-/revalidator-0.1.8.tgz" + }, + "rework": { + "version": "1.0.1", + "from": "rework@>=1.0.1 <2.0.0", + "resolved": "https://registry.npmjs.org/rework/-/rework-1.0.1.tgz", + "dependencies": { + "convert-source-map": { + "version": "0.3.5", + "from": "convert-source-map@>=0.3.3 <0.4.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-0.3.5.tgz" + }, + "css": { + "version": "2.2.1", + "from": "css@>=2.0.0 <3.0.0", + "resolved": "https://registry.npmjs.org/css/-/css-2.2.1.tgz" + }, + "source-map": { + "version": "0.1.43", + "from": "source-map@>=0.1.38 <0.2.0" + } + } + }, + "rework-visit": { + "version": "1.0.0", + "from": "rework-visit@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/rework-visit/-/rework-visit-1.0.0.tgz" + }, + "right-align": { + "version": "0.1.3", + "from": "right-align@>=0.1.1 <0.2.0", + "resolved": "https://registry.npmjs.org/right-align/-/right-align-0.1.3.tgz" + }, + "rimraf": { + "version": "2.4.4", + "from": "rimraf@>=2.0.0 <3.0.0", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.4.4.tgz" + }, + "ripemd160": { + "version": "0.2.0", + "from": "ripemd160@0.2.0", + "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-0.2.0.tgz" + }, + "run-async": { + "version": "0.1.0", + "from": "run-async@>=0.1.0 <0.2.0", + "resolved": "https://registry.npmjs.org/run-async/-/run-async-0.1.0.tgz" + }, + "rx-lite": { + "version": "3.1.2", + "from": "rx-lite@>=3.1.2 <4.0.0", + "resolved": "https://registry.npmjs.org/rx-lite/-/rx-lite-3.1.2.tgz" + }, + "sass-graph": { + "version": "2.0.1", + "from": "sass-graph@>=2.0.1 <3.0.0", + "resolved": "https://registry.npmjs.org/sass-graph/-/sass-graph-2.0.1.tgz", + "dependencies": { + "lodash": { + "version": "3.10.1", + "from": "lodash@>=3.8.0 <4.0.0" + } + } + }, + "sass-loader": { + "version": "3.1.2", + "from": "sass-loader@>=3.1.1 <4.0.0", + "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-3.1.2.tgz", + "dependencies": { + "loader-utils": { + "version": "0.2.12", + "from": "loader-utils@>=0.2.5 <0.3.0" + } + } + }, + "sass-resources-loader": { + "version": "0.0.2", + "from": "sass-resources-loader@latest", + "resolved": "https://registry.npmjs.org/sass-resources-loader/-/sass-resources-loader-0.0.2.tgz" + }, + "sax": { + "version": "1.1.4", + "from": "sax@>=1.1.1 <1.2.0", + "resolved": "https://registry.npmjs.org/sax/-/sax-1.1.4.tgz" + }, + "semver": { + "version": "4.3.6", + "from": "semver@>=4.0.3 <5.0.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-4.3.6.tgz" + }, + "semver-regex": { + "version": "1.0.0", + "from": "semver-regex@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/semver-regex/-/semver-regex-1.0.0.tgz" + }, + "semver-truncate": { + "version": "1.1.0", + "from": "semver-truncate@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/semver-truncate/-/semver-truncate-1.1.0.tgz", + "dependencies": { + "semver": { + "version": "5.1.0", + "from": "semver@>=5.0.3 <6.0.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.1.0.tgz" + } + } + }, + "send": { + "version": "0.13.0", + "from": "send@0.13.0", + "resolved": "https://registry.npmjs.org/send/-/send-0.13.0.tgz", + "dependencies": { + "depd": { + "version": "1.0.1", + "from": "depd@>=1.0.1 <1.1.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.0.1.tgz" + }, + "mime": { + "version": "1.3.4", + "from": "mime@1.3.4", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.3.4.tgz" + } + } + }, + "serve-index": { + "version": "1.7.2", + "from": "serve-index@>=1.7.2 <2.0.0", + "resolved": "https://registry.npmjs.org/serve-index/-/serve-index-1.7.2.tgz" + }, + "serve-static": { + "version": "1.10.0", + "from": "serve-static@>=1.10.0 <1.11.0", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.10.0.tgz" + }, + "sha.js": { + "version": "2.2.6", + "from": "sha.js@2.2.6", + "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.2.6.tgz" + }, + "shebang-regex": { + "version": "1.0.0", + "from": "shebang-regex@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz" + }, + "shelljs": { + "version": "0.5.3", + "from": "shelljs@>=0.5.3 <0.6.0", + "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.5.3.tgz" + }, + "sigmund": { + "version": "1.0.1", + "from": "sigmund@>=1.0.0 <1.1.0", + "resolved": "https://registry.npmjs.org/sigmund/-/sigmund-1.0.1.tgz" + }, + "signal-exit": { + "version": "2.1.2", + "from": "signal-exit@>=2.1.2 <3.0.0", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-2.1.2.tgz" + }, + "simple-fmt": { + "version": "0.1.0", + "from": "simple-fmt@>=0.1.0 <0.2.0", + "resolved": "https://registry.npmjs.org/simple-fmt/-/simple-fmt-0.1.0.tgz" + }, + "simple-is": { + "version": "0.2.0", + "from": "simple-is@>=0.2.0 <0.3.0", + "resolved": "https://registry.npmjs.org/simple-is/-/simple-is-0.2.0.tgz" + }, + "slash": { + "version": "1.0.0", + "from": "slash@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz" + }, + "sntp": { + "version": "1.0.9", + "from": "sntp@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/sntp/-/sntp-1.0.9.tgz" + }, + "sockjs": { + "version": "0.3.15", + "from": "sockjs@>=0.3.15 <0.4.0", + "resolved": "https://registry.npmjs.org/sockjs/-/sockjs-0.3.15.tgz" + }, + "sockjs-client": { + "version": "1.0.3", + "from": "sockjs-client@>=1.0.3 <2.0.0", + "resolved": "https://registry.npmjs.org/sockjs-client/-/sockjs-client-1.0.3.tgz", + "dependencies": { + "faye-websocket": { + "version": "0.7.3", + "from": "faye-websocket@>=0.7.3 <0.8.0", + "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.7.3.tgz" + } + } + }, + "sort-keys": { + "version": "1.1.1", + "from": "sort-keys@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/sort-keys/-/sort-keys-1.1.1.tgz" + }, + "source-list-map": { + "version": "0.1.5", + "from": "source-list-map@>=0.1.4 <0.2.0", + "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-0.1.5.tgz" + }, + "source-map": { + "version": "0.5.3", + "from": "source-map@>=0.5.0 <0.6.0", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.3.tgz" + }, + "source-map-resolve": { + "version": "0.3.1", + "from": "source-map-resolve@>=0.3.0 <0.4.0", + "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.3.1.tgz" + }, + "source-map-support": { + "version": "0.2.10", + "from": "source-map-support@>=0.2.10 <0.3.0", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.2.10.tgz", + "dependencies": { + "source-map": { + "version": "0.1.32", + "from": "source-map@0.1.32", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.1.32.tgz" + } + } + }, + "source-map-url": { + "version": "0.3.0", + "from": "source-map-url@>=0.3.0 <0.4.0", + "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.3.0.tgz" + }, + "spawn-sync": { + "version": "1.0.13", + "from": "spawn-sync@1.0.13", + "resolved": "https://registry.npmjs.org/spawn-sync/-/spawn-sync-1.0.13.tgz" + }, + "spdx-correct": { + "version": "1.0.2", + "from": "spdx-correct@>=1.0.0 <1.1.0", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-1.0.2.tgz" + }, + "spdx-exceptions": { + "version": "1.0.4", + "from": "spdx-exceptions@>=1.0.4 <2.0.0", + "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-1.0.4.tgz" + }, + "spdx-expression-parse": { + "version": "1.0.2", + "from": "spdx-expression-parse@>=1.0.0 <1.1.0", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-1.0.2.tgz" + }, + "spdx-license-ids": { + "version": "1.1.0", + "from": "spdx-license-ids@>=1.0.2 <2.0.0", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-1.1.0.tgz" + }, + "sprintf-js": { + "version": "1.0.3", + "from": "sprintf-js@>=1.0.2 <1.1.0", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz" + }, + "sshpk": { + "version": "1.7.1", + "from": "sshpk@>=1.7.0 <2.0.0", + "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.7.1.tgz", + "dependencies": { + "assert-plus": { + "version": "0.2.0", + "from": "assert-plus@>=0.2.0 <0.3.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-0.2.0.tgz" + } + } + }, + "stable": { + "version": "0.1.5", + "from": "stable@>=0.1.3 <0.2.0", + "resolved": "https://registry.npmjs.org/stable/-/stable-0.1.5.tgz" + }, + "stack-trace": { + "version": "0.0.9", + "from": "stack-trace@>=0.0.0 <0.1.0", + "resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.9.tgz" + }, + "statuses": { + "version": "1.2.1", + "from": "statuses@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.2.1.tgz" + }, + "stream-browserify": { + "version": "1.0.0", + "from": "stream-browserify@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-1.0.0.tgz", + "dependencies": { + "readable-stream": { + "version": "1.1.13", + "from": "readable-stream@>=1.0.27-1 <2.0.0" + } + } + }, + "stream-cache": { + "version": "0.0.2", + "from": "stream-cache@>=0.0.1 <0.1.0", + "resolved": "https://registry.npmjs.org/stream-cache/-/stream-cache-0.0.2.tgz" + }, + "strict-uri-encode": { + "version": "1.0.2", + "from": "strict-uri-encode@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-1.0.2.tgz" + }, + "string_decoder": { + "version": "0.10.31", + "from": "string_decoder@>=0.10.0 <0.11.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz" + }, + "string-width": { + "version": "1.0.1", + "from": "string-width@>=1.0.1 <2.0.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.1.tgz" + }, + "stringmap": { + "version": "0.2.2", + "from": "stringmap@>=0.2.2 <0.3.0", + "resolved": "https://registry.npmjs.org/stringmap/-/stringmap-0.2.2.tgz" + }, + "stringset": { + "version": "0.2.1", + "from": "stringset@>=0.2.1 <0.3.0", + "resolved": "https://registry.npmjs.org/stringset/-/stringset-0.2.1.tgz" + }, + "stringstream": { + "version": "0.0.5", + "from": "stringstream@>=0.0.4 <0.1.0", + "resolved": "https://registry.npmjs.org/stringstream/-/stringstream-0.0.5.tgz" + }, + "strip-ansi": { + "version": "3.0.0", + "from": "strip-ansi@>=3.0.0 <4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.0.tgz" + }, + "strip-bom": { + "version": "2.0.0", + "from": "strip-bom@>=2.0.0 <3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz" + }, + "strip-indent": { + "version": "1.0.1", + "from": "strip-indent@>=1.0.1 <2.0.0", + "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-1.0.1.tgz" + }, + "strip-json-comments": { + "version": "1.0.4", + "from": "strip-json-comments@>=1.0.1 <1.1.0", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-1.0.4.tgz" + }, + "style-loader": { + "version": "0.13.0", + "from": "style-loader@>=0.13.0 <0.14.0", + "resolved": "https://registry.npmjs.org/style-loader/-/style-loader-0.13.0.tgz", + "dependencies": { + "loader-utils": { + "version": "0.2.12", + "from": "loader-utils@>=0.2.7 <0.3.0" + } + } + }, + "success-symbol": { + "version": "0.1.0", + "from": "success-symbol@>=0.1.0 <0.2.0", + "resolved": "https://registry.npmjs.org/success-symbol/-/success-symbol-0.1.0.tgz" + }, + "supports-color": { + "version": "2.0.0", + "from": "supports-color@>=2.0.0 <3.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz" + }, + "svgo": { + "version": "0.5.6", + "from": "svgo@>=0.5.6 <0.6.0", + "resolved": "https://registry.npmjs.org/svgo/-/svgo-0.5.6.tgz" + }, + "symbol-tree": { + "version": "3.1.4", + "from": "symbol-tree@>=3.1.0 <4.0.0", + "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.1.4.tgz" + }, + "tapable": { + "version": "0.1.10", + "from": "tapable@>=0.1.8 <0.2.0", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-0.1.10.tgz" + }, + "tar": { + "version": "2.2.1", + "from": "tar@>=2.0.0 <3.0.0", + "resolved": "https://registry.npmjs.org/tar/-/tar-2.2.1.tgz" + }, + "text-table": { + "version": "0.2.0", + "from": "text-table@>=0.2.0 <0.3.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz" + }, + "through": { + "version": "2.3.8", + "from": "through@>=2.3.4 <2.4.0", + "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz" + }, + "timers-browserify": { + "version": "1.4.2", + "from": "timers-browserify@>=1.0.1 <2.0.0", + "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-1.4.2.tgz" + }, + "to-double-quotes": { + "version": "2.0.0", + "from": "to-double-quotes@>=2.0.0 <3.0.0", + "resolved": "https://registry.npmjs.org/to-double-quotes/-/to-double-quotes-2.0.0.tgz" + }, + "to-fast-properties": { + "version": "1.0.1", + "from": "to-fast-properties@>=1.0.1 <2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.1.tgz" + }, + "to-single-quotes": { + "version": "2.0.0", + "from": "to-single-quotes@>=2.0.0 <3.0.0", + "resolved": "https://registry.npmjs.org/to-single-quotes/-/to-single-quotes-2.0.0.tgz" + }, + "tough-cookie": { + "version": "2.2.1", + "from": "tough-cookie@>=2.2.0 <2.3.0", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.2.1.tgz" + }, + "tr46": { + "version": "0.0.2", + "from": "tr46@>=0.0.1 <0.1.0", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.2.tgz" + }, + "transformers": { + "version": "2.1.0", + "from": "transformers@2.1.0", + "resolved": "https://registry.npmjs.org/transformers/-/transformers-2.1.0.tgz", + "dependencies": { + "is-promise": { + "version": "1.0.1", + "from": "is-promise@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-1.0.1.tgz" + }, + "optimist": { + "version": "0.3.7", + "from": "optimist@>=0.3.5 <0.4.0", + "resolved": "https://registry.npmjs.org/optimist/-/optimist-0.3.7.tgz" + }, + "promise": { + "version": "2.0.0", + "from": "promise@>=2.0.0 <2.1.0", + "resolved": "https://registry.npmjs.org/promise/-/promise-2.0.0.tgz" + }, + "source-map": { + "version": "0.1.43", + "from": "source-map@>=0.1.7 <0.2.0" + }, + "uglify-js": { + "version": "2.2.5", + "from": "uglify-js@>=2.2.5 <2.3.0", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.2.5.tgz" + } + } + }, + "trim-newlines": { + "version": "1.0.0", + "from": "trim-newlines@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-1.0.0.tgz" + }, + "trim-right": { + "version": "1.0.1", + "from": "trim-right@>=1.0.1 <2.0.0", + "resolved": "https://registry.npmjs.org/trim-right/-/trim-right-1.0.1.tgz" + }, + "try-resolve": { + "version": "1.0.1", + "from": "try-resolve@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/try-resolve/-/try-resolve-1.0.1.tgz" + }, + "tryit": { + "version": "1.0.2", + "from": "tryit@>=1.0.1 <2.0.0", + "resolved": "https://registry.npmjs.org/tryit/-/tryit-1.0.2.tgz" + }, + "tryor": { + "version": "0.1.2", + "from": "tryor@>=0.1.2 <0.2.0", + "resolved": "https://registry.npmjs.org/tryor/-/tryor-0.1.2.tgz" + }, + "tty-browserify": { + "version": "0.0.0", + "from": "tty-browserify@0.0.0", + "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.0.tgz" + }, + "tunnel-agent": { + "version": "0.4.2", + "from": "tunnel-agent@>=0.4.1 <0.5.0", + "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.4.2.tgz" + }, + "tweetnacl": { + "version": "0.13.2", + "from": "tweetnacl@>=0.13.0 <1.0.0", + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.13.2.tgz" + }, + "type-check": { + "version": "0.3.1", + "from": "type-check@>=0.3.1 <0.4.0", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.1.tgz" + }, + "type-detect": { + "version": "1.0.0", + "from": "type-detect@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-1.0.0.tgz" + }, + "type-is": { + "version": "1.6.10", + "from": "type-is@>=1.6.9 <1.7.0", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.10.tgz" + }, + "typedarray": { + "version": "0.0.6", + "from": "typedarray@>=0.0.5 <0.1.0", + "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz" + }, + "ua-parser-js": { + "version": "0.7.9", + "from": "ua-parser-js@>=0.7.9 <0.8.0", + "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.9.tgz" + }, + "uglify-js": { + "version": "2.6.1", + "from": "uglify-js@>=2.6.0 <2.7.0", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.6.1.tgz", + "dependencies": { + "async": { + "version": "0.2.10", + "from": "async@>=0.2.6 <0.3.0", + "resolved": "https://registry.npmjs.org/async/-/async-0.2.10.tgz" + }, + "camelcase": { + "version": "1.2.1", + "from": "camelcase@>=1.0.2 <2.0.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-1.2.1.tgz" + }, + "cliui": { + "version": "2.1.0", + "from": "cliui@>=2.1.0 <3.0.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-2.1.0.tgz" + }, + "window-size": { + "version": "0.1.0", + "from": "window-size@0.1.0", + "resolved": "https://registry.npmjs.org/window-size/-/window-size-0.1.0.tgz" + }, + "wordwrap": { + "version": "0.0.2", + "from": "wordwrap@0.0.2", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.2.tgz" + }, + "yargs": { + "version": "3.10.0", + "from": "yargs@>=3.10.0 <3.11.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-3.10.0.tgz" + } + } + }, + "uglify-to-browserify": { + "version": "1.0.2", + "from": "uglify-to-browserify@>=1.0.0 <1.1.0", + "resolved": "https://registry.npmjs.org/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz" + }, + "uid-number": { + "version": "0.0.5", + "from": "uid-number@0.0.5", + "resolved": "https://registry.npmjs.org/uid-number/-/uid-number-0.0.5.tgz" + }, + "uncontrollable": { + "version": "3.2.0", + "from": "uncontrollable@>=3.1.3 <4.0.0", + "resolved": "https://registry.npmjs.org/uncontrollable/-/uncontrollable-3.2.0.tgz" + }, + "underscore": { + "version": "1.6.0", + "from": "underscore@>=1.6.0 <1.7.0", + "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.6.0.tgz" + }, + "uniq": { + "version": "1.0.1", + "from": "uniq@>=1.0.1 <2.0.0", + "resolved": "https://registry.npmjs.org/uniq/-/uniq-1.0.1.tgz" + }, + "uniqid": { + "version": "1.0.0", + "from": "uniqid@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/uniqid/-/uniqid-1.0.0.tgz" + }, + "uniqs": { + "version": "2.0.0", + "from": "uniqs@>=2.0.0 <3.0.0", + "resolved": "https://registry.npmjs.org/uniqs/-/uniqs-2.0.0.tgz" + }, + "unpipe": { + "version": "1.0.0", + "from": "unpipe@1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz" + }, + "urix": { + "version": "0.1.0", + "from": "urix@>=0.1.0 <0.2.0", + "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz" + }, + "url": { + "version": "0.10.3", + "from": "url@>=0.10.1 <0.11.0", + "resolved": "https://registry.npmjs.org/url/-/url-0.10.3.tgz", + "dependencies": { + "punycode": { + "version": "1.3.2", + "from": "punycode@1.3.2", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz" + } + } + }, + "url-loader": { + "version": "0.5.7", + "from": "url-loader@>=0.5.6 <0.6.0", + "resolved": "https://registry.npmjs.org/url-loader/-/url-loader-0.5.7.tgz", + "dependencies": { + "loader-utils": { + "version": "0.2.12", + "from": "loader-utils@>=0.2.0 <0.3.0" + } + } + }, + "url-parse": { + "version": "1.0.5", + "from": "url-parse@>=1.0.1 <2.0.0", + "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.0.5.tgz", + "dependencies": { + "requires-port": { + "version": "1.0.0", + "from": "requires-port@>=1.0.0 <1.1.0", + "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz" + } + } + }, + "user-home": { + "version": "1.1.1", + "from": "user-home@>=1.1.1 <2.0.0", + "resolved": "https://registry.npmjs.org/user-home/-/user-home-1.1.1.tgz" + }, + "util": { + "version": "0.10.3", + "from": "util@>=0.10.3 <0.11.0", + "resolved": "https://registry.npmjs.org/util/-/util-0.10.3.tgz" + }, + "util-deprecate": { + "version": "1.0.2", + "from": "util-deprecate@>=1.0.1 <1.1.0", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz" + }, + "utile": { + "version": "0.2.1", + "from": "utile@>=0.2.0 <0.3.0", + "resolved": "https://registry.npmjs.org/utile/-/utile-0.2.1.tgz", + "dependencies": { + "async": { + "version": "0.2.10", + "from": "async@>=0.2.9 <0.3.0" + } + } + }, + "utils-merge": { + "version": "1.0.0", + "from": "utils-merge@1.0.0", + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.0.tgz" + }, + "v8flags": { + "version": "2.0.10", + "from": "v8flags@>=2.0.10 <3.0.0", + "resolved": "https://registry.npmjs.org/v8flags/-/v8flags-2.0.10.tgz" + }, + "validate-npm-package-license": { + "version": "3.0.1", + "from": "validate-npm-package-license@>=3.0.1 <4.0.0", + "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.1.tgz" + }, + "vary": { + "version": "1.0.1", + "from": "vary@>=1.0.1 <1.1.0", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.0.1.tgz" + }, + "verror": { + "version": "1.3.6", + "from": "verror@1.3.6", + "resolved": "https://registry.npmjs.org/verror/-/verror-1.3.6.tgz" + }, + "vm-browserify": { + "version": "0.0.4", + "from": "vm-browserify@0.0.4", + "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-0.0.4.tgz" + }, + "void-elements": { + "version": "2.0.1", + "from": "void-elements@>=2.0.1 <2.1.0", + "resolved": "https://registry.npmjs.org/void-elements/-/void-elements-2.0.1.tgz" + }, + "vow": { + "version": "0.4.11", + "from": "vow@>=0.4.8 <0.5.0", + "resolved": "https://registry.npmjs.org/vow/-/vow-0.4.11.tgz" + }, + "vow-fs": { + "version": "0.3.4", + "from": "vow-fs@>=0.3.4 <0.4.0", + "resolved": "https://registry.npmjs.org/vow-fs/-/vow-fs-0.3.4.tgz", + "dependencies": { + "glob": { + "version": "4.5.3", + "from": "glob@>=4.3.1 <5.0.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-4.5.3.tgz" + } + } + }, + "vow-queue": { + "version": "0.4.2", + "from": "vow-queue@>=0.4.1 <0.5.0", + "resolved": "https://registry.npmjs.org/vow-queue/-/vow-queue-0.4.2.tgz" + }, + "warning": { + "version": "2.1.0", + "from": "warning@>=2.0.0 <3.0.0", + "resolved": "https://registry.npmjs.org/warning/-/warning-2.1.0.tgz" + }, + "watchpack": { + "version": "0.2.9", + "from": "watchpack@>=0.2.1 <0.3.0", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-0.2.9.tgz", + "dependencies": { + "async": { + "version": "0.9.2", + "from": "async@>=0.9.0 <0.10.0", + "resolved": "https://registry.npmjs.org/async/-/async-0.9.2.tgz" + } + } + }, + "webidl-conversions": { + "version": "2.0.1", + "from": "webidl-conversions@>=2.0.0 <3.0.0", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-2.0.1.tgz" + }, + "webpack": { + "version": "1.12.9", + "from": "webpack@>=1.12.8 <2.0.0", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-1.12.9.tgz", + "dependencies": { + "loader-utils": { + "version": "0.2.12", + "from": "loader-utils@>=0.2.11 <0.3.0" + }, + "supports-color": { + "version": "3.1.2", + "from": "supports-color@>=3.1.0 <4.0.0" + } + } + }, + "webpack-core": { + "version": "0.6.8", + "from": "webpack-core@>=0.6.0 <0.7.0", + "resolved": "https://registry.npmjs.org/webpack-core/-/webpack-core-0.6.8.tgz", + "dependencies": { + "source-map": { + "version": "0.4.4", + "from": "source-map@>=0.4.1 <0.5.0", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz" + } + } + }, + "webpack-dev-middleware": { + "version": "1.4.0", + "from": "webpack-dev-middleware@>=1.4.0 <2.0.0", + "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-1.4.0.tgz", + "dependencies": { + "mime": { + "version": "1.3.4", + "from": "mime@>=1.3.4 <2.0.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.3.4.tgz" + } + } + }, + "websocket-driver": { + "version": "0.6.3", + "from": "websocket-driver@>=0.5.1", + "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.6.3.tgz" + }, + "websocket-extensions": { + "version": "0.1.1", + "from": "websocket-extensions@>=0.1.1", + "resolved": "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.1.tgz" + }, + "whatwg-fetch": { + "version": "0.9.0", + "from": "whatwg-fetch@>=0.9.0 <0.10.0", + "resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-0.9.0.tgz" + }, + "whatwg-url-compat": { + "version": "0.6.5", + "from": "whatwg-url-compat@>=0.6.5 <0.7.0", + "resolved": "https://registry.npmjs.org/whatwg-url-compat/-/whatwg-url-compat-0.6.5.tgz" + }, + "whet.extend": { + "version": "0.9.9", + "from": "whet.extend@>=0.9.9 <0.10.0", + "resolved": "https://registry.npmjs.org/whet.extend/-/whet.extend-0.9.9.tgz" + }, + "which": { + "version": "1.2.0", + "from": "which@>=1.2.0 <2.0.0", + "resolved": "https://registry.npmjs.org/which/-/which-1.2.0.tgz" + }, + "window-size": { + "version": "0.1.4", + "from": "window-size@>=0.1.4 <0.2.0", + "resolved": "https://registry.npmjs.org/window-size/-/window-size-0.1.4.tgz" + }, + "winston": { + "version": "0.8.3", + "from": "winston@>=0.8.0 <0.9.0", + "resolved": "https://registry.npmjs.org/winston/-/winston-0.8.3.tgz", + "dependencies": { + "async": { + "version": "0.2.10", + "from": "async@>=0.2.0 <0.3.0" + }, + "colors": { + "version": "0.6.2", + "from": "colors@>=0.6.0 <0.7.0", + "resolved": "https://registry.npmjs.org/colors/-/colors-0.6.2.tgz" + } + } + }, + "with": { + "version": "4.0.3", + "from": "with@>=4.0.0 <4.1.0", + "resolved": "https://registry.npmjs.org/with/-/with-4.0.3.tgz", + "dependencies": { + "acorn": { + "version": "1.2.2", + "from": "acorn@>=1.0.1 <2.0.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-1.2.2.tgz" + } + } + }, + "wordwrap": { + "version": "0.0.3", + "from": "wordwrap@>=0.0.2 <0.1.0", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.3.tgz" + }, + "wrap-ansi": { + "version": "1.0.0", + "from": "wrap-ansi@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-1.0.0.tgz" + }, + "wrappy": { + "version": "1.0.1", + "from": "wrappy@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.1.tgz" + }, + "write": { + "version": "0.2.1", + "from": "write@>=0.2.1 <0.3.0", + "resolved": "https://registry.npmjs.org/write/-/write-0.2.1.tgz" + }, + "xml-escape": { + "version": "1.0.0", + "from": "xml-escape@>=1.0.0 <1.1.0", + "resolved": "https://registry.npmjs.org/xml-escape/-/xml-escape-1.0.0.tgz" + }, + "xml-name-validator": { + "version": "2.0.1", + "from": "xml-name-validator@>=2.0.1 <3.0.0", + "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-2.0.1.tgz" + }, + "xmlbuilder": { + "version": "3.1.0", + "from": "xmlbuilder@>=3.1.0 <4.0.0", + "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-3.1.0.tgz", + "dependencies": { + "lodash": { + "version": "3.10.1", + "from": "lodash@>=3.5.0 <4.0.0" + } + } + }, + "xtend": { + "version": "4.0.1", + "from": "xtend@>=4.0.0 <5.0.0", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz" + }, + "y18n": { + "version": "3.2.0", + "from": "y18n@>=3.2.0 <4.0.0", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.0.tgz" + }, + "yargs": { + "version": "3.31.0", + "from": "yargs@>=3.8.0 <4.0.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-3.31.0.tgz" + } + } +} From 816f3deaf2a2a7610b97d5c1e7494998c050b25e Mon Sep 17 00:00:00 2001 From: Alex Fedoseev Date: Sun, 13 Dec 2015 21:20:28 +0300 Subject: [PATCH 11/11] Fix Net::ReadTimeout error on the first Capybara test run --- Gemfile | 1 + Gemfile.lock | 3 +++ spec/rails_helper.rb | 2 +- spec/spec_helper.rb | 11 +++++++++++ 4 files changed, 16 insertions(+), 1 deletion(-) diff --git a/Gemfile b/Gemfile index 9a4d81a9..ad9797db 100644 --- a/Gemfile +++ b/Gemfile @@ -87,6 +87,7 @@ end group :test do gem "coveralls", require: false gem "rspec-rails" + gem "rspec-retry" gem "capybara" gem "capybara-screenshot" gem "selenium-webdriver" diff --git a/Gemfile.lock b/Gemfile.lock index 99870124..8c16e6f0 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -229,6 +229,8 @@ GEM rspec-expectations (~> 3.4.0) rspec-mocks (~> 3.4.0) rspec-support (~> 3.4.0) + rspec-retry (0.4.5) + rspec-core rspec-support (3.4.1) rubocop (0.35.1) astrolabe (~> 1.3) @@ -350,6 +352,7 @@ DEPENDENCIES rails_12factor react_on_rails rspec-rails + rspec-retry rubocop ruby-lint sass-rails diff --git a/spec/rails_helper.rb b/spec/rails_helper.rb index c5793bf1..e5cb828d 100644 --- a/spec/rails_helper.rb +++ b/spec/rails_helper.rb @@ -74,7 +74,7 @@ end end - Capybara.default_wait_time = 15 + Capybara.default_max_wait_time = 15 puts "Capybara using driver: #{Capybara.javascript_driver}" Capybara::Screenshot.prune_strategy = { keep: 10 } diff --git a/spec/spec_helper.rb b/spec/spec_helper.rb index 76b33988..d2a1c9dc 100644 --- a/spec/spec_helper.rb +++ b/spec/spec_helper.rb @@ -16,6 +16,9 @@ # users commonly want. # # See http://rubydoc.info/gems/rspec-core/RSpec/Core/Configuration + +require "rspec/retry" + RSpec.configure do |config| # rspec-expectations config goes here. You can use an alternate # assertion/expectation library such as wrong or the stdlib/minitest @@ -29,6 +32,14 @@ # ...rather than: # # => "be bigger than 2" expectations.include_chain_clauses_in_custom_matcher_descriptions = true + + ### Fix Net::ReadTimeout error on first test + # Show retry status in spec process + config.verbose_retry = true + # Try twice (retry once) + config.default_retry_count = 2 + # Only retry when Selenium raises Net::ReadTimeout + config.exceptions_to_retry = [Net::ReadTimeout] end # rspec-mocks config goes here. You can use an alternate test double