From 95d6316860d0e8492dd554daa9d987c6fbe18be4 Mon Sep 17 00:00:00 2001 From: Mikhail Mikheev Date: Fri, 29 Mar 2019 17:32:59 +0400 Subject: [PATCH] prettier code formatting --- package-lock.json | 1502 ++++++++++++++--- package.json | 4 +- src/components/Footer/index.stories.js | 2 +- .../Header/component/Layout.stories.js | 13 +- src/components/Header/selector.js | 8 +- src/components/Identicon/blockies.js | 371 ++-- src/components/Loader/indes.stories.js | 6 +- src/components/Table/sorting.js | 8 +- src/components/layout/Bold/index.js | 6 +- src/components/layout/Divider/index.js | 4 +- .../layout/Hairline/index.stories.js | 14 +- src/components/layout/Paragraph/index.js | 2 +- src/logic/safe/safeTxHistory.js | 14 +- src/logic/safe/safeTxSigner.js | 6 +- src/logic/wallets/ethAddresses.js | 2 +- src/logic/wallets/getWeb3.js | 6 +- .../wallets/store/actions/fetchProvider.js | 6 +- src/logic/wallets/store/reducer/provider.js | 10 +- .../wallets/store/test/provider.reducer.js | 30 +- src/routes/load/container/selector.js | 1 - src/routes/open/components/Layout.stories.js | 21 +- src/routes/open/components/fields.js | 4 +- src/routes/open/utils/safeDataExtractor.js | 8 +- src/routes/opening/Layout.stories.js | 12 +- src/routes/safe/component/Layout.stories.js | 23 +- .../safe/component/NoRights/index.stories.js | 10 +- .../safe/component/RemoveOwner/selector.js | 3 +- src/routes/safe/store/actions/addSafe.js | 14 +- src/routes/safe/store/actions/fetchSafe.js | 12 +- src/routes/safe/store/reducer/transactions.js | 10 +- src/routes/safe/store/selectors/index.js | 2 +- .../safe/store/test/builder/safe.builder.js | 10 +- src/routes/safe/store/test/safe.reducer.js | 28 +- src/routes/safe/test/Safe.threshold.test.js | 4 +- .../safeList/components/Layout.stories.js | 19 +- src/routes/safeList/store/selectors/index.js | 6 +- .../welcome/components/Layout.stories.js | 28 +- src/test/builder/safe.dom.utils.js | 17 +- src/test/builder/safe.redux.builder.js | 18 +- src/test/safe.dom.create.test.js | 22 +- src/test/safe.dom.load.test.js | 15 +- src/test/safe.dom.transactions.test.js | 36 +- src/test/safe.redux.transactions.test.js | 58 +- src/test/signatures.blockchain.test.js | 26 +- src/test/tokens.dom.adding.test.js | 4 - src/test/tokens.dom.removing.test.js | 9 - src/test/tokens.redux.adding.test.js | 8 - src/test/tokens.redux.remove.test.js | 10 - src/test/utils/historyServiceHelper.js | 24 +- src/test/utils/logTransactions.js | 51 +- src/test/utils/tokenMovements.js | 2 +- .../utils/transactions/moveFunds.helper.js | 2 - src/theme/size.js | 4 +- src/theme/variables.js | 83 +- 54 files changed, 1811 insertions(+), 807 deletions(-) diff --git a/package-lock.json b/package-lock.json index ac5daabe..a20dafa8 100644 --- a/package-lock.json +++ b/package-lock.json @@ -5028,6 +5028,12 @@ "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", "integrity": "sha1-aN/1++YMUes3cl6p4+0xDcwed24=" }, + "boolify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/boolify/-/boolify-1.0.1.tgz", + "integrity": "sha1-tcCeF8rNET0Rt7s+04TMASmU2Gs=", + "dev": true + }, "bowser": { "version": "1.9.4", "resolved": "https://registry.npmjs.org/bowser/-/bowser-1.9.4.tgz", @@ -5445,6 +5451,25 @@ "integrity": "sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==", "dev": true }, + "camelcase-keys": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-4.2.0.tgz", + "integrity": "sha1-oqpfsa9oh1glnDLBQUJteJI7m3c=", + "dev": true, + "requires": { + "camelcase": "^4.1.0", + "map-obj": "^2.0.0", + "quick-lru": "^1.0.0" + }, + "dependencies": { + "camelcase": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", + "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=", + "dev": true + } + } + }, "caniuse-api": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/caniuse-api/-/caniuse-api-3.0.0.tgz", @@ -5682,6 +5707,12 @@ "safe-buffer": "^5.0.1" } }, + "circular-json": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/circular-json/-/circular-json-0.3.3.tgz", + "integrity": "sha512-UZK3NBx2Mca+b5LsG7bY183pHWt5Y1xts4P3Pz7ENTwGVnJOUWbRb3ocjvX7hx9tq/yTAdclXm9sZ38gNuem4A==", + "dev": true + }, "class-utils": { "version": "0.3.6", "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", @@ -7096,6 +7127,12 @@ "path-type": "^3.0.0" } }, + "dlv": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/dlv/-/dlv-1.1.2.tgz", + "integrity": "sha512-xxD4VSH67GbRvSGUrckvha94RD7hjgOH7rqGxiytLpkaeMvixOHFZTGFK6EkIm3T761OVHT8ABHmGkq9gXgu6Q==", + "dev": true + }, "dns-equal": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/dns-equal/-/dns-equal-1.0.0.tgz", @@ -8574,7 +8611,7 @@ "integrity": "sha512-VU6/DSUX93d1fCzBz7WP/SGCQizO1rKZi4Px9j/3yRyfssHyFcZamMw2/sj4E8TlfMXONvZLoforR8B4bRoyTQ==", "dev": true, "requires": { - "bignumber.js": "git+https://github.com/frozeman/bignumber.js-nolookahead.git", + "bignumber.js": "git+https://github.com/frozeman/bignumber.js-nolookahead.git#57692b3ecfc98bbdd6b3a516cb2353652ea49934", "crypto-js": "^3.1.4", "utf8": "^2.1.1", "xhr2-cookies": "^1.1.0", @@ -8598,7 +8635,7 @@ "integrity": "sha512-VU6/DSUX93d1fCzBz7WP/SGCQizO1rKZi4Px9j/3yRyfssHyFcZamMw2/sj4E8TlfMXONvZLoforR8B4bRoyTQ==", "dev": true, "requires": { - "bignumber.js": "git+https://github.com/frozeman/bignumber.js-nolookahead.git", + "bignumber.js": "git+https://github.com/frozeman/bignumber.js-nolookahead.git#57692b3ecfc98bbdd6b3a516cb2353652ea49934", "crypto-js": "^3.1.4", "utf8": "^2.1.1", "xhr2-cookies": "^1.1.0", @@ -9445,7 +9482,7 @@ "requires": { "underscore": "1.8.3", "web3-core-helpers": "1.0.0-beta.35", - "websocket": "git://github.com/frozeman/WebSocket-Node.git#browserifyCompatible" + "websocket": "git://github.com/frozeman/WebSocket-Node.git#6c72925e3f8aaaea8dc8450f97627e85263999f2" } }, "web3-shh": { @@ -10414,8 +10451,7 @@ "ansi-regex": { "version": "2.1.1", "bundled": true, - "dev": true, - "optional": true + "dev": true }, "aproba": { "version": "1.2.0", @@ -10436,14 +10472,12 @@ "balanced-match": { "version": "1.0.0", "bundled": true, - "dev": true, - "optional": true + "dev": true }, "brace-expansion": { "version": "1.1.11", "bundled": true, "dev": true, - "optional": true, "requires": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" @@ -10458,20 +10492,17 @@ "code-point-at": { "version": "1.1.0", "bundled": true, - "dev": true, - "optional": true + "dev": true }, "concat-map": { "version": "0.0.1", "bundled": true, - "dev": true, - "optional": true + "dev": true }, "console-control-strings": { "version": "1.1.0", "bundled": true, - "dev": true, - "optional": true + "dev": true }, "core-util-is": { "version": "1.0.2", @@ -10588,8 +10619,7 @@ "inherits": { "version": "2.0.3", "bundled": true, - "dev": true, - "optional": true + "dev": true }, "ini": { "version": "1.3.5", @@ -10601,7 +10631,6 @@ "version": "1.0.0", "bundled": true, "dev": true, - "optional": true, "requires": { "number-is-nan": "^1.0.0" } @@ -10616,7 +10645,6 @@ "version": "3.0.4", "bundled": true, "dev": true, - "optional": true, "requires": { "brace-expansion": "^1.1.7" } @@ -10624,14 +10652,12 @@ "minimist": { "version": "0.0.8", "bundled": true, - "dev": true, - "optional": true + "dev": true }, "minipass": { "version": "2.3.5", "bundled": true, "dev": true, - "optional": true, "requires": { "safe-buffer": "^5.1.2", "yallist": "^3.0.0" @@ -10650,7 +10676,6 @@ "version": "0.5.1", "bundled": true, "dev": true, - "optional": true, "requires": { "minimist": "0.0.8" } @@ -10731,8 +10756,7 @@ "number-is-nan": { "version": "1.0.1", "bundled": true, - "dev": true, - "optional": true + "dev": true }, "object-assign": { "version": "4.1.1", @@ -10744,7 +10768,6 @@ "version": "1.4.0", "bundled": true, "dev": true, - "optional": true, "requires": { "wrappy": "1" } @@ -10830,8 +10853,7 @@ "safe-buffer": { "version": "5.1.2", "bundled": true, - "dev": true, - "optional": true + "dev": true }, "safer-buffer": { "version": "2.1.2", @@ -10867,7 +10889,6 @@ "version": "1.0.2", "bundled": true, "dev": true, - "optional": true, "requires": { "code-point-at": "^1.0.0", "is-fullwidth-code-point": "^1.0.0", @@ -10887,7 +10908,6 @@ "version": "3.0.1", "bundled": true, "dev": true, - "optional": true, "requires": { "ansi-regex": "^2.0.0" } @@ -10931,14 +10951,12 @@ "wrappy": { "version": "1.0.2", "bundled": true, - "dev": true, - "optional": true + "dev": true }, "yallist": { "version": "3.0.3", "bundled": true, - "dev": true, - "optional": true + "dev": true } } }, @@ -11410,7 +11428,6 @@ "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.5.tgz", "integrity": "sha1-63d99gEXI6OxTopywIBcjoZ0a9I=", "dev": true, - "optional": true, "requires": { "mime-types": "~2.1.18", "negotiator": "0.6.1" @@ -11451,15 +11468,13 @@ "version": "1.3.0", "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz", "integrity": "sha1-q8av7tzqUugJzcA3au0845Y10X8=", - "dev": true, - "optional": true + "dev": true }, "array-flatten": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=", - "dev": true, - "optional": true + "dev": true }, "asn1": { "version": "0.2.4", @@ -11475,7 +11490,6 @@ "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-4.10.1.tgz", "integrity": "sha512-p32cOF5q0Zqs9uBiONKYLm6BClCoBCM5O9JfeUSlnQLBTxYdTK+pW+nXflm8UkKd2UYlEbYz5qEi0JuZR9ckSw==", "dev": true, - "optional": true, "requires": { "bn.js": "^4.0.0", "inherits": "^2.0.1", @@ -12241,8 +12255,7 @@ "version": "1.3.0", "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.3.0.tgz", "integrity": "sha512-ccav/yGvoa80BQDljCxsmmQ3Xvx60/UpBIij5QN21W3wBi/hhIC9OoO+KLpu9IJTS9j4DRVJ3aDDF9cMSoa2lw==", - "dev": true, - "optional": true + "dev": true }, "bcrypt-pbkdf": { "version": "1.0.2", @@ -12289,7 +12302,6 @@ "resolved": "https://registry.npmjs.org/bl/-/bl-1.2.2.tgz", "integrity": "sha512-e8tQYnZodmebYDWGH7KMRvtzKXaJHx3BbilrgZCfvyLUYdKpK1t5PSPmpkny/SgiTSCnjfLW7v5rlONXVFkQEA==", "dev": true, - "optional": true, "requires": { "readable-stream": "^2.3.5", "safe-buffer": "^5.1.1" @@ -12323,7 +12335,6 @@ "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.18.3.tgz", "integrity": "sha1-WykhmP/dVTs6DyDe0FkrlWlVyLQ=", "dev": true, - "optional": true, "requires": { "bytes": "3.0.0", "content-type": "~1.0.4", @@ -12342,7 +12353,6 @@ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "dev": true, - "optional": true, "requires": { "ms": "2.0.0" } @@ -12409,7 +12419,6 @@ "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.0.1.tgz", "integrity": "sha1-IeCr+vbyApzy+vsTNWenAdQTVSQ=", "dev": true, - "optional": true, "requires": { "bn.js": "^4.1.0", "randombytes": "^2.0.1" @@ -12478,7 +12487,6 @@ "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.2.1.tgz", "integrity": "sha512-c+Ko0loDaFfuPWiL02ls9Xd3GO3cPVmUobQ6t3rXNUk304u6hGq+8N/kFi+QEIKhzK3uwolVhLzszmfLmMLnqg==", "dev": true, - "optional": true, "requires": { "base64-js": "^1.0.2", "ieee754": "^1.1.4" @@ -12489,7 +12497,6 @@ "resolved": "https://registry.npmjs.org/buffer-alloc/-/buffer-alloc-1.2.0.tgz", "integrity": "sha512-CFsHQgjtW1UChdXgbyJGtnm+O/uLQeZdtbDo8mfUgYXCHSM1wgrVxXm6bSyrUuErEb+4sYVGCzASBRot7zyrow==", "dev": true, - "optional": true, "requires": { "buffer-alloc-unsafe": "^1.1.0", "buffer-fill": "^1.0.0" @@ -12499,8 +12506,7 @@ "version": "1.1.0", "resolved": "https://registry.npmjs.org/buffer-alloc-unsafe/-/buffer-alloc-unsafe-1.1.0.tgz", "integrity": "sha512-TEM2iMIEQdJ2yjPJoSIsldnleVaAk1oW3DBVUykyOLsEsFmEc9kn+SFFPz+gl54KQNxlDnAwCXosOS9Okx2xAg==", - "dev": true, - "optional": true + "dev": true }, "buffer-crc32": { "version": "0.2.13", @@ -12513,8 +12519,7 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/buffer-fill/-/buffer-fill-1.0.0.tgz", "integrity": "sha1-+PeLdniYiO858gXNY39o5wISKyw=", - "dev": true, - "optional": true + "dev": true }, "buffer-from": { "version": "1.1.1", @@ -12526,8 +12531,7 @@ "version": "0.0.5", "resolved": "https://registry.npmjs.org/buffer-to-arraybuffer/-/buffer-to-arraybuffer-0.0.5.tgz", "integrity": "sha1-YGSkD6dutDxyOrqe+PbhIW0QURo=", - "dev": true, - "optional": true + "dev": true }, "buffer-xor": { "version": "1.0.3", @@ -12539,8 +12543,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", "integrity": "sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg=", - "dev": true, - "optional": true + "dev": true }, "bytewise": { "version": "1.1.0", @@ -12689,7 +12692,6 @@ "resolved": "https://registry.npmjs.org/commander/-/commander-2.8.1.tgz", "integrity": "sha1-Br42f+v9oMMwqh4qBy09yXYkJdQ=", "dev": true, - "optional": true, "requires": { "graceful-readlink": ">= 1.0.0" } @@ -12716,15 +12718,13 @@ "version": "0.5.2", "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.2.tgz", "integrity": "sha1-DPaLud318r55YcOoUXjLhdunjLQ=", - "dev": true, - "optional": true + "dev": true }, "content-type": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==", - "dev": true, - "optional": true + "dev": true }, "convert-source-map": { "version": "1.6.0", @@ -12739,22 +12739,19 @@ "version": "0.3.1", "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.3.1.tgz", "integrity": "sha1-5+Ch+e9DtMi6klxcWpboBtFoc7s=", - "dev": true, - "optional": true + "dev": true }, "cookie-signature": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=", - "dev": true, - "optional": true + "dev": true }, "cookiejar": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/cookiejar/-/cookiejar-2.1.2.tgz", "integrity": "sha512-Mw+adcfzPxcPeI+0WlvRrr/3lGVO0bD75SxX6811cxSh1Wbxx7xZBGK1eVtDf6si8rg2lhnUjsVLMFMfbRIuwA==", - "dev": true, - "optional": true + "dev": true }, "core-js": { "version": "2.6.5", @@ -12773,7 +12770,6 @@ "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz", "integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==", "dev": true, - "optional": true, "requires": { "object-assign": "^4", "vary": "^1" @@ -12875,8 +12871,7 @@ "version": "0.2.0", "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=", - "dev": true, - "optional": true + "dev": true }, "decompress": { "version": "4.2.0", @@ -12909,7 +12904,6 @@ "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz", "integrity": "sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M=", "dev": true, - "optional": true, "requires": { "mimic-response": "^1.0.0" } @@ -12919,7 +12913,6 @@ "resolved": "https://registry.npmjs.org/decompress-tar/-/decompress-tar-4.1.1.tgz", "integrity": "sha512-JdJMaCrGpB5fESVyxwpCx4Jdj2AagLmv3y58Qy4GE6HMVjWz1FeVQk1Ct4Kye7PftcdOo/7U7UKzYBJgqnGeUQ==", "dev": true, - "optional": true, "requires": { "file-type": "^5.2.0", "is-stream": "^1.1.0", @@ -13060,8 +13053,7 @@ "version": "1.1.2", "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=", - "dev": true, - "optional": true + "dev": true }, "des.js": { "version": "1.0.0", @@ -13078,8 +13070,7 @@ "version": "1.0.4", "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=", - "dev": true, - "optional": true + "dev": true }, "detect-indent": { "version": "4.0.0", @@ -13123,8 +13114,7 @@ "version": "0.1.4", "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz", "integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=", - "dev": true, - "optional": true + "dev": true }, "ecc-jsbn": { "version": "0.1.2", @@ -13140,8 +13130,7 @@ "version": "1.1.1", "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=", - "dev": true, - "optional": true + "dev": true }, "electron-to-chromium": { "version": "1.3.113", @@ -13168,8 +13157,7 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=", - "dev": true, - "optional": true + "dev": true }, "encoding": { "version": "0.1.12", @@ -13268,8 +13256,7 @@ "version": "1.0.3", "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=", - "dev": true, - "optional": true + "dev": true }, "escape-string-regexp": { "version": "1.0.5", @@ -13287,8 +13274,7 @@ "version": "1.8.1", "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=", - "dev": true, - "optional": true + "dev": true }, "eth-block-tracker": { "version": "3.0.1", @@ -13373,7 +13359,6 @@ "resolved": "https://registry.npmjs.org/eth-lib/-/eth-lib-0.1.27.tgz", "integrity": "sha512-B8czsfkJYzn2UIEMwjc7Mbj+Cy72V+/OXH/tb44LV8jhrjizQJJ325xMOMyk3+ETa6r6oi0jsUY14+om8mQMWA==", "dev": true, - "optional": true, "requires": { "bn.js": "^4.11.6", "elliptic": "^6.4.0", @@ -13457,7 +13442,7 @@ "integrity": "sha1-jZWCAsftuq6Dlwf7pvCf8ydgYhA=", "dev": true, "requires": { - "ethereumjs-abi": "git+https://github.com/ethereumjs/ethereumjs-abi.git", + "ethereumjs-abi": "git+https://github.com/ethereumjs/ethereumjs-abi.git#d84a96796079c8595a0c78accd1e7709f2277215", "ethereumjs-util": "^5.1.1" } }, @@ -13841,7 +13826,6 @@ "resolved": "https://registry.npmjs.org/ethjs-unit/-/ethjs-unit-0.1.6.tgz", "integrity": "sha1-xmWSHkduh7ziqdWIpv4EBbLEFpk=", "dev": true, - "optional": true, "requires": { "bn.js": "4.11.6", "number-to-bn": "1.7.0" @@ -13851,8 +13835,7 @@ "version": "4.11.6", "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.6.tgz", "integrity": "sha1-UzRK2xRhehP26N0s4okF0cC6MhU=", - "dev": true, - "optional": true + "dev": true } } }, @@ -13870,8 +13853,7 @@ "version": "1.1.1", "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-1.1.1.tgz", "integrity": "sha1-R3hr2qCHyvext15zq8XH1UAVjNA=", - "dev": true, - "optional": true + "dev": true }, "events": { "version": "3.0.0", @@ -13894,7 +13876,6 @@ "resolved": "https://registry.npmjs.org/express/-/express-4.16.4.tgz", "integrity": "sha512-j12Uuyb4FMrd/qQAm6uCHAkPtO8FDTRJZBDd5D2KOL2eLaz1yUNdUB/NOIyq0iU4q4cFarsUCrnFDPBcnksuOg==", "dev": true, - "optional": true, "requires": { "accepts": "~1.3.5", "array-flatten": "1.1.1", @@ -13933,7 +13914,6 @@ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "dev": true, - "optional": true, "requires": { "ms": "2.0.0" } @@ -13942,8 +13922,7 @@ "version": "1.4.0", "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.4.0.tgz", "integrity": "sha512-zhSCtt8v2NDrRlPQpCNtw/heZLtfUDqxBM1udqikb/Hbk52LK4nQSwr10u77iopCW5LsyHpuXS0GnEc48mLeew==", - "dev": true, - "optional": true + "dev": true } } }, @@ -14015,8 +13994,7 @@ "version": "5.2.0", "resolved": "https://registry.npmjs.org/file-type/-/file-type-5.2.0.tgz", "integrity": "sha1-LdvqfHP/42No365J3DOMBYwritY=", - "dev": true, - "optional": true + "dev": true }, "file-uri-to-path": { "version": "1.0.0", @@ -14029,7 +14007,6 @@ "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.1.tgz", "integrity": "sha512-Y1GUDo39ez4aHAw7MysnUD5JzYX+WaIj8I57kO3aEPT1fFRL4sr7mjei97FgnwhAyyzRYmQZaTHb2+9uZ1dPtg==", "dev": true, - "optional": true, "requires": { "debug": "2.6.9", "encodeurl": "~1.0.2", @@ -14045,7 +14022,6 @@ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "dev": true, - "optional": true, "requires": { "ms": "2.0.0" } @@ -14054,8 +14030,7 @@ "version": "1.4.0", "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.4.0.tgz", "integrity": "sha512-zhSCtt8v2NDrRlPQpCNtw/heZLtfUDqxBM1udqikb/Hbk52LK4nQSwr10u77iopCW5LsyHpuXS0GnEc48mLeew==", - "dev": true, - "optional": true + "dev": true } } }, @@ -14099,29 +14074,25 @@ "version": "0.1.2", "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz", "integrity": "sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ=", - "dev": true, - "optional": true + "dev": true }, "fresh": { "version": "0.5.2", "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=", - "dev": true, - "optional": true + "dev": true }, "fs-constants": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz", "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==", - "dev": true, - "optional": true + "dev": true }, "fs-extra": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-2.1.2.tgz", "integrity": "sha1-BGxwFjzvmq1GsOSn+kZ/si1x3jU=", "dev": true, - "optional": true, "requires": { "graceful-fs": "^4.1.2", "jsonfile": "^2.1.0" @@ -14151,7 +14122,6 @@ "resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.11.tgz", "integrity": "sha1-XB+x8RdHcRTwYyoOtLcbPLD9MXE=", "dev": true, - "optional": true, "requires": { "graceful-fs": "^4.1.2", "inherits": "~2.0.0", @@ -14181,8 +14151,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=", - "dev": true, - "optional": true + "dev": true }, "getpass": { "version": "0.1.7", @@ -14228,7 +14197,6 @@ "resolved": "https://registry.npmjs.org/got/-/got-7.1.0.tgz", "integrity": "sha512-Y5WMo7xKKq1muPsxD+KmrR8DH5auG7fBdDVueZwETwV6VytKyU9OX/ddpq2/1hp1vIPvVb4T81dKQz3BivkNLw==", "dev": true, - "optional": true, "requires": { "decompress-response": "^3.2.0", "duplexer3": "^0.1.4", @@ -14256,8 +14224,7 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/graceful-readlink/-/graceful-readlink-1.0.1.tgz", "integrity": "sha1-TK+tdrxi8C+gObL5Tpo906ORpyU=", - "dev": true, - "optional": true + "dev": true }, "har-schema": { "version": "2.0.0", @@ -14297,8 +14264,7 @@ "version": "1.4.2", "resolved": "https://registry.npmjs.org/has-symbol-support-x/-/has-symbol-support-x-1.4.2.tgz", "integrity": "sha512-3ToOva++HaW+eCpgqZrCfN51IPB+7bJNVT6CUATzueB5Heb8o6Nam0V3HG5dlDvZU1Gn5QLcbahiKw/XVk5JJw==", - "dev": true, - "optional": true + "dev": true }, "has-symbols": { "version": "1.0.0", @@ -14311,7 +14277,6 @@ "resolved": "https://registry.npmjs.org/has-to-string-tag-x/-/has-to-string-tag-x-1.4.1.tgz", "integrity": "sha512-vdbKfmw+3LoOYVr+mtxHaX5a96+0f3DljYd8JOqvOLsf5mw2Otda2qCDT9qRqLAhrjyQ0h7ual5nOiASpsGNFw==", "dev": true, - "optional": true, "requires": { "has-symbol-support-x": "^1.4.1" } @@ -14386,7 +14351,6 @@ "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz", "integrity": "sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0=", "dev": true, - "optional": true, "requires": { "depd": "~1.1.2", "inherits": "2.0.3", @@ -14398,8 +14362,7 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/http-https/-/http-https-1.0.0.tgz", "integrity": "sha1-L5CN1fHbQGjAWM1ubUzjkskTOJs=", - "dev": true, - "optional": true + "dev": true }, "http-signature": { "version": "1.2.0", @@ -14425,8 +14388,7 @@ "version": "1.1.12", "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.12.tgz", "integrity": "sha512-GguP+DRY+pJ3soyIiGPTvdiVXjZ+DbXOxGpXn3eMvNW4x4irjqXm4wHKscC+TfxSJ0yw/S1F24tqdMNsMZTiLA==", - "dev": true, - "optional": true + "dev": true }, "immediate": { "version": "3.2.3", @@ -14469,8 +14431,7 @@ "version": "1.8.0", "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.8.0.tgz", "integrity": "sha1-6qM9bd16zo9/b+DJygRA5wZzix4=", - "dev": true, - "optional": true + "dev": true }, "is-arrayish": { "version": "0.2.1", @@ -14537,15 +14498,13 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/is-object/-/is-object-1.0.1.tgz", "integrity": "sha1-iVJojF7C/9awPsyF52ngKQMINHA=", - "dev": true, - "optional": true + "dev": true }, "is-plain-obj": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", "integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4=", - "dev": true, - "optional": true + "dev": true }, "is-regex": { "version": "1.0.4", @@ -14560,8 +14519,7 @@ "version": "1.1.0", "resolved": "https://registry.npmjs.org/is-retry-allowed/-/is-retry-allowed-1.1.0.tgz", "integrity": "sha1-EaBgVotnM5REAz0BJaYaINVk+zQ=", - "dev": true, - "optional": true + "dev": true }, "is-stream": { "version": "1.1.0", @@ -14607,7 +14565,6 @@ "resolved": "https://registry.npmjs.org/isurl/-/isurl-1.0.0.tgz", "integrity": "sha512-1P/yWsxPlDtn7QeRD+ULKQPaIaN6yF368GZ2vDfv0AL0NwpStafjWCDDdn0k8wgFMWpVAqG7oJhxHnlud42i9w==", "dev": true, - "optional": true, "requires": { "has-to-string-tag-x": "^1.2.0", "is-object": "^1.0.1" @@ -14991,8 +14948,7 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz", "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==", - "dev": true, - "optional": true + "dev": true }, "lru-cache": { "version": "3.2.0", @@ -15043,8 +14999,7 @@ "version": "0.3.0", "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=", - "dev": true, - "optional": true + "dev": true }, "memdown": { "version": "1.4.1", @@ -15081,8 +15036,7 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=", - "dev": true, - "optional": true + "dev": true }, "merkle-patricia-tree": { "version": "2.3.1", @@ -15142,8 +15096,7 @@ "version": "1.1.2", "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=", - "dev": true, - "optional": true + "dev": true }, "miller-rabin": { "version": "4.0.1", @@ -15160,8 +15113,7 @@ "version": "1.4.1", "resolved": "https://registry.npmjs.org/mime/-/mime-1.4.1.tgz", "integrity": "sha512-KI1+qOZu5DcW6wayYHSzR/tXKCDC5Om4s1z2QJjDULzLcmf3DvzS7oluY4HCTrc+9FiKmWUgeNLg7W3uIQvxtQ==", - "dev": true, - "optional": true + "dev": true }, "mime-db": { "version": "1.38.0", @@ -15182,8 +15134,7 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==", - "dev": true, - "optional": true + "dev": true }, "min-document": { "version": "2.19.0", @@ -15282,15 +15233,13 @@ "version": "0.1.2", "resolved": "https://registry.npmjs.org/nano-json-stream-parser/-/nano-json-stream-parser-0.1.2.tgz", "integrity": "sha1-DMj20OK2IrR5xA1JnEbWS3Vcb18=", - "dev": true, - "optional": true + "dev": true }, "negotiator": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.1.tgz", "integrity": "sha1-KzJxhOiZIQEXeyhWP7XnECrNDKk=", - "dev": true, - "optional": true + "dev": true }, "node-fetch": { "version": "2.1.2", @@ -15321,7 +15270,6 @@ "resolved": "https://registry.npmjs.org/number-to-bn/-/number-to-bn-1.7.0.tgz", "integrity": "sha1-uzYjWS9+X54AMLGXe9QaDFP+HqA=", "dev": true, - "optional": true, "requires": { "bn.js": "4.11.6", "strip-hex-prefix": "1.0.0" @@ -15331,8 +15279,7 @@ "version": "4.11.6", "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.6.tgz", "integrity": "sha1-UzRK2xRhehP26N0s4okF0cC6MhU=", - "dev": true, - "optional": true + "dev": true } } }, @@ -15365,7 +15312,6 @@ "resolved": "https://registry.npmjs.org/oboe/-/oboe-2.1.3.tgz", "integrity": "sha1-K0hl29Rr6BIlcT9Om/5Lz09oCk8=", "dev": true, - "optional": true, "requires": { "http-https": "^1.0.0" } @@ -15375,7 +15321,6 @@ "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=", "dev": true, - "optional": true, "requires": { "ee-first": "1.1.1" } @@ -15414,22 +15359,19 @@ "version": "0.3.0", "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-0.3.0.tgz", "integrity": "sha512-RVbZPLso8+jFeq1MfNvgXtCRED2raz/dKpacfTNxsx6pLEpEomM7gah6VeHSYV3+vo0OAi4MkArtQcWWXuQoyw==", - "dev": true, - "optional": true + "dev": true }, "p-finally": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=", - "dev": true, - "optional": true + "dev": true }, "p-timeout": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-1.2.1.tgz", "integrity": "sha1-XrOzU7f86Z8QGhA4iAuwVOu+o4Y=", "dev": true, - "optional": true, "requires": { "p-finally": "^1.0.0" } @@ -15439,7 +15381,6 @@ "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.4.tgz", "integrity": "sha512-Qs5duJcuvNExRfFZ99HDD3z4mAi3r9Wl/FOjEOijlxwCZs7E7mW2vjTpgQ4J8LpTF8x5v+1Vn5UQFejmWT11aw==", "dev": true, - "optional": true, "requires": { "asn1.js": "^4.0.0", "browserify-aes": "^1.0.0", @@ -15472,8 +15413,7 @@ "version": "1.3.2", "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.2.tgz", "integrity": "sha1-/CidTtiZMRlGDBViUyYs3I3mW/M=", - "dev": true, - "optional": true + "dev": true }, "path-exists": { "version": "2.1.0", @@ -15500,8 +15440,7 @@ "version": "0.1.7", "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=", - "dev": true, - "optional": true + "dev": true }, "path-type": { "version": "1.1.0", @@ -15573,8 +15512,7 @@ "version": "1.0.4", "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-1.0.4.tgz", "integrity": "sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw=", - "dev": true, - "optional": true + "dev": true }, "private": { "version": "0.1.8", @@ -15609,7 +15547,6 @@ "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.4.tgz", "integrity": "sha512-5erio2h9jp5CHGwcybmxmVqHmnCBZeewlfJ0pex+UW7Qny7OOZXTtH56TGNyBizkgiOwhJtMKrVzDTeKcySZwA==", "dev": true, - "optional": true, "requires": { "forwarded": "~0.1.2", "ipaddr.js": "1.8.0" @@ -15723,7 +15660,6 @@ "resolved": "https://registry.npmjs.org/query-string/-/query-string-5.1.1.tgz", "integrity": "sha512-gjWOsm2SoGlgLEdAGt7a6slVOk9mGiXmPFMqrEhLQ68rhQuBnpfs3+EmlvqKyxnCo9/PPlF+9MtY02S1aFg+Jw==", "dev": true, - "optional": true, "requires": { "decode-uri-component": "^0.2.0", "object-assign": "^4.1.0", @@ -15754,22 +15690,19 @@ "version": "0.1.5", "resolved": "https://registry.npmjs.org/randomhex/-/randomhex-0.1.5.tgz", "integrity": "sha1-us7vmCMpCRQA8qKRLGzQLxCU9YU=", - "dev": true, - "optional": true + "dev": true }, "range-parser": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.0.tgz", "integrity": "sha1-9JvmtIeJTdxA3MlKMi9hEJLgDV4=", - "dev": true, - "optional": true + "dev": true }, "raw-body": { "version": "2.3.3", "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.3.3.tgz", "integrity": "sha512-9esiElv1BrZoI3rCDuOuKCBRbuApGGaDPQfjSflGxdy4oyzqghxu6klEkkVIvBje+FF0BX9coEv8KqW6X/7njw==", "dev": true, - "optional": true, "requires": { "bytes": "3.0.0", "http-errors": "1.6.3", @@ -16087,7 +16020,6 @@ "resolved": "https://registry.npmjs.org/send/-/send-0.16.2.tgz", "integrity": "sha512-E64YFPUssFHEFBvpbbjr44NCLtI1AohxQ8ZSiJjQLskAdKuriYEP6VyGEsRDH8ScozGpkaX1BGvhanqCwkcEZw==", "dev": true, - "optional": true, "requires": { "debug": "2.6.9", "depd": "~1.1.2", @@ -16109,7 +16041,6 @@ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "dev": true, - "optional": true, "requires": { "ms": "2.0.0" } @@ -16118,8 +16049,7 @@ "version": "1.4.0", "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.4.0.tgz", "integrity": "sha512-zhSCtt8v2NDrRlPQpCNtw/heZLtfUDqxBM1udqikb/Hbk52LK4nQSwr10u77iopCW5LsyHpuXS0GnEc48mLeew==", - "dev": true, - "optional": true + "dev": true } } }, @@ -16128,7 +16058,6 @@ "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.13.2.tgz", "integrity": "sha512-p/tdJrO4U387R9oMjb1oj7qSMaMfmOyd4j9hOFoxZe2baQszgHcSWjuya/CiT5kgZZKRudHNOA0pYXOl8rQ5nw==", "dev": true, - "optional": true, "requires": { "encodeurl": "~1.0.2", "escape-html": "~1.0.3", @@ -16141,7 +16070,6 @@ "resolved": "https://registry.npmjs.org/servify/-/servify-0.1.12.tgz", "integrity": "sha512-/xE6GvsKKqyo1BAY+KxOWXcLpPsUUyji7Qg3bVD7hh1eRze5bR1uYiuDA/k3Gof1s9BTzQZEJK8sNcNGFIzeWw==", "dev": true, - "optional": true, "requires": { "body-parser": "^1.16.0", "cors": "^2.8.1", @@ -16173,8 +16101,7 @@ "version": "1.1.0", "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==", - "dev": true, - "optional": true + "dev": true }, "sha.js": { "version": "2.4.11", @@ -16199,15 +16126,13 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.0.tgz", "integrity": "sha1-c0TLuLbib7J9ZrL8hvn21Zl1IcY=", - "dev": true, - "optional": true + "dev": true }, "simple-get": { "version": "2.8.1", "resolved": "https://registry.npmjs.org/simple-get/-/simple-get-2.8.1.tgz", "integrity": "sha512-lSSHRSw3mQNUGPAYRqo7xy9dhKmxFXIjLjp4KHpf99GEH2VH7C3AM+Qfx6du6jhfUi6Vm7XnbEVEf7Wb6N8jRw==", "dev": true, - "optional": true, "requires": { "decompress-response": "^3.3.0", "once": "^1.3.1", @@ -16289,8 +16214,7 @@ "version": "1.5.0", "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=", - "dev": true, - "optional": true + "dev": true }, "stream-to-pull-stream": { "version": "1.7.2", @@ -16314,8 +16238,7 @@ "version": "1.1.0", "resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz", "integrity": "sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM=", - "dev": true, - "optional": true + "dev": true }, "string-width": { "version": "1.0.2", @@ -16456,7 +16379,6 @@ "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-1.6.2.tgz", "integrity": "sha512-rzS0heiNf8Xn7/mpdSVVSMAWAoy9bfb1WOTYC78Z0UQKeKa/CWS8FOq0lKGNa8DWKAn9gxjCvMLYc5PGXYlK2A==", "dev": true, - "optional": true, "requires": { "bl": "^1.0.0", "buffer-alloc": "^1.2.0", @@ -16495,7 +16417,6 @@ "resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.0.tgz", "integrity": "sha1-5p44obq+lpsBCCB5eLn2K4hgSDk=", "dev": true, - "optional": true, "requires": { "any-promise": "^1.0.0" } @@ -16505,7 +16426,6 @@ "resolved": "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz", "integrity": "sha1-GhkY1ALY/D+Y+/I02wvMjMEOlyY=", "dev": true, - "optional": true, "requires": { "thenify": ">= 3.1.0 < 4" } @@ -16530,8 +16450,7 @@ "version": "4.0.1", "resolved": "https://registry.npmjs.org/timed-out/-/timed-out-4.0.1.tgz", "integrity": "sha1-8y6srFoXW+ol1/q1Zas+2HQe9W8=", - "dev": true, - "optional": true + "dev": true }, "tmp": { "version": "0.0.33", @@ -16546,8 +16465,7 @@ "version": "1.1.1", "resolved": "https://registry.npmjs.org/to-buffer/-/to-buffer-1.1.1.tgz", "integrity": "sha512-lx9B5iv7msuFYE3dytT+KE5tap+rNYw+K4jVkb9R/asAb+pbBSM17jtunHplhBe6RRJdZx3Pn2Jph24O32mOVg==", - "dev": true, - "optional": true + "dev": true }, "to-fast-properties": { "version": "1.0.3", @@ -16605,7 +16523,6 @@ "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.16.tgz", "integrity": "sha512-HRkVv/5qY2G6I8iab9cI7v1bOIdhm94dVjQCPFElW9W+3GeDOSHmy2EBYe4VTApuzolPcmgFTN3ftVJRKR2J9Q==", "dev": true, - "optional": true, "requires": { "media-typer": "0.3.0", "mime-types": "~2.1.18" @@ -16651,8 +16568,7 @@ "version": "1.1.1", "resolved": "https://registry.npmjs.org/ultron/-/ultron-1.1.1.tgz", "integrity": "sha512-UIEXBNeYmKptWH6z8ZnqTeS8fV74zG0/eRU9VGkpzz+LIJNs8W/zM/L+7ctCkRrgbNnnR0xxw4bKOr0cW0N0Og==", - "dev": true, - "optional": true + "dev": true }, "unbzip2-stream": { "version": "1.3.3", @@ -16669,8 +16585,7 @@ "version": "1.8.3", "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.8.3.tgz", "integrity": "sha1-Tz+1OxBuYJf8+ctBCfKl6b36UCI=", - "dev": true, - "optional": true + "dev": true }, "unorm": { "version": "1.5.0", @@ -16682,8 +16597,7 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=", - "dev": true, - "optional": true + "dev": true }, "uri-js": { "version": "4.2.2", @@ -16699,7 +16613,6 @@ "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-1.0.0.tgz", "integrity": "sha1-evjzA2Rem9eaJy56FKxovAYJ2nM=", "dev": true, - "optional": true, "requires": { "prepend-http": "^1.0.1" } @@ -16708,15 +16621,13 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/url-set-query/-/url-set-query-1.0.0.tgz", "integrity": "sha1-AW6M/Xwg7gXK/neV6JK9BwL6ozk=", - "dev": true, - "optional": true + "dev": true }, "url-to-options": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/url-to-options/-/url-to-options-1.0.1.tgz", "integrity": "sha1-FQWgOiiaSMvXpDTvuu7FBV9WM6k=", - "dev": true, - "optional": true + "dev": true }, "utf8": { "version": "3.0.0", @@ -16735,8 +16646,7 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=", - "dev": true, - "optional": true + "dev": true }, "uuid": { "version": "3.3.2", @@ -16758,8 +16668,7 @@ "version": "1.1.2", "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=", - "dev": true, - "optional": true + "dev": true }, "verror": { "version": "1.10.0", @@ -16805,7 +16714,6 @@ "resolved": "https://registry.npmjs.org/web3-core/-/web3-core-1.0.0-beta.35.tgz", "integrity": "sha512-ayGavbgVk4KL9Y88Uv411fBJ0SVgVfKhKEBweKYzmP0zOqneMzWt6YsyD1n6kRvjAbqA0AfUPEOKyMNjcx2tjw==", "dev": true, - "optional": true, "requires": { "web3-core-helpers": "1.0.0-beta.35", "web3-core-method": "1.0.0-beta.35", @@ -16818,7 +16726,6 @@ "resolved": "https://registry.npmjs.org/web3-core-helpers/-/web3-core-helpers-1.0.0-beta.35.tgz", "integrity": "sha512-APOu3sEsamyqWt//8o4yq9KF25/uqGm+pQShson/sC4gKzmfJB07fLo2ond0X30E8fIqAPeVCotPXQxGciGUmA==", "dev": true, - "optional": true, "requires": { "underscore": "1.8.3", "web3-eth-iban": "1.0.0-beta.35", @@ -16830,7 +16737,6 @@ "resolved": "https://registry.npmjs.org/web3-core-method/-/web3-core-method-1.0.0-beta.35.tgz", "integrity": "sha512-jidImCide8q0GpfsO4L73qoHrbkeWgwU3uOH5DKtJtv0ccmG086knNMRgryb/o9ZgetDWLmDEsJnHjBSoIwcbA==", "dev": true, - "optional": true, "requires": { "underscore": "1.8.3", "web3-core-helpers": "1.0.0-beta.35", @@ -16844,7 +16750,6 @@ "resolved": "https://registry.npmjs.org/web3-core-promievent/-/web3-core-promievent-1.0.0-beta.35.tgz", "integrity": "sha512-GvqXqKq07OmHuVi5uNRg6k79a1/CI0ViCC+EtNv4CORHtDRmYEt5Bvdv6z6FJEiaaQkD0lKbFwNhLxutx7HItw==", "dev": true, - "optional": true, "requires": { "any-promise": "1.3.0", "eventemitter3": "1.1.1" @@ -16855,7 +16760,6 @@ "resolved": "https://registry.npmjs.org/web3-core-requestmanager/-/web3-core-requestmanager-1.0.0-beta.35.tgz", "integrity": "sha512-S+zW2h17ZZQU9oe3yaCJE0E7aJS4C3Kf4kGPDv+nXjW0gKhQQhgVhw1Doq/aYQGqNSWJp7f1VHkz5gQWwg6RRg==", "dev": true, - "optional": true, "requires": { "underscore": "1.8.3", "web3-core-helpers": "1.0.0-beta.35", @@ -16869,7 +16773,6 @@ "resolved": "https://registry.npmjs.org/web3-core-subscriptions/-/web3-core-subscriptions-1.0.0-beta.35.tgz", "integrity": "sha512-gXzLrWvcGkGiWq1y33Z4Y80XI8XMrwowiQJkrPSjQ81K5PBKquOGwcMffLaKcwdmEy/NpsOXDeFo3eLE1Ghvvw==", "dev": true, - "optional": true, "requires": { "eventemitter3": "1.1.1", "underscore": "1.8.3", @@ -16902,7 +16805,6 @@ "resolved": "https://registry.npmjs.org/web3-eth-abi/-/web3-eth-abi-1.0.0-beta.35.tgz", "integrity": "sha512-KUDC+EtFFYG8z01ZleKrASdjj327/rtWHzEt6RWsEj7bBa0bGp9nEh+nqdZx/Sdgz1O8tnfFzJlrRcXpfr1vGg==", "dev": true, - "optional": true, "requires": { "bn.js": "4.11.6", "underscore": "1.8.3", @@ -16914,8 +16816,7 @@ "version": "4.11.6", "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.6.tgz", "integrity": "sha1-UzRK2xRhehP26N0s4okF0cC6MhU=", - "dev": true, - "optional": true + "dev": true } } }, @@ -16992,7 +16893,6 @@ "resolved": "https://registry.npmjs.org/web3-eth-iban/-/web3-eth-iban-1.0.0-beta.35.tgz", "integrity": "sha512-H5wkcNcAIc+h/WoDIKv7ZYmrM2Xqu3O7jBQl1IWo73EDVQji+AoB2i3J8tuwI1yZRInRwrfpI3Zuwuf54hXHmQ==", "dev": true, - "optional": true, "requires": { "bn.js": "4.11.6", "web3-utils": "1.0.0-beta.35" @@ -17002,8 +16902,7 @@ "version": "4.11.6", "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.6.tgz", "integrity": "sha1-UzRK2xRhehP26N0s4okF0cC6MhU=", - "dev": true, - "optional": true + "dev": true } } }, @@ -17012,7 +16911,6 @@ "resolved": "https://registry.npmjs.org/web3-eth-personal/-/web3-eth-personal-1.0.0-beta.35.tgz", "integrity": "sha512-AcM9nnlxu7ZRRxPvkrFB9eLxMM4A2cPfj2aCg21Wb2EpMnhR+b/O1cT33k7ApRowoMpM+T9M8vx2oPNwXfaCOQ==", "dev": true, - "optional": true, "requires": { "web3-core": "1.0.0-beta.35", "web3-core-helpers": "1.0.0-beta.35", @@ -17026,7 +16924,6 @@ "resolved": "https://registry.npmjs.org/web3-net/-/web3-net-1.0.0-beta.35.tgz", "integrity": "sha512-bbwaQ/KohGjIJ6HAKbZ6KrklCAaG6/B7hIbAbVLSFLxF+Yz9lmAgQYaDInpidpC/NLb3WOmcbRF+P77J4qMVIA==", "dev": true, - "optional": true, "requires": { "web3-core": "1.0.0-beta.35", "web3-core-method": "1.0.0-beta.35", @@ -17067,7 +16964,7 @@ "integrity": "sha1-jZWCAsftuq6Dlwf7pvCf8ydgYhA=", "dev": true, "requires": { - "ethereumjs-abi": "git+https://github.com/ethereumjs/ethereumjs-abi.git", + "ethereumjs-abi": "git+https://github.com/ethereumjs/ethereumjs-abi.git#d84a96796079c8595a0c78accd1e7709f2277215", "ethereumjs-util": "^5.1.1" } }, @@ -17132,7 +17029,6 @@ "resolved": "https://registry.npmjs.org/web3-providers-http/-/web3-providers-http-1.0.0-beta.35.tgz", "integrity": "sha512-DcIMFq52Fb08UpWyZ3ZlES6NsNqJnco4hBS/Ej6eOcASfuUayPI+GLkYVZsnF3cBYqlH+DOKuArcKSuIxK7jIA==", "dev": true, - "optional": true, "requires": { "web3-core-helpers": "1.0.0-beta.35", "xhr2-cookies": "1.1.0" @@ -17143,7 +17039,6 @@ "resolved": "https://registry.npmjs.org/web3-providers-ipc/-/web3-providers-ipc-1.0.0-beta.35.tgz", "integrity": "sha512-iB0FG0HcpUnayfa8pn4guqEQ4Y1nrroi/jffdtQgFkrNt0sD3fMSwwC0AbmECqj3tDLl0e1slBR0RENll+ZF0g==", "dev": true, - "optional": true, "requires": { "oboe": "2.1.3", "underscore": "1.8.3", @@ -17155,11 +17050,10 @@ "resolved": "https://registry.npmjs.org/web3-providers-ws/-/web3-providers-ws-1.0.0-beta.35.tgz", "integrity": "sha512-Cx64NgDStynKaUGDIIOfaCd0fZusL8h5avKTkdTjUu2aHhFJhZoVBGVLhoDtUaqZGWIZGcBJOoVf2JkGUOjDRQ==", "dev": true, - "optional": true, "requires": { "underscore": "1.8.3", "web3-core-helpers": "1.0.0-beta.35", - "websocket": "git://github.com/frozeman/WebSocket-Node.git#browserifyCompatible" + "websocket": "git://github.com/frozeman/WebSocket-Node.git#6c72925e3f8aaaea8dc8450f97627e85263999f2" }, "dependencies": { "debug": { @@ -17167,7 +17061,6 @@ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "dev": true, - "optional": true, "requires": { "ms": "2.0.0" } @@ -17176,7 +17069,6 @@ "version": "git://github.com/frozeman/WebSocket-Node.git#6c72925e3f8aaaea8dc8450f97627e85263999f2", "from": "git://github.com/frozeman/WebSocket-Node.git#browserifyCompatible", "dev": true, - "optional": true, "requires": { "debug": "^2.2.0", "nan": "^2.3.3", @@ -17204,7 +17096,6 @@ "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.0.0-beta.35.tgz", "integrity": "sha512-Dq6f0SOKj3BDFRgOPnE6ALbzBDCKVIW8mKWVf7tGVhTDHf+wQaWwQSC3aArFSqdExB75BPBPyDpuMTNszhljpA==", "dev": true, - "optional": true, "requires": { "bn.js": "4.11.6", "eth-lib": "0.1.27", @@ -17219,15 +17110,13 @@ "version": "4.11.6", "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.6.tgz", "integrity": "sha1-UzRK2xRhehP26N0s4okF0cC6MhU=", - "dev": true, - "optional": true + "dev": true }, "utf8": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/utf8/-/utf8-2.1.1.tgz", "integrity": "sha1-LgHbAvfY0JRPdxBPFgnrDDBM92g=", - "dev": true, - "optional": true + "dev": true } } }, @@ -17293,7 +17182,6 @@ "resolved": "https://registry.npmjs.org/ws/-/ws-3.3.3.tgz", "integrity": "sha512-nnWLa/NwZSt4KQJu51MYlCcSQ5g7INpOrOMt4XV8j4dqTXdmlUmSHQ8/oLC069ckre0fRsgfvsKwbTdtKLCDkA==", "dev": true, - "optional": true, "requires": { "async-limiter": "~1.0.0", "safe-buffer": "~5.1.0", @@ -17317,7 +17205,6 @@ "resolved": "https://registry.npmjs.org/xhr-request/-/xhr-request-1.1.0.tgz", "integrity": "sha512-Y7qzEaR3FDtL3fP30k9wO/e+FBnBByZeybKOhASsGP30NIkRAAkKD/sCnLvgEfAIEC1rcmK7YG8f4oEnIrrWzA==", "dev": true, - "optional": true, "requires": { "buffer-to-arraybuffer": "^0.0.5", "object-assign": "^4.1.1", @@ -17333,7 +17220,6 @@ "resolved": "https://registry.npmjs.org/xhr-request-promise/-/xhr-request-promise-0.1.2.tgz", "integrity": "sha1-NDxE0e53JrhkgGloLQ+EDIO0Jh0=", "dev": true, - "optional": true, "requires": { "xhr-request": "^1.0.1" } @@ -17343,7 +17229,6 @@ "resolved": "https://registry.npmjs.org/xhr2-cookies/-/xhr2-cookies-1.1.0.tgz", "integrity": "sha1-fXdEnQmZGX8VXLc7I99yUF7YnUg=", "dev": true, - "optional": true, "requires": { "cookiejar": "^2.1.1" } @@ -17445,6 +17330,12 @@ "integrity": "sha1-uuDfq6WIoMYNeDTA2Nwv9g7u8v4=", "dev": true }, + "get-stdin": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-5.0.1.tgz", + "integrity": "sha1-Ei4WFZHiH/TFJTAwVpPyDmOTo5g=", + "dev": true + }, "get-stream": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", @@ -17557,15 +17448,13 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=", - "dev": true, - "optional": true + "dev": true }, "is-glob": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", "dev": true, - "optional": true, "requires": { "is-extglob": "^1.0.0" } @@ -18248,8 +18137,7 @@ "version": "2.7.0", "resolved": "https://registry.npmjs.org/acorn/-/acorn-2.7.0.tgz", "integrity": "sha1-q259nYhqrKiwhbwzEreaGYQz8Oc=", - "dev": true, - "optional": true + "dev": true }, "acorn-globals": { "version": "1.0.9", @@ -18539,6 +18427,12 @@ "symbol-observable": "1.2.0" } }, + "indent-string": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-3.2.0.tgz", + "integrity": "sha1-Sl/W0nzDMvN+VBmlBNu4NxBckok=", + "dev": true + }, "indexes-of": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/indexes-of/-/indexes-of-1.0.1.tgz", @@ -20296,6 +20190,12 @@ "integrity": "sha1-JMS/zWsvuji/0FlNsRedjptlZWE=", "dev": true }, + "lodash.unescape": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/lodash.unescape/-/lodash.unescape-4.0.1.tgz", + "integrity": "sha1-vyJJiGzlFM2hEvrpIYzcBlIR/Jw=", + "dev": true + }, "lodash.uniq": { "version": "4.5.0", "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz", @@ -20316,6 +20216,43 @@ "integrity": "sha1-4PyVEztu8nbNyIh82vJKpvFW+Po=", "dev": true }, + "loglevel-colored-level-prefix": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/loglevel-colored-level-prefix/-/loglevel-colored-level-prefix-1.0.0.tgz", + "integrity": "sha1-akAhj9x64V/HbD0PPmdsRlOIYD4=", + "dev": true, + "requires": { + "chalk": "^1.1.3", + "loglevel": "^1.4.1" + }, + "dependencies": { + "ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", + "dev": true + }, + "chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "dev": true, + "requires": { + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" + } + }, + "supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", + "dev": true + } + } + }, "loose-envify": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", @@ -20376,6 +20313,24 @@ "integrity": "sha512-c3sIjNUow0+8swNwVpqoH4YCShKNFkMaw6oH1mNS2haDZQqkeZFlHS3dhoeEbKKmJB4vXpJucU6oH75aDYeE9g==", "dev": true }, + "make-plural": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/make-plural/-/make-plural-4.3.0.tgz", + "integrity": "sha512-xTYd4JVHpSCW+aqDof6w/MebaMVNTVYBZhbB/vi513xXdiPT92JMVCo0Jq8W2UZnzYRFeVbQiQ+I25l13JuKvA==", + "dev": true, + "requires": { + "minimist": "^1.2.0" + }, + "dependencies": { + "minimist": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", + "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", + "dev": true, + "optional": true + } + } + }, "makeerror": { "version": "1.0.11", "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.11.tgz", @@ -20406,6 +20361,12 @@ "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=", "dev": true }, + "map-obj": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-2.0.0.tgz", + "integrity": "sha1-plzSkIepJZi4eRJXpSPgISIqwfk=", + "dev": true + }, "map-or-similar": { "version": "1.5.0", "resolved": "https://registry.npmjs.org/map-or-similar/-/map-or-similar-1.5.0.tgz", @@ -20571,6 +20532,50 @@ "integrity": "sha512-gdUU1Fwj5ep4kplwcmftruWofEFt6lfpkkr3h860CXbAB9c3hGb55EOL2ali0Td5oebvW0E1+3Sr+Ur7XfKpRA==", "dev": true }, + "messageformat": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/messageformat/-/messageformat-1.1.1.tgz", + "integrity": "sha512-Q0uXcDtF5pEZsVSyhzDOGgZZK6ykN79VY9CwU3Nv0gsqx62BjdJW0MT+63UkHQ4exe3HE33ZlxR2/YwoJarRTg==", + "dev": true, + "requires": { + "glob": "~7.0.6", + "make-plural": "^4.1.1", + "messageformat-parser": "^1.1.0", + "nopt": "~3.0.6", + "reserved-words": "^0.1.2" + }, + "dependencies": { + "glob": { + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.0.6.tgz", + "integrity": "sha1-IRuvr0nlJbjNkyYNFKsTYVKz9Xo=", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.2", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "nopt": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz", + "integrity": "sha1-xkZdvwirzU2zWTF/eaxopkayj/k=", + "dev": true, + "requires": { + "abbrev": "1" + } + } + } + }, + "messageformat-parser": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/messageformat-parser/-/messageformat-parser-1.1.0.tgz", + "integrity": "sha512-Hwem6G3MsKDLS1FtBRGIs8T50P1Q00r3srS6QJePCFbad9fq0nYxwf3rnU2BreApRGhmpKMV7oZI06Sy1c9TPA==", + "dev": true + }, "methods": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", @@ -21787,8 +21792,7 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=", - "dev": true, - "optional": true + "dev": true }, "is-glob": { "version": "2.0.1", @@ -22027,6 +22031,12 @@ } } }, + "pluralize": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/pluralize/-/pluralize-7.0.0.tgz", + "integrity": "sha512-ARhBOdzS3e41FbkW/XWrTEtukqqLoK5+Z/4UeDaLuSW+39JPeFgs4gCGqsrJHVZX0fUrx//4OF0K1CUGwlIFow==", + "dev": true + }, "pn": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/pn/-/pn-1.1.0.tgz", @@ -22591,6 +22601,809 @@ "dev": true, "optional": true }, + "prettier": { + "version": "1.16.4", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-1.16.4.tgz", + "integrity": "sha512-ZzWuos7TI5CKUeQAtFd6Zhm2s6EpAD/ZLApIhsF9pRvRtM1RFo61dM/4MSRUA0SuLugA/zgrZD8m0BaY46Og7g==", + "dev": true + }, + "prettier-eslint": { + "version": "8.8.2", + "resolved": "https://registry.npmjs.org/prettier-eslint/-/prettier-eslint-8.8.2.tgz", + "integrity": "sha512-2UzApPuxi2yRoyMlXMazgR6UcH9DKJhNgCviIwY3ixZ9THWSSrUww5vkiZ3C48WvpFl1M1y/oU63deSy1puWEA==", + "dev": true, + "requires": { + "babel-runtime": "^6.26.0", + "common-tags": "^1.4.0", + "dlv": "^1.1.0", + "eslint": "^4.0.0", + "indent-string": "^3.2.0", + "lodash.merge": "^4.6.0", + "loglevel-colored-level-prefix": "^1.0.0", + "prettier": "^1.7.0", + "pretty-format": "^23.0.1", + "require-relative": "^0.8.7", + "typescript": "^2.5.1", + "typescript-eslint-parser": "^16.0.0", + "vue-eslint-parser": "^2.0.2" + }, + "dependencies": { + "acorn": { + "version": "5.7.3", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.7.3.tgz", + "integrity": "sha512-T/zvzYRfbVojPWahDsE5evJdHb3oJoQfFbsrKM7w5Zcs++Tr257tia3BmMP8XYVjp1S9RZXQMh7gao96BlqZOw==", + "dev": true + }, + "acorn-jsx": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-3.0.1.tgz", + "integrity": "sha1-r9+UiPsezvyDSPb7IvRk4ypYs2s=", + "dev": true, + "requires": { + "acorn": "^3.0.4" + }, + "dependencies": { + "acorn": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-3.3.0.tgz", + "integrity": "sha1-ReN/s56No/JbruP/U2niu18iAXo=", + "dev": true + } + } + }, + "ajv": { + "version": "5.5.2", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.5.2.tgz", + "integrity": "sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=", + "dev": true, + "requires": { + "co": "^4.6.0", + "fast-deep-equal": "^1.0.0", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.3.0" + } + }, + "ajv-keywords": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-2.1.1.tgz", + "integrity": "sha1-YXmX/F9gV2iUxDX5QNgZ4TW4B2I=", + "dev": true + }, + "ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "dev": true + }, + "chardet": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.4.2.tgz", + "integrity": "sha1-tUc7M9yXxCTl2Y3IfVXU2KKci/I=", + "dev": true + }, + "debug": { + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", + "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + }, + "eslint": { + "version": "4.19.1", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-4.19.1.tgz", + "integrity": "sha512-bT3/1x1EbZB7phzYu7vCr1v3ONuzDtX8WjuM9c0iYxe+cq+pwcKEoQjl7zd3RpC6YOLgnSy3cTN58M2jcoPDIQ==", + "dev": true, + "requires": { + "ajv": "^5.3.0", + "babel-code-frame": "^6.22.0", + "chalk": "^2.1.0", + "concat-stream": "^1.6.0", + "cross-spawn": "^5.1.0", + "debug": "^3.1.0", + "doctrine": "^2.1.0", + "eslint-scope": "^3.7.1", + "eslint-visitor-keys": "^1.0.0", + "espree": "^3.5.4", + "esquery": "^1.0.0", + "esutils": "^2.0.2", + "file-entry-cache": "^2.0.0", + "functional-red-black-tree": "^1.0.1", + "glob": "^7.1.2", + "globals": "^11.0.1", + "ignore": "^3.3.3", + "imurmurhash": "^0.1.4", + "inquirer": "^3.0.6", + "is-resolvable": "^1.0.0", + "js-yaml": "^3.9.1", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.3.0", + "lodash": "^4.17.4", + "minimatch": "^3.0.2", + "mkdirp": "^0.5.1", + "natural-compare": "^1.4.0", + "optionator": "^0.8.2", + "path-is-inside": "^1.0.2", + "pluralize": "^7.0.0", + "progress": "^2.0.0", + "regexpp": "^1.0.1", + "require-uncached": "^1.0.3", + "semver": "^5.3.0", + "strip-ansi": "^4.0.0", + "strip-json-comments": "~2.0.1", + "table": "4.0.2", + "text-table": "~0.2.0" + } + }, + "eslint-scope": { + "version": "3.7.3", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-3.7.3.tgz", + "integrity": "sha512-W+B0SvF4gamyCTmUc+uITPY0989iXVfKvhwtmJocTaYoc/3khEHmEmvfY/Gn9HA9VV75jrQECsHizkNw1b68FA==", + "dev": true, + "requires": { + "esrecurse": "^4.1.0", + "estraverse": "^4.1.1" + } + }, + "espree": { + "version": "3.5.4", + "resolved": "https://registry.npmjs.org/espree/-/espree-3.5.4.tgz", + "integrity": "sha512-yAcIQxtmMiB/jL32dzEp2enBeidsB7xWPLNiw3IIkpVds1P+h7qF9YwJq1yUNzp2OKXgAprs4F61ih66UsoD1A==", + "dev": true, + "requires": { + "acorn": "^5.5.0", + "acorn-jsx": "^3.0.0" + } + }, + "external-editor": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-2.2.0.tgz", + "integrity": "sha512-bSn6gvGxKt+b7+6TKEv1ZycHleA7aHhRHyAqJyp5pbUFuYYNIzpZnQDk7AsYckyWdEnTeAnay0aCy2aV6iTk9A==", + "dev": true, + "requires": { + "chardet": "^0.4.0", + "iconv-lite": "^0.4.17", + "tmp": "^0.0.33" + } + }, + "fast-deep-equal": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-1.1.0.tgz", + "integrity": "sha1-wFNHeBfIa1HaqFPIHgWbcz0CNhQ=", + "dev": true + }, + "file-entry-cache": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-2.0.0.tgz", + "integrity": "sha1-w5KZDD5oR4PYOLjISkXYoEhFg2E=", + "dev": true, + "requires": { + "flat-cache": "^1.2.1", + "object-assign": "^4.0.1" + } + }, + "flat-cache": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-1.3.4.tgz", + "integrity": "sha512-VwyB3Lkgacfik2vhqR4uv2rvebqmDvFu4jlN/C1RzWoJEo8I7z4Q404oiqYCkq41mni8EzQnm95emU9seckwtg==", + "dev": true, + "requires": { + "circular-json": "^0.3.1", + "graceful-fs": "^4.1.2", + "rimraf": "~2.6.2", + "write": "^0.2.1" + } + }, + "inquirer": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-3.3.0.tgz", + "integrity": "sha512-h+xtnyk4EwKvFWHrUYsWErEVR+igKtLdchu+o0Z1RL7VU/jVMFbYir2bp6bAj8efFNxWqHX0dIss6fJQ+/+qeQ==", + "dev": true, + "requires": { + "ansi-escapes": "^3.0.0", + "chalk": "^2.0.0", + "cli-cursor": "^2.1.0", + "cli-width": "^2.0.0", + "external-editor": "^2.0.4", + "figures": "^2.0.0", + "lodash": "^4.3.0", + "mute-stream": "0.0.7", + "run-async": "^2.2.0", + "rx-lite": "^4.0.8", + "rx-lite-aggregates": "^4.0.8", + "string-width": "^2.1.0", + "strip-ansi": "^4.0.0", + "through": "^2.3.6" + } + }, + "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", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "dev": true + }, + "json-schema-traverse": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz", + "integrity": "sha1-NJptRMU6Ud6JtAgFxdXlm0F9M0A=", + "dev": true + }, + "ms": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", + "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", + "dev": true + }, + "pretty-format": { + "version": "23.6.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-23.6.0.tgz", + "integrity": "sha512-zf9NV1NSlDLDjycnwm6hpFATCGl/K1lt0R/GdkAK2O5LN/rwJoB+Mh93gGJjut4YbmecbfgLWVGSTCr0Ewvvbw==", + "dev": true, + "requires": { + "ansi-regex": "^3.0.0", + "ansi-styles": "^3.2.0" + } + }, + "regexpp": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-1.1.0.tgz", + "integrity": "sha512-LOPw8FpgdQF9etWMaAfG/WRthIdXJGYp4mJ2Jgn/2lpkbod9jPn0t9UqN7AxBOKNfzRbYyVfgc7Vk4t/MpnXgw==", + "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", + "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "dev": true, + "requires": { + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" + } + }, + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "dev": true, + "requires": { + "ansi-regex": "^3.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": "1.0.0", + "string-width": "^2.1.1" + } + }, + "write": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/write/-/write-0.2.1.tgz", + "integrity": "sha1-X8A4KOJkzqP+kUVUdvejxWbLB1c=", + "dev": true, + "requires": { + "mkdirp": "^0.5.1" + } + } + } + }, + "prettier-eslint-cli": { + "version": "4.7.1", + "resolved": "https://registry.npmjs.org/prettier-eslint-cli/-/prettier-eslint-cli-4.7.1.tgz", + "integrity": "sha512-hQbsGaEVz97oBBcKdsJ46khv0kOGkMyWrXzcFOXW6X8UuetZ/j0yDJkNJgUTVc6PVFbbzBXk+qgd5vos9qzXPQ==", + "dev": true, + "requires": { + "arrify": "^1.0.1", + "babel-runtime": "^6.23.0", + "boolify": "^1.0.0", + "camelcase-keys": "^4.1.0", + "chalk": "2.3.0", + "common-tags": "^1.4.0", + "eslint": "^4.5.0", + "find-up": "^2.1.0", + "get-stdin": "^5.0.1", + "glob": "^7.1.1", + "ignore": "^3.2.7", + "indent-string": "^3.1.0", + "lodash.memoize": "^4.1.2", + "loglevel-colored-level-prefix": "^1.0.0", + "messageformat": "^1.0.2", + "prettier-eslint": "^8.5.0", + "rxjs": "^5.3.0", + "yargs": "10.0.3" + }, + "dependencies": { + "acorn": { + "version": "5.7.3", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.7.3.tgz", + "integrity": "sha512-T/zvzYRfbVojPWahDsE5evJdHb3oJoQfFbsrKM7w5Zcs++Tr257tia3BmMP8XYVjp1S9RZXQMh7gao96BlqZOw==", + "dev": true + }, + "acorn-jsx": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-3.0.1.tgz", + "integrity": "sha1-r9+UiPsezvyDSPb7IvRk4ypYs2s=", + "dev": true, + "requires": { + "acorn": "^3.0.4" + }, + "dependencies": { + "acorn": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-3.3.0.tgz", + "integrity": "sha1-ReN/s56No/JbruP/U2niu18iAXo=", + "dev": true + } + } + }, + "ajv": { + "version": "5.5.2", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.5.2.tgz", + "integrity": "sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=", + "dev": true, + "requires": { + "co": "^4.6.0", + "fast-deep-equal": "^1.0.0", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.3.0" + } + }, + "ajv-keywords": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-2.1.1.tgz", + "integrity": "sha1-YXmX/F9gV2iUxDX5QNgZ4TW4B2I=", + "dev": true + }, + "ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "dev": true + }, + "camelcase": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", + "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=", + "dev": true + }, + "chalk": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.0.tgz", + "integrity": "sha512-Az5zJR2CBujap2rqXGaJKaPHyJ0IrUimvYNX+ncCy8PJP4ltOGTrHUIo097ZaL2zMeKYpiCdqDvS6zdrTFok3Q==", + "dev": true, + "requires": { + "ansi-styles": "^3.1.0", + "escape-string-regexp": "^1.0.5", + "supports-color": "^4.0.0" + } + }, + "chardet": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.4.2.tgz", + "integrity": "sha1-tUc7M9yXxCTl2Y3IfVXU2KKci/I=", + "dev": true + }, + "cliui": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz", + "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=", + "dev": true, + "requires": { + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1", + "wrap-ansi": "^2.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "1.0.0", + "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.0" + } + }, + "string-width": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "dev": true, + "requires": { + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + } + }, + "strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "dev": true, + "requires": { + "ansi-regex": "^2.0.0" + } + } + } + }, + "debug": { + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", + "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + }, + "eslint": { + "version": "4.19.1", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-4.19.1.tgz", + "integrity": "sha512-bT3/1x1EbZB7phzYu7vCr1v3ONuzDtX8WjuM9c0iYxe+cq+pwcKEoQjl7zd3RpC6YOLgnSy3cTN58M2jcoPDIQ==", + "dev": true, + "requires": { + "ajv": "^5.3.0", + "babel-code-frame": "^6.22.0", + "chalk": "^2.1.0", + "concat-stream": "^1.6.0", + "cross-spawn": "^5.1.0", + "debug": "^3.1.0", + "doctrine": "^2.1.0", + "eslint-scope": "^3.7.1", + "eslint-visitor-keys": "^1.0.0", + "espree": "^3.5.4", + "esquery": "^1.0.0", + "esutils": "^2.0.2", + "file-entry-cache": "^2.0.0", + "functional-red-black-tree": "^1.0.1", + "glob": "^7.1.2", + "globals": "^11.0.1", + "ignore": "^3.3.3", + "imurmurhash": "^0.1.4", + "inquirer": "^3.0.6", + "is-resolvable": "^1.0.0", + "js-yaml": "^3.9.1", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.3.0", + "lodash": "^4.17.4", + "minimatch": "^3.0.2", + "mkdirp": "^0.5.1", + "natural-compare": "^1.4.0", + "optionator": "^0.8.2", + "path-is-inside": "^1.0.2", + "pluralize": "^7.0.0", + "progress": "^2.0.0", + "regexpp": "^1.0.1", + "require-uncached": "^1.0.3", + "semver": "^5.3.0", + "strip-ansi": "^4.0.0", + "strip-json-comments": "~2.0.1", + "table": "4.0.2", + "text-table": "~0.2.0" + } + }, + "eslint-scope": { + "version": "3.7.3", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-3.7.3.tgz", + "integrity": "sha512-W+B0SvF4gamyCTmUc+uITPY0989iXVfKvhwtmJocTaYoc/3khEHmEmvfY/Gn9HA9VV75jrQECsHizkNw1b68FA==", + "dev": true, + "requires": { + "esrecurse": "^4.1.0", + "estraverse": "^4.1.1" + } + }, + "espree": { + "version": "3.5.4", + "resolved": "https://registry.npmjs.org/espree/-/espree-3.5.4.tgz", + "integrity": "sha512-yAcIQxtmMiB/jL32dzEp2enBeidsB7xWPLNiw3IIkpVds1P+h7qF9YwJq1yUNzp2OKXgAprs4F61ih66UsoD1A==", + "dev": true, + "requires": { + "acorn": "^5.5.0", + "acorn-jsx": "^3.0.0" + } + }, + "external-editor": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-2.2.0.tgz", + "integrity": "sha512-bSn6gvGxKt+b7+6TKEv1ZycHleA7aHhRHyAqJyp5pbUFuYYNIzpZnQDk7AsYckyWdEnTeAnay0aCy2aV6iTk9A==", + "dev": true, + "requires": { + "chardet": "^0.4.0", + "iconv-lite": "^0.4.17", + "tmp": "^0.0.33" + } + }, + "fast-deep-equal": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-1.1.0.tgz", + "integrity": "sha1-wFNHeBfIa1HaqFPIHgWbcz0CNhQ=", + "dev": true + }, + "file-entry-cache": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-2.0.0.tgz", + "integrity": "sha1-w5KZDD5oR4PYOLjISkXYoEhFg2E=", + "dev": true, + "requires": { + "flat-cache": "^1.2.1", + "object-assign": "^4.0.1" + } + }, + "find-up": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", + "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", + "dev": true, + "requires": { + "locate-path": "^2.0.0" + } + }, + "flat-cache": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-1.3.4.tgz", + "integrity": "sha512-VwyB3Lkgacfik2vhqR4uv2rvebqmDvFu4jlN/C1RzWoJEo8I7z4Q404oiqYCkq41mni8EzQnm95emU9seckwtg==", + "dev": true, + "requires": { + "circular-json": "^0.3.1", + "graceful-fs": "^4.1.2", + "rimraf": "~2.6.2", + "write": "^0.2.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 + }, + "inquirer": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-3.3.0.tgz", + "integrity": "sha512-h+xtnyk4EwKvFWHrUYsWErEVR+igKtLdchu+o0Z1RL7VU/jVMFbYir2bp6bAj8efFNxWqHX0dIss6fJQ+/+qeQ==", + "dev": true, + "requires": { + "ansi-escapes": "^3.0.0", + "chalk": "^2.0.0", + "cli-cursor": "^2.1.0", + "cli-width": "^2.0.0", + "external-editor": "^2.0.4", + "figures": "^2.0.0", + "lodash": "^4.3.0", + "mute-stream": "0.0.7", + "run-async": "^2.2.0", + "rx-lite": "^4.0.8", + "rx-lite-aggregates": "^4.0.8", + "string-width": "^2.1.0", + "strip-ansi": "^4.0.0", + "through": "^2.3.6" + } + }, + "invert-kv": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz", + "integrity": "sha1-EEqOSqym09jNFXqO+L+rLXo//bY=", + "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", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "dev": true + }, + "json-schema-traverse": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz", + "integrity": "sha1-NJptRMU6Ud6JtAgFxdXlm0F9M0A=", + "dev": true + }, + "lcid": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz", + "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=", + "dev": true, + "requires": { + "invert-kv": "^1.0.0" + } + }, + "locate-path": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", + "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", + "dev": true, + "requires": { + "p-locate": "^2.0.0", + "path-exists": "^3.0.0" + } + }, + "mem": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/mem/-/mem-1.1.0.tgz", + "integrity": "sha1-Xt1StIXKHZAP5kiVUFOZoN+kX3Y=", + "dev": true, + "requires": { + "mimic-fn": "^1.0.0" + } + }, + "ms": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", + "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", + "dev": true + }, + "os-locale": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-2.1.0.tgz", + "integrity": "sha512-3sslG3zJbEYcaC4YVAvDorjGxc7tv6KVATnLPZONiljsUncvihe9BQoVCEs0RZ1kmf4Hk9OBqlZfJZWI4GanKA==", + "dev": true, + "requires": { + "execa": "^0.7.0", + "lcid": "^1.0.0", + "mem": "^1.1.0" + } + }, + "p-limit": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", + "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", + "dev": true, + "requires": { + "p-try": "^1.0.0" + } + }, + "p-locate": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", + "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", + "dev": true, + "requires": { + "p-limit": "^1.1.0" + } + }, + "p-try": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", + "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", + "dev": true + }, + "regexpp": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-1.1.0.tgz", + "integrity": "sha512-LOPw8FpgdQF9etWMaAfG/WRthIdXJGYp4mJ2Jgn/2lpkbod9jPn0t9UqN7AxBOKNfzRbYyVfgc7Vk4t/MpnXgw==", + "dev": true + }, + "rxjs": { + "version": "5.5.12", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-5.5.12.tgz", + "integrity": "sha512-xx2itnL5sBbqeeiVgNPVuQQ1nC8Jp2WfNJhXWHmElW9YmrpS9UVnNzhP3EH3HFqexO5Tlp8GhYY+WEcqcVMvGw==", + "dev": true, + "requires": { + "symbol-observable": "1.0.1" + } + }, + "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", + "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "dev": true, + "requires": { + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" + } + }, + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "dev": true, + "requires": { + "ansi-regex": "^3.0.0" + } + }, + "supports-color": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.5.0.tgz", + "integrity": "sha1-vnoN5ITexcXN34s9WRJQRJEvY1s=", + "dev": true, + "requires": { + "has-flag": "^2.0.0" + } + }, + "symbol-observable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-1.0.1.tgz", + "integrity": "sha1-g0D8RwLDEi310iKI+IKD9RPT/dQ=", + "dev": true + }, + "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": "1.0.0", + "string-width": "^2.1.1" + } + }, + "write": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/write/-/write-0.2.1.tgz", + "integrity": "sha1-X8A4KOJkzqP+kUVUdvejxWbLB1c=", + "dev": true, + "requires": { + "mkdirp": "^0.5.1" + } + }, + "y18n": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.1.tgz", + "integrity": "sha1-bRX7qITAhnnA136I53WegR4H+kE=", + "dev": true + }, + "yargs": { + "version": "10.0.3", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-10.0.3.tgz", + "integrity": "sha512-DqBpQ8NAUX4GyPP/ijDGHsJya4tYqLQrjPr95HNsr1YwL3+daCfvBwg7+gIC6IdJhR2kATh3hb61vjzMWEtjdw==", + "dev": true, + "requires": { + "cliui": "^3.2.0", + "decamelize": "^1.1.1", + "find-up": "^2.1.0", + "get-caller-file": "^1.0.1", + "os-locale": "^2.0.0", + "require-directory": "^2.1.1", + "require-main-filename": "^1.0.1", + "set-blocking": "^2.0.0", + "string-width": "^2.0.0", + "which-module": "^2.0.0", + "y18n": "^3.2.1", + "yargs-parser": "^8.0.0" + } + }, + "yargs-parser": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-8.1.0.tgz", + "integrity": "sha512-yP+6QqN8BmrgW2ggLtTbdrOyBNSI7zBa4IykmiV5R1wl1JWNxQvWhMfMdmzIYtKU7oP3OOInY/tl2ov3BDjnJQ==", + "dev": true, + "requires": { + "camelcase": "^4.1.0" + } + } + } + }, "pretty-error": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/pretty-error/-/pretty-error-2.1.1.tgz", @@ -22839,6 +23652,12 @@ "integrity": "sha512-sluvZZ1YiTLD5jsqZcDmFyV2EwToyXZBfpoVOmktMmW+VEnhgakFHnasVph65fOjGPTWN0Nw3+XQaSeMayr0kg==", "dev": true }, + "quick-lru": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-1.1.0.tgz", + "integrity": "sha1-Q2CxfGETatOAeDl/8RQW4Ybc+7g=", + "dev": true + }, "raf": { "version": "3.4.1", "resolved": "https://registry.npmjs.org/raf/-/raf-3.4.1.tgz", @@ -24004,6 +24823,45 @@ "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=", "dev": true }, + "require-relative": { + "version": "0.8.7", + "resolved": "https://registry.npmjs.org/require-relative/-/require-relative-0.8.7.tgz", + "integrity": "sha1-eZlTn8ngR6N5KPoZb44VY9q9Nt4=", + "dev": true + }, + "require-uncached": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/require-uncached/-/require-uncached-1.0.3.tgz", + "integrity": "sha1-Tg1W1slmL9MeQwEcS5WqSZVUIdM=", + "dev": true, + "requires": { + "caller-path": "^0.1.0", + "resolve-from": "^1.0.0" + }, + "dependencies": { + "caller-path": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/caller-path/-/caller-path-0.1.0.tgz", + "integrity": "sha1-lAhe9jWB7NPaqSREqP6U6CV3dR8=", + "dev": true, + "requires": { + "callsites": "^0.2.0" + } + }, + "callsites": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-0.2.0.tgz", + "integrity": "sha1-r6uWJikQp/M8GaV3WCXGnzTjUMo=", + "dev": true + }, + "resolve-from": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-1.0.1.tgz", + "integrity": "sha1-Jsv+k10a7uq7Kbw/5a6wHpPUQiY=", + "dev": true + } + } + }, "requires-port": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", @@ -24045,6 +24903,12 @@ } } }, + "reserved-words": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/reserved-words/-/reserved-words-0.1.2.tgz", + "integrity": "sha1-AKCUD5jNUBrqqsMWQR2a3FKzGrE=", + "dev": true + }, "resize-observer-polyfill": { "version": "1.5.1", "resolved": "https://registry.npmjs.org/resize-observer-polyfill/-/resize-observer-polyfill-1.5.1.tgz", @@ -24214,6 +25078,21 @@ "ganache-cli": "^6.0.3" } }, + "rx-lite": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/rx-lite/-/rx-lite-4.0.8.tgz", + "integrity": "sha1-Cx4Rr4vESDbwSmQH6S2kJGe3lEQ=", + "dev": true + }, + "rx-lite-aggregates": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/rx-lite-aggregates/-/rx-lite-aggregates-4.0.8.tgz", + "integrity": "sha1-dTuHqJoRyVRnxKwWJsTvxOBcZ74=", + "dev": true, + "requires": { + "rx-lite": "*" + } + }, "rxjs": { "version": "6.4.0", "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.4.0.tgz", @@ -25304,15 +26183,13 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=", - "dev": true, - "optional": true + "dev": true }, "is-glob": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", "dev": true, - "optional": true, "requires": { "is-extglob": "^1.0.0" } @@ -25360,7 +26237,6 @@ "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", "dev": true, - "optional": true, "requires": { "remove-trailing-separator": "^1.0.1" } @@ -25405,7 +26281,7 @@ "integrity": "sha1-pFVBdc1GKUMDWx8dOUMvdBxrYBk=", "dev": true, "requires": { - "bignumber.js": "git+https://github.com/debris/bignumber.js.git#master", + "bignumber.js": "git+https://github.com/debris/bignumber.js.git#c7a38de919ed75e6fb6ba38051986e294b328df9", "crypto-js": "^3.1.4", "utf8": "^2.1.1", "xmlhttprequest": "*" @@ -27077,7 +27953,7 @@ "requires": { "underscore": "1.8.3", "web3-core-helpers": "1.0.0-beta.37", - "websocket": "git://github.com/frozeman/WebSocket-Node.git#browserifyCompatible" + "websocket": "git://github.com/frozeman/WebSocket-Node.git#6c72925e3f8aaaea8dc8450f97627e85263999f2" } }, "web3-shh": { @@ -27491,7 +28367,7 @@ "requires": { "underscore": "1.8.3", "web3-core-helpers": "1.0.0-beta.37", - "websocket": "git://github.com/frozeman/WebSocket-Node.git#browserifyCompatible" + "websocket": "git://github.com/frozeman/WebSocket-Node.git#6c72925e3f8aaaea8dc8450f97627e85263999f2" } }, "web3-shh": { @@ -27748,7 +28624,7 @@ "requires": { "underscore": "1.8.3", "web3-core-helpers": "1.0.0-beta.37", - "websocket": "git://github.com/frozeman/WebSocket-Node.git#browserifyCompatible" + "websocket": "git://github.com/frozeman/WebSocket-Node.git#6c72925e3f8aaaea8dc8450f97627e85263999f2" } }, "web3-shh": { @@ -28027,7 +28903,7 @@ "requires": { "underscore": "1.8.3", "web3-core-helpers": "1.0.0-beta.37", - "websocket": "git://github.com/frozeman/WebSocket-Node.git#browserifyCompatible" + "websocket": "git://github.com/frozeman/WebSocket-Node.git#6c72925e3f8aaaea8dc8450f97627e85263999f2" } }, "web3-shh": { @@ -28362,7 +29238,7 @@ "requires": { "underscore": "1.8.3", "web3-core-helpers": "1.0.0-beta.37", - "websocket": "git://github.com/frozeman/WebSocket-Node.git#browserifyCompatible" + "websocket": "git://github.com/frozeman/WebSocket-Node.git#6c72925e3f8aaaea8dc8450f97627e85263999f2" } }, "web3-shh": { @@ -28632,7 +29508,7 @@ "requires": { "underscore": "1.8.3", "web3-core-helpers": "1.0.0-beta.37", - "websocket": "git://github.com/frozeman/WebSocket-Node.git#browserifyCompatible" + "websocket": "git://github.com/frozeman/WebSocket-Node.git#6c72925e3f8aaaea8dc8450f97627e85263999f2" } }, "web3-shh": { @@ -28887,7 +29763,7 @@ "requires": { "underscore": "1.8.3", "web3-core-helpers": "1.0.0-beta.37", - "websocket": "git://github.com/frozeman/WebSocket-Node.git#browserifyCompatible" + "websocket": "git://github.com/frozeman/WebSocket-Node.git#6c72925e3f8aaaea8dc8450f97627e85263999f2" } }, "web3-shh": { @@ -29161,7 +30037,7 @@ "requires": { "underscore": "1.8.3", "web3-core-helpers": "1.0.0-beta.37", - "websocket": "git://github.com/frozeman/WebSocket-Node.git#browserifyCompatible" + "websocket": "git://github.com/frozeman/WebSocket-Node.git#6c72925e3f8aaaea8dc8450f97627e85263999f2" } }, "web3-shh": { @@ -29890,7 +30766,7 @@ "requires": { "underscore": "1.8.3", "web3-core-helpers": "1.0.0-beta.37", - "websocket": "git://github.com/frozeman/WebSocket-Node.git#browserifyCompatible" + "websocket": "git://github.com/frozeman/WebSocket-Node.git#6c72925e3f8aaaea8dc8450f97627e85263999f2" } }, "web3-shh": { @@ -30075,6 +30951,12 @@ "is-typedarray": "^1.0.0" } }, + "typescript": { + "version": "2.9.2", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-2.9.2.tgz", + "integrity": "sha512-Gr4p6nFNaoufRIY4NMdpQRNmgxVIGMs4Fcu/ujdYk3nAZqk7supzBE9idmvfZIlH/Cuj//dvi+019qEue9lV0w==", + "dev": true + }, "typescript-compare": { "version": "0.0.2", "resolved": "https://registry.npmjs.org/typescript-compare/-/typescript-compare-0.0.2.tgz", @@ -30084,6 +30966,24 @@ "typescript-logic": "^0.0.0" } }, + "typescript-eslint-parser": { + "version": "16.0.1", + "resolved": "https://registry.npmjs.org/typescript-eslint-parser/-/typescript-eslint-parser-16.0.1.tgz", + "integrity": "sha512-IKawLTu4A2xN3aN/cPLxvZ0bhxZHILGDKTZWvWNJ3sLNhJ3PjfMEDQmR2VMpdRPrmWOadgWXRwjLBzSA8AGsaQ==", + "dev": true, + "requires": { + "lodash.unescape": "4.0.1", + "semver": "5.5.0" + }, + "dependencies": { + "semver": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.5.0.tgz", + "integrity": "sha512-4SJ3dm0WAwWy/NVeioZh5AntkdJoWKxHxcmyP622fOkgHa4z3R0TdBJICINyaSDE6uNwVc8gZr+ZinwZAH4xIA==", + "dev": true + } + } + }, "typescript-logic": { "version": "0.0.0", "resolved": "https://registry.npmjs.org/typescript-logic/-/typescript-logic-0.0.0.tgz", @@ -30622,6 +31522,80 @@ "integrity": "sha512-ImThpeNU9HbdZL3utgMCq0oiMzAkt1mcgy3/E6zWC/G6AaQoeuFdsl9nDhTDU3X1R6FK7nsIUuRACVcjI+A2GQ==", "dev": true }, + "vue-eslint-parser": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/vue-eslint-parser/-/vue-eslint-parser-2.0.3.tgz", + "integrity": "sha512-ZezcU71Owm84xVF6gfurBQUGg8WQ+WZGxgDEQu1IHFBZNx7BFZg3L1yHxrCBNNwbwFtE1GuvfJKMtb6Xuwc/Bw==", + "dev": true, + "requires": { + "debug": "^3.1.0", + "eslint-scope": "^3.7.1", + "eslint-visitor-keys": "^1.0.0", + "espree": "^3.5.2", + "esquery": "^1.0.0", + "lodash": "^4.17.4" + }, + "dependencies": { + "acorn": { + "version": "5.7.3", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.7.3.tgz", + "integrity": "sha512-T/zvzYRfbVojPWahDsE5evJdHb3oJoQfFbsrKM7w5Zcs++Tr257tia3BmMP8XYVjp1S9RZXQMh7gao96BlqZOw==", + "dev": true + }, + "acorn-jsx": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-3.0.1.tgz", + "integrity": "sha1-r9+UiPsezvyDSPb7IvRk4ypYs2s=", + "dev": true, + "requires": { + "acorn": "^3.0.4" + }, + "dependencies": { + "acorn": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-3.3.0.tgz", + "integrity": "sha1-ReN/s56No/JbruP/U2niu18iAXo=", + "dev": true + } + } + }, + "debug": { + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", + "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + }, + "eslint-scope": { + "version": "3.7.3", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-3.7.3.tgz", + "integrity": "sha512-W+B0SvF4gamyCTmUc+uITPY0989iXVfKvhwtmJocTaYoc/3khEHmEmvfY/Gn9HA9VV75jrQECsHizkNw1b68FA==", + "dev": true, + "requires": { + "esrecurse": "^4.1.0", + "estraverse": "^4.1.1" + } + }, + "espree": { + "version": "3.5.4", + "resolved": "https://registry.npmjs.org/espree/-/espree-3.5.4.tgz", + "integrity": "sha512-yAcIQxtmMiB/jL32dzEp2enBeidsB7xWPLNiw3IIkpVds1P+h7qF9YwJq1yUNzp2OKXgAprs4F61ih66UsoD1A==", + "dev": true, + "requires": { + "acorn": "^5.5.0", + "acorn-jsx": "^3.0.0" + } + }, + "ms": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", + "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", + "dev": true + } + } + }, "vue-router": { "version": "2.8.1", "resolved": "https://registry.npmjs.org/vue-router/-/vue-router-2.8.1.tgz", @@ -30981,7 +31955,7 @@ "requires": { "underscore": "1.8.3", "web3-core-helpers": "1.0.0-beta.37", - "websocket": "git://github.com/frozeman/WebSocket-Node.git#browserifyCompatible" + "websocket": "git://github.com/frozeman/WebSocket-Node.git#6c72925e3f8aaaea8dc8450f97627e85263999f2" } } } @@ -31035,7 +32009,7 @@ "eventemitter3": "3.1.0", "lodash": "^4.17.11", "url-parse": "1.4.4", - "websocket": "git://github.com/frozeman/WebSocket-Node.git#browserifyCompatible", + "websocket": "git://github.com/frozeman/WebSocket-Node.git#6c72925e3f8aaaea8dc8450f97627e85263999f2", "xhr2-cookies": "1.1.0" }, "dependencies": { @@ -31073,7 +32047,7 @@ "requires": { "underscore": "1.8.3", "web3-core-helpers": "1.0.0-beta.37", - "websocket": "git://github.com/frozeman/WebSocket-Node.git#browserifyCompatible" + "websocket": "git://github.com/frozeman/WebSocket-Node.git#6c72925e3f8aaaea8dc8450f97627e85263999f2" } }, "web3-shh": { diff --git a/package.json b/package.json index bf5e5de9..5eb8b533 100644 --- a/package.json +++ b/package.json @@ -23,7 +23,8 @@ "start": "node scripts/start.js", "storybook": "start-storybook -p 6006", "test": "NODE_ENV=test && node scripts/test.js --env=jsdom", - "test-local": "NODE_ENV=test && node scripts/test.js --env=jsdom" + "test-local": "NODE_ENV=test && node scripts/test.js --env=jsdom", + "format": "prettier-eslint \"src/**/*.js\" --write" }, "pre-commit": [ "precommit" @@ -152,6 +153,7 @@ "postcss-mixins": "^6.2.0", "postcss-simple-vars": "^5.0.2", "pre-commit": "^1.2.2", + "prettier-eslint-cli": "^4.7.1", "run-with-testrpc": "^0.3.0", "storybook-host": "^5.0.3", "storybook-router": "^0.3.3", diff --git a/src/components/Footer/index.stories.js b/src/components/Footer/index.stories.js index 1af60805..f3220920 100644 --- a/src/components/Footer/index.stories.js +++ b/src/components/Footer/index.stories.js @@ -7,7 +7,7 @@ import Component from './index' const FrameDecorator = story => (
- { story() } + {story()}
) diff --git a/src/components/Header/component/Layout.stories.js b/src/components/Header/component/Layout.stories.js index 01111749..7d0ccbe3 100644 --- a/src/components/Header/component/Layout.stories.js +++ b/src/components/Header/component/Layout.stories.js @@ -8,11 +8,7 @@ import UserDetails from './ProviderDetails/UserDetails' import ProviderDisconnected from './ProviderInfo/ProviderDisconnected' import ConnectDetails from './ProviderDetails/ConnectDetails' -const FrameDecorator = story => ( -
- { story() } -
-) +const FrameDecorator = story =>
{story()}
storiesOf('Components /Header', module) .addDecorator(FrameDecorator) @@ -36,12 +32,7 @@ storiesOf('Components /Header', module) const userAddress = '0x873faa4cddd5b157e8e5a57e7a5479afc5d30moe' const network = 'RINKEBY' const info = - const details = () + const details = return }) diff --git a/src/components/Header/selector.js b/src/components/Header/selector.js index 76b98813..9e9baad2 100644 --- a/src/components/Header/selector.js +++ b/src/components/Header/selector.js @@ -1,6 +1,12 @@ // @flow import { createStructuredSelector } from 'reselect' -import { providerNameSelector, userAccountSelector, networkSelector, availableSelector, loadedSelector } from '~/logic/wallets/store/selectors' +import { + providerNameSelector, + userAccountSelector, + networkSelector, + availableSelector, + loadedSelector, +} from '~/logic/wallets/store/selectors' export type SelectorProps = { provider: string, diff --git a/src/components/Identicon/blockies.js b/src/components/Identicon/blockies.js index 1123ab5e..538b828d 100644 --- a/src/components/Identicon/blockies.js +++ b/src/components/Identicon/blockies.js @@ -1,10 +1,12 @@ /* eslint-disable */ -(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) : - typeof define === 'function' && define.amd ? define(['exports'], factory) : - (factory((global.blockies = {}))); -}(this, (function (exports) { - 'use strict'; +;(function(global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' + ? factory(exports) + : typeof define === 'function' && define.amd + ? define(['exports'], factory) + : factory((global.blockies = {})) +})(this, function(exports) { + 'use strict' /** * A handy class to calculate color values. @@ -17,207 +19,210 @@ * */ - // helper functions for that ctx function write(buffer, offs) { for (var i = 2; i < arguments.length; i++) { for (var j = 0; j < arguments[i].length; j++) { - buffer[offs++] = arguments[i].charAt(j); + buffer[offs++] = arguments[i].charAt(j) } } } function byte2(w) { - return String.fromCharCode((w >> 8) & 255, w & 255); + return String.fromCharCode((w >> 8) & 255, w & 255) } function byte4(w) { - return String.fromCharCode((w >> 24) & 255, (w >> 16) & 255, (w >> 8) & 255, w & 255); + return String.fromCharCode((w >> 24) & 255, (w >> 16) & 255, (w >> 8) & 255, w & 255) } function byte2lsb(w) { - return String.fromCharCode(w & 255, (w >> 8) & 255); + return String.fromCharCode(w & 255, (w >> 8) & 255) } - var PNG = function (width, height, depth) { - - this.width = width; - this.height = height; - this.depth = depth; + var PNG = function(width, height, depth) { + this.width = width + this.height = height + this.depth = depth // pixel data and row filter identifier size - this.pix_size = height * (width + 1); + this.pix_size = height * (width + 1) // deflate header, pix_size, block headers, adler32 checksum - this.data_size = 2 + this.pix_size + 5 * Math.floor((0xfffe + this.pix_size) / 0xffff) + 4; + this.data_size = 2 + this.pix_size + 5 * Math.floor((0xfffe + this.pix_size) / 0xffff) + 4 // offsets and sizes of Png chunks - this.ihdr_offs = 0; // IHDR offset and size - this.ihdr_size = 4 + 4 + 13 + 4; - this.plte_offs = this.ihdr_offs + this.ihdr_size; // PLTE offset and size - this.plte_size = 4 + 4 + 3 * depth + 4; - this.trns_offs = this.plte_offs + this.plte_size; // tRNS offset and size - this.trns_size = 4 + 4 + depth + 4; - this.idat_offs = this.trns_offs + this.trns_size; // IDAT offset and size - this.idat_size = 4 + 4 + this.data_size + 4; - this.iend_offs = this.idat_offs + this.idat_size; // IEND offset and size - this.iend_size = 4 + 4 + 4; - this.buffer_size = this.iend_offs + this.iend_size; // total PNG size + this.ihdr_offs = 0 // IHDR offset and size + this.ihdr_size = 4 + 4 + 13 + 4 + this.plte_offs = this.ihdr_offs + this.ihdr_size // PLTE offset and size + this.plte_size = 4 + 4 + 3 * depth + 4 + this.trns_offs = this.plte_offs + this.plte_size // tRNS offset and size + this.trns_size = 4 + 4 + depth + 4 + this.idat_offs = this.trns_offs + this.trns_size // IDAT offset and size + this.idat_size = 4 + 4 + this.data_size + 4 + this.iend_offs = this.idat_offs + this.idat_size // IEND offset and size + this.iend_size = 4 + 4 + 4 + this.buffer_size = this.iend_offs + this.iend_size // total PNG size - this.buffer = new Array(); - this.palette = new Object(); - this.pindex = 0; + this.buffer = new Array() + this.palette = new Object() + this.pindex = 0 - var _crc32 = new Array(); + var _crc32 = new Array() // initialize buffer with zero bytes for (var i = 0; i < this.buffer_size; i++) { - this.buffer[i] = "\x00"; + this.buffer[i] = '\x00' } // initialize non-zero elements - write(this.buffer, this.ihdr_offs, byte4(this.ihdr_size - 12), 'IHDR', byte4(width), byte4(height), "\x08\x03"); - write(this.buffer, this.plte_offs, byte4(this.plte_size - 12), 'PLTE'); - write(this.buffer, this.trns_offs, byte4(this.trns_size - 12), 'tRNS'); - write(this.buffer, this.idat_offs, byte4(this.idat_size - 12), 'IDAT'); - write(this.buffer, this.iend_offs, byte4(this.iend_size - 12), 'IEND'); + write(this.buffer, this.ihdr_offs, byte4(this.ihdr_size - 12), 'IHDR', byte4(width), byte4(height), '\x08\x03') + write(this.buffer, this.plte_offs, byte4(this.plte_size - 12), 'PLTE') + write(this.buffer, this.trns_offs, byte4(this.trns_size - 12), 'tRNS') + write(this.buffer, this.idat_offs, byte4(this.idat_size - 12), 'IDAT') + write(this.buffer, this.iend_offs, byte4(this.iend_size - 12), 'IEND') // initialize deflate header - var header = ((8 + (7 << 4)) << 8) | (3 << 6); - header += 31 - (header % 31); + var header = ((8 + (7 << 4)) << 8) | (3 << 6) + header += 31 - (header % 31) - write(this.buffer, this.idat_offs + 8, byte2(header)); + write(this.buffer, this.idat_offs + 8, byte2(header)) // initialize deflate block headers for (var i = 0; (i << 16) - 1 < this.pix_size; i++) { - var size, bits; + var size, bits if (i + 0xffff < this.pix_size) { - size = 0xffff; - bits = "\x00"; + size = 0xffff + bits = '\x00' } else { - size = this.pix_size - (i << 16) - i; - bits = "\x01"; + size = this.pix_size - (i << 16) - i + bits = '\x01' } - write(this.buffer, this.idat_offs + 8 + 2 + (i << 16) + (i << 2), bits, byte2lsb(size), byte2lsb(~size)); + write(this.buffer, this.idat_offs + 8 + 2 + (i << 16) + (i << 2), bits, byte2lsb(size), byte2lsb(~size)) } /* Create crc32 lookup table */ for (var i = 0; i < 256; i++) { - var c = i; + var c = i for (var j = 0; j < 8; j++) { if (c & 1) { - c = -306674912 ^ ((c >> 1) & 0x7fffffff); + c = -306674912 ^ ((c >> 1) & 0x7fffffff) } else { - c = (c >> 1) & 0x7fffffff; + c = (c >> 1) & 0x7fffffff } } - _crc32[i] = c; + _crc32[i] = c } // compute the index into a png for a given pixel - this.index = function (x, y) { - var i = y * (this.width + 1) + x + 1; - var j = this.idat_offs + 8 + 2 + 5 * Math.floor((i / 0xffff) + 1) + i; - return j; - }; + this.index = function(x, y) { + var i = y * (this.width + 1) + x + 1 + var j = this.idat_offs + 8 + 2 + 5 * Math.floor(i / 0xffff + 1) + i + return j + } // convert a color and build up the palette - this.color = function (red, green, blue, alpha) { + this.color = function(red, green, blue, alpha) { + alpha = alpha >= 0 ? alpha : 255 + var color = (((((alpha << 8) | red) << 8) | green) << 8) | blue - alpha = alpha >= 0 ? alpha : 255; - var color = (((((alpha << 8) | red) << 8) | green) << 8) | blue; + if (typeof this.palette[color] == 'undefined') { + if (this.pindex == this.depth) return '\x00' - if (typeof this.palette[color] == "undefined") { - if (this.pindex == this.depth) return "\x00"; + var ndx = this.plte_offs + 8 + 3 * this.pindex - var ndx = this.plte_offs + 8 + 3 * this.pindex; + this.buffer[ndx + 0] = String.fromCharCode(red) + this.buffer[ndx + 1] = String.fromCharCode(green) + this.buffer[ndx + 2] = String.fromCharCode(blue) + this.buffer[this.trns_offs + 8 + this.pindex] = String.fromCharCode(alpha) - this.buffer[ndx + 0] = String.fromCharCode(red); - this.buffer[ndx + 1] = String.fromCharCode(green); - this.buffer[ndx + 2] = String.fromCharCode(blue); - this.buffer[this.trns_offs + 8 + this.pindex] = String.fromCharCode(alpha); - - this.palette[color] = String.fromCharCode(this.pindex++); + this.palette[color] = String.fromCharCode(this.pindex++) } - return this.palette[color]; - }; + return this.palette[color] + } // output a PNG string, Base64 encoded - this.getBase64 = function () { + this.getBase64 = function() { + var s = this.getDump() - var s = this.getDump(); - - var ch = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="; - var c1, c2, c3, e1, e2, e3, e4; - var l = s.length; - var i = 0; - var r = ""; + var ch = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=' + var c1, c2, c3, e1, e2, e3, e4 + var l = s.length + var i = 0 + var r = '' do { - c1 = s.charCodeAt(i); - e1 = c1 >> 2; - c2 = s.charCodeAt(i + 1); - e2 = ((c1 & 3) << 4) | (c2 >> 4); - c3 = s.charCodeAt(i + 2); - if (l < i + 2) { e3 = 64; } else { e3 = ((c2 & 0xf) << 2) | (c3 >> 6); } - if (l < i + 3) { e4 = 64; } else { e4 = c3 & 0x3f; } - r += ch.charAt(e1) + ch.charAt(e2) + ch.charAt(e3) + ch.charAt(e4); - } while ((i += 3) < l); - return r; - }; + c1 = s.charCodeAt(i) + e1 = c1 >> 2 + c2 = s.charCodeAt(i + 1) + e2 = ((c1 & 3) << 4) | (c2 >> 4) + c3 = s.charCodeAt(i + 2) + if (l < i + 2) { + e3 = 64 + } else { + e3 = ((c2 & 0xf) << 2) | (c3 >> 6) + } + if (l < i + 3) { + e4 = 64 + } else { + e4 = c3 & 0x3f + } + r += ch.charAt(e1) + ch.charAt(e2) + ch.charAt(e3) + ch.charAt(e4) + } while ((i += 3) < l) + return r + } // output a PNG string - this.getDump = function () { - + this.getDump = function() { // compute adler32 of output pixels + row filter bytes - var BASE = 65521; /* largest prime smaller than 65536 */ - var NMAX = 5552; /* NMAX is the largest n such that 255n(n+1)/2 + (n+1)(BASE-1) <= 2^32-1 */ - var s1 = 1; - var s2 = 0; - var n = NMAX; + var BASE = 65521 /* largest prime smaller than 65536 */ + var NMAX = 5552 /* NMAX is the largest n such that 255n(n+1)/2 + (n+1)(BASE-1) <= 2^32-1 */ + var s1 = 1 + var s2 = 0 + var n = NMAX for (var y = 0; y < this.height; y++) { for (var x = -1; x < this.width; x++) { - s1 += this.buffer[this.index(x, y)].charCodeAt(0); - s2 += s1; + s1 += this.buffer[this.index(x, y)].charCodeAt(0) + s2 += s1 if ((n -= 1) == 0) { - s1 %= BASE; - s2 %= BASE; - n = NMAX; + s1 %= BASE + s2 %= BASE + n = NMAX } } } - s1 %= BASE; - s2 %= BASE; - write(this.buffer, this.idat_offs + this.idat_size - 8, byte4((s2 << 16) | s1)); + s1 %= BASE + s2 %= BASE + write(this.buffer, this.idat_offs + this.idat_size - 8, byte4((s2 << 16) | s1)) // compute crc32 of the PNG chunks function crc32(png, offs, size) { - var crc = -1; + var crc = -1 for (var i = 4; i < size - 4; i += 1) { - crc = _crc32[(crc ^ png[offs + i].charCodeAt(0)) & 0xff] ^ ((crc >> 8) & 0x00ffffff); + crc = _crc32[(crc ^ png[offs + i].charCodeAt(0)) & 0xff] ^ ((crc >> 8) & 0x00ffffff) } - write(png, offs + size - 4, byte4(crc ^ -1)); + write(png, offs + size - 4, byte4(crc ^ -1)) } - crc32(this.buffer, this.ihdr_offs, this.ihdr_size); - crc32(this.buffer, this.plte_offs, this.plte_size); - crc32(this.buffer, this.trns_offs, this.trns_size); - crc32(this.buffer, this.idat_offs, this.idat_size); - crc32(this.buffer, this.iend_offs, this.iend_size); + crc32(this.buffer, this.ihdr_offs, this.ihdr_size) + crc32(this.buffer, this.plte_offs, this.plte_size) + crc32(this.buffer, this.trns_offs, this.trns_size) + crc32(this.buffer, this.idat_offs, this.idat_size) + crc32(this.buffer, this.iend_offs, this.iend_size) // convert PNG to string - return "\x89PNG\r\n\x1A\n" + this.buffer.join(''); - }; + return '\x89PNG\r\n\x1A\n' + this.buffer.join('') + } - this.fillRect = function (x, y, w, h, color) { + this.fillRect = function(x, y, w, h, color) { for (var i = 0; i < w; i++) { for (var j = 0; j < h; j++) { - this.buffer[this.index(x + i, y + j)] = color; + this.buffer[this.index(x + i, y + j)] = color } } - }; - }; + } + } // https://stackoverflow.com/questions/2353211/hsl-to-rgb-color-conversion /** @@ -233,90 +238,90 @@ */ function hue2rgb(p, q, t) { - if (t < 0) t += 1; - if (t > 1) t -= 1; - if (t < 1 / 6) return p + (q - p) * 6 * t; - if (t < 1 / 2) return q; - if (t < 2 / 3) return p + (q - p) * (2 / 3 - t) * 6; - return p; + if (t < 0) t += 1 + if (t > 1) t -= 1 + if (t < 1 / 6) return p + (q - p) * 6 * t + if (t < 1 / 2) return q + if (t < 2 / 3) return p + (q - p) * (2 / 3 - t) * 6 + return p } function hsl2rgb(h, s, l) { - var r, g, b; + var r, g, b if (s == 0) { - r = g = b = l; // achromatic + r = g = b = l // achromatic } else { - var q = l < 0.5 ? l * (1 + s) : l + s - l * s; - var p = 2 * l - q; - r = hue2rgb(p, q, h + 1 / 3); - g = hue2rgb(p, q, h); - b = hue2rgb(p, q, h - 1 / 3); + var q = l < 0.5 ? l * (1 + s) : l + s - l * s + var p = 2 * l - q + r = hue2rgb(p, q, h + 1 / 3) + g = hue2rgb(p, q, h) + b = hue2rgb(p, q, h - 1 / 3) } - return [Math.round(r * 255), Math.round(g * 255), Math.round(b * 255), 255]; + return [Math.round(r * 255), Math.round(g * 255), Math.round(b * 255), 255] } // The random number is a js implementation of the Xorshift PRNG - var randseed = new Array(4); // Xorshift: [x, y, z, w] 32 bit values + var randseed = new Array(4) // Xorshift: [x, y, z, w] 32 bit values function seedrand(seed) { for (var i = 0; i < randseed.length; i++) { - randseed[i] = 0; + randseed[i] = 0 } for (var i = 0; i < seed.length; i++) { - randseed[i % 4] = (randseed[i % 4] << 5) - randseed[i % 4] + seed.charCodeAt(i); + randseed[i % 4] = (randseed[i % 4] << 5) - randseed[i % 4] + seed.charCodeAt(i) } } function rand() { // based on Java's String.hashCode(), expanded to 4 32bit values - var t = randseed[0] ^ (randseed[0] << 11); + var t = randseed[0] ^ (randseed[0] << 11) - randseed[0] = randseed[1]; - randseed[1] = randseed[2]; - randseed[2] = randseed[3]; - randseed[3] = randseed[3] ^ (randseed[3] >> 19) ^ t ^ (t >> 8); + randseed[0] = randseed[1] + randseed[1] = randseed[2] + randseed[2] = randseed[3] + randseed[3] = randseed[3] ^ (randseed[3] >> 19) ^ t ^ (t >> 8) - return (randseed[3] >>> 0) / (1 << 31 >>> 0); + return (randseed[3] >>> 0) / ((1 << 31) >>> 0) } function createColor() { //saturation is the whole color spectrum - var h = Math.floor(rand() * 360); + var h = Math.floor(rand() * 360) //saturation goes from 40 to 100, it avoids greyish colors - var s = rand() * 60 + 40; + var s = rand() * 60 + 40 //lightness can be anything from 0 to 100, but probabilities are a bell curve around 50% - var l = (rand() + rand() + rand() + rand()) * 25; + var l = (rand() + rand() + rand() + rand()) * 25 - return [h / 360, s / 100, l / 100]; + return [h / 360, s / 100, l / 100] } function createImageData(size) { - var width = size; // Only support square icons for now - var height = size; + var width = size // Only support square icons for now + var height = size - var dataWidth = Math.ceil(width / 2); - var mirrorWidth = width - dataWidth; + var dataWidth = Math.ceil(width / 2) + var mirrorWidth = width - dataWidth - var data = []; + var data = [] for (var y = 0; y < height; y++) { - var row = []; + var row = [] for (var x = 0; x < dataWidth; x++) { // this makes foreground and background color to have a 43% (1/2.3) probability // spot color has 13% chance - row[x] = Math.floor(rand() * 2.3); + row[x] = Math.floor(rand() * 2.3) } - var r = row.slice(0, mirrorWidth); - r.reverse(); - row = row.concat(r); + var r = row.slice(0, mirrorWidth) + r.reverse() + row = row.concat(r) for (var i = 0; i < row.length; i++) { - data.push(row[i]); + data.push(row[i]) } } - return data; + return data } function buildOpts(opts) { @@ -324,43 +329,45 @@ throw 'No seed provided' } - seedrand(opts.seed); + seedrand(opts.seed) - return Object.assign({ - size: 8, - scale: 16, - color: createColor(), - bgcolor: createColor(), - spotcolor: createColor(), - }, opts) + return Object.assign( + { + size: 8, + scale: 16, + color: createColor(), + bgcolor: createColor(), + spotcolor: createColor(), + }, + opts, + ) } function toDataUrl(address) { - const opts = buildOpts({ seed: address.toLowerCase() }); + const opts = buildOpts({ seed: address.toLowerCase() }) - const imageData = createImageData(opts.size); - const width = Math.sqrt(imageData.length); + const imageData = createImageData(opts.size) + const width = Math.sqrt(imageData.length) - const p = new PNG(opts.size * opts.scale, opts.size * opts.scale, 3); - const bgcolor = p.color(...hsl2rgb(...opts.bgcolor)); - const color = p.color(...hsl2rgb(...opts.color)); - const spotcolor = p.color(...hsl2rgb(...opts.spotcolor)); + const p = new PNG(opts.size * opts.scale, opts.size * opts.scale, 3) + const bgcolor = p.color(...hsl2rgb(...opts.bgcolor)) + const color = p.color(...hsl2rgb(...opts.color)) + const spotcolor = p.color(...hsl2rgb(...opts.spotcolor)) for (var i = 0; i < imageData.length; i++) { - var row = Math.floor(i / width); - var col = i % width; + var row = Math.floor(i / width) + var col = i % width // if data is 0, leave the background if (imageData[i]) { // if data is 2, choose spot color, if 1 choose foreground - const pngColor = imageData[i] == 1 ? color : spotcolor; - p.fillRect(col * opts.scale, row * opts.scale, opts.scale, opts.scale, pngColor); + const pngColor = imageData[i] == 1 ? color : spotcolor + p.fillRect(col * opts.scale, row * opts.scale, opts.scale, opts.scale, pngColor) } } - return `data:image/png;base64,${p.getBase64()}`; + return `data:image/png;base64,${p.getBase64()}` } - exports.toDataUrl = toDataUrl; + exports.toDataUrl = toDataUrl - Object.defineProperty(exports, '__esModule', { value: true }); - -}))); + Object.defineProperty(exports, '__esModule', { value: true }) +}) diff --git a/src/components/Loader/indes.stories.js b/src/components/Loader/indes.stories.js index e7b8f9f1..f6576f3b 100644 --- a/src/components/Loader/indes.stories.js +++ b/src/components/Loader/indes.stories.js @@ -4,11 +4,7 @@ import * as React from 'react' import styles from '~/components/layout/PageFrame/index.scss' import Component from './index' -const FrameDecorator = story => ( -
- { story() } -
-) +const FrameDecorator = story =>
{story()}
storiesOf('Components', module) .addDecorator(FrameDecorator) diff --git a/src/components/Table/sorting.js b/src/components/Table/sorting.js index e41f8f13..bbe345ad 100644 --- a/src/components/Table/sorting.js +++ b/src/components/Table/sorting.js @@ -9,7 +9,6 @@ export type SortRow = T & Fixed export const buildOrderFieldFrom = (attr: string) => `${attr}Order` - const desc = (a: Object, b: Object, orderBy: string, orderProp: boolean) => { const order = orderProp ? buildOrderFieldFrom(orderBy) : orderBy @@ -24,7 +23,7 @@ const desc = (a: Object, b: Object, orderBy: string, orderProp: boolean) => { } // eslint-disable-next-line -export const stableSort = (array: Array, cmp: any, fixed: boolean): Array => { +export const stableSort = (array: Array, cmp: any, fixed: boolean): Array => { const fixedElems: Array = fixed ? array.filter((elem: any) => elem.fixed) : [] const data: Array = fixed ? array.filter((elem: any) => !elem[FIXED]) : array const stabilizedThis = data.map((el, index) => [el, index]) @@ -45,5 +44,6 @@ export const stableSort = (array: Array, cmp: any, fixed: bool export type Order = 'asc' | 'desc' -export const getSorting = (order: Order, orderBy: string, orderProp: boolean) => - (order === 'desc' ? (a: any, b: any) => desc(a, b, orderBy, orderProp) : (a: any, b: any) => -desc(a, b, orderBy, orderProp)) +export const getSorting = (order: Order, orderBy: string, orderProp: boolean) => (order === 'desc' + ? (a: any, b: any) => desc(a, b, orderBy, orderProp) + : (a: any, b: any) => -desc(a, b, orderBy, orderProp)) diff --git a/src/components/layout/Bold/index.js b/src/components/layout/Bold/index.js index 1fba3cb9..70dc4d69 100644 --- a/src/components/layout/Bold/index.js +++ b/src/components/layout/Bold/index.js @@ -9,11 +9,7 @@ class Bold extends React.PureComponent { render() { const { children, ...props } = this.props - return ( - - { children } - - ) + return {children} } } diff --git a/src/components/layout/Divider/index.js b/src/components/layout/Divider/index.js index 3a73eae8..0d81c3f7 100644 --- a/src/components/layout/Divider/index.js +++ b/src/components/layout/Divider/index.js @@ -7,8 +7,6 @@ const style = { borderRight: `solid 1px ${border}`, } -const Divider = () => ( -
-) +const Divider = () =>
export default Divider diff --git a/src/components/layout/Hairline/index.stories.js b/src/components/layout/Hairline/index.stories.js index 6dfd122d..338d7a80 100644 --- a/src/components/layout/Hairline/index.stories.js +++ b/src/components/layout/Hairline/index.stories.js @@ -5,10 +5,12 @@ import { host } from 'storybook-host' import Component from './index' storiesOf('Components', module) - .addDecorator(host({ - title: 'Hairline', - align: 'center', - height: 5, - width: '100%', - })) + .addDecorator( + host({ + title: 'Hairline', + align: 'center', + height: 5, + width: '100%', + }), + ) .add('Hairline', () => ) diff --git a/src/components/layout/Paragraph/index.js b/src/components/layout/Paragraph/index.js index 6e6e32e3..494beaab 100644 --- a/src/components/layout/Paragraph/index.js +++ b/src/components/layout/Paragraph/index.js @@ -28,7 +28,7 @@ class Paragraph extends React.PureComponent { className={cx(styles.paragraph, className, weight, { noMargin }, { dot }, size, color, transform, align)} {...props} > - { children } + {children}

) } diff --git a/src/logic/safe/safeTxHistory.js b/src/logic/safe/safeTxHistory.js index 1fe914a5..631ba995 100644 --- a/src/logic/safe/safeTxHistory.js +++ b/src/logic/safe/safeTxHistory.js @@ -18,8 +18,18 @@ const calculateBodyFrom = async ( type: TxServiceType, ) => { const gnosisSafe = await getSafeEthereumInstance(safeAddress) - const contractTransactionHash = - await gnosisSafe.getTransactionHash(to, valueInWei, data, operation, 0, 0, 0, 0, 0, nonce) + const contractTransactionHash = await gnosisSafe.getTransactionHash( + to, + valueInWei, + data, + operation, + 0, + 0, + 0, + 0, + 0, + nonce, + ) return JSON.stringify({ to: getWeb3().toChecksumAddress(to), diff --git a/src/logic/safe/safeTxSigner.js b/src/logic/safe/safeTxSigner.js index 3a7a44a2..2dd06b35 100644 --- a/src/logic/safe/safeTxSigner.js +++ b/src/logic/safe/safeTxSigner.js @@ -1,8 +1,10 @@ // @flow import { List } from 'immutable' -const generateSignatureFrom = (account: string) => - `000000000000000000000000${account.replace('0x', '')}000000000000000000000000000000000000000000000000000000000000000001` +const generateSignatureFrom = (account: string) => `000000000000000000000000${account.replace( + '0x', + '', +)}000000000000000000000000000000000000000000000000000000000000000001` export const buildSignaturesFrom = (ownersWhoHasSigned: List, sender: string) => { const signatures = ownersWhoHasSigned.push(sender) diff --git a/src/logic/wallets/ethAddresses.js b/src/logic/wallets/ethAddresses.js index e15c71e7..df1ec918 100644 --- a/src/logic/wallets/ethAddresses.js +++ b/src/logic/wallets/ethAddresses.js @@ -16,4 +16,4 @@ export const shortVersionOf = (address: string, cut: number) => { const final = 42 - cut return `${address.substring(0, initial)}...${address.substring(final)}` -} \ No newline at end of file +} diff --git a/src/logic/wallets/getWeb3.js b/src/logic/wallets/getWeb3.js index 472d6d1d..12d28a07 100644 --- a/src/logic/wallets/getWeb3.js +++ b/src/logic/wallets/getWeb3.js @@ -61,7 +61,11 @@ const getNetworkIdFrom = async (web3Provider) => { export const getProviderInfo: Function = async (): Promise => { if (typeof window.web3 === 'undefined') { return { - name: '', available: false, loaded: false, account: '', network: 0, + name: '', + available: false, + loaded: false, + account: '', + network: 0, } } diff --git a/src/logic/wallets/store/actions/fetchProvider.js b/src/logic/wallets/store/actions/fetchProvider.js index 14bbcbef..306664b0 100644 --- a/src/logic/wallets/store/actions/fetchProvider.js +++ b/src/logic/wallets/store/actions/fetchProvider.js @@ -11,7 +11,11 @@ export const processProviderResponse = (dispatch: ReduxDispatch<*>, provider: Pr } = provider const walletRecord = makeProvider({ - name, available, loaded, account, network, + name, + available, + loaded, + account, + network, }) dispatch(addProvider(walletRecord)) diff --git a/src/logic/wallets/store/reducer/provider.js b/src/logic/wallets/store/reducer/provider.js index 90fc43ca..23f719e5 100644 --- a/src/logic/wallets/store/reducer/provider.js +++ b/src/logic/wallets/store/reducer/provider.js @@ -7,7 +7,9 @@ export const PROVIDER_REDUCER_ID = 'providers' export type State = Provider -export default handleActions({ - [ADD_PROVIDER]: (state: State, { payload }: ActionType) => - makeProvider(payload), -}, makeProvider()) +export default handleActions( + { + [ADD_PROVIDER]: (state: State, { payload }: ActionType) => makeProvider(payload), + }, + makeProvider(), +) diff --git a/src/logic/wallets/store/test/provider.reducer.js b/src/logic/wallets/store/test/provider.reducer.js index 1d3a9e38..5cdb3c30 100644 --- a/src/logic/wallets/store/test/provider.reducer.js +++ b/src/logic/wallets/store/test/provider.reducer.js @@ -1,5 +1,7 @@ // @flow -import { combineReducers, createStore, applyMiddleware, compose } from 'redux' +import { + combineReducers, createStore, applyMiddleware, compose, +} from 'redux' import thunk from 'redux-thunk' import providerReducer, { PROVIDER_REDUCER_ID } from '~/logic/wallets/store/reducer/provider' import type { ProviderProps } from '~/logic/wallets/store/model/provider' @@ -13,19 +15,19 @@ const providerReducerTests = () => { const reducers = combineReducers({ [PROVIDER_REDUCER_ID]: providerReducer, }) - const middlewares = [ - thunk, - ] - const enhancers = [ - applyMiddleware(...middlewares), - ] + const middlewares = [thunk] + const enhancers = [applyMiddleware(...middlewares)] store = createStore(reducers, compose(...enhancers)) }) it('reducer should return default Provider record when no Metamask is loaded', () => { // GIVEN const emptyResponse: ProviderProps = { - name: '', loaded: false, available: false, account: '', network: 0, + name: '', + loaded: false, + available: false, + account: '', + network: 0, } // WHEN @@ -39,7 +41,11 @@ const providerReducerTests = () => { it('reducer should return avaiable with its default value when is loaded but not available', () => { // GIVEN const metamaskLoaded: ProviderProps = { - name: 'METAMASK', loaded: true, available: false, account: '', network: 0, + name: 'METAMASK', + loaded: true, + available: false, + account: '', + network: 0, } // WHEN @@ -53,7 +59,11 @@ const providerReducerTests = () => { it('reducer should return metamask provider when it is loaded and available', () => { // GIVEN const metamask: ProviderProps = { - name: 'METAMASK', loaded: true, available: true, account: '', network: 0, + name: 'METAMASK', + loaded: true, + available: true, + account: '', + network: 0, } // WHEN diff --git a/src/routes/load/container/selector.js b/src/routes/load/container/selector.js index 28f673b9..e2a9b6e2 100644 --- a/src/routes/load/container/selector.js +++ b/src/routes/load/container/selector.js @@ -16,4 +16,3 @@ const structuredSelector: Selector = createStructuredSele }) export default structuredSelector - diff --git a/src/routes/open/components/Layout.stories.js b/src/routes/open/components/Layout.stories.js index 7f78afff..98f4a541 100644 --- a/src/routes/open/components/Layout.stories.js +++ b/src/routes/open/components/Layout.stories.js @@ -8,18 +8,13 @@ import { getProviderInfo } from '~/logic/wallets/getWeb3' import { sleep } from '~/utils/timer' import Component from './Layout' -const FrameDecorator = story => ( -
- { story() } -
-) +const FrameDecorator = story =>
{story()}
const store = new Store({ safeAddress: '', safeTx: '', }) - storiesOf('Routes /open', module) .addDecorator(FrameDecorator) .add('Open safe with all props set', () => { @@ -42,7 +37,19 @@ storiesOf('Routes /open', module) store.set({ safeAddress: '0x03db1a8b26d08df23337e9276a36b474510f0025', // eslint-disable-next-line - safeTx: {"transactionHash":"0x4603de1ab6a92b4ee1fd67189089f5c02f5df5d135bf85af84083c27808c0544","transactionIndex":0,"blockHash":"0x593ce7d85fef2a492e8f759f485c8b66ff803773e77182c68dd45c439b7a956d","blockNumber":19,"gasUsed":3034193,"cumulativeGasUsed":3034193,"contractAddress":"0xfddda33736fb95b587cbfecc1ff4a50f717adc00","logs":[],"status":"0x01","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"}, + safeTx: { + transactionHash: '0x4603de1ab6a92b4ee1fd67189089f5c02f5df5d135bf85af84083c27808c0544', + transactionIndex: 0, + blockHash: '0x593ce7d85fef2a492e8f759f485c8b66ff803773e77182c68dd45c439b7a956d', + blockNumber: 19, + gasUsed: 3034193, + cumulativeGasUsed: 3034193, + contractAddress: '0xfddda33736fb95b587cbfecc1ff4a50f717adc00', + logs: [], + status: '0x01', + logsBloom: + '0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000', + }, }) } diff --git a/src/routes/open/components/fields.js b/src/routes/open/components/fields.js index bd2c1ba7..897eb4e4 100644 --- a/src/routes/open/components/fields.js +++ b/src/routes/open/components/fields.js @@ -7,7 +7,9 @@ export const getOwnerNameBy = (index: number) => `owner${index}Name` export const getOwnerAddressBy = (index: number) => `owner${index}Address` export const getNumOwnersFrom = (values: Object) => { - const accounts = Object.keys(values).sort().filter(key => /^owner\d+Name$/.test(key)) + const accounts = Object.keys(values) + .sort() + .filter(key => /^owner\d+Name$/.test(key)) return accounts.length } diff --git a/src/routes/open/utils/safeDataExtractor.js b/src/routes/open/utils/safeDataExtractor.js index e0d84130..44763579 100644 --- a/src/routes/open/utils/safeDataExtractor.js +++ b/src/routes/open/utils/safeDataExtractor.js @@ -1,12 +1,16 @@ // @flow export const getAccountsFrom = (values: Object): string[] => { - const accounts = Object.keys(values).sort().filter(key => /^owner\d+Address$/.test(key)) + const accounts = Object.keys(values) + .sort() + .filter(key => /^owner\d+Address$/.test(key)) return accounts.map(account => values[account]).slice(0, values.owners) } export const getNamesFrom = (values: Object): string[] => { - const accounts = Object.keys(values).sort().filter(key => /^owner\d+Name$/.test(key)) + const accounts = Object.keys(values) + .sort() + .filter(key => /^owner\d+Name$/.test(key)) return accounts.map(account => values[account]).slice(0, values.owners) } diff --git a/src/routes/opening/Layout.stories.js b/src/routes/opening/Layout.stories.js index 75ff5aef..5c208cbb 100644 --- a/src/routes/opening/Layout.stories.js +++ b/src/routes/opening/Layout.stories.js @@ -5,11 +5,7 @@ import styles from '~/components/layout/PageFrame/index.scss' import { ETHEREUM_NETWORK } from '~/logic/wallets/getWeb3' import Component from './component' -const FrameDecorator = story => ( -
- { story() } -
-) +const FrameDecorator = story =>
{story()}
storiesOf('Routes /opening', module) .addDecorator(FrameDecorator) @@ -20,8 +16,4 @@ storiesOf('Routes /opening', module) network={ETHEREUM_NETWORK.RINKEBY} /> )) - .add('Load this view without a tx', () => ( - - )) + .add('Load this view without a tx', () => ) diff --git a/src/routes/safe/component/Layout.stories.js b/src/routes/safe/component/Layout.stories.js index 241bd3f7..689a1bfe 100644 --- a/src/routes/safe/component/Layout.stories.js +++ b/src/routes/safe/component/Layout.stories.js @@ -5,30 +5,13 @@ import { List } from 'immutable' import styles from '~/components/layout/PageFrame/index.scss' import Component from './Layout' - -const FrameDecorator = story => ( -
- { story() } -
-) +const FrameDecorator = story =>
{story()}
storiesOf('Routes /safe:address', module) .addDecorator(FrameDecorator) .add('Safe undefined being connected', () => ( - {}} - /> + {}} /> )) .add('Safe undefined NOT connected', () => ( - {}} - /> + {}} /> )) diff --git a/src/routes/safe/component/NoRights/index.stories.js b/src/routes/safe/component/NoRights/index.stories.js index 469ef484..fbd53f8f 100644 --- a/src/routes/safe/component/NoRights/index.stories.js +++ b/src/routes/safe/component/NoRights/index.stories.js @@ -4,14 +4,8 @@ import * as React from 'react' import styles from '~/components/layout/PageFrame/index.scss' import Component from './index.jsx' -const FrameDecorator = story => ( -
- { story() } -
-) +const FrameDecorator = story =>
{story()}
storiesOf('Components', module) .addDecorator(FrameDecorator) - .add('NoRights', () => ( - - )) + .add('NoRights', () => ) diff --git a/src/routes/safe/component/RemoveOwner/selector.js b/src/routes/safe/component/RemoveOwner/selector.js index 54a4104a..3f8e9247 100644 --- a/src/routes/safe/component/RemoveOwner/selector.js +++ b/src/routes/safe/component/RemoveOwner/selector.js @@ -7,8 +7,7 @@ import { safeTransactionsSelector } from '~/routes/safe/store/selectors/index' const pendingTransactionsSelector = createSelector( safeTransactionsSelector, - (transactions: List) => - transactions.findEntry((tx: Transaction) => tx.get('isExecuted')), + (transactions: List) => transactions.findEntry((tx: Transaction) => tx.get('isExecuted')), ) export type SelectorProps = { diff --git a/src/routes/safe/store/actions/addSafe.js b/src/routes/safe/store/actions/addSafe.js index 5a1beef6..5d0bed6f 100644 --- a/src/routes/safe/store/actions/addSafe.js +++ b/src/routes/safe/store/actions/addSafe.js @@ -14,15 +14,15 @@ export const buildOwnersFrom = (names: Array, addresses: Array) const addSafe = createAction( ADD_SAFE, - ( - name: string, address: string, threshold: number, - ownersName: string[], ownersAddress: string[], - ): SafeProps => { + (name: string, address: string, threshold: number, ownersName: string[], ownersAddress: string[]): SafeProps => { const owners: List = buildOwnersFrom(ownersName, ownersAddress) - return ({ - address, name, threshold, owners, - }) + return { + address, + name, + threshold, + owners, + } }, ) diff --git a/src/routes/safe/store/actions/fetchSafe.js b/src/routes/safe/store/actions/fetchSafe.js index c34d0bfd..2ae5d653 100644 --- a/src/routes/safe/store/actions/fetchSafe.js +++ b/src/routes/safe/store/actions/fetchSafe.js @@ -9,12 +9,10 @@ import { getOwners, getSafeName } from '~/utils/localStorage' import { getGnosisSafeContract } from '~/logic/contracts/safeContracts' import { getWeb3 } from '~/logic/wallets/getWeb3' -const buildOwnersFrom = (safeOwners: string[], storedOwners: Map) => ( - safeOwners.map((ownerAddress: string) => { - const ownerName = storedOwners.get(ownerAddress.toLowerCase()) || 'UNKNOWN' - return makeOwner({ name: ownerName, address: ownerAddress }) - }) -) +const buildOwnersFrom = (safeOwners: string[], storedOwners: Map) => safeOwners.map((ownerAddress: string) => { + const ownerName = storedOwners.get(ownerAddress.toLowerCase()) || 'UNKNOWN' + return makeOwner({ name: ownerName, address: ownerAddress }) +}) export const buildSafe = async (safeAddress: string, safeName: string) => { const web3 = getWeb3() @@ -42,7 +40,7 @@ export default (safeAddress: string) => async (dispatch: ReduxDispatch> -export default handleActions({ - [ADD_TRANSACTIONS]: (state: State, action: ActionType): State => - action.payload, -}, Map()) +export default handleActions( + { + [ADD_TRANSACTIONS]: (state: State, action: ActionType): State => action.payload, + }, + Map(), +) diff --git a/src/routes/safe/store/selectors/index.js b/src/routes/safe/store/selectors/index.js index e5bd4e10..4f2d557f 100644 --- a/src/routes/safe/store/selectors/index.js +++ b/src/routes/safe/store/selectors/index.js @@ -58,7 +58,7 @@ export const confirmationsTransactionSelector: Selector confirmation.get('type') === 'confirmation')).count() + return confirmations.filter((confirmation: Confirmation) => confirmation.get('type') === 'confirmation').count() }, ) diff --git a/src/routes/safe/store/test/builder/safe.builder.js b/src/routes/safe/store/test/builder/safe.builder.js index cb0f16c5..15a772ad 100644 --- a/src/routes/safe/store/test/builder/safe.builder.js +++ b/src/routes/safe/store/test/builder/safe.builder.js @@ -45,14 +45,14 @@ export class SafeFactory { .withOwner(['Adol Metamask'], [ownerAddress]) .get() - static twoOwnersSafe = (firstOwner: string = '0x03db1a8b26d08df23337e9276a36b474510f0023', secondOwner: string = '0x03db1a8b26d08df23337e9276a36b474510f0024') => aSafe() + static twoOwnersSafe = ( + firstOwner: string = '0x03db1a8b26d08df23337e9276a36b474510f0023', + secondOwner: string = '0x03db1a8b26d08df23337e9276a36b474510f0024', + ) => aSafe() .withAddress('0x03db1a8b26d08df23337e9276a36b474510f0026') .withName('Adol & Tobias Safe') .withConfirmations(2) - .withOwner( - ['Adol Metamask', 'Tobias Metamask'], - [firstOwner, secondOwner], - ) + .withOwner(['Adol Metamask', 'Tobias Metamask'], [firstOwner, secondOwner]) .get() } diff --git a/src/routes/safe/store/test/safe.reducer.js b/src/routes/safe/store/test/safe.reducer.js index bdb48f09..5ab44cbf 100644 --- a/src/routes/safe/store/test/safe.reducer.js +++ b/src/routes/safe/store/test/safe.reducer.js @@ -1,5 +1,7 @@ // @flow -import { combineReducers, createStore, applyMiddleware, compose } from 'redux' +import { + combineReducers, createStore, applyMiddleware, compose, +} from 'redux' import thunk from 'redux-thunk' import safeReducer, { SAFE_REDUCER_ID } from '~/routes/safe/store/reducer/safe' import addSafe from '~/routes/safe/store/actions/addSafe' @@ -11,12 +13,8 @@ const aStore = (initState) => { const reducers = combineReducers({ [SAFE_REDUCER_ID]: safeReducer, }) - const middlewares = [ - thunk, - ] - const enhancers = [ - applyMiddleware(...middlewares), - ] + const middlewares = [thunk] + const enhancers = [applyMiddleware(...middlewares)] return createStore(reducers, initState, compose(...enhancers)) } @@ -42,13 +40,15 @@ const providerReducerTests = () => { // GIVEN in beforeEach method // WHEN - store.dispatch(addSafe( - formValues[SafeFields.FIELD_NAME], - formValues.address, - formValues[SafeFields.FIELD_CONFIRMATIONS], - getNamesFrom(formValues), - getAccountsFrom(formValues), - )) + store.dispatch( + addSafe( + formValues[SafeFields.FIELD_NAME], + formValues.address, + formValues[SafeFields.FIELD_CONFIRMATIONS], + getNamesFrom(formValues), + getAccountsFrom(formValues), + ), + ) const safes = store.getState()[SAFE_REDUCER_ID] // THEN diff --git a/src/routes/safe/test/Safe.threshold.test.js b/src/routes/safe/test/Safe.threshold.test.js index e255f4e4..63d8dbd9 100644 --- a/src/routes/safe/test/Safe.threshold.test.js +++ b/src/routes/safe/test/Safe.threshold.test.js @@ -19,9 +19,7 @@ import { getGnosisSafeContract } from '~/wallets/safeContracts' import fetchTransactions from '~/routes/safe/store/actions/fetchTransactions' */ describe('React DOM TESTS > Change threshold', () => { - it('should update the threshold directly if safe has 1 threshold', async () => { - - }) + it('should update the threshold directly if safe has 1 threshold', async () => {}) }) /* diff --git a/src/routes/safeList/components/Layout.stories.js b/src/routes/safeList/components/Layout.stories.js index 5afa4af4..40a8630d 100644 --- a/src/routes/safeList/components/Layout.stories.js +++ b/src/routes/safeList/components/Layout.stories.js @@ -6,24 +6,13 @@ import styles from '~/components/layout/PageFrame/index.scss' import { SafeFactory } from '~/routes/safe/store/test/builder/safe.builder' import Component from './Layout' - -const FrameDecorator = story => ( -
- { story() } -
-) +const FrameDecorator = story =>
{story()}
storiesOf('Routes /safes', module) .addDecorator(FrameDecorator) - .add('Safe List whithout safes and connected', () => ( - - )) - .add('Safe List whithout safes and NOT connected', () => ( - - )) + .add('Safe List whithout safes and connected', () => ) + .add('Safe List whithout safes and NOT connected', () => ) .add('Safe List whith 2 safes', () => { const safes = List([SafeFactory.oneOwnerSafe(), SafeFactory.twoOwnersSafe()]) - return ( - - ) + return }) diff --git a/src/routes/safeList/store/selectors/index.js b/src/routes/safeList/store/selectors/index.js index 2fadb20c..0c51b92f 100644 --- a/src/routes/safeList/store/selectors/index.js +++ b/src/routes/safeList/store/selectors/index.js @@ -17,7 +17,7 @@ const safesListSelector: Selector> = createSelector( export const safesByOwnerSelector: Selector> = createSelector( userAccountSelector, safesListSelector, - (userAddress: string, safes: List): List => - safes.filter((safe: Safe) => - safe.owners.filter((owner: Owner) => sameAddress(owner.get('address'), userAddress)).count() > 0), + (userAddress: string, safes: List): List => safes.filter( + (safe: Safe) => safe.owners.filter((owner: Owner) => sameAddress(owner.get('address'), userAddress)).count() > 0, + ), ) diff --git a/src/routes/welcome/components/Layout.stories.js b/src/routes/welcome/components/Layout.stories.js index 7e2fb67a..fc696c66 100644 --- a/src/routes/welcome/components/Layout.stories.js +++ b/src/routes/welcome/components/Layout.stories.js @@ -5,39 +5,19 @@ import * as React from 'react' import styles from '~/components/layout/PageFrame/index.scss' import Component from './Layout' -const FrameDecorator = story => ( -
- { story() } -
-) - +const FrameDecorator = story =>
{story()}
storiesOf('Routes /welcome', module) .addDecorator(FrameDecorator) .add('Welcome with Metamask connected', () => { const provider = select('Status by Provider', ['', 'UNKNOWN', 'METAMASK', 'PARITY'], 'METAMASK') - return ( - { }} - /> - ) + return {}} /> }) .add('Welcome with unknown wallet', () => { const provider = select('Status by Provider', ['', 'UNKNOWN', 'METAMASK', 'PARITY'], 'UNKNOWN') - return ( - { }} - /> - ) + return {}} /> }) .add('Welcome without wallet connected', () => { const provider = select('Status by Provider', ['', 'UNKNOWN', 'METAMASK', 'PARITY'], '') - return ( - { }} - /> - ) + return {}} /> }) diff --git a/src/test/builder/safe.dom.utils.js b/src/test/builder/safe.dom.utils.js index 4ea5b767..334c6f86 100644 --- a/src/test/builder/safe.dom.utils.js +++ b/src/test/builder/safe.dom.utils.js @@ -46,8 +46,7 @@ export const checkMinedTx = (Transaction: React$Component, name: strin expect(hashParagraph).toContain(EMPTY_DATA) } -export const getListItemsFrom = (Transaction: React$Component) => - TestUtils.scryRenderedComponentsWithType(Transaction, ListItemText) +export const getListItemsFrom = (Transaction: React$Component) => TestUtils.scryRenderedComponentsWithType(Transaction, ListItemText) export const expand = async (Transaction: React$Component) => { const listItems = getListItemsFrom(Transaction) @@ -93,14 +92,12 @@ export const refreshTransactions = async (store: Store, safeAddress await sleep(1500) } -const createDom = (store: Store): React$Component<{}> => ( - TestUtils.renderIntoDocument(( - - - - - - )) +const createDom = (store: Store): React$Component<{}> => TestUtils.renderIntoDocument( + + + + + , ) export const travelToSafe = (store: Store, address: string): React$Component<{}> => { diff --git a/src/test/builder/safe.redux.builder.js b/src/test/builder/safe.redux.builder.js index 34049e0f..8b36c05e 100644 --- a/src/test/builder/safe.redux.builder.js +++ b/src/test/builder/safe.redux.builder.js @@ -1,7 +1,13 @@ // @flow import { makeSafe, type Safe } from '~/routes/safe/store/model/safe' import addSafe, { buildOwnersFrom } from '~/routes/safe/store/actions/addSafe' -import { FIELD_NAME, FIELD_CONFIRMATIONS, FIELD_OWNERS, getOwnerNameBy, getOwnerAddressBy } from '~/routes/open/components/fields' +import { + FIELD_NAME, + FIELD_CONFIRMATIONS, + FIELD_OWNERS, + getOwnerNameBy, + getOwnerAddressBy, +} from '~/routes/open/components/fields' import { getWeb3, getProviderInfo } from '~/logic/wallets/getWeb3' import { createSafe, type OpenState } from '~/routes/open/container/Open' import { type GlobalState } from '~/store/index' @@ -51,14 +57,14 @@ export class SafeFactory { .withOwner(['Adol Metamask'], [ownerAddress]) .get() - static twoOwnersSafe = (firstOwner: string = '0x03db1a8b26d08df23337e9276a36b474510f0023', secondOwner: string = '0x03db1a8b26d08df23337e9276a36b474510f0024') => aSafe() + static twoOwnersSafe = ( + firstOwner: string = '0x03db1a8b26d08df23337e9276a36b474510f0023', + secondOwner: string = '0x03db1a8b26d08df23337e9276a36b474510f0024', + ) => aSafe() .withAddress('0x03db1a8b26d08df23337e9276a36b474510f0026') .withName('Adol & Tobias Safe') .withConfirmations(2) - .withOwner( - ['Adol Metamask', 'Tobias Metamask'], - [firstOwner, secondOwner], - ) + .withOwner(['Adol Metamask', 'Tobias Metamask'], [firstOwner, secondOwner]) .get() } diff --git a/src/test/safe.dom.create.test.js b/src/test/safe.dom.create.test.js index 9a71796e..20699fa7 100644 --- a/src/test/safe.dom.create.test.js +++ b/src/test/safe.dom.create.test.js @@ -20,14 +20,12 @@ const fillOpenSafeForm = async (localStore: Store) => { const walletRecord = makeProvider(provider) localStore.dispatch(addProvider(walletRecord)) - return ( - TestUtils.renderIntoDocument(( - - - - - - )) + return TestUtils.renderIntoDocument( + + + + + , ) } @@ -59,7 +57,7 @@ const deploySafe = async (safe: React$Component<{}>, threshold: number, numOwner expect(ownerInputs.length).toBe(numOwners * 2) for (let i = addedUpfront; i < numOwners; i += 1) { const nameIndex = i * 2 - const addressIndex = (i * 2) + 1 + const addressIndex = i * 2 + 1 const ownerName = ownerInputs[nameIndex] const account = ownerInputs[addressIndex] @@ -85,11 +83,7 @@ const deploySafe = async (safe: React$Component<{}>, threshold: number, numOwner return whenSafeDeployed() } -const aDeployedSafe = async ( - specificStore: Store, - threshold?: number = 1, - numOwners?: number = 1, -) => { +const aDeployedSafe = async (specificStore: Store, threshold?: number = 1, numOwners?: number = 1) => { const safe: React$Component<{}> = await fillOpenSafeForm(specificStore) const safeAddress = await deploySafe(safe, threshold, numOwners) diff --git a/src/test/safe.dom.load.test.js b/src/test/safe.dom.load.test.js index 8faf8c6f..f0f0fef6 100644 --- a/src/test/safe.dom.load.test.js +++ b/src/test/safe.dom.load.test.js @@ -18,14 +18,12 @@ const travelToLoadRoute = async (localStore: Store) => { const walletRecord = makeProvider(provider) localStore.dispatch(addProvider(walletRecord)) - return ( - TestUtils.renderIntoDocument(( - - - - - - )) + return TestUtils.renderIntoDocument( + + + + + , ) } @@ -53,7 +51,6 @@ describe('DOM > Feature > LOAD a safe', () => { TestUtils.Simulate.submit(form) await sleep(400) - const deployedAddress = await whenSafeDeployed() expect(deployedAddress).toBe(address) }) diff --git a/src/test/safe.dom.transactions.test.js b/src/test/safe.dom.transactions.test.js index 774c567d..2bed1bde 100644 --- a/src/test/safe.dom.transactions.test.js +++ b/src/test/safe.dom.transactions.test.js @@ -2,12 +2,36 @@ import TestUtils from 'react-dom/test-utils' import { List } from 'immutable' import Transaction from '~/routes/safe/component/Transactions/Transaction' -import { listTxsClickingOn, LIST_TXS_INDEX, ADD_OWNERS_INDEX, EXPAND_OWNERS_INDEX, EDIT_THRESHOLD_INDEX, refreshTransactions, EXPAND_BALANCE_INDEX } from '~/test/builder/safe.dom.utils' +import { + listTxsClickingOn, + LIST_TXS_INDEX, + ADD_OWNERS_INDEX, + EXPAND_OWNERS_INDEX, + EDIT_THRESHOLD_INDEX, + refreshTransactions, + EXPAND_BALANCE_INDEX, +} from '~/test/builder/safe.dom.utils' import { renderSafeInDom, type DomSafe } from '~/test/builder/safe.dom.builder' -import { sendMoveFundsForm, checkMinedMoveFundsTx, checkPendingMoveFundsTx } from '~/test/utils/transactions/moveFunds.helper' -import { sendAddOwnerForm, checkMinedAddOwnerTx, checkPendingAddOwnerTx } from '~/test/utils/transactions/addOwner.helper' -import { sendRemoveOwnerForm, checkMinedRemoveOwnerTx, checkPendingRemoveOwnerTx } from '~/test/utils/transactions/removeOwner.helper' -import { checkMinedThresholdTx, sendChangeThresholdForm, checkThresholdOf } from '~/test/utils/transactions/threshold.helper' +import { + sendMoveFundsForm, + checkMinedMoveFundsTx, + checkPendingMoveFundsTx, +} from '~/test/utils/transactions/moveFunds.helper' +import { + sendAddOwnerForm, + checkMinedAddOwnerTx, + checkPendingAddOwnerTx, +} from '~/test/utils/transactions/addOwner.helper' +import { + sendRemoveOwnerForm, + checkMinedRemoveOwnerTx, + checkPendingRemoveOwnerTx, +} from '~/test/utils/transactions/removeOwner.helper' +import { + checkMinedThresholdTx, + sendChangeThresholdForm, + checkThresholdOf, +} from '~/test/utils/transactions/threshold.helper' import { checkBalanceOf } from '~/test/utils/tokenMovements' import { sleep } from '~/utils/timer' import { processTransaction } from '~/logic/safe/safeFrontendOperations' @@ -35,7 +59,7 @@ describe('DOM > Feature > SAFE MULTISIG Transactions', () => { checkMinedMoveFundsTx(transactions[0], 'Send 0.01 ETH to') checkMinedAddOwnerTx(transactions[1], 'Add Owner Adol Metamask 2') - checkMinedThresholdTx(transactions[2], 'Change Safe\'s threshold') + checkMinedThresholdTx(transactions[2], "Change Safe's threshold") }) it.only('mines withdraw process correctly all multisig txs in a 2 owner & 2 threshold safe', async () => { diff --git a/src/test/safe.redux.transactions.test.js b/src/test/safe.redux.transactions.test.js index e69ff304..d37b352f 100644 --- a/src/test/safe.redux.transactions.test.js +++ b/src/test/safe.redux.transactions.test.js @@ -13,7 +13,6 @@ import { safeTransactionsSelector } from '~/routes/safe/store/selectors' import fetchSafe from '~/routes/safe/store/actions/fetchSafe' import { testTransactionFrom, testSizeOfTransactions } from './utils/historyServiceHelper' - describe('Transactions Suite', () => { let store: Store let safeAddress: string @@ -34,12 +33,28 @@ describe('Transactions Suite', () => { const firstTxData = gnosisSafe.contract.methods.addOwnerWithThreshold(accounts[1], 2).encodeABI() const executor = accounts[0] const nonce = await gnosisSafe.nonce() - const firstTxHash = await createTransaction(safe, 'Add Owner Second account', safeAddress, '0', nonce, executor, firstTxData) + const firstTxHash = await createTransaction( + safe, + 'Add Owner Second account', + safeAddress, + '0', + nonce, + executor, + firstTxData, + ) await store.dispatch(fetchSafe(safe.get('address'))) safe = getSafeFrom(store.getState(), safeAddress) const secondTxData = gnosisSafe.contract.methods.addOwnerWithThreshold(accounts[2], 2).encodeABI() - const secondTxHash = await createTransaction(safe, 'Add Owner Third account', safeAddress, '0', nonce + 100, executor, secondTxData) + const secondTxHash = await createTransaction( + safe, + 'Add Owner Third account', + safeAddress, + '0', + nonce + 100, + executor, + secondTxData, + ) await store.dispatch(fetchSafe(safe.get('address'))) safe = getSafeFrom(store.getState(), safeAddress) @@ -56,7 +71,17 @@ describe('Transactions Suite', () => { hash: firstTxHash, }), ]) - testTransactionFrom(transactions, 0, 'Add Owner Second account', nonce, 0, safeAddress, firstTxData, true, firstTxConfirmations) + testTransactionFrom( + transactions, + 0, + 'Add Owner Second account', + nonce, + 0, + safeAddress, + firstTxData, + true, + firstTxConfirmations, + ) const secondTxConfirmations = List([ makeConfirmation({ @@ -65,7 +90,17 @@ describe('Transactions Suite', () => { hash: secondTxHash, }), ]) - testTransactionFrom(transactions, 1, 'Add Owner Third account', nonce + 100, 0, safeAddress, secondTxData, false, secondTxConfirmations) + testTransactionFrom( + transactions, + 1, + 'Add Owner Third account', + nonce + 100, + 0, + safeAddress, + secondTxData, + false, + secondTxConfirmations, + ) localStorage.clear() @@ -88,7 +123,17 @@ describe('Transactions Suite', () => { hash: secondTxHash, }), ]) - testTransactionFrom(transactions, 1, 'Unknown', nonce + 100, 0, safeAddress, secondTxData, false, secondTxConfWithoutStorage) + testTransactionFrom( + transactions, + 1, + 'Unknown', + nonce + 100, + 0, + safeAddress, + secondTxData, + false, + secondTxConfWithoutStorage, + ) }) it('returns empty list of trnsactions when safe is not configured', async () => { @@ -130,4 +175,3 @@ describe('Transactions Suite', () => { */ }) }) - diff --git a/src/test/signatures.blockchain.test.js b/src/test/signatures.blockchain.test.js index ed37c8f0..d8814127 100644 --- a/src/test/signatures.blockchain.test.js +++ b/src/test/signatures.blockchain.test.js @@ -11,15 +11,23 @@ describe('Signatures Blockchain Test', () => { const sender = 'foZ' // WHEN - const result = '0x' + - // eslint-disable-next-line - '000000000000000000000000' + 'baR' + '000000000000000000000000000000000000000000000000000000000000000001' + - // eslint-disable-next-line - '000000000000000000000000' + 'baz' + '000000000000000000000000000000000000000000000000000000000000000001' + - // eslint-disable-next-line - '000000000000000000000000' + 'foZ' + '000000000000000000000000000000000000000000000000000000000000000001' + - // eslint-disable-next-line - '000000000000000000000000' + 'foZa' + '000000000000000000000000000000000000000000000000000000000000000001' + const result = '0x' + // eslint-disable-next-line + + '000000000000000000000000' + + 'baR' + + '000000000000000000000000000000000000000000000000000000000000000001' + // eslint-disable-next-line + + '000000000000000000000000' + + 'baz' + + '000000000000000000000000000000000000000000000000000000000000000001' + // eslint-disable-next-line + + '000000000000000000000000' + + 'foZ' + + '000000000000000000000000000000000000000000000000000000000000000001' + // eslint-disable-next-line + + '000000000000000000000000' + + 'foZa' + + '000000000000000000000000000000000000000000000000000000000000000001' // THEN expect(buildSignaturesFrom(List([userA, userB, userC]), sender)).toEqual(result) diff --git a/src/test/tokens.dom.adding.test.js b/src/test/tokens.dom.adding.test.js index c9d19f6e..254da554 100644 --- a/src/test/tokens.dom.adding.test.js +++ b/src/test/tokens.dom.adding.test.js @@ -46,24 +46,20 @@ describe('DOM > Feature > Add new ERC 20 Tokens', () => { // const store = aNewStore() // const safeAddress = await aMinedSafe(store) // await store.dispatch(fetchTokensModule.fetchTokens(safeAddress)) - // const TokensDom = await travelToTokens(store, safeAddress) // await sleep(400) // const tokens = TestUtils.scryRenderedComponentsWithType(TokensDom, TokenComponent) // expect(tokens.length).toBe(2) // testToken(tokens[0].props.token, 'FTE', false) // testToken(tokens[1].props.token, 'ETH', true) - // // WHEN // await clickOnAddToken(TokensDom) // await fillAddress(TokensDom, secondErc20Token) // await fillHumanReadableInfo(TokensDom) - // // THEN // const match: Match = buildMathPropsFrom(safeAddress) // const tokenList = tokenListSelector(store.getState(), { match }) // expect(tokenList.count()).toBe(3) - // testToken(tokenList.get(0), 'FTE', false) // testToken(tokenList.get(1), 'ETH', true) // testToken(tokenList.get(2), 'TKN', true) diff --git a/src/test/tokens.dom.removing.test.js b/src/test/tokens.dom.removing.test.js index 9ed74e67..0eb67ed3 100644 --- a/src/test/tokens.dom.removing.test.js +++ b/src/test/tokens.dom.removing.test.js @@ -16,13 +16,11 @@ describe('DOM > Feature > Add new ERC 20 Tokens', () => { // let accounts // let firstErc20Token // let secondErc20Token - // beforeAll(async () => { // web3 = getWeb3() // accounts = await web3.eth.getAccounts() // firstErc20Token = await getFirstTokenContract(web3, accounts[0]) // secondErc20Token = await getSecondTokenContract(web3, accounts[0]) - // // $FlowFixMe // enhancedFetchModule.enhancedFetch = jest.fn() // enhancedFetchModule.enhancedFetch.mockImplementation(() => Promise.resolve({ @@ -37,13 +35,11 @@ describe('DOM > Feature > Add new ERC 20 Tokens', () => { // ], // })) // }) - // it('remove custom ERC 20 tokens', async () => { // // GIVEN // const store = aNewStore() // const safeAddress = await aMinedSafe(store) // await store.dispatch(fetchTokensModule.fetchTokens(safeAddress)) - // const values = { // [TOKEN_ADRESS_PARAM]: secondErc20Token.address, // [TOKEN_NAME_PARAM]: 'Custom ERC20 Token', @@ -51,12 +47,10 @@ describe('DOM > Feature > Add new ERC 20 Tokens', () => { // [TOKEN_DECIMALS_PARAM]: '10', // [TOKEN_LOGO_URL_PARAM]: 'https://example.com', // } - // const customAddTokensFn: any = (...args) => store.dispatch(addToken(...args)) // await addTokenFnc(values, customAddTokensFn, safeAddress) // const TokensDom = travelToTokens(store, safeAddress) // await sleep(400) - // // WHEN // const buttons = TestUtils.scryRenderedDOMComponentsWithTag(TokensDom, 'button') // expect(buttons.length).toBe(2) @@ -64,14 +58,11 @@ describe('DOM > Feature > Add new ERC 20 Tokens', () => { // expect(removeUserButton.getAttribute('aria-label')).toBe('Delete') // TestUtils.Simulate.click(removeUserButton) // await sleep(400) - // const form = TestUtils.findRenderedDOMComponentWithTag(TokensDom, 'form') // // submit it // TestUtils.Simulate.submit(form) // TestUtils.Simulate.submit(form) - // await sleep(400) - // const tokens = TestUtils.scryRenderedComponentsWithType(TokensDom, TokenComponent) // expect(tokens.length).toBe(2) // testToken(tokens[0].props.token, 'FTE', false) diff --git a/src/test/tokens.redux.adding.test.js b/src/test/tokens.redux.adding.test.js index 0bf3c01c..8a8e1fea 100644 --- a/src/test/tokens.redux.adding.test.js +++ b/src/test/tokens.redux.adding.test.js @@ -17,13 +17,11 @@ describe('DOM > Feature > Add new ERC 20 Tokens', () => { // let accounts // let firstErc20Token // let secondErc20Token - // beforeAll(async () => { // web3 = getWeb3() // accounts = await web3.eth.getAccounts() // firstErc20Token = await getFirstTokenContract(web3, accounts[0]) // secondErc20Token = await getSecondTokenContract(web3, accounts[0]) - // // $FlowFixMe // enhancedFetchModule.enhancedFetch = jest.fn() // enhancedFetchModule.enhancedFetch.mockImplementation(() => Promise.resolve({ @@ -38,13 +36,11 @@ describe('DOM > Feature > Add new ERC 20 Tokens', () => { // ], // })) // }) - // it('persist added custom ERC 20 tokens as active when reloading the page', async () => { // // GIVEN // const store = aNewStore() // const safeAddress = await aMinedSafe(store) // await store.dispatch(fetchTokensModule.fetchTokens(safeAddress)) - // const values = { // [TOKEN_ADRESS_PARAM]: secondErc20Token.address, // [TOKEN_NAME_PARAM]: 'Custom ERC20 Token', @@ -52,21 +48,17 @@ describe('DOM > Feature > Add new ERC 20 Tokens', () => { // [TOKEN_DECIMALS_PARAM]: '10', // [TOKEN_LOGO_URL_PARAM]: 'https://example.com', // } - // const customAddTokensFn: any = (...args) => store.dispatch(addToken(...args)) // await addTokenFnc(values, customAddTokensFn, safeAddress) // travelToSafe(store, safeAddress) - // // WHEN // const reloadedStore = aNewStore() // await reloadedStore.dispatch(fetchTokensModule.fetchTokens(safeAddress)) // travelToSafe(reloadedStore, safeAddress) // reload - // // THEN // const match: Match = buildMathPropsFrom(safeAddress) // const activeTokenList = activeTokensSelector(reloadedStore.getState(), { match }) // expect(activeTokenList.count()).toBe(2) - // testToken(activeTokenList.get(0), 'CTS', true) // testToken(activeTokenList.get(1), 'ETH', true) // }) diff --git a/src/test/tokens.redux.remove.test.js b/src/test/tokens.redux.remove.test.js index 0fb0fae2..30ebf756 100644 --- a/src/test/tokens.redux.remove.test.js +++ b/src/test/tokens.redux.remove.test.js @@ -19,13 +19,11 @@ describe('DOM > Feature > Add new ERC 20 Tokens', () => { // let accounts // let firstErc20Token // let secondErc20Token - // beforeAll(async () => { // web3 = getWeb3() // accounts = await web3.eth.getAccounts() // firstErc20Token = await getFirstTokenContract(web3, accounts[0]) // secondErc20Token = await getSecondTokenContract(web3, accounts[0]) - // // $FlowFixMe // enhancedFetchModule.enhancedFetch = jest.fn() // enhancedFetchModule.enhancedFetch.mockImplementation(() => Promise.resolve({ @@ -40,25 +38,21 @@ describe('DOM > Feature > Add new ERC 20 Tokens', () => { // ], // })) // }) - // const checkTokensOf = (store: Store, safeAddress: string) => { // const match: Match = buildMathPropsFrom(safeAddress) // const activeTokenList = activeTokensSelector(store.getState(), { match }) // expect(activeTokenList.count()).toBe(1) // testToken(activeTokenList.get(0), 'ETH', true) - // const tokenList = tokenListSelector(store.getState(), { match }) // expect(tokenList.count()).toBe(2) // testToken(tokenList.get(0), 'FTE', false) // testToken(tokenList.get(1), 'ETH', true) // } - // it('removes custom ERC 20 including page reload', async () => { // // GIVEN // const store = aNewStore() // const safeAddress = await aMinedSafe(store) // await store.dispatch(fetchTokensModule.fetchTokens(safeAddress)) - // const values = { // [TOKEN_ADRESS_PARAM]: secondErc20Token.address, // [TOKEN_NAME_PARAM]: 'Custom ERC20 Token', @@ -66,10 +60,8 @@ describe('DOM > Feature > Add new ERC 20 Tokens', () => { // [TOKEN_DECIMALS_PARAM]: '10', // [TOKEN_LOGO_URL_PARAM]: 'https://example.com', // } - // const customAddTokensFn: any = (...args) => store.dispatch(addToken(...args)) // await addTokenFnc(values, customAddTokensFn, safeAddress) - // const token = makeToken({ // address: secondErc20Token.address, // name: 'Custom ERC20 Token', @@ -82,12 +74,10 @@ describe('DOM > Feature > Add new ERC 20 Tokens', () => { // const customRemoveTokensFnc: any = (...args) => store.dispatch(removeTokenAction(...args)) // await removeToken(safeAddress, token, customRemoveTokensFnc) // checkTokensOf(store, safeAddress) - // // WHEN // const reloadedStore = aNewStore() // await reloadedStore.dispatch(fetchTokensModule.fetchTokens(safeAddress)) // travelToSafe(reloadedStore, safeAddress) // reload - // // THEN // checkTokensOf(reloadedStore, safeAddress) // }) diff --git a/src/test/utils/historyServiceHelper.js b/src/test/utils/historyServiceHelper.js index 7063abd9..fb6192dd 100644 --- a/src/test/utils/historyServiceHelper.js +++ b/src/test/utils/historyServiceHelper.js @@ -11,21 +11,33 @@ export const testSizeOfSafesWith = (transactions: Map> } export const testSizeOfTransactions = (safeTxs: List | typeof undefined, size: number) => { - if (!safeTxs) { throw new Error() } + if (!safeTxs) { + throw new Error() + } expect(safeTxs.count()).toBe(size) expect(safeTxs.get(0)).not.toBe(undefined) expect(safeTxs.get(0)).not.toBe(null) } export const testTransactionFrom = ( - safeTxs: List | typeof undefined, pos: number, - name: string, nonce: number, value: number, destination: string, - data: string, isExecuted: boolean, confirmations: List, + safeTxs: List | typeof undefined, + pos: number, + name: string, + nonce: number, + value: number, + destination: string, + data: string, + isExecuted: boolean, + confirmations: List, ) => { - if (!safeTxs) { throw new Error() } + if (!safeTxs) { + throw new Error() + } const tx: Transaction | typeof undefined = safeTxs.get(pos) - if (!tx) { throw new Error() } + if (!tx) { + throw new Error() + } expect(tx.get('name')).toBe(name) expect(tx.get('nonce')).toBe(nonce) expect(tx.get('value')).toBe(value) diff --git a/src/test/utils/logTransactions.js b/src/test/utils/logTransactions.js index 2b0e2d6b..433ea17d 100644 --- a/src/test/utils/logTransactions.js +++ b/src/test/utils/logTransactions.js @@ -19,11 +19,13 @@ export const printOutApprove = async ( // eslint-disable-next-line console.log(`EO transaction hash ${transactionHash}`) - await Promise.all(owners.map(async (owner, index) => { - const approved = await gnosisSafe.isApproved(transactionHash, owner) - // eslint-disable-next-line - console.log(`EO transaction approved by owner index ${index}: ${approved}`) - })) + await Promise.all( + owners.map(async (owner, index) => { + const approved = await gnosisSafe.isApproved(transactionHash, owner) + // eslint-disable-next-line + console.log(`EO transaction approved by owner index ${index}: ${approved}`) + }), + ) // eslint-disable-next-line console.log(`EO transaction executed ${await gnosisSafe.isExecuted(transactionHash)}`) } @@ -35,10 +37,7 @@ type FinsihedTx = { finishedTransaction: boolean, } -export const whenExecuted = ( - SafeDom: React$Component, - ParentComponent: React$ElementType, -): Promise => new Promise((resolve, reject) => { +export const whenExecuted = (SafeDom: React$Component, ParentComponent: React$ElementType): Promise => new Promise((resolve, reject) => { let times = 0 const interval = setInterval(() => { if (times >= MAX_TIMES_EXECUTED) { @@ -48,20 +47,20 @@ export const whenExecuted = ( // $FlowFixMe const SafeComponent = TestUtils.findRenderedComponentWithType(SafeDom, ParentComponent) - type GnoStepperType = React$Component - // $FlowFixMe - const StepperComponent: GnoStepperType = TestUtils.findRenderedComponentWithType(SafeComponent, GnoStepper) + type GnoStepperType = React$Component + // $FlowFixMe + const StepperComponent: GnoStepperType = TestUtils.findRenderedComponentWithType(SafeComponent, GnoStepper) - if (StepperComponent.props.finishedTransaction === true) { - clearInterval(interval) - resolve() - } - times += 1 + if (StepperComponent.props.finishedTransaction === true) { + clearInterval(interval) + resolve() + } + times += 1 }, INTERVAL) }) type MiddleStep = { - activeStep: number + activeStep: number, } export const whenOnNext = ( @@ -78,13 +77,13 @@ export const whenOnNext = ( // $FlowFixMe const SafeComponent = TestUtils.findRenderedComponentWithType(SafeDom, ParentComponent) - type StepperType = React$Component - // $FlowFixMe - const StepperComponent: StepperType = TestUtils.findRenderedComponentWithType(SafeComponent, Stepper) - if (StepperComponent.props.activeStep === position) { - clearInterval(interval) - resolve() - } - times += 1 + type StepperType = React$Component + // $FlowFixMe + const StepperComponent: StepperType = TestUtils.findRenderedComponentWithType(SafeComponent, Stepper) + if (StepperComponent.props.activeStep === position) { + clearInterval(interval) + resolve() + } + times += 1 }, INTERVAL) }) diff --git a/src/test/utils/tokenMovements.js b/src/test/utils/tokenMovements.js index 4099fcf1..390261c6 100644 --- a/src/test/utils/tokenMovements.js +++ b/src/test/utils/tokenMovements.js @@ -31,7 +31,7 @@ export const addTknTo = async (safe: string, value: string, tokenContract?: any) const web3 = getWeb3() const accounts = await web3.eth.getAccounts() - const myToken = tokenContract || await getFirstTokenContract(web3, accounts[0]) + const myToken = tokenContract || (await getFirstTokenContract(web3, accounts[0])) const nativeValue = toNative(value, 18) await myToken.transfer(safe, nativeValue.valueOf(), { from: accounts[0], gas: '5000000' }) diff --git a/src/test/utils/transactions/moveFunds.helper.js b/src/test/utils/transactions/moveFunds.helper.js index 9c0970cf..a68c234e 100644 --- a/src/test/utils/transactions/moveFunds.helper.js +++ b/src/test/utils/transactions/moveFunds.helper.js @@ -5,7 +5,6 @@ import { checkMinedTx, checkPendingTx } from '~/test/builder/safe.dom.utils' import SendToken from '~/routes/safe/component/SendToken' import { whenExecuted } from '~/test/utils/logTransactions' - export const sendMoveFundsForm = async ( SafeDom: React$Component, expandBalance: React$Component, @@ -36,7 +35,6 @@ export const sendMoveFundsForm = async ( TestUtils.Simulate.submit(form) TestUtils.Simulate.submit(form) - return whenExecuted(SafeDom, SendToken) } diff --git a/src/theme/size.js b/src/theme/size.js index 49098ac1..7ccbf26d 100644 --- a/src/theme/size.js +++ b/src/theme/size.js @@ -1,5 +1,7 @@ // @flow -import { xs, sm, md, lg, xl } from '~/theme/variables' +import { + xs, sm, md, lg, xl, +} from '~/theme/variables' export type Size = 'xs' | 'sm' | 'md' | 'lg' | 'xl' diff --git a/src/theme/variables.js b/src/theme/variables.js index 18c577f1..42694b90 100644 --- a/src/theme/variables.js +++ b/src/theme/variables.js @@ -17,43 +17,46 @@ const xl = '32px' const xxl = '40px' const marginButtonImg = '12px' -module.exports = Object.assign({}, { - primary, - secondary, - tertiary, - disabled, - background, - fontColor, - fancy: fancyColor, - warning: warningColor, - connected: connectedColor, - xs, - sm, - md, - lg, - xl, - xxl, - border, - marginButtonImg, - fontSizeHeadingXs: 13, - fontSizeHeadingSm: 18, - fontSizeHeadingMd: 21, - fontSizeHeadingLg: 32, - buttonLargeFontSize: '12px', - lightFont: 300, - regularFont: 400, - bolderFont: 500, - boldFont: 700, - smallFontSize: '11px', - mediumFontSize: '13px', - largeFontSize: '15px', - extraLargeFontSize: '18px', - xxlFontSize: '32px', - screenXs: 480, - screenXsMax: 767, - screenSm: 768, - screenSmMax: 991, - screenMd: 992, - screenMdMax: 1199, - screenLg: 1200, -}) +module.exports = Object.assign( + {}, + { + primary, + secondary, + tertiary, + disabled, + background, + fontColor, + fancy: fancyColor, + warning: warningColor, + connected: connectedColor, + xs, + sm, + md, + lg, + xl, + xxl, + border, + marginButtonImg, + fontSizeHeadingXs: 13, + fontSizeHeadingSm: 18, + fontSizeHeadingMd: 21, + fontSizeHeadingLg: 32, + buttonLargeFontSize: '12px', + lightFont: 300, + regularFont: 400, + bolderFont: 500, + boldFont: 700, + smallFontSize: '11px', + mediumFontSize: '13px', + largeFontSize: '15px', + extraLargeFontSize: '18px', + xxlFontSize: '32px', + screenXs: 480, + screenXsMax: 767, + screenSm: 768, + screenSmMax: 991, + screenMd: 992, + screenMdMax: 1199, + screenLg: 1200, + }, +)