diff --git a/js/package-lock.json b/js/package-lock.json index c7f1b0b02..089ba9542 100644 --- a/js/package-lock.json +++ b/js/package-lock.json @@ -52,7 +52,7 @@ "@parity/parity.js": "1.8.7", "@parity/shapeshift": "2.0.2", "@parity/shared": "2.0.2", - "@parity/ui": "2.0.4", + "@parity/ui": "2.0.23", "happypack": "3.1.0", "lodash": "4.17.2", "oo7": "0.5.3", @@ -76,7 +76,7 @@ "@parity/api": "2.0.2", "@parity/dapp-vaults": "github:paritytech/dapp-vaults#ede26d42d4cbd2a46715c19663d6e195c96fd9bb", "@parity/shared": "2.0.2", - "@parity/ui": "2.0.4", + "@parity/ui": "2.0.23", "file-saver": "1.3.3", "react": "15.6.1", "react-dom": "15.6.1", @@ -92,7 +92,7 @@ "@parity/dapp-account": "github:paritytech/dapp-account#40c30bc1bb5b958f9fa335b78bbf3d4ae4717270", "@parity/dapp-addresses": "github:paritytech/dapp-addresses#df06c19cc9a15c2f7415206cc42943841b67d58a", "@parity/shared": "2.0.2", - "@parity/ui": "2.0.4" + "@parity/ui": "2.0.23" } }, "@parity/dapp-addresses": { @@ -101,7 +101,7 @@ "@parity/api": "2.0.2", "@parity/dapp-accounts": "github:paritytech/dapp-accounts#d413e553c2dd29448de6a2811a95ca9e75cd5c27", "@parity/shared": "2.0.2", - "@parity/ui": "2.0.4" + "@parity/ui": "2.0.23" } }, "@parity/dapp-chaindeploy": { @@ -119,7 +119,7 @@ "@parity/api": "2.0.2", "@parity/dapp-account": "github:paritytech/dapp-account#40c30bc1bb5b958f9fa335b78bbf3d4ae4717270", "@parity/shared": "2.0.2", - "@parity/ui": "2.0.4" + "@parity/ui": "2.0.23" } }, "@parity/dapp-contracts": { @@ -129,7 +129,7 @@ "@parity/dapp-account": "github:paritytech/dapp-account#40c30bc1bb5b958f9fa335b78bbf3d4ae4717270", "@parity/dapp-accounts": "github:paritytech/dapp-accounts#d413e553c2dd29448de6a2811a95ca9e75cd5c27", "@parity/shared": "2.0.2", - "@parity/ui": "2.0.4" + "@parity/ui": "2.0.23" } }, "@parity/dapp-dapp-accounts": { @@ -137,7 +137,7 @@ "requires": { "@parity/api": "2.0.2", "@parity/shared": "2.0.2", - "@parity/ui": "2.0.4" + "@parity/ui": "2.0.23" } }, "@parity/dapp-dapp-methods": { @@ -145,7 +145,7 @@ "requires": { "@parity/api": "2.0.2", "@parity/shared": "2.0.2", - "@parity/ui": "2.0.4" + "@parity/ui": "2.0.23" } }, "@parity/dapp-dapp-visible": { @@ -153,7 +153,7 @@ "requires": { "@parity/api": "2.0.2", "@parity/shared": "2.0.2", - "@parity/ui": "2.0.4" + "@parity/ui": "2.0.23" } }, "@parity/dapp-dappreg": { @@ -161,7 +161,7 @@ "requires": { "@parity/api": "2.0.2", "@parity/shared": "2.0.2", - "@parity/ui": "2.0.4" + "@parity/ui": "2.0.23" } }, "@parity/dapp-develop": { @@ -171,7 +171,7 @@ "@parity/dapp-contracts": "github:paritytech/dapp-contracts#f3845af1e24bb9578a1ab7f1250675ab7a3bd975", "@parity/parity.js": "1.8.7", "@parity/shared": "2.0.2", - "@parity/ui": "2.0.4", + "@parity/ui": "2.0.23", "oo7": "0.5.3", "oo7-parity": "0.6.8", "oo7-react": "0.4.5", @@ -199,7 +199,7 @@ "@parity/api": "2.0.2", "@parity/dapp-web": "github:paritytech/dapp-web#77787e0e9e7323e14027b0840114535c2d97cf09", "@parity/shared": "2.0.2", - "@parity/ui": "2.0.4", + "@parity/ui": "2.0.23", "react-markdown": "2.4.4" }, "dependencies": { @@ -220,7 +220,7 @@ "requires": { "@parity/api": "2.0.2", "@parity/shared": "2.0.2", - "@parity/ui": "2.0.4" + "@parity/ui": "2.0.23" } }, "@parity/dapp-playground": { @@ -228,7 +228,7 @@ "requires": { "@parity/api": "2.0.2", "@parity/shared": "2.0.2", - "@parity/ui": "2.0.4" + "@parity/ui": "2.0.23" } }, "@parity/dapp-registry": { @@ -236,7 +236,7 @@ "requires": { "@parity/api": "2.0.2", "@parity/shared": "2.0.2", - "@parity/ui": "2.0.4", + "@parity/ui": "2.0.23", "material-ui": "0.16.5" } }, @@ -245,7 +245,7 @@ "requires": { "@parity/api": "2.0.2", "@parity/shared": "2.0.2", - "@parity/ui": "2.0.4" + "@parity/ui": "2.0.23" } }, "@parity/dapp-signaturereg": { @@ -264,7 +264,7 @@ "requires": { "@parity/api": "2.0.2", "@parity/shared": "2.0.2", - "@parity/ui": "2.0.4" + "@parity/ui": "2.0.23" } }, "@parity/dapp-status": { @@ -272,7 +272,7 @@ "requires": { "@parity/api": "2.0.2", "@parity/shared": "2.0.2", - "@parity/ui": "2.0.4", + "@parity/ui": "2.0.23", "bytes": "2.4.0", "format-number": "2.0.1" } @@ -282,7 +282,7 @@ "requires": { "@parity/api": "2.0.2", "@parity/shared": "2.0.2", - "@parity/ui": "2.0.4" + "@parity/ui": "2.0.23" } }, "@parity/dapp-tokenreg": { @@ -301,7 +301,7 @@ "requires": { "@parity/api": "2.0.2", "@parity/shared": "2.0.2", - "@parity/ui": "2.0.4" + "@parity/ui": "2.0.23" } }, "@parity/dapp-wallet": { @@ -310,7 +310,7 @@ "@parity/api": "2.0.2", "@parity/dapp-account": "github:paritytech/dapp-account#40c30bc1bb5b958f9fa335b78bbf3d4ae4717270", "@parity/shared": "2.0.2", - "@parity/ui": "2.0.4" + "@parity/ui": "2.0.23" } }, "@parity/dapp-web": { @@ -318,7 +318,7 @@ "requires": { "@parity/api": "2.0.2", "@parity/shared": "2.0.2", - "@parity/ui": "2.0.4", + "@parity/ui": "2.0.23", "base32.js": "0.1.0" } }, @@ -373,6 +373,30 @@ } } }, + "@parity/plugin-signer-account": { + "version": "github:paritytech/plugin-signer-account#5d1f847fc930145a0301177be361c199feaad85d", + "requires": { + "@parity/ui": "2.0.23" + } + }, + "@parity/plugin-signer-default": { + "version": "github:paritytech/plugin-signer-default#05cd95c722fe81642d506bbf942f99bc4903ea47", + "requires": { + "@parity/ui": "2.0.23" + } + }, + "@parity/plugin-signer-hardware": { + "version": "github:paritytech/plugin-signer-hardware#7b86cb8cf36824e57d04f52e88bff60340533ac3", + "requires": { + "@parity/ui": "2.0.23" + } + }, + "@parity/plugin-signer-qr": { + "version": "github:paritytech/plugin-signer-qr#51395e1dbcc147005c16124ecf131bc5ef8f2612", + "requires": { + "@parity/ui": "2.0.23" + } + }, "@parity/shapeshift": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/@parity/shapeshift/-/shapeshift-2.0.2.tgz", @@ -412,9 +436,9 @@ } }, "@parity/ui": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@parity/ui/-/ui-2.0.4.tgz", - "integrity": "sha512-ZyjpAIOIMJ9T8pUCnFoP4evEn/ToNYBk+ZllfBFKwEHO17RjwqGO/Hzlhm1oynqHMWF5WH76IROfSUy9vKNb4g==", + "version": "2.0.23", + "resolved": "https://registry.npmjs.org/@parity/ui/-/ui-2.0.23.tgz", + "integrity": "sha512-yn+UCQijbKuAamEPgdvGr10F+zDiArFgsaiQzGK5410Gya/EAek1pwxgoHY4LUKtmnHytItutuPjn0hNYuC46Q==", "requires": { "@parity/api": "2.0.2", "@parity/etherscan": "2.0.2", @@ -552,9 +576,9 @@ } }, "ajv": { - "version": "5.2.2", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.2.2.tgz", - "integrity": "sha1-R8aNaehvXZUxA7AHSpQw3GPaXjk=", + "version": "5.2.3", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.2.3.tgz", + "integrity": "sha1-wG9Zh3jETGsWGrr+NGa4GtGBTtI=", "requires": { "co": "4.6.0", "fast-deep-equal": "1.0.0", @@ -831,7 +855,7 @@ "dev": true, "requires": { "browserslist": "1.7.7", - "caniuse-db": "1.0.30000738", + "caniuse-db": "1.0.30000740", "normalize-range": "0.1.2", "num2fraction": "1.2.2", "postcss": "5.2.17", @@ -844,8 +868,8 @@ "integrity": "sha1-C9dnBCWL6CmyOYu1Dkti0aFmsLk=", "dev": true, "requires": { - "caniuse-db": "1.0.30000738", - "electron-to-chromium": "1.3.22" + "caniuse-db": "1.0.30000740", + "electron-to-chromium": "1.3.24" } } } @@ -2328,8 +2352,8 @@ "integrity": "sha512-aM2Gt4x9bVlCUteADBS6JP0F+2tMWKM1jQzUulVROtdFWFIcIVvY76AJbr7GDqy0eDhn+PcnpzzivGxY4qiaKQ==", "dev": true, "requires": { - "caniuse-lite": "1.0.30000738", - "electron-to-chromium": "1.3.22" + "caniuse-lite": "1.0.30000740", + "electron-to-chromium": "1.3.24" } }, "buffer": { @@ -2449,7 +2473,7 @@ "dev": true, "requires": { "browserslist": "1.7.7", - "caniuse-db": "1.0.30000738", + "caniuse-db": "1.0.30000740", "lodash.memoize": "4.1.2", "lodash.uniq": "4.5.0" }, @@ -2460,22 +2484,22 @@ "integrity": "sha1-C9dnBCWL6CmyOYu1Dkti0aFmsLk=", "dev": true, "requires": { - "caniuse-db": "1.0.30000738", - "electron-to-chromium": "1.3.22" + "caniuse-db": "1.0.30000740", + "electron-to-chromium": "1.3.24" } } } }, "caniuse-db": { - "version": "1.0.30000738", - "resolved": "https://registry.npmjs.org/caniuse-db/-/caniuse-db-1.0.30000738.tgz", - "integrity": "sha1-hICavEmjkOWowiSrk2nT+NAaogI=", + "version": "1.0.30000740", + "resolved": "https://registry.npmjs.org/caniuse-db/-/caniuse-db-1.0.30000740.tgz", + "integrity": "sha1-A/yqoXbj7QdYlfctRsGhIUm76sk=", "dev": true }, "caniuse-lite": { - "version": "1.0.30000738", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30000738.tgz", - "integrity": "sha1-GCDDya25oRfjEaW9yh0lvDQojro=", + "version": "1.0.30000740", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30000740.tgz", + "integrity": "sha1-8sTATWVk64EuYQBoQXAK1Vf2+XM=", "dev": true }, "capture-stack-trace": { @@ -2920,34 +2944,25 @@ } }, "compression": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/compression/-/compression-1.7.0.tgz", - "integrity": "sha1-AwyfGY8WQ6BX13anOOki2kNzAS0=", + "version": "1.7.1", + "resolved": "https://registry.npmjs.org/compression/-/compression-1.7.1.tgz", + "integrity": "sha1-7/JgPvwuIs+G810uuTWJ+YdTc9s=", "dev": true, "requires": { "accepts": "1.3.4", - "bytes": "2.5.0", + "bytes": "3.0.0", "compressible": "2.0.11", - "debug": "2.6.8", + "debug": "2.6.9", "on-headers": "1.0.1", "safe-buffer": "5.1.1", "vary": "1.1.2" }, "dependencies": { "bytes": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-2.5.0.tgz", - "integrity": "sha1-TJQj6i0lLCcMQbK97+/5u2tiwGo=", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", + "integrity": "sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg=", "dev": true - }, - "debug": { - "version": "2.6.8", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.8.tgz", - "integrity": "sha1-5zFTHKLt4n0YgiJCfaF4IdaP9Pw=", - "dev": true, - "requires": { - "ms": "2.0.0" - } } } }, @@ -3187,11 +3202,11 @@ } }, "create-react-class": { - "version": "15.6.0", - "resolved": "https://registry.npmjs.org/create-react-class/-/create-react-class-15.6.0.tgz", - "integrity": "sha1-q0SEl8JlZuHilBPogyB9V8/nvtQ=", + "version": "15.6.2", + "resolved": "https://registry.npmjs.org/create-react-class/-/create-react-class-15.6.2.tgz", + "integrity": "sha1-zx7RXxKq1/FO9fLf4F5sQvke8Co=", "requires": { - "fbjs": "0.8.15", + "fbjs": "0.8.16", "loose-envify": "1.3.1", "object-assign": "4.1.1" } @@ -4049,7 +4064,7 @@ "dev": true, "requires": { "bn.js": "4.11.8", - "miller-rabin": "4.0.0", + "miller-rabin": "4.0.1", "randombytes": "2.0.5" } }, @@ -4095,7 +4110,7 @@ "dev": true, "requires": { "browserslist": "1.7.7", - "caniuse-db": "1.0.30000738", + "caniuse-db": "1.0.30000740", "css-rule-stream": "1.1.0", "duplexer2": "0.0.2", "jsonfilter": "1.1.2", @@ -4114,8 +4129,8 @@ "integrity": "sha1-C9dnBCWL6CmyOYu1Dkti0aFmsLk=", "dev": true, "requires": { - "caniuse-db": "1.0.30000738", - "electron-to-chromium": "1.3.22" + "caniuse-db": "1.0.30000740", + "electron-to-chromium": "1.3.24" } }, "camelcase": { @@ -4465,9 +4480,9 @@ } }, "electron-to-chromium": { - "version": "1.3.22", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.22.tgz", - "integrity": "sha1-QyLVLBUUBuPq73StAmdog+hBZBg=", + "version": "1.3.24", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.24.tgz", + "integrity": "sha1-m3uIuwXOufoBahd4M8wt3jiPIbY=", "dev": true }, "element-resize-detector": { @@ -5286,9 +5301,9 @@ } }, "fbjs": { - "version": "0.8.15", - "resolved": "https://registry.npmjs.org/fbjs/-/fbjs-0.8.15.tgz", - "integrity": "sha1-TwaV/fzBbDfAsH+s7Iy0xAkWhbk=", + "version": "0.8.16", + "resolved": "https://registry.npmjs.org/fbjs/-/fbjs-0.8.16.tgz", + "integrity": "sha1-XmdDL1UNxBtXK/VYR7ispk5TN9s=", "requires": { "core-js": "1.2.7", "isomorphic-fetch": "2.2.1", @@ -5331,7 +5346,7 @@ "integrity": "sha1-w5KZDD5oR4PYOLjISkXYoEhFg2E=", "dev": true, "requires": { - "flat-cache": "1.2.2", + "flat-cache": "1.3.0", "object-assign": "4.1.1" } }, @@ -5501,9 +5516,9 @@ "dev": true }, "flat-cache": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-1.2.2.tgz", - "integrity": "sha1-+oZxTnLCHbiGAXYezy9VXRq8a5Y=", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-1.3.0.tgz", + "integrity": "sha1-0wMLMrOBVPTjt+nHCfSQ9++XxIE=", "dev": true, "requires": { "circular-json": "0.3.3", @@ -5626,13 +5641,15 @@ "dependencies": { "abbrev": { "version": "1.1.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.0.tgz", + "integrity": "sha1-0FVMIlZjbi9W58LlrRg/hZQo2B8=", "dev": true, "optional": true }, "ajv": { "version": "4.11.8", - "bundled": true, + "resolved": "https://registry.npmjs.org/ajv/-/ajv-4.11.8.tgz", + "integrity": "sha1-gv+wKynmYq5TvcIK8VlHcGc5xTY=", "dev": true, "optional": true, "requires": { @@ -5642,18 +5659,21 @@ }, "ansi-regex": { "version": "2.1.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", "dev": true }, "aproba": { "version": "1.1.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.1.1.tgz", + "integrity": "sha1-ldNgDwdxCqDpKYxyatXs8urLq6s=", "dev": true, "optional": true }, "are-we-there-yet": { "version": "1.1.4", - "bundled": true, + "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.4.tgz", + "integrity": "sha1-u13KOCu5TwXhUZQ3PRb9O6HKEQ0=", "dev": true, "optional": true, "requires": { @@ -5663,42 +5683,49 @@ }, "asn1": { "version": "0.2.3", - "bundled": true, + "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.3.tgz", + "integrity": "sha1-2sh4dxPJlmhJ/IGAd36+nB3fO4Y=", "dev": true, "optional": true }, "assert-plus": { "version": "0.2.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-0.2.0.tgz", + "integrity": "sha1-104bh+ev/A24qttwIfP+SBAasjQ=", "dev": true, "optional": true }, "asynckit": { "version": "0.4.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=", "dev": true, "optional": true }, "aws-sign2": { "version": "0.6.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.6.0.tgz", + "integrity": "sha1-FDQt0428yU0OW4fXY81jYSwOeU8=", "dev": true, "optional": true }, "aws4": { "version": "1.6.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.6.0.tgz", + "integrity": "sha1-g+9cqGCysy5KDe7e6MdxudtXRx4=", "dev": true, "optional": true }, "balanced-match": { "version": "0.4.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-0.4.2.tgz", + "integrity": "sha1-yz8+PHMtwPAe5wtAPzAuYddwmDg=", "dev": true }, "bcrypt-pbkdf": { "version": "1.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.1.tgz", + "integrity": "sha1-Y7xdy2EzG5K8Bf1SiVPDNGKgb40=", "dev": true, "optional": true, "requires": { @@ -5707,7 +5734,8 @@ }, "block-stream": { "version": "0.0.9", - "bundled": true, + "resolved": "https://registry.npmjs.org/block-stream/-/block-stream-0.0.9.tgz", + "integrity": "sha1-E+v+d4oDIFz+A3UUgeu0szAMEmo=", "dev": true, "requires": { "inherits": "2.0.3" @@ -5715,7 +5743,8 @@ }, "boom": { "version": "2.10.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/boom/-/boom-2.10.1.tgz", + "integrity": "sha1-OciRjO/1eZ+D+UkqhI9iWt0Mdm8=", "dev": true, "requires": { "hoek": "2.16.3" @@ -5723,7 +5752,8 @@ }, "brace-expansion": { "version": "1.1.7", - "bundled": true, + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.7.tgz", + "integrity": "sha1-Pv/DxQ4ABTH7cg6v+A8K6O8jz1k=", "dev": true, "requires": { "balanced-match": "0.4.2", @@ -5732,29 +5762,34 @@ }, "buffer-shims": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/buffer-shims/-/buffer-shims-1.0.0.tgz", + "integrity": "sha1-mXjOMXOIxkmth5MCjDR37wRKi1E=", "dev": true }, "caseless": { "version": "0.12.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", + "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=", "dev": true, "optional": true }, "co": { "version": "4.6.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", + "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=", "dev": true, "optional": true }, "code-point-at": { "version": "1.1.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", + "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=", "dev": true }, "combined-stream": { "version": "1.0.5", - "bundled": true, + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.5.tgz", + "integrity": "sha1-k4NwpXtKUd6ix3wV1cX9+JUWQAk=", "dev": true, "requires": { "delayed-stream": "1.0.0" @@ -5762,22 +5797,26 @@ }, "concat-map": { "version": "0.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", "dev": true }, "console-control-strings": { "version": "1.1.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", + "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=", "dev": true }, "core-util-is": { "version": "1.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", "dev": true }, "cryptiles": { "version": "2.0.5", - "bundled": true, + "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-2.0.5.tgz", + "integrity": "sha1-O9/s3GCBR8HGcgL6KR59ylnqo7g=", "dev": true, "optional": true, "requires": { @@ -5786,7 +5825,8 @@ }, "dashdash": { "version": "1.14.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", + "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", "dev": true, "optional": true, "requires": { @@ -5795,7 +5835,8 @@ "dependencies": { "assert-plus": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", "dev": true, "optional": true } @@ -5803,7 +5844,8 @@ }, "debug": { "version": "2.6.8", - "bundled": true, + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.8.tgz", + "integrity": "sha1-5zFTHKLt4n0YgiJCfaF4IdaP9Pw=", "dev": true, "optional": true, "requires": { @@ -5812,24 +5854,28 @@ }, "deep-extend": { "version": "0.4.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.4.2.tgz", + "integrity": "sha1-SLaZwn4zS/ifEIkr5DL25MfTSn8=", "dev": true, "optional": true }, "delayed-stream": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", "dev": true }, "delegates": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", + "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=", "dev": true, "optional": true }, "ecc-jsbn": { "version": "0.1.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz", + "integrity": "sha1-D8c6ntXw1Tw4GTOYUj735UN3dQU=", "dev": true, "optional": true, "requires": { @@ -5838,24 +5884,28 @@ }, "extend": { "version": "3.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.1.tgz", + "integrity": "sha1-p1Xqe8Gt/MWjHOfnYtuq3F5jZEQ=", "dev": true, "optional": true }, "extsprintf": { "version": "1.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.0.2.tgz", + "integrity": "sha1-4QgOBljjALBilJkMxw4VAiNf1VA=", "dev": true }, "forever-agent": { "version": "0.6.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", + "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=", "dev": true, "optional": true }, "form-data": { "version": "2.1.4", - "bundled": true, + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.1.4.tgz", + "integrity": "sha1-M8GDrPGTJ27KqYFDpp6Uv+4XUNE=", "dev": true, "optional": true, "requires": { @@ -5866,12 +5916,14 @@ }, "fs.realpath": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", "dev": true }, "fstream": { "version": "1.0.11", - "bundled": true, + "resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.11.tgz", + "integrity": "sha1-XB+x8RdHcRTwYyoOtLcbPLD9MXE=", "dev": true, "requires": { "graceful-fs": "4.1.11", @@ -5882,7 +5934,8 @@ }, "fstream-ignore": { "version": "1.0.5", - "bundled": true, + "resolved": "https://registry.npmjs.org/fstream-ignore/-/fstream-ignore-1.0.5.tgz", + "integrity": "sha1-nDHa40dnAY/h0kmyTa2mfQktoQU=", "dev": true, "optional": true, "requires": { @@ -5893,7 +5946,8 @@ }, "gauge": { "version": "2.7.4", - "bundled": true, + "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz", + "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=", "dev": true, "optional": true, "requires": { @@ -5909,7 +5963,8 @@ }, "getpass": { "version": "0.1.7", - "bundled": true, + "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", + "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", "dev": true, "optional": true, "requires": { @@ -5918,7 +5973,8 @@ "dependencies": { "assert-plus": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", "dev": true, "optional": true } @@ -5926,7 +5982,8 @@ }, "glob": { "version": "7.1.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", + "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", "dev": true, "requires": { "fs.realpath": "1.0.0", @@ -5939,18 +5996,21 @@ }, "graceful-fs": { "version": "4.1.11", - "bundled": true, + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", + "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=", "dev": true }, "har-schema": { "version": "1.0.5", - "bundled": true, + "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-1.0.5.tgz", + "integrity": "sha1-0mMTX0MwfALGAq/I/pWXDAFRNp4=", "dev": true, "optional": true }, "har-validator": { "version": "4.2.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-4.2.1.tgz", + "integrity": "sha1-M0gdDxu/9gDdID11gSpqX7oALio=", "dev": true, "optional": true, "requires": { @@ -5960,13 +6020,15 @@ }, "has-unicode": { "version": "2.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", + "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=", "dev": true, "optional": true }, "hawk": { "version": "3.1.3", - "bundled": true, + "resolved": "https://registry.npmjs.org/hawk/-/hawk-3.1.3.tgz", + "integrity": "sha1-B4REvXwWQLD+VA0sm3PVlnjo4cQ=", "dev": true, "optional": true, "requires": { @@ -5978,12 +6040,14 @@ }, "hoek": { "version": "2.16.3", - "bundled": true, + "resolved": "https://registry.npmjs.org/hoek/-/hoek-2.16.3.tgz", + "integrity": "sha1-ILt0A9POo5jpHcRxCo/xuCdKJe0=", "dev": true }, "http-signature": { "version": "1.1.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.1.1.tgz", + "integrity": "sha1-33LiZwZs0Kxn+3at+OE0qPvPkb8=", "dev": true, "optional": true, "requires": { @@ -5994,7 +6058,8 @@ }, "inflight": { "version": "1.0.6", - "bundled": true, + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", "dev": true, "requires": { "once": "1.4.0", @@ -6003,18 +6068,21 @@ }, "inherits": { "version": "2.0.3", - "bundled": true, + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", "dev": true }, "ini": { "version": "1.3.4", - "bundled": true, + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.4.tgz", + "integrity": "sha1-BTfLedr1m1mhpRff9wbIbsA5Fi4=", "dev": true, "optional": true }, "is-fullwidth-code-point": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", + "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", "dev": true, "requires": { "number-is-nan": "1.0.1" @@ -6022,24 +6090,28 @@ }, "is-typedarray": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", "dev": true, "optional": true }, "isarray": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", "dev": true }, "isstream": { "version": "0.1.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", + "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=", "dev": true, "optional": true }, "jodid25519": { "version": "1.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/jodid25519/-/jodid25519-1.0.2.tgz", + "integrity": "sha1-BtSRIlUJNBlHfUJWM2BuDpB4KWc=", "dev": true, "optional": true, "requires": { @@ -6048,19 +6120,22 @@ }, "jsbn": { "version": "0.1.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", + "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", "dev": true, "optional": true }, "json-schema": { "version": "0.2.3", - "bundled": true, + "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", + "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=", "dev": true, "optional": true }, "json-stable-stringify": { "version": "1.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz", + "integrity": "sha1-mnWdOcXy/1A/1TAGRu1EX4jE+a8=", "dev": true, "optional": true, "requires": { @@ -6069,19 +6144,22 @@ }, "json-stringify-safe": { "version": "5.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", + "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=", "dev": true, "optional": true }, "jsonify": { "version": "0.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz", + "integrity": "sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM=", "dev": true, "optional": true }, "jsprim": { "version": "1.4.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.0.tgz", + "integrity": "sha1-o7h+QCmNjDgFUtjMdiigu5WiKRg=", "dev": true, "optional": true, "requires": { @@ -6093,7 +6171,8 @@ "dependencies": { "assert-plus": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", "dev": true, "optional": true } @@ -6101,12 +6180,14 @@ }, "mime-db": { "version": "1.27.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.27.0.tgz", + "integrity": "sha1-gg9XIpa70g7CXtVeW13oaeVDbrE=", "dev": true }, "mime-types": { "version": "2.1.15", - "bundled": true, + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.15.tgz", + "integrity": "sha1-pOv1BkCUVpI3uM9wBGd20J/JKu0=", "dev": true, "requires": { "mime-db": "1.27.0" @@ -6114,7 +6195,8 @@ }, "minimatch": { "version": "3.0.4", - "bundled": true, + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", "dev": true, "requires": { "brace-expansion": "1.1.7" @@ -6122,12 +6204,14 @@ }, "minimist": { "version": "0.0.8", - "bundled": true, + "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", + "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", "dev": true }, "mkdirp": { "version": "0.5.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", + "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", "dev": true, "requires": { "minimist": "0.0.8" @@ -6135,13 +6219,15 @@ }, "ms": { "version": "2.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", "dev": true, "optional": true }, "node-pre-gyp": { "version": "0.6.36", - "bundled": true, + "resolved": "https://registry.npmjs.org/node-pre-gyp/-/node-pre-gyp-0.6.36.tgz", + "integrity": "sha1-22BBEst04NR3VU6bUFsXq936t4Y=", "dev": true, "optional": true, "requires": { @@ -6158,7 +6244,8 @@ }, "nopt": { "version": "4.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/nopt/-/nopt-4.0.1.tgz", + "integrity": "sha1-0NRoWv1UFRk8jHUFYC0NF81kR00=", "dev": true, "optional": true, "requires": { @@ -6168,7 +6255,8 @@ }, "npmlog": { "version": "4.1.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.0.tgz", + "integrity": "sha512-ocolIkZYZt8UveuiDS0yAkkIjid1o7lPG8cYm05yNYzBn8ykQtaiPMEGp8fY9tKdDgm8okpdKzkvu1y9hUYugA==", "dev": true, "optional": true, "requires": { @@ -6180,24 +6268,28 @@ }, "number-is-nan": { "version": "1.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", + "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", "dev": true }, "oauth-sign": { "version": "0.8.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.8.2.tgz", + "integrity": "sha1-Rqarfwrq2N6unsBWV4C31O/rnUM=", "dev": true, "optional": true }, "object-assign": { "version": "4.1.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", "dev": true, "optional": true }, "once": { "version": "1.4.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", "dev": true, "requires": { "wrappy": "1.0.2" @@ -6205,19 +6297,22 @@ }, "os-homedir": { "version": "1.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", + "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=", "dev": true, "optional": true }, "os-tmpdir": { "version": "1.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", + "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", "dev": true, "optional": true }, "osenv": { "version": "0.1.4", - "bundled": true, + "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.4.tgz", + "integrity": "sha1-Qv5tWVPfBsgGS+bxdsPQWqqjRkQ=", "dev": true, "optional": true, "requires": { @@ -6227,35 +6322,41 @@ }, "path-is-absolute": { "version": "1.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", "dev": true }, "performance-now": { "version": "0.2.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-0.2.0.tgz", + "integrity": "sha1-M+8wxcd9TqIcWlOGnZG1bY8lVeU=", "dev": true, "optional": true }, "process-nextick-args": { "version": "1.0.7", - "bundled": true, + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz", + "integrity": "sha1-FQ4gt1ZZCtP5EJPyWk8q2L/zC6M=", "dev": true }, "punycode": { "version": "1.4.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", + "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", "dev": true, "optional": true }, "qs": { "version": "6.4.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/qs/-/qs-6.4.0.tgz", + "integrity": "sha1-E+JtKK1rD/qpExLNO/cI7TUecjM=", "dev": true, "optional": true }, "rc": { "version": "1.2.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.1.tgz", + "integrity": "sha1-LgPo5C7kULjLPc5lvhv4l04d/ZU=", "dev": true, "optional": true, "requires": { @@ -6267,7 +6368,8 @@ "dependencies": { "minimist": { "version": "1.2.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", + "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", "dev": true, "optional": true } @@ -6275,7 +6377,8 @@ }, "readable-stream": { "version": "2.2.9", - "bundled": true, + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.2.9.tgz", + "integrity": "sha1-z3jsb0ptHrQ9JkiMrJfwQudLf8g=", "dev": true, "requires": { "buffer-shims": "1.0.0", @@ -6289,7 +6392,8 @@ }, "request": { "version": "2.81.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/request/-/request-2.81.0.tgz", + "integrity": "sha1-xpKJRqDgbF+Nb4qTM0af/aRimKA=", "dev": true, "optional": true, "requires": { @@ -6319,7 +6423,8 @@ }, "rimraf": { "version": "2.6.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.1.tgz", + "integrity": "sha1-wjOOxkPfeht/5cVPqG9XQopV8z0=", "dev": true, "requires": { "glob": "7.1.2" @@ -6327,30 +6432,35 @@ }, "safe-buffer": { "version": "5.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.0.1.tgz", + "integrity": "sha1-0mPKVGls2KMGtcplUekt5XkY++c=", "dev": true }, "semver": { "version": "5.3.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/semver/-/semver-5.3.0.tgz", + "integrity": "sha1-myzl094C0XxgEq0yaqa00M9U+U8=", "dev": true, "optional": true }, "set-blocking": { "version": "2.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", + "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", "dev": true, "optional": true }, "signal-exit": { "version": "3.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", + "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=", "dev": true, "optional": true }, "sntp": { "version": "1.0.9", - "bundled": true, + "resolved": "https://registry.npmjs.org/sntp/-/sntp-1.0.9.tgz", + "integrity": "sha1-ZUEYTMkK7qbG57NeJlkIJEPGYZg=", "dev": true, "optional": true, "requires": { @@ -6359,7 +6469,8 @@ }, "sshpk": { "version": "1.13.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.13.0.tgz", + "integrity": "sha1-/yo+T9BEl1Vf7Zezmg/YL6+zozw=", "dev": true, "optional": true, "requires": { @@ -6376,7 +6487,8 @@ "dependencies": { "assert-plus": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", "dev": true, "optional": true } @@ -6384,7 +6496,8 @@ }, "string_decoder": { "version": "1.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.1.tgz", + "integrity": "sha1-YuIA8DmVWmgQ2N8KM//A8BNmLZg=", "dev": true, "requires": { "safe-buffer": "5.0.1" @@ -6392,7 +6505,8 @@ }, "string-width": { "version": "1.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", "dev": true, "requires": { "code-point-at": "1.1.0", @@ -6402,13 +6516,15 @@ }, "stringstream": { "version": "0.0.5", - "bundled": true, + "resolved": "https://registry.npmjs.org/stringstream/-/stringstream-0.0.5.tgz", + "integrity": "sha1-TkhM1N5aC7vuGORjB3EKioFiGHg=", "dev": true, "optional": true }, "strip-ansi": { "version": "3.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", "dev": true, "requires": { "ansi-regex": "2.1.1" @@ -6416,13 +6532,15 @@ }, "strip-json-comments": { "version": "2.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", + "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", "dev": true, "optional": true }, "tar": { "version": "2.2.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/tar/-/tar-2.2.1.tgz", + "integrity": "sha1-jk0qJWwOIYXGsYrWlK7JaLg8sdE=", "dev": true, "requires": { "block-stream": "0.0.9", @@ -6432,7 +6550,8 @@ }, "tar-pack": { "version": "3.4.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/tar-pack/-/tar-pack-3.4.0.tgz", + "integrity": "sha1-I74tf2cagzk3bL2wuP4/3r8xeYQ=", "dev": true, "optional": true, "requires": { @@ -6448,7 +6567,8 @@ }, "tough-cookie": { "version": "2.3.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.2.tgz", + "integrity": "sha1-8IH3bkyFcg5sN6X6ztc3FQ2EByo=", "dev": true, "optional": true, "requires": { @@ -6457,7 +6577,8 @@ }, "tunnel-agent": { "version": "0.6.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", + "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", "dev": true, "optional": true, "requires": { @@ -6466,30 +6587,35 @@ }, "tweetnacl": { "version": "0.14.5", - "bundled": true, + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", + "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", "dev": true, "optional": true }, "uid-number": { "version": "0.0.6", - "bundled": true, + "resolved": "https://registry.npmjs.org/uid-number/-/uid-number-0.0.6.tgz", + "integrity": "sha1-DqEOgDXo61uOREnwbaHHMGY7qoE=", "dev": true, "optional": true }, "util-deprecate": { "version": "1.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", "dev": true }, "uuid": { "version": "3.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.0.1.tgz", + "integrity": "sha1-ZUS7ot/ajBzxfmKaOjBeK7H+5sE=", "dev": true, "optional": true }, "verror": { "version": "1.3.6", - "bundled": true, + "resolved": "https://registry.npmjs.org/verror/-/verror-1.3.6.tgz", + "integrity": "sha1-z/XfEpRtKX0rqu+qJoniW+AcAFw=", "dev": true, "optional": true, "requires": { @@ -6498,7 +6624,8 @@ }, "wide-align": { "version": "1.1.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.2.tgz", + "integrity": "sha512-ijDLlyQ7s6x1JgCLur53osjm/UXUYD9+0PbYKrBsYisYXzCxN+HC3mYDNy/dWdmf3AwqwU3CXwDCvsNgGK1S0w==", "dev": true, "optional": true, "requires": { @@ -6507,7 +6634,8 @@ }, "wrappy": { "version": "1.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", "dev": true } } @@ -7272,7 +7400,7 @@ "loader-utils": "0.2.16", "lodash": "4.17.4", "pretty-error": "2.1.1", - "toposort": "1.0.3" + "toposort": "1.0.4" }, "dependencies": { "bluebird": { @@ -9166,8 +9294,8 @@ "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-addons-create-fragment": "15.6.2", + "react-addons-transition-group": "15.6.2", "react-event-listener": "0.4.5", "recompose": "0.20.2", "simple-assign": "0.1.0", @@ -9307,9 +9435,9 @@ } }, "miller-rabin": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.0.tgz", - "integrity": "sha1-SmL7HUKTPAVYOYL0xxb2+55sbT0=", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz", + "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==", "dev": true, "requires": { "bn.js": "4.11.8", @@ -9978,14 +10106,14 @@ "integrity": "sha1-xzluhPMzPG8L/coRO8sAG1zKhaY=", "requires": { "@parity/parity.js": "1.8.7", - "bignumber.js": "4.0.4", + "bignumber.js": "4.1.0", "oo7": "0.5.6" }, "dependencies": { "bignumber.js": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-4.0.4.tgz", - "integrity": "sha512-LDXpJKVzEx2/OqNbG9mXBNvHuiRL4PzHCGfnANHMJ+fv68Ads3exDVJeGDJws+AoNEuca93bU3q+S0woeUaCdg==" + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-4.1.0.tgz", + "integrity": "sha512-eJzYkFYy9L4JzXsbymsFn3p54D+llV27oTQ+ziJG7WFRheJcNZilgVXMG0LoZtlQSKBsJdWtLFqOD0u+U0jZKA==" }, "oo7": { "version": "0.5.6", @@ -10188,7 +10316,7 @@ "resolved": "https://registry.npmjs.org/parity-reactive-ui/-/parity-reactive-ui-0.4.5.tgz", "integrity": "sha1-ravl0YV24B9iFSZP9LfbBUktnr8=", "requires": { - "bignumber.js": "4.0.4", + "bignumber.js": "4.1.0", "blockies": "0.0.2", "oo7": "0.5.3", "oo7-parity": "0.6.8", @@ -10201,9 +10329,9 @@ }, "dependencies": { "bignumber.js": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-4.0.4.tgz", - "integrity": "sha512-LDXpJKVzEx2/OqNbG9mXBNvHuiRL4PzHCGfnANHMJ+fv68Ads3exDVJeGDJws+AoNEuca93bU3q+S0woeUaCdg==" + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-4.1.0.tgz", + "integrity": "sha512-eJzYkFYy9L4JzXsbymsFn3p54D+llV27oTQ+ziJG7WFRheJcNZilgVXMG0LoZtlQSKBsJdWtLFqOD0u+U0jZKA==" }, "semantic-ui-react": { "version": "0.68.5", @@ -10222,7 +10350,7 @@ "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.5.8.tgz", "integrity": "sha1-a3suFBCDvjjIWVqlH8VXdccZk5Q=", "requires": { - "fbjs": "0.8.15" + "fbjs": "0.8.16" } } } @@ -10798,8 +10926,8 @@ "integrity": "sha1-C9dnBCWL6CmyOYu1Dkti0aFmsLk=", "dev": true, "requires": { - "caniuse-db": "1.0.30000738", - "electron-to-chromium": "1.3.22" + "caniuse-db": "1.0.30000740", + "electron-to-chromium": "1.3.24" } } } @@ -11468,7 +11596,7 @@ "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.5.10.tgz", "integrity": "sha1-J5ffwxJhguOpXj37suiT3ddFYVQ=", "requires": { - "fbjs": "0.8.15", + "fbjs": "0.8.16", "loose-envify": "1.3.1" } }, @@ -11669,8 +11797,8 @@ "resolved": "https://registry.npmjs.org/react/-/react-15.6.1.tgz", "integrity": "sha1-uqhDTsZ4C96ZfNw4C3nNM7ljk98=", "requires": { - "create-react-class": "15.6.0", - "fbjs": "0.8.15", + "create-react-class": "15.6.2", + "fbjs": "0.8.16", "loose-envify": "1.3.1", "object-assign": "4.1.1", "prop-types": "15.5.10" @@ -11696,11 +11824,11 @@ } }, "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=", + "version": "15.6.2", + "resolved": "https://registry.npmjs.org/react-addons-create-fragment/-/react-addons-create-fragment-15.6.2.tgz", + "integrity": "sha1-o5TefCx77Na1R1uhuXrEcs58dPg=", "requires": { - "fbjs": "0.8.15", + "fbjs": "0.8.16", "loose-envify": "1.3.1", "object-assign": "4.1.1" } @@ -11711,7 +11839,7 @@ "integrity": "sha1-EQvc9cRZxPd8uF7WNLzTOXU2ODs=", "dev": true, "requires": { - "fbjs": "0.8.15", + "fbjs": "0.8.16", "object-assign": "4.1.1" } }, @@ -11721,14 +11849,14 @@ "integrity": "sha1-k7yqcY/K5zYNQuj7HAl1bMNjAqI=", "dev": true, "requires": { - "fbjs": "0.8.15", + "fbjs": "0.8.16", "object-assign": "4.1.1" } }, "react-addons-transition-group": { - "version": "15.6.0", - "resolved": "https://registry.npmjs.org/react-addons-transition-group/-/react-addons-transition-group-15.6.0.tgz", - "integrity": "sha1-DyILn5WX2zqAqI29b+gF/GRM4hw=", + "version": "15.6.2", + "resolved": "https://registry.npmjs.org/react-addons-transition-group/-/react-addons-transition-group-15.6.2.tgz", + "integrity": "sha1-i668Kukczb8kX+Kcn9PTb4tHGSM=", "requires": { "react-transition-group": "1.2.0" } @@ -11755,7 +11883,7 @@ "resolved": "https://registry.npmjs.org/react-datetime/-/react-datetime-2.8.10.tgz", "integrity": "sha1-BtQxe3c0MQ4OgQlVVSZlYSg0YTI=", "requires": { - "create-react-class": "15.6.0", + "create-react-class": "15.6.2", "object-assign": "3.0.0", "prop-types": "15.5.10", "react-onclickoutside": "5.11.1" @@ -11779,7 +11907,7 @@ "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-15.6.1.tgz", "integrity": "sha1-LLDtQZEDjlPCCes6eaI+Kkz5lHA=", "requires": { - "fbjs": "0.8.15", + "fbjs": "0.8.16", "loose-envify": "1.3.1", "object-assign": "4.1.1", "prop-types": "15.5.10" @@ -11812,7 +11940,7 @@ "integrity": "sha1-4+iVoJcM8U7o+JAROvaBl6vz0LE=", "requires": { "babel-runtime": "6.26.0", - "fbjs": "0.8.15", + "fbjs": "0.8.16", "prop-types": "15.5.10", "warning": "3.0.0" } @@ -11878,7 +12006,7 @@ "resolved": "https://registry.npmjs.org/react-onclickoutside/-/react-onclickoutside-5.11.1.tgz", "integrity": "sha1-ADFOUlZ89V+rqUyrus0RlhkHBiM=", "requires": { - "create-react-class": "15.6.0" + "create-react-class": "15.6.2" } }, "react-portal": { @@ -11940,7 +12068,7 @@ "requires": { "lodash": "4.13.1", "raf": "3.3.2", - "react-addons-transition-group": "15.6.0" + "react-addons-transition-group": "15.6.2" }, "dependencies": { "lodash": { @@ -11955,7 +12083,7 @@ "resolved": "https://registry.npmjs.org/react-tap-event-plugin/-/react-tap-event-plugin-2.0.1.tgz", "integrity": "sha1-MWvrO8ZVbinshppyk+icgmqQdNI=", "requires": { - "fbjs": "0.8.15" + "fbjs": "0.8.16" } }, "react-tooltip": { @@ -12130,7 +12258,7 @@ "integrity": "sha1-ET1qx+KcpmTP/+wWtoHd3fFSULw=", "requires": { "change-emitter": "0.1.6", - "fbjs": "0.8.15", + "fbjs": "0.8.16", "hoist-non-react-statics": "1.2.0", "symbol-observable": "0.2.4" }, @@ -12564,7 +12692,7 @@ "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-0.3.0.tgz", "integrity": "sha1-9YdyIs4+kx7a4DnxfrNxbnE3+M8=", "requires": { - "ajv": "5.2.2" + "ajv": "5.2.3" } }, "scryptsy": { @@ -12652,7 +12780,7 @@ "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.5.8.tgz", "integrity": "sha1-a3suFBCDvjjIWVqlH8VXdccZk5Q=", "requires": { - "fbjs": "0.8.15" + "fbjs": "0.8.16" } } } @@ -12729,29 +12857,20 @@ "integrity": "sha1-ULZ51WNc34Rme9yOWa9OW4HV9go=" }, "serve-index": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/serve-index/-/serve-index-1.9.0.tgz", - "integrity": "sha1-0rKA/FYNYW7oG0i/D6gqvtJIXOc=", + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/serve-index/-/serve-index-1.9.1.tgz", + "integrity": "sha1-03aNabHn2C5c4FD/9bRTvqEqkjk=", "dev": true, "requires": { "accepts": "1.3.4", "batch": "0.6.1", - "debug": "2.6.8", + "debug": "2.6.9", "escape-html": "1.0.3", "http-errors": "1.6.2", "mime-types": "2.1.17", "parseurl": "1.3.2" }, "dependencies": { - "debug": { - "version": "2.6.8", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.8.tgz", - "integrity": "sha1-5zFTHKLt4n0YgiJCfaF4IdaP9Pw=", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, "http-errors": { "version": "1.6.2", "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.2.tgz", @@ -13117,9 +13236,9 @@ } }, "specificity": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/specificity/-/specificity-0.3.1.tgz", - "integrity": "sha1-8bBoQkzjF64HR42V3jwhz4Xo1Wc=", + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/specificity/-/specificity-0.3.2.tgz", + "integrity": "sha512-Nc/QN/A425Qog7j9aHmwOrlwX2e7pNI47ciwxwy4jOlvbbMHkNNJchit+FX+UjF3IAdiaaV5BKeWuDUnws6G1A==", "dev": true }, "speedometer": { @@ -13481,8 +13600,8 @@ "integrity": "sha1-C9dnBCWL6CmyOYu1Dkti0aFmsLk=", "dev": true, "requires": { - "caniuse-db": "1.0.30000738", - "electron-to-chromium": "1.3.22" + "caniuse-db": "1.0.30000740", + "electron-to-chromium": "1.3.24" } }, "minimist": { @@ -13543,24 +13662,20 @@ "postcss-selector-parser": "2.2.3", "postcss-value-parser": "3.3.0", "resolve-from": "3.0.0", - "specificity": "0.3.1", + "specificity": "0.3.2", "string-width": "2.1.1", "style-search": "0.1.0", "stylehacks": "2.3.2", "sugarss": "0.2.0", "svg-tags": "1.0.0", - "table": "4.0.1" + "table": "4.0.2" }, "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" - } + "ajv-keywords": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-2.1.0.tgz", + "integrity": "sha1-opbhf3v658HOT34N5T0pyzIWLfA=", + "dev": true }, "ansi-regex": { "version": "3.0.0", @@ -13568,6 +13683,15 @@ "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", "dev": true }, + "ansi-styles": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz", + "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==", + "dev": true, + "requires": { + "color-convert": "1.9.0" + } + }, "balanced-match": { "version": "0.4.2", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-0.4.2.tgz", @@ -13593,6 +13717,12 @@ "pinkie-promise": "2.0.1" } }, + "has-flag": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz", + "integrity": "sha1-6CB68cx7MNRGzHC3NLXovhj4jVE=", + "dev": true + }, "is-fullwidth-code-point": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", @@ -13605,6 +13735,15 @@ "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=", "dev": true }, + "slice-ansi": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-1.0.0.tgz", + "integrity": "sha512-POqxBK6Lb3q6s047D/XsDVNPnF9Dl8JSaqe9h9lURl0OdNqy/ujDrOiIHtsqXMGbWWTIomRzAMaTyawAU//Reg==", + "dev": true, + "requires": { + "is-fullwidth-code-point": "2.0.0" + } + }, "string-width": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", @@ -13624,18 +13763,40 @@ "ansi-regex": "3.0.0" } }, - "table": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/table/-/table-4.0.1.tgz", - "integrity": "sha1-qBFsEz+sLGH0pCCrbN9cTWHw5DU=", + "supports-color": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.4.0.tgz", + "integrity": "sha512-rKC3+DyXWgK0ZLKwmRsrkyHVZAjNkfzeehuFWdGGcqGDTZFH73+RH6S/RDAAxl9GusSjZSUWYLmT9N5pzXFOXQ==", "dev": true, "requires": { - "ajv": "4.11.8", - "ajv-keywords": "1.5.1", - "chalk": "1.1.3", + "has-flag": "2.0.0" + } + }, + "table": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/table/-/table-4.0.2.tgz", + "integrity": "sha512-UUkEAPdSGxtRpiV9ozJ5cMTtYiqz7Ni1OGqLXRCynrvzdtR1p+cfOWe2RJLwvUG8hNanaSRjecIqwOjqeatDsA==", + "dev": true, + "requires": { + "ajv": "5.2.3", + "ajv-keywords": "2.1.0", + "chalk": "2.1.0", "lodash": "4.17.4", - "slice-ansi": "0.0.4", + "slice-ansi": "1.0.0", "string-width": "2.1.1" + }, + "dependencies": { + "chalk": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.1.0.tgz", + "integrity": "sha512-LUHGS/dge4ujbXMJrnihYMcL4AoOweGnw9Tp3kQuqy1Kx5c1qKjqvMJZ6nVJPMWJtKCTN72ZogH3oeSO9g9rXQ==", + "dev": true, + "requires": { + "ansi-styles": "3.2.0", + "escape-string-regexp": "1.0.5", + "supports-color": "4.4.0" + } + } } } } @@ -14002,9 +14163,9 @@ "integrity": "sha1-bkWxJj8gF/oKzH2J14sVuL932jI=" }, "toposort": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/toposort/-/toposort-1.0.3.tgz", - "integrity": "sha1-8CzYp0vYvi/A6YYRw7rLlaFxhpw=", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/toposort/-/toposort-1.0.4.tgz", + "integrity": "sha1-qGEHaQy+6MrkOzSdL2AWJQCSTfw=", "dev": true }, "tough-cookie": { @@ -14653,7 +14814,7 @@ "requires": { "acorn": "5.1.2", "acorn-dynamic-import": "2.0.2", - "ajv": "5.2.2", + "ajv": "5.2.3", "ajv-keywords": "2.1.0", "async": "2.5.0", "enhanced-resolve": "3.4.1", @@ -14900,7 +15061,7 @@ "ansi-html": "0.0.7", "bonjour": "3.5.0", "chokidar": "1.7.0", - "compression": "1.7.0", + "compression": "1.7.1", "connect-history-api-fallback": "1.3.0", "del": "3.0.0", "express": "4.14.1", @@ -14911,7 +15072,7 @@ "opn": "4.0.2", "portfinder": "1.0.13", "selfsigned": "1.10.1", - "serve-index": "1.9.0", + "serve-index": "1.9.1", "sockjs": "0.3.18", "sockjs-client": "1.1.4", "spdy": "3.4.7", diff --git a/js/package.json b/js/package.json index f946a2815..95167d604 100644 --- a/js/package.json +++ b/js/package.json @@ -147,6 +147,10 @@ "@parity/shapeshift": "^2", "@parity/shared": "^2", "@parity/ui": "^2", + "@parity/plugin-signer-account": "paritytech/plugin-signer-account", + "@parity/plugin-signer-default": "paritytech/plugin-signer-default", + "@parity/plugin-signer-hardware": "paritytech/plugin-signer-hardware", + "@parity/plugin-signer-qr": "paritytech/plugin-signer-qr", "@parity/dapp-account": "paritytech/dapp-account", "@parity/dapp-accounts": "paritytech/dapp-accounts", "@parity/dapp-address": "paritytech/dapp-address", diff --git a/js/src/DappRequests/store.js b/js/src/DappRequests/store.js index 227dba996..872423e59 100644 --- a/js/src/DappRequests/store.js +++ b/js/src/DappRequests/store.js @@ -170,6 +170,8 @@ export default class Store { } this.middleware.push(middleware); + + return true; } hasValidToken = (method, appId, token) => { diff --git a/js/src/ShellExtend/api.js b/js/src/ShellExtend/api.js index 389981754..827f5db1f 100644 --- a/js/src/ShellExtend/api.js +++ b/js/src/ShellExtend/api.js @@ -19,21 +19,23 @@ import SignerPluginStore from '../Signer/pluginStore'; import StatusPluginStore from '../Status/pluginStore'; function injectInterceptorPlugin (middleware) { - InterceptorStore.get().addMiddleware(middleware); - - return true; + return InterceptorStore.get().addMiddleware(middleware); } -function injectSignerPlugin (component) { - SignerPluginStore.get().addComponent(component); +function injectSignerPlugin (component, isHandler) { + let isDefault; - return true; + try { + isDefault = isHandler(null, null, null) || false; + } catch (error) { + isDefault = false; + } + + return SignerPluginStore.get().addComponent(component, isHandler, isDefault); } function injectStatusPlugin (component) { - StatusPluginStore.get().addComponent(component); - - return true; + return StatusPluginStore.get().addComponent(component); } export function extendShell (options) { @@ -42,7 +44,7 @@ export function extendShell (options) { return injectInterceptorPlugin(options.middleware); case 'signer': - return injectSignerPlugin(options.component); + return injectSignerPlugin(options.component, options.isHandler); case 'status': return injectStatusPlugin(options.component); diff --git a/js/src/Signer/Embedded/embedded.css b/js/src/Signer/Embedded/embedded.css index 9e103c34c..0739795d5 100644 --- a/js/src/Signer/Embedded/embedded.css +++ b/js/src/Signer/Embedded/embedded.css @@ -21,16 +21,6 @@ padding: 1em 0; } -.none { - color: #aaa; -} - -.request { - &:nth-child(even) { - background: rgba(255, 255, 255, 0.04); - } -} - .signer { box-sizing: border-box; padding: 0; diff --git a/js/src/Signer/Embedded/embedded.js b/js/src/Signer/Embedded/embedded.js index bd390e475..9c465c0c7 100644 --- a/js/src/Signer/Embedded/embedded.js +++ b/js/src/Signer/Embedded/embedded.js @@ -14,23 +14,24 @@ // You should have received a copy of the GNU General Public License // along with Parity. If not, see . -import BigNumber from 'bignumber.js'; import React, { Component } from 'react'; import PropTypes from 'prop-types'; -import { FormattedMessage } from 'react-intl'; import { connect } from 'react-redux'; import { bindActionCreators } from 'redux'; import { observer } from 'mobx-react'; import * as RequestsActions from '@parity/shared/redux/providers/signerActions'; import Container from '@parity/ui/Container'; -import RequestPending from '@parity/ui/Signer/RequestPending'; -import Store from '@parity/shared/mobx/signerStore'; -import PluginStore from '../pluginStore'; +import PendingList from '../PendingList'; +import PendingStore from '../pendingStore'; import styles from './embedded.css'; +const CONTAINER_STYLE = { + background: 'transparent' +}; + @observer class Embedded extends Component { static contextTypes = { @@ -43,113 +44,41 @@ class Embedded extends Component { startConfirmRequest: PropTypes.func.isRequired, startRejectRequest: PropTypes.func.isRequired }).isRequired, - externalLink: PropTypes.string, gasLimit: PropTypes.object.isRequired, - netVersion: PropTypes.string.isRequired, - signer: PropTypes.shape({ - finished: PropTypes.array.isRequired, - pending: PropTypes.array.isRequired - }).isRequired + netVersion: PropTypes.string.isRequired }; - store = new Store(this.context.api, false, this.props.externalLink); - pluginStore = PluginStore.get(); + pendingStore = PendingStore.get(this.context.api); render () { + const { accounts, actions, gasLimit, netVersion } = this.props; + return ( - -
- { this.renderPendingRequests() } -
+ + ); } - - renderPendingRequests () { - const { signer } = this.props; - const { pending } = signer; - - if (!pending.length) { - return ( -
- -
- ); - } - - return ( -
- { - pending - .sort(this._sortRequests) - .map(this.renderPending) - } -
- ); - } - - findPluginHandler (data) { - const { accounts } = this.props; - const { payload } = data; - - let account; - - if (payload.decrypt) { - account = accounts[payload.decrypt.address]; - } else if (payload.sign) { - account = accounts[payload.sign.address]; - } else if (payload.sendTransaction) { - account = accounts[payload.sendTransaction.from]; - } else if (payload.signTransaction) { - account = accounts[payload.signTransaction.from]; - } - - return this.pluginStore.findHandler(payload, account); - } - - renderPending = (data, index) => { - const { actions, gasLimit, netVersion } = this.props; - const { date, id, isSending, payload, origin } = data; - - return ( - - ); - } - - _sortRequests = (a, b) => { - return new BigNumber(a.id).cmp(b.id); - } } function mapStateToProps (state) { const { gasLimit, netVersion } = state.nodeStatus; const { accounts } = state.personal; - const { actions, signer } = state; + const { actions } = state; return { accounts, actions, gasLimit, - netVersion, - signer + netVersion }; } diff --git a/js/src/Signer/Layout/layout.js b/js/src/Signer/Layout/layout.js new file mode 100644 index 000000000..1d5bd5640 --- /dev/null +++ b/js/src/Signer/Layout/layout.js @@ -0,0 +1,15 @@ +// 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 . diff --git a/js/src/Signer/PendingItem/index.js b/js/src/Signer/PendingItem/index.js new file mode 100644 index 000000000..fdbe8f1ac --- /dev/null +++ b/js/src/Signer/PendingItem/index.js @@ -0,0 +1,18 @@ +/* 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 . +*/ + +export default from './pendingItem'; diff --git a/js/src/Signer/PendingItem/pendingItem.css b/js/src/Signer/PendingItem/pendingItem.css new file mode 100644 index 000000000..367d01f4f --- /dev/null +++ b/js/src/Signer/PendingItem/pendingItem.css @@ -0,0 +1,22 @@ +/* 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 . +*/ + +.request { + &:nth-child(even) { + background: rgba(0, 0, 0, 0.04); + } +} diff --git a/js/src/Signer/PendingItem/pendingItem.js b/js/src/Signer/PendingItem/pendingItem.js new file mode 100644 index 000000000..52cc2ce29 --- /dev/null +++ b/js/src/Signer/PendingItem/pendingItem.js @@ -0,0 +1,82 @@ +// 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 . + +import React from 'react'; +import { FormattedMessage } from 'react-intl'; +import PropTypes from 'prop-types'; +import { observer } from 'mobx-react'; + +import SignerLayout from '@parity/ui/Signer/Layout'; + +import PluginStore from '../pluginStore'; +import styles from './pendingItem.css'; + +const pluginStore = PluginStore.get(); + +const DEFAULT_ORIGIN = { + type: 'unknown', + details: '' +}; + +function PendingItem ({ accounts, className, data: { date, id, isSending, payload, origin }, gasLimit, isFocussed, netVersion, onConfirm, onReject }) { + const Handler = pluginStore.findHandler(payload, accounts); + + if (!Handler) { + console.error('No transaction handler found for', payload); + + return ( + + + + ); + } + + const _onConfirm = (data) => onConfirm(Object.assign({ id, payload }, data)); + const _onReject = () => onReject(id); + + return ( + + ); +} + +PendingItem.propTypes = { + accounts: PropTypes.object.isRequired, + className: PropTypes.string, + data: PropTypes.object.isRequired, + gasLimit: PropTypes.object.isRequired, + netVersion: PropTypes.string.isRequired, + isFocussed: PropTypes.bool.isRequired, + onConfirm: PropTypes.func.isRequired, + onReject: PropTypes.func.isRequired +}; + +export default observer(PendingItem); diff --git a/js/src/Signer/PendingList/index.js b/js/src/Signer/PendingList/index.js new file mode 100644 index 000000000..5eb1a7741 --- /dev/null +++ b/js/src/Signer/PendingList/index.js @@ -0,0 +1,17 @@ +// 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 . + +export default from './pendingList'; diff --git a/js/src/Signer/PendingList/pendingList.css b/js/src/Signer/PendingList/pendingList.css new file mode 100644 index 000000000..2ba5f28c3 --- /dev/null +++ b/js/src/Signer/PendingList/pendingList.css @@ -0,0 +1,24 @@ +/* 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 . +*/ + +.list { + color: inherit; +} + +.none { + color: #aaa; +} diff --git a/js/src/Signer/PendingList/pendingList.js b/js/src/Signer/PendingList/pendingList.js new file mode 100644 index 000000000..f478accc0 --- /dev/null +++ b/js/src/Signer/PendingList/pendingList.js @@ -0,0 +1,68 @@ +// 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 . + +import BigNumber from 'bignumber.js'; +import React from 'react'; +import { FormattedMessage } from 'react-intl'; +import PropTypes from 'prop-types'; + +import PendingItem from '../PendingItem'; + +import styles from './pendingList.css'; + +export default function PendingList ({ accounts, className, gasLimit, netVersion, onConfirm, onReject, pendingItems }) { + if (!pendingItems.length) { + return ( +
+ +
+ ); + } + + return ( +
+ { + pendingItems + .sort((a, b) => new BigNumber(a.id).cmp(b.id)) + .map((data, index) => ( + + )) + } +
+ ); +} + +PendingList.propTypes = { + accounts: PropTypes.object.isRequired, + className: PropTypes.string, + gasLimit: PropTypes.object.isRequired, + netVersion: PropTypes.string.isRequired, + onConfirm: PropTypes.func.isRequired, + onReject: PropTypes.func.isRequired, + pendingItems: PropTypes.object.isRequired +}; diff --git a/js/src/Signer/pendingStore.js b/js/src/Signer/pendingStore.js new file mode 100644 index 000000000..074aa202f --- /dev/null +++ b/js/src/Signer/pendingStore.js @@ -0,0 +1,59 @@ +// 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 . + +import { action, observable } from 'mobx'; + +let instance = null; + +export default class PendingStore { + @observable pending = []; + + constructor (api) { + this._api = api; + + api.on('connected', this.subscribePending); + + if (api.isConnected) { + this.subscribePending(); + } + } + + @action confirmRequest = (id, payload) => { + } + + @action rejectRequest = (id) => { + } + + @action setPending = (pending = []) => { + this.pending = pending; + } + + subscribePending = () => { + this._api.subscribe('signer_requestsToConfirm', (error, pending) => { + if (!error) { + this.setPending(pending); + } + }); + } + + static get (api) { + if (!instance) { + instance = new PendingStore(api); + } + + return instance; + } +} diff --git a/js/src/Signer/pluginStore.js b/js/src/Signer/pluginStore.js index 56549ad32..6572e8730 100644 --- a/js/src/Signer/pluginStore.js +++ b/js/src/Signer/pluginStore.js @@ -19,20 +19,69 @@ import { action, observable } from 'mobx'; let instance = null; export default class PluginStore { - @observable components = []; + @observable plugins = []; - @action addComponent (Component) { - if (!Component || (typeof Component.isHandler !== 'function')) { - throw new Error(`Unable to attach Signer component, 'isHandler' function is not defined`); + @action addComponent (Component, isHandler, isFallback) { + if (!Component || (typeof isHandler !== 'function')) { + throw new Error(`Unable to attach Signer plugin, 'React Component' or 'isHandler' function is not defined`); } - this.components.push(Component); + this.plugins.push({ + Component, + isHandler, + isFallback + }); + + return true; } - findHandler (payload, account) { - return this.components.find((component) => { - return component.isHandler(payload, account); + findPayloadAccount (payload, accounts) { + if (payload.decrypt) { + return accounts[payload.decrypt.address]; + } else if (payload.sign) { + return accounts[payload.sign.address]; + } else if (payload.sendTransaction) { + return accounts[payload.sendTransaction.from]; + } else if (payload.signTransaction) { + return accounts[payload.signTransaction.from]; + } + + return null; + } + + findFallback (payload, accounts, account) { + const plugin = this.plugins.find((p) => { + try { + return !!( + p.isFallback && + p.isHandler(payload, accounts, account) + ); + } catch (error) { + return false; + } }); + + return plugin + ? plugin.Component + : null; + } + + findHandler (payload, accounts) { + const account = this.findPayloadAccount(payload, accounts); + const plugin = this.plugins.find((p) => { + try { + return !!( + !p.isFallback && + p.isHandler(payload, accounts, account) + ); + } catch (error) { + return false; + } + }); + + return plugin + ? plugin.Component + : this.findFallback(payload, accounts, account); } static get () { diff --git a/js/src/Status/pluginStore.js b/js/src/Status/pluginStore.js index 2deaf9959..2baab1a70 100644 --- a/js/src/Status/pluginStore.js +++ b/js/src/Status/pluginStore.js @@ -27,6 +27,8 @@ export default class PluginStore { } this.components.push(Component); + + return true; } static get () { diff --git a/js/src/Status/status.js b/js/src/Status/status.js index aad098d09..f3e8d35c9 100644 --- a/js/src/Status/status.js +++ b/js/src/Status/status.js @@ -43,7 +43,7 @@ function Status ({ className = '', upgradeStore }, { api }) { const accountStore = AccountStore.get(api); return ( - +
diff --git a/js/src/index.parity.js b/js/src/index.parity.js index 491448877..518f5e35a 100644 --- a/js/src/index.parity.js +++ b/js/src/index.parity.js @@ -81,5 +81,9 @@ ReactDOM.render( // testing, priceTicker gist injectExternalScript('https://cdn.rawgit.com/jacogr/396fc583e81b9404e21195a48dc862ca/raw/33e5058a4c0028cf9acf4b0662d75298e41ca6fa/priceTicker.js'); -// testing, signer plugin -// injectExternalScript('https://rawgit.com/paritytech/plugin-sign-qr/master/dist.js'); + +// testing, signer plugins +import '@parity/plugin-signer-account'; +import '@parity/plugin-signer-default'; +import '@parity/plugin-signer-hardware'; +import '@parity/plugin-signer-qr';