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 (
-
-
);
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 @@+
{author}