diff --git a/js/package-lock.json b/js/package-lock.json index 99e13c5bf..f855743a9 100644 --- a/js/package-lock.json +++ b/js/package-lock.json @@ -32,11 +32,6 @@ "store": "2.0.12" }, "dependencies": { - "@parity/wordlist": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@parity/wordlist/-/wordlist-1.1.0.tgz", - "integrity": "sha1-np7Tq3g39WM7WETmCjVenmPkJ64=" - }, "lodash": { "version": "4.17.4", "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz", @@ -49,50 +44,47 @@ } } }, - "@parity/dapp-account": { - "version": "file:packages/dapp-account", + "@parity/dapp-accounts": { + "version": "github:paritytech/dapp-accounts#b4b7113ba8ea25d11dfc0ed6d6c93b85c8a7fac8", "requires": { - "@parity/parity.js": "1.8.7", - "oo7": "0.5.3", - "oo7-parity": "0.6.8", - "oo7-react": "0.4.5", - "parity-reactive-ui": "0.4.5" - } - }, - "@parity/dapp-develop": { - "version": "file:packages/dapp-develop", - "requires": { - "@parity/parity.js": "1.8.7", - "oo7": "0.5.3", - "oo7-parity": "0.6.8", - "oo7-react": "0.4.5", - "parity-reactive-ui": "0.4.5" - } - }, - "@parity/dapps": { - "version": "file:packages/dapps", - "requires": { - "@parity/dapp-account": "file:packages/dapp-account", - "@parity/dapp-develop": "file:packages/dapp-develop", - "base32.js": "0.1.0", - "bytes": "2.4.0", - "format-number": "2.0.1", - "material-ui": "0.16.5", - "phoneformat.js": "1.0.3", - "react-codemirror": "0.3.0", - "react-element-to-jsx-string": "6.0.0", - "react-inspector": "github:paritytech/react-inspector#73b5214261a5131821eb9088f58d7e5f31210c23", - "react-markdown": "2.4.4", - "rlp": "2.0.0", - "validator": "6.2.0" + "@parity/api": "github:paritytech/js-api#ade4a6750292a2918676039ea53eea20c4c728bc", + "@parity/dapp-vaults": "github:paritytech/dapp-vaults#c86131351e20be678e470704aa6f1fa7b610ee84", + "@parity/shared": "github:paritytech/js-shared#9bb1d291d8752a827613889498e380fcd3afa8da", + "@parity/ui": "github:paritytech/js-ui#037782bd16e8abf1c169143aa61749a44b94489b", + "file-saver": "1.3.3", + "react": "15.6.1", + "react-dom": "15.6.1", + "react-intl": "2.1.5", + "react-router": "3.0.0", + "react-tap-event-plugin": "2.0.1", + "recharts": "0.15.2" }, "dependencies": { - "validator": { - "version": "6.2.0", - "bundled": true + "@parity/shared": { + "version": "github:paritytech/js-shared#9bb1d291d8752a827613889498e380fcd3afa8da", + "requires": { + "@parity/ledger": "github:paritytech/js-ledger#c363adfb9192aa56b7b498b0ad90bc4032bcd6ab", + "loglevel": "1.4.1", + "mobx": "2.6.4", + "mobx-react": "4.0.3", + "promise-worker": "1.1.1", + "push.js": "0.0.11", + "react-redux": "4.4.6", + "redux": "3.6.0", + "redux-actions": "1.1.0", + "redux-thunk": "2.1.0", + "scryptsy": "2.0.0", + "serviceworker-webpack-plugin": "0.2.0", + "solc": "github:ngotchac/solc-js#04eb38cc3003fba8cb3656653a7941ed36408818", + "worker-loader": "0.8.1", + "yargs": "6.6.0" + } } } }, + "@parity/dapp-vaults": { + "version": "github:paritytech/dapp-vaults#c86131351e20be678e470704aa6f1fa7b610ee84" + }, "@parity/etherscan": { "version": "github:paritytech/js-etherscan#efe859ac7d2a8a3cc05e01c689b7fa58f47f8b87", "requires": { @@ -124,11 +116,6 @@ "store": "2.0.12" } }, - "@parity/wordlist": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@parity/wordlist/-/wordlist-1.1.0.tgz", - "integrity": "sha1-np7Tq3g39WM7WETmCjVenmPkJ64=" - }, "es6-promise": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.1.1.tgz", @@ -155,43 +142,29 @@ "version": "github:paritytech/js-jsonrpc#89a6e441370f55d8fe995e27007f60da29b6672b" }, "@parity/ledger": { - "version": "file:packages/ledger" - }, - "@parity/parity.js": { - "version": "1.8.7", - "resolved": "https://registry.npmjs.org/@parity/parity.js/-/parity.js-1.8.7.tgz", - "integrity": "sha1-LmriG0KoTdtoPZjETvU/JV72rZI=", + "version": "github:paritytech/js-ledger#c363adfb9192aa56b7b498b0ad90bc4032bcd6ab", "requires": { - "bignumber.js": "2.3.0", - "js-sha3": "0.5.5", - "node-fetch": "1.6.3" - }, - "dependencies": { - "bignumber.js": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-2.3.0.tgz", - "integrity": "sha1-WXoC15Htw9ZPF4UOIXieekCV32Y=" - } - } - }, - "@parity/shapeshift": { - "version": "file:packages/shapeshift", - "requires": { - "node-fetch": "1.6.3" + "u2f-api": "0.0.9", + "u2f-api-polyfill": "0.4.3" } }, "@parity/shared": { - "version": "github:paritytech/js-shared#a83c71946d30d5b3bf976860a676add29c48ee24", + "version": "github:paritytech/js-shared#438912f286ca09209e53fda5808205fca2c62940", "requires": { + "@parity/ledger": "github:paritytech/js-ledger#c363adfb9192aa56b7b498b0ad90bc4032bcd6ab", + "loglevel": "1.4.1", "mobx": "2.6.4", "mobx-react": "4.0.3", + "promise-worker": "1.1.1", "push.js": "0.0.11", "react-redux": "4.4.6", "redux": "3.6.0", "redux-actions": "1.1.0", "redux-thunk": "2.1.0", "scryptsy": "2.0.0", + "serviceworker-webpack-plugin": "0.2.0", "solc": "github:ngotchac/solc-js#04eb38cc3003fba8cb3656653a7941ed36408818", + "worker-loader": "0.8.1", "yargs": "6.6.0" } }, @@ -262,38 +235,19 @@ } } }, - "@parity/wordlist": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@parity/wordlist/-/wordlist-1.1.0.tgz", - "integrity": "sha1-np7Tq3g39WM7WETmCjVenmPkJ64=" - }, - "babel-runtime": { - "version": "6.25.0", - "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.25.0.tgz", - "integrity": "sha1-M7mOql1IK7AajRqmtDetKwGuxBw=", + "@parity/shared": { + "version": "github:paritytech/js-shared#a83c71946d30d5b3bf976860a676add29c48ee24", "requires": { - "core-js": "2.4.1", - "regenerator-runtime": "0.10.5" - } - }, - "prop-types": { - "version": "15.5.8", - "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.5.8.tgz", - "integrity": "sha1-a3suFBCDvjjIWVqlH8VXdccZk5Q=", - "requires": { - "fbjs": "0.8.14" - } - }, - "semantic-ui-react": { - "version": "0.71.2", - "resolved": "https://registry.npmjs.org/semantic-ui-react/-/semantic-ui-react-0.71.2.tgz", - "integrity": "sha512-aWkmGnhhdPGwRbtWVuhQV3QQvaoO8ZOrc5g0deW9Q/6J90Le1V5MC1LZTnwrrtUfV7rnEozwaunjZGftYsmG+w==", - "requires": { - "babel-runtime": "6.25.0", - "classnames": "2.2.5", - "debug": "2.6.8", - "lodash": "4.17.2", - "prop-types": "15.5.8" + "mobx": "2.6.4", + "mobx-react": "4.0.3", + "push.js": "0.0.11", + "react-redux": "4.4.6", + "redux": "3.6.0", + "redux-actions": "1.1.0", + "redux-thunk": "2.1.0", + "scryptsy": "2.0.0", + "solc": "github:ngotchac/solc-js#04eb38cc3003fba8cb3656653a7941ed36408818", + "yargs": "6.6.0" } }, "store": { @@ -304,9 +258,9 @@ } }, "@parity/wordlist": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@parity/wordlist/-/wordlist-1.0.1.tgz", - "integrity": "sha1-wn5A4as2OKCe1TtKLoHVMbXrWjE=" + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@parity/wordlist/-/wordlist-1.1.0.tgz", + "integrity": "sha1-np7Tq3g39WM7WETmCjVenmPkJ64=" }, "abab": { "version": "1.0.3", @@ -706,7 +660,7 @@ "dev": true, "requires": { "browserslist": "1.7.7", - "caniuse-db": "1.0.30000708", + "caniuse-db": "1.0.30000709", "normalize-range": "0.1.2", "num2fraction": "1.2.2", "postcss": "5.2.17", @@ -2296,11 +2250,6 @@ "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" }, - "base32.js": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/base32.js/-/base32.js-0.1.0.tgz", - "integrity": "sha1-tYLexpPC8R6JPPBk7mrFthMaIgI=" - }, "base64-js": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.2.1.tgz", @@ -2515,11 +2464,6 @@ "hoek": "2.16.3" } }, - "bowser": { - "version": "1.7.1", - "resolved": "https://registry.npmjs.org/bowser/-/bowser-1.7.1.tgz", - "integrity": "sha1-pN6PGKGg3JUx6yqSoVIftqm6lqU=" - }, "brace": { "version": "0.9.0", "resolved": "https://registry.npmjs.org/brace/-/brace-0.9.0.tgz", @@ -2633,7 +2577,7 @@ "integrity": "sha1-C9dnBCWL6CmyOYu1Dkti0aFmsLk=", "dev": true, "requires": { - "caniuse-db": "1.0.30000708", + "caniuse-db": "1.0.30000709", "electron-to-chromium": "1.3.16" } }, @@ -2709,9 +2653,10 @@ "dev": true }, "bytes": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-2.4.0.tgz", - "integrity": "sha1-fZcZb51br39pNeJZhVSe3SpsIzk=" + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-2.5.0.tgz", + "integrity": "sha1-TJQj6i0lLCcMQbK97+/5u2tiwGo=", + "dev": true }, "caller-path": { "version": "0.1.0", @@ -2766,15 +2711,15 @@ "dev": true, "requires": { "browserslist": "1.7.7", - "caniuse-db": "1.0.30000708", + "caniuse-db": "1.0.30000709", "lodash.memoize": "4.1.2", "lodash.uniq": "4.5.0" } }, "caniuse-db": { - "version": "1.0.30000708", - "resolved": "https://registry.npmjs.org/caniuse-db/-/caniuse-db-1.0.30000708.tgz", - "integrity": "sha1-wuc2vTt/xfbBTkxt/mK5jtFeils=", + "version": "1.0.30000709", + "resolved": "https://registry.npmjs.org/caniuse-db/-/caniuse-db-1.0.30000709.tgz", + "integrity": "sha1-C2AAcrfNu/YzaodYtxua0DJo7eI=", "dev": true }, "capture-stack-trace": { @@ -2853,38 +2798,6 @@ "requires": { "html": "1.0.0", "react-element-to-jsx-string": "5.0.7" - }, - "dependencies": { - "lodash": { - "version": "4.17.4", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz", - "integrity": "sha1-eCA6TRwyiuHYbcpkYONptX9AVa4=", - "dev": true - }, - "react-element-to-jsx-string": { - "version": "5.0.7", - "resolved": "https://registry.npmjs.org/react-element-to-jsx-string/-/react-element-to-jsx-string-5.0.7.tgz", - "integrity": "sha1-xmOkgAqccSEVwNhRnLAhWkah8PI=", - "dev": true, - "requires": { - "collapse-white-space": "1.0.3", - "is-plain-object": "2.0.4", - "lodash": "4.17.4", - "sortobject": "1.1.1", - "stringify-object": "2.4.0", - "traverse": "0.6.6" - } - }, - "stringify-object": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/stringify-object/-/stringify-object-2.4.0.tgz", - "integrity": "sha1-xi0RAj6yH+LZsIe+A5om3zsioJ0=", - "dev": true, - "requires": { - "is-plain-obj": "1.1.0", - "is-regexp": "1.0.0" - } - } } }, "chain-function": { @@ -2904,11 +2817,6 @@ "supports-color": "2.0.0" } }, - "change-emitter": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/change-emitter/-/change-emitter-0.1.6.tgz", - "integrity": "sha1-6LL+PX8at9aaMhma/5HqaTFAlRU=" - }, "check-error": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.2.tgz", @@ -3087,15 +2995,11 @@ "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=" }, - "codemirror": { - "version": "5.28.0", - "resolved": "https://registry.npmjs.org/codemirror/-/codemirror-5.28.0.tgz", - "integrity": "sha512-E/Z6050shti9v9ivl0dUClVRM4xaH204jsJmEpNYC6KDTlQwAz+5DdhLzn0tjaL/Mp1P0J1uhZokcSP2RFSwlA==" - }, "collapse-white-space": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/collapse-white-space/-/collapse-white-space-1.0.3.tgz", - "integrity": "sha1-S5BvZw5aljqHt2sOFolkM0G2Ajw=" + "integrity": "sha1-S5BvZw5aljqHt2sOFolkM0G2Ajw=", + "dev": true }, "color": { "version": "0.11.4", @@ -3284,14 +3188,6 @@ "on-headers": "1.0.1", "safe-buffer": "5.1.1", "vary": "1.1.1" - }, - "dependencies": { - "bytes": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-2.5.0.tgz", - "integrity": "sha1-TJQj6i0lLCcMQbK97+/5u2tiwGo=", - "dev": true - } } }, "concat-map": { @@ -3935,7 +3831,7 @@ "requires": { "lru-cache": "4.1.1", "shebang-command": "1.2.0", - "which": "1.2.14" + "which": "1.3.0" } }, "cryptiles": { @@ -4693,7 +4589,7 @@ "dev": true, "requires": { "browserslist": "1.7.7", - "caniuse-db": "1.0.30000708", + "caniuse-db": "1.0.30000709", "css-rule-stream": "1.1.0", "duplexer2": "0.0.2", "jsonfilter": "1.1.2", @@ -4966,7 +4862,8 @@ "editions": { "version": "1.3.3", "resolved": "https://registry.npmjs.org/editions/-/editions-1.3.3.tgz", - "integrity": "sha1-CQcQG92iD6w8vjNMJ8vQaI3Jmls=" + "integrity": "sha1-CQcQG92iD6w8vjNMJ8vQaI3Jmls=", + "dev": true }, "ee-first": { "version": "1.1.1", @@ -5987,17 +5884,6 @@ "randomatic": "1.1.7", "repeat-element": "1.1.2", "repeat-string": "1.6.1" - }, - "dependencies": { - "isobject": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", - "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", - "dev": true, - "requires": { - "isarray": "1.0.0" - } - } } }, "finalhandler": { @@ -7178,11 +7064,6 @@ "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.2.tgz", "integrity": "sha1-9wLmMSfn4jHBYKgMFVSstw1QR+U=" }, - "get-own-enumerable-property-symbols": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/get-own-enumerable-property-symbols/-/get-own-enumerable-property-symbols-1.0.1.tgz", - "integrity": "sha1-8dTjrRQC4DmJjlbR6bmqkkwm5IQ=" - }, "get-pkg-repo": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/get-pkg-repo/-/get-pkg-repo-1.4.0.tgz", @@ -8114,11 +7995,6 @@ } } }, - "hyphenate-style-name": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/hyphenate-style-name/-/hyphenate-style-name-1.0.2.tgz", - "integrity": "sha1-MRYKNpMK2vH8BMYHT360FGXU7Es=" - }, "iconv-lite": { "version": "0.4.18", "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.18.tgz", @@ -8383,15 +8259,6 @@ "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.4.tgz", "integrity": "sha1-BTfLedr1m1mhpRff9wbIbsA5Fi4=" }, - "inline-style-prefixer": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/inline-style-prefixer/-/inline-style-prefixer-2.0.5.tgz", - "integrity": "sha1-wVPH6I/YT+9cYC6VqBaLJ3BnH+c=", - "requires": { - "bowser": "1.7.1", - "hyphenate-style-name": "1.0.2" - } - }, "inquirer": { "version": "0.12.0", "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-0.12.0.tgz", @@ -8676,7 +8543,8 @@ "is-obj": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz", - "integrity": "sha1-PkcprB9f3gJc19g6iW2rn09n2w8=" + "integrity": "sha1-PkcprB9f3gJc19g6iW2rn09n2w8=", + "dev": true }, "is-path-cwd": { "version": "1.0.0", @@ -8712,8 +8580,17 @@ "version": "2.0.4", "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "dev": true, "requires": { "isobject": "3.0.1" + }, + "dependencies": { + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true + } } }, "is-png": { @@ -8763,7 +8640,8 @@ "is-regexp": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-regexp/-/is-regexp-1.0.0.tgz", - "integrity": "sha1-/S2INUXEa6xaYz57mgnof6LLUGk=" + "integrity": "sha1-/S2INUXEa6xaYz57mgnof6LLUGk=", + "dev": true }, "is-relative": { "version": "0.1.3", @@ -8874,9 +8752,13 @@ "dev": true }, "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", + "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", + "dev": true, + "requires": { + "isarray": "1.0.0" + } }, "isomorphic-fetch": { "version": "2.2.1", @@ -8905,7 +8787,7 @@ "js-yaml": "3.6.1", "mkdirp": "0.5.1", "nopt": "3.0.6", - "which": "1.2.14", + "which": "1.3.0", "wordwrap": "1.0.0" }, "dependencies": { @@ -9950,23 +9832,12 @@ "lodash._isiterateecall": "3.0.9" } }, - "lodash.debounce": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", - "integrity": "sha1-gteb/zCmfEAF/9XiUVMArZyk168=" - }, "lodash.defaults": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/lodash.defaults/-/lodash.defaults-4.2.0.tgz", "integrity": "sha1-0JF4cW/+pN3p5ft7N/bwgCJ0WAw=", "dev": true }, - "lodash.endswith": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/lodash.endswith/-/lodash.endswith-4.2.1.tgz", - "integrity": "sha1-/tWawXOO0+I27dcGTsRWRIs3vAk=", - "dev": true - }, "lodash.escape": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/lodash.escape/-/lodash.escape-3.2.0.tgz", @@ -10042,7 +9913,8 @@ "lodash.merge": { "version": "4.6.0", "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.0.tgz", - "integrity": "sha1-aYhLoUSsM/5plzemCG3v+t0PicU=" + "integrity": "sha1-aYhLoUSsM/5plzemCG3v+t0PicU=", + "dev": true }, "lodash.pick": { "version": "4.4.0", @@ -10099,11 +9971,6 @@ "lodash._reinterpolate": "3.0.0" } }, - "lodash.throttle": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/lodash.throttle/-/lodash.throttle-4.1.1.tgz", - "integrity": "sha1-wj6RtxAkKscMN/HhzaknTMOb8vQ=" - }, "lodash.uniq": { "version": "4.5.0", "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz", @@ -10261,35 +10128,6 @@ "integrity": "sha1-ssbGGPzOzk74bE/Gy4p8v1rtqNc=", "dev": true }, - "material-ui": { - "version": "0.16.5", - "resolved": "https://registry.npmjs.org/material-ui/-/material-ui-0.16.5.tgz", - "integrity": "sha1-u4ZhqsfKyMsiOj529PV+4YpK78E=", - "requires": { - "babel-runtime": "6.25.0", - "inline-style-prefixer": "2.0.5", - "keycode": "2.1.9", - "lodash.merge": "4.6.0", - "lodash.throttle": "4.1.1", - "react-addons-create-fragment": "15.6.0", - "react-addons-transition-group": "15.6.0", - "react-event-listener": "0.4.5", - "recompose": "0.20.2", - "simple-assign": "0.1.0", - "warning": "3.0.0" - }, - "dependencies": { - "babel-runtime": { - "version": "6.25.0", - "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.25.0.tgz", - "integrity": "sha1-M7mOql1IK7AajRqmtDetKwGuxBw=", - "requires": { - "core-js": "2.4.1", - "regenerator-runtime": "0.10.5" - } - } - } - }, "math-expression-evaluator": { "version": "1.2.17", "resolved": "https://registry.npmjs.org/math-expression-evaluator/-/math-expression-evaluator-1.2.17.tgz", @@ -11038,49 +10876,6 @@ "integrity": "sha1-ofeDj4MUxRbwXs78vEzP4EtO14k=", "dev": true }, - "oo7": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/oo7/-/oo7-0.5.3.tgz", - "integrity": "sha1-9NrJBBivXOQcTAYPRMAVX7ZDa+Q=" - }, - "oo7-parity": { - "version": "0.6.8", - "resolved": "https://registry.npmjs.org/oo7-parity/-/oo7-parity-0.6.8.tgz", - "integrity": "sha1-xzluhPMzPG8L/coRO8sAG1zKhaY=", - "requires": { - "@parity/parity.js": "1.8.7", - "bignumber.js": "4.0.2", - "oo7": "0.5.4" - }, - "dependencies": { - "bignumber.js": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-4.0.2.tgz", - "integrity": "sha1-LR3DfuWWiGfs6pC22k0W5oYI0h0=" - }, - "oo7": { - "version": "0.5.4", - "resolved": "https://registry.npmjs.org/oo7/-/oo7-0.5.4.tgz", - "integrity": "sha1-ERZHvSGFxz8Fn/jp9gKjHDsh6K0=" - } - } - }, - "oo7-react": { - "version": "0.4.5", - "resolved": "https://registry.npmjs.org/oo7-react/-/oo7-react-0.4.5.tgz", - "integrity": "sha1-kn/Onjjwn2iWlhooYhFIGrdvZZ8=", - "requires": { - "oo7": "0.5.4", - "react": "15.6.1" - }, - "dependencies": { - "oo7": { - "version": "0.5.4", - "resolved": "https://registry.npmjs.org/oo7/-/oo7-0.5.4.tgz", - "integrity": "sha1-ERZHvSGFxz8Fn/jp9gKjHDsh6K0=" - } - } - }, "opn": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/opn/-/opn-4.0.2.tgz", @@ -11245,58 +11040,6 @@ "integrity": "sha1-8/dSL073gjSNqBYbrZ7P1Rv4OnU=", "dev": true }, - "parallel-webpack": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/parallel-webpack/-/parallel-webpack-2.1.0.tgz", - "integrity": "sha1-+IezvJ8EfLsL2JSosJr7aQRGAoc=", - "dev": true, - "requires": { - "ajv": "4.11.8", - "bluebird": "3.5.0", - "chalk": "1.1.3", - "interpret": "1.0.3", - "lodash.assign": "4.2.0", - "lodash.endswith": "4.2.1", - "lodash.flatten": "4.4.0", - "minimist": "1.2.0", - "pluralize": "1.2.1", - "supports-color": "3.2.3", - "worker-farm": "1.4.1" - }, - "dependencies": { - "ajv": { - "version": "4.11.8", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-4.11.8.tgz", - "integrity": "sha1-gv+wKynmYq5TvcIK8VlHcGc5xTY=", - "dev": true, - "requires": { - "co": "4.6.0", - "json-stable-stringify": "1.0.1" - } - }, - "bluebird": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.5.0.tgz", - "integrity": "sha1-eRQg1/VR7qKJdFOop3ZT+WYG1nw=", - "dev": true - }, - "minimist": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", - "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", - "dev": true - }, - "supports-color": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", - "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", - "dev": true, - "requires": { - "has-flag": "1.0.0" - } - } - } - }, "param-case": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/param-case/-/param-case-2.1.1.tgz", @@ -11306,30 +11049,6 @@ "no-case": "2.3.1" } }, - "parity-reactive-ui": { - "version": "0.4.5", - "resolved": "https://registry.npmjs.org/parity-reactive-ui/-/parity-reactive-ui-0.4.5.tgz", - "integrity": "sha1-ravl0YV24B9iFSZP9LfbBUktnr8=", - "requires": { - "bignumber.js": "4.0.2", - "blockies": "0.0.2", - "oo7": "0.5.3", - "oo7-parity": "0.6.8", - "oo7-react": "0.4.5", - "prop-types": "15.5.10", - "react": "15.6.1", - "react-dom": "15.6.1", - "semantic-ui-css": "2.2.11", - "semantic-ui-react": "0.68.5" - }, - "dependencies": { - "bignumber.js": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-4.0.2.tgz", - "integrity": "sha1-LR3DfuWWiGfs6pC22k0W5oYI0h0=" - } - } - }, "parse-asn1": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.0.tgz", @@ -11478,11 +11197,6 @@ "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=" }, - "phoneformat.js": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/phoneformat.js/-/phoneformat.js-1.0.3.tgz", - "integrity": "sha1-Eb40dOdkdFQP43NMwz8aZYQdX4c=" - }, "pify": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", @@ -12751,16 +12465,6 @@ } } }, - "react-addons-create-fragment": { - "version": "15.6.0", - "resolved": "https://registry.npmjs.org/react-addons-create-fragment/-/react-addons-create-fragment-15.6.0.tgz", - "integrity": "sha1-r5GiKx+wld0B8a+6Q7/Q71idiyA=", - "requires": { - "fbjs": "0.8.14", - "loose-envify": "1.3.1", - "object-assign": "4.1.1" - } - }, "react-addons-perf": { "version": "15.4.2", "resolved": "https://registry.npmjs.org/react-addons-perf/-/react-addons-perf-15.4.2.tgz", @@ -12789,16 +12493,6 @@ "react-transition-group": "1.2.0" } }, - "react-codemirror": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/react-codemirror/-/react-codemirror-0.3.0.tgz", - "integrity": "sha1-zWvW70WOweA1z9iz/nswyMeIPGw=", - "requires": { - "classnames": "2.2.5", - "codemirror": "5.28.0", - "lodash.debounce": "4.0.8" - } - }, "react-container-dimensions": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/react-container-dimensions/-/react-container-dimensions-1.2.0.tgz", @@ -12860,22 +12554,24 @@ } }, "react-element-to-jsx-string": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/react-element-to-jsx-string/-/react-element-to-jsx-string-6.0.0.tgz", - "integrity": "sha1-8sFRR27o3YF4ke01K+Ss6fs2McI=", + "version": "5.0.7", + "resolved": "https://registry.npmjs.org/react-element-to-jsx-string/-/react-element-to-jsx-string-5.0.7.tgz", + "integrity": "sha1-xmOkgAqccSEVwNhRnLAhWkah8PI=", + "dev": true, "requires": { "collapse-white-space": "1.0.3", "is-plain-object": "2.0.4", "lodash": "4.17.4", "sortobject": "1.1.1", - "stringify-object": "3.2.0", + "stringify-object": "2.4.0", "traverse": "0.6.6" }, "dependencies": { "lodash": { "version": "4.17.4", "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz", - "integrity": "sha1-eCA6TRwyiuHYbcpkYONptX9AVa4=" + "integrity": "sha1-eCA6TRwyiuHYbcpkYONptX9AVa4=", + "dev": true } } }, @@ -12965,13 +12661,14 @@ } }, "react-markdown": { - "version": "2.4.4", - "resolved": "https://registry.npmjs.org/react-markdown/-/react-markdown-2.4.4.tgz", - "integrity": "sha1-JtglQ40pLnym4pL+diAeHb8s/u4=", + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/react-markdown/-/react-markdown-2.5.0.tgz", + "integrity": "sha1-scYZBP7liViGgDvZ332yPD3DqJ4=", "requires": { "commonmark": "0.24.0", "commonmark-react-renderer": "4.3.3", - "in-publish": "2.0.0" + "in-publish": "2.0.0", + "prop-types": "15.5.10" } }, "react-onclickoutside": { @@ -13234,17 +12931,6 @@ "resolve": "1.4.0" } }, - "recompose": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/recompose/-/recompose-0.20.2.tgz", - "integrity": "sha1-ET1qx+KcpmTP/+wWtoHd3fFSULw=", - "requires": { - "change-emitter": "0.1.6", - "fbjs": "0.8.14", - "hoist-non-react-statics": "1.2.0", - "symbol-observable": "0.2.4" - } - }, "redbox-react": { "version": "1.4.3", "resolved": "https://registry.npmjs.org/redbox-react/-/redbox-react-1.4.3.tgz", @@ -13312,13 +12998,6 @@ "lodash-es": "4.17.4", "loose-envify": "1.3.1", "symbol-observable": "1.0.4" - }, - "dependencies": { - "symbol-observable": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-1.0.4.tgz", - "integrity": "sha1-Kb9hXUqnEhvdiYsi1LP5vE4qoD0=" - } } }, "redux-actions": { @@ -13776,9 +13455,9 @@ } }, "semantic-ui-react": { - "version": "0.68.5", - "resolved": "https://registry.npmjs.org/semantic-ui-react/-/semantic-ui-react-0.68.5.tgz", - "integrity": "sha1-F5u4nDh/gRcCbKAfboSQ2x/Y5xM=", + "version": "0.71.2", + "resolved": "https://registry.npmjs.org/semantic-ui-react/-/semantic-ui-react-0.71.2.tgz", + "integrity": "sha512-aWkmGnhhdPGwRbtWVuhQV3QQvaoO8ZOrc5g0deW9Q/6J90Le1V5MC1LZTnwrrtUfV7rnEozwaunjZGftYsmG+w==", "requires": { "babel-runtime": "6.25.0", "classnames": "2.2.5", @@ -13940,7 +13619,6 @@ "version": "0.2.0", "resolved": "https://registry.npmjs.org/serviceworker-webpack-plugin/-/serviceworker-webpack-plugin-0.2.0.tgz", "integrity": "sha1-beneyC7RRMdUxvFbND57h2SsWyg=", - "dev": true, "requires": { "minimatch": "3.0.4" } @@ -14006,11 +13684,6 @@ "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=" }, - "simple-assign": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/simple-assign/-/simple-assign-0.1.0.tgz", - "integrity": "sha1-F/0wZqXz13OPUDIbsPFMooHMS6o=" - }, "simple-get": { "version": "1.4.3", "resolved": "https://registry.npmjs.org/simple-get/-/simple-get-1.4.3.tgz", @@ -14167,6 +13840,7 @@ "version": "1.1.1", "resolved": "https://registry.npmjs.org/sortobject/-/sortobject-1.1.1.tgz", "integrity": "sha1-T2ldTUTtCkwGSCw0wlgqLc3CqzQ=", + "dev": true, "requires": { "editions": "1.3.3" } @@ -14430,12 +14104,12 @@ "integrity": "sha1-q6Nt4I3O5qWjN9SbLqHaGyj8Ds8=" }, "stringify-object": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/stringify-object/-/stringify-object-3.2.0.tgz", - "integrity": "sha1-lDcKE15BvASDWIE7+ZSB8TFcaqY=", + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/stringify-object/-/stringify-object-2.4.0.tgz", + "integrity": "sha1-xi0RAj6yH+LZsIe+A5om3zsioJ0=", + "dev": true, "requires": { - "get-own-enumerable-property-symbols": "1.0.1", - "is-obj": "1.0.1", + "is-plain-obj": "1.1.0", "is-regexp": "1.0.0" } }, @@ -14831,9 +14505,9 @@ } }, "symbol-observable": { - "version": "0.2.4", - "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-0.2.4.tgz", - "integrity": "sha1-lag9smGG1q9+ehjb2XYKL4bQj0A=" + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-1.0.4.tgz", + "integrity": "sha1-Kb9hXUqnEhvdiYsi1LP5vE4qoD0=" }, "symbol-tree": { "version": "3.2.2", @@ -15157,7 +14831,8 @@ "traverse": { "version": "0.6.6", "resolved": "https://registry.npmjs.org/traverse/-/traverse-0.6.6.tgz", - "integrity": "sha1-y99WD9e5r2MlAv7UD5GMFX6pcTc=" + "integrity": "sha1-y99WD9e5r2MlAv7UD5GMFX6pcTc=", + "dev": true }, "trim-newlines": { "version": "1.0.0", @@ -15327,6 +15002,71 @@ "dev": true, "optional": true }, + "uglifyjs-webpack-plugin": { + "version": "0.4.6", + "resolved": "https://registry.npmjs.org/uglifyjs-webpack-plugin/-/uglifyjs-webpack-plugin-0.4.6.tgz", + "integrity": "sha1-uVH0q7a9YX5m9j64kUmOORdj4wk=", + "dev": true, + "requires": { + "source-map": "0.5.6", + "uglify-js": "2.8.29", + "webpack-sources": "1.0.1" + }, + "dependencies": { + "camelcase": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-1.2.1.tgz", + "integrity": "sha1-m7UwTS4LVmmLLHWLCKPqqdqlijk=", + "dev": true + }, + "cliui": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-2.1.0.tgz", + "integrity": "sha1-S0dXYP+AJkx2LDoXGQMukcf+oNE=", + "dev": true, + "requires": { + "center-align": "0.1.3", + "right-align": "0.1.3", + "wordwrap": "0.0.2" + } + }, + "uglify-js": { + "version": "2.8.29", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.8.29.tgz", + "integrity": "sha1-KcVzMUgFe7Th913zW3qcty5qWd0=", + "dev": true, + "requires": { + "source-map": "0.5.6", + "uglify-to-browserify": "1.0.2", + "yargs": "3.10.0" + } + }, + "window-size": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/window-size/-/window-size-0.1.0.tgz", + "integrity": "sha1-VDjNLqk7IC76Ohn+iIeu58lPnJ0=", + "dev": true + }, + "wordwrap": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.2.tgz", + "integrity": "sha1-t5Zpu0LstAn4PVg8rVLKF+qhZD8=", + "dev": true + }, + "yargs": { + "version": "3.10.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-3.10.0.tgz", + "integrity": "sha1-9+572FfdfB0tOMDnTvvWgdFDH9E=", + "dev": true, + "requires": { + "camelcase": "1.2.1", + "cliui": "2.1.0", + "decamelize": "1.2.0", + "window-size": "0.1.0" + } + } + } + }, "uniq": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/uniq/-/uniq-1.0.1.tgz", @@ -15725,60 +15465,39 @@ "dev": true }, "webpack": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-2.4.1.tgz", - "integrity": "sha1-FakdvjSWbYpLmcfWVu/ZKi5ab2o=", + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-3.3.0.tgz", + "integrity": "sha1-zi+eB2Vmq6kfdIhxM6iD/X2hh7w=", "dev": true, "requires": { "acorn": "5.1.1", "acorn-dynamic-import": "2.0.2", - "ajv": "4.11.8", - "ajv-keywords": "1.5.1", + "ajv": "5.2.2", + "ajv-keywords": "2.1.0", "async": "2.5.0", "enhanced-resolve": "3.4.1", + "escope": "3.6.0", "interpret": "1.0.3", "json-loader": "0.5.4", "json5": "0.5.1", "loader-runner": "2.3.0", - "loader-utils": "0.2.17", + "loader-utils": "1.1.0", "memory-fs": "0.4.1", "mkdirp": "0.5.1", "node-libs-browser": "2.0.0", "source-map": "0.5.6", "supports-color": "3.2.3", "tapable": "0.2.7", - "uglify-js": "2.8.22", + "uglifyjs-webpack-plugin": "0.4.6", "watchpack": "1.4.0", - "webpack-sources": "0.2.3", + "webpack-sources": "1.0.1", "yargs": "6.6.0" }, "dependencies": { - "ajv": { - "version": "4.11.8", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-4.11.8.tgz", - "integrity": "sha1-gv+wKynmYq5TvcIK8VlHcGc5xTY=", - "dev": true, - "requires": { - "co": "4.6.0", - "json-stable-stringify": "1.0.1" - } - }, - "loader-utils": { - "version": "0.2.17", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-0.2.17.tgz", - "integrity": "sha1-+G5jdNQyBabmxg6RlvF8Apm/s0g=", - "dev": true, - "requires": { - "big.js": "3.1.3", - "emojis-list": "2.1.0", - "json5": "0.5.1", - "object-assign": "4.1.1" - } - }, - "source-list-map": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-1.1.2.tgz", - "integrity": "sha1-mIkBnRAkzOVc3AaUmDN+9hhqEaE=", + "ajv-keywords": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-2.1.0.tgz", + "integrity": "sha1-opbhf3v658HOT34N5T0pyzIWLfA=", "dev": true }, "supports-color": { @@ -15789,16 +15508,6 @@ "requires": { "has-flag": "1.0.0" } - }, - "webpack-sources": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-0.2.3.tgz", - "integrity": "sha1-F8Yr+vE8cH+dAsR54Nzd6DgGl/s=", - "dev": true, - "requires": { - "source-list-map": "1.1.2", - "source-map": "0.5.6" - } } } }, @@ -16071,9 +15780,9 @@ "dev": true }, "which": { - "version": "1.2.14", - "resolved": "https://registry.npmjs.org/which/-/which-1.2.14.tgz", - "integrity": "sha1-mofEN48D6CfOyvGs31bHNsAcFOU=", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.0.tgz", + "integrity": "sha512-xcJpopdamTuY5duC/KnTTNBraPK54YwpenP4lzxU8H91GudWpFv38u0CKjclE1Wi2EH2EDz5LRcHcKbCIzqGyg==", "dev": true, "requires": { "isexe": "2.0.0" @@ -16103,16 +15812,6 @@ "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=", "dev": true }, - "worker-farm": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/worker-farm/-/worker-farm-1.4.1.tgz", - "integrity": "sha512-tgFAtgOYLPutkAyzgpS6VJFL5HY+0ui1Tvua+fITgz8ByaJTMFGtazR6xxQfwfiAcbwE+2fLG/K49wc2TfwCNw==", - "dev": true, - "requires": { - "errno": "0.1.4", - "xtend": "4.0.1" - } - }, "worker-loader": { "version": "0.8.1", "resolved": "https://registry.npmjs.org/worker-loader/-/worker-loader-0.8.1.tgz", diff --git a/js/package.json b/js/package.json index 0fa73b2d1..4550c34af 100644 --- a/js/package.json +++ b/js/package.json @@ -27,16 +27,16 @@ ], "scripts": { "build": "npm run build:lib && npm run build:app", - "build:app": "parallel-webpack -p=2 --config webpack/app", - "build:lib": "parallel-webpack -p=2 --config webpack/libraries", + "build:app": "webpack --progress --config webpack/app", + "build:lib": "webpack --progress --config webpack/libraries", "build:markdown": "babel-node ./scripts/build-rpc-markdown.js", "build:json": "babel-node ./scripts/build-rpc-json.js", "build:embed": "EMBED=1 node webpack/embed", "build:i18n": "npm run clean && npm run build && babel-node ./scripts/build-i18n.js", "ci:build": "npm run ci:build:lib && npm run ci:build:app && npm run ci:build:embed", - "ci:build:app": "NODE_ENV=production parallel-webpack -p=2 --config webpack/app", - "ci:build:lib": "NODE_ENV=production parallel-webpack -p=2 --config webpack/libraries", - "ci:build:npm": "NODE_ENV=production parallel-webpack -p=2 --config webpack/npm", + "ci:build:app": "NODE_ENV=production webpack --progress --config webpack/app", + "ci:build:lib": "NODE_ENV=production webpack --progress --config webpack/libraries", + "ci:build:npm": "NODE_ENV=production webpack --progress --config webpack/npm", "ci:build:jsonrpc": "babel-node ./scripts/build-rpc-json.js --output .npmjs/jsonrpc", "ci:build:embed": "NODE_ENV=production EMBED=1 node webpack/embed", "clean": "rm -rf ./.build ./.coverage ./.happypack ./build ./node_modules/.cache", @@ -50,7 +50,7 @@ "lint:js:cached": "eslint --cache --ignore-path .gitignore ./src/", "lint:js:fix": "eslint --fix --ignore-path .gitignore ./src/", "start": "npm run clean && npm install && npm run build:lib && npm run start:app", - "start:app": "webpack-dev-server --progress --config webpack/app", + "start:app": "node webpack/dev.server", "test": "NODE_ENV=test mocha --compilers ejs:ejsify 'src/**/*.spec.js' 'packages/**/*.spec.js'", "test:coverage": "NODE_ENV=test istanbul cover _mocha -- --compilers ejs:ejsify 'src/**/*.spec.js' 'packages/**/*.spec.js'", "test:e2e": "NODE_ENV=test mocha 'src/**/*.e2e.js' 'packages/**/*.e2e.js'", @@ -122,7 +122,6 @@ "mock-local-storage": "1.0.2", "mock-socket": "6.0.4", "nock": "9.0.7", - "parallel-webpack": "2.1.0", "postcss-import": "10.0.0", "postcss-loader": "2.0.6", "postcss-nested": "2.1.0", @@ -144,7 +143,7 @@ "to-source": "2.0.3", "uglify-js": "2.8.22", "url-loader": "0.5.7", - "webpack": "2.4.1", + "webpack": "3.3.0", "webpack-bundle-size-analyzer": "2.5.0", "webpack-dev-middleware": "1.10.1", "webpack-dev-server": "2.6.1", @@ -155,13 +154,9 @@ }, "dependencies": { "@parity/api": "paritytech/js-api#ade4a6750292a2918676039ea53eea20c4c728bc", - "@parity/dapps": "file:packages/dapps", - "@parity/etherscan": "paritytech/js-etherscan#efe859ac7d2a8a3cc05e01c689b7fa58f47f8b87", - "@parity/ledger": "file:packages/ledger", - "@parity/shapeshift": "file:packages/shapeshift", - "@parity/shared": "paritytech/js-shared#a83c71946d30d5b3bf976860a676add29c48ee24", + "@parity/dapp-accounts": "paritytech/dapp-accounts#b4b7113ba8ea25d11dfc0ed6d6c93b85c8a7fac8", + "@parity/shared": "paritytech/js-shared#438912f286ca09209e53fda5808205fca2c62940", "@parity/ui": "paritytech/js-ui#037782bd16e8abf1c169143aa61749a44b94489b", - "@parity/wordlist": "1.0.1", "es6-error": "4.0.0", "es6-promise": "4.0.5", "flat": "2.0.1", @@ -170,14 +165,13 @@ "format-number": "2.0.1", "isomorphic-fetch": "2.2.1", "lodash": "4.17.2", - "loglevel": "1.4.1", "moment": "2.17.0", - "promise-worker": "1.1.1", "prop-types": "15.5.10", "react": "15.6.1", "react-dom": "15.6.1", "react-inspector": "paritytech/react-inspector", "react-intl": "2.1.5", + "react-markdown": "2.5.0", "react-router": "3.0.0", "react-router-redux": "4.0.7", "react-tap-event-plugin": "2.0.1", @@ -188,12 +182,9 @@ "redux-thunk": "2.1.0", "store": "1.3.20", "sw-toolbox": "^3.6.0", - "u2f-api": "0.0.9", - "u2f-api-polyfill": "0.4.3", "useragent.js": "0.5.6", "utf8": "2.1.2", "web3": "0.17.0-beta", - "whatwg-fetch": "2.0.1", - "worker-loader": "^0.8.0" + "whatwg-fetch": "2.0.1" } } diff --git a/js/src/Application/application.js b/js/src/Application/application.js index aff8e5eb7..b80f5bf67 100644 --- a/js/src/Application/application.js +++ b/js/src/Application/application.js @@ -20,6 +20,7 @@ import { FormattedMessage } from 'react-intl'; import { connect } from 'react-redux'; import PropTypes from 'prop-types'; +import UpgradeStore from '@parity/shared/mobx/upgradeParity'; import { Errors } from '@parity/ui'; import Connection from '../Connection'; @@ -31,7 +32,6 @@ import Requests from '../Requests'; import Snackbar from '../Snackbar'; import Status from '../Status'; import UpgradeParity from '../UpgradeParity'; -import UpgradeStore from '../UpgradeParity/store'; import SyncWarning, { showSyncWarning } from '../SyncWarning'; import Store from './store'; diff --git a/js/src/Dapp/dapp.js b/js/src/Dapp/dapp.js index 02dcc5be0..1efd8303d 100644 --- a/js/src/Dapp/dapp.js +++ b/js/src/Dapp/dapp.js @@ -102,12 +102,14 @@ export default class Dapp extends Component { case 'local': src = `${dappsUrl}/${app.id}/`; break; + case 'network': src = `${dappsUrl}/${app.contentHash}/`; break; + default: let dapphost = process.env.DAPPS_URL || ( - process.env.NODE_ENV === 'production' && !app.secure + process.env.NODE_ENV === 'production' ? `${dappsUrl}/ui` : '' ); @@ -116,7 +118,11 @@ export default class Dapp extends Component { dapphost = ''; } - src = `${dapphost}/${app.url}.html`; + const appId = this.context.api.util.isHex(app.id) + ? app.id + : this.context.api.sha3(app.url); + + src = `${dapphost}/dapps/${appId}/index.html`; break; } diff --git a/js/src/inject.js b/js/src/inject.js index 74c4f19ef..64dfabcae 100644 --- a/js/src/inject.js +++ b/js/src/inject.js @@ -27,11 +27,9 @@ import web3extensions from './web3.extensions'; function initProvider () { let [, appId] = window.location.pathname.split('/'); - if (appId.indexOf('.html') !== -1) { - appId = appId.replace('.html', ''); - } + console.log('window.location.pathname', window.location.pathname, appId); - if (appId.substr(0, 2) !== '0x') { + if (!Api.util.isHex(appId)) { appId = Api.util.sha3(appId); } diff --git a/js/webpack/app.js b/js/webpack/app.js index c169c348d..8a0073a14 100644 --- a/js/webpack/app.js +++ b/js/webpack/app.js @@ -15,7 +15,9 @@ // You should have received a copy of the GNU General Public License // along with Parity. If not, see . +const Api = require('@parity/api'); const path = require('path'); +const flatten = require('lodash.flatten'); // const ReactIntlAggregatePlugin = require('react-intl-aggregate-webpack-plugin'); const WebpackErrorNotificationPlugin = require('webpack-error-notification'); const CopyWebpackPlugin = require('copy-webpack-plugin'); @@ -27,10 +29,11 @@ const rulesParity = require('./rules/parity'); const Shared = require('./shared'); const DAPPS_BUILTIN = require('@parity/shared/config/dappsBuiltin.json'); -const DAPPS_VIEWS = require('@parity/shared/config/dappsViews.json').map((dapp) => { - dapp.commons = true; - return dapp; -}); +const DAPPS_VIEWS = require('@parity/shared/config/dappsViews.json'); +const DAPPS_ALL = [] + .concat(DAPPS_BUILTIN, DAPPS_VIEWS) + .filter((dapp) => !dapp.skipBuild) + .filter((dapp) => dapp.package); const FAVICON = path.resolve(__dirname, '../node_modules/@parity/shared/assets/images/parity-logo-black-no-text.png'); @@ -42,231 +45,207 @@ const isProd = ENV === 'production'; const isEmbed = EMBED === '1' || EMBED === 'true'; const entry = isEmbed - ? { - embed: './embed.js' - } - : Object.assign({}, Shared.dappsEntry, { - index: './index.js' - }); + ? { embed: './embed.js' } + : { index: './index.js' }; -module.exports = Object.keys(entry).map((entryName) => { - const entrySrc = entry[entryName]; +module.exports = { + cache: !isProd, + devtool: isProd ? '#hidden-source-map' : '#source-map', - return { - cache: !isProd, - devtool: isProd ? '#hidden-source-map' : '#source-map', + context: path.join(__dirname, '../src'), + entry, + output: { + path: path.join(__dirname, '../', DEST), + filename: '[name].js' + }, - context: path.join(__dirname, '../src'), - entry: { - [entryName]: entrySrc - }, - output: { - path: path.join(__dirname, '../', DEST), - filename: '[name].js' - }, - - module: { - rules: [ - rulesParity, - rulesEs6, - { - test: /\.js$/, - exclude: /(node_modules)/, - use: [ 'babel-loader' ] - }, - { - test: /\.json$/, - use: [ 'json-loader' ] - }, - { - test: /\.ejs$/, - use: [ 'ejs-loader' ] - }, - { - test: /\.html$/, - use: [ - { - loader: 'file-loader', - options: { - name: '[name].[ext]' - } - }, - 'extract-loader', - { - loader: 'html-loader', - options: { - root: path.resolve(__dirname, '../assets/images'), - attrs: ['img:src', 'link:href'] - } - } - ] - }, - { - test: /\.md$/, - use: [ 'html-loader', 'markdown-loader' ] - }, - { - test: /\.css$/, - include: /node_modules\/(?!@parity)*/, - use: [ 'style-loader', 'css-loader' ] - }, - { - test: /\.css$/, - exclude: /node_modules\/(?!@parity)*/, - use: [ - 'style-loader', - { - loader: 'css-loader', - options: { - importLoaders: 1, - localIdentName: '[name]_[local]_[hash:base64:10]', - minimize: true, - modules: true - } - }, - { - loader: 'postcss-loader', - options: { - plugins: (loader) => [ - require('postcss-import'), - require('postcss-nested'), - require('postcss-simple-vars') - ] - } - } - ] - }, - { - test: /\.(png|jpg)$/, - use: [ { - loader: 'file-loader', - options: { - name: 'assets/[name].[hash].[ext]' - } - } ] - }, - { - test: /\.(woff|woff2|ttf|eot|otf)(\?v=[0-9]\.[0-9]\.[0-9])?$/, - use: [ { - loader: 'file-loader', - options: { - name: 'fonts/[name][hash].[ext]' - } - } ] - }, - { - test: /parity-logo-white-no-text\.svg/, - use: [ 'url-loader' ] - }, - { - test: /\.svg(\?v=[0-9]\.[0-9]\.[0-9])?$/, - exclude: [ /parity-logo-white-no-text\.svg/ ], - use: [ { - loader: 'file-loader', - options: { - name: 'assets/[name].[hash].[ext]' - } - } ] - } - ], - noParse: [ - /node_modules\/sinon/ - ] - }, - - resolve: { - alias: { - '~': path.resolve(__dirname, '..'), - '@parity/abi': path.resolve(__dirname, '../node_modules/@parity/abi'), - '@parity/api': path.resolve(__dirname, '../node_modules/@parity/api'), - '@parity/etherscan': path.resolve(__dirname, '../node_modules/@parity/etherscan'), - '@parity/jsonrpc': path.resolve(__dirname, '../node_modules/@parity/jsonrpc'), - '@parity/parity.js': path.resolve(__dirname, '../node_modules/@parity/parity.js'), - '@parity/shared': path.resolve(__dirname, '../node_modules/@parity/shared'), - '@parity/ui': path.resolve(__dirname, '../node_modules/@parity/ui'), - '@parity/wordlist': path.resolve(__dirname, '../node_modules/@parity/wordlist'), - '@parity': path.resolve(__dirname, '../packages') + module: { + rules: [ + rulesParity, + rulesEs6, + { + test: /\.js$/, + exclude: /(node_modules)/, + use: [ 'babel-loader' ] }, - modules: [ - path.join(__dirname, '../node_modules') - ], - extensions: ['.json', '.js', '.jsx'], - unsafeCache: true + { + test: /\.json$/, + use: [ 'json-loader' ] + }, + { + test: /\.ejs$/, + use: [ 'ejs-loader' ] + }, + { + test: /\.html$/, + use: [ + { + loader: 'file-loader', + options: { + name: '[name].[ext]' + } + }, + 'extract-loader', + { + loader: 'html-loader', + options: { + root: path.resolve(__dirname, '../assets/images'), + attrs: ['img:src', 'link:href'] + } + } + ] + }, + { + test: /\.md$/, + use: [ 'html-loader', 'markdown-loader' ] + }, + { + test: /\.css$/, + include: /node_modules\/(?!@parity)*/, + use: [ 'style-loader', 'css-loader' ] + }, + { + test: /\.css$/, + exclude: /node_modules\/(?!@parity)*/, + use: [ + 'style-loader', + { + loader: 'css-loader', + options: { + importLoaders: 1, + localIdentName: '[name]_[local]_[hash:base64:10]', + minimize: true, + modules: true + } + }, + { + loader: 'postcss-loader', + options: { + plugins: (loader) => [ + require('postcss-import'), + require('postcss-nested'), + require('postcss-simple-vars') + ] + } + } + ] + }, + { + test: /\.(png|jpg)$/, + use: [ { + loader: 'file-loader', + options: { + name: 'assets/[name].[hash].[ext]' + } + } ] + }, + { + test: /\.(woff|woff2|ttf|eot|otf)(\?v=[0-9]\.[0-9]\.[0-9])?$/, + use: [ { + loader: 'file-loader', + options: { + name: 'fonts/[name][hash].[ext]' + } + } ] + }, + { + test: /parity-logo-white-no-text\.svg/, + use: [ 'url-loader' ] + }, + { + test: /\.svg(\?v=[0-9]\.[0-9]\.[0-9])?$/, + exclude: [ /parity-logo-white-no-text\.svg/ ], + use: [ { + loader: 'file-loader', + options: { + name: 'assets/[name].[hash].[ext]' + } + } ] + } + ], + noParse: [ + /node_modules\/sinon/ + ] + }, + + resolve: { + alias: { + '~': path.resolve(__dirname, '..') }, + modules: [ + path.join(__dirname, '../node_modules') + ], + extensions: ['.json', '.js', '.jsx'], + unsafeCache: true + }, - node: { - fs: 'empty' - }, + node: { + fs: 'empty' + }, - plugins: (function () { - const DappsHTMLInjection = [] - .concat(DAPPS_BUILTIN, DAPPS_VIEWS) - .filter((dapp) => !dapp.skipBuild) - .map((dapp) => { - return new HtmlWebpackPlugin({ - title: dapp.name, - filename: dapp.url + '.html', - template: '../packages/dapps/index.ejs', - favicon: FAVICON, - secure: dapp.secure, - chunks: [ dapp.url ] - }); - }); + plugins: (function () { + let plugins = Shared.getPlugins().concat( + new WebpackErrorNotificationPlugin() + ); - let plugins = Shared.getPlugins().concat( - new WebpackErrorNotificationPlugin() + if (!isEmbed) { + plugins = [].concat( + plugins, + + new HtmlWebpackPlugin({ + title: 'Parity', + filename: 'index.html', + template: './index.ejs', + favicon: FAVICON, + chunks: [ 'index' ] + }), + + new ServiceWorkerWebpackPlugin({ + entry: path.join(__dirname, '../src/serviceWorker.js') + }), + + new CopyWebpackPlugin( + flatten([ + { + from: './error_pages.css', + to: 'styles.css' + }, + flatten( + DAPPS_ALL.map((dapp) => { + const destination = Api.util.isHex(dapp.id) + ? dapp.id + : Api.util.sha3(dapp.url); + + return [ + { + from: `../node_modules/${dapp.package}/dist`, + to: `dapps/${destination}/dist/` + }, + { + from: `../node_modules/${dapp.package}/index.html`, + to: `dapps/${destination}/` + } + ]; + }) + ) + ]), + {} + ) ); + } - if (!isEmbed) { - plugins = [].concat( - plugins, + if (isEmbed) { + plugins.push( + new HtmlWebpackPlugin({ + title: 'Parity Bar', + filename: 'embed.html', + template: './index.ejs', + favicon: FAVICON, + chunks: [ 'embed' ] + }) + ); + } - new HtmlWebpackPlugin({ - title: 'Parity', - filename: 'index.html', - template: './index.ejs', - favicon: FAVICON, - chunks: [ 'index' ] - }), - - new ServiceWorkerWebpackPlugin({ - entry: path.join(__dirname, '../src/serviceWorker.js') - }), - - DappsHTMLInjection, - - new CopyWebpackPlugin([ - { from: './error_pages.css', to: 'styles.css' }, - { from: '../packages/dapps/static' } - ], {}) - ); - } - - if (isEmbed) { - plugins.push( - new HtmlWebpackPlugin({ - title: 'Parity Bar', - filename: 'embed.html', - template: './index.ejs', - favicon: FAVICON, - chunks: [ 'embed' ] - }) - ); - } - - // if (!isAnalize && !isProd) { - // const DEST_I18N = path.join(__dirname, '..', DEST, 'i18n'); - // - // plugins.push( - // new ReactIntlAggregatePlugin({ - // messagesPattern: DEST_I18N + '/i18n/**/*.json', - // aggregateOutputDir: DEST_I18N + '/i18n/', - // aggregateFilename: 'en' - // }) - // ); - // } - - return plugins; - }()) - }; -}); + return plugins; + }()) +}; diff --git a/js/webpack/build.server.js b/js/webpack/build.server.js new file mode 100644 index 000000000..486209ccb --- /dev/null +++ b/js/webpack/build.server.js @@ -0,0 +1,35 @@ +// Copyright 2015-2017 Parity Technologies (UK) Ltd. +// This file is part of Parity. + +// Parity is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. + +// Parity is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License +// along with Parity. If not, see . +// test only +/** + * Run `DAPPS_URL="/" PARITY_URL="127.0.0.1:8546" NODE_ENV="production" npm run build` + * to build the project ; use this server to test that the minifed + * version is working (this is a simple proxy server) + */ + +var express = require('express'); + +var Shared = require('./shared'); + +var app = express(); + +Shared.addProxies(app); + +app.use(express.static('.build')); + +var server = app.listen(process.env.PORT || 3000, function () { + console.log('Listening on port', server.address().port); +}); diff --git a/js/webpack/dev.server.js b/js/webpack/dev.server.js new file mode 100644 index 000000000..07541a879 --- /dev/null +++ b/js/webpack/dev.server.js @@ -0,0 +1,97 @@ +// Copyright 2015-2017 Parity Technologies (UK) Ltd. +// This file is part of Parity. + +// Parity is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. + +// Parity is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License +// along with Parity. If not, see . + +const webpack = require('webpack'); +const WebpackStats = require('webpack/lib/Stats'); +const webpackDevMiddleware = require('webpack-dev-middleware'); +const webpackHotMiddleware = require('webpack-hot-middleware'); + +const http = require('http'); +const express = require('express'); +const ProgressBar = require('progress'); + +const webpackConfig = require('./app'); +const Shared = require('./shared'); + +let progressBar = { update: () => {} }; + +/** + * Add webpack hot middleware to each entry in the config + * and HMR to the plugins + */ +(function updateWebpackConfig () { + webpackConfig.performance = { hints: false }; + + Object.keys(webpackConfig.entry).forEach((key) => { + const entry = webpackConfig.entry[key]; + + webpackConfig.entry[key] = [].concat( + 'react-hot-loader/patch', + 'webpack-hot-middleware/client?reload=true', + entry + ); + }); + + webpackConfig.plugins.push(new webpack.HotModuleReplacementPlugin()); + webpackConfig.plugins.push(new webpack.NamedModulesPlugin()); + webpackConfig.plugins.push(new webpack.NoEmitOnErrorsPlugin()); + + webpackConfig.plugins.push(new webpack.ProgressPlugin( + (percentage) => progressBar.update(percentage) + )); +})(); + +const app = express(); +const compiler = webpack(webpackConfig); + +app.use(webpackHotMiddleware(compiler, { + log: console.log +})); + +app.use(webpackDevMiddleware(compiler, { + noInfo: true, + quiet: false, + progress: true, + publicPath: webpackConfig.output.publicPath, + stats: { + colors: true + }, + reporter: function (data) { + // @see https://github.com/webpack/webpack/blob/324d309107f00cfc38ec727521563d309339b2ec/lib/Stats.js#L790 + // Accepted values: none, errors-only, minimal, normal, verbose + const options = WebpackStats.presetToOptions('minimal'); + + options.timings = true; + + const output = data.stats.toString(options); + + process.stdout.write('\n'); + process.stdout.write(output); + process.stdout.write('\n\n'); + } +})); + +// Add the dev proxies in the express App +Shared.addProxies(app); + +app.use(express.static(webpackConfig.output.path)); + +const server = http.createServer(app); + +server.listen(process.env.PORT || 3000, function () { + console.log('Listening on port', server.address().port); + progressBar = new ProgressBar('[:bar] :percent :etas', { total: 50 }); +}); diff --git a/js/webpack/libraries.js b/js/webpack/libraries.js index 4297fd068..c0619eb41 100644 --- a/js/webpack/libraries.js +++ b/js/webpack/libraries.js @@ -24,61 +24,53 @@ const Shared = require('./shared'); const DEST = process.env.BUILD_DEST || '.build'; -module.exports = ['inject', 'parity', 'web3'].map((entryName) => { - return { - context: path.join(__dirname, '../src'), - entry: { - [entryName]: ['./inject.js'] - }, - output: { - path: path.join(__dirname, '../', DEST), - filename: '[name].js', - library: '[name].js', - libraryTarget: 'umd' - }, +module.exports = { + context: path.join(__dirname, '../src'), + entry: { + inject: ['./inject.js'], + parity: ['./inject.js'], + web3: ['./inject.js'] + }, + output: { + path: path.join(__dirname, '../', DEST), + filename: '[name].js', + library: '[name].js', + libraryTarget: 'umd' + }, - resolve: { - alias: { - '~': path.resolve(__dirname, '..'), - '@parity/abi': path.resolve(__dirname, '../node_modules/@parity/abi'), - '@parity/api': path.resolve(__dirname, '../node_modules/@parity/api'), - '@parity/etherscan': path.resolve(__dirname, '../node_modules/@parity/etherscan'), - '@parity/jsonrpc': path.resolve(__dirname, '../node_modules/@parity/jsonrpc'), - '@parity/shared': path.resolve(__dirname, '../node_modules/@parity/shared'), - '@parity/ui': path.resolve(__dirname, '../node_modules/@parity/ui'), - '@parity/wordlist': path.resolve(__dirname, '../node_modules/@parity/wordlist'), - '@parity': path.resolve(__dirname, '../packages') + resolve: { + alias: { + '~': path.resolve(__dirname, '..') + } + }, + + node: { + fs: 'empty' + }, + + module: { + rules: [ + rulesParity, + rulesEs6, + { + test: /\.js$/, + exclude: /node_modules/, + use: [ 'babel-loader' ] + }, + { + test: /\.json$/, + use: [ 'json-loader' ] + }, + { + test: /\.html$/, + use: [ { + loader: 'file-loader', + options: { + name: '[name].[ext]' + } + } ] } - }, - - node: { - fs: 'empty' - }, - - module: { - rules: [ - rulesParity, - rulesEs6, - { - test: /\.js$/, - exclude: /node_modules/, - use: [ 'babel-loader' ] - }, - { - test: /\.json$/, - use: [ 'json-loader' ] - }, - { - test: /\.html$/, - use: [ { - loader: 'file-loader', - options: { - name: '[name].[ext]' - } - } ] - } - ] - }, - plugins: Shared.getPlugins() - }; -}); + ] + }, + plugins: Shared.getPlugins() +}; diff --git a/js/webpack/shared.js b/js/webpack/shared.js index e42338c6e..c1994c8b3 100644 --- a/js/webpack/shared.js +++ b/js/webpack/shared.js @@ -115,23 +115,6 @@ function getPlugins (_isProd = isProd) { return plugins; } -function getDappsEntry () { - const builtins = require('@parity/shared/config/dappsBuiltin.json'); - const views = require('@parity/shared/config/dappsViews.json'); - - return Object.assign( - [] - .concat( - builtins.filter((dapp) => !dapp.skipBuild), - views - ) - .reduce((_entry, dapp) => { - _entry[dapp.url] = '../packages/dapp-' + dapp.url + '/index.js'; - return _entry; - }, {}) - ); -} - function addProxies (app) { const proxy = require('http-proxy-middleware'); @@ -166,6 +149,5 @@ function addProxies (app) { module.exports = { getBabelrc: getBabelrc, getPlugins: getPlugins, - dappsEntry: getDappsEntry(), addProxies: addProxies };