From 7e4e5f91c535f1cdcaa9edf1626fc34a8f70784f Mon Sep 17 00:00:00 2001 From: Sam Vitello Date: Thu, 25 Oct 2018 15:45:36 -0600 Subject: [PATCH 1/6] feat: bubble up errors to top level calls to handle --- src/standards/Arbitrable.js | 75 +++++++++++++++++++++++-------------- src/utils/hashing.js | 39 ++++++++++++------- 2 files changed, 72 insertions(+), 42 deletions(-) diff --git a/src/standards/Arbitrable.js b/src/standards/Arbitrable.js index c3fafa8..70c1c6f 100644 --- a/src/standards/Arbitrable.js +++ b/src/standards/Arbitrable.js @@ -65,14 +65,21 @@ class Arbitrable extends StandardContract { customHashFn: options.customHashFn }) - const { isValid: fileValid } = evidenceJSON.fileURI - ? await validateFileFromURI(evidenceJSON.fileURI, { - evidence: true, - strictHashes: options.strictHashes, - hash: evidenceJSON.fileHash, - customHashFn: options.customHashFn - }) - : { isValid: null } + let fileValid + + try { + fileValid = evidenceJSON.fileURI + ? (await validateFileFromURI(evidenceJSON.fileURI, { + evidence: true, + strictHashes: options.strictHashes, + hash: evidenceJSON.fileHash, + customHashFn: options.customHashFn + })).isValid + : null + } catch (err) { + if (options.strictHashes) throw new Error(err) + fileValid = false + } const submittedAt = (await new Promise((resolve, reject) => { this.web3.eth.getBlock(evidenceLog.blockNumber, (error, result) => { @@ -147,29 +154,39 @@ class Arbitrable extends StandardContract { customHashFn: options.customHashFn }) - // validate file hash - const { isValid: fileValid } = metaEvidenceJSON.fileURI - ? await validateFileFromURI(metaEvidenceJSON.fileURI, { - evidence: true, - strictHashes: options.strictHashes, - hash: metaEvidenceJSON.fileHash, - customHashFn: options.customHashFn - }) - : { isValid: null } - - // validate file hash - const { - isValid: interfaceValid - } = metaEvidenceJSON.evidenceDisplayInterfaceURL - ? await validateFileFromURI( - metaEvidenceJSON.evidenceDisplayInterfaceURL, - { + let fileValid + try { + // validate file hash + fileValid = metaEvidenceJSON.fileURI + ? (await validateFileFromURI(metaEvidenceJSON.fileURI, { + evidence: true, strictHashes: options.strictHashes, - hash: metaEvidenceJSON.evidenceDisplayInterfaceHash, + hash: metaEvidenceJSON.fileHash, customHashFn: options.customHashFn - } - ) - : { isValid: null } + })).isValid + : null + } catch (err) { + if (options.strictHashes) throw new Error(err) + fileValid = false + } + + // validate file hash + let interfaceValid + try { + interfaceValid = metaEvidenceJSON.evidenceDisplayInterfaceURL + ? (await validateFileFromURI( + metaEvidenceJSON.evidenceDisplayInterfaceURL, + { + strictHashes: options.strictHashes, + hash: metaEvidenceJSON.evidenceDisplayInterfaceHash, + customHashFn: options.customHashFn + } + )).isValid + : { isValid: null } + } catch (err) { + if (options.strictHashes) throw new Error(err) + interfaceValid = false + } return { metaEvidenceJSON, diff --git a/src/utils/hashing.js b/src/utils/hashing.js index 83610be..0283106 100644 --- a/src/utils/hashing.js +++ b/src/utils/hashing.js @@ -44,22 +44,24 @@ export const validateFileFromURI = async ( selfHash = _selfHash } - let isValid = true - - if ( - !validMultihash( + let isValid + // If there is an error validating the hash just assume it is invalid so that legacy disputes can be fetched + try { + isValid = validMultihash( options.hash || selfHash || getURISuffix(fileURI), fileContent, options.customHashFn ) - ) { + } catch (err) { + console.error(err) isValid = false - if (options.strictHashes) - throw new Error( - errorConstants.VALIDATION_ERROR(`Evidence hash validation failed`) - ) } + if (!isValid && options.strictHashes) + throw new Error( + errorConstants.VALIDATION_ERROR(`Evidence hash validation failed`) + ) + return { file: fileContent, isValid @@ -80,14 +82,25 @@ export const validMultihash = ( ) => { if (typeof file === 'object') file = JSON.stringify(file) // Decode hash to get hashing algorithm - const decodedHash = multihash.decode(multihash.fromB58String(multihashHex)) + + let decodedHash + try { + decodedHash = multihash.decode(multihash.fromB58String(multihashHex)) + } catch (err) { + console.error(err) + throw new Error( + errorConstants.VALIDATION_ERROR( + 'Unable to decode multihash hex. Is your hash base58?' + ) + ) + } const hashFn = customHashFn || hashFunctions[decodedHash.code] if (!hashFn) throw new Error( - `Hash validation error: No hash function for multicode ${ - decodedHash.code - }` + errorConstants.VALIDATION_ERROR( + `No hash function for multicode ${decodedHash.code}` + ) ) // Hash the original object let fileHash = hashFn(file) From 343b00e56eb64414313db89df3a29fea410d1afa Mon Sep 17 00:00:00 2001 From: Sam Vitello Date: Thu, 25 Oct 2018 16:02:11 -0600 Subject: [PATCH 2/6] chore: update lock file --- yarn.lock | 1316 ++++++++++++++++++++++++++--------------------------- 1 file changed, 648 insertions(+), 668 deletions(-) diff --git a/yarn.lock b/yarn.lock index 03f5965..fd0ade2 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4,7 +4,7 @@ "@babel/code-frame@7.0.0-beta.44": version "7.0.0-beta.44" - resolved "http://registry.npmjs.org/@babel/code-frame/-/code-frame-7.0.0-beta.44.tgz#2a02643368de80916162be70865c97774f3adbd9" + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.0.0-beta.44.tgz#2a02643368de80916162be70865c97774f3adbd9" integrity sha512-cuAuTTIQ9RqcFRJ/Y8PvTh+paepNcaGxwQwjIDRWPXmzzyAeCO4KqS9ikMvq0MCbRk6GlYKwfzStrcP3/jSL8g== dependencies: "@babel/highlight" "7.0.0-beta.44" @@ -16,18 +16,18 @@ dependencies: "@babel/highlight" "^7.0.0" -"@babel/core@^7.0.0-rc.1": - version "7.1.0" - resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.1.0.tgz#08958f1371179f62df6966d8a614003d11faeb04" - integrity sha512-9EWmD0cQAbcXSc+31RIoYgEHx3KQ2CCSMDBhnXrShWvo45TMw+3/55KVxlhkG53kw9tl87DqINgHDgFVhZJV/Q== +"@babel/core@^7.0.0": + version "7.1.2" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.1.2.tgz#f8d2a9ceb6832887329a7b60f9d035791400ba4e" + integrity sha512-IFeSSnjXdhDaoysIlev//UzHZbdEmm7D0EIH2qtse9xK7mXEZQpYjs2P00XlP1qYsYvid79p+Zgg6tz1mp6iVw== dependencies: "@babel/code-frame" "^7.0.0" - "@babel/generator" "^7.0.0" - "@babel/helpers" "^7.1.0" - "@babel/parser" "^7.1.0" - "@babel/template" "^7.1.0" + "@babel/generator" "^7.1.2" + "@babel/helpers" "^7.1.2" + "@babel/parser" "^7.1.2" + "@babel/template" "^7.1.2" "@babel/traverse" "^7.1.0" - "@babel/types" "^7.0.0" + "@babel/types" "^7.1.2" convert-source-map "^1.1.0" debug "^3.1.0" json5 "^0.5.0" @@ -38,7 +38,7 @@ "@babel/generator@7.0.0-beta.44": version "7.0.0-beta.44" - resolved "http://registry.npmjs.org/@babel/generator/-/generator-7.0.0-beta.44.tgz#c7e67b9b5284afcf69b309b50d7d37f3e5033d42" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.0.0-beta.44.tgz#c7e67b9b5284afcf69b309b50d7d37f3e5033d42" integrity sha512-5xVb7hlhjGcdkKpMXgicAVgx8syK5VJz193k0i/0sLP6DzE6lRrU1K3B/rFefgdo9LPGMAOOOAWW4jycj07ShQ== dependencies: "@babel/types" "7.0.0-beta.44" @@ -47,12 +47,12 @@ source-map "^0.5.0" trim-right "^1.0.1" -"@babel/generator@^7.0.0": - version "7.0.0" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.0.0.tgz#1efd58bffa951dc846449e58ce3a1d7f02d393aa" - integrity sha512-/BM2vupkpbZXq22l1ALO7MqXJZH2k8bKVv8Y+pABFnzWdztDB/ZLveP5At21vLz5c2YtSE6p7j2FZEsqafMz5Q== +"@babel/generator@^7.1.2", "@babel/generator@^7.1.3": + version "7.1.3" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.1.3.tgz#2103ec9c42d9bdad9190a6ad5ff2d456fd7b8673" + integrity sha512-ZoCZGcfIJFJuZBqxcY9OjC1KW2lWK64qrX1o4UYL3yshVhwKFYgzpWZ0vvtGMNJdTlvkw0W+HR1VnYN8q3QPFQ== dependencies: - "@babel/types" "^7.0.0" + "@babel/types" "^7.1.3" jsesc "^2.5.1" lodash "^4.17.10" source-map "^0.5.0" @@ -60,7 +60,7 @@ "@babel/helper-function-name@7.0.0-beta.44": version "7.0.0-beta.44" - resolved "http://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.0.0-beta.44.tgz#e18552aaae2231100a6e485e03854bc3532d44dd" + resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.0.0-beta.44.tgz#e18552aaae2231100a6e485e03854bc3532d44dd" integrity sha512-MHRG2qZMKMFaBavX0LWpfZ2e+hLloT++N7rfM3DYOMUOGCD8cVjqZpwiL8a0bOX3IYcQev1ruciT0gdFFRTxzg== dependencies: "@babel/helper-get-function-arity" "7.0.0-beta.44" @@ -78,7 +78,7 @@ "@babel/helper-get-function-arity@7.0.0-beta.44": version "7.0.0-beta.44" - resolved "http://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.0.0-beta.44.tgz#d03ca6dd2b9f7b0b1e6b32c56c72836140db3a15" + resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.0.0-beta.44.tgz#d03ca6dd2b9f7b0b1e6b32c56c72836140db3a15" integrity sha512-w0YjWVwrM2HwP6/H3sEgrSQdkCaxppqFeJtAnB23pRiJB5E/O9Yp7JAAeWBl+gGEgmBFinnTyOv2RN7rcSmMiw== dependencies: "@babel/types" "7.0.0-beta.44" @@ -92,7 +92,7 @@ "@babel/helper-split-export-declaration@7.0.0-beta.44": version "7.0.0-beta.44" - resolved "http://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.0.0-beta.44.tgz#c0b351735e0fbcb3822c8ad8db4e583b05ebd9dc" + resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.0.0-beta.44.tgz#c0b351735e0fbcb3822c8ad8db4e583b05ebd9dc" integrity sha512-aQ7QowtkgKKzPGf0j6u77kBMdUFVBKNHw2p/3HX/POt5/oz8ec5cs0GwlgM8Hz7ui5EwJnzyfRmkNF1Nx1N7aA== dependencies: "@babel/types" "7.0.0-beta.44" @@ -104,18 +104,18 @@ dependencies: "@babel/types" "^7.0.0" -"@babel/helpers@^7.1.0": - version "7.1.0" - resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.1.0.tgz#429bf0f0020be56a4242883432084e3d70a8a141" - integrity sha512-V1jXUTNdTpBn37wqqN73U+eBpzlLHmxA4aDaghJBggmzly/FpIJMHXse9lgdzQQT4gs5jZ5NmYxOL8G3ROc29g== +"@babel/helpers@^7.1.2": + version "7.1.2" + resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.1.2.tgz#ab752e8c35ef7d39987df4e8586c63b8846234b5" + integrity sha512-Myc3pUE8eswD73aWcartxB16K6CGmHDv9KxOmD2CeOs/FaEAQodr3VYGmlvOmog60vNQ2w8QbatuahepZwrHiA== dependencies: - "@babel/template" "^7.1.0" + "@babel/template" "^7.1.2" "@babel/traverse" "^7.1.0" - "@babel/types" "^7.0.0" + "@babel/types" "^7.1.2" "@babel/highlight@7.0.0-beta.44": version "7.0.0-beta.44" - resolved "http://registry.npmjs.org/@babel/highlight/-/highlight-7.0.0-beta.44.tgz#18c94ce543916a80553edcdcf681890b200747d5" + resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.0.0-beta.44.tgz#18c94ce543916a80553edcdcf681890b200747d5" integrity sha512-Il19yJvy7vMFm8AVAh6OZzaFoAd0hbkeMZiX3P5HGD+z7dyI7RzndHB0dg6Urh/VAFfHtpOIzDUSxmY6coyZWQ== dependencies: chalk "^2.0.0" @@ -131,14 +131,14 @@ esutils "^2.0.2" js-tokens "^4.0.0" -"@babel/parser@^7.1.0": - version "7.1.0" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.1.0.tgz#a7cd42cb3c12aec52e24375189a47b39759b783e" - integrity sha512-SmjnXCuPAlai75AFtzv+KCBcJ3sDDWbIn+WytKw1k+wAtEy6phqI2RqKh/zAnw53i1NR8su3Ep/UoqaKcimuLg== +"@babel/parser@^7.1.2", "@babel/parser@^7.1.3": + version "7.1.3" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.1.3.tgz#2c92469bac2b7fbff810b67fca07bd138b48af77" + integrity sha512-gqmspPZOMW3MIRb9HlrnbZHXI1/KHTOroBwN1NcLL6pWxzqzEKGvRTq0W/PxS45OtQGbaFikSQpkS5zbnsQm2w== "@babel/template@7.0.0-beta.44": version "7.0.0-beta.44" - resolved "http://registry.npmjs.org/@babel/template/-/template-7.0.0-beta.44.tgz#f8832f4fdcee5d59bf515e595fc5106c529b394f" + resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.0.0-beta.44.tgz#f8832f4fdcee5d59bf515e595fc5106c529b394f" integrity sha512-w750Sloq0UNifLx1rUqwfbnC6uSUk0mfwwgGRfdLiaUzfAOiH0tHJE6ILQIUi3KYkjiCDTskoIsnfqZvWLBDng== dependencies: "@babel/code-frame" "7.0.0-beta.44" @@ -146,18 +146,18 @@ babylon "7.0.0-beta.44" lodash "^4.2.0" -"@babel/template@^7.1.0": - version "7.1.0" - resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.1.0.tgz#58cc9572e1bfe24fe1537fdf99d839d53e517e22" - integrity sha512-yZ948B/pJrwWGY6VxG6XRFsVTee3IQ7bihq9zFpM00Vydu6z5Xwg0C3J644kxI9WOTzd+62xcIsQ+AT1MGhqhA== +"@babel/template@^7.1.0", "@babel/template@^7.1.2": + version "7.1.2" + resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.1.2.tgz#090484a574fef5a2d2d7726a674eceda5c5b5644" + integrity sha512-SY1MmplssORfFiLDcOETrW7fCLl+PavlwMh92rrGcikQaRq4iWPVH0MpwPpY3etVMx6RnDjXtr6VZYr/IbP/Ag== dependencies: "@babel/code-frame" "^7.0.0" - "@babel/parser" "^7.1.0" - "@babel/types" "^7.0.0" + "@babel/parser" "^7.1.2" + "@babel/types" "^7.1.2" "@babel/traverse@7.0.0-beta.44": version "7.0.0-beta.44" - resolved "http://registry.npmjs.org/@babel/traverse/-/traverse-7.0.0-beta.44.tgz#a970a2c45477ad18017e2e465a0606feee0d2966" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.0.0-beta.44.tgz#a970a2c45477ad18017e2e465a0606feee0d2966" integrity sha512-UHuDz8ukQkJCDASKHf+oDt3FVUzFd+QYfuBIsiNu/4+/ix6pP/C+uQZJ6K1oEfbCMv/IKWbgDEh7fcsnIE5AtA== dependencies: "@babel/code-frame" "7.0.0-beta.44" @@ -172,33 +172,33 @@ lodash "^4.2.0" "@babel/traverse@^7.1.0": - version "7.1.0" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.1.0.tgz#503ec6669387efd182c3888c4eec07bcc45d91b2" - integrity sha512-bwgln0FsMoxm3pLOgrrnGaXk18sSM9JNf1/nHC/FksmNGFbYnPWY4GYCfLxyP1KRmfsxqkRpfoa6xr6VuuSxdw== + version "7.1.4" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.1.4.tgz#f4f83b93d649b4b2c91121a9087fa2fa949ec2b4" + integrity sha512-my9mdrAIGdDiSVBuMjpn/oXYpva0/EZwWL3sm3Wcy/AVWO2eXnsoZruOT9jOGNRXU8KbCIu5zsKnXcAJ6PcV6Q== dependencies: "@babel/code-frame" "^7.0.0" - "@babel/generator" "^7.0.0" + "@babel/generator" "^7.1.3" "@babel/helper-function-name" "^7.1.0" "@babel/helper-split-export-declaration" "^7.0.0" - "@babel/parser" "^7.1.0" - "@babel/types" "^7.0.0" + "@babel/parser" "^7.1.3" + "@babel/types" "^7.1.3" debug "^3.1.0" globals "^11.1.0" lodash "^4.17.10" "@babel/types@7.0.0-beta.44": version "7.0.0-beta.44" - resolved "http://registry.npmjs.org/@babel/types/-/types-7.0.0-beta.44.tgz#6b1b164591f77dec0a0342aca995f2d046b3a757" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.0.0-beta.44.tgz#6b1b164591f77dec0a0342aca995f2d046b3a757" integrity sha512-5eTV4WRmqbaFM3v9gHAIljEQJU4Ssc6fxL61JN+Oe2ga/BwyjzjamwkCVVAQjHGuAX8i0BWo42dshL8eO5KfLQ== dependencies: esutils "^2.0.2" lodash "^4.2.0" to-fast-properties "^2.0.0" -"@babel/types@^7.0.0": - version "7.0.0" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.0.0.tgz#6e191793d3c854d19c6749989e3bc55f0e962118" - integrity sha512-5tPDap4bGKTLPtci2SUl/B7Gv8RnuJFuQoWx26RJobS0fFrz4reUA3JnwIM+HVHEmWE0C1mzKhDtTp8NsWY02Q== +"@babel/types@^7.0.0", "@babel/types@^7.1.2", "@babel/types@^7.1.3": + version "7.1.3" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.1.3.tgz#3a767004567060c2f40fca49a304712c525ee37d" + integrity sha512-RpPOVfK+yatXyn8n4PB1NW6k9qjinrXrRR8ugBN8fD6hCy5RXI6PSbVqpOJBO9oSaY7Nom4ohj35feb0UR9hSA== dependencies: esutils "^2.0.2" lodash "^4.17.10" @@ -222,12 +222,12 @@ "@commitlint/config-conventional@^6.1.0": version "6.1.3" - resolved "http://registry.npmjs.org/@commitlint/config-conventional/-/config-conventional-6.1.3.tgz#6c06eeae04c5ac789c3618df4d52aeda89ffb810" + resolved "https://registry.yarnpkg.com/@commitlint/config-conventional/-/config-conventional-6.1.3.tgz#6c06eeae04c5ac789c3618df4d52aeda89ffb810" integrity sha1-bAburgTFrHicNhjfTVKu2on/uBA= "@commitlint/ensure@^6.1.3": version "6.1.3" - resolved "http://registry.npmjs.org/@commitlint/ensure/-/ensure-6.1.3.tgz#813b58c9fdfae15351b72fe646a162ebdb71ea2a" + resolved "https://registry.yarnpkg.com/@commitlint/ensure/-/ensure-6.1.3.tgz#813b58c9fdfae15351b72fe646a162ebdb71ea2a" integrity sha1-gTtYyf364VNRty/mRqFi69tx6io= dependencies: lodash.camelcase "4.3.0" @@ -238,14 +238,14 @@ "@commitlint/execute-rule@^6.1.3": version "6.1.3" - resolved "http://registry.npmjs.org/@commitlint/execute-rule/-/execute-rule-6.1.3.tgz#48928e736ef15e8710d332a15c7c899555e4e10b" + resolved "https://registry.yarnpkg.com/@commitlint/execute-rule/-/execute-rule-6.1.3.tgz#48928e736ef15e8710d332a15c7c899555e4e10b" integrity sha1-SJKOc27xXocQ0zKhXHyJlVXk4Qs= dependencies: babel-runtime "6.26.0" "@commitlint/format@^6.1.3": version "6.1.3" - resolved "http://registry.npmjs.org/@commitlint/format/-/format-6.1.3.tgz#414b9048a9af54587da96222717ba332347abde3" + resolved "https://registry.yarnpkg.com/@commitlint/format/-/format-6.1.3.tgz#414b9048a9af54587da96222717ba332347abde3" integrity sha1-QUuQSKmvVFh9qWIicXujMjR6veM= dependencies: babel-runtime "^6.23.0" @@ -253,7 +253,7 @@ "@commitlint/is-ignored@^6.1.3": version "6.1.3" - resolved "http://registry.npmjs.org/@commitlint/is-ignored/-/is-ignored-6.1.3.tgz#89c9b964a4d6228875a579c2bf552d003734b7e8" + resolved "https://registry.yarnpkg.com/@commitlint/is-ignored/-/is-ignored-6.1.3.tgz#89c9b964a4d6228875a579c2bf552d003734b7e8" integrity sha1-icm5ZKTWIoh1pXnCv1UtADc0t+g= dependencies: semver "5.5.0" @@ -271,7 +271,7 @@ "@commitlint/load@^6.1.3": version "6.1.3" - resolved "http://registry.npmjs.org/@commitlint/load/-/load-6.1.3.tgz#1be40711397958f316cf40577a9c879a16f00a54" + resolved "https://registry.yarnpkg.com/@commitlint/load/-/load-6.1.3.tgz#1be40711397958f316cf40577a9c879a16f00a54" integrity sha1-G+QHETl5WPMWz0BXepyHmhbwClQ= dependencies: "@commitlint/execute-rule" "^6.1.3" @@ -286,12 +286,12 @@ "@commitlint/message@^6.1.3": version "6.1.3" - resolved "http://registry.npmjs.org/@commitlint/message/-/message-6.1.3.tgz#5e0473330c887016010c4c56270723b8001145d2" + resolved "https://registry.yarnpkg.com/@commitlint/message/-/message-6.1.3.tgz#5e0473330c887016010c4c56270723b8001145d2" integrity sha1-XgRzMwyIcBYBDExWJwcjuAARRdI= "@commitlint/parse@^6.1.3": version "6.1.3" - resolved "http://registry.npmjs.org/@commitlint/parse/-/parse-6.1.3.tgz#ff1e4d92c27cd676812bb6b9d76cd8853c0d9407" + resolved "https://registry.yarnpkg.com/@commitlint/parse/-/parse-6.1.3.tgz#ff1e4d92c27cd676812bb6b9d76cd8853c0d9407" integrity sha1-/x5NksJ81naBK7a512zYhTwNlAc= dependencies: conventional-changelog-angular "^1.3.3" @@ -299,7 +299,7 @@ "@commitlint/prompt@^6.1.0": version "6.1.3" - resolved "http://registry.npmjs.org/@commitlint/prompt/-/prompt-6.1.3.tgz#ca4dee582a1c24297266d6bb6f5eb0ed45a1db46" + resolved "https://registry.yarnpkg.com/@commitlint/prompt/-/prompt-6.1.3.tgz#ca4dee582a1c24297266d6bb6f5eb0ed45a1db46" integrity sha1-yk3uWCocJClyZta7b16w7UWh20Y= dependencies: "@commitlint/load" "^6.1.3" @@ -316,7 +316,7 @@ "@commitlint/read@^6.1.3": version "6.1.3" - resolved "http://registry.npmjs.org/@commitlint/read/-/read-6.1.3.tgz#9f9d8db50fbf67f3000921657ed6efadb8cf9f1a" + resolved "https://registry.yarnpkg.com/@commitlint/read/-/read-6.1.3.tgz#9f9d8db50fbf67f3000921657ed6efadb8cf9f1a" integrity sha1-n52NtQ+/Z/MACSFlftbvrbjPnxo= dependencies: "@commitlint/top-level" "^6.1.3" @@ -326,7 +326,7 @@ "@commitlint/resolve-extends@^6.1.3": version "6.1.3" - resolved "http://registry.npmjs.org/@commitlint/resolve-extends/-/resolve-extends-6.1.3.tgz#f45fcfe43860e05e38f3d94d54caed7ddaa41e25" + resolved "https://registry.yarnpkg.com/@commitlint/resolve-extends/-/resolve-extends-6.1.3.tgz#f45fcfe43860e05e38f3d94d54caed7ddaa41e25" integrity sha1-9F/P5Dhg4F4489lNVMrtfdqkHiU= dependencies: babel-runtime "6.26.0" @@ -348,12 +348,12 @@ "@commitlint/to-lines@^6.1.3": version "6.1.3" - resolved "http://registry.npmjs.org/@commitlint/to-lines/-/to-lines-6.1.3.tgz#7ab16a02caed8daa47e959269b96164610a29d0c" + resolved "https://registry.yarnpkg.com/@commitlint/to-lines/-/to-lines-6.1.3.tgz#7ab16a02caed8daa47e959269b96164610a29d0c" integrity sha1-erFqAsrtjapH6Vkmm5YWRhCinQw= "@commitlint/top-level@^6.1.3": version "6.1.3" - resolved "http://registry.npmjs.org/@commitlint/top-level/-/top-level-6.1.3.tgz#126dcb6de1676342c69cd42261483f4478547299" + resolved "https://registry.yarnpkg.com/@commitlint/top-level/-/top-level-6.1.3.tgz#126dcb6de1676342c69cd42261483f4478547299" integrity sha1-Em3LbeFnY0LGnNQiYUg/RHhUcpk= dependencies: find-up "^2.1.0" @@ -393,155 +393,151 @@ integrity sha512-ONhaKPIufzzrlNbqtWFFd+jlnemX6lJAgq9ZeiZtS7I1PIf/la7CW4m83rTXRnVnsMbW2k56pGYu7AUFJD9Pow== "@types/node@*", "@types/node@^10.3.2": - version "10.10.1" - resolved "https://registry.yarnpkg.com/@types/node/-/node-10.10.1.tgz#d5c96ca246a418404914d180b7fdd625ad18eca6" - integrity sha512-nzsx28VwfaIykfzMAG9TB3jxF5Nn+1/WMKnmVZc8TsB+LMIVvwUscVn7PAq+LFaY5ng5u4jp5mRROSswo76PPA== - -"@webassemblyjs/ast@1.7.6": - version "1.7.6" - resolved "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.7.6.tgz#3ef8c45b3e5e943a153a05281317474fef63e21e" - integrity sha512-8nkZS48EVsMUU0v6F1LCIOw4RYWLm2plMtbhFTjNgeXmsTNLuU3xTRtnljt9BFQB+iPbLRobkNrCWftWnNC7wQ== - dependencies: - "@webassemblyjs/helper-module-context" "1.7.6" - "@webassemblyjs/helper-wasm-bytecode" "1.7.6" - "@webassemblyjs/wast-parser" "1.7.6" - mamacro "^0.0.3" - -"@webassemblyjs/floating-point-hex-parser@1.7.6": - version "1.7.6" - resolved "https://registry.yarnpkg.com/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.7.6.tgz#7cb37d51a05c3fe09b464ae7e711d1ab3837801f" - integrity sha512-VBOZvaOyBSkPZdIt5VBMg3vPWxouuM13dPXGWI1cBh3oFLNcFJ8s9YA7S9l4mPI7+Q950QqOmqj06oa83hNWBA== - -"@webassemblyjs/helper-api-error@1.7.6": - version "1.7.6" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-api-error/-/helper-api-error-1.7.6.tgz#99b7e30e66f550a2638299a109dda84a622070ef" - integrity sha512-SCzhcQWHXfrfMSKcj8zHg1/kL9kb3aa5TN4plc/EREOs5Xop0ci5bdVBApbk2yfVi8aL+Ly4Qpp3/TRAUInjrg== - -"@webassemblyjs/helper-buffer@1.7.6": - version "1.7.6" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-buffer/-/helper-buffer-1.7.6.tgz#ba0648be12bbe560c25c997e175c2018df39ca3e" - integrity sha512-1/gW5NaGsEOZ02fjnFiU8/OEEXU1uVbv2um0pQ9YVL3IHSkyk6xOwokzyqqO1qDZQUAllb+V8irtClPWntbVqw== - -"@webassemblyjs/helper-code-frame@1.7.6": - version "1.7.6" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.7.6.tgz#5a94d21b0057b69a7403fca0c253c3aaca95b1a5" - integrity sha512-+suMJOkSn9+vEvDvgyWyrJo5vJsWSDXZmJAjtoUq4zS4eqHyXImpktvHOZwXp1XQjO5H+YQwsBgqTQEc0J/5zg== - dependencies: - "@webassemblyjs/wast-printer" "1.7.6" - -"@webassemblyjs/helper-fsm@1.7.6": - version "1.7.6" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-fsm/-/helper-fsm-1.7.6.tgz#ae1741c6f6121213c7a0b587fb964fac492d3e49" - integrity sha512-HCS6KN3wgxUihGBW7WFzEC/o8Eyvk0d56uazusnxXthDPnkWiMv+kGi9xXswL2cvfYfeK5yiM17z2K5BVlwypw== - -"@webassemblyjs/helper-module-context@1.7.6": - version "1.7.6" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-module-context/-/helper-module-context-1.7.6.tgz#116d19a51a6cebc8900ad53ca34ff8269c668c23" - integrity sha512-e8/6GbY7OjLM+6OsN7f2krC2qYVNaSr0B0oe4lWdmq5sL++8dYDD1TFbD1TdAdWMRTYNr/Qq7ovXWzia2EbSjw== - dependencies: - mamacro "^0.0.3" - -"@webassemblyjs/helper-wasm-bytecode@1.7.6": - version "1.7.6" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.7.6.tgz#98e515eaee611aa6834eb5f6a7f8f5b29fefb6f1" - integrity sha512-PzYFCb7RjjSdAOljyvLWVqd6adAOabJW+8yRT+NWhXuf1nNZWH+igFZCUK9k7Cx7CsBbzIfXjJc7u56zZgFj9Q== - -"@webassemblyjs/helper-wasm-section@1.7.6": - version "1.7.6" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.7.6.tgz#783835867bdd686df7a95377ab64f51a275e8333" - integrity sha512-3GS628ppDPSuwcYlQ7cDCGr4W2n9c4hLzvnRKeuz+lGsJSmc/ADVoYpm1ts2vlB1tGHkjtQMni+yu8mHoMlKlA== - dependencies: - "@webassemblyjs/ast" "1.7.6" - "@webassemblyjs/helper-buffer" "1.7.6" - "@webassemblyjs/helper-wasm-bytecode" "1.7.6" - "@webassemblyjs/wasm-gen" "1.7.6" - -"@webassemblyjs/ieee754@1.7.6": - version "1.7.6" - resolved "https://registry.yarnpkg.com/@webassemblyjs/ieee754/-/ieee754-1.7.6.tgz#c34fc058f2f831fae0632a8bb9803cf2d3462eb1" - integrity sha512-V4cIp0ruyw+hawUHwQLn6o2mFEw4t50tk530oKsYXQhEzKR+xNGDxs/SFFuyTO7X3NzEu4usA3w5jzhl2RYyzQ== + version "10.12.0" + resolved "https://registry.yarnpkg.com/@types/node/-/node-10.12.0.tgz#ea6dcbddbc5b584c83f06c60e82736d8fbb0c235" + integrity sha512-3TUHC3jsBAB7qVRGxT6lWyYo2v96BMmD2PTcl47H25Lu7UXtFH/2qqmKiVrnel6Ne//0TFYf6uvNX+HW2FRkLQ== + +"@webassemblyjs/ast@1.7.10": + version "1.7.10" + resolved "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.7.10.tgz#0cfc61d61286240b72fc522cb755613699eea40a" + integrity sha512-wTUeaByYN2EA6qVqhbgavtGc7fLTOx0glG2IBsFlrFG51uXIGlYBTyIZMf4SPLo3v1bgV/7lBN3l7Z0R6Hswew== + dependencies: + "@webassemblyjs/helper-module-context" "1.7.10" + "@webassemblyjs/helper-wasm-bytecode" "1.7.10" + "@webassemblyjs/wast-parser" "1.7.10" + +"@webassemblyjs/floating-point-hex-parser@1.7.10": + version "1.7.10" + resolved "https://registry.yarnpkg.com/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.7.10.tgz#ee63d729c6311a85863e369a473f9983f984e4d9" + integrity sha512-gMsGbI6I3p/P1xL2UxqhNh1ga2HCsx5VBB2i5VvJFAaqAjd2PBTRULc3BpTydabUQEGlaZCzEUQhLoLG7TvEYQ== + +"@webassemblyjs/helper-api-error@1.7.10": + version "1.7.10" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-api-error/-/helper-api-error-1.7.10.tgz#bfcb3bbe59775357475790a2ad7b289f09b2f198" + integrity sha512-DoYRlPWtuw3yd5BOr9XhtrmB6X1enYF0/54yNvQWGXZEPDF5PJVNI7zQ7gkcKfTESzp8bIBWailaFXEK/jjCsw== + +"@webassemblyjs/helper-buffer@1.7.10": + version "1.7.10" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-buffer/-/helper-buffer-1.7.10.tgz#0a8c624c67ad0b214d2e003859921a1988cb151b" + integrity sha512-+RMU3dt/dPh4EpVX4u5jxsOlw22tp3zjqE0m3ftU2tsYxnPULb4cyHlgaNd2KoWuwasCQqn8Mhr+TTdbtj3LlA== + +"@webassemblyjs/helper-code-frame@1.7.10": + version "1.7.10" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.7.10.tgz#0ab7e22fad0241a173178c73976fc0edf50832ce" + integrity sha512-UiytbpKAULOEab2hUZK2ywXen4gWJVrgxtwY3Kn+eZaaSWaRM8z/7dAXRSoamhKFiBh1uaqxzE/XD9BLlug3gw== + dependencies: + "@webassemblyjs/wast-printer" "1.7.10" + +"@webassemblyjs/helper-fsm@1.7.10": + version "1.7.10" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-fsm/-/helper-fsm-1.7.10.tgz#0915e7713fbbb735620a9d3e4fa3d7951f97ac64" + integrity sha512-w2vDtUK9xeSRtt5+RnnlRCI7wHEvLjF0XdnxJpgx+LJOvklTZPqWkuy/NhwHSLP19sm9H8dWxKeReMR7sCkGZA== + +"@webassemblyjs/helper-module-context@1.7.10": + version "1.7.10" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-module-context/-/helper-module-context-1.7.10.tgz#9beb83f72740f5ac8075313b5cac5e796510f755" + integrity sha512-yE5x/LzZ3XdPdREmJijxzfrf+BDRewvO0zl8kvORgSWmxpRrkqY39KZSq6TSgIWBxkK4SrzlS3BsMCv2s1FpsQ== + +"@webassemblyjs/helper-wasm-bytecode@1.7.10": + version "1.7.10" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.7.10.tgz#797b1e734bbcfdea8399669cdc58308ef1c7ffc0" + integrity sha512-u5qy4SJ/OrxKxZqJ9N3qH4ZQgHaAzsopsYwLvoWJY6Q33r8PhT3VPyNMaJ7ZFoqzBnZlCcS/0f4Sp8WBxylXfg== + +"@webassemblyjs/helper-wasm-section@1.7.10": + version "1.7.10" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.7.10.tgz#c0ea3703c615d7bc3e3507c3b7991c8767b2f20e" + integrity sha512-Ecvww6sCkcjatcyctUrn22neSJHLN/TTzolMGG/N7S9rpbsTZ8c6Bl98GpSpV77EvzNijiNRHBG0+JO99qKz6g== + dependencies: + "@webassemblyjs/ast" "1.7.10" + "@webassemblyjs/helper-buffer" "1.7.10" + "@webassemblyjs/helper-wasm-bytecode" "1.7.10" + "@webassemblyjs/wasm-gen" "1.7.10" + +"@webassemblyjs/ieee754@1.7.10": + version "1.7.10" + resolved "https://registry.yarnpkg.com/@webassemblyjs/ieee754/-/ieee754-1.7.10.tgz#62c1728b7ef0f66ef8221e2966a0afd75db430df" + integrity sha512-HRcWcY+YWt4+s/CvQn+vnSPfRaD4KkuzQFt5MNaELXXHSjelHlSEA8ZcqT69q0GTIuLWZ6JaoKar4yWHVpZHsQ== dependencies: "@xtuc/ieee754" "^1.2.0" -"@webassemblyjs/leb128@1.7.6": - version "1.7.6" - resolved "https://registry.yarnpkg.com/@webassemblyjs/leb128/-/leb128-1.7.6.tgz#197f75376a29f6ed6ace15898a310d871d92f03b" - integrity sha512-ojdlG8WpM394lBow4ncTGJoIVZ4aAtNOWHhfAM7m7zprmkVcKK+2kK5YJ9Bmj6/ketTtOn7wGSHCtMt+LzqgYQ== +"@webassemblyjs/leb128@1.7.10": + version "1.7.10" + resolved "https://registry.yarnpkg.com/@webassemblyjs/leb128/-/leb128-1.7.10.tgz#167e0bb4b06d7701585772a73fba9f4df85439f6" + integrity sha512-og8MciYlA8hvzCLR71hCuZKPbVBfLQeHv7ImKZ4nlyxrYbG7uJHYtHiHu6OV9SqrGuD03H/HtXC4Bgdjfm9FHw== dependencies: "@xtuc/long" "4.2.1" -"@webassemblyjs/utf8@1.7.6": - version "1.7.6" - resolved "https://registry.yarnpkg.com/@webassemblyjs/utf8/-/utf8-1.7.6.tgz#eb62c66f906af2be70de0302e29055d25188797d" - integrity sha512-oId+tLxQ+AeDC34ELRYNSqJRaScB0TClUU6KQfpB8rNT6oelYlz8axsPhf6yPTg7PBJ/Z5WcXmUYiHEWgbbHJw== - -"@webassemblyjs/wasm-edit@1.7.6": - version "1.7.6" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-edit/-/wasm-edit-1.7.6.tgz#fa41929160cd7d676d4c28ecef420eed5b3733c5" - integrity sha512-pTNjLO3o41v/Vz9VFLl+I3YLImpCSpodFW77pNoH4agn5I6GgSxXHXtvWDTvYJFty0jSeXZWLEmbaSIRUDlekg== - dependencies: - "@webassemblyjs/ast" "1.7.6" - "@webassemblyjs/helper-buffer" "1.7.6" - "@webassemblyjs/helper-wasm-bytecode" "1.7.6" - "@webassemblyjs/helper-wasm-section" "1.7.6" - "@webassemblyjs/wasm-gen" "1.7.6" - "@webassemblyjs/wasm-opt" "1.7.6" - "@webassemblyjs/wasm-parser" "1.7.6" - "@webassemblyjs/wast-printer" "1.7.6" - -"@webassemblyjs/wasm-gen@1.7.6": - version "1.7.6" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-gen/-/wasm-gen-1.7.6.tgz#695ac38861ab3d72bf763c8c75e5f087ffabc322" - integrity sha512-mQvFJVumtmRKEUXMohwn8nSrtjJJl6oXwF3FotC5t6e2hlKMh8sIaW03Sck2MDzw9xPogZD7tdP5kjPlbH9EcQ== - dependencies: - "@webassemblyjs/ast" "1.7.6" - "@webassemblyjs/helper-wasm-bytecode" "1.7.6" - "@webassemblyjs/ieee754" "1.7.6" - "@webassemblyjs/leb128" "1.7.6" - "@webassemblyjs/utf8" "1.7.6" - -"@webassemblyjs/wasm-opt@1.7.6": - version "1.7.6" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-opt/-/wasm-opt-1.7.6.tgz#fbafa78e27e1a75ab759a4b658ff3d50b4636c21" - integrity sha512-go44K90fSIsDwRgtHhX14VtbdDPdK2sZQtZqUcMRvTojdozj5tLI0VVJAzLCfz51NOkFXezPeVTAYFqrZ6rI8Q== - dependencies: - "@webassemblyjs/ast" "1.7.6" - "@webassemblyjs/helper-buffer" "1.7.6" - "@webassemblyjs/wasm-gen" "1.7.6" - "@webassemblyjs/wasm-parser" "1.7.6" - -"@webassemblyjs/wasm-parser@1.7.6": - version "1.7.6" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-parser/-/wasm-parser-1.7.6.tgz#84eafeeff405ad6f4c4b5777d6a28ae54eed51fe" - integrity sha512-t1T6TfwNY85pDA/HWPA8kB9xA4sp9ajlRg5W7EKikqrynTyFo+/qDzIpvdkOkOGjlS6d4n4SX59SPuIayR22Yg== - dependencies: - "@webassemblyjs/ast" "1.7.6" - "@webassemblyjs/helper-api-error" "1.7.6" - "@webassemblyjs/helper-wasm-bytecode" "1.7.6" - "@webassemblyjs/ieee754" "1.7.6" - "@webassemblyjs/leb128" "1.7.6" - "@webassemblyjs/utf8" "1.7.6" - -"@webassemblyjs/wast-parser@1.7.6": - version "1.7.6" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-parser/-/wast-parser-1.7.6.tgz#ca4d20b1516e017c91981773bd7e819d6bd9c6a7" - integrity sha512-1MaWTErN0ziOsNUlLdvwS+NS1QWuI/kgJaAGAMHX8+fMJFgOJDmN/xsG4h/A1Gtf/tz5VyXQciaqHZqp2q0vfg== - dependencies: - "@webassemblyjs/ast" "1.7.6" - "@webassemblyjs/floating-point-hex-parser" "1.7.6" - "@webassemblyjs/helper-api-error" "1.7.6" - "@webassemblyjs/helper-code-frame" "1.7.6" - "@webassemblyjs/helper-fsm" "1.7.6" +"@webassemblyjs/utf8@1.7.10": + version "1.7.10" + resolved "https://registry.yarnpkg.com/@webassemblyjs/utf8/-/utf8-1.7.10.tgz#b6728f5b6f50364abc155be029f9670e6685605a" + integrity sha512-Ng6Pxv6siyZp635xCSnH3mKmIFgqWPCcGdoo0GBYgyGdxu7cUj4agV7Uu1a8REP66UYUFXJLudeGgd4RvuJAnQ== + +"@webassemblyjs/wasm-edit@1.7.10": + version "1.7.10" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-edit/-/wasm-edit-1.7.10.tgz#83fe3140f5a58f5a30b914702be9f0e59a399092" + integrity sha512-e9RZFQlb+ZuYcKRcW9yl+mqX/Ycj9+3/+ppDI8nEE/NCY6FoK8f3dKBcfubYV/HZn44b+ND4hjh+4BYBt+sDnA== + dependencies: + "@webassemblyjs/ast" "1.7.10" + "@webassemblyjs/helper-buffer" "1.7.10" + "@webassemblyjs/helper-wasm-bytecode" "1.7.10" + "@webassemblyjs/helper-wasm-section" "1.7.10" + "@webassemblyjs/wasm-gen" "1.7.10" + "@webassemblyjs/wasm-opt" "1.7.10" + "@webassemblyjs/wasm-parser" "1.7.10" + "@webassemblyjs/wast-printer" "1.7.10" + +"@webassemblyjs/wasm-gen@1.7.10": + version "1.7.10" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-gen/-/wasm-gen-1.7.10.tgz#4de003806ae29c97ab3707782469b53299570174" + integrity sha512-M0lb6cO2Y0PzDye/L39PqwV+jvO+2YxEG5ax+7dgq7EwXdAlpOMx1jxyXJTScQoeTpzOPIb+fLgX/IkLF8h2yw== + dependencies: + "@webassemblyjs/ast" "1.7.10" + "@webassemblyjs/helper-wasm-bytecode" "1.7.10" + "@webassemblyjs/ieee754" "1.7.10" + "@webassemblyjs/leb128" "1.7.10" + "@webassemblyjs/utf8" "1.7.10" + +"@webassemblyjs/wasm-opt@1.7.10": + version "1.7.10" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-opt/-/wasm-opt-1.7.10.tgz#d151e31611934a556c82789fdeec41a814993c2a" + integrity sha512-R66IHGCdicgF5ZliN10yn5HaC7vwYAqrSVJGjtJJQp5+QNPBye6heWdVH/at40uh0uoaDN/UVUfXK0gvuUqtVg== + dependencies: + "@webassemblyjs/ast" "1.7.10" + "@webassemblyjs/helper-buffer" "1.7.10" + "@webassemblyjs/wasm-gen" "1.7.10" + "@webassemblyjs/wasm-parser" "1.7.10" + +"@webassemblyjs/wasm-parser@1.7.10": + version "1.7.10" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-parser/-/wasm-parser-1.7.10.tgz#0367be7bf8f09e3e6abc95f8e483b9206487ec65" + integrity sha512-AEv8mkXVK63n/iDR3T693EzoGPnNAwKwT3iHmKJNBrrALAhhEjuPzo/lTE4U7LquEwyvg5nneSNdTdgrBaGJcA== + dependencies: + "@webassemblyjs/ast" "1.7.10" + "@webassemblyjs/helper-api-error" "1.7.10" + "@webassemblyjs/helper-wasm-bytecode" "1.7.10" + "@webassemblyjs/ieee754" "1.7.10" + "@webassemblyjs/leb128" "1.7.10" + "@webassemblyjs/utf8" "1.7.10" + +"@webassemblyjs/wast-parser@1.7.10": + version "1.7.10" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-parser/-/wast-parser-1.7.10.tgz#058f598b52f730b23fc874d4775b6286b6247264" + integrity sha512-YTPEtOBljkCL0VjDp4sHe22dAYSm3ZwdJ9+2NTGdtC7ayNvuip1wAhaAS8Zt9Q6SW9E5Jf5PX7YE3XWlrzR9cw== + dependencies: + "@webassemblyjs/ast" "1.7.10" + "@webassemblyjs/floating-point-hex-parser" "1.7.10" + "@webassemblyjs/helper-api-error" "1.7.10" + "@webassemblyjs/helper-code-frame" "1.7.10" + "@webassemblyjs/helper-fsm" "1.7.10" "@xtuc/long" "4.2.1" - mamacro "^0.0.3" -"@webassemblyjs/wast-printer@1.7.6": - version "1.7.6" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-printer/-/wast-printer-1.7.6.tgz#a6002c526ac5fa230fe2c6d2f1bdbf4aead43a5e" - integrity sha512-vHdHSK1tOetvDcl1IV1OdDeGNe/NDDQ+KzuZHMtqTVP1xO/tZ/IKNpj5BaGk1OYFdsDWQqb31PIwdEyPntOWRQ== +"@webassemblyjs/wast-printer@1.7.10": + version "1.7.10" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-printer/-/wast-printer-1.7.10.tgz#d817909d2450ae96c66b7607624d98a33b84223b" + integrity sha512-mJ3QKWtCchL1vhU/kZlJnLPuQZnlDOdZsyP0bbLWPGdYsQDnSBvyTLhzwBA3QAMlzEL9V4JHygEmK6/OTEyytA== dependencies: - "@webassemblyjs/ast" "1.7.6" - "@webassemblyjs/wast-parser" "1.7.6" + "@webassemblyjs/ast" "1.7.10" + "@webassemblyjs/wast-parser" "1.7.10" "@xtuc/long" "4.2.1" "@xtuc/ieee754@^1.2.0": @@ -555,9 +551,9 @@ integrity sha512-FZdkNBDqBRHKQ2MEbSC17xnPFOhZxeJ2YGSfr2BKf3sujG49Qe3bB+rGCwQfIaA7WHnGeGkSijX4FuBCdrzW/g== JSONStream@^1.0.4: - version "1.3.4" - resolved "https://registry.yarnpkg.com/JSONStream/-/JSONStream-1.3.4.tgz#615bb2adb0cd34c8f4c447b5f6512fa1d8f16a2e" - integrity sha512-Y7vfi3I5oMOYIr+WxV8NZxDSwcbNgzdKYsTNInmycOq9bUYwGg9ryu57Wg5NLmCjqdFPNUmpMBo3kSJN9tCbXg== + version "1.3.5" + resolved "https://registry.yarnpkg.com/JSONStream/-/JSONStream-1.3.5.tgz#3208c1f08d3a4d99261ab64f92302bc15e111ca0" + integrity sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ== dependencies: jsonparse "^1.2.0" through ">=2.2.7 <3" @@ -594,7 +590,7 @@ acorn-dynamic-import@^3.0.0: acorn-globals@^1.0.4: version "1.0.9" - resolved "http://registry.npmjs.org/acorn-globals/-/acorn-globals-1.0.9.tgz#55bb5e98691507b74579d0513413217c380c54cf" + resolved "https://registry.yarnpkg.com/acorn-globals/-/acorn-globals-1.0.9.tgz#55bb5e98691507b74579d0513413217c380c54cf" integrity sha1-VbtemGkVB7dFedBRNBMhfDgMVM8= dependencies: acorn "^2.1.0" @@ -615,18 +611,18 @@ acorn-jsx@^3.0.0: acorn "^3.0.4" acorn-walk@^6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-6.0.1.tgz#c7827bdbb8e21aa97b609adfa225400d9ae348ba" - integrity sha512-PqVQ8c6a3kyqdsUZlC7nljp3FFuxipBRHKu+7C1h8QygBFlzTaDX5HD383jej3Peed+1aDG8HwkfB1Z1HMNPkw== + version "6.1.0" + resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-6.1.0.tgz#c957f4a1460da46af4a0388ce28b4c99355b0cbc" + integrity sha512-ugTb7Lq7u4GfWSqqpwE0bGyoBZNMTok/zDBXxfEG0QM50jNlGhIWjRC1pPN7bvV1anhF+bs+/gNcRw+o55Evbg== acorn@^2.1.0, acorn@^2.4.0: version "2.7.0" - resolved "http://registry.npmjs.org/acorn/-/acorn-2.7.0.tgz#ab6e7d9d886aaca8b085bc3312b79a198433f0e7" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-2.7.0.tgz#ab6e7d9d886aaca8b085bc3312b79a198433f0e7" integrity sha1-q259nYhqrKiwhbwzEreaGYQz8Oc= acorn@^3.0.4: version "3.3.0" - resolved "http://registry.npmjs.org/acorn/-/acorn-3.3.0.tgz#45e37fb39e8da3f25baee3ff5369e2bb5f22017a" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-3.3.0.tgz#45e37fb39e8da3f25baee3ff5369e2bb5f22017a" integrity sha1-ReN/s56No/JbruP/U2niu18iAXo= acorn@^5.0.0, acorn@^5.5.0, acorn@^5.5.3, acorn@^5.6.2: @@ -635,9 +631,9 @@ acorn@^5.0.0, acorn@^5.5.0, acorn@^5.5.3, acorn@^5.6.2: integrity sha512-T/zvzYRfbVojPWahDsE5evJdHb3oJoQfFbsrKM7w5Zcs++Tr257tia3BmMP8XYVjp1S9RZXQMh7gao96BlqZOw== acorn@^6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-6.0.1.tgz#66e6147e1027704479dc6d9b20d884c572db3cc1" - integrity sha512-SiwgrRuRD2D1R6qjwwoopKcCTkmmIWjy1M15Wv+Nk/7VUsBad4P8GOPft2t6coDZG0TuR5dq9o1v0g8wo7F6+A== + version "6.0.2" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-6.0.2.tgz#6a459041c320ab17592c6317abbfdf4bbaa98ca4" + integrity sha512-GXmKIvbrN3TV7aVqAzVFaMW8F8wzVX7voEBRO3bDA64+EX37YSayggRJP5Xig6HYHBkWKpFg9W5gg6orklubhg== aes-js@3.0.0: version "3.0.0" @@ -664,10 +660,10 @@ ajv@^5.2.3, ajv@^5.3.0: fast-json-stable-stringify "^2.0.0" json-schema-traverse "^0.3.0" -ajv@^6.0.1, ajv@^6.1.0: - version "6.5.3" - resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.5.3.tgz#71a569d189ecf4f4f321224fecb166f071dd90f9" - integrity sha512-LqZ9wY+fx3UMiiPd741yB2pj3hhil+hQc8taf4o2QGRFpWgZ2V5C8HA165DY9sS3fJwsk7uT7ZlFEyC3Ig3lLg== +ajv@^6.0.1, ajv@^6.1.0, ajv@^6.5.3: + version "6.5.4" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.5.4.tgz#247d5274110db653706b550fcc2b797ca28cfc59" + integrity sha512-4Wyjt8+t6YszqaXnLDfMmG/8AlO5Zbcsy3ATHncCzjW/NoPzAId8AK6749Ybjmdt+kUY1gP60fCu46oDxPv/mg== dependencies: fast-deep-equal "^2.0.1" fast-json-stable-stringify "^2.0.0" @@ -892,7 +888,7 @@ assert@^1.1.1: dependencies: util "0.10.3" -assertion-error@^1.0.1: +assertion-error@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/assertion-error/-/assertion-error-1.1.0.tgz#e60b6b0e8f301bd97e5375215bda406c85118c0b" integrity sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw== @@ -956,7 +952,7 @@ atob@^2.1.1: autoprefixer@^7.1.2: version "7.2.6" - resolved "http://registry.npmjs.org/autoprefixer/-/autoprefixer-7.2.6.tgz#256672f86f7c735da849c4f07d008abb056067dc" + resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-7.2.6.tgz#256672f86f7c735da849c4f07d008abb056067dc" integrity sha512-Iq8TRIB+/9eQ8rbGhcP7ct5cYb/3qjNYAR2SnzLCEcwF6rvVOax8+9+fccgXk4bEhQGjOZd5TLhsksmAdsbGqQ== dependencies: browserslist "^2.11.3" @@ -967,16 +963,16 @@ autoprefixer@^7.1.2: postcss-value-parser "^3.2.3" autoprefixer@^9.0.0: - version "9.1.5" - resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-9.1.5.tgz#8675fd8d1c0d43069f3b19a2c316f3524e4f6671" - integrity sha512-kk4Zb6RUc58ld7gdosERHMF3DzIYJc2fp5sX46qEsGXQQy5bXsu8qyLjoxuY1NuQ/cJuCYnx99BfjwnRggrYIw== + version "9.3.1" + resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-9.3.1.tgz#71b622174de2b783d5fd99f9ad617b7a3c78443e" + integrity sha512-DY9gOh8z3tnCbJ13JIWaeQsoYncTGdsrgCceBaQSIL4nvdrLxgbRSBPevg2XbX7u4QCSfLheSJEEIUUSlkbx6Q== dependencies: - browserslist "^4.1.0" - caniuse-lite "^1.0.30000884" + browserslist "^4.3.3" + caniuse-lite "^1.0.30000898" normalize-range "^0.1.2" num2fraction "^1.2.2" - postcss "^7.0.2" - postcss-value-parser "^3.2.3" + postcss "^7.0.5" + postcss-value-parser "^3.3.1" aws-sign2@~0.7.0: version "0.7.0" @@ -990,16 +986,16 @@ aws4@^1.8.0: axios@^0.18.0: version "0.18.0" - resolved "http://registry.npmjs.org/axios/-/axios-0.18.0.tgz#32d53e4851efdc0a11993b6cd000789d70c05102" + resolved "https://registry.yarnpkg.com/axios/-/axios-0.18.0.tgz#32d53e4851efdc0a11993b6cd000789d70c05102" integrity sha1-MtU+SFHv3AoRmTts0AB4nXDAUQI= dependencies: follow-redirects "^1.3.0" is-buffer "^1.1.5" axobject-query@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/axobject-query/-/axobject-query-2.0.1.tgz#05dfa705ada8ad9db993fa6896f22d395b0b0a07" - integrity sha1-Bd+nBa2orZ25k/polvItOVsLCgc= + version "2.0.2" + resolved "https://registry.yarnpkg.com/axobject-query/-/axobject-query-2.0.2.tgz#ea187abe5b9002b377f925d8bf7d1c561adf38f9" + integrity sha512-MCeek8ZH7hKyO1rWUbKNQBbl4l2eY0ntk7OGi+q0RlafrCnfPxC06WZA+uebCfmYp4mNU9jRBP1AhGyf8+W3ww== dependencies: ast-types-flow "0.0.7" @@ -1073,7 +1069,7 @@ babel-eslint@^8.2.1: babel-generator@6.11.4: version "6.11.4" - resolved "http://registry.npmjs.org/babel-generator/-/babel-generator-6.11.4.tgz#14f6933abb20c62666d27e3b7b9f5b9dc0712a9a" + resolved "https://registry.yarnpkg.com/babel-generator/-/babel-generator-6.11.4.tgz#14f6933abb20c62666d27e3b7b9f5b9dc0712a9a" integrity sha1-FPaTOrsgxiZm0n47e59bncBxKpo= dependencies: babel-messages "^6.8.0" @@ -1262,7 +1258,7 @@ babel-plugin-check-es2015-constants@^6.22.0: babel-plugin-istanbul@^4.1.5: version "4.1.6" - resolved "http://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-4.1.6.tgz#36c59b2192efce81c5b378321b74175add1c9a45" + resolved "https://registry.yarnpkg.com/babel-plugin-istanbul/-/babel-plugin-istanbul-4.1.6.tgz#36c59b2192efce81c5b378321b74175add1c9a45" integrity sha512-PWP9FQ1AhZhS01T/4qLSKoHGY/xvkZdVBGlKM/HuxxS3+sC66HhTNR7+MpbO/so/cz/wY94MeSWJuP1hXIPfwQ== dependencies: babel-plugin-syntax-object-rest-spread "^6.13.0" @@ -1277,52 +1273,52 @@ babel-plugin-jest-hoist@^22.4.4: babel-plugin-syntax-async-functions@^6.8.0: version "6.13.0" - resolved "http://registry.npmjs.org/babel-plugin-syntax-async-functions/-/babel-plugin-syntax-async-functions-6.13.0.tgz#cad9cad1191b5ad634bf30ae0872391e0647be95" + resolved "https://registry.yarnpkg.com/babel-plugin-syntax-async-functions/-/babel-plugin-syntax-async-functions-6.13.0.tgz#cad9cad1191b5ad634bf30ae0872391e0647be95" integrity sha1-ytnK0RkbWtY0vzCuCHI5HgZHvpU= babel-plugin-syntax-async-generators@^6.5.0: version "6.13.0" - resolved "http://registry.npmjs.org/babel-plugin-syntax-async-generators/-/babel-plugin-syntax-async-generators-6.13.0.tgz#6bc963ebb16eccbae6b92b596eb7f35c342a8b9a" + resolved "https://registry.yarnpkg.com/babel-plugin-syntax-async-generators/-/babel-plugin-syntax-async-generators-6.13.0.tgz#6bc963ebb16eccbae6b92b596eb7f35c342a8b9a" integrity sha1-a8lj67FuzLrmuStZbrfzXDQqi5o= babel-plugin-syntax-class-constructor-call@^6.18.0: version "6.18.0" - resolved "http://registry.npmjs.org/babel-plugin-syntax-class-constructor-call/-/babel-plugin-syntax-class-constructor-call-6.18.0.tgz#9cb9d39fe43c8600bec8146456ddcbd4e1a76416" + resolved "https://registry.yarnpkg.com/babel-plugin-syntax-class-constructor-call/-/babel-plugin-syntax-class-constructor-call-6.18.0.tgz#9cb9d39fe43c8600bec8146456ddcbd4e1a76416" integrity sha1-nLnTn+Q8hgC+yBRkVt3L1OGnZBY= babel-plugin-syntax-class-properties@^6.8.0: version "6.13.0" - resolved "http://registry.npmjs.org/babel-plugin-syntax-class-properties/-/babel-plugin-syntax-class-properties-6.13.0.tgz#d7eb23b79a317f8543962c505b827c7d6cac27de" + resolved "https://registry.yarnpkg.com/babel-plugin-syntax-class-properties/-/babel-plugin-syntax-class-properties-6.13.0.tgz#d7eb23b79a317f8543962c505b827c7d6cac27de" integrity sha1-1+sjt5oxf4VDlixQW4J8fWysJ94= babel-plugin-syntax-decorators@^6.13.0: version "6.13.0" - resolved "http://registry.npmjs.org/babel-plugin-syntax-decorators/-/babel-plugin-syntax-decorators-6.13.0.tgz#312563b4dbde3cc806cee3e416cceeaddd11ac0b" + resolved "https://registry.yarnpkg.com/babel-plugin-syntax-decorators/-/babel-plugin-syntax-decorators-6.13.0.tgz#312563b4dbde3cc806cee3e416cceeaddd11ac0b" integrity sha1-MSVjtNvePMgGzuPkFszurd0RrAs= babel-plugin-syntax-dynamic-import@^6.18.0: version "6.18.0" - resolved "http://registry.npmjs.org/babel-plugin-syntax-dynamic-import/-/babel-plugin-syntax-dynamic-import-6.18.0.tgz#8d6a26229c83745a9982a441051572caa179b1da" + resolved "https://registry.yarnpkg.com/babel-plugin-syntax-dynamic-import/-/babel-plugin-syntax-dynamic-import-6.18.0.tgz#8d6a26229c83745a9982a441051572caa179b1da" integrity sha1-jWomIpyDdFqZgqRBBRVyyqF5sdo= babel-plugin-syntax-exponentiation-operator@^6.8.0: version "6.13.0" - resolved "http://registry.npmjs.org/babel-plugin-syntax-exponentiation-operator/-/babel-plugin-syntax-exponentiation-operator-6.13.0.tgz#9ee7e8337290da95288201a6a57f4170317830de" + resolved "https://registry.yarnpkg.com/babel-plugin-syntax-exponentiation-operator/-/babel-plugin-syntax-exponentiation-operator-6.13.0.tgz#9ee7e8337290da95288201a6a57f4170317830de" integrity sha1-nufoM3KQ2pUoggGmpX9BcDF4MN4= babel-plugin-syntax-export-extensions@^6.8.0: version "6.13.0" - resolved "http://registry.npmjs.org/babel-plugin-syntax-export-extensions/-/babel-plugin-syntax-export-extensions-6.13.0.tgz#70a1484f0f9089a4e84ad44bac353c95b9b12721" + resolved "https://registry.yarnpkg.com/babel-plugin-syntax-export-extensions/-/babel-plugin-syntax-export-extensions-6.13.0.tgz#70a1484f0f9089a4e84ad44bac353c95b9b12721" integrity sha1-cKFITw+QiaToStRLrDU8lbmxJyE= babel-plugin-syntax-flow@^6.18.0: version "6.18.0" - resolved "http://registry.npmjs.org/babel-plugin-syntax-flow/-/babel-plugin-syntax-flow-6.18.0.tgz#4c3ab20a2af26aa20cd25995c398c4eb70310c8d" + resolved "https://registry.yarnpkg.com/babel-plugin-syntax-flow/-/babel-plugin-syntax-flow-6.18.0.tgz#4c3ab20a2af26aa20cd25995c398c4eb70310c8d" integrity sha1-TDqyCiryaqIM0lmVw5jE63AxDI0= babel-plugin-syntax-object-rest-spread@^6.13.0, babel-plugin-syntax-object-rest-spread@^6.8.0: version "6.13.0" - resolved "http://registry.npmjs.org/babel-plugin-syntax-object-rest-spread/-/babel-plugin-syntax-object-rest-spread-6.13.0.tgz#fd6536f2bce13836ffa3a5458c4903a597bb3bf5" + resolved "https://registry.yarnpkg.com/babel-plugin-syntax-object-rest-spread/-/babel-plugin-syntax-object-rest-spread-6.13.0.tgz#fd6536f2bce13836ffa3a5458c4903a597bb3bf5" integrity sha1-/WU28rzhODb/o6VFjEkDpZe7O/U= babel-plugin-syntax-trailing-function-commas@^6.22.0: @@ -1809,7 +1805,7 @@ babylon@6.18.0, babylon@^6.17.3, babylon@^6.18.0: babylon@7.0.0-beta.44: version "7.0.0-beta.44" - resolved "http://registry.npmjs.org/babylon/-/babylon-7.0.0-beta.44.tgz#89159e15e6e30c5096e22d738d8c0af8a0e8ca1d" + resolved "https://registry.yarnpkg.com/babylon/-/babylon-7.0.0-beta.44.tgz#89159e15e6e30c5096e22d738d8c0af8a0e8ca1d" integrity sha512-5Hlm13BJVAioCHpImtFqNOF2H3ieTOHd0fmFGMxOJ9jgeFqeAwsv3u5P5cR7CSeFrkgHsT19DgFJkHV0/Mcd8g== babylon@^7.0.0-beta.47: @@ -1870,9 +1866,9 @@ big.js@^3.1.3: integrity sha512-+hN/Zh2D08Mx65pZ/4g5bsmNiZUuChDiQfTUQ7qJr4/kuopCr88xZsAXv6mBoZEsUI4OuGHlX59qE94K2mMW8Q== binary-extensions@^1.0.0: - version "1.11.0" - resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-1.11.0.tgz#46aa1751fb6a2f93ee5e689bb1087d4b14c6c205" - integrity sha1-RqoXUftqL5PuXmibsQh9SxTGwgU= + version "1.12.0" + resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-1.12.0.tgz#c2d780f53d45bba8317a8902d4ceeaf3a6385b14" + integrity sha512-DYWGk01lDcxeS/K9IHPGWfT8PsJmbXRtRd2Sx72Tnb8pcYZQFF1oSDb8hJtS1vhp212q1Rzi5dUf9+nq0o9UIg== binaryextensions@2: version "2.1.1" @@ -1896,7 +1892,7 @@ block-stream@*: bluebird@^2.9.34: version "2.11.0" - resolved "http://registry.npmjs.org/bluebird/-/bluebird-2.11.0.tgz#534b9033c022c9579c56ba3b3e5a5caafbb650e1" + resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-2.11.0.tgz#534b9033c022c9579c56ba3b3e5a5caafbb650e1" integrity sha1-U0uQM8AiyVecVro7Plpcqvu2UOE= bluebird@^3.5.0, bluebird@^3.5.1: @@ -1914,23 +1910,7 @@ bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.1.1, bn.js@^4.11.6, bn.js@^4.4.0: resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.11.8.tgz#2cde09eb5ee341f484746bb0309b3253b1b1442f" integrity sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA== -body-parser@1.18.2: - version "1.18.2" - resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.18.2.tgz#87678a19d84b47d859b83199bd59bce222b10454" - integrity sha1-h2eKGdhLR9hZuDGZvVm84iKxBFQ= - dependencies: - bytes "3.0.0" - content-type "~1.0.4" - debug "2.6.9" - depd "~1.1.1" - http-errors "~1.6.2" - iconv-lite "0.4.19" - on-finished "~2.3.0" - qs "6.5.1" - raw-body "2.3.2" - type-is "~1.6.15" - -body-parser@^1.16.0: +body-parser@1.18.3, body-parser@^1.16.0: version "1.18.3" resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.18.3.tgz#5b292198ffdd553b3a0f20ded0592b956955c8b4" integrity sha1-WykhmP/dVTs6DyDe0FkrlWlVyLQ= @@ -1990,9 +1970,9 @@ brorand@^1.0.1: integrity sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8= browser-process-hrtime@^0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/browser-process-hrtime/-/browser-process-hrtime-0.1.2.tgz#425d68a58d3447f02a04aa894187fce8af8b7b8e" - integrity sha1-Ql1opY00R/AqBKqJQYf86K+Le44= + version "0.1.3" + resolved "https://registry.yarnpkg.com/browser-process-hrtime/-/browser-process-hrtime-0.1.3.tgz#616f00faef1df7ec1b5bf9cfe2bdc3170f26c7b4" + integrity sha512-bRFnI4NnjO6cnyLmOV/7PVoDEMJChlcfN0z4s1YMBY989/SvlfMI1lgCnkFUs53e9gQF+w7qu7XdllSTiSl8Aw== browser-resolve@^1.11.2: version "1.11.3" @@ -2003,7 +1983,7 @@ browser-resolve@^1.11.2: browserify-aes@^1.0.0, browserify-aes@^1.0.4: version "1.2.0" - resolved "http://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz#326734642f403dabc3003209853bb70ad428ef48" + resolved "https://registry.yarnpkg.com/browserify-aes/-/browserify-aes-1.2.0.tgz#326734642f403dabc3003209853bb70ad428ef48" integrity sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA== dependencies: buffer-xor "^1.0.3" @@ -2034,7 +2014,7 @@ browserify-des@^1.0.0: browserify-rsa@^4.0.0: version "4.0.1" - resolved "http://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.0.1.tgz#21e0abfaf6f2029cf2fafb133567a701d4135524" + resolved "https://registry.yarnpkg.com/browserify-rsa/-/browserify-rsa-4.0.1.tgz#21e0abfaf6f2029cf2fafb133567a701d4135524" integrity sha1-IeCr+vbyApzy+vsTNWenAdQTVSQ= dependencies: bn.js "^4.1.0" @@ -2083,14 +2063,14 @@ browserslist@^3.2.6: caniuse-lite "^1.0.30000844" electron-to-chromium "^1.3.47" -browserslist@^4.1.0: - version "4.1.1" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.1.1.tgz#328eb4ff1215b12df6589e9ab82f8adaa4fc8cd6" - integrity sha512-VBorw+tgpOtZ1BYhrVSVTzTt/3+vSE3eFUh0N2GCFK1HffceOaf32YS/bs6WiFhjDAblAFrx85jMy3BG9fBK2Q== +browserslist@^4.3.3: + version "4.3.3" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.3.3.tgz#88a7d9ce2e5db561e160ab660bc59cb406a0c41d" + integrity sha512-6h84UD1mmHeuQ9IucX6yzBc+KBYcBBTLYt2CXtY7GYCra6iE5kOm7oM+zuGw/0tjGtbJxjm58OvxSBmogEMCRQ== dependencies: - caniuse-lite "^1.0.30000884" - electron-to-chromium "^1.3.62" - node-releases "^1.0.0-alpha.11" + caniuse-lite "^1.0.30000898" + electron-to-chromium "^1.3.81" + node-releases "^1.0.0-alpha.15" bs58@^4.0.1: version "4.0.1" @@ -2111,7 +2091,7 @@ buffer-alloc-unsafe@^1.1.0: resolved "https://registry.yarnpkg.com/buffer-alloc-unsafe/-/buffer-alloc-unsafe-1.1.0.tgz#bd7dc26ae2972d0eda253be061dba992349c19f0" integrity sha512-TEM2iMIEQdJ2yjPJoSIsldnleVaAk1oW3DBVUykyOLsEsFmEc9kn+SFFPz+gl54KQNxlDnAwCXosOS9Okx2xAg== -buffer-alloc@^1.1.0, buffer-alloc@^1.2.0: +buffer-alloc@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/buffer-alloc/-/buffer-alloc-1.2.0.tgz#890dd90d923a873e08e10e5fd51a57e5b7cce0ec" integrity sha512-CFsHQgjtW1UChdXgbyJGtnm+O/uLQeZdtbDo8mfUgYXCHSM1wgrVxXm6bSyrUuErEb+4sYVGCzASBRot7zyrow== @@ -2146,7 +2126,7 @@ buffer-xor@^1.0.3: buffer@^3.0.1: version "3.6.0" - resolved "http://registry.npmjs.org/buffer/-/buffer-3.6.0.tgz#a72c936f77b96bf52f5f7e7b467180628551defb" + resolved "https://registry.yarnpkg.com/buffer/-/buffer-3.6.0.tgz#a72c936f77b96bf52f5f7e7b467180628551defb" integrity sha1-pyyTb3e5a/UvX357RnGAYoVR3vs= dependencies: base64-js "0.0.8" @@ -2155,7 +2135,7 @@ buffer@^3.0.1: buffer@^4.3.0: version "4.9.1" - resolved "http://registry.npmjs.org/buffer/-/buffer-4.9.1.tgz#6d1bb601b07a4efced97094132093027c95bc298" + resolved "https://registry.yarnpkg.com/buffer/-/buffer-4.9.1.tgz#6d1bb601b07a4efced97094132093027c95bc298" integrity sha1-bRu2AbB6TvztlwlBMgkwJ8lbwpg= dependencies: base64-js "^1.0.2" @@ -2293,10 +2273,10 @@ camelcase@^4.1.0: resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-4.1.0.tgz#d545635be1e33c542649c69173e5de6acfae34dd" integrity sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0= -caniuse-lite@^1.0.30000792, caniuse-lite@^1.0.30000805, caniuse-lite@^1.0.30000844, caniuse-lite@^1.0.30000884: - version "1.0.30000885" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30000885.tgz#e889e9f8e7e50e769f2a49634c932b8aee622984" - integrity sha512-cXKbYwpxBLd7qHyej16JazPoUacqoVuDhvR61U7Fr5vSxMUiodzcYa1rQYRYfZ5GexV03vGZHd722vNPLjPJGQ== +caniuse-lite@^1.0.30000792, caniuse-lite@^1.0.30000805, caniuse-lite@^1.0.30000844, caniuse-lite@^1.0.30000898: + version "1.0.30000899" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30000899.tgz#6febdbbc388a7982f620ee0e3d09aab0c061389e" + integrity sha512-enC3zKfUCJxxwvUIsBkbHd54CtJw1KtIWvrK0JZxWD/fEN2knHaai45lndJ4xXAkyRAPyk60J3yagkKDWhfeMA== capture-exit@^1.2.0: version "1.2.0" @@ -2316,20 +2296,20 @@ ccount@^1.0.0: integrity sha512-Jt9tIBkRc9POUof7QA/VwWd+58fKkEEfI+/t1/eOlxKM7ZhrczNzMFefge7Ai+39y1pR/pP6cI19guHy3FSLmw== chai@^4.1.2: - version "4.1.2" - resolved "https://registry.yarnpkg.com/chai/-/chai-4.1.2.tgz#0f64584ba642f0f2ace2806279f4f06ca23ad73c" - integrity sha1-D2RYS6ZC8PKs4oBiefTwbKI61zw= + version "4.2.0" + resolved "https://registry.yarnpkg.com/chai/-/chai-4.2.0.tgz#760aa72cf20e3795e84b12877ce0e83737aa29e5" + integrity sha512-XQU3bhBukrOsQCuwZndwGcCVQHyZi53fQ6Ys1Fym7E4olpIqqZZhhoFJoaKVvV17lWQoXYwgWN2nF5crA8J2jw== dependencies: - assertion-error "^1.0.1" - check-error "^1.0.1" - deep-eql "^3.0.0" + assertion-error "^1.1.0" + check-error "^1.0.2" + deep-eql "^3.0.1" get-func-name "^2.0.0" - pathval "^1.0.0" - type-detect "^4.0.0" + pathval "^1.1.0" + type-detect "^4.0.5" chalk@1.1.3, chalk@^1.0.0, chalk@^1.1.0, chalk@^1.1.1, chalk@^1.1.3: version "1.1.3" - resolved "http://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98" integrity sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg= dependencies: ansi-styles "^2.2.1" @@ -2340,7 +2320,7 @@ chalk@1.1.3, chalk@^1.0.0, chalk@^1.1.0, chalk@^1.1.1, chalk@^1.1.3: chalk@2.3.1: version "2.3.1" - resolved "http://registry.npmjs.org/chalk/-/chalk-2.3.1.tgz#523fe2678aec7b04e8041909292fe8b17059b796" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.3.1.tgz#523fe2678aec7b04e8041909292fe8b17059b796" integrity sha512-QUU4ofkDoMIVO7hcx1iPTISs88wsO8jA92RQIm4JAwZvFGGAV2hSAA1NX7oVj2Ej2Q6NDTcRDjPTFrMCRZoJ6g== dependencies: ansi-styles "^3.2.0" @@ -2358,7 +2338,7 @@ chalk@^2.0.0, chalk@^2.0.1, chalk@^2.1.0, chalk@^2.3.0, chalk@^2.4.1: chalk@~0.4.0: version "0.4.0" - resolved "http://registry.npmjs.org/chalk/-/chalk-0.4.0.tgz#5199a3ddcd0c1efe23bc08c1b027b06176e0c64f" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-0.4.0.tgz#5199a3ddcd0c1efe23bc08c1b027b06176e0c64f" integrity sha1-UZmj3c0MHv4jvAjBsCewYXbgxk8= dependencies: ansi-styles "~1.0.0" @@ -2395,7 +2375,7 @@ chardet@^0.7.0: resolved "https://registry.yarnpkg.com/chardet/-/chardet-0.7.0.tgz#90094849f0937f2eedc2425d0d28a9e5f0cbad9e" integrity sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA== -check-error@^1.0.1: +check-error@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/check-error/-/check-error-1.0.2.tgz#574d312edd88bb5dd8912e9286dd6c0aed4aac82" integrity sha1-V00xLt2Iu13YkS6Sht1sCu1KrII= @@ -2496,9 +2476,9 @@ chrome-trace-event@^1.0.0: tslib "^1.9.0" ci-info@^1.5.0: - version "1.5.1" - resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-1.5.1.tgz#17e8eb5de6f8b2b6038f0cbb714d410bfa9f3030" - integrity sha512-fKFIKXaYiL1exImwJ0AhR/6jxFPSKQBk2ayV5NiNoruUs2+rxC2kNw0EG+1Z9dugZRdCrppskQ8DN2cyaUM1Hw== + version "1.6.0" + resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-1.6.0.tgz#2ca20dbb9ceb32d4524a683303313f0304b1e497" + integrity sha512-vsGdkwSCDpWmP80ncATX7iea5DWQemg1UgCW5J8tqjU3lYw4FBYuj89J0CTVomA7BEfvSZd84GmHko+MxFQU2A== cipher-base@^1.0.0, cipher-base@^1.0.1, cipher-base@^1.0.3: version "1.0.4" @@ -2696,17 +2676,17 @@ colors@^1.1.2: resolved "https://registry.yarnpkg.com/colors/-/colors-1.3.2.tgz#2df8ff573dfbf255af562f8ce7181d6b971a359b" integrity sha512-rhP0JSBGYvpcNQj4s5AdShMeE5ahMop96cTeDl/v9qQQm2fYClE2QXZRi8wLzc+GmXSxdIqqbOIAhyObEXDbfQ== -combined-stream@1.0.6, combined-stream@~1.0.6: - version "1.0.6" - resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.6.tgz#723e7df6e801ac5613113a7e445a9b69cb632818" - integrity sha1-cj599ugBrFYTETp+RFqbactjKBg= +combined-stream@^1.0.6, combined-stream@~1.0.6: + version "1.0.7" + resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.7.tgz#2d1d24317afb8abe95d6d2c0b07b57813539d828" + integrity sha512-brWl9y6vOB1xYPZcpZde3N9zDByXTosAeMDo4p1wzo6UMOX4vumB+TP1RZ76sfE6Md68Q0NJSrE/gbezd4Ul+w== dependencies: delayed-stream "~1.0.0" commander@^2.11.0, commander@^2.8.1, commander@^2.9.0: - version "2.18.0" - resolved "https://registry.yarnpkg.com/commander/-/commander-2.18.0.tgz#2bf063ddee7c7891176981a2cc798e5754bc6970" - integrity sha512-6CYPa+JP2ftfRU2qkDK+UTVeQYosOg/2GbcjIcKPHfinyOLPVGXu/ovN86RP49Re5ndJK1N0kuiidFFuepc4ZQ== + version "2.19.0" + resolved "https://registry.yarnpkg.com/commander/-/commander-2.19.0.tgz#f6198aa84e5b83c46054b94ddedbfed5ee9ff12a" + integrity sha512-6tvAOO+D6OENvRAh524Dh9jcfKTYDQAqvqezbCW82xj5X0pSrcpxtvRKHLG0yBY6SD7PSDrJaj+0AiOcKVd1Xg== commander@~2.13.0: version "2.13.0" @@ -2720,7 +2700,7 @@ commander@~2.17.1: commander@~2.8.1: version "2.8.1" - resolved "http://registry.npmjs.org/commander/-/commander-2.8.1.tgz#06be367febfda0c330aa1e2a072d3dc9762425d4" + resolved "https://registry.yarnpkg.com/commander/-/commander-2.8.1.tgz#06be367febfda0c330aa1e2a072d3dc9762425d4" integrity sha1-Br42f+v9oMMwqh4qBy09yXYkJdQ= dependencies: graceful-readlink ">= 1.0.0" @@ -3081,7 +3061,7 @@ create-ecdh@^4.0.0: create-hash@^1.1.0, create-hash@^1.1.2: version "1.2.0" - resolved "http://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz#889078af11a63756bcfb59bd221996be3a9ef196" + resolved "https://registry.yarnpkg.com/create-hash/-/create-hash-1.2.0.tgz#889078af11a63756bcfb59bd221996be3a9ef196" integrity sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg== dependencies: cipher-base "^1.0.1" @@ -3092,7 +3072,7 @@ create-hash@^1.1.0, create-hash@^1.1.2: create-hmac@^1.1.0, create-hmac@^1.1.2, create-hmac@^1.1.4: version "1.1.7" - resolved "http://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz#69170c78b3ab957147b2b8b04572e47ead2243ff" + resolved "https://registry.yarnpkg.com/create-hmac/-/create-hmac-1.1.7.tgz#69170c78b3ab957147b2b8b04572e47ead2243ff" integrity sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg== dependencies: cipher-base "^1.0.3" @@ -3158,9 +3138,9 @@ css-select@~1.2.0: nth-check "~1.0.1" css-what@2.1: - version "2.1.0" - resolved "https://registry.yarnpkg.com/css-what/-/css-what-2.1.0.tgz#9467d032c38cfaefb9f2d79501253062f87fa1bd" - integrity sha1-lGfQMsOM+u+58teVASUwYvh/ob0= + version "2.1.2" + resolved "https://registry.yarnpkg.com/css-what/-/css-what-2.1.2.tgz#c0876d9d0480927d7d4920dcd72af3595649554d" + integrity sha512-wan8dMWQ0GUeF7DGEPVjhHemVW/vy6xUYmFzRY8RYqgA0JtXC9rJmbScBjqSu6dg9q0lwPQy6ZAmJVr3PPTvqQ== cssom@0.3.x, "cssom@>= 0.3.0 < 0.4.0", "cssom@>= 0.3.2 < 0.4.0": version "0.3.4" @@ -3268,9 +3248,16 @@ debug@=3.1.0: ms "2.0.0" debug@^3.0.0, debug@^3.1.0: - version "3.2.5" - resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.5.tgz#c2418fbfd7a29f4d4f70ff4cea604d4b64c46407" - integrity sha512-D61LaDQPQkxJ5AUM2mbSJRbPkNs/TmdmOeLAi1hgDkpDfIfetSrjmWhccwtuResSwMbACjx/xXQofvM9CE/aeg== + version "3.2.6" + resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.6.tgz#e83d17de16d8a7efb7717edbe5fb10135eee629b" + integrity sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ== + dependencies: + ms "^2.1.1" + +debug@^4.0.0, debug@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/debug/-/debug-4.1.0.tgz#373687bffa678b38b1cd91f861b63850035ddc87" + integrity sha512-heNPJUJIqC+xB6ayLAMHaIrmN9HKa7aQO8MGqKpvCA+uJYVcvR6l5kgdrhRuwPFHU7P5/A1w0BjByPHwpfTDKg== dependencies: ms "^2.1.1" @@ -3362,7 +3349,7 @@ dedent@^0.7.0: resolved "https://registry.yarnpkg.com/dedent/-/dedent-0.7.0.tgz#2495ddbaf6eb874abb0e1be9df22d2e5a544326c" integrity sha1-JJXduvbrh0q7Dhvp3yLS5aVEMmw= -deep-eql@^3.0.0: +deep-eql@^3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/deep-eql/-/deep-eql-3.0.1.tgz#dfc9404400ad1c8fe023e7da1df1c147c4b444df" integrity sha512-+QeIQyN5ZuO+3Uk5DYh6/1eKO0m0YmJFGNmFHGACpf1ClL1nmlV/p4gNgbl2pJGxgXb4faqo6UE+M5ACEMyVcw== @@ -3443,12 +3430,7 @@ delegates@^1.0.0: resolved "https://registry.yarnpkg.com/delegates/-/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a" integrity sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o= -depd@1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.1.tgz#5783b4e1c459f06fa5ca27f991f3d06e7a310359" - integrity sha1-V4O04cRZ8G+lyif5kfPQbnoxA1k= - -depd@~1.1.1, depd@~1.1.2: +depd@~1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9" integrity sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak= @@ -3511,7 +3493,7 @@ diff@^3.2.0, diff@^3.5.0: diffie-hellman@^5.0.0: version "5.0.3" - resolved "http://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz#40e8ee98f55a2149607146921c63e1ae5f3d2875" + resolved "https://registry.yarnpkg.com/diffie-hellman/-/diffie-hellman-5.0.3.tgz#40e8ee98f55a2149607146921c63e1ae5f3d2875" integrity sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg== dependencies: bn.js "^4.1.0" @@ -3559,7 +3541,12 @@ domain-browser@^1.1.1: resolved "https://registry.yarnpkg.com/domain-browser/-/domain-browser-1.2.0.tgz#3d31f50191a6749dd1375a7f522e823d42e54eda" integrity sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA== -domelementtype@1, domelementtype@^1.3.0: +domelementtype@1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-1.2.1.tgz#578558ef23befac043a1abb0db07635509393479" + integrity sha512-SQVCLFS2E7G5CRCMdn6K9bIhRj1bS6QBWZfF0TUPh4V/BbqrQ619IdSS3/izn0FZ+9l+uODzaZjb08fjOfablA== + +domelementtype@^1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-1.3.0.tgz#b17aed82e8ab59e52dd9c19b1756e0fc187204c2" integrity sha1-sXrtguirWeUt2cGbF1bg/BhyBMI= @@ -3634,9 +3621,9 @@ duplexer3@^0.1.4: integrity sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI= duplexify@^3.4.2, duplexify@^3.6.0: - version "3.6.0" - resolved "https://registry.yarnpkg.com/duplexify/-/duplexify-3.6.0.tgz#592903f5d80b38d037220541264d69a198fb3410" - integrity sha512-fO3Di4tBKJpYTFHAxTU00BcfWMY9w24r/x21a6rZRbsD/ToUgGxsMbiGRmB7uVAXeGKXD9MwiLZa5E97EVgIRQ== + version "3.6.1" + resolved "https://registry.yarnpkg.com/duplexify/-/duplexify-3.6.1.tgz#b1a7a29c4abfd639585efaecce80d666b1e34125" + integrity sha512-vM58DwdnKmty+FSPzT14K9JXb90H+j5emaR4KYbr2KTIz00WHGbWOe5ghQTx233ZCLZtrGDALzKwcjEtSt35mA== dependencies: end-of-stream "^1.0.0" inherits "^2.0.1" @@ -3666,10 +3653,10 @@ ejs@^2.5.9: resolved "https://registry.yarnpkg.com/ejs/-/ejs-2.6.1.tgz#498ec0d495655abc6f23cd61868d926464071aa0" integrity sha512-0xy4A/twfrRCnkhfk8ErDi5DqdAsAqeGxht4xkCUrsvhhbQNs7E+4jV0CN7+NKIY0aHE72+XvqtBIXzD31ZbXQ== -electron-to-chromium@^1.3.30, electron-to-chromium@^1.3.47, electron-to-chromium@^1.3.62: - version "1.3.67" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.67.tgz#5e8f3ffac89b4b0402c7e1a565be06f3a109abbc" - integrity sha512-h3zEBLdHvsKfaXv1SHAtykJyNtwYFEKkrWGSFyW1BzGgPQ4ykAzD5Hd8C5MZGTAEhkCKmtyIwYUrapsI0xfKww== +electron-to-chromium@^1.3.30, electron-to-chromium@^1.3.47, electron-to-chromium@^1.3.81: + version "1.3.82" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.82.tgz#7d13ae4437d2a783de3f4efba96b186c540b67b1" + integrity sha512-NI4nB2IWGcU4JVT1AE8kBb/dFor4zjLHMLsOROPahppeHrR0FG5uslxMmkp/thO1MvPjM2xhlKoY29/I60s0ew== elegant-spinner@^1.0.1: version "1.0.1" @@ -3743,9 +3730,9 @@ entities@1.0: integrity sha1-sph6o4ITR/zeZCsk/fyeT7cSvyY= entities@^1.1.1, entities@~1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/entities/-/entities-1.1.1.tgz#6e5c2d0a5621b5dadaecef80b90edfb5cd7772f0" - integrity sha1-blwtClYhtdra7O+AuQ7ftc13cvA= + version "1.1.2" + resolved "https://registry.yarnpkg.com/entities/-/entities-1.1.2.tgz#bdfa735299664dfafd34529ed4f8522a275fea56" + integrity sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w== envinfo@^5.7.0: version "5.10.0" @@ -3786,13 +3773,13 @@ es-abstract@^1.5.1, es-abstract@^1.7.0: is-regex "^1.0.4" es-to-primitive@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.1.1.tgz#45355248a88979034b6792e19bb81f2b7975dd0d" - integrity sha1-RTVSSKiJeQNLZ5Lhm7gfK3l13Q0= + version "1.2.0" + resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.2.0.tgz#edf72478033456e8dda8ef09e00ad9650707f377" + integrity sha512-qZryBOJjV//LaxLTV6UC//WewneB3LcXOL9NP++ozKVXsIIIpm/2c13UDiD9Jp2eThsecw9m3jPqDwTyobcdbg== dependencies: - is-callable "^1.1.1" + is-callable "^1.1.4" is-date-object "^1.0.1" - is-symbol "^1.0.1" + is-symbol "^1.0.2" escape-html@1.0.3, escape-html@~1.0.3: version "1.0.3" @@ -3949,7 +3936,7 @@ eslint-config-standard-jsx@^4.0.2: eslint-config-standard@^11.0.0-beta.0: version "11.0.0" - resolved "http://registry.npmjs.org/eslint-config-standard/-/eslint-config-standard-11.0.0.tgz#87ee0d3c9d95382dc761958cbb23da9eea31e0ba" + resolved "https://registry.yarnpkg.com/eslint-config-standard/-/eslint-config-standard-11.0.0.tgz#87ee0d3c9d95382dc761958cbb23da9eea31e0ba" integrity sha512-oDdENzpViEe5fwuRCWla7AXQd++/oyIp8zP+iP9jiUPG6NBj3SHgdgtl/kTn00AjeN+1HNvavTKmYbMo+xMOlw== eslint-import-resolver-node@^0.3.1: @@ -3969,9 +3956,9 @@ eslint-module-utils@^2.2.0: pkg-dir "^1.0.0" eslint-plugin-flowtype@^2.43.0: - version "2.50.0" - resolved "https://registry.yarnpkg.com/eslint-plugin-flowtype/-/eslint-plugin-flowtype-2.50.0.tgz#953e262fa9b5d0fa76e178604892cf60dfb916da" - integrity sha512-10FnBXCp8odYcpUFXGAh+Zko7py0hUWutTd3BN/R9riukH360qNPLYPR3/xV9eu9K7OJDjJrsflBnL6RwxFnlw== + version "2.50.3" + resolved "https://registry.yarnpkg.com/eslint-plugin-flowtype/-/eslint-plugin-flowtype-2.50.3.tgz#61379d6dce1d010370acd6681740fd913d68175f" + integrity sha512-X+AoKVOr7Re0ko/yEXyM5SSZ0tazc6ffdIOocp2fFUlWoDt7DV0Bz99mngOkAFLOAWjqRA5jPwqUCbrx13XoxQ== dependencies: lodash "^4.17.10" @@ -3992,9 +3979,9 @@ eslint-plugin-import@^2.8.0: resolve "^1.6.0" eslint-plugin-jsx-a11y@^6.0.3: - version "6.1.1" - resolved "https://registry.yarnpkg.com/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.1.1.tgz#7bf56dbe7d47d811d14dbb3ddff644aa656ce8e1" - integrity sha512-JsxNKqa3TwmPypeXNnI75FntkUktGzI1wSa1LgNZdSOMI+B4sxnr1lSF8m8lPiz4mKiC+14ysZQM4scewUrP7A== + version "6.1.2" + resolved "https://registry.yarnpkg.com/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.1.2.tgz#69bca4890b36dcf0fe16dd2129d2d88b98f33f88" + integrity sha512-7gSSmwb3A+fQwtw0arguwMdOdzmKUgnUcbSNlo+GjKLAQFuC2EZxWqG9XHRI8VscBJD5a8raz3RuxQNFW+XJbw== dependencies: aria-query "^3.0.0" array-includes "^3.0.3" @@ -4016,9 +4003,9 @@ eslint-plugin-node@^6.0.0: semver "^5.4.1" eslint-plugin-prettier@^2.6.0: - version "2.6.2" - resolved "https://registry.yarnpkg.com/eslint-plugin-prettier/-/eslint-plugin-prettier-2.6.2.tgz#71998c60aedfa2141f7bfcbf9d1c459bf98b4fad" - integrity sha512-tGek5clmW5swrAx1mdPYM8oThrBE83ePh7LeseZHBWfHVGrHPhKn7Y5zgRMbU/9D5Td9K4CEmUPjGxA7iw98Og== + version "2.7.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-prettier/-/eslint-plugin-prettier-2.7.0.tgz#b4312dcf2c1d965379d7f9d5b5f8aaadc6a45904" + integrity sha512-CStQYJgALoQBw3FsBzH0VOVDRnJ/ZimUlpLm226U8qgqYJfPOY/CPK6wyRInMxh73HSKg5wyRwdS4BVYYHwokA== dependencies: fast-diff "^1.1.1" jest-docblock "^21.0.0" @@ -4088,7 +4075,7 @@ eslint-visitor-keys@^1.0.0: eslint@^4.17.0: version "4.19.1" - resolved "http://registry.npmjs.org/eslint/-/eslint-4.19.1.tgz#32d1d653e1d90408854bfb296f076ec7e186a300" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-4.19.1.tgz#32d1d653e1d90408854bfb296f076ec7e186a300" integrity sha512-bT3/1x1EbZB7phzYu7vCr1v3ONuzDtX8WjuM9c0iYxe+cq+pwcKEoQjl7zd3RpC6YOLgnSy3cTN58M2jcoPDIQ== dependencies: ajv "^5.3.0" @@ -4349,7 +4336,7 @@ expand-tilde@^2.0.0, expand-tilde@^2.0.2: expect@^22.4.0: version "22.4.3" - resolved "http://registry.npmjs.org/expect/-/expect-22.4.3.tgz#d5a29d0a0e1fb2153557caef2674d4547e914674" + resolved "https://registry.yarnpkg.com/expect/-/expect-22.4.3.tgz#d5a29d0a0e1fb2153557caef2674d4547e914674" integrity sha512-XcNXEPehqn8b/jm8FYotdX0YrXn36qp4HWlrVT4ktwQas1l1LPxiVWncYnnL2eyMtKAmVIaG0XAp0QlrqJaxaA== dependencies: ansi-styles "^3.2.0" @@ -4360,13 +4347,13 @@ expect@^22.4.0: jest-regex-util "^22.4.3" express@^4.14.0: - version "4.16.3" - resolved "http://registry.npmjs.org/express/-/express-4.16.3.tgz#6af8a502350db3246ecc4becf6b5a34d22f7ed53" - integrity sha1-avilAjUNsyRuzEvs9rWjTSL37VM= + version "4.16.4" + resolved "https://registry.yarnpkg.com/express/-/express-4.16.4.tgz#fddef61926109e24c515ea97fd2f1bdbf62df12e" + integrity sha512-j12Uuyb4FMrd/qQAm6uCHAkPtO8FDTRJZBDd5D2KOL2eLaz1yUNdUB/NOIyq0iU4q4cFarsUCrnFDPBcnksuOg== dependencies: accepts "~1.3.5" array-flatten "1.1.1" - body-parser "1.18.2" + body-parser "1.18.3" content-disposition "0.5.2" content-type "~1.0.4" cookie "0.3.1" @@ -4383,10 +4370,10 @@ express@^4.14.0: on-finished "~2.3.0" parseurl "~1.3.2" path-to-regexp "0.1.7" - proxy-addr "~2.0.3" - qs "6.5.1" + proxy-addr "~2.0.4" + qs "6.5.2" range-parser "~1.2.0" - safe-buffer "5.1.1" + safe-buffer "5.1.2" send "0.16.2" serve-static "1.13.2" setprototypeof "1.1.0" @@ -4417,7 +4404,7 @@ extend@^3.0.0, extend@~3.0.2: external-editor@^1.1.0: version "1.1.1" - resolved "http://registry.npmjs.org/external-editor/-/external-editor-1.1.1.tgz#12d7b0db850f7ff7e7081baf4005700060c4600b" + resolved "https://registry.yarnpkg.com/external-editor/-/external-editor-1.1.1.tgz#12d7b0db850f7ff7e7081baf4005700060c4600b" integrity sha1-Etew24UPf/fnCBuvQAVwAGDEYAs= dependencies: extend "^3.0.0" @@ -4426,7 +4413,7 @@ external-editor@^1.1.0: external-editor@^2.0.1, external-editor@^2.0.4, external-editor@^2.1.0: version "2.2.0" - resolved "http://registry.npmjs.org/external-editor/-/external-editor-2.2.0.tgz#045511cfd8d133f3846673d1047c154e214ad3d5" + resolved "https://registry.yarnpkg.com/external-editor/-/external-editor-2.2.0.tgz#045511cfd8d133f3846673d1047c154e214ad3d5" integrity sha512-bSn6gvGxKt+b7+6TKEv1ZycHleA7aHhRHyAqJyp5pbUFuYYNIzpZnQDk7AsYckyWdEnTeAnay0aCy2aV6iTk9A== dependencies: chardet "^0.4.0" @@ -4484,14 +4471,14 @@ fast-deep-equal@^2.0.1: integrity sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk= fast-diff@^1.1.1: - version "1.1.2" - resolved "https://registry.yarnpkg.com/fast-diff/-/fast-diff-1.1.2.tgz#4b62c42b8e03de3f848460b639079920695d0154" - integrity sha512-KaJUt+M9t1qaIteSvjc6P3RbMdXsNhK61GRftR6SNxqmhthcd9MGIi4T+o0jD8LUSpSnSKXE20nLtJ3fOHxQig== + version "1.2.0" + resolved "https://registry.yarnpkg.com/fast-diff/-/fast-diff-1.2.0.tgz#73ee11982d86caaf7959828d519cfe927fac5f03" + integrity sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w== fast-glob@^2.0.2: - version "2.2.2" - resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-2.2.2.tgz#71723338ac9b4e0e2fff1d6748a2a13d5ed352bf" - integrity sha512-TR6zxCKftDQnUAPvkrCWdBgDq/gbqx8A3ApnBrR5rMvpp6+KMJI0Igw7fkWPgeVK0uhRXTXdvO3O+YP0CaUX2g== + version "2.2.3" + resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-2.2.3.tgz#d09d378e9ef6b0076a0fa1ba7519d9d4d9699c28" + integrity sha512-NiX+JXjnx43RzvVFwRWfPKo4U+1BrK5pJPsHQdKMlLoFHrrGktXglQhHliSihWAq+m1z6fHk3uwGHrtRbS9vLA== dependencies: "@mrmlnc/readdir-enhanced" "^2.2.1" "@nodelib/fs.stat" "^1.0.1" @@ -4679,9 +4666,9 @@ flat-cache@^1.2.1: write "^0.2.1" flow-parser@^0.*: - version "0.81.0" - resolved "https://registry.yarnpkg.com/flow-parser/-/flow-parser-0.81.0.tgz#cda0ce856b8b87bc32790c02abd039d5048a4711" - integrity sha512-9zCcBUsuVFEcBRLBSaDUT5evmDW1jFUnvku8pHNo6TLy+8TRhbYFWIHosHGPT+3AHW6kxknAZ1oiRNCc6lUEZA== + version "0.84.0" + resolved "https://registry.yarnpkg.com/flow-parser/-/flow-parser-0.84.0.tgz#4b1ec75c3d0fa50e6d43e7214b7dfb5c7d17d80b" + integrity sha512-SzbETNQrYZ/cOpzxn2yH3eLPNxPABbIrtQ3IaitfMue6r/NA0xXNxoW6MSpaGtgQMmOHPgQyJ0ElNQ2hsZkUuQ== flush-write-stream@^1.0.0: version "1.0.3" @@ -4692,9 +4679,9 @@ flush-write-stream@^1.0.0: readable-stream "^2.0.4" follow-redirects@^1.3.0: - version "1.5.8" - resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.5.8.tgz#1dbfe13e45ad969f813e86c00e5296f525c885a1" - integrity sha512-sy1mXPmv7kLAMKW/8XofG7o9T+6gAjzdZK4AJF6ryqQYUa/hnzgiypoeUecZ53x7XiqKNEpNqLtS97MshW2nxg== + version "1.5.9" + resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.5.9.tgz#c9ed9d748b814a39535716e531b9196a845d89c6" + integrity sha512-Bh65EZI/RU8nx0wbYF9shkFZlqLP+6WT/5FnA3cE/djNSuKNHJEinGGZgu/cQEkeeb2GdFOgenAmn8qaqYke2w== dependencies: debug "=3.1.0" @@ -4723,12 +4710,12 @@ forever-agent@~0.6.1: integrity sha1-+8cfDEGt6zf5bFd60e1C2P2sypE= form-data@~2.3.2: - version "2.3.2" - resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.3.2.tgz#4970498be604c20c005d4f5c23aecd21d6b49099" - integrity sha1-SXBJi+YEwgwAXU9cI67NIda0kJk= + version "2.3.3" + resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.3.3.tgz#dcce52c05f644f298c6a7ab936bd724ceffbf3a6" + integrity sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ== dependencies: asynckit "^0.4.0" - combined-stream "1.0.6" + combined-stream "^1.0.6" mime-types "^2.1.12" forwarded@~0.1.2: @@ -4906,10 +4893,10 @@ get-func-name@^2.0.0: resolved "https://registry.yarnpkg.com/get-func-name/-/get-func-name-2.0.0.tgz#ead774abee72e20409433a066366023dd6887a41" integrity sha1-6td0q+5y4gQJQzoGY2YCPdaIekE= -get-own-enumerable-property-symbols@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/get-own-enumerable-property-symbols/-/get-own-enumerable-property-symbols-2.0.1.tgz#5c4ad87f2834c4b9b4e84549dc1e0650fb38c24b" - integrity sha512-TtY/sbOemiMKPRUDDanGCSgBYe7Mf0vbRsWnBZ+9yghpZ1MvcpSpuZFjHdEeY/LZjZy0vdLjS77L6HosisFiug== +get-own-enumerable-property-symbols@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/get-own-enumerable-property-symbols/-/get-own-enumerable-property-symbols-3.0.0.tgz#b877b49a5c16aefac3655f2ed2ea5b684df8d203" + integrity sha512-CIJYJC4GGF06TakLg8z4GQKvDsx9EMspVxOYih7LerEL/WosUnFIww45CGfxfeKHqlg3twgUrYRT1O3WQqjGCg== get-pkg-repo@^1.0.0: version "1.4.0" @@ -5125,9 +5112,9 @@ global@~4.3.0: process "~0.5.1" globals@^11.0.1, globals@^11.1.0: - version "11.7.0" - resolved "https://registry.yarnpkg.com/globals/-/globals-11.7.0.tgz#a583faa43055b1aca771914bf68258e2fc125673" - integrity sha512-K8BNSPySfeShBQXsahYB/AbbWruVOTyVpgoIDnl8odPpeSfP2J5QO2oLFFdl2j7GfDCtZj2bMKar2T49itTPCg== + version "11.8.0" + resolved "https://registry.yarnpkg.com/globals/-/globals-11.8.0.tgz#c1ef45ee9bed6badf0663c5cb90e8d1adec1321d" + integrity sha512-io6LkyPVuzCHBSQV9fmOwxZkUk6nIaGmxheLDgmuFv89j0fm2aqDbIXKAGfzCMHqz3HLF2Zf8WSG6VqMh2qFmA== globals@^9.18.0: version "9.18.0" @@ -5304,6 +5291,11 @@ has-symbol-support-x@^1.4.1: resolved "https://registry.yarnpkg.com/has-symbol-support-x/-/has-symbol-support-x-1.4.2.tgz#1409f98bc00247da45da67cee0a36f282ff26455" integrity sha512-3ToOva++HaW+eCpgqZrCfN51IPB+7bJNVT6CUATzueB5Heb8o6Nam0V3HG5dlDvZU1Gn5QLcbahiKw/XVk5JJw== +has-symbols@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.0.tgz#ba1a8f1af2a0fc39650f5c850367704122063b44" + integrity sha1-uhqPGvKg/DllD1yFA2dwQSIGO0Q= + has-to-string-tag-x@^1.2.0: version "1.4.1" resolved "https://registry.yarnpkg.com/has-to-string-tag-x/-/has-to-string-tag-x-1.4.1.tgz#a045ab383d7b4b2012a00148ab0aa5f290044d4d" @@ -5420,16 +5412,16 @@ html-tags@^2.0.0: integrity sha1-ELMKOGCF9Dzt41PMj6fLDe7qZos= htmlparser2@^3.9.1, htmlparser2@^3.9.2: - version "3.9.2" - resolved "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-3.9.2.tgz#1bdf87acca0f3f9e53fa4fcceb0f4b4cbb00b338" - integrity sha1-G9+HrMoPP55T+k/M6w9LTLsAszg= + version "3.10.0" + resolved "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-3.10.0.tgz#5f5e422dcf6119c0d983ed36260ce9ded0bee464" + integrity sha512-J1nEUGv+MkXS0weHNWVKJJ+UrLfePxRWpN3C9bEi9fLxL2+ggW94DQvgYVXsaT30PGwYRIZKNZXuyMhp3Di4bQ== dependencies: domelementtype "^1.3.0" domhandler "^2.3.0" domutils "^1.5.1" entities "^1.1.1" inherits "^2.0.1" - readable-stream "^2.0.2" + readable-stream "^3.0.6" htmlparser2@~3.8.1: version "3.8.3" @@ -5447,19 +5439,9 @@ http-cache-semantics@3.8.1: resolved "https://registry.yarnpkg.com/http-cache-semantics/-/http-cache-semantics-3.8.1.tgz#39b0e16add9b605bf0a9ef3d9daaf4843b4cacd2" integrity sha512-5ai2iksyV8ZXmnZhHH4rWPoxxistEexSi5936zIQ1bnNTW5VnA85B6P/VpXiRM017IgRvb2kKo1a//y+0wSp3w== -http-errors@1.6.2: - version "1.6.2" - resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.6.2.tgz#0a002cc85707192a7e7946ceedc11155f60ec736" - integrity sha1-CgAsyFcHGSp+eUbO7cERVfYOxzY= - dependencies: - depd "1.1.1" - inherits "2.0.3" - setprototypeof "1.0.3" - statuses ">= 1.3.1 < 2" - http-errors@1.6.3, http-errors@~1.6.2, http-errors@~1.6.3: version "1.6.3" - resolved "http://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz#8b55680bb4be283a0b5bf4ea2e38580be1d9320d" + resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.6.3.tgz#8b55680bb4be283a0b5bf4ea2e38580be1d9320d" integrity sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0= dependencies: depd "~1.1.2" @@ -5503,11 +5485,6 @@ ice-cap@0.0.4: cheerio "0.20.0" color-logger "0.0.3" -iconv-lite@0.4.19: - version "0.4.19" - resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.19.tgz#f7468f60135f5e5dad3399c0a81be9a1603a082b" - integrity sha512-oTZqweIP51xaGPI4uPa56/Pri/480R+mo7SeU+YETByQNhDG55ycFyNLIgta9vXhILrxXDmF7ZGhqZIcuN0gJQ== - iconv-lite@0.4.23: version "0.4.23" resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.23.tgz#297871f63be507adcfbfca715d0cd0eed84e9a63" @@ -5515,7 +5492,7 @@ iconv-lite@0.4.23: dependencies: safer-buffer ">= 2.1.2 < 3" -iconv-lite@^0.4.17, iconv-lite@^0.4.24, iconv-lite@^0.4.4, iconv-lite@~0.4.13: +iconv-lite@0.4.24, iconv-lite@^0.4.17, iconv-lite@^0.4.24, iconv-lite@^0.4.4, iconv-lite@~0.4.13: version "0.4.24" resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== @@ -5631,7 +5608,7 @@ ini@^1.3.2, ini@^1.3.4, ini@~1.3.0: inquirer@0.11.0: version "0.11.0" - resolved "http://registry.npmjs.org/inquirer/-/inquirer-0.11.0.tgz#7448bfa924092af311d47173bbab990cae2bb027" + resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-0.11.0.tgz#7448bfa924092af311d47173bbab990cae2bb027" integrity sha1-dEi/qSQJKvMR1HFzu6uZDK4rsCc= dependencies: ansi-escapes "^1.1.0" @@ -5649,7 +5626,7 @@ inquirer@0.11.0: inquirer@1.2.3: version "1.2.3" - resolved "http://registry.npmjs.org/inquirer/-/inquirer-1.2.3.tgz#4dec6f32f37ef7bb0b2ed3f1d1a5c3f545074918" + resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-1.2.3.tgz#4dec6f32f37ef7bb0b2ed3f1d1a5c3f545074918" integrity sha1-TexvMvN+97sLLtPx0aXD9UUHSRg= dependencies: ansi-escapes "^1.1.0" @@ -5708,7 +5685,7 @@ inquirer@^3.0.6: inquirer@^5.2.0: version "5.2.0" - resolved "http://registry.npmjs.org/inquirer/-/inquirer-5.2.0.tgz#db350c2b73daca77ff1243962e9f22f099685726" + resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-5.2.0.tgz#db350c2b73daca77ff1243962e9f22f099685726" integrity sha512-E9BmnJbAKLPGonz0HeWHtbKf+EeSP93paWO3ZYoUpq/aowXvYGjjCSuashhXPpzbArIjBbji39THkxTz9ZeEUQ== dependencies: ansi-escapes "^3.0.0" @@ -5830,7 +5807,7 @@ is-builtin-module@^1.0.0: dependencies: builtin-modules "^1.0.0" -is-callable@^1.1.1, is-callable@^1.1.3: +is-callable@^1.1.3, is-callable@^1.1.4: version "1.1.4" resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.1.4.tgz#1e1adf219e1eeb684d691f9d6a05ff0d30a24d75" integrity sha512-r5p9sxJjYnArLjObpjA4xu5EKI3CuKHkJXMhT7kwbpUyIFD1n5PMAsoPvWnvtZiNz7LjkYDRZhd7FlI0eMijEA== @@ -6009,7 +5986,7 @@ is-number@^4.0.0: is-obj@^1.0.0, is-obj@^1.0.1: version "1.0.1" - resolved "http://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz#3e4729ac1f5fde025cd7d83a896dab9f4f67db0f" + resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-1.0.1.tgz#3e4729ac1f5fde025cd7d83a896dab9f4f67db0f" integrity sha1-PkcprB9f3gJc19g6iW2rn09n2w8= is-object@^1.0.1: @@ -6121,10 +6098,12 @@ is-supported-regexp-flag@^1.0.0: resolved "https://registry.yarnpkg.com/is-supported-regexp-flag/-/is-supported-regexp-flag-1.0.1.tgz#21ee16518d2c1dd3edd3e9a0d57e50207ac364ca" integrity sha512-3vcJecUUrpgCqc/ca0aWeNu64UGgxcvO60K/Fkr1N6RSvfGCTU60UKN68JDmKokgba0rFFJs12EnzOQa14ubKQ== -is-symbol@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.1.tgz#3cc59f00025194b6ab2e38dbae6689256b660572" - integrity sha1-PMWfAAJRlLarLjjbrmaJJWtmBXI= +is-symbol@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.2.tgz#a055f6ae57192caee329e7a860118b497a950f38" + integrity sha512-HS8bZ9ox60yCJLH9snBpIwv9pYUAkcuLhSA1oero1UB5y9aiQpRA8y2ex945AOtCZL1lJDeIk3G5LthswI46Lw== + dependencies: + has-symbols "^1.0.0" is-text-path@^1.0.0: version "1.0.1" @@ -6355,7 +6334,7 @@ jest-config@^22.4.4: jest-diff@^22.4.0, jest-diff@^22.4.3: version "22.4.3" - resolved "http://registry.npmjs.org/jest-diff/-/jest-diff-22.4.3.tgz#e18cc3feff0aeef159d02310f2686d4065378030" + resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-22.4.3.tgz#e18cc3feff0aeef159d02310f2686d4065378030" integrity sha512-/QqGvCDP5oZOF6PebDuLwrB2BMD8ffJv6TAGAdEVuDx1+uEgrHpSFrfrOiMRx2eJ1hgNjlQrOQEHetVwij90KA== dependencies: chalk "^2.0.1" @@ -6404,7 +6383,7 @@ jest-get-type@^22.1.0, jest-get-type@^22.4.3: jest-haste-map@^22.4.2: version "22.4.3" - resolved "http://registry.npmjs.org/jest-haste-map/-/jest-haste-map-22.4.3.tgz#25842fa2ba350200767ac27f658d58b9d5c2e20b" + resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-22.4.3.tgz#25842fa2ba350200767ac27f658d58b9d5c2e20b" integrity sha512-4Q9fjzuPVwnaqGKDpIsCSoTSnG3cteyk2oNVjBX12HHOaF1oxql+uUiqZb5Ndu7g/vTZfdNwwy4WwYogLh29DQ== dependencies: fb-watchman "^2.0.0" @@ -6434,14 +6413,14 @@ jest-jasmine2@^22.4.4: jest-leak-detector@^22.4.0: version "22.4.3" - resolved "http://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-22.4.3.tgz#2b7b263103afae8c52b6b91241a2de40117e5b35" + resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-22.4.3.tgz#2b7b263103afae8c52b6b91241a2de40117e5b35" integrity sha512-NZpR/Ls7+ndO57LuXROdgCGz2RmUdC541tTImL9bdUtU3WadgFGm0yV+Ok4Fuia/1rLAn5KaJ+i76L6e3zGJYQ== dependencies: pretty-format "^22.4.3" jest-matcher-utils@^22.4.0, jest-matcher-utils@^22.4.3: version "22.4.3" - resolved "http://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-22.4.3.tgz#4632fe428ebc73ebc194d3c7b65d37b161f710ff" + resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-22.4.3.tgz#4632fe428ebc73ebc194d3c7b65d37b161f710ff" integrity sha512-lsEHVaTnKzdAPR5t4B6OcxXo9Vy4K+kRRbG5gtddY8lBEC+Mlpvm1CJcsMESRjzUhzkz568exMV1hTB76nAKbA== dependencies: chalk "^2.0.1" @@ -6471,14 +6450,14 @@ jest-regex-util@^22.1.0, jest-regex-util@^22.4.3: jest-resolve-dependencies@^22.1.0: version "22.4.3" - resolved "http://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-22.4.3.tgz#e2256a5a846732dc3969cb72f3c9ad7725a8195e" + resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-22.4.3.tgz#e2256a5a846732dc3969cb72f3c9ad7725a8195e" integrity sha512-06czCMVToSN8F2U4EvgSB1Bv/56gc7MpCftZ9z9fBgUQM7dzHGCMBsyfVA6dZTx8v0FDcnALf7hupeQxaBCvpA== dependencies: jest-regex-util "^22.4.3" jest-resolve@^22.4.2: version "22.4.3" - resolved "http://registry.npmjs.org/jest-resolve/-/jest-resolve-22.4.3.tgz#0ce9d438c8438229aa9b916968ec6b05c1abb4ea" + resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-22.4.3.tgz#0ce9d438c8438229aa9b916968ec6b05c1abb4ea" integrity sha512-u3BkD/MQBmwrOJDzDIaxpyqTxYH+XqAXzVJP51gt29H8jpj3QgKof5GGO2uPGKGeA1yTMlpbMs1gIQ6U4vcRhw== dependencies: browser-resolve "^1.11.2" @@ -6534,7 +6513,7 @@ jest-serializer@^22.4.3: jest-snapshot@^22.4.0: version "22.4.3" - resolved "http://registry.npmjs.org/jest-snapshot/-/jest-snapshot-22.4.3.tgz#b5c9b42846ffb9faccb76b841315ba67887362d2" + resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-22.4.3.tgz#b5c9b42846ffb9faccb76b841315ba67887362d2" integrity sha512-JXA0gVs5YL0HtLDCGa9YxcmmV2LZbwJ+0MfyXBBc5qpgkEYITQFJP7XNhcHFbUvRiniRpRbGVfJrOoYhhGE0RQ== dependencies: chalk "^2.0.1" @@ -6795,7 +6774,7 @@ json5@^0.5.0, json5@^0.5.1: jsonfile@^2.1.0: version "2.4.0" - resolved "http://registry.npmjs.org/jsonfile/-/jsonfile-2.4.0.tgz#3736a2b428b87bbda0cc83b53fa3d633a35c2ae8" + resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-2.4.0.tgz#3736a2b428b87bbda0cc83b53fa3d633a35c2ae8" integrity sha1-NzaitCi4e72gzIO1P6PWM6NcKug= optionalDependencies: graceful-fs "^4.1.6" @@ -6890,7 +6869,7 @@ kleros-interaction@^0.0.24: kleros-scripts@^0.4.0: version "0.4.0" - resolved "http://registry.npmjs.org/kleros-scripts/-/kleros-scripts-0.4.0.tgz#2ea8849e8673e9e64ed7c3364107d81bc9da384b" + resolved "https://registry.yarnpkg.com/kleros-scripts/-/kleros-scripts-0.4.0.tgz#2ea8849e8673e9e64ed7c3364107d81bc9da384b" integrity sha1-LqiEnoZz6eZO18M2QQfYG8naOEs= dependencies: "@commitlint/cli" "^6.1.0" @@ -6926,10 +6905,10 @@ known-css-properties@^0.5.0: resolved "https://registry.yarnpkg.com/known-css-properties/-/known-css-properties-0.5.0.tgz#6ff66943ed4a5b55657ee095779a91f4536f8084" integrity sha512-LOS0CoS8zcZnB1EjLw4LLqDXw8nvt3AGH5dXLQP3D9O1nLLA+9GC5GnPl5mmF+JiQAtSX4VyZC7KvEtcA4kUtA== -known-css-properties@^0.6.0: - version "0.6.1" - resolved "https://registry.yarnpkg.com/known-css-properties/-/known-css-properties-0.6.1.tgz#31b5123ad03d8d1a3f36bd4155459c981173478b" - integrity sha512-nQRpMcHm1cQ6gmztdvLcIvxocznSMqH/y6XtERrWrHaymOYdDGroRqetJvJycxGEr1aakXiigDgn7JnzuXlk6A== +known-css-properties@^0.8.0: + version "0.8.0" + resolved "https://registry.yarnpkg.com/known-css-properties/-/known-css-properties-0.8.0.tgz#2f62aaab90ece0c788d0c49e08c1e5d9b689238d" + integrity sha512-pku5zscbIr9YsA6lFU1nhFGSAXsdJtEQ2WilCL40d0YCoDofBlNohMUq32wyt7tpiiaZ09GKyLZFrB1ijx6+WA== lcid@^1.0.0: version "1.0.0" @@ -6963,7 +6942,7 @@ levn@^0.3.0, levn@~0.3.0: lint-staged@^6.1.0: version "6.1.1" - resolved "http://registry.npmjs.org/lint-staged/-/lint-staged-6.1.1.tgz#cd08c4d9b8ccc2d37198d1c47ce77d22be6cf324" + resolved "https://registry.yarnpkg.com/lint-staged/-/lint-staged-6.1.1.tgz#cd08c4d9b8ccc2d37198d1c47ce77d22be6cf324" integrity sha512-M/7bwLdXbeG7ZNLcasGeLMBDg60/w6obj3KOtINwJyxAxb53XGY0yH5FSZlWklEzuVbTtqtIfAajh6jYIN90AA== dependencies: app-root-path "^2.0.0" @@ -7086,9 +7065,9 @@ load-json-file@^4.0.0: strip-bom "^3.0.0" loader-runner@^2.3.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-2.3.0.tgz#f482aea82d543e07921700d5a46ef26fdac6b8a2" - integrity sha1-9IKuqC1UPgeSFwDVpG7yb9rGuKI= + version "2.3.1" + resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-2.3.1.tgz#026f12fe7c3115992896ac02ba022ba92971b979" + integrity sha512-By6ZFY7ETWOc9RFaAIb23IjJVcM4dvJC/N57nmdz9RSkMXvAXGI7SyVlAw3v8vjtDRlqThgVDVmTnr9fqMlxkw== loader-utils@^1.0.2, loader-utils@^1.1.0: version "1.1.0" @@ -7264,7 +7243,7 @@ lodash@>=3.10.0, lodash@^4.1.0, lodash@^4.13.1, lodash@^4.15.0, lodash@^4.17.10, lodash@^3.3.1: version "3.10.1" - resolved "http://registry.npmjs.org/lodash/-/lodash-3.10.1.tgz#5bf45e8e49ba4189e17d482789dfd15bd140b7b6" + resolved "https://registry.yarnpkg.com/lodash/-/lodash-3.10.1.tgz#5bf45e8e49ba4189e17d482789dfd15bd140b7b6" integrity sha1-W/Rejkm6QYnhfUgnid/RW9FAt7Y= log-driver@^1.2.7: @@ -7351,11 +7330,6 @@ makeerror@1.0.x: dependencies: tmpl "1.0.x" -mamacro@^0.0.3: - version "0.0.3" - resolved "https://registry.yarnpkg.com/mamacro/-/mamacro-0.0.3.tgz#ad2c9576197c9f1abf308d0787865bd975a3f3e4" - integrity sha512-qMEwh+UujcQ+kbz3T6V+wAmO2U8veoq2w+3wY8MquqwVA3jChfwY+Tk52GZKDfACEPjuZ7r2oJLejwpt8jtwTA== - map-cache@^0.2.2: version "0.2.2" resolved "https://registry.yarnpkg.com/map-cache/-/map-cache-0.2.2.tgz#c32abd0bd6525d9b051645bb4f26ac5dc98a0dbf" @@ -7404,12 +7378,13 @@ mathml-tag-names@^2.0.1: integrity sha512-3Zs9P/0zzwTob2pdgT0CHZuMbnSUSp8MB1bddfm+HDmnFWHGT4jvEZRf+2RuPoa+cjdn/z25SEt5gFTqdhvJAg== md5.js@^1.3.4: - version "1.3.4" - resolved "https://registry.yarnpkg.com/md5.js/-/md5.js-1.3.4.tgz#e9bdbde94a20a5ac18b04340fc5764d5b09d901d" - integrity sha1-6b296UogpawYsENA/Fdk1bCdkB0= + version "1.3.5" + resolved "https://registry.yarnpkg.com/md5.js/-/md5.js-1.3.5.tgz#b5d07b8e3216e3e27cd728d72f70d1e6a342005f" + integrity sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg== dependencies: hash-base "^3.0.0" inherits "^2.0.1" + safe-buffer "^5.1.2" mdast-util-compact@^1.0.0: version "1.0.2" @@ -7543,9 +7518,9 @@ merge-stream@^1.0.1: readable-stream "^2.0.1" merge2@^1.2.1: - version "1.2.2" - resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.2.2.tgz#03212e3da8d86c4d8523cebd6318193414f94e34" - integrity sha512-bgM8twH86rWni21thii6WCMQMRMmwqqdW3sGWi9IipnVAszdLXRjwDwAnyrVXo6DuP3AjRMMttZKUB48QWIFGg== + version "1.2.3" + resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.2.3.tgz#7ee99dbd69bb6481689253f018488a1b902b0ed5" + integrity sha512-gdUU1Fwj5ep4kplwcmftruWofEFt6lfpkkr3h860CXbAB9c3hGb55EOL2ali0Td5oebvW0E1+3Sr+Ur7XfKpRA== merge@^1.2.0: version "1.2.0" @@ -7603,17 +7578,17 @@ miller-rabin@^4.0.0: bn.js "^4.0.0" brorand "^1.0.1" -mime-db@~1.36.0: - version "1.36.0" - resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.36.0.tgz#5020478db3c7fe93aad7bbcc4dcf869c43363397" - integrity sha512-L+xvyD9MkoYMXb1jAmzI/lWYAxAMCPvIBSWur0PZ5nOf5euahRLVqH//FKW9mWp2lkqUgYiXPgkzfMUFi4zVDw== +mime-db@~1.37.0: + version "1.37.0" + resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.37.0.tgz#0b6a0ce6fdbe9576e25f1f2d2fde8830dc0ad0d8" + integrity sha512-R3C4db6bgQhlIhPU48fUtdVmKnflq+hRdad7IyKhtFj06VPNVdk2RhiYL3UjQIlso8L+YxAtFkobT0VK+S/ybg== mime-types@^2.1.12, mime-types@^2.1.16, mime-types@~2.1.18, mime-types@~2.1.19: - version "2.1.20" - resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.20.tgz#930cb719d571e903738520f8470911548ca2cc19" - integrity sha512-HrkrPaP9vGuWbLK1B1FfgAkbqNjIuy4eHlIYnFi7kamZyLLrGlo2mpcx0bBmNpKqBtYtAfGbodDddIgddSJC2A== + version "2.1.21" + resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.21.tgz#28995aa1ecb770742fe6ae7e58f9181c744b3f96" + integrity sha512-3iL6DbwpyLzjR3xHSFNFeb9Nz/M8WDkX33t1GFQnFOllWk8pOrh/LSrB5OXlnlW5P9LH73X6loW/eogc+F5lJg== dependencies: - mime-db "~1.36.0" + mime-db "~1.37.0" mime@1.4.1: version "1.4.1" @@ -7671,41 +7646,41 @@ minimist-options@^3.0.1: minimist@0.0.8: version "0.0.8" - resolved "http://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d" integrity sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0= minimist@1.1.x: version "1.1.3" - resolved "http://registry.npmjs.org/minimist/-/minimist-1.1.3.tgz#3bedfd91a92d39016fcfaa1c681e8faa1a1efda8" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.1.3.tgz#3bedfd91a92d39016fcfaa1c681e8faa1a1efda8" integrity sha1-O+39kaktOQFvz6ocaB6Pqhoe/ag= minimist@1.2.0, minimist@^1.1.0, minimist@^1.1.1, minimist@^1.1.3, minimist@^1.2.0: version "1.2.0" - resolved "http://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284" integrity sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ= minimist@^0.1.0: version "0.1.0" - resolved "http://registry.npmjs.org/minimist/-/minimist-0.1.0.tgz#99df657a52574c21c9057497df742790b2b4c0de" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.1.0.tgz#99df657a52574c21c9057497df742790b2b4c0de" integrity sha1-md9lelJXTCHJBXSX33QnkLK0wN4= minimist@~0.0.1: version "0.0.10" - resolved "http://registry.npmjs.org/minimist/-/minimist-0.0.10.tgz#de3f98543dbf96082be48ad1a0c7cda836301dcf" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.10.tgz#de3f98543dbf96082be48ad1a0c7cda836301dcf" integrity sha1-3j+YVD2/lggr5IrRoMfNqDYwHc8= minipass@^2.2.1, minipass@^2.3.3: - version "2.3.4" - resolved "https://registry.yarnpkg.com/minipass/-/minipass-2.3.4.tgz#4768d7605ed6194d6d576169b9e12ef71e9d9957" - integrity sha512-mlouk1OHlaUE8Odt1drMtG1bAJA4ZA6B/ehysgV0LUIrDHdKgo1KorZq3pK0b/7Z7LJIQ12MNM6aC+Tn6lUZ5w== + version "2.3.5" + resolved "https://registry.yarnpkg.com/minipass/-/minipass-2.3.5.tgz#cacebe492022497f656b0f0f51e2682a9ed2d848" + integrity sha512-Gi1W4k059gyRbyVUZQ4mEqLm0YIUiGYfvxhF6SIlk3ui1WVxMTGfGdQ2SInh3PDrRTVvPKgULkpJtT4RH10+VA== dependencies: safe-buffer "^5.1.2" yallist "^3.0.0" minizlib@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/minizlib/-/minizlib-1.1.0.tgz#11e13658ce46bc3a70a267aac58359d1e0c29ceb" - integrity sha512-4T6Ur/GctZ27nHfpt9THOdRZNgyJ9FZchYO1ceg5S8Q3DNLCKYy44nCZzgCJgcvx2UM8czmqak5BCxJMrq37lA== + version "1.1.1" + resolved "https://registry.yarnpkg.com/minizlib/-/minizlib-1.1.1.tgz#6734acc045a46e61d596a43bb9d9cd326e19cc42" + integrity sha512-TrfjCjk4jLhcJyGMYymBH6oTXcWjYbUAXTHDbtnWHjZC25h0cdajHuPE1zxb4DVmu8crfh+HwH/WMuyLG0nHBg== dependencies: minipass "^2.2.1" @@ -7742,7 +7717,7 @@ mkdirp-promise@^5.0.1: mkdirp@*, "mkdirp@>=0.5 0", mkdirp@^0.5.0, mkdirp@^0.5.1, mkdirp@~0.5.0: version "0.5.1" - resolved "http://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903" + resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903" integrity sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM= dependencies: minimist "0.0.8" @@ -7832,9 +7807,9 @@ nan@2.10.0: integrity sha512-bAdJv7fBLhWC+/Bls0Oza+mvTaNQtP+1RyhhhvD95pgUJz6XM5IzgmxOkItJ9tkoCiplvAnXI1tNmmUD/eScyA== nan@^2.0.8, nan@^2.3.3, nan@^2.9.2: - version "2.11.0" - resolved "https://registry.yarnpkg.com/nan/-/nan-2.11.0.tgz#574e360e4d954ab16966ec102c0c049fd961a099" - integrity sha512-F4miItu2rGnV2ySkXOQoA8FKz/SR2Q2sWP0sbTxNxz/tuokeC8WxOhPMcwi0qIyGtVn/rrSeLbvVkznqCdwYnw== + version "2.11.1" + resolved "https://registry.yarnpkg.com/nan/-/nan-2.11.1.tgz#90e22bccb8ca57ea4cd37cc83d3819b52eea6766" + integrity sha512-iji6k87OSXa0CcrLl9z+ZiYSuR2o+c0bGuNmXdrhTQTakxytAFsC56SArGYoiHlJlFoHSnvmhpceZJaXkVuOtA== nano-json-stream-parser@^0.1.2: version "0.1.2" @@ -7864,9 +7839,9 @@ natural-compare@^1.4.0: integrity sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc= needle@^2.2.1: - version "2.2.3" - resolved "https://registry.yarnpkg.com/needle/-/needle-2.2.3.tgz#c1b04da378cd634d8befe2de965dc2cfb0fd65ca" - integrity sha512-GPL22d/U9cai87FcCPO6e+MT3vyHS2j+zwotakDc7kE2DtUAqFKMXLJCTtRp+5S75vXIwQPvIxkvlctxf9q4gQ== + version "2.2.4" + resolved "https://registry.yarnpkg.com/needle/-/needle-2.2.4.tgz#51931bff82533b1928b7d1d69e01f1b00ffd2a4e" + integrity sha512-HyoqEb4wr/rsoaIDfTH2aVL9nWtQqba2/HvMv+++m8u0dz808MaagKILxtfeSN7QU7nvbQ79zk3vYOJp9zsNEA== dependencies: debug "^2.1.2" iconv-lite "^0.4.4" @@ -7878,9 +7853,9 @@ negotiator@0.6.1: integrity sha1-KzJxhOiZIQEXeyhWP7XnECrNDKk= neo-async@^2.5.0: - version "2.5.2" - resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.5.2.tgz#489105ce7bc54e709d736b195f82135048c50fcc" - integrity sha512-vdqTKI9GBIYcAEbFAcpKPErKINfPF5zIuz3/niBfq8WUZjpT2tytLlFVrBgWdOtqI4uaA/Rb6No0hux39XXDuw== + version "2.6.0" + resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.0.tgz#b9d15e4d71c6762908654b5183ed38b753340835" + integrity sha512-MFh0d/Wa7vkKO3Y3LlacqAEeHK0mckVqzDieUKTT+KGxi+zIpeVsFxymkIiRpbpDziHc290Xr9A1O4Om7otoRA== nice-try@^1.0.4: version "1.0.5" @@ -7888,12 +7863,12 @@ nice-try@^1.0.4: integrity sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ== nock@^10.0.0: - version "10.0.0" - resolved "https://registry.yarnpkg.com/nock/-/nock-10.0.0.tgz#bcbd2c003961baffcae2ecd28e074574233d3869" - integrity sha512-hE0O9Uhrg7uOpAqnA6ZfnvCS/TZy0HJgMslJ829E7ZuRytcS86/LllupHDD6Tl8fFKQ24kWe1ikX3MCrKkwaaQ== + version "10.0.1" + resolved "https://registry.yarnpkg.com/nock/-/nock-10.0.1.tgz#71eeb580c2995878e582b3e32420daead9eb44f7" + integrity sha512-M0aL9IDbUFURmokoXqejZQybZk8EtlYjUBjaoICVbW62uOlyPRsnEsceyOlUik4spCOt50ptwM4BTPt20ITtcQ== dependencies: chai "^4.1.2" - debug "^3.1.0" + debug "^4.1.0" deep-equal "^1.0.0" json-stringify-safe "^5.0.1" lodash "^4.17.5" @@ -7909,7 +7884,7 @@ node-dir@0.1.8: node-fetch@1.6.3: version "1.6.3" - resolved "http://registry.npmjs.org/node-fetch/-/node-fetch-1.6.3.tgz#dc234edd6489982d58e8f0db4f695029abcd8c04" + resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-1.6.3.tgz#dc234edd6489982d58e8f0db4f695029abcd8c04" integrity sha1-3CNO3WSJmC1Y6PDbT2lQKavNjAQ= dependencies: encoding "^0.1.11" @@ -7951,16 +7926,16 @@ node-libs-browser@^2.0.0: node-localstorage@^0.6.0: version "0.6.0" - resolved "http://registry.npmjs.org/node-localstorage/-/node-localstorage-0.6.0.tgz#45a0601c6932dfde6644a23361f1be173c75d3af" + resolved "https://registry.yarnpkg.com/node-localstorage/-/node-localstorage-0.6.0.tgz#45a0601c6932dfde6644a23361f1be173c75d3af" integrity sha1-RaBgHGky395mRKIzYfG+Fzx1068= node-notifier@^5.2.1: - version "5.2.1" - resolved "https://registry.yarnpkg.com/node-notifier/-/node-notifier-5.2.1.tgz#fa313dd08f5517db0e2502e5758d664ac69f9dea" - integrity sha512-MIBs+AAd6dJ2SklbbE8RUDRlIVhU8MaNLh1A9SUZDUHPiZkWLFde6UNwG41yQHZEToHgJMXqyVZ9UcS/ReOVTg== + version "5.3.0" + resolved "https://registry.yarnpkg.com/node-notifier/-/node-notifier-5.3.0.tgz#c77a4a7b84038733d5fb351aafd8a268bfe19a01" + integrity sha512-AhENzCSGZnZJgBARsUjnQ7DnZbzyP+HxlVXuD0xqAnvL8q+OqtSX7lGg9e8nHzwXkMMXNdVeqq4E2M3EUAqX6Q== dependencies: growly "^1.3.0" - semver "^5.4.1" + semver "^5.5.0" shellwords "^0.1.1" which "^1.3.0" @@ -7980,10 +7955,10 @@ node-pre-gyp@^0.10.0: semver "^5.3.0" tar "^4" -node-releases@^1.0.0-alpha.11: - version "1.0.0-alpha.11" - resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.0.0-alpha.11.tgz#73c810acc2e5b741a17ddfbb39dfca9ab9359d8a" - integrity sha512-CaViu+2FqTNYOYNihXa5uPS/zry92I3vPU4nCB6JB3OeZ2UGtOpF5gRwuN4+m3hbEcL47bOXyun1jX2iC+3uEQ== +node-releases@^1.0.0-alpha.15: + version "1.0.0-alpha.15" + resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.0.0-alpha.15.tgz#bdb08730287cc50ddbfa3c1a358366a4a2f5d397" + integrity sha512-hKG6hd/g6a9OV/ARt2qrxbRhe/4WEMFohTLOB9PNyTYvvI59gICZFzt9/mMgpYUTts06qXlN8H6UjfbIRdnW8A== dependencies: semver "^5.3.0" @@ -8050,9 +8025,9 @@ npm-bundled@^1.0.1: integrity sha512-m/e6jgWu8/v5niCUKQi9qQl8QdeEduFA96xHDDzFGqly0OOjI7c+60KM/2sppfnUU9JJagf+zs+yGhqSOFj71g== npm-packlist@^1.1.6: - version "1.1.11" - resolved "https://registry.yarnpkg.com/npm-packlist/-/npm-packlist-1.1.11.tgz#84e8c683cbe7867d34b1d357d893ce29e28a02de" - integrity sha512-CxKlZ24urLkJk+9kCm48RTQ7L4hsmgSVzEk0TLGPzzyuFxD7VNgy5Sl24tOLMzQv773a/NeJ1ce1DKeacqffEA== + version "1.1.12" + resolved "https://registry.yarnpkg.com/npm-packlist/-/npm-packlist-1.1.12.tgz#22bde2ebc12e72ca482abd67afc51eb49377243a" + integrity sha512-WJKFOVMeAlsU/pjXuqVdzU0WfgtIBCupkEVwn+1Y0ERAbUfWw8R4GjgVbaKnUjRoD2FoQbHOCbOyT5Mbs9Lw4g== dependencies: ignore-walk "^3.0.1" npm-bundled "^1.0.1" @@ -8091,9 +8066,9 @@ npmlog@^4.0.2: set-blocking "~2.0.0" nth-check@~1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/nth-check/-/nth-check-1.0.1.tgz#9929acdf628fc2c41098deab82ac580cf149aae4" - integrity sha1-mSms32KPwsQQmN6rgqxYDPFJquQ= + version "1.0.2" + resolved "https://registry.yarnpkg.com/nth-check/-/nth-check-1.0.2.tgz#b2bd295c37e3dd58a3bf0700376663ba4d9cf05c" + integrity sha512-WeBOdju8SnzPN5vTUJYxYUxLeXpCaVP5i5e0LF8fg7WORF2Wd7wFX/pk0tYZk7s8T+J7VLy0Da6J1+wCT0AtHg== dependencies: boolbase "~1.0.0" @@ -8207,7 +8182,7 @@ once@^1.3.0, once@^1.3.1, once@^1.4.0: onetime@^1.0.0: version "1.1.0" - resolved "http://registry.npmjs.org/onetime/-/onetime-1.1.0.tgz#a1f7838f8314c516f05ecefcbc4ccfe04b4ed789" + resolved "https://registry.yarnpkg.com/onetime/-/onetime-1.1.0.tgz#a1f7838f8314c516f05ecefcbc4ccfe04b4ed789" integrity sha1-ofeDj4MUxRbwXs78vEzP4EtO14k= onetime@^2.0.0: @@ -8259,7 +8234,7 @@ optionator@^0.8.1, optionator@^0.8.2: ora@^0.2.3: version "0.2.3" - resolved "http://registry.npmjs.org/ora/-/ora-0.2.3.tgz#37527d220adcd53c39b73571d754156d5db657a4" + resolved "https://registry.yarnpkg.com/ora/-/ora-0.2.3.tgz#37527d220adcd53c39b73571d754156d5db657a4" integrity sha1-N1J9Igrc1Tw5tzVx11QVbV22V6Q= dependencies: chalk "^1.1.1" @@ -8279,7 +8254,7 @@ os-homedir@^1.0.0, os-homedir@^1.0.1: os-locale@^1.4.0: version "1.4.0" - resolved "http://registry.npmjs.org/os-locale/-/os-locale-1.4.0.tgz#20f9f17ae29ed345e8bde583b13d2009803c14d9" + resolved "https://registry.yarnpkg.com/os-locale/-/os-locale-1.4.0.tgz#20f9f17ae29ed345e8bde583b13d2009803c14d9" integrity sha1-IPnxeuKe00XoveWDsT0gCYA8FNk= dependencies: lcid "^1.0.0" @@ -8327,7 +8302,7 @@ p-cancelable@^0.3.0: p-cancelable@^0.4.0: version "0.4.1" - resolved "http://registry.npmjs.org/p-cancelable/-/p-cancelable-0.4.1.tgz#35f363d67d52081c8d9585e37bcceb7e0bbcb2a0" + resolved "https://registry.yarnpkg.com/p-cancelable/-/p-cancelable-0.4.1.tgz#35f363d67d52081c8d9585e37bcceb7e0bbcb2a0" integrity sha512-HNa1A8LvB1kie7cERyy21VNeHb2CWJJYqyyC2o3klWFfMGlFmWv2Z7sFgZH8ZiaYL95ydToKTFVXgMV/Os0bBQ== p-each-series@^1.0.0: @@ -8418,7 +8393,7 @@ parallel-transform@^1.1.0: parse-asn1@^5.0.0: version "5.1.1" - resolved "http://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.1.tgz#f6bf293818332bd0dab54efb16087724745e6ca8" + resolved "https://registry.yarnpkg.com/parse-asn1/-/parse-asn1-5.1.1.tgz#f6bf293818332bd0dab54efb16087724745e6ca8" integrity sha512-KPx7flKXg775zZpnp9SxJlz00gTd4BmJ2yJufSc44gMCRrRQ7NSzAcSJQfifuOLgW6bEi+ftrALtsgALeB2Adw== dependencies: asn1.js "^4.0.0" @@ -8428,9 +8403,9 @@ parse-asn1@^5.0.0: pbkdf2 "^3.0.3" parse-entities@^1.0.2, parse-entities@^1.1.0: - version "1.1.2" - resolved "https://registry.yarnpkg.com/parse-entities/-/parse-entities-1.1.2.tgz#9eaf719b29dc3bd62246b4332009072e01527777" - integrity sha512-5N9lmQ7tmxfXf+hO3X6KRG6w7uYO/HL9fHalSySTdyn63C3WNvTM/1R8tn1u1larNcEbo3Slcy2bsVDQqvEpUg== + version "1.2.0" + resolved "https://registry.yarnpkg.com/parse-entities/-/parse-entities-1.2.0.tgz#9deac087661b2e36814153cb78d7e54a4c5fd6f4" + integrity sha512-XXtDdOPLSB0sHecbEapQi6/58U/ODj/KWfIXmmMCJF/eRn8laX6LZbOyioMoETOOJoWRW8/qTSl5VQkUIfKM5g== dependencies: character-entities "^1.0.0" character-entities-legacy "^1.0.0" @@ -8586,15 +8561,15 @@ path-type@^3.0.0: dependencies: pify "^3.0.0" -pathval@^1.0.0: +pathval@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/pathval/-/pathval-1.1.0.tgz#b942e6d4bde653005ef6b71361def8727d0645e0" integrity sha1-uULm1L3mUwBe9rcTYd74cn0GReA= pbkdf2@^3.0.3: - version "3.0.16" - resolved "https://registry.yarnpkg.com/pbkdf2/-/pbkdf2-3.0.16.tgz#7404208ec6b01b62d85bf83853a8064f8d9c2a5c" - integrity sha512-y4CXP3thSxqf7c0qmOF+9UeOTrifiVTIM+u7NWlq+PRsHbr7r7dpCmvzrZxa96JJUNi0Y5w9VqG5ZNeCVMoDcA== + version "3.0.17" + resolved "https://registry.yarnpkg.com/pbkdf2/-/pbkdf2-3.0.17.tgz#976c206530617b14ebb32114239f7b09336e93a6" + integrity sha512-U/il5MsrZp7mGg3mSQfn742na2T+1/vHDCG5/iTI3X9MKUuYUZVLQhyRsg06mCgDBTd57TxzgZt7P+fYfjRLtA== dependencies: create-hash "^1.1.2" create-hmac "^1.1.4" @@ -8623,9 +8598,9 @@ pify@^3.0.0: integrity sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY= pify@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/pify/-/pify-4.0.0.tgz#db04c982b632fd0df9090d14aaf1c8413cadb695" - integrity sha512-zrSP/KDf9DH3K3VePONoCstgPiYJy9z0SCatZuTpOc7YdnWIqwkWdXOuwlr4uDc7em8QZRsFWsT/685x5InjYg== + version "4.0.1" + resolved "https://registry.yarnpkg.com/pify/-/pify-4.0.1.tgz#4b2cd25c50d598735c50292224fd8c6df41e3231" + integrity sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g== pinkie-promise@^2.0.0: version "2.0.1" @@ -8686,21 +8661,21 @@ postcss-html@^0.12.0: remark "^8.0.0" unist-util-find-all-after "^1.0.1" -postcss-html@^0.33.0: - version "0.33.0" - resolved "https://registry.yarnpkg.com/postcss-html/-/postcss-html-0.33.0.tgz#8ab6067d7a8a234e1937920b38760e3be1dca070" - integrity sha512-3keDoRG0o8bJZKe/QzkOPUD3GQQvAmYhIAtsGrgTxIXB6xZnSQq3gwPjCEd2IAUtz9/Fkus70XGm6xJEZ+bAmg== +postcss-html@^0.34.0: + version "0.34.0" + resolved "https://registry.yarnpkg.com/postcss-html/-/postcss-html-0.34.0.tgz#9bfd637ad8c3d3a43625b5ef844dc804b3370868" + integrity sha512-BIW982Kbf9/RikInNhNS3/GA6x/qY/+jhVS9KumqXZtU9ss8Yq15HhPJ6mnaXcU5bFq2ULxpOv96mHPAErpGMQ== dependencies: htmlparser2 "^3.9.2" -postcss-jsx@^0.33.0: - version "0.33.0" - resolved "https://registry.yarnpkg.com/postcss-jsx/-/postcss-jsx-0.33.0.tgz#433f8aadd6f3b0ee403a62b441bca8db9c87471c" - integrity sha512-+ZH4FyxQel2O5uYkNKBnDdW2jCwIb5HwwyFsKuEI164Vmq9Wm07nT2lj65P1qDSRXP2Ik05DrSHzY8Hmt5VP4A== +postcss-jsx@^0.34.0: + version "0.34.0" + resolved "https://registry.yarnpkg.com/postcss-jsx/-/postcss-jsx-0.34.0.tgz#5a122af914f911fab4a9b8fcf3adc73c2dfe1bdd" + integrity sha512-UJISlEGWH/LeMYudAwq9GeqfyPW9AeRq87GHOlbquxOIakKr0Aqu6l9Cx0Fg20f3A9bKJcX1NGX4/xzIs7PlZQ== dependencies: - "@babel/core" "^7.0.0-rc.1" + "@babel/core" "^7.0.0" optionalDependencies: - postcss-styled ">=0.33.0" + postcss-styled ">=0.34.0" postcss-less@^1.1.0: version "1.1.5" @@ -8716,10 +8691,10 @@ postcss-less@^2.0.0: dependencies: postcss "^5.2.16" -postcss-markdown@^0.33.0: - version "0.33.0" - resolved "https://registry.yarnpkg.com/postcss-markdown/-/postcss-markdown-0.33.0.tgz#2d0462742ee108c9d6020780184b499630b8b33a" - integrity sha512-JZtetO15t5nNpymHDbRhuiOF8yJm1btrbUBP3iL39yLTiY8oChCsnCKfQjEuHB9+85fku5MoU/bRgQ8K45klMg== +postcss-markdown@^0.34.0: + version "0.34.0" + resolved "https://registry.yarnpkg.com/postcss-markdown/-/postcss-markdown-0.34.0.tgz#7a043e6eee3ab846a4cefe3ab43d141038e2da79" + integrity sha512-cKPggF9OMOKPoqDm5YpYszCqMsImFh78FK6P8p6IsEKZB6IkUJYKz0/QgadYy4jLb60jcFIHJ6v6jsMH7/ZQrA== dependencies: remark "^9.0.0" unist-util-find-all-after "^1.0.2" @@ -8739,6 +8714,16 @@ postcss-reporter@^5.0.0: log-symbols "^2.0.0" postcss "^6.0.8" +postcss-reporter@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/postcss-reporter/-/postcss-reporter-6.0.0.tgz#44c873129d8c029a430b6d2186210d79c8de88b8" + integrity sha512-5xQXm1UPWuFObjbtyQzWvQaupru8yFcFi4HUlm6OPo1o2bUszYASuqRJ7bVArb3svGCdbYtqdMBKrqR1Aoy+tw== + dependencies: + chalk "^2.0.1" + lodash "^4.17.4" + log-symbols "^2.0.0" + postcss "^7.0.2" + postcss-resolve-nested-selector@^0.1.1: version "0.1.1" resolved "https://registry.yarnpkg.com/postcss-resolve-nested-selector/-/postcss-resolve-nested-selector-0.1.1.tgz#29ccbc7c37dedfac304e9fff0bf1596b3f6a0e4e" @@ -8805,29 +8790,29 @@ postcss-sorting@^3.1.0: lodash "^4.17.4" postcss "^6.0.13" -postcss-styled@>=0.33.0, postcss-styled@^0.33.0: - version "0.33.0" - resolved "https://registry.yarnpkg.com/postcss-styled/-/postcss-styled-0.33.0.tgz#69be377584105a582fda7e4f76888e5b97eed737" - integrity sha512-ybKIBKYY6q0hADQUECW2F4fDybDFIiAfpMf06/2maxU0yp0FvMTeABrDjzSmKu+99Nj2Gsxe80Xn56FbhzIZZQ== +postcss-styled@>=0.34.0, postcss-styled@^0.34.0: + version "0.34.0" + resolved "https://registry.yarnpkg.com/postcss-styled/-/postcss-styled-0.34.0.tgz#07d47bcb13707289782aa058605fd9feaf84391d" + integrity sha512-Uaeetr/xOiQWGJgzPFOr32/Bwykpfh9TVE26OpmwDb8eEN205TS/gqkt9ri+C6otQzQKXqbMfeZNbKYi7QpeNA== -postcss-syntax@^0.33.0: - version "0.33.0" - resolved "https://registry.yarnpkg.com/postcss-syntax/-/postcss-syntax-0.33.0.tgz#59c0c678d2f9ecefa84c6ce9ef46fc805c54ab3a" - integrity sha512-A9ABlaRy7KWUfG5E39GVTUoc5TXNuNTts5GzwDLwnSaVG151CSLCTcr51/m8cHi4KXcYa+5ImLyeSfBOhEYtGw== +postcss-syntax@^0.34.0: + version "0.34.0" + resolved "https://registry.yarnpkg.com/postcss-syntax/-/postcss-syntax-0.34.0.tgz#4a85c022f1cdecea72102775c91af1e7f506d83a" + integrity sha512-L36NZwq2UK743US+vl1CRMdBRZCBmFYfThP9n9jCFhX1Wfk6BqnRSgt0Fy8q44IwxPee/GCzlo7T1c1JIeUDlQ== -postcss-value-parser@^3.2.3, postcss-value-parser@^3.3.0: - version "3.3.0" - resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-3.3.0.tgz#87f38f9f18f774a4ab4c8a232f5c5ce8872a9d15" - integrity sha1-h/OPnxj3dKSrTIojL1xc6IcqnRU= +postcss-value-parser@^3.2.3, postcss-value-parser@^3.3.0, postcss-value-parser@^3.3.1: + version "3.3.1" + resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz#9ff822547e2893213cf1c30efa51ac5fd1ba8281" + integrity sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ== -postcss@>=5.0.19, postcss@^7.0.0, postcss@^7.0.1, postcss@^7.0.2: - version "7.0.2" - resolved "https://registry.yarnpkg.com/postcss/-/postcss-7.0.2.tgz#7b5a109de356804e27f95a960bef0e4d5bc9bb18" - integrity sha512-fmaUY5370keLUTx+CnwRxtGiuFTcNBLQBqr1oE3WZ/euIYmGAo0OAgOhVJ3ByDnVmOR3PK+0V9VebzfjRIUcqw== +postcss@>=5.0.19, postcss@^7.0.0, postcss@^7.0.1, postcss@^7.0.2, postcss@^7.0.5: + version "7.0.5" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-7.0.5.tgz#70e6443e36a6d520b0fd4e7593fcca3635ee9f55" + integrity sha512-HBNpviAUFCKvEh7NZhw1e8MBPivRszIiUnhrJ+sBFVSYSqubrzwX3KG51mYgcRHX8j/cAgZJedONZcm5jTBdgQ== dependencies: chalk "^2.4.1" source-map "^0.6.1" - supports-color "^5.4.0" + supports-color "^5.5.0" postcss@^5.2.16: version "5.2.18" @@ -8869,9 +8854,9 @@ preserve@^0.2.0: integrity sha1-gV7R9uvGWSb4ZbMQwHE7yzMVzks= prettier@^1.10.2, prettier@^1.12.1: - version "1.14.2" - resolved "https://registry.yarnpkg.com/prettier/-/prettier-1.14.2.tgz#0ac1c6e1a90baa22a62925f41963c841983282f9" - integrity sha512-McHPg0n1pIke+A/4VcaS2en+pTNjy4xF+Uuq86u/5dyDO59/TtFZtQ708QIRkEZ3qwKz3GVkVa6mpxK/CpB8Rg== + version "1.14.3" + resolved "https://registry.yarnpkg.com/prettier/-/prettier-1.14.3.tgz#90238dd4c0684b7edce5f83b0fb7328e48bd0895" + integrity sha512-qZDVnCrnpsRJJq5nSsiHCE3BYMED2OtsI+cmzIzF1QIfqm5ALf8tEJcO27zV1gKNKRPdhjO0dNWnrzssDQ1tFg== pretty-bytes@^4.0.2: version "4.0.2" @@ -8888,7 +8873,7 @@ pretty-format@^21.2.1: pretty-format@^22.4.0, pretty-format@^22.4.3: version "22.4.3" - resolved "http://registry.npmjs.org/pretty-format/-/pretty-format-22.4.3.tgz#f873d780839a9c02e9664c8a082e9ee79eaac16f" + resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-22.4.3.tgz#f873d780839a9c02e9664c8a082e9ee79eaac16f" integrity sha512-S4oT9/sT6MN7/3COoOy+ZJeA92VmOnveLHgrwBE3Z1W5N9S2A1QGNYiE1z75DAENbJrXXUb+OWXhpJcg05QKQQ== dependencies: ansi-regex "^3.0.0" @@ -8915,9 +8900,9 @@ process@~0.5.1: integrity sha1-FjjYqONML0QKkduVq5rrZ3/Bhc8= progress@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.0.tgz#8a1be366bf8fc23db2bd23f10c6fe920b4389d1f" - integrity sha1-ihvjZr+Pwj2yvSPxDG/pILQ4nR8= + version "2.0.1" + resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.1.tgz#c9242169342b1c29d275889c95734621b1952e31" + integrity sha512-OE+a6vzqazc+K6LxJrX5UPyKFvGnL5CYmq2jFGNIBWHpc4QyE49/YOumcrpQFJpfejmvRtbJzgO1zPmMCqlbBg== promise-inflight@^1.0.1: version "1.0.1" @@ -8937,7 +8922,7 @@ propagate@^1.0.0: resolved "https://registry.yarnpkg.com/propagate/-/propagate-1.0.0.tgz#00c2daeedda20e87e3782b344adba1cddd6ad709" integrity sha1-AMLa7t2iDofjeCs0Stuhzd1q1wk= -proxy-addr@~2.0.3: +proxy-addr@~2.0.4: version "2.0.4" resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.4.tgz#ecfc733bf22ff8c6f407fa275327b9ab67e48b93" integrity sha512-5erio2h9jp5CHGwcybmxmVqHmnCBZeewlfJ0pex+UW7Qny7OOZXTtH56TGNyBizkgiOwhJtMKrVzDTeKcySZwA== @@ -8961,15 +8946,16 @@ psl@^1.1.24: integrity sha512-AeUmQ0oLN02flVHXWh9sSJF7mcdFq0ppid/JkErufc3hGIV/AMa8Fo9VgDo/cT2jFdOWoFvHp90qqBH54W+gjQ== public-encrypt@^4.0.0: - version "4.0.2" - resolved "http://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.2.tgz#46eb9107206bf73489f8b85b69d91334c6610994" - integrity sha512-4kJ5Esocg8X3h8YgJsKAuoesBgB7mqH3eowiDzMUPKiRDDE7E/BqqZD1hnTByIaAFiwAw246YEltSq7tdrOH0Q== + version "4.0.3" + resolved "https://registry.yarnpkg.com/public-encrypt/-/public-encrypt-4.0.3.tgz#4fcc9d77a07e48ba7527e7cbe0de33d0701331e0" + integrity sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q== dependencies: bn.js "^4.1.0" browserify-rsa "^4.0.0" create-hash "^1.1.0" parse-asn1 "^5.0.0" randombytes "^2.0.1" + safe-buffer "^5.1.2" pump@^2.0.0, pump@^2.0.1: version "2.0.1" @@ -9013,11 +8999,6 @@ q@^1.4.1, q@^1.5.1: resolved "https://registry.yarnpkg.com/q/-/q-1.5.1.tgz#7e32f75b41381291d04611f1bf14109ac00651d7" integrity sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc= -qs@6.5.1: - version "6.5.1" - resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.1.tgz#349cdf6eef89ec45c12d7d5eb3fc0c870343a6d8" - integrity sha512-eRzhrN1WSINYCDCbrz796z37LOe3m5tmW7RQf6oBntukAG1nmovJvhnwHHRMAfeoItc1m2Hk02WER2aQ/iqs+A== - qs@6.5.2, qs@^6.5.1, qs@~6.5.2: version "6.5.2" resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.2.tgz#cb3ae806e8740444584ef154ce8ee98d403f3e36" @@ -9048,9 +9029,9 @@ quick-lru@^1.0.0: integrity sha1-Q2CxfGETatOAeDl/8RQW4Ybc+7g= randomatic@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/randomatic/-/randomatic-3.1.0.tgz#36f2ca708e9e567f5ed2ec01949026d50aa10116" - integrity sha512-KnGPVE0lo2WoXxIZ7cPR8YBpiol4gsSuOwDSg410oHh80ZMp5EiypNqL2K4Z77vJn6lB5rap7IkAmcUlalcnBQ== + version "3.1.1" + resolved "https://registry.yarnpkg.com/randomatic/-/randomatic-3.1.1.tgz#b776efc59375984e36c537b2f51a1f0aff0da1ed" + integrity sha512-TuDE5KxZ0J461RVjrJZCJc+J+zCkTb1MbH9AQUq68sMhOMcy9jLcb3BrZKgp9q9Ncltdg4QVqWrH02W2EFFVYw== dependencies: is-number "^4.0.0" kind-of "^6.0.0" @@ -9081,16 +9062,6 @@ range-parser@~1.2.0: resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.0.tgz#f49be6b487894ddc40dcc94a322f611092e00d5e" integrity sha1-9JvmtIeJTdxA3MlKMi9hEJLgDV4= -raw-body@2.3.2: - version "2.3.2" - resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.3.2.tgz#bcd60c77d3eb93cde0050295c3f379389bc88f89" - integrity sha1-vNYMd9Prk83gBQKVw/N5OJvIj4k= - dependencies: - bytes "3.0.0" - http-errors "1.6.2" - iconv-lite "0.4.19" - unpipe "1.0.0" - raw-body@2.3.3: version "2.3.3" resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.3.3.tgz#1b324ece6b5706e153855bc1148c65bb7f6ea0c3" @@ -9172,7 +9143,7 @@ read-pkg@^3.0.0: "readable-stream@1 || 2", readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.0.4, readable-stream@^2.0.6, readable-stream@^2.1.5, readable-stream@^2.2.2, readable-stream@^2.3.0, readable-stream@^2.3.3, readable-stream@^2.3.5, readable-stream@^2.3.6: version "2.3.6" - resolved "http://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz#b11c27d88b8ff1fbe070643cf94b0c79ae1b0aaf" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.6.tgz#b11c27d88b8ff1fbe070643cf94b0c79ae1b0aaf" integrity sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw== dependencies: core-util-is "~1.0.0" @@ -9185,7 +9156,7 @@ read-pkg@^3.0.0: readable-stream@1.1: version "1.1.13" - resolved "http://registry.npmjs.org/readable-stream/-/readable-stream-1.1.13.tgz#f6eef764f514c89e2b9e23146a75ba106756d23e" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.1.13.tgz#f6eef764f514c89e2b9e23146a75ba106756d23e" integrity sha1-9u73ZPUUyJ4rniMUanW6EGdW0j4= dependencies: core-util-is "~1.0.0" @@ -9193,6 +9164,15 @@ readable-stream@1.1: isarray "0.0.1" string_decoder "~0.10.x" +readable-stream@^3.0.6: + version "3.0.6" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.0.6.tgz#351302e4c68b5abd6a2ed55376a7f9a25be3057a" + integrity sha512-9E1oLoOWfhSXHGv6QlwXJim7uNzd9EVlWK+21tCU9Ju/kR0/p2AZYPz4qSchgO8PlLIH4FpZYfzwS+rEksZjIg== + dependencies: + inherits "^2.0.3" + string_decoder "^1.1.1" + util-deprecate "^1.0.1" + readdirp@^2.0.0: version "2.2.1" resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-2.2.1.tgz#0e87622a3325aa33e892285caf8b4e846529a525" @@ -9640,7 +9620,7 @@ rimraf@2, rimraf@^2.2.8, rimraf@^2.5.2, rimraf@^2.5.4, rimraf@^2.6.1, rimraf@^2. rimraf@~2.2.6: version "2.2.8" - resolved "http://registry.npmjs.org/rimraf/-/rimraf-2.2.8.tgz#e439be2aaee327321952730f99a8929e4fc50582" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.2.8.tgz#e439be2aaee327321952730f99a8929e4fc50582" integrity sha1-5Dm+Kq7jJzIZUnMPmaiSnk/FBYI= ripemd160@^2.0.0, ripemd160@^2.0.1: @@ -9707,18 +9687,13 @@ rxjs@^5.4.2, rxjs@^5.5.2: symbol-observable "1.0.1" rxjs@^6.1.0: - version "6.3.2" - resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-6.3.2.tgz#6a688b16c4e6e980e62ea805ec30648e1c60907f" - integrity sha512-hV7criqbR0pe7EeL3O66UYVg92IR0XsA97+9y+BWTePK9SKmEI5Qd3Zj6uPnGkNzXsBywBQWTvujPl+1Kn9Zjw== + version "6.3.3" + resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-6.3.3.tgz#3c6a7fa420e844a81390fb1158a9ec614f4bad55" + integrity sha512-JTWmoY9tWCs7zvIk/CvRjhjGaOd+OVBM987mxFo+OW66cGpdKjZcpmc74ES1sB//7Kl/PAe8+wEakuhG4pcgOw== dependencies: tslib "^1.9.0" -safe-buffer@5.1.1: - version "5.1.1" - resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.1.tgz#893312af69b2123def71f57889001671eeb2c853" - integrity sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg== - -safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@^5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1: +safe-buffer@5.1.2, safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@^5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1: version "5.1.2" resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== @@ -9804,9 +9779,9 @@ seek-bzip@^1.0.5: commander "~2.8.1" "semver@2 || 3 || 4 || 5", semver@^5.1.0, semver@^5.3.0, semver@^5.4.1, semver@^5.5.0: - version "5.5.1" - resolved "https://registry.yarnpkg.com/semver/-/semver-5.5.1.tgz#7dfdd8814bdb7cabc7be0fb1d734cfb66c940477" - integrity sha512-PqpAxfrEhlSUWge8dwIp4tZnQ25DIOthpiaHNIthsjEFQD6EvqUKUDM7L8O2rShkFccYo1VjJR0coWfNkCubRw== + version "5.6.0" + resolved "https://registry.yarnpkg.com/semver/-/semver-5.6.0.tgz#7e74256fbaa49c75aa7c7a205cc22799cac80004" + integrity sha512-RS9R6R35NYgQn++fkDWaOmqGoj4Ek9gGs+DPxNUZKuwE183xjJroKvyo1IzVFeXvUrvmALy6FWD5xrdJT25gMg== semver@5.5.0: version "5.5.0" @@ -9893,11 +9868,6 @@ setimmediate@^1.0.4, setimmediate@^1.0.5: resolved "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.5.tgz#290cbb232e306942d7d7ea9b83732ab7856f8285" integrity sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU= -setprototypeof@1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.0.3.tgz#66567e37043eeb4f04d91bd658c0cbefb55b8e04" - integrity sha1-ZlZ+NwQ+608E2RvWWMDL77VbjgQ= - setprototypeof@1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.1.0.tgz#d0bd85536887b6fe7c0d818cb962d9d91c54e656" @@ -9905,7 +9875,7 @@ setprototypeof@1.1.0: sha.js@^2.4.0, sha.js@^2.4.8: version "2.4.11" - resolved "http://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz#37a5cf0b81ecbc6943de109ba2960d1b26584ae7" + resolved "https://registry.yarnpkg.com/sha.js/-/sha.js-2.4.11.tgz#37a5cf0b81ecbc6943de109ba2960d1b26584ae7" integrity sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ== dependencies: inherits "^2.0.1" @@ -10043,9 +10013,9 @@ sort-keys@^2.0.0: is-plain-obj "^1.0.0" source-list-map@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/source-list-map/-/source-list-map-2.0.0.tgz#aaa47403f7b245a92fbc97ea08f250d6087ed085" - integrity sha512-I2UmuJSRr/T8jisiROLU3A3ltr+swpniSmNPI4Ml3ZCX6tVnDsuZzK7F2hl5jTqbZBWCEKlj5HRQiPExXLgE8A== + version "2.0.1" + resolved "https://registry.yarnpkg.com/source-list-map/-/source-list-map-2.0.1.tgz#3993bd873bfc48479cca9ea3a547835c7c154b34" + integrity sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw== source-map-resolve@^0.5.0: version "0.5.2" @@ -10097,17 +10067,17 @@ spawn-sync@^1.0.15: os-shim "^0.1.2" spdx-correct@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-3.0.0.tgz#05a5b4d7153a195bc92c3c425b69f3b2a9524c82" - integrity sha512-N19o9z5cEyc8yQQPukRCZ9EUmb4HUpnrmaL/fxS2pBo2jbfcFRVuFZ/oFC+vZz0MNNk0h80iMn5/S6qGZOL5+g== + version "3.0.2" + resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-3.0.2.tgz#19bb409e91b47b1ad54159243f7312a858db3c2e" + integrity sha512-q9hedtzyXHr5S0A1vEPoK/7l8NpfkFYTq6iCY+Pno2ZbdZR6WexZFtqeVGkGxW3TEJMN914Z55EnAGMmenlIQQ== dependencies: spdx-expression-parse "^3.0.0" spdx-license-ids "^3.0.0" spdx-exceptions@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/spdx-exceptions/-/spdx-exceptions-2.1.0.tgz#2c7ae61056c714a5b9b9b2b2af7d311ef5c78fe9" - integrity sha512-4K1NsmrlCU1JJgUrtgEeTVyfx8VaYea9J9LvARxhbHtVtohPs/gFGG5yy49beySjlIMhhXZ4QqujIZEfS4l6Cg== + version "2.2.0" + resolved "https://registry.yarnpkg.com/spdx-exceptions/-/spdx-exceptions-2.2.0.tgz#2ea450aee74f2a89bfb94519c07fcd6f41322977" + integrity sha512-2XQACfElKi9SlVb1CYadKDXvoajPgBVPn/gOQLrTvHdElaVhr7ZEbqJaRnJLVNeaI4cMEAgVCeBMKF6MWRDCRA== spdx-expression-parse@^3.0.0: version "3.0.0" @@ -10127,7 +10097,7 @@ specificity@^0.3.1: resolved "https://registry.yarnpkg.com/specificity/-/specificity-0.3.2.tgz#99e6511eceef0f8d9b57924937aac2cb13d13c42" integrity sha512-Nc/QN/A425Qog7j9aHmwOrlwX2e7pNI47ciwxwy4jOlvbbMHkNNJchit+FX+UjF3IAdiaaV5BKeWuDUnws6G1A== -specificity@^0.4.0: +specificity@^0.4.1: version "0.4.1" resolved "https://registry.yarnpkg.com/specificity/-/specificity-0.4.1.tgz#aab5e645012db08ba182e151165738d00887b019" integrity sha512-1klA3Gi5PD1Wv9Q0wUoOQN1IWAuPu0D1U03ThXTr0cJ20+/iq2tHSDnK7Kk/0LXJ1ztUB2/1Os0wKmfyNgUQfg== @@ -10159,19 +10129,18 @@ sprintf-js@~1.0.2: integrity sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw= sshpk@^1.7.0: - version "1.14.2" - resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.14.2.tgz#c6fc61648a3d9c4e764fd3fcdf4ea105e492ba98" - integrity sha1-xvxhZIo9nE52T9P8306hBeSSupg= + version "1.15.1" + resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.15.1.tgz#b79a089a732e346c6e0714830f36285cd38191a2" + integrity sha512-mSdgNUaidk+dRU5MhYtN9zebdzF2iG0cNPWy8HG+W8y+fT1JnSkh0fzzpjOa0L7P8i1Rscz38t0h4gPcKz43xA== dependencies: asn1 "~0.2.3" assert-plus "^1.0.0" - dashdash "^1.12.0" - getpass "^0.1.1" - safer-buffer "^2.0.2" - optionalDependencies: bcrypt-pbkdf "^1.0.0" + dashdash "^1.12.0" ecc-jsbn "~0.1.1" + getpass "^0.1.1" jsbn "~0.1.0" + safer-buffer "^2.0.2" tweetnacl "~0.14.0" ssri@^5.2.4: @@ -10218,7 +10187,7 @@ static-extend@^0.1.1: define-property "^0.2.5" object-copy "^0.1.0" -"statuses@>= 1.3.1 < 2", "statuses@>= 1.4.0 < 2": +"statuses@>= 1.4.0 < 2": version "1.5.0" resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c" integrity sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow= @@ -10307,7 +10276,7 @@ string-width@^1.0.1: is-fullwidth-code-point "^2.0.0" strip-ansi "^4.0.0" -string_decoder@^1.0.0, string_decoder@~1.1.1: +string_decoder@^1.0.0, string_decoder@^1.1.1, string_decoder@~1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8" integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg== @@ -10330,11 +10299,11 @@ stringify-entities@^1.0.1: is-hexadecimal "^1.0.0" stringify-object@^3.2.0: - version "3.2.2" - resolved "https://registry.yarnpkg.com/stringify-object/-/stringify-object-3.2.2.tgz#9853052e5a88fb605a44cd27445aa257ad7ffbcd" - integrity sha512-O696NF21oLiDy8PhpWu8AEqoZHw++QW6mUv0UvKZe8gWSdSvMXkiLufK7OmnP27Dro4GU5kb9U7JIO0mBuCRQg== + version "3.3.0" + resolved "https://registry.yarnpkg.com/stringify-object/-/stringify-object-3.3.0.tgz#703065aefca19300d3ce88af4f5b3956d7556629" + integrity sha512-rHqiFh1elqCQ9WPLIC8I0Q/g/wj5J1eMkyoiD6eoQApWHP0FtlK7rqnhmabL5VUY9JQCcqwwvlOaSuutekgyrw== dependencies: - get-own-enumerable-property-symbols "^2.0.1" + get-own-enumerable-property-symbols "^3.0.0" is-obj "^1.0.1" is-regexp "^1.0.0" @@ -10461,15 +10430,15 @@ stylelint-selector-bem-pattern@^2.0.0: stylelint ">=3.0.2" stylelint@>=3.0.2: - version "9.5.0" - resolved "https://registry.yarnpkg.com/stylelint/-/stylelint-9.5.0.tgz#f7afb45342abc4acf28a8da8a48373e9f79c1fb4" - integrity sha512-63R/DGDjMekFwS4xaHSLy26N19pT1Jsxj7u5QNcJrUWBvvPoBCYx3ObINRgsvNMoupzhV7N0PjylxrDHyh4cKQ== + version "9.6.0" + resolved "https://registry.yarnpkg.com/stylelint/-/stylelint-9.6.0.tgz#f0b366f33b6ccf3e5096d60722ed27b6470b41d8" + integrity sha512-Q0UcbFPRiC+3FejNyIBAWbMuKwZNAC0kvZtGQbjwA9LMKDod6xMlBsiIigQxmE3ywpmTeFj3mkG5Jj36EfC7XA== dependencies: autoprefixer "^9.0.0" balanced-match "^1.0.0" chalk "^2.4.1" cosmiconfig "^5.0.0" - debug "^3.0.0" + debug "^4.0.0" execall "^1.0.0" file-entry-cache "^2.0.0" get-stdin "^6.0.0" @@ -10479,7 +10448,8 @@ stylelint@>=3.0.2: ignore "^4.0.0" import-lazy "^3.1.0" imurmurhash "^0.1.4" - known-css-properties "^0.6.0" + known-css-properties "^0.8.0" + leven "^2.1.0" lodash "^4.17.4" log-symbols "^2.0.0" mathml-tag-names "^2.0.1" @@ -10488,28 +10458,28 @@ stylelint@>=3.0.2: normalize-selector "^0.2.0" pify "^4.0.0" postcss "^7.0.0" - postcss-html "^0.33.0" - postcss-jsx "^0.33.0" + postcss-html "^0.34.0" + postcss-jsx "^0.34.0" postcss-less "^2.0.0" - postcss-markdown "^0.33.0" + postcss-markdown "^0.34.0" postcss-media-query-parser "^0.2.3" - postcss-reporter "^5.0.0" + postcss-reporter "^6.0.0" postcss-resolve-nested-selector "^0.1.1" postcss-safe-parser "^4.0.0" postcss-sass "^0.3.0" postcss-scss "^2.0.0" postcss-selector-parser "^3.1.0" - postcss-styled "^0.33.0" - postcss-syntax "^0.33.0" + postcss-styled "^0.34.0" + postcss-syntax "^0.34.0" postcss-value-parser "^3.3.0" resolve-from "^4.0.0" signal-exit "^3.0.2" - specificity "^0.4.0" + specificity "^0.4.1" string-width "^2.1.0" style-search "^0.1.0" sugarss "^2.0.0" svg-tags "^1.0.0" - table "^4.0.1" + table "^5.0.0" stylelint@^8.4.0: version "8.4.0" @@ -10582,7 +10552,7 @@ supports-color@^3.1.2, supports-color@^3.2.3: dependencies: has-flag "^1.0.0" -supports-color@^5.2.0, supports-color@^5.3.0, supports-color@^5.4.0: +supports-color@^5.2.0, supports-color@^5.3.0, supports-color@^5.4.0, supports-color@^5.5.0: version "5.5.0" resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== @@ -10647,7 +10617,7 @@ table@4.0.2: table@^4.0.1: version "4.0.3" - resolved "http://registry.npmjs.org/table/-/table-4.0.3.tgz#00b5e2b602f1794b9acaf9ca908a76386a7813bc" + resolved "https://registry.yarnpkg.com/table/-/table-4.0.3.tgz#00b5e2b602f1794b9acaf9ca908a76386a7813bc" integrity sha512-S7rnFITmBH1EnyKcvxBh1LjYeQMmnZtCXSEbHcH6S0NoKit24ZuFO/T1vDcLdYsLQkM188PVVhQmzKIuThNkKg== dependencies: ajv "^6.0.1" @@ -10657,6 +10627,16 @@ table@^4.0.1: slice-ansi "1.0.0" string-width "^2.1.1" +table@^5.0.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/table/-/table-5.1.0.tgz#69a54644f6f01ad1628f8178715b408dc6bf11f7" + integrity sha512-e542in22ZLhD/fOIuXs/8yDZ9W61ltF8daM88rkRNtgTIct+vI2fTnAyu/Db2TCfEcI8i7mjZz6meLq0nW7TYg== + dependencies: + ajv "^6.5.3" + lodash "^4.17.10" + slice-ansi "1.0.0" + string-width "^2.1.1" + taffydb@2.7.2: version "2.7.2" resolved "https://registry.yarnpkg.com/taffydb/-/taffydb-2.7.2.tgz#7bf8106a5c1a48251b3e3bc0a0e1732489fd0dc8" @@ -10673,16 +10653,16 @@ tapable@^1.0.0, tapable@^1.1.0: integrity sha512-IlqtmLVaZA2qab8epUXbVWRn3aB1imbDMJtjB3nu4X0NqPkcY/JH9ZtCBWKHWPxs8Svi9tyo8w2dBoi07qZbBA== tar-stream@^1.5.2: - version "1.6.1" - resolved "https://registry.yarnpkg.com/tar-stream/-/tar-stream-1.6.1.tgz#f84ef1696269d6223ca48f6e1eeede3f7e81f395" - integrity sha512-IFLM5wp3QrJODQFPm6/to3LJZrONdBY/otxcvDIQzu217zKye6yVR3hhi9lAjrC2Z+m/j5oDxMPb1qcd8cIvpA== + version "1.6.2" + resolved "https://registry.yarnpkg.com/tar-stream/-/tar-stream-1.6.2.tgz#8ea55dab37972253d9a9af90fdcd559ae435c555" + integrity sha512-rzS0heiNf8Xn7/mpdSVVSMAWAoy9bfb1WOTYC78Z0UQKeKa/CWS8FOq0lKGNa8DWKAn9gxjCvMLYc5PGXYlK2A== dependencies: bl "^1.0.0" - buffer-alloc "^1.1.0" + buffer-alloc "^1.2.0" end-of-stream "^1.0.0" fs-constants "^1.0.0" readable-stream "^2.3.0" - to-buffer "^1.1.0" + to-buffer "^1.1.1" xtend "^4.0.0" tar.gz@^1.0.5: @@ -10738,9 +10718,9 @@ test-exclude@^4.2.1: require-main-filename "^1.0.1" text-extensions@^1.0.0: - version "1.8.0" - resolved "https://registry.yarnpkg.com/text-extensions/-/text-extensions-1.8.0.tgz#6f343c62268843019b21a616a003557bdb952d2b" - integrity sha512-mVzjRxuWnDKs/qH1rbOJEVHLlSX9kty9lpi7lMvLgU9S74mQ8/Ozg9UPcKxShh0qG2NZ+NyPOPpcZU4C1Eld9A== + version "1.9.0" + resolved "https://registry.yarnpkg.com/text-extensions/-/text-extensions-1.9.0.tgz#1853e45fee39c945ce6f6c36b2d659b5aabc2a26" + integrity sha512-wiBrwC1EhBelW12Zy26JeOUkQ5mRu+5o8rpsJk5+2t+Y5vE7e842qtZDQ2g1NpX/29HdyFeJ4nSIhI47ENSxlQ== text-table@^0.2.0, text-table@~0.2.0: version "0.2.0" @@ -10781,7 +10761,7 @@ through2@^2.0.0, through2@^2.0.2: through@2, "through@>=2.2.7 <3", through@^2.3.6: version "2.3.8" - resolved "http://registry.npmjs.org/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" + resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" integrity sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU= timed-out@^4.0.0, timed-out@^4.0.1: @@ -10820,7 +10800,7 @@ to-arraybuffer@^1.0.0: resolved "https://registry.yarnpkg.com/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz#7d229b1fcc637e466ca081180836a7aabff83f43" integrity sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M= -to-buffer@^1.1.0: +to-buffer@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/to-buffer/-/to-buffer-1.1.1.tgz#493bd48f62d7c43fcded313a03dcadb2e1213a80" integrity sha512-lx9B5iv7msuFYE3dytT+KE5tap+rNYw+K4jVkb9R/asAb+pbBSM17jtunHplhBe6RRJdZx3Pn2Jph24O32mOVg== @@ -10944,12 +10924,12 @@ type-check@~0.3.2: dependencies: prelude-ls "~1.1.2" -type-detect@^4.0.0: +type-detect@^4.0.0, type-detect@^4.0.5: version "4.0.8" resolved "https://registry.yarnpkg.com/type-detect/-/type-detect-4.0.8.tgz#7646fb5f18871cfbb7749e69bd39a6388eb7450c" integrity sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g== -type-is@~1.6.15, type-is@~1.6.16: +type-is@~1.6.16: version "1.6.16" resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.16.tgz#f89ce341541c672b25ee7ae3c73dee3b2be50194" integrity sha512-HRkVv/5qY2G6I8iab9cI7v1bOIdhm94dVjQCPFElW9W+3GeDOSHmy2EBYe4VTApuzolPcmgFTN3ftVJRKR2J9Q== @@ -11005,9 +10985,9 @@ ultron@~1.1.0: integrity sha512-UIEXBNeYmKptWH6z8ZnqTeS8fV74zG0/eRU9VGkpzz+LIJNs8W/zM/L+7ctCkRrgbNnnR0xxw4bKOr0cW0N0Og== unbzip2-stream@^1.0.9: - version "1.3.0" - resolved "https://registry.yarnpkg.com/unbzip2-stream/-/unbzip2-stream-1.3.0.tgz#745ad5745bc4d8f1ac2eb6fc707cfa51d52ab215" - integrity sha512-kE2WkurNnPUMcryNioS68DDbhoPB8Qxsd8btHSj+sd5Pjh2GsjmeHLzMSqV9HHziAo8FzVxVCJl9ZYhk7yY1pA== + version "1.3.1" + resolved "https://registry.yarnpkg.com/unbzip2-stream/-/unbzip2-stream-1.3.1.tgz#7854da51622a7e63624221196357803b552966a1" + integrity sha512-fIZnvdjblYs7Cru/xC6tCPVhz7JkYcVQQkePwMLyQELzYTds2Xn8QefPVnvdVhhZqubxNA1cASXEH5wcK0Bucw== dependencies: buffer "^3.0.1" through "^2.3.6" @@ -11058,16 +11038,16 @@ uniq@^1.0.1: integrity sha1-sxxa6CVIRKOoKBVBzisEuGWnNP8= unique-filename@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/unique-filename/-/unique-filename-1.1.0.tgz#d05f2fe4032560871f30e93cbe735eea201514f3" - integrity sha1-0F8v5AMlYIcfMOk8vnNe6iAVFPM= + version "1.1.1" + resolved "https://registry.yarnpkg.com/unique-filename/-/unique-filename-1.1.1.tgz#1d69769369ada0583103a1e6ae87681b56573230" + integrity sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ== dependencies: unique-slug "^2.0.0" unique-slug@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/unique-slug/-/unique-slug-2.0.0.tgz#db6676e7c7cc0629878ff196097c78855ae9f4ab" - integrity sha1-22Z258fMBimHj/GWCXx4hVrp9Ks= + version "2.0.1" + resolved "https://registry.yarnpkg.com/unique-slug/-/unique-slug-2.0.1.tgz#5e9edc6d1ce8fb264db18a507ef9bd8544451ca6" + integrity sha512-n9cU6+gITaVu7VGj1Z8feKMmfAjEAQGhwD9fE3zvpRRa0wEIx8ODYkVGfSc94M2OX00tUFV8wH3zYbm1I8mxFg== dependencies: imurmurhash "^0.1.4" @@ -11196,7 +11176,7 @@ utf8@2.1.1: resolved "https://registry.yarnpkg.com/utf8/-/utf8-2.1.1.tgz#2e01db02f7d8d0944f77104f1609eb0c304cf768" integrity sha1-LgHbAvfY0JRPdxBPFgnrDDBM92g= -util-deprecate@~1.0.1: +util-deprecate@^1.0.1, util-deprecate@~1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8= @@ -11664,23 +11644,23 @@ webpack-cli@^2.0.9: yeoman-environment "^2.1.1" yeoman-generator "^2.0.5" -webpack-sources@^1.1.0, webpack-sources@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-1.2.0.tgz#18181e0d013fce096faf6f8e6d41eeffffdceac2" - integrity sha512-9BZwxR85dNsjWz3blyxdOhTgtnQvv3OEs5xofI0wPYTwu5kaWxS08UuD1oI7WLBLpRO+ylf0ofnXLXWmGb2WMw== +webpack-sources@^1.1.0, webpack-sources@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-1.3.0.tgz#2a28dcb9f1f45fe960d8f1493252b5ee6530fa85" + integrity sha512-OiVgSrbGu7NEnEvQJJgdSFPl2qWKkWq5lHMhgiToIiN9w34EBnjYzSYs+VbL5KoYiLNtFFa7BZIKxRED3I32pA== dependencies: source-list-map "^2.0.0" source-map "~0.6.1" webpack@^4.0.1: - version "4.19.0" - resolved "https://registry.yarnpkg.com/webpack/-/webpack-4.19.0.tgz#252296c8af2d21c0994911007defdb3913a7bc66" - integrity sha512-Ak3mMGtA8F1ar4ZP6VCLiICNIPoillROGYstnEd+LzI5Tkvz0qTITeTMcAFjxyYsaxu98F97yrCWdcxRUMPAYw== - dependencies: - "@webassemblyjs/ast" "1.7.6" - "@webassemblyjs/helper-module-context" "1.7.6" - "@webassemblyjs/wasm-edit" "1.7.6" - "@webassemblyjs/wasm-parser" "1.7.6" + version "4.23.1" + resolved "https://registry.yarnpkg.com/webpack/-/webpack-4.23.1.tgz#db7467b116771ae020c58bdfe2a0822785bb8239" + integrity sha512-iE5Cu4rGEDk7ONRjisTOjVHv3dDtcFfwitSxT7evtYj/rANJpt1OuC/Kozh1pBa99AUBr1L/LsaNB+D9Xz3CEg== + dependencies: + "@webassemblyjs/ast" "1.7.10" + "@webassemblyjs/helper-module-context" "1.7.10" + "@webassemblyjs/wasm-edit" "1.7.10" + "@webassemblyjs/wasm-parser" "1.7.10" acorn "^5.6.2" acorn-dynamic-import "^3.0.0" ajv "^6.1.0" @@ -11700,7 +11680,7 @@ webpack@^4.0.1: tapable "^1.1.0" uglifyjs-webpack-plugin "^1.2.4" watchpack "^1.5.0" - webpack-sources "^1.2.0" + webpack-sources "^1.3.0" "websocket@git://github.com/frozeman/WebSocket-Node.git#browserifyCompatible": version "1.0.26" @@ -11712,11 +11692,11 @@ webpack@^4.0.1: yaeti "^0.0.6" whatwg-encoding@^1.0.1, whatwg-encoding@^1.0.3: - version "1.0.4" - resolved "https://registry.yarnpkg.com/whatwg-encoding/-/whatwg-encoding-1.0.4.tgz#63fb016b7435b795d9025632c086a5209dbd2621" - integrity sha512-vM9KWN6MP2mIHZ86ytcyIv7e8Cj3KTfO2nd2c8PFDqcI4bxFmQp83ibq4wadq7rL9l9sZV6o9B0LTt8ygGAAXg== + version "1.0.5" + resolved "https://registry.yarnpkg.com/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz#5abacf777c32166a51d085d6b4f3e7d27113ddb0" + integrity sha512-b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw== dependencies: - iconv-lite "0.4.23" + iconv-lite "0.4.24" whatwg-mimetype@^2.1.0: version "2.2.0" @@ -11801,7 +11781,7 @@ worker-farm@^1.5.2: wrap-ansi@^2.0.0: version "2.1.0" - resolved "http://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz#d8fc3d284dd05794fe84973caecdd1cf824fdd85" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-2.1.0.tgz#d8fc3d284dd05794fe84973caecdd1cf824fdd85" integrity sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU= dependencies: string-width "^1.0.1" @@ -11996,7 +11976,7 @@ yargs@^10.0.3: yargs@^11.1.0: version "11.1.0" - resolved "http://registry.npmjs.org/yargs/-/yargs-11.1.0.tgz#90b869934ed6e871115ea2ff58b03f4724ed2d77" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-11.1.0.tgz#90b869934ed6e871115ea2ff58b03f4724ed2d77" integrity sha512-NwW69J42EsCSanF8kyn5upxvjp5ds+t3+udGBeTbFnERA+lF541DDpMawzo4z6W/QrzNM18D+BPMiOBibnFV5A== dependencies: cliui "^4.0.0" @@ -12014,7 +11994,7 @@ yargs@^11.1.0: yargs@^4.7.1: version "4.8.1" - resolved "http://registry.npmjs.org/yargs/-/yargs-4.8.1.tgz#c0c42924ca4aaa6b0e6da1739dfb216439f9ddc0" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-4.8.1.tgz#c0c42924ca4aaa6b0e6da1739dfb216439f9ddc0" integrity sha1-wMQpJMpKqmsObaFznfshZDn53cA= dependencies: cliui "^3.2.0" @@ -12053,7 +12033,7 @@ yargs@^8.0.1: yargs@~1.2.6: version "1.2.6" - resolved "http://registry.npmjs.org/yargs/-/yargs-1.2.6.tgz#9c7b4a82fd5d595b2bf17ab6dcc43135432fe34b" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-1.2.6.tgz#9c7b4a82fd5d595b2bf17ab6dcc43135432fe34b" integrity sha1-nHtKgv1dWVsr8Xq23MQxNUMv40s= dependencies: minimist "^0.1.0" From 27adecfdb0c3d169a986c8648c36e0e3f1abf8e1 Mon Sep 17 00:00:00 2001 From: Sam Vitello Date: Thu, 25 Oct 2018 16:18:34 -0600 Subject: [PATCH 3/6] chore: update webpack --- package.json | 4 +- yarn.lock | 1152 +++++++++----------------------------------------- 2 files changed, 197 insertions(+), 959 deletions(-) diff --git a/package.json b/package.json index 87e6592..445a1e2 100644 --- a/package.json +++ b/package.json @@ -59,8 +59,8 @@ "jest": "^22.4.2", "kleros-scripts": "^0.4.0", "standard-version": "^4.3.0", - "webpack": "^4.0.1", - "webpack-cli": "^2.0.9" + "webpack": "^4.19.1", + "webpack-cli": "^3.1.2" }, "dependencies": { "axios": "^0.18.0", diff --git a/yarn.lock b/yarn.lock index fd0ade2..f29d44f 100644 --- a/yarn.lock +++ b/yarn.lock @@ -380,18 +380,6 @@ resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-1.1.2.tgz#54c5a964462be3d4d78af631363c18d6fa91ac26" integrity sha512-yprFYuno9FtNsSHVlSWd+nRlmGoAbqbeCwOryP6sC/zoCjhpArcRMYp19EvpSUSizJAlsXEwJv+wcWS9XaXdMw== -"@samverschueren/stream-to-observable@^0.3.0": - version "0.3.0" - resolved "https://registry.yarnpkg.com/@samverschueren/stream-to-observable/-/stream-to-observable-0.3.0.tgz#ecdf48d532c58ea477acfcab80348424f8d0662f" - integrity sha512-MI4Xx6LHs4Webyvi6EbspgyAb4D2Q2VtnCQ1blOJcoLS6mVa8lNN2rkIy1CVxfTUpoyIbCTkXES1rLXztFD1lg== - dependencies: - any-observable "^0.3.0" - -"@sindresorhus/is@^0.7.0": - version "0.7.0" - resolved "https://registry.yarnpkg.com/@sindresorhus/is/-/is-0.7.0.tgz#9a06f4f137ee84d7df0460c1fdb1135ffa6c50fd" - integrity sha512-ONhaKPIufzzrlNbqtWFFd+jlnemX6lJAgq9ZeiZtS7I1PIf/la7CW4m83rTXRnVnsMbW2k56pGYu7AUFJD9Pow== - "@types/node@*", "@types/node@^10.3.2": version "10.12.0" resolved "https://registry.yarnpkg.com/@types/node/-/node-10.12.0.tgz#ea6dcbddbc5b584c83f06c60e82736d8fbb0c235" @@ -702,21 +690,11 @@ ansi-styles@^3.2.0, ansi-styles@^3.2.1: dependencies: color-convert "^1.9.0" -ansi-styles@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-1.0.0.tgz#cb102df1c56f5123eab8b67cd7b98027a0279178" - integrity sha1-yxAt8cVvUSPquLZ817mAJ6AnkXg= - any-observable@^0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/any-observable/-/any-observable-0.2.0.tgz#c67870058003579009083f54ac0abafb5c33d242" integrity sha1-xnhwBYADV5AJCD9UrAq6+1wz0kI= -any-observable@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/any-observable/-/any-observable-0.3.0.tgz#af933475e5806a67d0d7df090dd5e8bef65d119b" - integrity sha512-/FQM1EDkTsf63Ub2C6O7GuYFDsSXUwsaZDurV0np41ocwq0jthUAYCmhBX9f+KwlaCgIuWyr/4WlUQUBfKfZog== - any-promise@1.3.0, any-promise@^1.0.0, any-promise@^1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/any-promise/-/any-promise-1.3.0.tgz#abc6afeedcea52e809cdc0376aed3ce39635d17f" @@ -800,11 +778,6 @@ arr-union@^3.1.0: resolved "https://registry.yarnpkg.com/arr-union/-/arr-union-3.1.0.tgz#e39b09aea9def866a8f206e288af63919bae39c4" integrity sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ= -array-differ@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/array-differ/-/array-differ-1.0.0.tgz#eff52e3758249d33be402b8bb8e564bb2b5d4031" - integrity sha1-7/UuN1gknTO+QCuLuOVkuytdQDE= - array-equal@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/array-equal/-/array-equal-1.0.0.tgz#8c2a5ef2472fd9ea742b04c77a75093ba2757c93" @@ -903,16 +876,6 @@ ast-types-flow@0.0.7, ast-types-flow@^0.0.7: resolved "https://registry.yarnpkg.com/ast-types-flow/-/ast-types-flow-0.0.7.tgz#f70b735c6bca1a5c9c22d982c3e39e7feba3bdad" integrity sha1-9wtzXGvKGlycItmCw+Oef+ujva0= -ast-types@0.10.1: - version "0.10.1" - resolved "https://registry.yarnpkg.com/ast-types/-/ast-types-0.10.1.tgz#f52fca9715579a14f841d67d7f8d25432ab6a3dd" - integrity sha512-UY7+9DPzlJ9VM8eY0b2TUZcZvF+1pO0hzMtAyjBYKhOmnvRlqYNYnWdtsMj0V16CGaMlpL0G1jnLbLo4AyotuQ== - -ast-types@0.11.5: - version "0.11.5" - resolved "https://registry.yarnpkg.com/ast-types/-/ast-types-0.11.5.tgz#9890825d660c03c28339f315e9fa0a360e31ec28" - integrity sha512-oJjo+5e7/vEc2FBK8gUalV0pba4L3VdBIs2EKhOLHLcOd2FgQIVQN9xb0eZ9IjEWyAL7vq6fGJxOvVvdCHNyMw== - astral-regex@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-1.0.0.tgz#6c8c3fb827dd43ee3918f27b82782ab7658a6fd9" @@ -928,12 +891,7 @@ async-limiter@~1.0.0: resolved "https://registry.yarnpkg.com/async-limiter/-/async-limiter-1.0.0.tgz#78faed8c3d074ab81f22b4e985d79e8738f720f8" integrity sha512-jp/uFnooOiO+L211eZOoSyzpOITMXx1rBITauYykG3BRYPu8h0UcxsPNB04RR5vo4Tyz3+ay17tR6JVf9qzYWg== -async@^1.5.0: - version "1.5.2" - resolved "https://registry.yarnpkg.com/async/-/async-1.5.2.tgz#ec6a61ae56480c0c3cb241c95618e20892f9672a" - integrity sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo= - -async@^2.1.4, async@^2.5.0, async@^2.6.0: +async@^2.1.4, async@^2.5.0: version "2.6.1" resolved "https://registry.yarnpkg.com/async/-/async-2.6.1.tgz#b245a23ca71930044ec53fa46aa00a3e87c6a610" integrity sha512-fNEiL2+AZt6AlAw/29Cr0UDe4sRAHCpEHh54WMz+Bb7QfNcFw4h3loofyJpLeQs4Yx7yuqu/2dLgM5hKOs6HlQ== @@ -1281,11 +1239,6 @@ babel-plugin-syntax-async-generators@^6.5.0: resolved "https://registry.yarnpkg.com/babel-plugin-syntax-async-generators/-/babel-plugin-syntax-async-generators-6.13.0.tgz#6bc963ebb16eccbae6b92b596eb7f35c342a8b9a" integrity sha1-a8lj67FuzLrmuStZbrfzXDQqi5o= -babel-plugin-syntax-class-constructor-call@^6.18.0: - version "6.18.0" - resolved "https://registry.yarnpkg.com/babel-plugin-syntax-class-constructor-call/-/babel-plugin-syntax-class-constructor-call-6.18.0.tgz#9cb9d39fe43c8600bec8146456ddcbd4e1a76416" - integrity sha1-nLnTn+Q8hgC+yBRkVt3L1OGnZBY= - babel-plugin-syntax-class-properties@^6.8.0: version "6.13.0" resolved "https://registry.yarnpkg.com/babel-plugin-syntax-class-properties/-/babel-plugin-syntax-class-properties-6.13.0.tgz#d7eb23b79a317f8543962c505b827c7d6cac27de" @@ -1306,16 +1259,6 @@ babel-plugin-syntax-exponentiation-operator@^6.8.0: resolved "https://registry.yarnpkg.com/babel-plugin-syntax-exponentiation-operator/-/babel-plugin-syntax-exponentiation-operator-6.13.0.tgz#9ee7e8337290da95288201a6a57f4170317830de" integrity sha1-nufoM3KQ2pUoggGmpX9BcDF4MN4= -babel-plugin-syntax-export-extensions@^6.8.0: - version "6.13.0" - resolved "https://registry.yarnpkg.com/babel-plugin-syntax-export-extensions/-/babel-plugin-syntax-export-extensions-6.13.0.tgz#70a1484f0f9089a4e84ad44bac353c95b9b12721" - integrity sha1-cKFITw+QiaToStRLrDU8lbmxJyE= - -babel-plugin-syntax-flow@^6.18.0: - version "6.18.0" - resolved "https://registry.yarnpkg.com/babel-plugin-syntax-flow/-/babel-plugin-syntax-flow-6.18.0.tgz#4c3ab20a2af26aa20cd25995c398c4eb70310c8d" - integrity sha1-TDqyCiryaqIM0lmVw5jE63AxDI0= - babel-plugin-syntax-object-rest-spread@^6.13.0, babel-plugin-syntax-object-rest-spread@^6.8.0: version "6.13.0" resolved "https://registry.yarnpkg.com/babel-plugin-syntax-object-rest-spread/-/babel-plugin-syntax-object-rest-spread-6.13.0.tgz#fd6536f2bce13836ffa3a5458c4903a597bb3bf5" @@ -1344,15 +1287,6 @@ babel-plugin-transform-async-to-generator@^6.22.0, babel-plugin-transform-async- babel-plugin-syntax-async-functions "^6.8.0" babel-runtime "^6.22.0" -babel-plugin-transform-class-constructor-call@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-class-constructor-call/-/babel-plugin-transform-class-constructor-call-6.24.1.tgz#80dc285505ac067dcb8d6c65e2f6f11ab7765ef9" - integrity sha1-gNwoVQWsBn3LjWxl4vbxGrd2Xvk= - dependencies: - babel-plugin-syntax-class-constructor-call "^6.18.0" - babel-runtime "^6.22.0" - babel-template "^6.24.1" - babel-plugin-transform-class-properties@^6.24.1: version "6.24.1" resolved "https://registry.yarnpkg.com/babel-plugin-transform-class-properties/-/babel-plugin-transform-class-properties-6.24.1.tgz#6a79763ea61d33d36f37b611aa9def81a81b46ac" @@ -1388,7 +1322,7 @@ babel-plugin-transform-es2015-block-scoped-functions@^6.22.0: dependencies: babel-runtime "^6.22.0" -babel-plugin-transform-es2015-block-scoping@^6.23.0, babel-plugin-transform-es2015-block-scoping@^6.24.1: +babel-plugin-transform-es2015-block-scoping@^6.23.0: version "6.26.0" resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-block-scoping/-/babel-plugin-transform-es2015-block-scoping-6.26.0.tgz#d70f5299c1308d05c12f463813b0a09e73b1895f" integrity sha1-1w9SmcEwjQXBL0Y4E7CgnnOxiV8= @@ -1399,7 +1333,7 @@ babel-plugin-transform-es2015-block-scoping@^6.23.0, babel-plugin-transform-es20 babel-types "^6.26.0" lodash "^4.17.4" -babel-plugin-transform-es2015-classes@^6.23.0, babel-plugin-transform-es2015-classes@^6.24.1: +babel-plugin-transform-es2015-classes@^6.23.0: version "6.24.1" resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-classes/-/babel-plugin-transform-es2015-classes-6.24.1.tgz#5a4c58a50c9c9461e564b4b2a3bfabc97a2584db" integrity sha1-WkxYpQyclGHlZLSyo7+ryXolhNs= @@ -1414,7 +1348,7 @@ babel-plugin-transform-es2015-classes@^6.23.0, babel-plugin-transform-es2015-cla babel-traverse "^6.24.1" babel-types "^6.24.1" -babel-plugin-transform-es2015-computed-properties@^6.22.0, babel-plugin-transform-es2015-computed-properties@^6.24.1: +babel-plugin-transform-es2015-computed-properties@^6.22.0: version "6.24.1" resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-computed-properties/-/babel-plugin-transform-es2015-computed-properties-6.24.1.tgz#6fe2a8d16895d5634f4cd999b6d3480a308159b3" integrity sha1-b+Ko0WiV1WNPTNmZttNICjCBWbM= @@ -1422,14 +1356,14 @@ babel-plugin-transform-es2015-computed-properties@^6.22.0, babel-plugin-transfor babel-runtime "^6.22.0" babel-template "^6.24.1" -babel-plugin-transform-es2015-destructuring@^6.22.0, babel-plugin-transform-es2015-destructuring@^6.23.0: +babel-plugin-transform-es2015-destructuring@^6.23.0: version "6.23.0" resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-destructuring/-/babel-plugin-transform-es2015-destructuring-6.23.0.tgz#997bb1f1ab967f682d2b0876fe358d60e765c56d" integrity sha1-mXux8auWf2gtKwh2/jWNYOdlxW0= dependencies: babel-runtime "^6.22.0" -babel-plugin-transform-es2015-duplicate-keys@^6.22.0, babel-plugin-transform-es2015-duplicate-keys@^6.24.1: +babel-plugin-transform-es2015-duplicate-keys@^6.22.0: version "6.24.1" resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-duplicate-keys/-/babel-plugin-transform-es2015-duplicate-keys-6.24.1.tgz#73eb3d310ca969e3ef9ec91c53741a6f1576423e" integrity sha1-c+s9MQypaePvnskcU3QabxV2Qj4= @@ -1437,14 +1371,14 @@ babel-plugin-transform-es2015-duplicate-keys@^6.22.0, babel-plugin-transform-es2 babel-runtime "^6.22.0" babel-types "^6.24.1" -babel-plugin-transform-es2015-for-of@^6.22.0, babel-plugin-transform-es2015-for-of@^6.23.0: +babel-plugin-transform-es2015-for-of@^6.23.0: version "6.23.0" resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-for-of/-/babel-plugin-transform-es2015-for-of-6.23.0.tgz#f47c95b2b613df1d3ecc2fdb7573623c75248691" integrity sha1-9HyVsrYT3x0+zC/bdXNiPHUkhpE= dependencies: babel-runtime "^6.22.0" -babel-plugin-transform-es2015-function-name@^6.22.0, babel-plugin-transform-es2015-function-name@^6.24.1: +babel-plugin-transform-es2015-function-name@^6.22.0: version "6.24.1" resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-function-name/-/babel-plugin-transform-es2015-function-name-6.24.1.tgz#834c89853bc36b1af0f3a4c5dbaa94fd8eacaa8b" integrity sha1-g0yJhTvDaxrw86TF26qU/Y6sqos= @@ -1479,7 +1413,7 @@ babel-plugin-transform-es2015-modules-commonjs@^6.23.0, babel-plugin-transform-e babel-template "^6.26.0" babel-types "^6.26.0" -babel-plugin-transform-es2015-modules-systemjs@^6.23.0, babel-plugin-transform-es2015-modules-systemjs@^6.24.1: +babel-plugin-transform-es2015-modules-systemjs@^6.23.0: version "6.24.1" resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-systemjs/-/babel-plugin-transform-es2015-modules-systemjs-6.24.1.tgz#ff89a142b9119a906195f5f106ecf305d9407d23" integrity sha1-/4mhQrkRmpBhlfXxBuzzBdlAfSM= @@ -1488,7 +1422,7 @@ babel-plugin-transform-es2015-modules-systemjs@^6.23.0, babel-plugin-transform-e babel-runtime "^6.22.0" babel-template "^6.24.1" -babel-plugin-transform-es2015-modules-umd@^6.23.0, babel-plugin-transform-es2015-modules-umd@^6.24.1: +babel-plugin-transform-es2015-modules-umd@^6.23.0: version "6.24.1" resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-umd/-/babel-plugin-transform-es2015-modules-umd-6.24.1.tgz#ac997e6285cd18ed6176adb607d602344ad38468" integrity sha1-rJl+YoXNGO1hdq22B9YCNErThGg= @@ -1497,7 +1431,7 @@ babel-plugin-transform-es2015-modules-umd@^6.23.0, babel-plugin-transform-es2015 babel-runtime "^6.22.0" babel-template "^6.24.1" -babel-plugin-transform-es2015-object-super@^6.22.0, babel-plugin-transform-es2015-object-super@^6.24.1: +babel-plugin-transform-es2015-object-super@^6.22.0: version "6.24.1" resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-object-super/-/babel-plugin-transform-es2015-object-super-6.24.1.tgz#24cef69ae21cb83a7f8603dad021f572eb278f8d" integrity sha1-JM72muIcuDp/hgPa0CH1cusnj40= @@ -1505,7 +1439,7 @@ babel-plugin-transform-es2015-object-super@^6.22.0, babel-plugin-transform-es201 babel-helper-replace-supers "^6.24.1" babel-runtime "^6.22.0" -babel-plugin-transform-es2015-parameters@^6.23.0, babel-plugin-transform-es2015-parameters@^6.24.1: +babel-plugin-transform-es2015-parameters@^6.23.0: version "6.24.1" resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-parameters/-/babel-plugin-transform-es2015-parameters-6.24.1.tgz#57ac351ab49caf14a97cd13b09f66fdf0a625f2b" integrity sha1-V6w1GrScrxSpfNE7CfZv3wpiXys= @@ -1517,7 +1451,7 @@ babel-plugin-transform-es2015-parameters@^6.23.0, babel-plugin-transform-es2015- babel-traverse "^6.24.1" babel-types "^6.24.1" -babel-plugin-transform-es2015-shorthand-properties@^6.22.0, babel-plugin-transform-es2015-shorthand-properties@^6.24.1: +babel-plugin-transform-es2015-shorthand-properties@^6.22.0: version "6.24.1" resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-shorthand-properties/-/babel-plugin-transform-es2015-shorthand-properties-6.24.1.tgz#24f875d6721c87661bbd99a4622e51f14de38aa0" integrity sha1-JPh11nIch2YbvZmkYi5R8U3jiqA= @@ -1532,7 +1466,7 @@ babel-plugin-transform-es2015-spread@^6.22.0: dependencies: babel-runtime "^6.22.0" -babel-plugin-transform-es2015-sticky-regex@^6.22.0, babel-plugin-transform-es2015-sticky-regex@^6.24.1: +babel-plugin-transform-es2015-sticky-regex@^6.22.0: version "6.24.1" resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-sticky-regex/-/babel-plugin-transform-es2015-sticky-regex-6.24.1.tgz#00c1cdb1aca71112cdf0cf6126c2ed6b457ccdbc" integrity sha1-AMHNsaynERLN8M9hJsLta0V8zbw= @@ -1548,14 +1482,14 @@ babel-plugin-transform-es2015-template-literals@^6.22.0: dependencies: babel-runtime "^6.22.0" -babel-plugin-transform-es2015-typeof-symbol@^6.22.0, babel-plugin-transform-es2015-typeof-symbol@^6.23.0: +babel-plugin-transform-es2015-typeof-symbol@^6.23.0: version "6.23.0" resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-typeof-symbol/-/babel-plugin-transform-es2015-typeof-symbol-6.23.0.tgz#dec09f1cddff94b52ac73d505c84df59dcceb372" integrity sha1-3sCfHN3/lLUqxz1QXITfWdzOs3I= dependencies: babel-runtime "^6.22.0" -babel-plugin-transform-es2015-unicode-regex@^6.22.0, babel-plugin-transform-es2015-unicode-regex@^6.24.1: +babel-plugin-transform-es2015-unicode-regex@^6.22.0: version "6.24.1" resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-unicode-regex/-/babel-plugin-transform-es2015-unicode-regex-6.24.1.tgz#d38b12f42ea7323f729387f18a7c5ae1faeb35e9" integrity sha1-04sS9C6nMj9yk4fxinxa4frrNek= @@ -1573,22 +1507,6 @@ babel-plugin-transform-exponentiation-operator@^6.22.0, babel-plugin-transform-e babel-plugin-syntax-exponentiation-operator "^6.8.0" babel-runtime "^6.22.0" -babel-plugin-transform-export-extensions@^6.22.0: - version "6.22.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-export-extensions/-/babel-plugin-transform-export-extensions-6.22.0.tgz#53738b47e75e8218589eea946cbbd39109bbe653" - integrity sha1-U3OLR+deghhYnuqUbLvTkQm75lM= - dependencies: - babel-plugin-syntax-export-extensions "^6.8.0" - babel-runtime "^6.22.0" - -babel-plugin-transform-flow-strip-types@^6.8.0: - version "6.22.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-flow-strip-types/-/babel-plugin-transform-flow-strip-types-6.22.0.tgz#84cb672935d43714fdc32bce84568d87441cf7cf" - integrity sha1-hMtnKTXUNxT9wyvOhFaNh0Qc988= - dependencies: - babel-plugin-syntax-flow "^6.18.0" - babel-runtime "^6.22.0" - babel-plugin-transform-object-rest-spread@^6.22.0: version "6.26.0" resolved "https://registry.yarnpkg.com/babel-plugin-transform-object-rest-spread/-/babel-plugin-transform-object-rest-spread-6.26.0.tgz#0f36692d50fef6b7e2d4b3ac1478137a963b7b06" @@ -1597,7 +1515,7 @@ babel-plugin-transform-object-rest-spread@^6.22.0: babel-plugin-syntax-object-rest-spread "^6.8.0" babel-runtime "^6.26.0" -babel-plugin-transform-regenerator@^6.22.0, babel-plugin-transform-regenerator@^6.24.1: +babel-plugin-transform-regenerator@^6.22.0: version "6.26.0" resolved "https://registry.yarnpkg.com/babel-plugin-transform-regenerator/-/babel-plugin-transform-regenerator-6.26.0.tgz#e0703696fbde27f0a3efcacf8b4dca2f7b3a8f2f" integrity sha1-4HA2lvveJ/Cj78rPi03KL3s6jy8= @@ -1673,36 +1591,6 @@ babel-preset-env@^1.6.1: invariant "^2.2.2" semver "^5.3.0" -babel-preset-es2015@^6.9.0: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-preset-es2015/-/babel-preset-es2015-6.24.1.tgz#d44050d6bc2c9feea702aaf38d727a0210538939" - integrity sha1-1EBQ1rwsn+6nAqrzjXJ6AhBTiTk= - dependencies: - babel-plugin-check-es2015-constants "^6.22.0" - babel-plugin-transform-es2015-arrow-functions "^6.22.0" - babel-plugin-transform-es2015-block-scoped-functions "^6.22.0" - babel-plugin-transform-es2015-block-scoping "^6.24.1" - babel-plugin-transform-es2015-classes "^6.24.1" - babel-plugin-transform-es2015-computed-properties "^6.24.1" - babel-plugin-transform-es2015-destructuring "^6.22.0" - babel-plugin-transform-es2015-duplicate-keys "^6.24.1" - babel-plugin-transform-es2015-for-of "^6.22.0" - babel-plugin-transform-es2015-function-name "^6.24.1" - babel-plugin-transform-es2015-literals "^6.22.0" - babel-plugin-transform-es2015-modules-amd "^6.24.1" - babel-plugin-transform-es2015-modules-commonjs "^6.24.1" - babel-plugin-transform-es2015-modules-systemjs "^6.24.1" - babel-plugin-transform-es2015-modules-umd "^6.24.1" - babel-plugin-transform-es2015-object-super "^6.24.1" - babel-plugin-transform-es2015-parameters "^6.24.1" - babel-plugin-transform-es2015-shorthand-properties "^6.24.1" - babel-plugin-transform-es2015-spread "^6.22.0" - babel-plugin-transform-es2015-sticky-regex "^6.24.1" - babel-plugin-transform-es2015-template-literals "^6.22.0" - babel-plugin-transform-es2015-typeof-symbol "^6.22.0" - babel-plugin-transform-es2015-unicode-regex "^6.24.1" - babel-plugin-transform-regenerator "^6.24.1" - babel-preset-jest@^22.4.4: version "22.4.4" resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-22.4.4.tgz#ec9fbd8bcd7dfd24b8b5320e0e688013235b7c39" @@ -1711,15 +1599,6 @@ babel-preset-jest@^22.4.4: babel-plugin-jest-hoist "^22.4.4" babel-plugin-syntax-object-rest-spread "^6.13.0" -babel-preset-stage-1@^6.5.0: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-preset-stage-1/-/babel-preset-stage-1-6.24.1.tgz#7692cd7dcd6849907e6ae4a0a85589cfb9e2bfb0" - integrity sha1-dpLNfc1oSZB+auSgqFWJz7niv7A= - dependencies: - babel-plugin-transform-class-constructor-call "^6.24.1" - babel-plugin-transform-export-extensions "^6.22.0" - babel-preset-stage-2 "^6.24.1" - babel-preset-stage-2@^6.24.1: version "6.24.1" resolved "https://registry.yarnpkg.com/babel-preset-stage-2/-/babel-preset-stage-2-6.24.1.tgz#d9e2960fb3d71187f0e64eec62bc07767219bdc1" @@ -1741,7 +1620,7 @@ babel-preset-stage-3@^6.24.1: babel-plugin-transform-exponentiation-operator "^6.24.1" babel-plugin-transform-object-rest-spread "^6.22.0" -babel-register@^6.26.0, babel-register@^6.9.0: +babel-register@^6.26.0: version "6.26.0" resolved "https://registry.yarnpkg.com/babel-register/-/babel-register-6.26.0.tgz#6ed021173e2fcb486d7acb45c6009a856f647071" integrity sha1-btAhFz4vy0htestFxgCahW9kcHE= @@ -1798,7 +1677,7 @@ babel-types@^6.10.2, babel-types@^6.18.0, babel-types@^6.19.0, babel-types@^6.24 lodash "^4.17.4" to-fast-properties "^1.0.3" -babylon@6.18.0, babylon@^6.17.3, babylon@^6.18.0: +babylon@6.18.0, babylon@^6.18.0: version "6.18.0" resolved "https://registry.yarnpkg.com/babylon/-/babylon-6.18.0.tgz#af2f3b88fa6f5c1e4c634d1a0f8eac4f55b395e3" integrity sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ== @@ -1808,11 +1687,6 @@ babylon@7.0.0-beta.44: resolved "https://registry.yarnpkg.com/babylon/-/babylon-7.0.0-beta.44.tgz#89159e15e6e30c5096e22d738d8c0af8a0e8ca1d" integrity sha512-5Hlm13BJVAioCHpImtFqNOF2H3ieTOHd0fmFGMxOJ9jgeFqeAwsv3u5P5cR7CSeFrkgHsT19DgFJkHV0/Mcd8g== -babylon@^7.0.0-beta.47: - version "7.0.0-beta.47" - resolved "https://registry.yarnpkg.com/babylon/-/babylon-7.0.0-beta.47.tgz#6d1fa44f0abec41ab7c780481e62fd9aafbdea80" - integrity sha512-+rq2cr4GDhtToEzKFD6KZZMDBXhjFAr9JjPw9pAppZACeEWqNM294j+NdBzkSHYXwzzBmVjZ3nEVJlOhbR2gOQ== - bail@^1.0.0: version "1.0.3" resolved "https://registry.yarnpkg.com/bail/-/bail-1.0.3.tgz#63cfb9ddbac829b02a3128cd53224be78e6c21a3" @@ -1870,11 +1744,6 @@ binary-extensions@^1.0.0: resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-1.12.0.tgz#c2d780f53d45bba8317a8902d4ceeaf3a6385b14" integrity sha512-DYWGk01lDcxeS/K9IHPGWfT8PsJmbXRtRd2Sx72Tnb8pcYZQFF1oSDb8hJtS1vhp212q1Rzi5dUf9+nq0o9UIg== -binaryextensions@2: - version "2.1.1" - resolved "https://registry.yarnpkg.com/binaryextensions/-/binaryextensions-2.1.1.tgz#3209a51ca4a4ad541a3b8d3d6a6d5b83a2485935" - integrity sha512-XBaoWE9RW8pPdPQNibZsW2zh8TW6gcarXp1FZPwT8Uop8ScSNldJEWf2k9l3HeTqdrEwsOsFcq74RiJECW34yA== - bl@^1.0.0: version "1.2.2" resolved "https://registry.yarnpkg.com/bl/-/bl-1.2.2.tgz#a160911717103c07410cef63ef51b397c025af9c" @@ -2199,19 +2068,6 @@ cache-base@^1.0.1: union-value "^1.0.0" unset-value "^1.0.0" -cacheable-request@^2.1.1: - version "2.1.4" - resolved "https://registry.yarnpkg.com/cacheable-request/-/cacheable-request-2.1.4.tgz#0d808801b6342ad33c91df9d0b44dc09b91e5c3d" - integrity sha1-DYCIAbY0KtM8kd+dC0TcCbkeXD0= - dependencies: - clone-response "1.0.2" - get-stream "3.0.0" - http-cache-semantics "3.8.1" - keyv "3.0.0" - lowercase-keys "1.0.0" - normalize-url "2.0.1" - responselike "1.0.2" - cachedir@^1.1.0: version "1.3.0" resolved "https://registry.yarnpkg.com/cachedir/-/cachedir-1.3.0.tgz#5e01928bf2d95b5edd94b0942188246740e0dbc4" @@ -2327,7 +2183,7 @@ chalk@2.3.1: escape-string-regexp "^1.0.5" supports-color "^5.2.0" -chalk@^2.0.0, chalk@^2.0.1, chalk@^2.1.0, chalk@^2.3.0, chalk@^2.4.1: +chalk@^2.0.0, chalk@^2.0.1, chalk@^2.1.0, chalk@^2.4.1: version "2.4.1" resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.1.tgz#18c49ab16a037b6eb0152cc83e3471338215b66e" integrity sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ== @@ -2336,15 +2192,6 @@ chalk@^2.0.0, chalk@^2.0.1, chalk@^2.1.0, chalk@^2.3.0, chalk@^2.4.1: escape-string-regexp "^1.0.5" supports-color "^5.3.0" -chalk@~0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-0.4.0.tgz#5199a3ddcd0c1efe23bc08c1b027b06176e0c64f" - integrity sha1-UZmj3c0MHv4jvAjBsCewYXbgxk8= - dependencies: - ansi-styles "~1.0.0" - has-color "~0.1.0" - strip-ansi "~0.1.0" - character-entities-html4@^1.0.0: version "1.1.2" resolved "https://registry.yarnpkg.com/character-entities-html4/-/character-entities-html4-1.1.2.tgz#c44fdde3ce66b52e8d321d6c1bf46101f0150610" @@ -2370,11 +2217,6 @@ chardet@^0.4.0: resolved "https://registry.yarnpkg.com/chardet/-/chardet-0.4.2.tgz#b5473b33dc97c424e5d98dc87d55d4d8a29c8bf2" integrity sha1-tUc7M9yXxCTl2Y3IfVXU2KKci/I= -chardet@^0.7.0: - version "0.7.0" - resolved "https://registry.yarnpkg.com/chardet/-/chardet-0.7.0.tgz#90094849f0937f2eedc2425d0d28a9e5f0cbad9e" - integrity sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA== - check-error@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/check-error/-/check-error-1.0.2.tgz#574d312edd88bb5dd8912e9286dd6c0aed4aac82" @@ -2529,13 +2371,6 @@ cli-spinners@^0.1.2: resolved "https://registry.yarnpkg.com/cli-spinners/-/cli-spinners-0.1.2.tgz#bb764d88e185fb9e1e6a2a1f19772318f605e31c" integrity sha1-u3ZNiOGF+54eaiofGXcjGPYF4xw= -cli-table@^0.3.1: - version "0.3.1" - resolved "https://registry.yarnpkg.com/cli-table/-/cli-table-0.3.1.tgz#f53b05266a8b1a0b934b3d0821e6e2dc5914ae23" - integrity sha1-9TsFJmqLGguTSz0IIebi3FkUriM= - dependencies: - colors "1.0.3" - cli-truncate@^0.2.1: version "0.2.1" resolved "https://registry.yarnpkg.com/cli-truncate/-/cli-truncate-0.2.1.tgz#9f15cfbb0705005369216c626ac7d05ab90dd574" @@ -2572,11 +2407,6 @@ cliui@^4.0.0: strip-ansi "^4.0.0" wrap-ansi "^2.0.0" -clone-buffer@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/clone-buffer/-/clone-buffer-1.0.0.tgz#e3e25b207ac4e701af721e2cb5a16792cac3dc58" - integrity sha1-4+JbIHrE5wGvch4staFnksrD3Fg= - clone-regexp@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/clone-regexp/-/clone-regexp-1.0.1.tgz#051805cd33173375d82118fc0918606da39fd60f" @@ -2585,42 +2415,6 @@ clone-regexp@^1.0.0: is-regexp "^1.0.0" is-supported-regexp-flag "^1.0.0" -clone-response@1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/clone-response/-/clone-response-1.0.2.tgz#d1dc973920314df67fbeb94223b4ee350239e96b" - integrity sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws= - dependencies: - mimic-response "^1.0.0" - -clone-stats@^0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/clone-stats/-/clone-stats-0.0.1.tgz#b88f94a82cf38b8791d58046ea4029ad88ca99d1" - integrity sha1-uI+UqCzzi4eR1YBG6kAprYjKmdE= - -clone-stats@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/clone-stats/-/clone-stats-1.0.0.tgz#b3782dff8bb5474e18b9b6bf0fdfe782f8777680" - integrity sha1-s3gt/4u1R04Yuba/D9/ngvh3doA= - -clone@^1.0.0: - version "1.0.4" - resolved "https://registry.yarnpkg.com/clone/-/clone-1.0.4.tgz#da309cc263df15994c688ca902179ca3c7cd7c7e" - integrity sha1-2jCcwmPfFZlMaIypAheco8fNfH4= - -clone@^2.1.1: - version "2.1.2" - resolved "https://registry.yarnpkg.com/clone/-/clone-2.1.2.tgz#1b7f4b9f591f1e8f83670401600345a02887435f" - integrity sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18= - -cloneable-readable@^1.0.0: - version "1.1.2" - resolved "https://registry.yarnpkg.com/cloneable-readable/-/cloneable-readable-1.1.2.tgz#d591dee4a8f8bc15da43ce97dceeba13d43e2a65" - integrity sha512-Bq6+4t+lbM8vhTs/Bef5c5AdEMtapp/iFb6+s4/Hh9MVTt8OLKH7ZOOZSCT+Ys7hsHvqv0GuMPJ1lnQJVHvxpg== - dependencies: - inherits "^2.0.1" - process-nextick-args "^2.0.0" - readable-stream "^2.3.5" - co@^4.6.0: version "4.6.0" resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184" @@ -2666,16 +2460,6 @@ color-name@1.1.3: resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU= -colors@1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/colors/-/colors-1.0.3.tgz#0433f44d809680fdeb60ed260f1b0c262e82a40b" - integrity sha1-BDP0TYCWgP3rYO0mDxsMJi6CpAs= - -colors@^1.1.2: - version "1.3.2" - resolved "https://registry.yarnpkg.com/colors/-/colors-1.3.2.tgz#2df8ff573dfbf255af562f8ce7181d6b971a359b" - integrity sha512-rhP0JSBGYvpcNQj4s5AdShMeE5ahMop96cTeDl/v9qQQm2fYClE2QXZRi8wLzc+GmXSxdIqqbOIAhyObEXDbfQ== - combined-stream@^1.0.6, combined-stream@~1.0.6: version "1.0.7" resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.7.tgz#2d1d24317afb8abe95d6d2c0b07b57813539d828" @@ -2992,7 +2776,7 @@ copy-descriptor@^0.1.0: resolved "https://registry.yarnpkg.com/copy-descriptor/-/copy-descriptor-0.1.1.tgz#676f6eb3c39997c2ee1ac3a924fd6124748f578d" integrity sha1-Z29us8OZl8LuGsOpJP1hJHSPV40= -core-js@^2.4.0, core-js@^2.4.1, core-js@^2.5.0: +core-js@^2.4.0, core-js@^2.5.0: version "2.5.7" resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.5.7.tgz#f972608ff0cead68b841a16a932d0b183791814e" integrity sha512-RszJCAxg/PP6uzXVXL6BsxSXx/B05oJAQ2vkJRjyjrEcNVycaqOmNb5OTxZPE3xa5gwZduqza6L9JOCenh/Ecw== @@ -3099,7 +2883,7 @@ cross-spawn@^5.0.1, cross-spawn@^5.1.0: shebang-command "^1.2.0" which "^1.2.9" -cross-spawn@^6.0.4, cross-spawn@^6.0.5: +cross-spawn@^6.0.0, cross-spawn@^6.0.4, cross-spawn@^6.0.5: version "6.0.5" resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-6.0.5.tgz#4a5ec7c64dfae22c3a14124dbacdee846d80cbc4" integrity sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ== @@ -3197,11 +2981,6 @@ dargs@^4.0.1: dependencies: number-is-nan "^1.0.0" -dargs@^5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/dargs/-/dargs-5.1.0.tgz#ec7ea50c78564cd36c9d5ec18f66329fade27829" - integrity sha1-7H6lDHhWTNNsnV7Bj2Yyn63ieCk= - dashdash@^1.12.0: version "1.14.1" resolved "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0" @@ -3228,7 +3007,7 @@ date-now@^0.1.4: resolved "https://registry.yarnpkg.com/date-now/-/date-now-0.1.4.tgz#eaf439fd4d4848ad74e5cc7dbef200672b9e345b" integrity sha1-6vQ5/U1ISK105cx9vvIAZyueNFs= -dateformat@^3.0.0, dateformat@^3.0.3: +dateformat@^3.0.0: version "3.0.3" resolved "https://registry.yarnpkg.com/dateformat/-/dateformat-3.0.3.tgz#a6e37499a4d9a9cf85ef5872044d62901c9889ae" integrity sha512-jyCETtSl3VMZMWeRo7iY1FL19ges1t55hMo5yaam4Jrsm5EPL89UQkoQRyiI+Yf4k8r2ZpdngkV8hr1lIdjb3Q== @@ -3274,6 +3053,13 @@ decamelize@^1.1.0, decamelize@^1.1.1, decamelize@^1.1.2: resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" integrity sha1-9lNNFRSCabIDUue+4m9QH5oZEpA= +decamelize@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-2.0.0.tgz#656d7bbc8094c4c788ea53c5840908c9c7d063c7" + integrity sha512-Ikpp5scV3MSYxY39ymh45ZLEecsTdv/Xj2CaQfI8RLMuwi7XvjX9H/fhraiSuU+C5w5NTDu4ZU72xNiZnurBPg== + dependencies: + xregexp "4.0.0" + decode-uri-component@^0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.0.tgz#eb3913333458775cb84cd1a1fae062106bb87545" @@ -3448,11 +3234,6 @@ destroy@~1.0.4: resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.0.4.tgz#978857442c44749e4206613e37946205826abd80" integrity sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA= -detect-conflict@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/detect-conflict/-/detect-conflict-1.0.1.tgz#088657a66a961c05019db7c4230883b1c6b4176e" - integrity sha1-CIZXpmqWHAUBnbfEIwiDsca0F24= - detect-file@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/detect-file/-/detect-file-0.1.0.tgz#4935dedfd9488648e006b0129566e9386711ea63" @@ -3486,7 +3267,7 @@ detect-newline@^2.1.0: resolved "https://registry.yarnpkg.com/detect-newline/-/detect-newline-2.1.0.tgz#f41f1c10be4b00e87b5f13da680759f2c5bfd3e2" integrity sha1-9B8cEL5LAOh7XxPaaAdZ8sW/0+I= -diff@^3.2.0, diff@^3.5.0: +diff@^3.2.0: version "3.5.0" resolved "https://registry.yarnpkg.com/diff/-/diff-3.5.0.tgz#800c0dd1e0a8bfbc95835c202ad220fe317e5a12" integrity sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA== @@ -3638,21 +3419,11 @@ ecc-jsbn@~0.1.1: jsbn "~0.1.0" safer-buffer "^2.1.0" -editions@^1.3.3: - version "1.3.4" - resolved "https://registry.yarnpkg.com/editions/-/editions-1.3.4.tgz#3662cb592347c3168eb8e498a0ff73271d67f50b" - integrity sha512-gzao+mxnYDzIysXKMQi/+M1mjy/rjestjg6OPoYTtI+3Izp23oiGZitsl9lPDPiTGXbcSIk1iJWhliSaglxnUg== - ee-first@1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" integrity sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0= -ejs@^2.5.9: - version "2.6.1" - resolved "https://registry.yarnpkg.com/ejs/-/ejs-2.6.1.tgz#498ec0d495655abc6f23cd61868d926464071aa0" - integrity sha512-0xy4A/twfrRCnkhfk8ErDi5DqdAsAqeGxht4xkCUrsvhhbQNs7E+4jV0CN7+NKIY0aHE72+XvqtBIXzD31ZbXQ== - electron-to-chromium@^1.3.30, electron-to-chromium@^1.3.47, electron-to-chromium@^1.3.81: version "1.3.82" resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.82.tgz#7d13ae4437d2a783de3f4efba96b186c540b67b1" @@ -3715,7 +3486,7 @@ end-of-stream@^1.0.0, end-of-stream@^1.1.0: dependencies: once "^1.4.0" -enhanced-resolve@^4.0.0, enhanced-resolve@^4.1.0: +enhanced-resolve@^4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-4.1.0.tgz#41c7e0bfdfe74ac1ffe1e57ad6a5c6c9f3742a7f" integrity sha512-F/7vkyTtyc/llOIn8oWclcB25KdRaiPBpZYDgJHgh/UHtpgT2p2eldQgtQnLtUvfMKPKxbRaQM/hHkvLHt1Vng== @@ -3734,11 +3505,6 @@ entities@^1.1.1, entities@~1.1.1: resolved "https://registry.yarnpkg.com/entities/-/entities-1.1.2.tgz#bdfa735299664dfafd34529ed4f8522a275fea56" integrity sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w== -envinfo@^5.7.0: - version "5.10.0" - resolved "https://registry.yarnpkg.com/envinfo/-/envinfo-5.10.0.tgz#503a9774ae15b93ea68bdfae2ccd6306624ea6df" - integrity sha512-rXbzXWvnQxy+TcqZlARbWVQwgGVVouVJgFZhLVN5htjLxl1thstrP2ZGi0pXC309AbK7gVOPU+ulz/tmpCI7iw== - errno@^0.1.3, errno@~0.1.7: version "0.1.7" resolved "https://registry.yarnpkg.com/errno/-/errno-0.1.7.tgz#4684d71779ad39af177e3f007996f7c67c852618" @@ -3753,14 +3519,6 @@ error-ex@^1.2.0, error-ex@^1.3.1: dependencies: is-arrayish "^0.2.1" -error@^7.0.2: - version "7.0.2" - resolved "https://registry.yarnpkg.com/error/-/error-7.0.2.tgz#a5f75fff4d9926126ddac0ea5dc38e689153cb02" - integrity sha1-pfdf/02ZJhJt2sDqXcOOaJFTywI= - dependencies: - string-template "~0.2.1" - xtend "~4.0.0" - es-abstract@^1.5.1, es-abstract@^1.7.0: version "1.12.0" resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.12.0.tgz#9dbbdd27c6856f0001421ca18782d786bf8a6165" @@ -4130,7 +3888,7 @@ esprima@^3.1.3: resolved "https://registry.yarnpkg.com/esprima/-/esprima-3.1.3.tgz#fdca51cee6133895e3c88d535ce49dbff62a4633" integrity sha1-/cpRzuYTOJXjyI1TXOSdv/YqRjM= -esprima@^4.0.0, esprima@~4.0.0: +esprima@^4.0.0: version "4.0.1" resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== @@ -4250,6 +4008,19 @@ exec-sh@^0.2.0: dependencies: merge "^1.2.0" +execa@^0.10.0: + version "0.10.0" + resolved "https://registry.yarnpkg.com/execa/-/execa-0.10.0.tgz#ff456a8f53f90f8eccc71a96d11bdfc7f082cb50" + integrity sha512-7XOMnz8Ynx1gGo/3hyV9loYNPWM94jG3+3T3Y8tsfSstFmETmENCMU/A/zj8Lyaj1lkgEepKepvd6240tBRvlw== + dependencies: + cross-spawn "^6.0.0" + get-stream "^3.0.0" + is-stream "^1.1.0" + npm-run-path "^2.0.0" + p-finally "^1.0.0" + signal-exit "^3.0.0" + strip-eof "^1.0.0" + execa@^0.7.0: version "0.7.0" resolved "https://registry.yarnpkg.com/execa/-/execa-0.7.0.tgz#944becd34cc41ee32a63a9faf27ad5a65fc59777" @@ -4327,13 +4098,6 @@ expand-tilde@^1.2.2: dependencies: os-homedir "^1.0.1" -expand-tilde@^2.0.0, expand-tilde@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/expand-tilde/-/expand-tilde-2.0.2.tgz#97e801aa052df02454de46b02bf621642cdc8502" - integrity sha1-l+gBqgUt8CRU3kawK/YhZCzchQI= - dependencies: - homedir-polyfill "^1.0.1" - expect@^22.4.0: version "22.4.3" resolved "https://registry.yarnpkg.com/expect/-/expect-22.4.3.tgz#d5a29d0a0e1fb2153557caef2674d4547e914674" @@ -4411,7 +4175,7 @@ external-editor@^1.1.0: spawn-sync "^1.0.15" tmp "^0.0.29" -external-editor@^2.0.1, external-editor@^2.0.4, external-editor@^2.1.0: +external-editor@^2.0.1, external-editor@^2.0.4: version "2.2.0" resolved "https://registry.yarnpkg.com/external-editor/-/external-editor-2.2.0.tgz#045511cfd8d133f3846673d1047c154e214ad3d5" integrity sha512-bSn6gvGxKt+b7+6TKEv1ZycHleA7aHhRHyAqJyp5pbUFuYYNIzpZnQDk7AsYckyWdEnTeAnay0aCy2aV6iTk9A== @@ -4420,15 +4184,6 @@ external-editor@^2.0.1, external-editor@^2.0.4, external-editor@^2.1.0: iconv-lite "^0.4.17" tmp "^0.0.33" -external-editor@^3.0.0: - version "3.0.3" - resolved "https://registry.yarnpkg.com/external-editor/-/external-editor-3.0.3.tgz#5866db29a97826dbe4bf3afd24070ead9ea43a27" - integrity sha512-bn71H9+qWoOQKyZDo25mOMVpSmXROAsTJVVVYzrrtol3d4y+AsKjf4Iwl2Q+IuT0kFSQ1qo166UuIwqYq7mGnA== - dependencies: - chardet "^0.7.0" - iconv-lite "^0.4.24" - tmp "^0.0.33" - extglob@^0.3.1: version "0.3.2" resolved "https://registry.yarnpkg.com/extglob/-/extglob-0.3.2.tgz#2e18ff3d2f49ab2765cec9023f011daa8d8349a1" @@ -4638,6 +4393,13 @@ find-up@^2.0.0, find-up@^2.1.0: dependencies: locate-path "^2.0.0" +find-up@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-3.0.0.tgz#49169f1d7993430646da61ecc5ae355c21c97b73" + integrity sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg== + dependencies: + locate-path "^3.0.0" + findup-sync@0.4.2: version "0.4.2" resolved "https://registry.yarnpkg.com/findup-sync/-/findup-sync-0.4.2.tgz#a8117d0f73124f5a4546839579fe52d7129fb5e5" @@ -4648,13 +4410,6 @@ findup-sync@0.4.2: micromatch "^2.3.7" resolve-dir "^0.1.0" -first-chunk-stream@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/first-chunk-stream/-/first-chunk-stream-2.0.0.tgz#1bdecdb8e083c0664b91945581577a43a9f31d70" - integrity sha1-G97NuOCDwGZLkZRVgVd6Q6nzHXA= - dependencies: - readable-stream "^2.0.2" - flat-cache@^1.2.1: version "1.3.0" resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-1.3.0.tgz#d3030b32b38154f4e3b7e9c709f490f7ef97c481" @@ -4665,11 +4420,6 @@ flat-cache@^1.2.1: graceful-fs "^4.1.2" write "^0.2.1" -flow-parser@^0.*: - version "0.84.0" - resolved "https://registry.yarnpkg.com/flow-parser/-/flow-parser-0.84.0.tgz#4b1ec75c3d0fa50e6d43e7214b7dfb5c7d17d80b" - integrity sha512-SzbETNQrYZ/cOpzxn2yH3eLPNxPABbIrtQ3IaitfMue6r/NA0xXNxoW6MSpaGtgQMmOHPgQyJ0ElNQ2hsZkUuQ== - flush-write-stream@^1.0.0: version "1.0.3" resolved "https://registry.yarnpkg.com/flush-write-stream/-/flush-write-stream-1.0.3.tgz#c5d586ef38af6097650b49bc41b55fabb19f35bd" @@ -4735,7 +4485,7 @@ fresh@0.5.2: resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7" integrity sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac= -from2@^2.1.0, from2@^2.1.1: +from2@^2.1.0: version "2.3.0" resolved "https://registry.yarnpkg.com/from2/-/from2-2.3.0.tgz#8bfb5502bde4a4d36cfdeea007fcca21d7e382af" integrity sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8= @@ -4924,11 +4674,6 @@ get-stdin@^6.0.0: resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-6.0.0.tgz#9e09bf712b360ab9225e812048f71fde9c89657b" integrity sha512-jp4tHawyV7+fkkSKyvjuLZswblUtz+SQKzSWnBbii16BuZksJlU1wuBYXY75r+duh/llF1ur6oNwi+2ZzjKZ7g== -get-stream@3.0.0, get-stream@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-3.0.0.tgz#8e943d1358dc37555054ecbe2edb05aa174ede14" - integrity sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ= - get-stream@^2.2.0: version "2.3.1" resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-2.3.1.tgz#5f38f93f346009666ee0150a054167f91bdd95de" @@ -4937,6 +4682,11 @@ get-stream@^2.2.0: object-assign "^4.0.1" pinkie-promise "^2.0.0" +get-stream@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-3.0.0.tgz#8e943d1358dc37555054ecbe2edb05aa174ede14" + integrity sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ= + get-value@^2.0.3, get-value@^2.0.6: version "2.0.6" resolved "https://registry.yarnpkg.com/get-value/-/get-value-2.0.6.tgz#dc15ca1c672387ca76bd37ac0a395ba2042a2c28" @@ -4949,14 +4699,6 @@ getpass@^0.1.1: dependencies: assert-plus "^1.0.0" -gh-got@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/gh-got/-/gh-got-6.0.0.tgz#d74353004c6ec466647520a10bd46f7299d268d0" - integrity sha512-F/mS+fsWQMo1zfgG9MD8KWvTWPPzzhuVwY++fhQ5Ggd+0P+CAMHtzMZhNxG+TqGfHDChJKsbh6otfMGqO2AKBw== - dependencies: - got "^7.0.0" - is-plain-obj "^1.1.0" - git-raw-commits@^1.3.0, git-raw-commits@^1.3.6: version "1.3.6" resolved "https://registry.yarnpkg.com/git-raw-commits/-/git-raw-commits-1.3.6.tgz#27c35a32a67777c1ecd412a239a6c19d71b95aff" @@ -4991,21 +4733,6 @@ gitconfiglocal@^1.0.0: dependencies: ini "^1.3.2" -github-username@^4.0.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/github-username/-/github-username-4.1.0.tgz#cbe280041883206da4212ae9e4b5f169c30bf417" - integrity sha1-y+KABBiDIG2kISrp5LXxacML9Bc= - dependencies: - gh-got "^6.0.0" - -glob-all@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/glob-all/-/glob-all-3.1.0.tgz#8913ddfb5ee1ac7812656241b03d5217c64b02ab" - integrity sha1-iRPd+17hrHgSZWJBsD1SF8ZLAqs= - dependencies: - glob "^7.0.5" - yargs "~1.2.6" - glob-base@^0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/glob-base/-/glob-base-0.3.0.tgz#dbb164f6221b1c0b1ccf82aea328b497df0ea3c4" @@ -5065,6 +4792,11 @@ global-dirs@^0.1.0: dependencies: ini "^1.3.4" +global-modules-path@^2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/global-modules-path/-/global-modules-path-2.3.0.tgz#b0e2bac6beac39745f7db5c59d26a36a0b94f7dc" + integrity sha512-HchvMJNYh9dGSCy8pOQ2O8u/hoXaL+0XhnrwH0RyLiSXMMTl9W3N6KUU73+JFOg5PGjtzl6VZzUQsnrpm7Szag== + global-modules@^0.2.3: version "0.2.3" resolved "https://registry.yarnpkg.com/global-modules/-/global-modules-0.2.3.tgz#ea5a3bed42c6d6ce995a4f8a1269b5dae223828d" @@ -5073,15 +4805,6 @@ global-modules@^0.2.3: global-prefix "^0.1.4" is-windows "^0.2.0" -global-modules@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/global-modules/-/global-modules-1.0.0.tgz#6d770f0eb523ac78164d72b5e71a8877265cc3ea" - integrity sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg== - dependencies: - global-prefix "^1.0.1" - is-windows "^1.0.1" - resolve-dir "^1.0.0" - global-prefix@^0.1.4: version "0.1.5" resolved "https://registry.yarnpkg.com/global-prefix/-/global-prefix-0.1.5.tgz#8d3bc6b8da3ca8112a160d8d496ff0462bfef78f" @@ -5092,17 +4815,6 @@ global-prefix@^0.1.4: is-windows "^0.2.0" which "^1.2.12" -global-prefix@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/global-prefix/-/global-prefix-1.0.2.tgz#dbf743c6c14992593c655568cb66ed32c0122ebe" - integrity sha1-2/dDxsFJklk8ZVVoy2btMsASLr4= - dependencies: - expand-tilde "^2.0.2" - homedir-polyfill "^1.0.1" - ini "^1.3.4" - is-windows "^1.0.1" - which "^1.2.14" - global@~4.3.0: version "4.3.2" resolved "https://registry.yarnpkg.com/global/-/global-4.3.2.tgz#e76989268a6c74c38908b1305b10fc0e394e9d0f" @@ -5133,7 +4845,7 @@ globby@^5.0.0: pify "^2.0.0" pinkie-promise "^2.0.0" -globby@^7.0.0, globby@^7.1.1: +globby@^7.0.0: version "7.1.1" resolved "https://registry.yarnpkg.com/globby/-/globby-7.1.1.tgz#fb2ccff9401f8600945dfada97440cca972b8680" integrity sha1-+yzP+UAfhgCUXfral0QMypcrhoA= @@ -5145,7 +4857,7 @@ globby@^7.0.0, globby@^7.1.1: pify "^3.0.0" slash "^1.0.0" -globby@^8.0.0, globby@^8.0.1: +globby@^8.0.0: version "8.0.1" resolved "https://registry.yarnpkg.com/globby/-/globby-8.0.1.tgz#b5ad48b8aa80b35b814fc1281ecc851f1d2b5b50" integrity sha512-oMrYrJERnKBLXNLVTqhm3vPEdJ/b2ZE28xN4YARiix1NOIOBPEpOUnm844K1iu/BkphCaf2WNFwMszv8Soi1pw== @@ -5170,7 +4882,7 @@ gonzales-pe@^4.0.3, gonzales-pe@^4.2.3: dependencies: minimist "1.1.x" -got@7.1.0, got@^7.0.0, got@^7.1.0: +got@7.1.0, got@^7.1.0: version "7.1.0" resolved "https://registry.yarnpkg.com/got/-/got-7.1.0.tgz#05450fd84094e6bbea56f451a43a9c289166385a" integrity sha512-Y5WMo7xKKq1muPsxD+KmrR8DH5auG7fBdDVueZwETwV6VytKyU9OX/ddpq2/1hp1vIPvVb4T81dKQz3BivkNLw== @@ -5190,29 +4902,6 @@ got@7.1.0, got@^7.0.0, got@^7.1.0: url-parse-lax "^1.0.0" url-to-options "^1.0.1" -got@^8.3.1: - version "8.3.2" - resolved "https://registry.yarnpkg.com/got/-/got-8.3.2.tgz#1d23f64390e97f776cac52e5b936e5f514d2e937" - integrity sha512-qjUJ5U/hawxosMryILofZCkm3C84PLJS/0grRIpjAwu+Lkxxj5cxeCU25BG0/3mDSpXKTyZr8oh8wIgLaH0QCw== - dependencies: - "@sindresorhus/is" "^0.7.0" - cacheable-request "^2.1.1" - decompress-response "^3.3.0" - duplexer3 "^0.1.4" - get-stream "^3.0.0" - into-stream "^3.1.0" - is-retry-allowed "^1.1.0" - isurl "^1.0.0-alpha5" - lowercase-keys "^1.0.0" - mimic-response "^1.0.0" - p-cancelable "^0.4.0" - p-timeout "^2.0.1" - pify "^3.0.0" - safe-buffer "^5.1.1" - timed-out "^4.0.1" - url-parse-lax "^3.0.0" - url-to-options "^1.0.1" - graceful-fs@^4.1.10, graceful-fs@^4.1.11, graceful-fs@^4.1.2, graceful-fs@^4.1.3, graceful-fs@^4.1.4, graceful-fs@^4.1.6, graceful-fs@^4.1.9: version "4.1.11" resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.1.11.tgz#0e8bdfe4d1ddb8854d64e04ea7c00e2a026e5658" @@ -5223,13 +4912,6 @@ graceful-fs@^4.1.10, graceful-fs@^4.1.11, graceful-fs@^4.1.2, graceful-fs@^4.1.3 resolved "https://registry.yarnpkg.com/graceful-readlink/-/graceful-readlink-1.0.1.tgz#4cafad76bc62f02fa039b2f94e9a3dd3a391a725" integrity sha1-TK+tdrxi8C+gObL5Tpo906ORpyU= -grouped-queue@^0.3.3: - version "0.3.3" - resolved "https://registry.yarnpkg.com/grouped-queue/-/grouped-queue-0.3.3.tgz#c167d2a5319c5a0e0964ef6a25b7c2df8996c85c" - integrity sha1-wWfSpTGcWg4JZO9qJbfC34mWyFw= - dependencies: - lodash "^4.17.2" - "growl@~> 1.10.0": version "1.10.5" resolved "https://registry.yarnpkg.com/growl/-/growl-1.10.5.tgz#f2735dc2283674fa67478b10181059355c369e5e" @@ -5271,11 +4953,6 @@ has-ansi@^2.0.0: dependencies: ansi-regex "^2.0.0" -has-color@~0.1.0: - version "0.1.7" - resolved "https://registry.yarnpkg.com/has-color/-/has-color-0.1.7.tgz#67144a5260c34fc3cca677d041daf52fe7b78b2f" - integrity sha1-ZxRKUmDDT8PMpnfQQdr1L+e3iy8= - has-flag@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-1.0.0.tgz#9d9e793165ce017a00f00418c43f942a7b1d11fa" @@ -5387,7 +5064,7 @@ home-or-tmp@^2.0.0: os-homedir "^1.0.0" os-tmpdir "^1.0.1" -homedir-polyfill@^1.0.0, homedir-polyfill@^1.0.1: +homedir-polyfill@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/homedir-polyfill/-/homedir-polyfill-1.0.1.tgz#4c2bbc8a758998feebf5ed68580f76d46768b4bc" integrity sha1-TCu8inWJmP7r9e1oWA921GdotLw= @@ -5434,11 +5111,6 @@ htmlparser2@~3.8.1: entities "1.0" readable-stream "1.1" -http-cache-semantics@3.8.1: - version "3.8.1" - resolved "https://registry.yarnpkg.com/http-cache-semantics/-/http-cache-semantics-3.8.1.tgz#39b0e16add9b605bf0a9ef3d9daaf4843b4cacd2" - integrity sha512-5ai2iksyV8ZXmnZhHH4rWPoxxistEexSi5936zIQ1bnNTW5VnA85B6P/VpXiRM017IgRvb2kKo1a//y+0wSp3w== - http-errors@1.6.3, http-errors@~1.6.2, http-errors@~1.6.3: version "1.6.3" resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.6.3.tgz#8b55680bb4be283a0b5bf4ea2e38580be1d9320d" @@ -5492,7 +5164,7 @@ iconv-lite@0.4.23: dependencies: safer-buffer ">= 2.1.2 < 3" -iconv-lite@0.4.24, iconv-lite@^0.4.17, iconv-lite@^0.4.24, iconv-lite@^0.4.4, iconv-lite@~0.4.13: +iconv-lite@0.4.24, iconv-lite@^0.4.17, iconv-lite@^0.4.4, iconv-lite@~0.4.13: version "0.4.24" resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== @@ -5546,6 +5218,14 @@ import-local@^1.0.0: pkg-dir "^2.0.0" resolve-cwd "^2.0.0" +import-local@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/import-local/-/import-local-2.0.0.tgz#55070be38a5993cf18ef6db7e961f5bee5c5a09d" + integrity sha512-b6s04m3O+s3CGSbqDIyP4R6aAwAeYlVq9+WUWep6iHa8ETRf9yei1U48C5MmfJmV9AiLYYBKPMq/W+/WRpQmCQ== + dependencies: + pkg-dir "^3.0.0" + resolve-cwd "^2.0.0" + import-modules@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/import-modules/-/import-modules-1.1.0.tgz#748db79c5cc42bb9701efab424f894e72600e9dc" @@ -5683,57 +5363,11 @@ inquirer@^3.0.6: strip-ansi "^4.0.0" through "^2.3.6" -inquirer@^5.2.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-5.2.0.tgz#db350c2b73daca77ff1243962e9f22f099685726" - integrity sha512-E9BmnJbAKLPGonz0HeWHtbKf+EeSP93paWO3ZYoUpq/aowXvYGjjCSuashhXPpzbArIjBbji39THkxTz9ZeEUQ== - dependencies: - ansi-escapes "^3.0.0" - chalk "^2.0.0" - cli-cursor "^2.1.0" - cli-width "^2.0.0" - external-editor "^2.1.0" - figures "^2.0.0" - lodash "^4.3.0" - mute-stream "0.0.7" - run-async "^2.2.0" - rxjs "^5.5.2" - string-width "^2.1.0" - strip-ansi "^4.0.0" - through "^2.3.6" - -inquirer@^6.0.0: - version "6.2.0" - resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-6.2.0.tgz#51adcd776f661369dc1e894859c2560a224abdd8" - integrity sha512-QIEQG4YyQ2UYZGDC4srMZ7BjHOmNk1lR2JQj5UknBapklm6WHA+VVH7N+sUdX3A7NeCfGF8o4X1S3Ao7nAcIeg== - dependencies: - ansi-escapes "^3.0.0" - chalk "^2.0.0" - cli-cursor "^2.1.0" - cli-width "^2.0.0" - external-editor "^3.0.0" - figures "^2.0.0" - lodash "^4.17.10" - mute-stream "0.0.7" - run-async "^2.2.0" - rxjs "^6.1.0" - string-width "^2.1.0" - strip-ansi "^4.0.0" - through "^2.3.6" - interpret@^1.0.0, interpret@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.1.0.tgz#7ed1b1410c6a0e0f78cf95d3b8440c63f78b8614" integrity sha1-ftGxQQxqDg94z5XTuEQMY/eLhhQ= -into-stream@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/into-stream/-/into-stream-3.1.0.tgz#96fb0a936c12babd6ff1752a17d05616abd094c6" - integrity sha1-lvsKk2wSur1v8XUqF9BWFqvQlMY= - dependencies: - from2 "^2.1.1" - p-is-promise "^1.1.0" - invariant@^2.2.0, invariant@^2.2.2: version "2.2.4" resolved "https://registry.yarnpkg.com/invariant/-/invariant-2.2.4.tgz#610f3c92c9359ce1db616e538008d23ff35158e6" @@ -5746,6 +5380,11 @@ invert-kv@^1.0.0: resolved "https://registry.yarnpkg.com/invert-kv/-/invert-kv-1.0.0.tgz#104a8e4aaca6d3d8cd157a8ef8bfab2d7a3ffdb6" integrity sha1-EEqOSqym09jNFXqO+L+rLXo//bY= +invert-kv@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/invert-kv/-/invert-kv-2.0.0.tgz#7393f5afa59ec9ff5f67a27620d11c226e3eec02" + integrity sha512-wPVv/y/QQ/Uiirj/vh3oP+1Ww+AWehmi1g5fFWGPF6IpCBCDVrhgHRMvrLfdYcwDh3QJbGXDW4JAuzxElLSqKA== + ipaddr.js@1.8.0: version "1.8.0" resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.8.0.tgz#eaa33d6ddd7ace8f7f6fe0c9ca0440e706738b1e" @@ -6001,13 +5640,6 @@ is-observable@^0.2.0: dependencies: symbol-observable "^0.2.2" -is-observable@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/is-observable/-/is-observable-1.1.0.tgz#b3e986c8f44de950867cab5403f5a3465005975e" - integrity sha512-NqCa4Sa2d+u7BWc6CukaObG3Fh+CU9bvixbpcXYhy2VvYS7vVGIdAgnIS5Ks3A/cqk4rebLJ9s8zBstT2aKnIA== - dependencies: - symbol-observable "^1.1.0" - is-path-cwd@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/is-path-cwd/-/is-path-cwd-1.0.0.tgz#d225ec23132e89edd38fda767472e62e65f1106d" @@ -6027,7 +5659,7 @@ is-path-inside@^1.0.0: dependencies: path-is-inside "^1.0.1" -is-plain-obj@^1.0.0, is-plain-obj@^1.1.0: +is-plain-obj@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-1.1.0.tgz#71a50c8429dfca773c92a390a4a03b39fcd51d3e" integrity sha1-caUMhCnfync8kqOQpKA7OfzVHT4= @@ -6071,18 +5703,11 @@ is-resolvable@^1.0.0: resolved "https://registry.yarnpkg.com/is-resolvable/-/is-resolvable-1.1.0.tgz#fb18f87ce1feb925169c9a407c19318a3206ed88" integrity sha512-qgDYXFSR5WvEfuS5dMj6oTMEbrrSaM0CrFk2Yiq/gXnBvD9pMa2jGXxyhGLfvhZpuMZe18CJpFxAt3CRs42NMg== -is-retry-allowed@^1.0.0, is-retry-allowed@^1.1.0: +is-retry-allowed@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/is-retry-allowed/-/is-retry-allowed-1.1.0.tgz#11a060568b67339444033d0125a61a20d564fb34" integrity sha1-EaBgVotnM5REAz0BJaYaINVk+zQ= -is-scoped@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-scoped/-/is-scoped-1.0.0.tgz#449ca98299e713038256289ecb2b540dc437cb30" - integrity sha1-RJypgpnnEwOCViieyytUDcQ3yzA= - dependencies: - scoped-regex "^1.0.0" - is-stream@^1.0.0, is-stream@^1.0.1, is-stream@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" @@ -6132,7 +5757,7 @@ is-windows@^0.2.0: resolved "https://registry.yarnpkg.com/is-windows/-/is-windows-0.2.0.tgz#de1aa6d63ea29dd248737b69f1ff8b8002d2108c" integrity sha1-3hqm1j6indJIc3tp8f+LgALSEIw= -is-windows@^1.0.0, is-windows@^1.0.1, is-windows@^1.0.2: +is-windows@^1.0.0, is-windows@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/is-windows/-/is-windows-1.0.2.tgz#d1850eb9791ecd18e6182ce12a30f396634bb19d" integrity sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA== @@ -6152,13 +5777,6 @@ isarray@1.0.0, isarray@^1.0.0, isarray@~1.0.0: resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" integrity sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE= -isbinaryfile@^3.0.2: - version "3.0.3" - resolved "https://registry.yarnpkg.com/isbinaryfile/-/isbinaryfile-3.0.3.tgz#5d6def3edebf6e8ca8cae9c30183a804b5f8be80" - integrity sha512-8cJBL5tTd2OS0dM4jz07wQd5g0dCCqIhUxPIGtZfa5L6hWlvV5MHTITy/DBAsF+Oe2LS1X3krBUhNwaGUWpWxw== - dependencies: - buffer-alloc "^1.2.0" - isexe@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" @@ -6251,15 +5869,6 @@ istanbul-reports@^1.5.1: dependencies: handlebars "^4.0.3" -istextorbinary@^2.2.1: - version "2.2.1" - resolved "https://registry.yarnpkg.com/istextorbinary/-/istextorbinary-2.2.1.tgz#a5231a08ef6dd22b268d0895084cf8d58b5bec53" - integrity sha512-TS+hoFl8Z5FAFMK38nhBkdLt44CclNRgDHWeMgsV8ko3nDlr/9UI2Sf839sW7enijf8oKsZYXRvM8g0it9Zmcw== - dependencies: - binaryextensions "2" - editions "^1.3.3" - textextensions "2" - isurl@^1.0.0-alpha5: version "1.0.0" resolved "https://registry.yarnpkg.com/isurl/-/isurl-1.0.0.tgz#b27f4f49f3cdaa3ea44a0a5b7f3462e6edc39d67" @@ -6615,48 +6224,6 @@ jsbn@~0.1.0: resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513" integrity sha1-peZUwuWi3rXyAdls77yoDA7y9RM= -jscodeshift@^0.4.0: - version "0.4.1" - resolved "https://registry.yarnpkg.com/jscodeshift/-/jscodeshift-0.4.1.tgz#da91a1c2eccfa03a3387a21d39948e251ced444a" - integrity sha512-iOX6If+hsw0q99V3n31t4f5VlD1TQZddH08xbT65ZqA7T4Vkx68emrDZMUOLVvCEAJ6NpAk7DECe3fjC/t52AQ== - dependencies: - async "^1.5.0" - babel-plugin-transform-flow-strip-types "^6.8.0" - babel-preset-es2015 "^6.9.0" - babel-preset-stage-1 "^6.5.0" - babel-register "^6.9.0" - babylon "^6.17.3" - colors "^1.1.2" - flow-parser "^0.*" - lodash "^4.13.1" - micromatch "^2.3.7" - node-dir "0.1.8" - nomnom "^1.8.1" - recast "^0.12.5" - temp "^0.8.1" - write-file-atomic "^1.2.0" - -jscodeshift@^0.5.0: - version "0.5.1" - resolved "https://registry.yarnpkg.com/jscodeshift/-/jscodeshift-0.5.1.tgz#4af6a721648be8638ae1464a190342da52960c33" - integrity sha512-sRMollbhbmSDrR79JMAnhEjyZJlQQVozeeY9A6/KNuV26DNcuB3mGSCWXp0hks9dcwRNOELbNOiwraZaXXRk5Q== - dependencies: - babel-plugin-transform-flow-strip-types "^6.8.0" - babel-preset-es2015 "^6.9.0" - babel-preset-stage-1 "^6.5.0" - babel-register "^6.9.0" - babylon "^7.0.0-beta.47" - colors "^1.1.2" - flow-parser "^0.*" - lodash "^4.13.1" - micromatch "^2.3.7" - neo-async "^2.5.0" - node-dir "0.1.8" - nomnom "^1.8.1" - recast "^0.15.0" - temp "^0.8.1" - write-file-atomic "^1.2.0" - jsdom@^11.5.1: version "11.12.0" resolved "https://registry.yarnpkg.com/jsdom/-/jsdom-11.12.0.tgz#1a80d40ddd378a1de59656e9e6dc5a3ba8657bc8" @@ -6725,11 +6292,6 @@ jsesc@~0.5.0: resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-0.5.0.tgz#e7dee66e35d6fc16f710fe91d5cf69f70f08911d" integrity sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0= -json-buffer@3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/json-buffer/-/json-buffer-3.0.0.tgz#5b1f397afc75d677bde8bcfc0e47e1f9a3d9a898" - integrity sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg= - json-parse-better-errors@^1.0.1, json-parse-better-errors@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz#bb867cfb3450e69107c131d1c514bab3dc8bcaa9" @@ -6821,13 +6383,6 @@ keccakjs@^0.2.1: browserify-sha3 "^0.0.1" sha3 "^1.1.0" -keyv@3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/keyv/-/keyv-3.0.0.tgz#44923ba39e68b12a7cec7df6c3268c031f2ef373" - integrity sha512-eguHnq22OE3uVoSYG0LVWNP+4ppamWr9+zWBe1bsNcovIMy6huUJFPgy4mGwCd/rnl3vOLGW1MTlu4c57CT1xA== - dependencies: - json-buffer "3.0.0" - kind-of@^3.0.2, kind-of@^3.0.3, kind-of@^3.2.0: version "3.2.2" resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.2.tgz#31ea21a734bab9bbb0f32466d893aea51e4a3c64" @@ -6917,6 +6472,13 @@ lcid@^1.0.0: dependencies: invert-kv "^1.0.0" +lcid@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/lcid/-/lcid-2.0.0.tgz#6ef5d2df60e52f82eb228a4c373e8d1f397253cf" + integrity sha512-avPEb8P8EGnwXKClwsNUgryVjllcRqtMYa49NTsbQagYuT1DcXnl1915oxWjoyGrXR6zH/Y0Zc96xWsPcoDKeA== + dependencies: + invert-kv "^2.0.0" + lcov-parse@^0.0.10: version "0.0.10" resolved "https://registry.yarnpkg.com/lcov-parse/-/lcov-parse-0.0.10.tgz#1b0b8ff9ac9c7889250582b70b71315d9da6d9a3" @@ -7018,21 +6580,6 @@ listr@^0.13.0: stream-to-observable "^0.2.0" strip-ansi "^3.0.1" -listr@^0.14.1: - version "0.14.2" - resolved "https://registry.yarnpkg.com/listr/-/listr-0.14.2.tgz#cbe44b021100a15376addfc2d79349ee430bfe14" - integrity sha512-vmaNJ1KlGuGWShHI35X/F8r9xxS0VTHh9GejVXwSN20fG5xpq3Jh4bJbnumoT6q5EDM/8/YP1z3YMtQbFmhuXw== - dependencies: - "@samverschueren/stream-to-observable" "^0.3.0" - is-observable "^1.1.0" - is-promise "^2.1.0" - is-stream "^1.1.0" - listr-silent-renderer "^1.1.1" - listr-update-renderer "^0.4.0" - listr-verbose-renderer "^0.4.0" - p-map "^1.1.1" - rxjs "^6.1.0" - load-json-file@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-1.1.0.tgz#956905708d58b4bab4c2261b04f59f31c99374c0" @@ -7086,6 +6633,14 @@ locate-path@^2.0.0: p-locate "^2.0.0" path-exists "^3.0.0" +locate-path@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-3.0.0.tgz#dbec3b3ab759758071b58fe59fc41871af21400e" + integrity sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A== + dependencies: + p-locate "^3.0.0" + path-exists "^3.0.0" + lodash._reinterpolate@~3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz#0ccf2d89166af03b3663c796538b75ac6e114d9d" @@ -7236,7 +6791,7 @@ lodash@4.17.5: resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.5.tgz#99a92d65c0272debe8c96b6057bc8fbfa3bed511" integrity sha512-svL3uiZf1RwhH+cWrfZn3A4+U58wbP0tGVTLQPbjplZxZ8ROD9VLuNgsRniTlLe7OlSqR79RUehXgpBW/s0IQw== -lodash@>=3.10.0, lodash@^4.1.0, lodash@^4.13.1, lodash@^4.15.0, lodash@^4.17.10, lodash@^4.17.2, lodash@^4.17.4, lodash@^4.17.5, lodash@^4.2.0, lodash@^4.2.1, lodash@^4.3.0, lodash@^4.5.1: +lodash@>=3.10.0, lodash@^4.1.0, lodash@^4.13.1, lodash@^4.15.0, lodash@^4.17.10, lodash@^4.17.4, lodash@^4.17.5, lodash@^4.2.0, lodash@^4.2.1, lodash@^4.3.0, lodash@^4.5.1: version "4.17.11" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.11.tgz#b39ea6229ef607ecd89e2c8df12536891cac9b8d" integrity sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg== @@ -7258,7 +6813,7 @@ log-symbols@^1.0.2: dependencies: chalk "^1.0.0" -log-symbols@^2.0.0, log-symbols@^2.2.0: +log-symbols@^2.0.0: version "2.2.0" resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-2.2.0.tgz#5740e1c5d6f0dfda4ad9323b5332107ef6b4c40a" integrity sha512-VeIAFslyIerEJLXHziedo2basKbMKtTw3vfn5IzG0XTjhAVEJyNHnL2p7vc+wBDSdQuUpNw3M2u6xb9QsAY5Eg== @@ -7298,11 +6853,6 @@ loud-rejection@^1.0.0: currently-unhandled "^0.4.1" signal-exit "^3.0.0" -lowercase-keys@1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-1.0.0.tgz#4e3366b39e7f5457e35f1324bdf6f88d0bfc7306" - integrity sha1-TjNms55/VFfjXxMkvfb4jQv8cwY= - lowercase-keys@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-1.0.1.tgz#6f9e30b47084d971a7c820ff15a6c5167b74c26f" @@ -7316,7 +6866,7 @@ lru-cache@^4.0.1, lru-cache@^4.1.1: pseudomap "^1.0.2" yallist "^2.1.2" -make-dir@^1.0.0, make-dir@^1.1.0: +make-dir@^1.0.0: version "1.3.0" resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-1.3.0.tgz#79c1033b80515bd6d24ec9933e860ca75ee27f0c" integrity sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ== @@ -7330,6 +6880,13 @@ makeerror@1.0.x: dependencies: tmpl "1.0.x" +map-age-cleaner@^0.1.1: + version "0.1.2" + resolved "https://registry.yarnpkg.com/map-age-cleaner/-/map-age-cleaner-0.1.2.tgz#098fb15538fd3dbe461f12745b0ca8568d4e3f74" + integrity sha512-UN1dNocxQq44IhJyMI4TU8phc2m9BddacHRPRjKGLYaF0jqd3xLz0jS0skpAU9WgYyoR4gHtUpzytNBS385FWQ== + dependencies: + p-defer "^1.0.0" + map-cache@^0.2.2: version "0.2.2" resolved "https://registry.yarnpkg.com/map-cache/-/map-cache-0.2.2.tgz#c32abd0bd6525d9b051645bb4f26ac5dc98a0dbf" @@ -7398,32 +6955,6 @@ media-typer@0.3.0: resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" integrity sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g= -mem-fs-editor@^4.0.0: - version "4.0.3" - resolved "https://registry.yarnpkg.com/mem-fs-editor/-/mem-fs-editor-4.0.3.tgz#d282a0c4e0d796e9eff9d75661f25f68f389af53" - integrity sha512-tgWmwI/+6vwu6POan82dTjxEpwAoaj0NAFnghtVo/FcLK2/7IhPUtFUUYlwou4MOY6OtjTUJtwpfH1h+eSUziw== - dependencies: - commondir "^1.0.1" - deep-extend "^0.6.0" - ejs "^2.5.9" - glob "^7.0.3" - globby "^7.1.1" - isbinaryfile "^3.0.2" - mkdirp "^0.5.0" - multimatch "^2.0.0" - rimraf "^2.2.8" - through2 "^2.0.0" - vinyl "^2.0.1" - -mem-fs@^1.1.0: - version "1.1.3" - resolved "https://registry.yarnpkg.com/mem-fs/-/mem-fs-1.1.3.tgz#b8ae8d2e3fcb6f5d3f9165c12d4551a065d989cc" - integrity sha1-uK6NLj/Lb10/kWXBLUVRoGXZicw= - dependencies: - through2 "^2.0.0" - vinyl "^1.1.0" - vinyl-file "^2.0.0" - mem@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/mem/-/mem-1.1.0.tgz#5edd52b485ca1d900fe64895505399a0dfa45f76" @@ -7431,6 +6962,15 @@ mem@^1.1.0: dependencies: mimic-fn "^1.0.0" +mem@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/mem/-/mem-4.0.0.tgz#6437690d9471678f6cc83659c00cbafcd6b0cdaf" + integrity sha512-WQxG/5xYc3tMbYLXoXPm81ET2WDULiU5FxbuIoNbJqLOOI8zehXFdZuiUEgfdrU2mVB1pxBZUGlYORSrpuJreA== + dependencies: + map-age-cleaner "^0.1.1" + mimic-fn "^1.0.0" + p-is-promise "^1.1.0" + memory-fs@^0.4.0, memory-fs@~0.4.1: version "0.4.1" resolved "https://registry.yarnpkg.com/memory-fs/-/memory-fs-0.4.1.tgz#3a9a20b8462523e447cfbc7e8bb80ed667bfc552" @@ -7659,11 +7199,6 @@ minimist@1.2.0, minimist@^1.1.0, minimist@^1.1.1, minimist@^1.1.3, minimist@^1.2 resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284" integrity sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ= -minimist@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.1.0.tgz#99df657a52574c21c9057497df742790b2b4c0de" - integrity sha1-md9lelJXTCHJBXSX33QnkLK0wN4= - minimist@~0.0.1: version "0.0.10" resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.10.tgz#de3f98543dbf96082be48ad1a0c7cda836301dcf" @@ -7767,16 +7302,6 @@ multihashes@^0.4.14: bs58 "^4.0.1" varint "^5.0.0" -multimatch@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/multimatch/-/multimatch-2.1.0.tgz#9c7906a22fb4c02919e2f5f75161b4cdbd4b2a2b" - integrity sha1-nHkGoi+0wCkZ4vX3UWG0zb1LKis= - dependencies: - array-differ "^1.0.0" - array-union "^1.0.1" - arrify "^1.0.0" - minimatch "^3.0.0" - mute-stream@0.0.5: version "0.0.5" resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.5.tgz#8fbfabb0a98a253d3184331f9e8deb7372fac6c0" @@ -7877,11 +7402,6 @@ nock@^10.0.0: qs "^6.5.1" semver "^5.5.0" -node-dir@0.1.8: - version "0.1.8" - resolved "https://registry.yarnpkg.com/node-dir/-/node-dir-0.1.8.tgz#55fb8deb699070707fb67f91a460f0448294c77d" - integrity sha1-VfuN62mQcHB/tn+RpGDwRIKUx30= - node-fetch@1.6.3: version "1.6.3" resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-1.6.3.tgz#dc234edd6489982d58e8f0db4f695029abcd8c04" @@ -7962,14 +7482,6 @@ node-releases@^1.0.0-alpha.15: dependencies: semver "^5.3.0" -nomnom@^1.8.1: - version "1.8.1" - resolved "https://registry.yarnpkg.com/nomnom/-/nomnom-1.8.1.tgz#2151f722472ba79e50a76fc125bb8c8f2e4dc2a7" - integrity sha1-IVH3Ikcrp55Qp2/BJbuMjy5Nwqc= - dependencies: - chalk "~0.4.0" - underscore "~1.6.0" - nopt@^4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/nopt/-/nopt-4.0.1.tgz#d0d4685afd5415193c8c7505602d0d17cd64474d" @@ -8010,15 +7522,6 @@ normalize-selector@^0.2.0: resolved "https://registry.yarnpkg.com/normalize-selector/-/normalize-selector-0.2.0.tgz#d0b145eb691189c63a78d201dc4fdb1293ef0c03" integrity sha1-0LFF62kRicY6eNIB3E/bEpPvDAM= -normalize-url@2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-2.0.1.tgz#835a9da1551fa26f70e92329069a23aa6574d7e6" - integrity sha512-D6MUW4K/VzoJ4rJ01JFKxDrtY1v9wrgzCX5f2qj/lzH1m/lW6MhUZFKerVsnyjOhOsYzI9Kqqak+10l4LvLpMw== - dependencies: - prepend-http "^2.0.0" - query-string "^5.0.1" - sort-keys "^2.0.0" - npm-bundled@^1.0.1: version "1.0.5" resolved "https://registry.yarnpkg.com/npm-bundled/-/npm-bundled-1.0.5.tgz#3c1732b7ba936b3a10325aef616467c0ccbcc979" @@ -8268,6 +7771,15 @@ os-locale@^2.0.0: lcid "^1.0.0" mem "^1.1.0" +os-locale@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/os-locale/-/os-locale-3.0.1.tgz#3b014fbf01d87f60a1e5348d80fe870dc82c4620" + integrity sha512-7g5e7dmXPtzcP4bgsZ8ixDVqA7oWYuEz4lOSujeWyliPai4gfVDiFIcwBg3aGCPnmSGfzOKTK3ccPn0CKv3DBw== + dependencies: + execa "^0.10.0" + lcid "^2.0.0" + mem "^4.0.0" + os-shim@^0.1.2: version "0.1.3" resolved "https://registry.yarnpkg.com/os-shim/-/os-shim-0.1.3.tgz#6b62c3791cf7909ea35ed46e17658bb417cb3917" @@ -8300,17 +7812,10 @@ p-cancelable@^0.3.0: resolved "https://registry.yarnpkg.com/p-cancelable/-/p-cancelable-0.3.0.tgz#b9e123800bcebb7ac13a479be195b507b98d30fa" integrity sha512-RVbZPLso8+jFeq1MfNvgXtCRED2raz/dKpacfTNxsx6pLEpEomM7gah6VeHSYV3+vo0OAi4MkArtQcWWXuQoyw== -p-cancelable@^0.4.0: - version "0.4.1" - resolved "https://registry.yarnpkg.com/p-cancelable/-/p-cancelable-0.4.1.tgz#35f363d67d52081c8d9585e37bcceb7e0bbcb2a0" - integrity sha512-HNa1A8LvB1kie7cERyy21VNeHb2CWJJYqyyC2o3klWFfMGlFmWv2Z7sFgZH8ZiaYL95ydToKTFVXgMV/Os0bBQ== - -p-each-series@^1.0.0: +p-defer@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/p-each-series/-/p-each-series-1.0.0.tgz#930f3d12dd1f50e7434457a22cd6f04ac6ad7f71" - integrity sha1-kw89Et0fUOdDRFeiLNbwSsatf3E= - dependencies: - p-reduce "^1.0.0" + resolved "https://registry.yarnpkg.com/p-defer/-/p-defer-1.0.0.tgz#9f6eb182f6c9aa8cd743004a7d4f96b196b0fb0c" + integrity sha1-n26xgvbJqozXQwBKfU+WsZaw+ww= p-finally@^1.0.0: version "1.0.0" @@ -8322,11 +7827,6 @@ p-is-promise@^1.1.0: resolved "https://registry.yarnpkg.com/p-is-promise/-/p-is-promise-1.1.0.tgz#9c9456989e9f6588017b0434d56097675c3da05e" integrity sha1-nJRWmJ6fZYgBewQ01WCXZ1w9oF4= -p-lazy@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/p-lazy/-/p-lazy-1.0.0.tgz#ec53c802f2ee3ac28f166cc82d0b2b02de27a835" - integrity sha1-7FPIAvLuOsKPFmzILQsrAt4nqDU= - p-limit@^1.1.0: version "1.3.0" resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-1.3.0.tgz#b86bd5f0c25690911c7590fcbfc2010d54b3ccb8" @@ -8334,6 +7834,13 @@ p-limit@^1.1.0: dependencies: p-try "^1.0.0" +p-limit@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.0.0.tgz#e624ed54ee8c460a778b3c9f3670496ff8a57aec" + integrity sha512-fl5s52lI5ahKCernzzIyAP0QAZbGIovtVHGwpcu1Jr/EpzLVDI2myISHwGqK7m8uQFugVWSrbxH7XnhGtvEc+A== + dependencies: + p-try "^2.0.0" + p-locate@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-2.0.0.tgz#20a0103b222a70c8fd39cc2e580680f3dde5ec43" @@ -8341,16 +7848,18 @@ p-locate@^2.0.0: dependencies: p-limit "^1.1.0" +p-locate@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-3.0.0.tgz#322d69a05c0264b25997d9f40cd8a891ab0064a4" + integrity sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ== + dependencies: + p-limit "^2.0.0" + p-map@^1.1.1: version "1.2.0" resolved "https://registry.yarnpkg.com/p-map/-/p-map-1.2.0.tgz#e4e94f311eabbc8633a1e79908165fca26241b6b" integrity sha512-r6zKACMNhjPJMTl8KcFH4li//gkrXWfbD6feV8l6doRHlzljFWGJ2AP6iKaCJXyZmAUMOPtvbW7EXkbWO/pLEA== -p-reduce@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/p-reduce/-/p-reduce-1.0.0.tgz#18c2b0dd936a4690a529f8231f58a0fdb6a47dfa" - integrity sha1-GMKw3ZNqRpClKfgjH1ig/bakffo= - p-timeout@^1.1.1: version "1.2.1" resolved "https://registry.yarnpkg.com/p-timeout/-/p-timeout-1.2.1.tgz#5eb3b353b7fce99f101a1038880bb054ebbea386" @@ -8358,18 +7867,16 @@ p-timeout@^1.1.1: dependencies: p-finally "^1.0.0" -p-timeout@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/p-timeout/-/p-timeout-2.0.1.tgz#d8dd1979595d2dc0139e1fe46b8b646cb3cdf038" - integrity sha512-88em58dDVB/KzPEx1X0N3LwFfYZPyDc4B6eF38M1rk9VTZMbxXXgjugz8mmwpS9Ox4BDZ+t6t3QP5+/gazweIA== - dependencies: - p-finally "^1.0.0" - p-try@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/p-try/-/p-try-1.0.0.tgz#cbc79cdbaf8fd4228e13f621f2b1a237c1b207b3" integrity sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M= +p-try@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.0.0.tgz#85080bb87c64688fa47996fe8f7dfbe8211760b1" + integrity sha512-hMp0onDKIajHfIkdRk3P4CdCmErkYAxxDtP3Wx/4nZ3aGlau2VKh3mZpcuFkH27WQkL/3WBCPOktzA9ZOAnMQQ== + pad-right@^0.2.2: version "0.2.2" resolved "https://registry.yarnpkg.com/pad-right/-/pad-right-0.2.2.tgz#6fbc924045d244f2a2a244503060d3bfc6009774" @@ -8628,6 +8135,13 @@ pkg-dir@^2.0.0: dependencies: find-up "^2.1.0" +pkg-dir@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-3.0.0.tgz#2749020f239ed990881b1f71210d51eb6523bea3" + integrity sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw== + dependencies: + find-up "^3.0.0" + pluralize@^7.0.0: version "7.0.0" resolved "https://registry.yarnpkg.com/pluralize/-/pluralize-7.0.0.tgz#298b89df8b93b0221dbf421ad2b1b1ea23fc6777" @@ -8843,26 +8357,16 @@ prepend-http@^1.0.1: resolved "https://registry.yarnpkg.com/prepend-http/-/prepend-http-1.0.4.tgz#d4f4562b0ce3696e41ac52d0e002e57a635dc6dc" integrity sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw= -prepend-http@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/prepend-http/-/prepend-http-2.0.0.tgz#e92434bfa5ea8c19f41cdfd401d741a3c819d897" - integrity sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc= - preserve@^0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/preserve/-/preserve-0.2.0.tgz#815ed1f6ebc65926f865b310c0713bcb3315ce4b" integrity sha1-gV7R9uvGWSb4ZbMQwHE7yzMVzks= -prettier@^1.10.2, prettier@^1.12.1: +prettier@^1.10.2: version "1.14.3" resolved "https://registry.yarnpkg.com/prettier/-/prettier-1.14.3.tgz#90238dd4c0684b7edce5f83b0fb7328e48bd0895" integrity sha512-qZDVnCrnpsRJJq5nSsiHCE3BYMED2OtsI+cmzIzF1QIfqm5ALf8tEJcO27zV1gKNKRPdhjO0dNWnrzssDQ1tFg== -pretty-bytes@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/pretty-bytes/-/pretty-bytes-4.0.2.tgz#b2bf82e7350d65c6c33aa95aaa5a4f6327f61cd9" - integrity sha1-sr+C5zUNZcbDOqlaqlpPYyf2HNk= - pretty-format@^21.2.1: version "21.2.1" resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-21.2.1.tgz#ae5407f3cf21066cd011aa1ba5fce7b6a2eddb36" @@ -8879,12 +8383,12 @@ pretty-format@^22.4.0, pretty-format@^22.4.3: ansi-regex "^3.0.0" ansi-styles "^3.2.0" -private@^0.1.6, private@^0.1.8, private@~0.1.5: +private@^0.1.6, private@^0.1.8: version "0.1.8" resolved "https://registry.yarnpkg.com/private/-/private-0.1.8.tgz#2381edb3689f7a53d653190060fcf822d2f368ff" integrity sha512-VvivMrbvd2nKkiG38qjULzlc+4Vx4wm/whI9pQD35YrARNnhxeiRktSOhSukRLFNlzg6Br/cJPet5J/u19r/mg== -process-nextick-args@^2.0.0, process-nextick-args@~2.0.0: +process-nextick-args@~2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.0.tgz#a37d732f4271b4ab1ad070d35508e8290788ffaa" integrity sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw== @@ -9082,14 +8586,6 @@ rc@^1.2.7: minimist "^1.2.0" strip-json-comments "~2.0.1" -read-chunk@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/read-chunk/-/read-chunk-2.1.0.tgz#6a04c0928005ed9d42e1a6ac5600e19cbc7ff655" - integrity sha1-agTAkoAF7Z1C4aasVgDhnLx/9lU= - dependencies: - pify "^3.0.0" - safe-buffer "^5.1.1" - read-pkg-up@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-1.0.1.tgz#9d63c13276c065918d57f002a57f40a1b643fb02" @@ -9198,27 +8694,6 @@ realpath-native@^1.0.0: dependencies: util.promisify "^1.0.0" -recast@^0.12.5: - version "0.12.9" - resolved "https://registry.yarnpkg.com/recast/-/recast-0.12.9.tgz#e8e52bdb9691af462ccbd7c15d5a5113647a15f1" - integrity sha512-y7ANxCWmMW8xLOaiopiRDlyjQ9ajKRENBH+2wjntIbk3A6ZR1+BLQttkmSHMY7Arl+AAZFwJ10grg2T6f1WI8A== - dependencies: - ast-types "0.10.1" - core-js "^2.4.1" - esprima "~4.0.0" - private "~0.1.5" - source-map "~0.6.1" - -recast@^0.15.0: - version "0.15.5" - resolved "https://registry.yarnpkg.com/recast/-/recast-0.15.5.tgz#6871177ee26720be80d7624e4283d5c855a5cb0b" - integrity sha512-nkAYNqarh73cMWRKFiPQ8I9dOLFvFk6SnG8u/LUlOYfArDOD/EjsVRAs860TlBLrpxqAXHGET/AUAVjdEymL5w== - dependencies: - ast-types "0.11.5" - esprima "~4.0.0" - private "~0.1.5" - source-map "~0.6.1" - rechoir@^0.6.2: version "0.6.2" resolved "https://registry.yarnpkg.com/rechoir/-/rechoir-0.6.2.tgz#85204b54dba82d5742e28c96756ef43af50e3384" @@ -9436,12 +8911,7 @@ repeating@^2.0.0: dependencies: is-finite "^1.0.0" -replace-ext@0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/replace-ext/-/replace-ext-0.0.1.tgz#29bbd92078a739f0bcce2b4ee41e837953522924" - integrity sha1-KbvZIHinOfC8zitO5B6DeVNSKSQ= - -replace-ext@1.0.0, replace-ext@^1.0.0: +replace-ext@1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/replace-ext/-/replace-ext-1.0.0.tgz#de63128373fcbf7c3ccfa4de5a480c45a67958eb" integrity sha1-3mMSg3P8v3w8z6TeWkgMRaZ5WOs= @@ -9531,14 +9001,6 @@ resolve-dir@^0.1.0: expand-tilde "^1.2.2" global-modules "^0.2.3" -resolve-dir@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/resolve-dir/-/resolve-dir-1.0.1.tgz#79a40644c362be82f26effe739c9bb5382046f43" - integrity sha1-eaQGRMNivoLybv/nOcm7U4IEb0M= - dependencies: - expand-tilde "^2.0.0" - global-modules "^1.0.0" - resolve-from@4.0.0, resolve-from@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6" @@ -9578,13 +9040,6 @@ resolve@^1.1.6, resolve@^1.3.2, resolve@^1.3.3, resolve@^1.5.0, resolve@^1.6.0: dependencies: path-parse "^1.0.5" -responselike@1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/responselike/-/responselike-1.0.2.tgz#918720ef3b631c5642be068f15ade5a46f4ba1e7" - integrity sha1-kYcg7ztjHFZCvgaPFa3lpG9Loec= - dependencies: - lowercase-keys "^1.0.0" - restore-cursor@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-1.0.1.tgz#34661f46886327fed2991479152252df92daa541" @@ -9618,11 +9073,6 @@ rimraf@2, rimraf@^2.2.8, rimraf@^2.5.2, rimraf@^2.5.4, rimraf@^2.6.1, rimraf@^2. dependencies: glob "^7.0.5" -rimraf@~2.2.6: - version "2.2.8" - resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.2.8.tgz#e439be2aaee327321952730f99a8929e4fc50582" - integrity sha1-5Dm+Kq7jJzIZUnMPmaiSnk/FBYI= - ripemd160@^2.0.0, ripemd160@^2.0.1: version "2.0.2" resolved "https://registry.yarnpkg.com/ripemd160/-/ripemd160-2.0.2.tgz#a1c1a6f624751577ba5d07914cbc92850585890c" @@ -9643,7 +9093,7 @@ run-async@^0.1.0: dependencies: once "^1.3.0" -run-async@^2.0.0, run-async@^2.2.0: +run-async@^2.2.0: version "2.3.0" resolved "https://registry.yarnpkg.com/run-async/-/run-async-2.3.0.tgz#0371ab4ae0bdd720d4166d7dfda64ff7a445a6c0" integrity sha1-A3GrSuC91yDUFm19/aZP96RFpsA= @@ -9679,20 +9129,13 @@ rx@^4.1.0: resolved "https://registry.yarnpkg.com/rx/-/rx-4.1.0.tgz#a5f13ff79ef3b740fe30aa803fb09f98805d4782" integrity sha1-pfE/957zt0D+MKqAP7CfmIBdR4I= -rxjs@^5.4.2, rxjs@^5.5.2: +rxjs@^5.4.2: version "5.5.12" resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-5.5.12.tgz#6fa61b8a77c3d793dbaf270bee2f43f652d741cc" integrity sha512-xx2itnL5sBbqeeiVgNPVuQQ1nC8Jp2WfNJhXWHmElW9YmrpS9UVnNzhP3EH3HFqexO5Tlp8GhYY+WEcqcVMvGw== dependencies: symbol-observable "1.0.1" -rxjs@^6.1.0: - version "6.3.3" - resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-6.3.3.tgz#3c6a7fa420e844a81390fb1158a9ec614f4bad55" - integrity sha512-JTWmoY9tWCs7zvIk/CvRjhjGaOd+OVBM987mxFo+OW66cGpdKjZcpmc74ES1sB//7Kl/PAe8+wEakuhG4pcgOw== - dependencies: - tslib "^1.9.0" - safe-buffer@5.1.2, safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@^5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1: version "5.1.2" resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" @@ -9739,11 +9182,6 @@ schema-utils@^0.4.4, schema-utils@^0.4.5: ajv "^6.1.0" ajv-keywords "^3.1.0" -scoped-regex@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/scoped-regex/-/scoped-regex-1.0.0.tgz#a346bb1acd4207ae70bd7c0c7ca9e566b6baddb8" - integrity sha1-o0a7Gs1CB65wvXwMfKnlZra63bg= - scrypt-js@2.0.3: version "2.0.3" resolved "https://registry.yarnpkg.com/scrypt-js/-/scrypt-js-2.0.3.tgz#bb0040be03043da9a012a2cea9fc9f852cfc87d4" @@ -9909,15 +9347,6 @@ shelljs@0.7.6: interpret "^1.0.0" rechoir "^0.6.2" -shelljs@^0.8.0: - version "0.8.2" - resolved "https://registry.yarnpkg.com/shelljs/-/shelljs-0.8.2.tgz#345b7df7763f4c2340d584abb532c5f752ca9e35" - integrity sha512-pRXeNrCA2Wd9itwhvLp5LZQvPJ0wU6bcjaTMywHHGX5XWhVN2nzSu7WV0q+oUY7mGK3mgSkDDzP3MgjqdyIgbQ== - dependencies: - glob "^7.0.0" - interpret "^1.0.0" - rechoir "^0.6.2" - shellwords@^0.1.1: version "0.1.1" resolved "https://registry.yarnpkg.com/shellwords/-/shellwords-0.1.1.tgz#d6b9181c1a48d397324c84871efbcfc73fc0654b" @@ -9959,11 +9388,6 @@ slice-ansi@1.0.0: dependencies: is-fullwidth-code-point "^2.0.0" -slide@^1.1.5: - version "1.1.6" - resolved "https://registry.yarnpkg.com/slide/-/slide-1.1.6.tgz#56eb027d65b4d2dce6cb2e2d32c4d4afc9e1d707" - integrity sha1-VusCfWW00tzmyy4tMsTUr8nh1wc= - snapdragon-node@^2.0.1: version "2.1.1" resolved "https://registry.yarnpkg.com/snapdragon-node/-/snapdragon-node-2.1.1.tgz#6c175f86ff14bdb0724563e8f3c1b021a286853b" @@ -10005,13 +9429,6 @@ solc@^0.4.25: semver "^5.3.0" yargs "^4.7.1" -sort-keys@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/sort-keys/-/sort-keys-2.0.0.tgz#658535584861ec97d730d6cf41822e1f56684128" - integrity sha1-ZYU1WEhh7JfXMNbPQYIuH1ZoQSg= - dependencies: - is-plain-obj "^1.0.0" - source-list-map@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/source-list-map/-/source-list-map-2.0.1.tgz#3993bd873bfc48479cca9ea3a547835c7c154b34" @@ -10254,11 +9671,6 @@ string-length@^2.0.0: astral-regex "^1.0.0" strip-ansi "^4.0.0" -string-template@~0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/string-template/-/string-template-0.2.1.tgz#42932e598a352d01fc22ec3367d9d84eec6c9add" - integrity sha1-QpMuWYo1LQH8IuwzZ9nYTuxsmt0= - string-width@^1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/string-width/-/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3" @@ -10321,19 +9733,6 @@ strip-ansi@^4.0.0: dependencies: ansi-regex "^3.0.0" -strip-ansi@~0.1.0: - version "0.1.1" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-0.1.1.tgz#39e8a98d044d150660abe4a6808acf70bb7bc991" - integrity sha1-OeipjQRNFQZgq+SmgIrPcLt7yZE= - -strip-bom-stream@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/strip-bom-stream/-/strip-bom-stream-2.0.0.tgz#f87db5ef2613f6968aa545abfe1ec728b6a829ca" - integrity sha1-+H217yYT9paKpUWr/h7HKLaoKco= - dependencies: - first-chunk-stream "^2.0.0" - strip-bom "^2.0.0" - strip-bom@3.0.0, strip-bom@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3" @@ -10593,11 +9992,6 @@ symbol-observable@^0.2.2: resolved "https://registry.yarnpkg.com/symbol-observable/-/symbol-observable-0.2.4.tgz#95a83db26186d6af7e7a18dbd9760a2f86d08f40" integrity sha1-lag9smGG1q9+ehjb2XYKL4bQj0A= -symbol-observable@^1.1.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/symbol-observable/-/symbol-observable-1.2.0.tgz#c22688aed4eab3cdc2dfeacbb561660560a00804" - integrity sha512-e900nM8RRtGhlV36KGEU9k65K3mPb1WV70OdjfxlG2EAuM1noi/E/BaW/uMhL7bPEssK8QV57vN3esixjUvcXQ== - "symbol-tree@>= 3.1.0 < 4.0.0", symbol-tree@^3.2.2: version "3.2.2" resolved "https://registry.yarnpkg.com/symbol-tree/-/symbol-tree-3.2.2.tgz#ae27db38f660a7ae2e1c3b7d1bc290819b8519e6" @@ -10698,14 +10092,6 @@ tar@^4: safe-buffer "^5.1.2" yallist "^3.0.2" -temp@^0.8.1: - version "0.8.3" - resolved "https://registry.yarnpkg.com/temp/-/temp-0.8.3.tgz#e0c6bc4d26b903124410e4fed81103014dfc1f59" - integrity sha1-4Ma8TSa5AxJEEOT+2BEDAU38H1k= - dependencies: - os-tmpdir "^1.0.0" - rimraf "~2.2.6" - test-exclude@^4.2.1: version "4.2.3" resolved "https://registry.yarnpkg.com/test-exclude/-/test-exclude-4.2.3.tgz#a9a5e64474e4398339245a0a769ad7c2f4a97c20" @@ -10722,16 +10108,11 @@ text-extensions@^1.0.0: resolved "https://registry.yarnpkg.com/text-extensions/-/text-extensions-1.9.0.tgz#1853e45fee39c945ce6f6c36b2d659b5aabc2a26" integrity sha512-wiBrwC1EhBelW12Zy26JeOUkQ5mRu+5o8rpsJk5+2t+Y5vE7e842qtZDQ2g1NpX/29HdyFeJ4nSIhI47ENSxlQ== -text-table@^0.2.0, text-table@~0.2.0: +text-table@~0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" integrity sha1-f17oI66AUgfACvLfSoTsP8+lcLQ= -textextensions@2: - version "2.2.0" - resolved "https://registry.yarnpkg.com/textextensions/-/textextensions-2.2.0.tgz#38ac676151285b658654581987a0ce1a4490d286" - integrity sha512-j5EMxnryTvKxwH2Cq+Pb43tsf6sdEgw6Pdwxk83mPaq0ToeFJt6WE4J3s5BqY7vmjlLgkgXvhtXUxo80FyBhCA== - thenify-all@^1.0.0, thenify-all@^1.6.0: version "1.6.0" resolved "https://registry.yarnpkg.com/thenify-all/-/thenify-all-1.6.0.tgz#1a1918d402d8fc3f98fbf234db0bcc8cc10e9726" @@ -10997,11 +10378,6 @@ underscore@1.8.3: resolved "https://registry.yarnpkg.com/underscore/-/underscore-1.8.3.tgz#4f3fb53b106e6097fcf9cb4109f2a5e9bdfa5022" integrity sha1-Tz+1OxBuYJf8+ctBCfKl6b36UCI= -underscore@~1.6.0: - version "1.6.0" - resolved "https://registry.yarnpkg.com/underscore/-/underscore-1.6.0.tgz#8b38b10cacdef63337b8b24e4ff86d45aea529a8" - integrity sha1-izixDKze9jM3uLJOT/htRa6lKag= - unherit@^1.0.4: version "1.1.1" resolved "https://registry.yarnpkg.com/unherit/-/unherit-1.1.1.tgz#132748da3e88eab767e08fabfbb89c5e9d28628c" @@ -11107,11 +10483,6 @@ unset-value@^1.0.0: has-value "^0.3.1" isobject "^3.0.0" -untildify@^3.0.3: - version "3.0.3" - resolved "https://registry.yarnpkg.com/untildify/-/untildify-3.0.3.tgz#1e7b42b140bcfd922b22e70ca1265bfe3634c7c9" - integrity sha512-iSk/J8efr8uPT/Z4eSUywnqyrQU7DSdMfdqK4iWEaUVVmcP5JcnpRqmVMwcwcnmI1ATFNgC5V90u09tBynNFKA== - upath@^1.0.5: version "1.1.0" resolved "https://registry.yarnpkg.com/upath/-/upath-1.1.0.tgz#35256597e46a581db4793d0ce47fa9aebfc9fabd" @@ -11136,13 +10507,6 @@ url-parse-lax@^1.0.0: dependencies: prepend-http "^1.0.1" -url-parse-lax@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/url-parse-lax/-/url-parse-lax-3.0.0.tgz#16b5cafc07dbe3676c1b1999177823d6503acb0c" - integrity sha1-FrXK/Afb42dsGxmZF3gj1lA6yww= - dependencies: - prepend-http "^2.0.0" - url-set-query@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/url-set-query/-/url-set-query-1.0.0.tgz#016e8cfd7c20ee05cafe7795e892bd0702faa339" @@ -11218,7 +10582,7 @@ uuid@^3.3.2: resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.3.2.tgz#1b4af4955eb3077c501c23872fc6513811587131" integrity sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA== -v8-compile-cache@^2.0.0: +v8-compile-cache@^2.0.2: version "2.0.2" resolved "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.0.2.tgz#a428b28bb26790734c4fc8bc9fa106fccebf6a6c" integrity sha512-1wFuMUIM16MDJRCrpbpuEPTUGmM5QMUg0cr3KFwra2XgOgFcPGDQHDh3CszSCD2Zewc/dh/pamNEW8CbfDebUw== @@ -11279,39 +10643,6 @@ vfile@^2.0.0: unist-util-stringify-position "^1.0.0" vfile-message "^1.0.0" -vinyl-file@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/vinyl-file/-/vinyl-file-2.0.0.tgz#a7ebf5ffbefda1b7d18d140fcb07b223efb6751a" - integrity sha1-p+v1/779obfRjRQPyweyI++2dRo= - dependencies: - graceful-fs "^4.1.2" - pify "^2.3.0" - pinkie-promise "^2.0.0" - strip-bom "^2.0.0" - strip-bom-stream "^2.0.0" - vinyl "^1.1.0" - -vinyl@^1.1.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/vinyl/-/vinyl-1.2.0.tgz#5c88036cf565e5df05558bfc911f8656df218884" - integrity sha1-XIgDbPVl5d8FVYv8kR+GVt8hiIQ= - dependencies: - clone "^1.0.0" - clone-stats "^0.0.1" - replace-ext "0.0.1" - -vinyl@^2.0.1: - version "2.2.0" - resolved "https://registry.yarnpkg.com/vinyl/-/vinyl-2.2.0.tgz#d85b07da96e458d25b2ffe19fece9f2caa13ed86" - integrity sha512-MBH+yP0kC/GQ5GwBqrTPTzEfiiLjta7hTtvQtbxBgTeSXsmKQRQecjibMbxIXzVT3Y9KJK+drOz1/k+vsu8Nkg== - dependencies: - clone "^2.1.1" - clone-buffer "^1.0.0" - clone-stats "^1.0.0" - cloneable-readable "^1.0.0" - remove-trailing-separator "^1.0.1" - replace-ext "^1.0.0" - vm-browserify@0.0.4: version "0.0.4" resolved "https://registry.yarnpkg.com/vm-browserify/-/vm-browserify-0.0.4.tgz#5d7ea45bbef9e4a6ff65f95438e0a87c357d5a73" @@ -11605,44 +10936,21 @@ webidl-conversions@^4.0.2: resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-4.0.2.tgz#a855980b1f0b6b359ba1d5d9fb39ae941faa63ad" integrity sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg== -webpack-addons@^1.1.5: - version "1.1.5" - resolved "https://registry.yarnpkg.com/webpack-addons/-/webpack-addons-1.1.5.tgz#2b178dfe873fb6e75e40a819fa5c26e4a9bc837a" - integrity sha512-MGO0nVniCLFAQz1qv22zM02QPjcpAoJdy7ED0i3Zy7SY1IecgXCm460ib7H/Wq7e9oL5VL6S2BxaObxwIcag0g== - dependencies: - jscodeshift "^0.4.0" - -webpack-cli@^2.0.9: - version "2.1.5" - resolved "https://registry.yarnpkg.com/webpack-cli/-/webpack-cli-2.1.5.tgz#3081fdeb2f205f0a54aa397986880b0c20a71f7a" - integrity sha512-CiWQR+1JS77rmyiO6y1q8Kt/O+e8nUUC9YfJ25JtSmzDwbqJV7vIsh3+QKRHVTbTCa0DaVh8iY1LBiagUIDB3g== +webpack-cli@^3.1.2: + version "3.1.2" + resolved "https://registry.yarnpkg.com/webpack-cli/-/webpack-cli-3.1.2.tgz#17d7e01b77f89f884a2bbf9db545f0f6a648e746" + integrity sha512-Cnqo7CeqeSvC6PTdts+dywNi5CRlIPbLx1AoUPK2T6vC1YAugMG3IOoO9DmEscd+Dghw7uRlnzV1KwOe5IrtgQ== dependencies: chalk "^2.4.1" cross-spawn "^6.0.5" - diff "^3.5.0" - enhanced-resolve "^4.0.0" - envinfo "^5.7.0" - glob-all "^3.1.0" - global-modules "^1.0.0" - got "^8.3.1" - import-local "^1.0.0" - inquirer "^5.2.0" + enhanced-resolve "^4.1.0" + global-modules-path "^2.3.0" + import-local "^2.0.0" interpret "^1.1.0" - jscodeshift "^0.5.0" - listr "^0.14.1" loader-utils "^1.1.0" - lodash "^4.17.10" - log-symbols "^2.2.0" - mkdirp "^0.5.1" - p-each-series "^1.0.0" - p-lazy "^1.0.0" - prettier "^1.12.1" - supports-color "^5.4.0" - v8-compile-cache "^2.0.0" - webpack-addons "^1.1.5" - yargs "^11.1.0" - yeoman-environment "^2.1.1" - yeoman-generator "^2.0.5" + supports-color "^5.5.0" + v8-compile-cache "^2.0.2" + yargs "^12.0.2" webpack-sources@^1.1.0, webpack-sources@^1.3.0: version "1.3.0" @@ -11652,7 +10960,7 @@ webpack-sources@^1.1.0, webpack-sources@^1.3.0: source-list-map "^2.0.0" source-map "~0.6.1" -webpack@^4.0.1: +webpack@^4.19.1: version "4.23.1" resolved "https://registry.yarnpkg.com/webpack/-/webpack-4.23.1.tgz#db7467b116771ae020c58bdfe2a0822785bb8239" integrity sha512-iE5Cu4rGEDk7ONRjisTOjVHv3dDtcFfwitSxT7evtYj/rANJpt1OuC/Kozh1pBa99AUBr1L/LsaNB+D9Xz3CEg== @@ -11738,7 +11046,7 @@ which-module@^2.0.0: resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a" integrity sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho= -which@^1.2.10, which@^1.2.12, which@^1.2.14, which@^1.2.9, which@^1.3.0: +which@^1.2.10, which@^1.2.12, which@^1.2.9, which@^1.3.0: version "1.3.1" resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a" integrity sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ== @@ -11792,15 +11100,6 @@ wrappy@1: resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= -write-file-atomic@^1.2.0: - version "1.3.4" - resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-1.3.4.tgz#f807a4f0b1d9e913ae7a48112e6cc3af1991b45f" - integrity sha1-+Aek8LHZ6ROuekgRLmzDrxmRtF8= - dependencies: - graceful-fs "^4.1.11" - imurmurhash "^0.1.4" - slide "^1.1.5" - write-file-atomic@^2.1.0: version "2.3.0" resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-2.3.0.tgz#1ff61575c2e2a4e8e510d6fa4e243cce183999ab" @@ -11890,7 +11189,12 @@ xmlhttprequest@1.8.0: resolved "https://registry.yarnpkg.com/xmlhttprequest/-/xmlhttprequest-1.8.0.tgz#67fe075c5c24fef39f9d65f5f7b7fe75171968fc" integrity sha1-Z/4HXFwk/vOfnWX197f+dRcZaPw= -xtend@^4.0.0, xtend@^4.0.1, xtend@~4.0.0, xtend@~4.0.1: +xregexp@4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/xregexp/-/xregexp-4.0.0.tgz#e698189de49dd2a18cc5687b05e17c8e43943020" + integrity sha512-PHyM+sQouu7xspQQwELlGwwd05mXUFqwFYfqPO0cC7x4fxyHnnuetmQr6CjJiafIDoH4MogHb9dOoJzR/Y4rFg== + +xtend@^4.0.0, xtend@^4.0.1, xtend@~4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.1.tgz#a5c6d532be656e23db820efb943a1f04998d63af" integrity sha1-pcbVMr5lbiPbgg77lDofBJmNY68= @@ -11900,7 +11204,7 @@ y18n@^3.2.1: resolved "https://registry.yarnpkg.com/y18n/-/y18n-3.2.1.tgz#6d15fba884c08679c0d77e88e7759e811e07fa41" integrity sha1-bRX7qITAhnnA136I53WegR4H+kE= -y18n@^4.0.0: +"y18n@^3.2.1 || ^4.0.0", y18n@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.0.tgz#95ef94f85ecc81d007c264e190a120f0a3c8566b" integrity sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w== @@ -11920,7 +11224,7 @@ yallist@^3.0.0, yallist@^3.0.2: resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.0.2.tgz#8452b4bb7e83c7c188d8041c1a837c773d6d8bb9" integrity sha1-hFK0u36Dx8GI2AQcGoN8dz1ti7k= -yargs-parser@^10.0.0: +yargs-parser@^10.0.0, yargs-parser@^10.1.0: version "10.1.0" resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-10.1.0.tgz#7202265b89f7e9e9f2e5765e0fe735a905edbaa8" integrity sha512-VCIyR1wJoEBZUqk5PA+oOBF6ypbwh5aNB3I50guxAL/quggdfs4TtNHQrSazFA3fYZ+tEqfs0zIGlv0c/rgjbQ== @@ -11949,13 +11253,6 @@ yargs-parser@^8.1.0: dependencies: camelcase "^4.1.0" -yargs-parser@^9.0.2: - version "9.0.2" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-9.0.2.tgz#9ccf6a43460fe4ed40a9bb68f48d43b8a68cc077" - integrity sha1-nM9qQ0YP5O1Aqbto9I1DuKaMwHc= - dependencies: - camelcase "^4.1.0" - yargs@^10.0.3: version "10.1.2" resolved "https://registry.yarnpkg.com/yargs/-/yargs-10.1.2.tgz#454d074c2b16a51a43e2fb7807e4f9de69ccb5c5" @@ -11974,23 +11271,23 @@ yargs@^10.0.3: y18n "^3.2.1" yargs-parser "^8.1.0" -yargs@^11.1.0: - version "11.1.0" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-11.1.0.tgz#90b869934ed6e871115ea2ff58b03f4724ed2d77" - integrity sha512-NwW69J42EsCSanF8kyn5upxvjp5ds+t3+udGBeTbFnERA+lF541DDpMawzo4z6W/QrzNM18D+BPMiOBibnFV5A== +yargs@^12.0.2: + version "12.0.2" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-12.0.2.tgz#fe58234369392af33ecbef53819171eff0f5aadc" + integrity sha512-e7SkEx6N6SIZ5c5H22RTZae61qtn3PYUE8JYbBFlK9sYmh3DMQ6E5ygtaG/2BW0JZi4WGgTR2IV5ChqlqrDGVQ== dependencies: cliui "^4.0.0" - decamelize "^1.1.1" - find-up "^2.1.0" + decamelize "^2.0.0" + find-up "^3.0.0" get-caller-file "^1.0.1" - os-locale "^2.0.0" + os-locale "^3.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 "^9.0.2" + y18n "^3.2.1 || ^4.0.0" + yargs-parser "^10.1.0" yargs@^4.7.1: version "4.8.1" @@ -12031,13 +11328,6 @@ yargs@^8.0.1: y18n "^3.2.1" yargs-parser "^7.0.0" -yargs@~1.2.6: - version "1.2.6" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-1.2.6.tgz#9c7b4a82fd5d595b2bf17ab6dcc43135432fe34b" - integrity sha1-nHtKgv1dWVsr8Xq23MQxNUMv40s= - dependencies: - minimist "^0.1.0" - yauzl@^2.4.2: version "2.10.0" resolved "https://registry.yarnpkg.com/yauzl/-/yauzl-2.10.0.tgz#c7eb17c93e112cb1086fa6d8e51fb0667b79a5f9" @@ -12046,58 +11336,6 @@ yauzl@^2.4.2: buffer-crc32 "~0.2.3" fd-slicer "~1.1.0" -yeoman-environment@^2.0.5, yeoman-environment@^2.1.1: - version "2.3.3" - resolved "https://registry.yarnpkg.com/yeoman-environment/-/yeoman-environment-2.3.3.tgz#1bd9720714cc49036e901503a789d809df8f51bf" - integrity sha512-HBpXdNw8V66EwqIFt01rNhSgX33BOzgVb9CxpIvESvCI4ELeOSniB6gV6RXwrBur8kmHZCIAkYQYpib7Qxx8FQ== - dependencies: - chalk "^2.4.1" - cross-spawn "^6.0.5" - debug "^3.1.0" - diff "^3.5.0" - escape-string-regexp "^1.0.2" - globby "^8.0.1" - grouped-queue "^0.3.3" - inquirer "^6.0.0" - is-scoped "^1.0.0" - lodash "^4.17.10" - log-symbols "^2.2.0" - mem-fs "^1.1.0" - strip-ansi "^4.0.0" - text-table "^0.2.0" - untildify "^3.0.3" - -yeoman-generator@^2.0.5: - version "2.0.5" - resolved "https://registry.yarnpkg.com/yeoman-generator/-/yeoman-generator-2.0.5.tgz#57b0b3474701293cc9ec965288f3400b00887c81" - integrity sha512-rV6tJ8oYzm4mmdF2T3wjY+Q42jKF2YiiD0VKfJ8/0ZYwmhCKC9Xs2346HVLPj/xE13i68psnFJv7iS6gWRkeAg== - dependencies: - async "^2.6.0" - chalk "^2.3.0" - cli-table "^0.3.1" - cross-spawn "^6.0.5" - dargs "^5.1.0" - dateformat "^3.0.3" - debug "^3.1.0" - detect-conflict "^1.0.0" - error "^7.0.2" - find-up "^2.1.0" - github-username "^4.0.0" - istextorbinary "^2.2.1" - lodash "^4.17.10" - make-dir "^1.1.0" - mem-fs-editor "^4.0.0" - minimist "^1.2.0" - pretty-bytes "^4.0.2" - read-chunk "^2.1.0" - read-pkg-up "^3.0.0" - rimraf "^2.6.2" - run-async "^2.0.0" - shelljs "^0.8.0" - text-table "^0.2.0" - through2 "^2.0.0" - yeoman-environment "^2.0.5" - zeppelin-solidity@^1.7.0: version "1.12.0" resolved "https://registry.yarnpkg.com/zeppelin-solidity/-/zeppelin-solidity-1.12.0.tgz#427edf8e0041ec8600875d3cb8fc9395f33ccfff" From 7830c741e154052f02cabb4dd80817f68bf57be3 Mon Sep 17 00:00:00 2001 From: Sam Vitello Date: Thu, 25 Oct 2018 16:22:33 -0600 Subject: [PATCH 4/6] chore(release): 0.3.0 --- CHANGELOG.md | 10 ++++++++++ package.json | 2 +- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index fbc450f..aab71a2 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,16 @@ All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines. + +# [0.3.0](https://github.com/kleros/archon/compare/v0.2.0...v0.3.0) (2018-10-25) + + +### Features + +* bubble up errors to top level calls to handle ([7e4e5f9](https://github.com/kleros/archon/commit/7e4e5f9)) + + + # [0.2.0](https://github.com/kleros/archon/compare/v0.1.1...v0.2.0) (2018-10-17) diff --git a/package.json b/package.json index 445a1e2..05ff1de 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@kleros/archon", - "version": "0.2.0", + "version": "0.3.0", "description": "A javascript library for Ethereum dispute resolution. Provides the ability to interface with Arbitrable and Arbitrator Ethereum smart contracts, as defined in ERC 792.", "keywords": [ "Blockchain", From ced65f4b6e1488050490a4befb4bc2ce8ca8c3f9 Mon Sep 17 00:00:00 2001 From: Sam Vitello Date: Wed, 28 Nov 2018 12:54:05 -0700 Subject: [PATCH 5/6] feat: pass ipfsGateway as param to standards instead of env var --- docs/archon.rst | 8 +- docs/evidence.rst | 39 +++++- docs/getting-started.rst | 7 +- docs/hashing.rst | 8 ++ docs/include_supported_hashes.rst | 2 +- docs/tutorial.rst | 191 ++++++++++++++++++++++++++++++ src/Archon.js | 9 +- src/standards/Arbitrable.js | 86 ++++++++------ src/standards/StandardContract.js | 8 +- src/utils/hashing.js | 14 +-- src/utils/uri.js | 6 +- tests/utils/uri.test.js | 27 ++--- 12 files changed, 326 insertions(+), 79 deletions(-) create mode 100644 docs/tutorial.rst diff --git a/docs/archon.rst b/docs/archon.rst index 4df09ad..31fb4f7 100755 --- a/docs/archon.rst +++ b/docs/archon.rst @@ -1,5 +1,7 @@ .. _archon: +.. include:: include_announcement.rst + ====== Archon ====== @@ -156,12 +158,6 @@ Parameters 1. ``myProvider`` - ``Object|String``: A provider object or URI. -------- -Returns -------- - -``Boolean`` - ------- Example ------- diff --git a/docs/evidence.rst b/docs/evidence.rst index 8460b19..73024ca 100644 --- a/docs/evidence.rst +++ b/docs/evidence.rst @@ -1,3 +1,5 @@ +.. include:: include_announcement.rst + ================= Evidence Examples ================= @@ -54,8 +56,15 @@ Part 1: Create Evidence JSON File description: "This evidence shows how to properly utilize hashing and Archon to submit valid evidence!" } + var evidenceJSONHash = archon.utils.multihashFile( + evidenceJSON, + 0x1B // keccak-256 + ) + + console.log(evidenceJSONHash) // + // Write our JSON to a file so we can host it with IPFS - fs.writeFileSync(path.resolve(__dirname, "./exampleEvidence.json"), JSON.stringify(evidenceJSON)); + fs.writeFileSync(path.resolve(__dirname, `./${evidenceJSONHash}`), JSON.stringify(evidenceJSON)); --------------------------------------- Part 2: Host with IPFS and get the hash @@ -68,6 +77,19 @@ Part 2: Host with IPFS and get the hash ipfs add -r exampleEvidence.json > added QmdBNTwDazHsYXk9xW9JnM4iVGpdUnZni1DS4pyF3adKq1 exampleEvidence.json +-------------------------------------------------------------------------------- +Part 2 (Alternate): Host on any cloud provider (e.g. AWS) using hash as filename +-------------------------------------------------------------------------------- + +.. note:: If it is not hosted via IPFS make sure to use the multihash as the suffix of the URI or include ``selfHash`` in the ``JSON``. + +.. code-block:: bash + + # Add file to aws + aws s3 cp ./ s3://kleros-examples/ + + # file can be found at https://s3.us-east-2.amazonaws.com/kleros-examples/ + --------------------------- Part 3: Submit the evidence --------------------------- @@ -76,16 +98,27 @@ Part 3: Submit the evidence var Web3 = require("web3"); // You will need to submit your transaction from a node or wallet that has funds to pay gas fees. - var web3 = new Web3(); + var web3 = new Web3("https://mainnet.infura.io"); // Load the arbitrable contract to submit our evidence // See web3 docs for more information on interacting with your contract var contractInstance = new web3.eth.Contract(, ); + // Call submit evidence using the IPFS hash from our JSON file contractInstance.methods.submitEvidence( '/ipfs/QmdBNTwDazHsYXk9xW9JnM4iVGpdUnZni1DS4pyF3adKq1' ).send({ - from: , + from: "0x54FcB2536b3E1DD222aD2c644535244000b377cd", + gas: 500000 + }); + + // OR + + // Call submit evidence using the hosted URI + contractInstance.methods.submitEvidence( + 'https://s3.us-east-2.amazonaws.com/kleros-examples/' + ).send({ + from: "0x54FcB2536b3E1DD222aD2c644535244000b377cd", gas: 500000 }); diff --git a/docs/getting-started.rst b/docs/getting-started.rst index 9602bc9..9b88ae4 100755 --- a/docs/getting-started.rst +++ b/docs/getting-started.rst @@ -17,15 +17,16 @@ Getting Started var Archon = require('@kleros/archon') -3. Initialize an instance of Archon using an Ethereum Provider and an IPFS Gateway. +3. Initialize an instance of Archon using an Ethereum Provider and, optionally, an IPFS Gateway. .. code-block:: javascript - var archon = new Archon('https://mainnet.infura.io', 'https://gateway.ipfs.io') + // By default Archon uses 'https://gateway.ipfs.io' as the default IPFS gateway. To use your own gateway, pass the gateway URI as the 2nd parameter to Archon. + var archon = new Archon('https://mainnet.infura.io') .. note:: A provider is needed so that the codebase knows how to connect to the Ethereum network. You can use a connection to your own node, or to a hosted node such as infura. ``web3.js`` will make RPC calls to the provider to fetch data from the blockchain. -.. note:: This sets the environment variable ``IPFS_GATEWAY_URI``. A gateway is needed to access ``IPFS`` files that might be referenced in evidence or metaEvidence. +.. note:: When Archon is initialized the environment variable ``IPFS_GATEWAY_URI`` is set. A gateway is needed to access ``IPFS`` files that might be referenced in evidence or metaEvidence. Now you are all set! Use your :ref:`Archon ` object to interact with :ref:`arbitrable ` and :ref:`arbitrator ` smart contracts on the blockchain. diff --git a/docs/hashing.rst b/docs/hashing.rst index 0087695..cf29b42 100644 --- a/docs/hashing.rst +++ b/docs/hashing.rst @@ -91,6 +91,12 @@ before you apply the hashing algorithm, as is the case with `IPFS` hashes. This is only for the initial hashing algorithm in the multihash. Your hashing function should take a single ``String`` argument and return a ``String`` that is the hex representation of the hash. +1) Non standard hash function implementations + +.. note:: You must still include a hashcode even if you are using a custom hash function. In order to have a valid multihash your hash must correspond to a valid hashcode. It is not recommended you use an unsupported hashing function that does not have a hashcode. If your hashes are not valid multihashes, consider validating your hashes outside of Archon. + +.. warning:: If you use a custom hash function other interfaces may not be able to validate your hashes. + ------------------------------ Example -- Solidity keccak-256 ------------------------------ @@ -99,6 +105,8 @@ Solidity uses a non standard implementation of the keccak-256 hashing algorithm. Therefore if we are using hashes produced by a smart contract we might need to validate using a custom hashing function. +.. note:: In this example the custom hash function is a non-standard implementation of keccak-256 so it can still use the hashcode 0x1B. + .. code-block:: javascript var Archon = require('@kleros/archon'); diff --git a/docs/include_supported_hashes.rst b/docs/include_supported_hashes.rst index cb12008..7858e18 100644 --- a/docs/include_supported_hashes.rst +++ b/docs/include_supported_hashes.rst @@ -22,4 +22,4 @@ keccak-512 0x1D If a different hashing algorithm was used, pass it in the desired function with ``customHashFn``. The function should expect a single string parameter. A full list of possible algorithms and multicodes can be found `here -`_. +`_. diff --git a/docs/tutorial.rst b/docs/tutorial.rst new file mode 100644 index 0000000..8f8ab04 --- /dev/null +++ b/docs/tutorial.rst @@ -0,0 +1,191 @@ +.. include:: include_announcement.rst + +==================== +Evidence Walkthrough +==================== + +The best way to try things out is to learn by doing. So we have created a test +smart contract, deployed on the Kovan test network, that you can use to test out +submitting and fetching evidence. Here we will go through the process step by step. +Feel free to follow along. + +The test smart contract we will be using includes all of the standard Evidence related +events that you would have in your smart contract. You can create a "dispute" in this +contract and submit MetaEvidence and Evidence. There is no arbitrator for these disputes +so they will always remain open. + +The contract can be found here: https://kovan.etherscan.io/address/0x3b43c3f69c5d06cc00575e3c5ab8723b129c494d#code + +------------------------------------------------------------------------------ + +Step 1: Create MetaEvidence +=========================== + +The first thing needed in order to create a dispute is to create the MetaEvidence. +In our example we are going to be going along with a hypothetical escrow dispute. + +--------------------------------- +Part 1: Create Evidence JSON File +--------------------------------- + +.. code-block:: javascript + + var Archon = require('@kleros/archon'); + var fs = require('fs'); + var path = require('path'); + + // initialize Archon. By default it uses IPFS gateway https://gateway.ipfs.io + var archon = new Archon("https://mainnet.infura.io"); + + // First we need the hash of our evidence file. Download the file and hash it. + var file = fs.readFileSync(path.resolve(__dirname, "./exampleEvidence.txt")).toString(); + + var evidenceHash = archon.utils.multihashFile( + file, + 0x1B // keccak-256 + ); + + console.log(evidenceHash); // Bce1WTQa7bfrJMFdEJuWV2xHsmj5JcDDyqBKGXu6PHZsn5e5oxkJ8cMJcuFDK1VsQYBtfrzgWkKCovWSvsacgN1XTj + + // Now we can construct our EvidenceJSON from the Evidence Standard + var evidenceJSON = { + fileURI: "https://s3.us-east-2.amazonaws.com/kleros-examples/exampleEvidence.txt", + fileHash: evidenceHash, + name: "Example Evidence", + description: "This evidence shows how to properly utilize hashing and Archon to submit valid evidence!" + } + + var evidenceJSONHash = archon.utils.multihashFile( + evidenceJSON, + 0x1B // keccak-256 + ) + + console.log(evidenceJSONHash) // + + // Write our JSON to a file so we can host it with IPFS + fs.writeFileSync(path.resolve(__dirname, `./${evidenceJSONHash}`), JSON.stringify(evidenceJSON)); + +--------------------------------------- +Part 2: Host with IPFS and get the hash +--------------------------------------- + +.. note:: If it is not hosted via IPFS make sure to use the multihash as the suffix of the URI or include ``selfHash`` in the ``JSON``. + +.. code-block:: bash + + ipfs add -r exampleEvidence.json + > added QmdBNTwDazHsYXk9xW9JnM4iVGpdUnZni1DS4pyF3adKq1 exampleEvidence.json + +-------------------------------------------------------------------------------- +Part 2 (Alternate): Host on any cloud provider (e.g. AWS) using hash as filename +-------------------------------------------------------------------------------- + +.. note:: If it is not hosted via IPFS make sure to use the multihash as the suffix of the URI or include ``selfHash`` in the ``JSON``. + +.. code-block:: bash + + # Add file to aws + aws s3 cp ./ s3://kleros-examples/ + + # file can be found at https://s3.us-east-2.amazonaws.com/kleros-examples/ + +--------------------------- +Part 3: Submit the evidence +--------------------------- + +.. code-block:: javascript + + var Web3 = require("web3"); + // You will need to submit your transaction from a node or wallet that has funds to pay gas fees. + var web3 = new Web3("https://mainnet.infura.io"); + + // Load the arbitrable contract to submit our evidence + // See web3 docs for more information on interacting with your contract + var contractInstance = new web3.eth.Contract(, ); + + // Call submit evidence using the IPFS hash from our JSON file + contractInstance.methods.submitEvidence( + '/ipfs/QmdBNTwDazHsYXk9xW9JnM4iVGpdUnZni1DS4pyF3adKq1' + ).send({ + from: "0x54FcB2536b3E1DD222aD2c644535244000b377cd", + gas: 500000 + }); + + // OR + + // Call submit evidence using the hosted URI + contractInstance.methods.submitEvidence( + 'https://s3.us-east-2.amazonaws.com/kleros-examples/' + ).send({ + from: "0x54FcB2536b3E1DD222aD2c644535244000b377cd", + gas: 500000 + }); + +------------------------------------------- +Part 4: Retrieve Evidence from the contract +------------------------------------------- + +.. code-block:: javascript + + var Archon = require("@kleros/archon"); + var archon = new Archon("https://mainnet.infura.io"); + + archon.arbitrable.getEvidence( + , + , + + ).then(evidence => { + console.log(evidence) + }); + + > [{ + evidenceJSON: { + fileURI: "https://s3.us-east-2.amazonaws.com/kleros-examples/exampleEvidence.txt", + fileHash: "Bce1WTQa7bfrJMFdEJuWV2xHsmj5JcDDyqBKGXu6PHZsn5e5oxkJ8cMJcuFDK1VsQYBtfrzgWkKCovWSvsacgN1XTj", + name: "Example Evidence", + Description: "This evidence shows how to properly utilize hashing and Archon to submit valid evidence!" + }, + evidenceValid: true, + fileValid: true, + submittedBy: , + submittedAt: + }] + +------------------------------------------------------------------------------ + +Fetch MetaEvidence for Dispute +============================== + +This example demonstrates how to retrieve the MetaEvidence for a dispute using ``Archon``. + +.. code-block:: javascript + + var Archon = require('@kleros/archon'); + + // initialize Archon. By default it uses IPFS gateway https://gateway.ipfs.io + var archon = new Archon("https://mainnet.infura.io"); + + // Fetch the event log emitted by the Arbitrable contract when a dispute is raised + archon.arbitrable.getDispute( + "0x91697c78d48e9c83b71727ddd41ccdc95bb2f012", // arbitrable contract address + "0x211f01e59b425253c0a0e9a7bf612605b42ce82c", // arbitrator contract address + 23 // dispute unique identifier + ).then(disputeLog => { + // use the metaEvidenceID to fetch the MetaEvidence event log + archon.arbitrable.getMetaEvidence( + "0x91697c78d48e9c83b71727ddd41ccdc95bb2f012", // arbitrable contract address + disputeLog.metaEvidenceID + ).then(metaEvidenceData => { + console.log(metaEvidenceData) + }) + }) + + > { + metaEvidenceValid: true, + fileValid: true, + interfaceValid: true, + metaEvidenceJSON: {"fileURI": "/ipfs/...", ...}, + submittedAt: 1539025000, + blockNumber: 6503570, + transactionHash: "0x340fdc6e32ef24eb14f9ccbd2ec614a8d0c7121e8d53f574529008f468481990" + } diff --git a/src/Archon.js b/src/Archon.js index 43eb22a..f262e16 100644 --- a/src/Archon.js +++ b/src/Archon.js @@ -24,8 +24,8 @@ class Archon { * files from the IPFS network. Defaults to "https://gateway.ipfs.io" */ constructor(ethereumProvider, ipfsGatewayURI = 'https://gateway.ipfs.io') { - this.arbitrator = new Arbitrator(ethereumProvider) - this.arbitrable = new Arbitrable(ethereumProvider) + this.arbitrator = new Arbitrator(ethereumProvider, ipfsGatewayURI) + this.arbitrable = new Arbitrable(ethereumProvider, ipfsGatewayURI) this.setIpfsGateway(ipfsGatewayURI) } @@ -44,11 +44,12 @@ class Archon { * @param {string} ipfsGatewayURI - The ipfs gateway URI. */ setIpfsGateway = (ipfsGatewayURI = isRequired('ipfsGatewayURI')) => { - // remove trailing / + // remove trailing '/' if (ipfsGatewayURI.lastIndexOf('/') === ipfsGatewayURI.length - 1) ipfsGatewayURI = ipfsGatewayURI.substr(0, ipfsGatewayURI.length - 1) - + console.log(ipfsGatewayURI) process.env.IPFS_GATEWAY_URI = ipfsGatewayURI + console.log(process.env.IPFS_GATEWAY_URI) } } diff --git a/src/standards/Arbitrable.js b/src/standards/Arbitrable.js index 70c1c6f..db064d6 100644 --- a/src/standards/Arbitrable.js +++ b/src/standards/Arbitrable.js @@ -4,6 +4,7 @@ import * as errorConstants from '../constants/error' import EventListener from '../utils/EventListener' import isRequired from '../utils/isRequired' import { validateFileFromURI } from '../utils/hashing' +import { getHttpUri } from '../utils/uri' import StandardContract from './StandardContract' @@ -54,31 +55,38 @@ class Arbitrable extends StandardContract { return Promise.all( evidenceLogs.map(async evidenceLog => { const args = await evidenceLog.returnValues - const evidenceURI = args._evidence + const { uri: evidenceURI, preValidated } = getHttpUri( + args._evidence, + this.ipfsGateway + ) const { file: evidenceJSON, isValid: evidenceJSONValid } = await validateFileFromURI(evidenceURI, { - evidence: true, + preValidated, strictHashes: options.strictHashes, customHashFn: options.customHashFn }) - let fileValid + let fileValid = false try { - fileValid = evidenceJSON.fileURI - ? (await validateFileFromURI(evidenceJSON.fileURI, { - evidence: true, - strictHashes: options.strictHashes, - hash: evidenceJSON.fileHash, - customHashFn: options.customHashFn - })).isValid - : null + if (evidenceJSON.fileURI) { + const { uri: evidenceURI, preValidated } = getHttpUri( + evidenceJSON.fileURI, + this.ipfsGateway + ) + + fileValid = (await validateFileFromURI(evidenceURI, { + preValidated, + strictHashes: options.strictHashes, + hash: evidenceJSON.fileHash, + customHashFn: options.customHashFn + })).isValid + } } catch (err) { if (options.strictHashes) throw new Error(err) - fileValid = false } const submittedAt = (await new Promise((resolve, reject) => { @@ -143,46 +151,56 @@ class Arbitrable extends StandardContract { const metaEvidenceLog = metaEvidenceLogs[0] const args = await metaEvidenceLog.returnValues - const metaEvidenceUri = args._evidence + + const { uri: metaEvidenceUri, preValidated } = getHttpUri( + args._evidence, + this.ipfsGateway + ) const { file: metaEvidenceJSON, isValid: metaEvidenceJSONValid } = await validateFileFromURI(metaEvidenceUri, { - evidence: true, + preValidated, strictHashes: options.strictHashes, customHashFn: options.customHashFn }) - let fileValid + let fileValid = false try { // validate file hash - fileValid = metaEvidenceJSON.fileURI - ? (await validateFileFromURI(metaEvidenceJSON.fileURI, { - evidence: true, - strictHashes: options.strictHashes, - hash: metaEvidenceJSON.fileHash, - customHashFn: options.customHashFn - })).isValid - : null + if (metaEvidenceJSON.fileURI) { + const { uri: fileURI, preValidated } = getHttpUri( + metaEvidenceJSON.fileURI, + this.ipfsGateway + ) + fileValid = (await validateFileFromURI(fileURI, { + preValidated, + strictHashes: options.strictHashes, + hash: metaEvidenceJSON.fileHash, + customHashFn: options.customHashFn + })).isValid + } } catch (err) { if (options.strictHashes) throw new Error(err) - fileValid = false } // validate file hash let interfaceValid try { - interfaceValid = metaEvidenceJSON.evidenceDisplayInterfaceURL - ? (await validateFileFromURI( - metaEvidenceJSON.evidenceDisplayInterfaceURL, - { - strictHashes: options.strictHashes, - hash: metaEvidenceJSON.evidenceDisplayInterfaceHash, - customHashFn: options.customHashFn - } - )).isValid - : { isValid: null } + if (metaEvidenceJSON.evidenceDisplayInterfaceURL) { + const { uri: disputeInterfaceURI, preValidated } = getHttpUri( + metaEvidenceJSON.evidenceDisplayInterfaceURL, + this.ipfsGateway + ) + if (preValidated) interfaceValid = true + else + interfaceValid = (await validateFileFromURI(disputeInterfaceURI, { + strictHashes: options.strictHashes, + hash: metaEvidenceJSON.evidenceDisplayInterfaceHash, + customHashFn: options.customHashFn + })).isValid + } } catch (err) { if (options.strictHashes) throw new Error(err) interfaceValid = false diff --git a/src/standards/StandardContract.js b/src/standards/StandardContract.js index 1a809a8..960fe61 100644 --- a/src/standards/StandardContract.js +++ b/src/standards/StandardContract.js @@ -4,14 +4,20 @@ class StandardContract { /** * Constructor ArbitrableTransaction. * @param {object} web3Provider instance. + * @param {string} ipfsGateway IPFS gateway URI. */ - constructor(web3Provider) { + constructor(web3Provider, ipfsGateway) { this.web3 = new Web3(web3Provider) + this.ipfsGateway = ipfsGateway } setProvider = newProvider => { this.web3.setProvider(newProvider) } + + setIpfsGateway = newGateway => { + this.ipfsGateway = newGateway + } } export default StandardContract diff --git a/src/utils/hashing.js b/src/utils/hashing.js index 0283106..637e938 100644 --- a/src/utils/hashing.js +++ b/src/utils/hashing.js @@ -5,7 +5,7 @@ import * as errorConstants from '../constants/error' import { functions as hashFunctions } from '../constants/hash' import isRequired from './isRequired' -import { getHttpUri, getURISuffix } from './uri' +import { getURISuffix } from './uri' /** * Validate a file. The file must include the hash as the suffix of the URI, @@ -19,23 +19,21 @@ export const validateFileFromURI = async ( fileURI = isRequired('fileURI'), options = {} ) => { - // A file is considered prevalidated if it is an IPFS uri - // NOTE IPFS uri's are converted to HTTP using a gateway - const { uri, preValidated } = getHttpUri(fileURI) - - if (preValidated) return true // Fetch the evidence JSON - const fileResponse = await axios.get(uri) + const fileResponse = await axios.get(fileURI) if (fileResponse.status !== 200) throw new Error( errorConstants.HTTP_ERROR( - `Unable to fetch file at ${uri}. Returned status code ${ + `Unable to fetch file at ${fileURI}. Returned status code ${ fileResponse.status }` ) ) let fileContent = fileResponse.data + // If from ipfs or other source that validates hashes we cam return file + if (options.preValidated) return { file: fileContent, isValid: true } + let selfHash = null // If we are validating evidence check for optional selfHash key if (typeof fileContent === 'object') { diff --git a/src/utils/uri.js b/src/utils/uri.js index c4c1110..100ae5d 100644 --- a/src/utils/uri.js +++ b/src/utils/uri.js @@ -11,7 +11,7 @@ export const getURIProtocol = uri => { } } -export const getHttpUri = uri => { +export const getHttpUri = (uri, ipfsGateway) => { const protocol = getURIProtocol(uri) let preValidated = false @@ -30,10 +30,10 @@ export const getHttpUri = uri => { uri = uri.replace('://', ':/') // NURI if (uri.substr(0, 5) === '/ipfs' || uri.substr(0, 5) === 'ipfs/') - uri = `${process.env.IPFS_GATEWAY_URI}/${uri}` + uri = `${ipfsGateway}/${uri}` // compatability scheme else if (uri.substr(0, 6) === 'ipfs:/') - uri = `${process.env.IPFS_GATEWAY_URI}/${uri.split(':/').pop()}` + uri = `${ipfsGateway}/${uri.split(':/').pop()}` else throw new Error(`Unrecognized protocol ${protocol}`) preValidated = true diff --git a/tests/utils/uri.test.js b/tests/utils/uri.test.js index c0ac9e3..71f6394 100644 --- a/tests/utils/uri.test.js +++ b/tests/utils/uri.test.js @@ -33,38 +33,33 @@ describe('URI', () => { }) }) describe('getHttpUri', () => { - let ipfsGateway - - beforeAll(() => { - ipfsGateway = 'https://gateway.ipfs.io' - process.env.IPFS_GATEWAY_URI = ipfsGateway - }) + const ipfsGateway = 'https://gateway.ipfs.io' it('http://', () => { const testURI = 'http://test.com' - const uriData = getHttpUri(testURI) + const uriData = getHttpUri(testURI, ipfsGateway) expect(uriData.uri).toEqual(testURI) expect(uriData.preValidated).toBeFalsy() }) it('https://', () => { const testURI = 'https://test.com' - const uriData = getHttpUri(testURI) + const uriData = getHttpUri(testURI, ipfsGateway) expect(uriData.uri).toEqual(testURI) expect(uriData.preValidated).toBeFalsy() }) it('/ipfs/', () => { const testURI = '/ipfs/hash' - const uriData = getHttpUri(testURI) + const uriData = getHttpUri(testURI, ipfsGateway) expect(uriData.uri).toEqual(`${ipfsGateway}/${testURI}`) expect(uriData.preValidated).toBeTruthy() }) it('ipfs/', () => { const testURI = 'ipfs/hash' - const uriData = getHttpUri(testURI) + const uriData = getHttpUri(testURI, ipfsGateway) expect(uriData.uri).toEqual(`${ipfsGateway}/${testURI}`) expect(uriData.preValidated).toBeTruthy() }) @@ -72,7 +67,7 @@ describe('URI', () => { const uriSuffix = 'ipfs/hash' const testURI = `ipfs:/${uriSuffix}` - const uriData = getHttpUri(testURI) + const uriData = getHttpUri(testURI, ipfsGateway) expect(uriData.uri).toEqual(`${ipfsGateway}/${uriSuffix}`) expect(uriData.preValidated).toBeTruthy() }) @@ -80,7 +75,7 @@ describe('URI', () => { const uriSuffix = 'ipfs/hash' const testURI = `ipfs://${uriSuffix}` - const uriData = getHttpUri(testURI) + const uriData = getHttpUri(testURI, ipfsGateway) expect(uriData.uri).toEqual(`${ipfsGateway}/${uriSuffix}`) expect(uriData.preValidated).toBeTruthy() }) @@ -88,7 +83,7 @@ describe('URI', () => { const uriSuffix = 'ipfs/hash' const testURI = `fs:/${uriSuffix}` - const uriData = getHttpUri(testURI) + const uriData = getHttpUri(testURI, ipfsGateway) expect(uriData.uri).toEqual(`${ipfsGateway}/${uriSuffix}`) expect(uriData.preValidated).toBeTruthy() }) @@ -96,7 +91,7 @@ describe('URI', () => { const uriSuffix = '/ipfs/hash' const testURI = `fs:/${uriSuffix}` - const uriData = getHttpUri(testURI) + const uriData = getHttpUri(testURI, ipfsGateway) expect(uriData.uri).toEqual(`${ipfsGateway}/${uriSuffix}`) expect(uriData.preValidated).toBeTruthy() }) @@ -105,7 +100,7 @@ describe('URI', () => { let errored = false try { - getHttpUri(testURI) + getHttpUri(testURI, ipfsGateway) } catch (err) { expect(err).toBeTruthy() errored = true @@ -117,7 +112,7 @@ describe('URI', () => { let errored = false try { - getHttpUri(testURI) + getHttpUri(testURI, ipfsGateway) } catch (err) { expect(err).toBeTruthy() errored = true From 808efd7cabc741f7220595491dbbc435d0f36e5a Mon Sep 17 00:00:00 2001 From: Sam Vitello Date: Wed, 28 Nov 2018 13:00:55 -0700 Subject: [PATCH 6/6] chore: update docs --- .../doctrees/archon-utils-validation.doctree | Bin 46493 -> 47305 bytes docs/_build/doctrees/archon-utils.doctree | Bin 52340 -> 52849 bytes docs/_build/doctrees/archon.doctree | Bin 30147 -> 30360 bytes docs/_build/doctrees/environment.pickle | Bin 54619 -> 57879 bytes docs/_build/doctrees/evidence.doctree | Bin 16740 -> 20427 bytes docs/_build/doctrees/getting-started.doctree | Bin 9991 -> 10000 bytes docs/_build/doctrees/hashing.doctree | Bin 37064 -> 39356 bytes .../doctrees/include_announcement.doctree | Bin 3009 -> 3007 bytes .../doctrees/include_supported_hashes.doctree | Bin 11157 -> 11145 bytes docs/_build/doctrees/tutorial.doctree | Bin 0 -> 20358 bytes docs/_build/html/.buildinfo | 2 +- .../_sources/archon-utils-validation.rst.txt | 7 +- .../_build/html/_sources/archon-utils.rst.txt | 2 +- docs/_build/html/_sources/archon.rst.txt | 10 +- docs/_build/html/_sources/evidence.rst.txt | 39 ++- .../html/_sources/getting-started.rst.txt | 7 +- docs/_build/html/_sources/hashing.rst.txt | 8 + .../_sources/include_supported_hashes.rst.txt | 2 +- docs/_build/html/_sources/tutorial.rst.txt | 191 ++++++++++++ docs/_build/html/archon-utils-validation.html | 20 +- docs/_build/html/archon-utils.html | 22 +- docs/_build/html/archon.html | 31 +- docs/_build/html/evidence.html | 44 ++- docs/_build/html/getting-started.html | 9 +- docs/_build/html/hashing.html | 17 +- .../_build/html/include_supported_hashes.html | 2 +- docs/_build/html/objects.inv | Bin 584 -> 609 bytes docs/_build/html/searchindex.js | 2 +- docs/_build/html/tutorial.html | 276 ++++++++++++++++++ docs/archon-utils-validation.rst | 7 +- docs/archon-utils.rst | 2 +- docs/archon.rst | 2 +- docs/getting-started.rst | 2 +- 33 files changed, 635 insertions(+), 69 deletions(-) create mode 100644 docs/_build/doctrees/tutorial.doctree create mode 100644 docs/_build/html/_sources/tutorial.rst.txt create mode 100644 docs/_build/html/tutorial.html diff --git a/docs/_build/doctrees/archon-utils-validation.doctree b/docs/_build/doctrees/archon-utils-validation.doctree index db057e411c247b0bbe6910b4f8bd9b30f1cdef25..efb71e589758a5ccbdb9a52c8ea19fa68f70dd07 100644 GIT binary patch delta 3935 zcmcImYkU+}72msgY!Z@?KoXk(VF^iqKoY{M1;Qf~0vJi4=`_%|OlN2BW@fWHv)q}< z1G2nokw`${*4hGr@TO8oV5qhA1#PKTTU$l3T9j6+RBQYD`AL8FgPwb5w*-oO^UJyS zo^$@^p7THV&fNZw+^_$`J=Ew%%V?APakR|7>TW`4xjix2gHVG#H6_)ZzDk+q+t4;y znN8b0Wwz*fdpz1jr%%#G$$9|G)&8*VuZ~EDiAl9>Pbvo-eGgaP#Y&5(OiQkFxm+~2 zt?X|0ol_1ZFJ<<8E-ZNu4g5lcCf4NbM{nnhuB(%;hp7(F}7n+4+vpb4~u$8w79&%V z(002w>P|vCXrIvv@`=6VDuf99fefFYQv=FVfhn~8Ul#>Y^j}rWd6jlS0i32pYzxMOW%lmuM zlEKrj>tVY5K<%x??gKr|tHH7|=nbl2>{TSg>&IC0LeR>NL{zV-sD`&w4TrrU%P_q` zY|4rQkhFl;z@}F!KHX(WQ>QRu>~}%KW+S2u77&UHZqR; z6%Y3t&;3@i2=JXCUN$ZV*9qLU#Bp8AdMpF&dW7X#uaSw&FF(WrDr1##O0m+wb}jYL zBTWUK@hnuChh7>eC@u$=C$^DEFvQ4YkdR_14xiwm?~fimatgOqI5xpW&mAwS%MT?| zng)8FQYCk*a@^L!O?L$~Qq8RSAr@kIBGY*yH9V0TW}BS=%zzc-GZTgwnFW&N6OU5K z^U0shZF3x(L+AaRruz~(JpeYI(_HR4k7gfTR5+h0^Fs_hJe69WN-9rf0o{IdVevxn zfD{&S>|&5Cg*bYyhb}IJz;1^*5 zb+B#Yb%aziKFZOpAR$labbd&nz7vt`FFR%*H?ODfoY;`hqFR2| zlew_1$Ssf2^(Sjb4I`?S5hZ!(gsn9hlM~7M>CKaKYh)*6fCDke#EvW!CnM4CAa`kF z{a&MRN9eZ-lhCr;`yB$E;K5x|BpSw~9af2c*Ch51b3E&J1ZFX!(aWbs7wRyFTG>X! zI~?UKw|oZP!0b+cm&G?BpaR|u7-GZ($@WmoGkxRCy0R@WSMuSk z^N*5{VG>C*R8!S8vXz;jJ==JdW0u5sgoYM{;*qxVNRP8fgG{CZC-U z-T^+1LRL`MO-(nkNN~^~U*$n|f)vs~p-B;JkY29*8dK&N-4VYY7859g>;koq^f66p{t$XO+vqiJM&gb7?p6Rk`N~|!0?B&{hAX!a9rfd;{HB$_$8YYz9I9s^o zN$&DZ285)dI)UdNc?y<|LYf*74O1c}`4+4j(uAzxIT++=4t<6}vl4qcne7K%j2vK= z990Xb1g@3{k=n3nkb@l7&x~nCIyO!CB^u-q-Fj|()?v`!y^E54Gxx+o#DaQGX@xmM9Fg;km)cc zhH(cDle6^f;Fu-nz~Uo=%s&&-HK07+4KlNrb!zIv{dnz=}jge)^f(ATRN-Spi*EwV)n%{vN$CR1o?;H|0lhRAdh@(IR2d z#PCf48psdW9%*2!ESo+nKz_)UxwuO;*_kmdBVOZ=Ko2#h%DNU*+sGvzlG6`IqC!qqvrE2?>ywbNgHXZH|JXeEi7kQf= zzEHO17ohHiV=4K?PBmaEj;yOj;sPA9iExypj32oKjoUcX{8F<%i2?T6{O>Pk m!aH>;`v?4uHa}nC{RlKZ@^_FzDr;WAARlwrPe5A!s{aC{K*l!! delta 3313 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 Jo>OjX`hOA%!8iZ_ literal 54619 zcmcJ2cX%7c_I46don8n%7)-zc><~ilp@b4*AVCm{5V9qErO1*sl2U*LLP-cM^xk{# zm)?81^xiJL_uek|{@(Y@jI`_3#=770eEwt4%+9>$oO#dg+1c6E`tUw&g)S$Ro!6Yq z&Pl0UwlkS6)@@r#WfD7hcI10cSdj1I=9g)V3`k_!Q<-ET-`65b#Z;zl``p}YCKpdk zWm{doANu!q^8;EV%f!37@&j8U!-~1KSRvV#Ep@ggRUtpf&DTYSs-#NB6R~(^ZhU?r zKe#OxYlZD%DjSQ{6_Ule{E+C;Gx9?t{fnt0jSh43!y9My>(#4QDw{~o%a3SFz+VC~5+MHarzNvnPqJsgKI_syX)>Ki&iz)1$S&U~Bah0f_vir{Y zRgYefuXppSH9BMdSLo`I{#|jnQ_MFwqe`vu$be$JgKp>7i1ZU)O0Bc{lDaO8X}m*@ z)^zi0!BnJ|12P)DWK8gov37a<>zMJc>!qhDT5>=^vomhi3Q)iE?o(&h@0!ZaF4SXS z^?SuLsf3I)KM{jl&&^Nb;FjKVeW$@$6Ju~Zt`CRqj${!BM@Lhk7+1w)B0pJ1v4NZ4 zusn*5yrbCIGm1^TK5tqc(q?8zo9j_*fl<)Xj@lBVBbK&=?_0U~t?7HU_HE$t2HiX! zL$b4NnNlJdi)XXBQnoG06D&VP+}_sBZ&!AEd#~F&c-)>^_H;+%=}z8(?5y411#Z{D z+!onfy~KK}{4{vHtDB#$O*A;$cJposy6YpeNzR~ri+Hu0o8P_c)gE52W_Y}sS@vpA z<5k4#)n3}Gz2Q~GOtUsK3x4h6=JzF&fyVtn<8EF@^ZVndUEV`vq14rtV@P67yx`ze zjf&d`xcOMw?E@Q~8Bu3u)Y&uYM52!ICLZLd6~45&`Gn=@05R>*=0Mm?&PgSb2wFZV zHrm~MN7;tcs8c}-<1VL=w1=YEWr{LhYC1JFSvWHiCU!6;>UWqI@9biZ%fY8EH=idz z)q5zA)b1q-?y{$eX51u~oXQu(@1mP8mHnRM4e4Buzw^re&Nm@F$m{pP+V4Y*-`ZBQ z$CeAf4|Vg0S-*ol4u{{x9{q03B=ZZz?<3s&k!8P+^7?(W$M1z+FBcitk0}pkvG)7e zs(#bfaq#DprEEE}R zl2^~ED%TmAv2){u{AqCPbT@wn9SiSuCY(E|a@h7S`;|XS+&J6KpHp_@TrY{|c}P6p zOX3A(@-8%VUZhF982-}06uF?~FM)%Xy7|lKplA2x@aXJrbPWKC=PQzT{tEHyN;iL1 z*{`e3$#f0eD4$H%di=Yt?9%mKPjAqE-3Y%%z`{=2Lgie#2_D|;=5L{gRXf}YU$6B0 zT8h*qa-DHZFyh5{{x&!N4>(sSCfxk(jhH`VbJZBmE0Wo)h`Iox3Bw7E11GD;0{lPU70L`FnsH;@flY!pOkRTtd%v?u!iWn%`ur z)WCU=9DGhoq@NVfzayE|{qJ|~XD412Drc!vz!1v$!Pkl--C0m>MQx!3RiDQB2b{Aa z{Z0A7g+eAKXic0;Gq+_x!|0F^vv*r9#kpbX2 zsp6UZ(~*8V%UtxC;)47?ohO~AoTr^<7UiE^*t*C;NS%A-GU zW`EG`JSvABxZhsKqH)3^2cdNy^qjzp90byNcvdCFH6y4yBhowSKm&w;RPrjASB-DZieH=l``Bw<$?ng)z+Cv9q&~f3L-9Xo(DpmFN2J zMVpU>I==l8@&0cX#|LcDWMs+i1V zaua7~k}6l2s8865uwIxbw^j+32`=Qni1bf&;#euRDSzZ8}4Gh z0%c!2ax3;tYh-9gCf6Fn?VMKgt#0@(GRB<2Nb#|@TsDzn`19YBQ{4Ksr#kGd-w$s7 zM;tP_EcV4PlP{JE`Jblsb{=!{KQ~53nHy41?DD@%>s>zeex0^aWcluW?D3WV4LwJ9 zYbAsE-_g)rHIjP%59}Y&4bYbVvr2D7CjS@quh6Y`IzA^}Xj7@KV*cM~Ubb6v*Zd-G z{_=lM>s`VaR2!rApIK|v7`6O=BmFf~s#ot`y=22HVES zu&((Xyw@mz;rTci`eLv1YhBqui2=A3Z~jKq)e^n4Fi&w&!TEBqLKJ z1v846wAdYJN1;Yzr`$Fqi%yf?Tfe;lO43(j*kdrlFf-m+zn4C3)Uw!_CN@&PTQ*sr zNnwL)h(s5j*XP>nk=mH|nj=G}rwVO2+2Yw`u2fKCfhwxyu#F?(<+|ppREJYk%VUS+ z-1XO+w8^^l)8xEVE6_y$cnODwQY)g8rsc?p95aV zwFGN})N?s>VsZdHb2MnZ+DdR8~bjS-zmEdQ@equwL_|=JnKS(z`RBjdk(l zSF58QRSno`5@q;lvJ+KnU@M-*r}ZwX@uC zIL>v=&8b8|t;@cBl3CS+LfZ5kA;)XM$<2-FGf*|7^_WOs?pG7FI^79joo$cJ_1KU$ z&7(v|TduP!-d2odQiWncO`;atVYqa_(vFJj!K{zgsG5vzxeL=xIzBJP*-j=tUu_^= zHpI3u(r5qu)J7$MV1x2@q|vQ@r;Sx zW@vTQ=Ga;_1Cw2))>tW(P+MScWI!o9JBy_`wI%x)Wkbv;vxr$yZ6!Lk_UITQI!rcK z+n{B~ZFo0~zer!UsVUe8uU4o8rxQzdIAS|vxOQ|P$lJ1q2~C>kK$?fV^>Tz*KoZky zaX1IIW2-o6bT5y=#@fw93B%>W7Vh?O;BAkt$Jnt9m9Z3XNo|d*g4zLXuA1sGHLOeF zDyQZnZE#Mnc0?QJ7-}bWGK|!TKOLYgsdmQx3FQW@UNYz|Xeb{kqYJpq;pk?LEL)#O zm0sgx?Q9(v#LmtfPC3kvkPvr8$Ecdl?)JzN5A5kLE3B$TdhNzu#?R$(#Vo003^}Kx zgtHe{Reh~iyQ9~vv53&YoCdkg2iq?0!3eUe_V8#KuFuv=9-SeEW@2md=n$Jnn{kLp zF3|a@Khj1io>6B*Z5kQo>4gJS9Y7Pdai|?=0SO-Y3~fG7M~ff&NMq6y zR}b_$F-$a+3Q3(4Ra_d)F|V@|V`{Tgt5`S3h@=QyewZTKq`@2(V=Y15EGMX(G!MyQ zwuqU4+`OnHvD`gO+-)lqB303-`mIx4pBd9BQzA^pGU+ zmQ<#oQfS1~GRupnN>iB`-XJk27m3+k1p`zvlf-O9W!QN&Zp^?&Xuoj;C$qdcET~Sj zx++UJ1~9U6c;U)08*^ZlL({Z=Y#gBvbI(E3g|?{5YjB$Lo^*d*iPRM{g&0y^s(rpv z*jGM+huf)rtW~8F9WX(J8N1vD<7SG96j#4CJ+mkhKZ`3Krb(5EK^B*O<%b|P$aByd z>C;@V=AvMSKDdCaRm_)icv7L}QKM-|bJmmQq=$plnM+oD)qL!mH4bJya~`?o*V|KF z{4?Q5b83<1%)*)+g>2l(=@m>CW9^xEM?oEgc5B(3=VsP&Fp-?KSbdyl_@Xz;GlUo} zs0g4s1f3$w7IgPywSIgdG5}E!hmK$q*GOjS9c=8c)2up@ZH(j8 zR7W!#>bRoN)QU*YR!3Rju9zm^Vu1FN^{6}-QN@^!&C%>#Lu|~cKB$;W#OKSowh+h` zt9W=NJ88X(sF%+pJTc!1Q!bmav?rX7#`K(A9Rox;Cz`}5&&PN!*+X(MI$;`K#Qfk` z6#b`qC1D(gwx~LuJlBDM^!o?&r{grx#3o8XF|mawfnLP-*G z+o5MzC!sZ}PR7=Hu^evab^7dfSv^I%p31H!fs7Mv$$3cDDY}E16ZdQwn~S9)m_7}C z?a3S&Bb{@lA{MD)SoY__TZcLwUAVf|-n5B2gQ|6igmioAn;D}z6Ya;O_1Qja6ry4~ z;GD^s+51`SGiw=!4D-9QQ3EXl%ZK|p++p2cz7p=%QZ|9>f}NF}i*AwLlWdrW&Q2z~ zVsqmPYkxRv&qM2Ct7KRURMs+J~n*r#{J7)d39m3OVbsO6}c|T%0U|OoDt^YuWsJflqjQe_$ zp0?ABJEX&%>|mJI^ClTz<<9vobSMvxmrl9+&td@}S&XMLIGs!CZuF5upl%)};+S0* zi}Tez0t|*|Hg1emM%|0%@{F#ZBwBSJ_C?D6>LjIekXgl4_oIia9>CT*U0y0IXfhu} zTU0$nO?9{z(#wbi^)PnCEoQi6KD`izw;nR;5ww=i)FC*I<)&Qxd=yRPOfc3=W-51p zn(W8WDXJc4R~&5hmE#e2pS;$^ICoN6~Yy9uRN$H(crRS*@_O6 zb9nlyr_e6f$;yRBJ&k?k!^EDxX5#k@+M?>8*z&HoQ9X+i3KP_GD3tGd`|C@$dLBE= zG?=4ZR1kkAisVwnB&y7d}6ilzZ(QAoW`h|ppWeVOl<*V^8&?X*8!+PZR_Y+=q{P;a6& zs@`HB1J@@8Zx?XCk=5qa+vtFU)toyk=rLk(B$J$z#NDW#$MDki4m!$2ew^3+ro5I^L8 zP7&-pK@W`g__#E8;?XHy7f~Of!>m5A^YHCBG8u@^$FU` zvsH7OOY)F967$ukXq97s`O0mB$(8o*^fPpcs?TYr&jG8cFHn#>Tu*i_Vj_V#g8C9| znp~NV;3cN=n?>p?QS&vnHjt~x+`1k2=2^_>`IrRPFuYlSdoo@Zzd_f^@$a2CndQrcyXJ1}* z)UPNe%X8L&W|}Zx{f7O*(-3q0mQ1LAC$b-&e8lIdKTx(I@+{Grgn`wkKhdF_WQUm3 zFx$af!oR3zU{?Y+7;r=Vn>~5B$l0i8wSQw@?X%_dV02H9;KrObL(Ecj3^&V3^&eU= zP3aZcO)g)i?{IUKFHiXXiyo0dGU00~U?S2BN2FCe#>)uKNmOlq=~G z^Vrj+PAr^b=9DRQX4Nw2sQI-yQ`SZMVs~VJr&#PNY&LOXTOymrgR4xgM50u(8FS2u zajYv&%%oZi6Ag0W`pp|RPntL#^XXmU^P1Czt@Z3_%RQ5`nx;&j*))CnuCbl=oW5&L zp``kGT;zH>o|oxtfv0geSo+h00c&sBbm;2q9H<7cvmwcI{Noy{Qb<+<(LAlUi>_4L7VPaO)po`pJS1veBayM&}`(WO( zxAE*j`WZ?~)?0J?)s;yV%`(d{G%vQn87(7c@+jy2f*Ot<<y!2| zs;DY)y>+CRDDhacD`Ew#eBshLsv8y$Valss_7ED4KCT+Wo`!NW2tEgI(-Vwk(Hd1_ zv5gFn=VqxkwH#`d*@awCIUZ6+EuX)QRirmaoxRMMR;nCs z<++3A40Fc@bgcL!DXFqpw+0%^Gt%<&sLF9a9_^8VHp#0ssSBigMvqG@a(@R`Le^sE ze#vYT9)vWaY!B;^JhfxVJT4J-MPmXLS-uBLyO}qwjh6CJtLGC~U)GT*sCCdtB_% z!S&Gz&tlj$!(OXl6X}Py4zMb{0ruiyJ6@;3%>!TTQ5#~9@1dl*W?<2_Sf@5(tM_eW zy?bNq#skSsAR3(!uG$m@XS}O6qnwOKF_cqWwFPC1tG1+!x@s%Rq^q{3EVybL$_1{P zLb=3M+ftt8s_iJRaMkvZrO0qTI7g(h7@>3S4%m&y8`#1+o|uoH*4LQ~Ib|BGO&jV& zA(PVvIE85|ISZzZbe2pT;+!>Ylyk+j0j09 z!n+vlc&j(TMbm+JBB~fWMRbKkh!SlS=sAjW+FKU_U+VB`!b+XAzVHP`*IGl2jcw(Hxb3%EkUv*)J ztMb_5sCGs<kNUVf>DX!7g6*P<$WJpUN~JcF4}%w%E? z>Jf9W!5qS#q2YF^k#F3nLs@E}?!!=OT>2mmr_z;h2c;k21wtqzUBFH&qmz9%z5K4C zd8Jx<9f4j9*OBbK)I;nj^w7Q@&Az?^WMR2&5laP*;~4hxY7E3;F?ui-#}c!EnB#iH z9B(iu5VM4s6N%|@oJ$PuB=+{4C?`{oMBo&buAs(KQR*QAr%_FhMo&jCl6wXueo0~i zkx*x%UO9fxLXD>cET4^H_|b9>TFKYBkowp?Z>jyyH~lYQe>rY1Tx$P|O#h47Uyj8~ zP-sgHpxm#Xn9w336X*9Wioj zUQbNuS$Tu$eI@cvF<-#YAxYyE&U2iow^5o@Os(30=Q2A`X@u`eyJ=Mb(W7hD@2_YqYi!(D)F9s~#35M&lz=>8`OMP2*JjDBJC8aJYxlKl`$;>|m)r z-l5`MPMvxT9bw{e2vLdQvJu6ZD2Ao`US|dwId8PCbogD1HXQRsY1ctoT`0 z_=-5+E09+x@gN+?l1kw$UP&m@X7M{Rob-BS_L!2>kfxio{T${0`l~VZJWxk3P%l8Z z>P2kflCwJ0(n1o|b>^Rm_>zYSBbNF|)JSJ@s2i#eL>)N5!4 zXRkxJ>J8DwcsHbJ3a>@VLk;yNDzln#VXEnUR(Xj-E>&*Z|P2pq{xNpJ5*XEQ!Z5BOPL9Cq546}%$p0XU5qtwdXgUU%#PSdn*amL$I^B44V)vvT^ z)7fuQnGki>jymf^opqy*{z0bt9Sv!dY5x%1pI+QwRdEeznqVsWH`~)DjsA^_tNtSp zld1nJmF{*M(lkYUFFfN;n`GG=Wvq~5TXuUHR{Y7*fiiKwoHfVmL3K-(bcPoCLIslL zQh!RS`k@n!jQ$X=8bG7Sjre_Onm%>UjcQl?#2D>3f^irP)<-nwM6!_EN z%E_Wuk&c$yaiVxttyo{c>ZKCo#!|Z)+AX!K3%tP#Un2xgOC0KWNK5USDC5m&K^STq zS@BU@r>Vu%pk`X>7Hv(S95-u_r4_#xEU2}y6O^t4;i`49C8fSDpp%}3(wX*i*d&^o zwIA#lk z4UXw~PaFp>09yzMyG;;qbf@(`XR^&VTZ#u;X%BQjwwB7qQD>8=vuV`XEb8cAv8!#+ zU{8iAg4@=M+pa3EAx#rxWqU{)$Q@9|nxi00BzBZace4#?S|WTWNE^tVQFhfXf-vxD ztoQ<1nI=!h2sjk29KX%?Pm}2kE$m8J^@sXuI+_r#76@1EhArad;Me(SdeS}L>v}NN zn|}U_vG1CVA8t*tk=b2r?V)Yy$jp$+4pC=n)Y&oW>=bqM5B0lU`Jtu7YMCio_Vj9r zNG14FcC{B8Y<%|?9N#FzNVWBSs^S{bG(r0IWxEaVeyF%=e}Nc$R4U!=Hl%5a_yZtq zfMY1T>Oeslc$^h~fcblT`6Yh&(%zzfpWiLObcPmMDT5ymP;JaKQ!k(K|6kE&O6f@BSQyibuQ&nezvaW zp#wrRAHr1!VGBaTf4`2<(RT@5x*V^xKR5@Au0ymgeTchK2`A@Jw%gzwCiug>_yr+& zn&L2zfV8nW5@lB%B?v?A(NYPTrzOG{LfY6YLfKWv2*SV@v*L@*;0CT;;OP|J+Nd=o z^oz!hrPSa5*uAVo9f!S$!|@QVIsse8fp0oj`ha{oSDpNBGprM(qh)l7Xgx`5)e$*a zDnUvtqo<(VGJ2}OPxHc04}sGX2YCjhW%NvxU3Hcq45MeW;$w7R171}q;YW0}(n+Ui z=^V;&^6X-U)}YSCE^v7sgsaZSmR$1ThUowz=~F0?X+L`xh@K0z9?jlGQVD18VzgWK zE)n>pUif7pa9ZM+E{C-2U4gQzt`vk}?Iz>xYQ)>3iCr#8f*ah~k zg>cn%*jn~X2e3zlm{zI)a(>EHti&B5}LX!G)zFzw(YD6N*i7ev*IT9xMiC8-1nu>8G@cFW%@0)N#D ze=P(~OB~tjke0tUPRjP4t9aOcOhK$FKlh1sH9o? zQ!8`tiJteh9?jebQVD17L$q7wJ`(uHUic>=a9ZM+K83W*eTK5DJ{N>x?h94|%uTM9 zIXXluUsC#0>{r+Y=Dvo&`X{!Qxk`$qKRq$WTpE^DzZKozY2BL5@1+uC(`MBl*ly|k zQSd)`@jr*)X^I2=1=7;_E6T3=O%R68-&yg|Ijo_aP&vh|l~}q)dw)>s+sd+@snCO* z`X`z|@Lv$F`Zu;Dn6Ghk>xh&}PpcDcQ|jNMcQ|gAb@=u3o zWe8;;r4GejP(KX9Rl~6*^?`{jy{gW7Fr|(VRU@@3&HpH=g!4BV?UuhW0$U^u4t9aLbs=2Ugso++l2YkUPs~+Isnz!JDAlRgiP}8TEVd_V+nVk5q|%-3m7^7O z(xN8`dVMc?vQ$!0CmnTWN1aU6(Vrt!8=%2XI5rgAMqb>;RdEeznjn3fu-yiEQ&jLu zq(DrRHkV3wyI3s6e&V-)v_akyWxO#d2m{}m6uA9u4)&Afp@Uti_~gdV=6XHYHGt*my5}A zn3~dsT((IjOf{ZW^p-9-l;dWt2KKS4RIH!0S^ajRyBx0iU1sjqQqM`0N})3XmxgfF zY-}00nxF_E2UtCT-PWlx($PkxQ;cP`F&)*MRD!hHsC1#-MkOzB<%JhQ;Iu?aijX!c zC6rw?M-V0|b6N34Wi1_*^_v|060m75K4GZ8s>ss`Kdo!R?-`n8g`mdR&}TX_k8<3s zwQOwG->iNoSg5CkdU+np&oje9JuKAIf|?HqB6JXhs}9DN5&9n#AWj@|Xq?ji;2a`$ zTx~}O=TNDH2j?)f+u$57@C9D@5g~9|A}2>e+Ta|8va603gbB_M}u?NM6p0FOsV^=t%*8d1DXqCVZ=<$$SpB*67h! zI&cN$IQe;~o*7JsVmmvihvItkZBun6dLm#~LAdH_Y#A_qgk|YC#E1i{Ax7!$Vc{fR z?{f-v4tR~2zgC;qA-YZ~bED3@s53w6929l**R|F4Xt0;A8w7Ww7k5)tTtk{BNX^Y` zx3Rqi6<6IV5EGo+q|)7PLzRI6JU66m2fH^X1fi=BZ7a_i+?NxPg5M|<7~H~cmfqyJt+`l|0$^i?b8(TPea;J zJcBY`H5P<{Kg)_Q6vG>d{<;_bMhKjiII1@xZ4ll< z*;Q`~!m#*`RD#xNiSTzJZ4my2va8+`gn_@$iZ2KQ8hb# z{Y$o6s=pHa*IxWLA$Xc10pCJes=q_oRo@H3Q2hfdKB`AIVCrg<2Yyi7hPiF62R;3x z(H|+t$=h5|Hl^}US+;{REc*V0c7)((2v_}rEknR}zpC}dDL}`o$HQi#Uq#h#T9rNp zewRv+S3^Be^7SSe+6Nf?S-$%H@6>PR?vDhdn-yMoV}IMZrNK| z;H!Ay<3ixH#4)W3Y1yks*;T6v!mzhGD?ax06Wtn_qeHaPK4`a}*sx@~mgsKOx;2{a05PSImh>|`{7;0+*LwIQ}7*!(=&+Yu)? zJ*`f(&8{1XmW{O*P30z12~ugP*p%%yyKW}<&As?7Lhv-jp=}9iBe50A_>I3H43*nR zC1{?O2%iFJBe5;YSbi3Sfp5=>FA_Yk*RS9?ccFW&%fwy?!yM@4Mi6h$`((<n94AL@pAj+*r9Y)6unWv3A+TbNt!1u~Qt3}m z%q=aYc8G3A>(*?hq!MJ)rqndsEuFIkpYh^5L+~`kfo35sojH_U)g=f+XPy-wog*8N z3foGGA2wGd{OGQuR&MDXO)AQ9_B*57X;m{s73Qu5w1Va$1YQirmNc7hl6LEh+)9_L zGj4P198ok^E7F|KlS+_N%gKDU+uVAP;1BlV4++836bI-++K?QIva1dggyHmXsRYf_ z65$IVZAgwl*;Pjh!oZJW#TOF&&H@zHa_2^eXys_iKyF=#yR7Ex^M9OFf&^Ipjz_!Y?*xIL=!Gu{fzuL4b`qrJ?_`u+b&4Pif2Xn%;BTW^ zk77DRE2mNVbL;8Y1@g{-aMhXE+6+<2t@Ni>=FSp5XKOv0xpSlv&fK|Zx6GX<@bkU! z3qs(u#4%k6X_>nSWmjD+2*cbZtOS_bxK`%q5UpHF>Cdf~VHcRY9KuysU~8GHaJ5&48^Zw|47`+)9_LGj4P1?V{)otw?iv zr&NNRT2Ag_yUne43;rH2{@xHgO>uztLE4bqk21b(D+t5sgHj2arzOH4g0vxd7-d&I zA_xP2loek{m|Hig^$4d!wDK5bAh$k_yS?V?^Z$%g zf&^Ip{)u+W-?IXL&I^A&1WrpF*$a@CzZX$<)k}gf{JqRdfWJ*^<&O^0$}5!q-1;hZ zfxOosT=hD(HbYc$EB&dJxi>`5n_7=%?k%Z=Gxs*yEpzV({9P~nUm;+Wopw9LJa zva3E2gkkPOR(#C$;iS4K)C8tY%O(_0I&E_OlI@nyuLS?K7ynHNo~Ag^Zy_z8-=U0!S3wv)e_+MOr!2ghMIPOH)Z z7%Y`w04#w+&~6DFD)3=m`0x-oEpcQcAT5C-QO1(1APj+{SqTzY^Wq9UqM0$2{v^9B zc7eUI5Lj=;)@F)IlBGknQn$S5SwZX3)U7C$aOze_*bGS{_~?+ zPi(qJo9k1Kn>E@zu98L9?Ts#^*vV)H(HlTu;T2mF9nzVLujo;obemx}5=|RxO`6tC zq!Ogn(y}SrZHC=U@SA(_TZG_gibLEI(ne(~l(G0K2t(^OQVE);CBmmb+Nf-cG8SJ2 zVc^@d;){x8*qYbC=n>8AKpB|DPQ_mEzas=zU$L#4Vd++N+JhN(XHm6_R;2?lO)5bK zEP=bC-4Zxm;4NPGZXs}5;>dP~v;^*fGFD#&VF;YbN|3+}YdwCdnc>;ijx zL16h6Tbm{-8I}&!N*zD^h~-zUM^m@2RKls-5ABw^{RJNN!Vd_6(-OxNgS6Bgh%%O6 z1!1UbWhF>m&8sW)h-TU-{TViaU7#)rf%R8xEp?R)ONV-*u3CnzwvWfDe)Q!mu&JU$ zY&+VvraL8-qodBksIw^Q920dG>n{nW(O^@=Y{6x`xX!A$hBQr(fGpc>oN}mOVOAi9 z=)6?A+ighG6!8ku#;Jg^tBQg!@DeM&I90x7vVfz&ShVuR-M?i*XJ}y#WwlqL_)Xrq zXhg8)LAYu@wg{GUBJwePkq~)bi8`pfv&t(`2TP+3!6B%*%EcBMbqEfXN;nmVvE7E^ zaKSI|;*SWy(-a4KB-?E$jzR@*-wMRoUnrHJeVQVE5u^>pF(|ugu^v!pTwzC*c&f+aR1O_|v@j(?jqy#bKQRX=89E%J__eAPk9TOC@NYmIyxw z(#GIilwEb6APoF`R(vt=z70}q2oqU67W&yHR%4J%TXo-OEZh_LBMyy;|9$Q?zs+rT=4r4ppq=G@2FZuxy&@K1R0 zPln)WilcrC((?N>%C34w5Qg7>vf|@+L<7>G_f_v&d8Tu;_$;Nq972=#-EQRG=gIniXr7h`e+SaW<6V^TnFK)?_Wx_Vfg!&l>mQ}Yvqp)(aLv}{!IHlc7ePfAYAn$wl-H(Zdm9~t<3!- zdVbb=G;_a5C7iim(QcXhP2j(K;eUj{X^CU{6VfvG7s~hwf*=fYf3p%`Zi8BxqeHav zA4-3g{V#Tbxn8&|xvDp|mbprnr9V9}$8;K&So?_XWwdV1W?!iU*|dqZAKNXR{RKb3 ziys(*rzs9}5TvEE4rP2vRuG2HA*}f5tZP7y(=UqDN-Eu=t)Z0TW)0SPviyd~Fzg1g z!y#NX0$UQ>trOBHy{k^HO`{`4!zism(>GcwLHg|Q$FSX|fn^0h){9>*1W!{O((;g& z{S{Dl)rx{J^sOY7pm|y%d}T<>{wgTr(+Gkv@Kssyu`jQN)XF;@qLq5eKpI^QdqMl^ z5Uy&#wrU!sSJhb$rqMM-)p)H+^S`E4f&^Ip)LN^z;;XLRKf4)#qSh?rzs9}XGlxu zE-1Tdnjj3FyRzb=b8rLFsCjx>E35R2#->y1kCH-(c@BwLX$$s)+T9>rwL7+?mjA2C z+Y6bL4p!&aX3{-G#SE=NGdNQ!K?W@Yd$QeT(um;q^5XXn!P686#oIj_fPGMQ)xLr- z4DKhDpm|y%e1AwAfGEnYIzSKx9%IE90A|unYh|7e(aM38flM05Uhv)u;i@)lt7cMq zRh{)=CUpOi|FQJY7f zV!NgEX~93^#s4z|Pg5M|vyhh3=TOE6W(8p=eSsApr9FRSxH_}+jRs$&4Ef0LOK1bd zFGINM6>Ldy$VZ0hY;~?}l6_Uwyr$J?HeZ)YkWI_R8*H~p_D#XR<;A}pf~P4C?j1-Q zjCWDSQmP;fo9{^_Xr7h`e;?8Y;{%jk^`RgP{3BL;!QjNV%14H)M}Q8|%Ey#}?D`4z zg8NS)T=f~YRkJI-s?K^ayM8XJzR;>P|6fWaNPy+Cdb`V;9K#1p@y`3tO8TDw&o3)XLm%qUU$5 zM>F?_RKl726YZ9{zXbkoFZ}NiI4yBZ|ADm3{TF3d^}_#L#VEA(-mCdet0 zTImBd-LmR3*ahbLLb$3Q&ES+rch46o=uc0~EiJ3|7u^H2ZatoXQVFtYv+5wWTRQ6m zKiG>O5`w2G4sk7Qd3vUjA(-KEE5z_Lv9?GtoBnZRb z`m6-_tMZZI>c=k~qLs;%{*<}_c7ePNA@EPTu(gSyl2YkUt;}sKdN$E|G;^CuC7ij< z&~BOAT;N-H;ai5lX^CUn3eqySHOj8qMi7R%DXavTtMZZI>det0TG^J;KT+KdyTIJ` z5U$z*TgzN!qDp^yVy;?Bt?YBovN>U@*x6Cr(ai27mGh#``BCSBsB>Y|xk$fww=)`S zF4#qI)4aG{tKu5cG{M16XS)qa3o7^ytw0Q?yGy0JT`ZDfKk<7&+K|jZ8Q-B5gn{qL ziZ3LU7w^u(5I7dC{KD=p-q9Iah)|B3g=dGorYQW&-mKaSdk~GiA@FHgY!MCTa;y^2 z0f~Y4ZM%KSJFC2Hx34r>-uFWd|6>bVXwvo zrW`kGSUDWcMv~P zouVa|(x2H6#V$~P7=)`1$JXYjN@k}|)j7vC(fg*|0_kXpJVI0+sa5Jg93_lJTC<0w?tfS8WC1bP`{_MJ44tYCX?jnSN|0WgF-~W@<@XH1pXtS) z6@sTJj{0m!%kMcTyXss)7=F)V#m8?sW6Z%nJ;N_tYNeUJ(ct-%zKmfMsSD5owl9Qm z)kWBL%NV8~G6o&3PP)zA7mJchv=YtarBVqpX_>f;?e;*wT<}+T@mGf6X^I283epDR zYLs1djUWt@*GeU5o|Xu|4$=nVdX!ytgCGq2Mpk@*;5>T$TG^*Vv~m-rKU>_4U7-CI z2z+@ITYHdKvIYIA&NpY!{$uzy(en?jM>BuBRDwgd%-w-@%iNs;zsn21I|NQk9Me6J zmbrUTcGZ1?FwEW0N`Se_>tQ`y>F5xxJV5DB4-aA&n0pAqRS#opnX9A+`qLA0%mZN= z;StgOsMf97d`v1qHf=_D9PO6PCj|ba7yeWToR&Dwry(ty&!CKNm-H;PwRwe8Ci3a?8i_-d;!rbg?Ib?MeNTD0^8e z(`3FPm2fg&WxHkbHNn5`#lI1PrzsBaO-Re;TPWjOrh+hRzQc--&A|=XgK*XR*jg^Vy}%_Mtj?uPs~?Dp548%-;73vkGH4n2 znC&(Kp9ua_FaEO-JWX*>pF`RJe1Wp7z7&LE@GGeV&C?R$Uqjjee1o#9z7>Rlf5%F< z0O0>EnE&ZnYXImMjeSoUSf%&@dqMw?5U%G%AT5pmM%h(=3&PO&A69%c^6FH1k+g>#ONVIXzm)zQ z+YA2=9pv?fz(3EzHkf1SPfyG(Eype+y8CL~n$3Pv39@N(Y=5>}ItK`Tpcg+V1W!{O zXdR@bb1=%T8X^co=TKIBbdI)3wva4#sob1YBB^RUI_V#c4x`lHZ_xRr8OnAy%8(|8 zqa9R_fN<4FY)Li0-%zbL(ghu_&bv()qeRtctx7XHMk+yOEi=oq-KLANf?v*yUp@p+ zQyk<9kTx(YqU@@b1Yww6St>#Ev_$wSkTx*mP#3n#~=g5@ge6*r{x{bnYnloxJ#+ zL+~`kf$jon>70hLt9BKHp>sMbK03#GGHj}=z0iSwwlp_Bzt&TmF4Arb<+xeP`O@aj z(6^)3hdjF*x`6QAAzZZwwj_Kh0Hj)upn3pos+}R)W@>Gk;ytAjq}WmvVY^MWdkKDT zFMd`Co~Ag|eIRXw_C?uM`w7BOyuVa}=4pxWD5QsEnri7)b=HHaHYuvwwJObjhg5?WIydM?B6HDTkMenfoA1RPR2A2drU?>o zFxzdI4nYM!z!!+&`B15Jx7(1WDdG=6DUZF?S z?ccM|8Cp1!Qor!C6aFC>K1y3}Qg=Zeg*L?MXb4v=#1^q~Zbe3+D-t2^!;wYhomC!= z93zc30*g_@f4agJ8g&GYlS()f$Fto=;sn8;=*2Gy!P6ASc@m@z#K|b*)24zj=1-MM z&^#>>ej20=#OWxz>I^{`_?fKu0#qqk(D{Lie^+31YeodbbYS!{Wp@n7%t2t|B3LVX67gPPV6 z#QEf1;6G0~+OV82#xBstbXYHxN|09@mW$AC!*a2}FY&@J4S~}VDY*>NhUIdU@d;Ex zn6O;QiZ3jyRS8Qb*A~zG&rzYbbm1z>akJ{HQoAcvSAudi`XVUTK)C8!Y#EeVkcbI~ z7aEhaKM>c6f$Oya9f%vG5*~;f*={3oli+Xm;%^DT(-djA71BoHHk9#|R6&?X+|G(G z5@Q?MN`)f+ubZ4F?WJs65f20kwdOCnNV|7X>i5966Mgk^fKRph)Sc)6&hLV7)!o>V z^JNjOs@*{}y{}HRO<(tju6wmEP49hD3DRrnxgYKJGC1{5OryEJqFFtIt_apYAzbw=whR{kf13q1HC4kQ zY8+PesBsFQPY))q!L6lCCRvPSQiY;=PC%SD_|Ko`#r_N0z7Ftw-I_- z;IDY$uZF;Bi5$HKX(RMH%C34t5GF!zvf_(Sy-sB2+JZBusi<-#d_bt+EYMuPr(d&r8(k5lcOYE#F1Cyk!`lN8VdB_&3X?rg{w4a~)B1H3 z-j_;v6h1(^jlzcl|HupfI0Q~hdGlz)|tn^ zds95qkyH4OtDOb8`g3<%E`hkz7!dkRXTG2uH*0P1I@21F3#z7T+{nXks+yUA~}!$>mZdZsBgrfZ^fYzQD=PA znH+VdM4gtX6OB5_s8fhK3!=`FsB>1-xguJM42)+ou|%$|puQ96_Zqt6l-GVZ>&8Bh zZSIU`@%$0bUGT9pnZ>iWoBHQr&J+~C{b9IZS{N4gdnqT1VHt?@!KR#KVB%1*J^RoHCe#9}U&DKw{&#rEc$>X_&hJ2Mj_%eG~5 z@!7FtXFQdO#S;mYEEJN3V|7ifQs~70X^!PfxgsqLOJ%!C#aI&mJuQJD zqOHN8-q$SFHSx&trwIcw2IDWEh85-dkvi45Odk9YZtmY)2{Hk&N*$ zOgHt0)?tXA&y{78**Q+1$Y}9MI~0@2SF#X|jOBl$j-|4Nq~b&X9>$T)630YFBs*J^ ziCCdHpUEwmEG{lZ2E#TiWsAvqMfH;e;b&|kBeNxRR_I=YZI#4<_Y3wrL!w8|P`|Rr zfJ6?YXA9~#q9UWrdjX&V`a1FSCaHc$%i_o=oWvceY&;W7b#h!Kl~R8YqyD6xL9w}U QmF2WW{e^l1QHgIDZ!^+35q*VY3!x=0vAR`ADkbNgFvoo`rk#={sduA2v zo9FZSdI8sw(lEb;N;3tu}WWI)}(~s^1fG-rY+7H z)>D>kdeWfQ;@n~V9HSO^Mb8T=USQ|_00I=}4V|GcA);N&7w3oKg0!<(-$1g>FqRoKH3`CoOXfrI@3!NqUDn)UoF4&8l7JVHLCzBLw24c-9v95Mn^((lWo{W-d zrjCka%H7muda;wzHHPoXL;`Ix-_F<00gqkuq-o5mKi%UmVqQQ zEJz+y#_$;z3v!LKOuv}%b!Q?`F;$9AvDR6xuZ}B-JJF!))$3|{i|M!}3vv+;8x>l5 z_G}|bq{O9|X>Fmn3^PrFnn-@@N8Shp*&$5_YG~P2yJGno9uM1vZmlcZnbi(DuCGnn z(uaICuc#e4GKIP$M>G^eZAvB0t!O(ju{7Un%M{dSI z+=^MMS$5v2RJforMkr+A~|87``zkjjEFp zy%1_&C^n~^_0Hwa2B*#0=%k%?y|oS_wm6`yKkZ~jo$RR7G3s=VI_S{J4KenCIqGuI zo`zxGInU4-l)muW5Cz9R*lJ?lr z)?mnBH_MHHg-opDO=&Y;O*4%OEUK-=<~i_`lP6EE{8>Fl$)@&JC`3U6~h$m9GQ<#OO#-Y zG#GW~Lt~Vp0MVGCu!!>y5t^D5Ee zAxz<7$m5}y06I2yG?$%rC$e!A5Z}A7MG5W8p{Ni!_YFRKH0bR(mONi5dFDh)co=Rq z6oT;I4sw*5#Tu@rYublFexiu9wlv`gO`-6y5A&K=qoIkneisy^qnBG!CY*Ry|BWfdy zK>Sz@F|yt|T`mpyRRdA+q~21Mn22)H7E|PJ;dK!XtZ>{hr-c6jC>-;}bVwdK^2I4N zb7mmShX6;!t9d1rcoQ`dHqr93inS-Ls?|8O0|5qS zNNZDy21%|7E$hyw2{iI6WVvWLapXug!2=T}s z^a*DGE(?H{hT>(^55Lc*1a_Unn0rF;asoPvMjUitfu)gS2S@Vm1$KZ8{svI1G7Y~1QquujdIUO8T!)ffLAF;=Cd*Qp!PGOcnX?68j6n*tslg?cG8eqyf)YdlPqekw9^}}YD#5nY~Pw9I3!IIFhyULR}JJ; z6E*Zsb*YXHBzEB0jgot-T7qP?oip$xMWa>1ADyNid=;(>ASQPsMbn+f;+H;Z`bkkaa82Hv>)DVj_0Cl)r&hso1a>#BIWF z=XBRj4ZNPPP1Bgj>7A(l^Yp;jWQ`<1F`KIC(IfmY+mNAZup8+*Y%JCqq3Yu1f2nLK8O_b{og* zG-mzAy#rcZ>i;{F-$o21q{Q)oCjL_m2@rklidOvfh=yBX6T*~kl~=Y}TNEj&6oHQ* zrye6AiHnd3$xD(W%>)u6ElDUEiYH$ql$ykBvFe0e+Lj8NRfCvuztls?oEjWYP3G4U z)kQlLg{65|B8kT0V^M%utm?ru%GbtH=G_&{XWn3;`JBS^n4)&O0eG+T<4Cq+{cTBV zX?Wq0_DyUtv(fs^EzZ=nn22a^-Fw~z(M!R2a z>NAdZ>pgu9*7!uwe;ot=Mku}svYf9p#k^mNVqV&{{8lKwO>~E}UMo`IiS;IS;M6j5 z(lw$ev}{bkt<{j?hL@uSD20pl(2LR=RN&W&MR%GaNP0s+qG3}q-XBCt+_y_ba$>Z_ z$q99okscwRA-(&_%rBDJ=0B)N{ZsQfc#x3eovhyD-tyQArya9)k^9_&tD&xp1%P- zw8cmoBK{UV{9P#iUeWT0BrPh#@(-c-N9rTWurNO`(UDtqXnpsmQ2Z0smVh%l>S9@1 z28)X*idC_8mX0H&wrhrEVO4ZP+1fdLaB9%Fb&r43$VC72;r@M<{XOoXYpRxBxw+zY z4Ib#J&g||stRc}gFRp}Qb3FFXaXdz2D_}MpKN1^KR_0&8ic?Lt_*by}-$L>4isgS| zRw~Q+=TQ8Is%f&E|Jfu^@n6mwww(X%EM?1iV>~9g08(P(DbK)DC>QekdOpz;nNTgg zBXOdK&FQ_J=-F}j!0}G>$TNW)a`fC#Rt8Q*zz@F3mPA#)L3(Q4myLp&c#nC&*Pp?m02GrRz;Rwp3nVX z5cfZieU}$<-E5X^U?jw~i%>ty(96{*!{9E)Pbe>81Z?rgsk@}1P1<(3CTg{oTdj*) z&9eSU(jUffS^_TN2IQq&etfdqP@nJz@-n=GlNsBAL2Ll8jf%zRL{^xiNxN z9wMf%;Ur|5!P;Z6XQ1(A+79>$Ue?nBf67nczvg#qW>w2}TuDib?RZ6&J<1L?Qt44$ zDs@@Znvy;RTPx!Dl%>%rfD=#7M;H@xjvR`-f~n;-{(bwDL(2X>9Ie37hvpFFCQt{d zW$+WqEDtb}F9|5=h-3$YbT&ZhdxMm)mR($tP%N24iL;iRlI*6(W$c&oiZ4Cf0K1X0 z7f+$=8>wTgh02mmu z6+fZ8l98?-=RT7TgGi1X1|lB0je)mEz$0U4MtN;M``5@zx6u(UN(m$Tc@vJt@Trz4 zBV0cfgCjH8yQB?ioX@4xikzV|uu`y)|B~92Q7YMVLN-3!f-?s=?1<@7MdEslj@H_? zA0>&YH>7YWQB8#0k2LkQD(f7dJ)onEjq@~h8k0F|8p{EjPUWC8I&p|uC$+MN4a#j=zR-`GLHZpVoQvKv$Fe4Haqhe1f#$o6(l_x9{IcjkJ#`wHE=x&{Yx zxtuYWGy8gadb@jbJw2VBorUhrn@x-Jz!3X@){C;v&Qur=`MMi9Z+agir<^H5Z!8~A zXqDCa~OrDF=7E z6F;H6n&)m5e~?dYia!P!WLE>EIsVwq6$$?@uR)1(F~=W!=&_aKkK5H`-^&ds{@917 zP!93?dj5)r;}3jAbEEo-Mj86ZN08f4o~6UQU<{)ef-))VgT zIy3{ruE$R(Z{SYWk24L)_=JYkh)-^0-~$ox$cGjlXWzZ8dEcF471|X33pTyujpIfj zkwr#U@sOP5y#AVY39pP#fa2gItq0hTbNOKOos+hAa65b^Bv7gE$7$QP^X4o>GADiB z9{I%W+9S!sD)&zgejq-8Nh^+%zNMSo)NOm<_PRL$xc6;hO&dH#8^xLylB5)m579>Q z0HWC%pAsN8&nk*yD1;z8X9id!c9

ZNYXzQ?J|+pz@%L?@BK|dRoNaUY^YJ6Q^ui$U{(MxQ4^{2_>ao;=J)V*?;9rDX)xU z&hjRPx;cV+01i9LM*=l6DC(FpopF|r;_l`;#TUkN5wzh{oE&A^Zi#5)EfIxC${!xwM-L7lAvG62p&Vzt>&LmuoE_f9f-vI^W_n!rye zC3m#`f#@i?pF2)mkMqMmcO1kW&pFX7Yg{v%IU5)SWrrtG5A|pqZI)9g!HA~u6UrHG z9tFbG6(nEZ5X37dT5n~@+aky~(VEnlh+3NNl%jexLx(Z++7mc>`OrB=$zLZ#xj=jr ztKndwMqkZP4x=!`JK=Hg*p#`NLa2!IV(~XL{2{J^k9Mupyg_O_?G%d5gw@}CxJG*jio9IkqBiya84rq6iV%P{>uB!{s zc5i>7C)bPoj@fB++WmCwr>`s5*V&6=)83LZo6u1ttQH#ybh&QoQjMxsaYYSDH(VVM zxJB2NDn^b0t_82+C>gEl=L!;5Z|@-G5&6SxW@VF!z(oQP!!eF|*_MPR-ko&rX=m& z)GW{>mN>9#i`N=$$nr(mLVW!NVdF1{&P_3IS8sQJXO0qk6b|!8XT!B}!IlGBUvFo3 z?`AGfB#Y_92d59adpe7j*=Kj>>|(CRE_C%2`%SZ8rP$NArDsc5e}5;=d^X#A4zd4=ZN~|P*e_SE;C8fyxjSukPMaO1PLea@ zwAndrb{b|!J_d#YQP3Uu3FTwi;zUsp#V?5^j7>+S^rdY5XrIZJ@=ibu>&xr+w%~gk zUp|fz-G#q;3kvwI3i)_0d;%4&^k>QiuasASL+jS0nG{X3xN1qQ2@$ z?4ikLGI)z?MK{yPXW<=})8IqT#-%mBd^R_I4mDk_=!htMF3LjrJgQmgR`8VwZbQi9 zjvHj?eEEEC_5!MG@$G=N>wNh_ye4ibz%~^&^D0&f4iBFVr{s%J@5vYAZzx|vu=+WQ zpLx161f!hr?(~Y`i#t%uVfr6=(v6r2+DMEiZ5TqrON})Opx+wLbwR^az?&} zo|nlY)#I+9nk>oJQqdZ<%@ueaE`4(CpqTaKScemoOC9oc1k!5Jr>K;blCQ`6Fwn4& z@+HJeCHV%F4K38q^~-dDPz~3u_<4LfZs1NQ`9{=@$~O^~Wncwvp}~Dh*zlEaW<)6m zxAMej-a=>=>C5ARMc1*&w-TH)GOVwGN_a94MtT;cm5*L=b&ZAVVC37Vhn2)N9}OMQ zR{|I1+o^bwW#b+j`3}OQue1?bkV?&fJjX`f`<*C1rmyvC0q&PN9{zU`qQyj-8OV3j z%W}E}qf#s9r)gfw_n-_?KijI6tNFT$`|`aghs3dGOdG{9@cSa*6;p<+&{%-iHp=q- z40}Gwn*u13Q9iJ7ITqM2KY&Vnt8P~_mv{D9@`Loc%AR&{zY}I(4J>D2e27pl(ibBT zEV^Uz!;F%Z1=>I9;sbC`%8zjA`MCSYn8@4so~x9P<9CScqo_Qpufl9>D~iuFacpqSYrKS$507!~RI=OavRB`IY2 z1p;g3CK(^>`XarbP4^JcJsX%^%)~Eo+g4a2Tor)x$nwhswm@Hto0DkM+?EmZF-kIY zdCY@}T2+1pP{%NzjY59PwE{vmR}=mi}ZuLLHF0`c}aX_m;46aoMF9n z%!c_iNOIpq$*{hHwXDI@Z*l1|o`Csi2Fh=v?5Mtsl&L=9zk@Qpeokm=YARcu!8U(| zC%k1(b^zM%kl!URc#KM5Oy}ztA;|Ah@mVFWGA6%Ik87HlIcrA#03hQ$Q&y10&NsOC zLu$Oxwd9ZJVFji}QVV{J!eja+krlvAQf%J9z`)7JS2W3=00eU?77x!AU;Y$@qxuCr zaoh?nbRaW>=}dyOyVj;BNP3 zb{B>6TB2mhq>C(9xyed%suL%UQyix`)#-`T<5Z_PPIIc$9Or+tJBvGjl*ELR_2nbK zj{tVcn>Vk&H#3i|HZ9K#1E=EWUC&~EhCZvz4Knbc2F>PMC-kjG7KBYsWRUaQ|mJjiwD zhy^)fL5^6E1C}|kAO{xYBnz&!*Xdgn#<`RM*V)bbO>#TAdh+K${+uHJ^>&M{$z=+; znD)685Yav-X}`_R=(o#Jy*WkrrEx@fiA+lP8|?M^4RU->E+(z)SCIL3dxO3$>7d=j zNT%I8LcQ6vor(oI@*Ai4P0NMYXC@Id!(Rg#)*^m0WLOyU3B}v=Rr*@24kqxO_G*1? z(tgWi0j%!SeJ1=)->A+x0jpHJ&e;kRp5JK*)Arm>D2U&wP{|8F;J51Q0%Mw(!*A2q zC2R9tdd3JKgC$6@&$AJ4&+5%qSfg=1zkNzyXI2c~$KQ8M>CGj>oE0QE9aH+1#N*r) z&)e4-dQ&{UbBcG_>x@ueQ*m6z3*%P;SfZ-D+g@#h3_aQ9bbw4&Scdn43VjjZoweJf zF5a!Q=WeBo{q{~Ui;QVu)a(p@Ep~8M#P`z< zJ_aToWP)knpyqqkC6l6gWtgLRZP5!g({Q!WXWD+rH7)RzdXo+-8BOg-J~QT$ZNLPj z9@;#ES*uhuFbNisK54*Sw79s%AqUeaHx*D zE$OcKFj4rx`6%3^C_Iw2_e?(V>ew*98~huM_&vmgR|!rHQgqi!5vo9ig;B}ygAkyx zh#w-{TS3o8?hzx#S2AL!eHZD~z2HFxbC&qc4}%mF5x)=M^i|;Q7z7xqvo2YW-yfDR ziQL-@3kH7xfF6wa5yI=mhcDkQyWozCrHW_HX82L;TaWlLg8wMcQ6iaWgR%r!AC?Mo zT~vmxU8{wqieqYzWHkKC=kxM6BL|sIDjKl{1fJ;7iiyh@8|l!h{&e1FuEnT51-T~^ z)hWWpgjO-8{5bJoGD{?Mnd|xd#5ujWVz|>GTqi#{*#zXLLwHiXWuaOb@@ocs=R!i$iAQxP|mDCy_5 zg|IWO@5D~61fH4^w}__`AWQC&{^P8UNtvZ}d6_sgy;4gGli+7WluZW5dVR85!?U889j#e4cQ79Jn2|9bdT(&02zr9gUEzYL~`m>zK#Ua zsVtn21XnBaE|OE3|JotWPlLjbMEvzcz^@@54ZNL$@RE~=BK`)#iwyn}g-LoJT}jlP z_8d8g$3V}u7$5V4pTYJXkN6V+Bb`Geor4|wgex#Ej{$Ft_>;7b{9cX;?7Eb)ry~9) z8gv$uWPnm9XevCRAP3<{61JofjZBJUa>gJ{2$zO3b`aG3q0UafCm;GbW*}+k&Kp(Z zwC5r=&YNB}33byHp)-N1BrhK<1j}XZ>`Jl}#;;Sdc8+9i_>!Q{-wd+7CE{--id-6y z4Rn8Mr87lD4$2{G&G5HDHlB|7+iCGp?B~)DlRra}^^UB*7E6V~v7br3m~vS=?Wah_ z-U&Kh!gb#TTE08t@4i6I&EXCwYTHBgyaY0%%_zy= zSaugfzHLYgysLdrhQ^@$QP*GgReQ}qb)>F`zNs(M*{L}$yt+|wPODTUuMIE4i=q2BIO8WDTCsBwI!eTC)PjJq*sR>oXaa|VV9T&1@ zU`ktp#HfQjmNFcd!CI)&4W(14Q8b#Ayf)&^yA{uf$5Hw(Yd%zH0J`~@5Y)OC^vHv| z7IE{)qHAVp-)Ql@${foU5ikl$ZacKL{P_$`TYGyx@Q%p9G)ssQiCL1m9;D^=A|oRY zn2!rsRZz?!JZQlz;#ESf1HZc#3d0&`JGxR!a=_}(|5=m8Cm4Rd4sK!j!>sjW0Y zDneSbQmtv2&_E42cCU=pY0vtDV?$cX_5Yi>ZzBQ{P@?!y1O2Io7>Ko!LP8p%$XO^S zn!>43(25~(l%y&TJ_4LHKB@^1;ZS8!BR-NQ5EJ7x+fs_R6h_TKTdWk3o7*yxBxDNQ;$^^Czdgm`W01 z(cZqN&WOnr=UcM&iF5Wz8DGp8b4E-e`yqQNf3fTHm7A0e{Z`nw%f=|>yX5UL^969G10;Fm`KJll;buW6MX`P@}u?9-uE@EnM8Z(O5YD_ zcroCA02}|oh<_4j*`H{L`93a5u)Ow6M=u%vLkI*v74aXY%|w*Mlqn)Z5{7P-Tg^E} z9G+E;SvZ>zHDdT4%E~B?N@Ehr`KiGV%VlSQLM!@$r`B-T<+x@gv>0m2KC6^ToKaDB zWJMZnbj#14Kb;=c?~GMV~}Os0~ApGGQP@?XKoUyb;$(W3PobvS)C;=iuC74He3 z-?$(?zX^PhrK}=3;lG6yemmm7qj33bJua&F@VgQJJz66!K1h1N2H*(Brqt(i5&wPa ztpH|xrfXSR4zYK9TBJhJJOx0ReVSoeNE#lfTEi1Z=SPgw2mKS1vx5uA2M@W2d!1wV z)GXaS={kjxBfYi7(H_GZ=Y{jaS`u$thDv{sgi5rx5_ICiLDH}?Kz|5QywYg%KLW}B zIO2bzNd7rVN@Y|(AMrm`Jqd#jp|?6>!nd0Q+xW$*rXRR7J^>s04<85oG*)y&?VUhIJA{nnM2@Q0&D({w+56cM<=4EN_3Y!FYaQNou|n z@qZxv##hG)^Kn+{sY`m>=J8GWCQ_>tIG>Y8YjL`n9?jw04n-l$aM)q>=N4Tl*Ptg43t>P2M7KF;QuA7`MnT9O45BH23+FKQD61{QZ;lJ(xJ zlGx-J0|$9^r!^^7^(io6e}vItAi&c}uts+ksve9!l4?&>jp0Ev^s>pmp zZcd#N%Ir;jj3NCq=xRiqwG-?-iVOJz$vp*$y!z1g50CBZ&}ctPO%_hVeV_IP{0@Lh z>abHuMRIIOf+F27C0H?aX?HSVqFjkmV$k0V6iRtq46r@R&&P-HO7$tZ-qlIAq4VPO zepjYl9t>saSc$khBzLmkG`-Lb_E8WAJ`QPpUGy&#$^1!4vos3-c#-+jxKg8kf}mfP zP4}{FUdSh1ylnD+hGG1di2tjy?_X-L{9lgvzp0)E%m42U7McHteS@_8|7mBW<$qX- z?0?0U|0@yyZ?dd(y-8YrTyJ_%U2jq<8EZ2sxYA+%Rd|9g*Lec53jV%f>BJeR1;rH@ z05!SDg~V!1d-9C962Bs`MlRB3f3?9;d?j@hqDc;08xNcOWa2JX)K}Y<>Z{~7sQCB4 zC~hVN!X*ozN7kWeMrQ21hLr5koyl=O4!5=aiGh{vBk|2NZER#8tQjcorZpdJ?>EW-`4)$ss#g;7eY*t1sTQy?ixIS@3(|a-gP-yg~&*O^b+A zipIyNU^s-pB9zr&BJ;AQ*t-SH8eUxKkkZcm0XmO5xV{zO3gf;^G*zcyPmsZ{NUWFIAXDNQGWyCnQf7oZEMkKk zwJ{#`GTdYltpE)bRd-P60*lxrms@$M@pPhx@sX$4EOFZs<0g}O1%(bi#n$Ce#8qgq zuO~k)uBJbmr7Mq=c3&eW;8u&c7Jo(JI{6*n`HC;J9L5c3<(Onvk@y*LJ%QUfLm1UN z^KBBs%8jH;-ar%LOK2~$!gh=V*LL7nByN;&+h*jlb(b_}2=Um9;{uGhNe+HZJb3aX zLX#K02GekvWyN+4b>%zBRhBMaih}ahqItSF-Sm>nb8EdzKStrv!m2mS{&m#AE5+intvu z*wG#M6^RZxJyu>?3Y@oZYrMlEa&lxo9=Y-+OM)$_JIYF;Q;zORMsItG=jyMXGje(D zEH1U+=D3DaV~wsuB5Ke|i?W)VM2rn}gn7h=IEhRyM^f!r7>>`Z%y}czMCU0mZR=VX zEbJcaH~R;y-T^jf4)m1z3;o^wmSy!8Ow%$4`%0zma#x|dt%DA%mtx#B1)$m-RR&^k z-Gu^1v%bMnZ+BmJUys>kbg@A?;ND&6-rd!QW|Iwcn+@P7{8br69k}iuT2k#QbR8a| z1cDbHfm3#vP=RqW;9k%w35_u;t&P`Nys;6gf1+*z))M(h=6H6uzXZI07R4=P;Nk}LH&Sbaq4+OS6OE& z<1*~Bq4iLbB%>`!Fxqe$9~W4tyEpHP~gw+xgL)z}X zuAaVr*|sL=Y1as%C%3sZO5`6oC{^k|1V9B=z)OYaaEa0v{Swdse(KF=kk7cppllqX#?Ag>wd7TbYL+kdpm|E%Nu667 zo&ZXCdu8uF>b-i|)S?{lS~=h@8qi`ofjo)u#eUg3jGtr;^$qIvAw9DY2hfc7hUs3? zr;1`kPP-dF3HzESaGD`Tf7; zc!0+0TNOQv^rQ~Eob|gcLhl&9&*EJttI>|)yTQIVE@8CN9k3bzRO$V!FDM`e#(4l_r!Fk9aJlw;&n8n#iI8GRE82$_?`e5 z$)sWhhN~hTM%(ym{VKmoZ%0F174VCA4`krkttg^zN}M7n8$b%YTXm(V2txwO*hVEt zz?29~lfE(8So~a3m^98Fn9z4XBs@_BAw3J+D#o8Su6E$Tq_Aj(%|taH6K&vE0Tl(K z<|d1k!f8<^Ncv`mu!2Nt5$M?rh3#pypVM#j!T?WzF9hEvKx+v#6aVRBBR#!z!)kGX z^is^A4P4)3h1FUy6>(q8q8)s}=^Y)}C4(#R;MRFVxU?6*Wkyw0<=AV8-xNF%kBR}q z`(=<{xah*?=I0*YikiXk~}J(I;7XjqG!lJh~XN9lVLJuah%me4Lq z#K+{^7FZ&@|H6G5afXJi(r+|vJQ_8@oS697B^kOR^k6ouiN`VO9Q4^J73Uo*u*DN- z7;n~F8zou1k)So{M@ND8ll1qxjtTS z#aIKyIkcVCH;^!;3jb!b>FJH``T6;LZ4oD~u2gu7&2?h5-znZg!{9O8z*s1zuiM01 zsd-JsbEn1I=+7OE#9XG4Ph-f8)Rb1T*u^F4y`3hnb}aD>{m}~5sF#9wpz)l(J+=a@ z!lZcv0Ry|3JYg2^#1QCI!XBwBzIYcJr}S&3;y5l|>Cu@!)R`D*iFc#-tiB%4veTyb zpo#p6q-E*@-b=8-xA_b}ep{ZO3JZ9e5yi z9m;^)>}NxLD`b4>v3~59-;bG*_yB&Q#?eisr4LG2sGi72h3bho-bcp|3H27`W_ a44o3s;ir7Xfydk8!}y5A^Y|H-^8W*zx|m`B diff --git a/docs/_build/doctrees/getting-started.doctree b/docs/_build/doctrees/getting-started.doctree index 8542f1b9a94584f25bc73fc37a06620e12d7ce39..d7f8b2356d4191660cd1053799f51b99e75d8177 100755 GIT binary patch delta 3683 zcmdT`dvp|68PA41cJtU|*@V2alP4RR2R2xcN+lGrF=a(yG(MKe?9ScXNp@#;?#$#- zorb6s=))GT)yg^5{;Rg0o`aSiwbE87V%1Ws)mkgGminL-(E5IU-`(9pke=heo|D|2 z`@7%w-QVxK-+kG-=~>nlRHI;`fvsyzq~F;b@qbO zjLM`DmZYX3ZIBqTT%D2V$~PjMDwF>gv+djrlF?O^ZmTWzttDN z0{#X6$QALfz_km{0IQ)PY16!Adr;ZVm|gm%(mr15n@gP#v|1g&p? z-#0z$5iu1)JQ}X{9p=}BJN)13TeOaN)}verN2JGS4LwZ5w2s!xRas(ax-qHDF_N+# zrwyLxUrj8PEC=M3sxc=1Di90{t@GNb3f%ehghV0WMAacwL+SS+M?z zXZ@7FS~pmC7zR-PbDs4xksFB0H!g2qWj%i}5mZS3c~mY((eqg{z6{LZn;zXqkMWuM zF5e5FzJ1|1y(st>6vdwMtkWp=c@+C%LF`LW`V@U(iOgRvmH8aXd>J@bz)UJj=nhj8 zX=0rL@~?Q-uL@F638^$Eu^#M8!M;L;U1t3nOn>89zvVZsXs#;gJnLDna<*b+-)oo4 z``w$#dwfNg@7#aMJ1^v2@T}jXyw_0P9}4nbM|tO#$ou0`d1q1HpO(sVOlJKVIRC}7 z{#uZC;Zk}0&W2T0*5AP7@1FG!FyRLpqQf*Cqa86(^H8~Nf{4F-1qbbU+aVbx1N%*# zB-THX=fC(+-H=ezUM5Ur`a=*tf`h@ZqsyeyV9LKhn6oeHrxg!j=?b6-Zzu z{9NN`tQ1W4EV44;SuX5FAx>eeoPy1{8mxo~{K717(Ts+2Y$>v16}-Q3O@s<|bp>{n zU@h2H3Fm5HH`);tA;k8%l-U$cfaGd`+`6lVU)p`I6g3%aWHl`f_pw?S2DTv)X}O4z zV_U`VZ|(?(0g1^K8cCW=#e0X<@zc#sYw7_X^U37~oZY%+vlYU>0a{u{+ije%5js)2 z7c@4B!Dc?t^02RkztWPeZAHU+dK*e?gKvIcWy?0!jwoh5A{-=WVO^(M5U!cRC^S5k zcioJx9m3*r%^hQS;IU5rbnCic7np#)Zus$74{vB&zktzUqu&h^^$K_;v@p@QA9l;c z#4Je+PfTF=sK74|Uo(XPaE3no?H|Wu8J*ZF=)+uB!H>uKq0JZW6i$;{`Fq_2KiRfB zIFK_P6sALbSNko#2tU&X2MJHD! zUB-yvD0qaj4g5%?Y2i9y@(y$aQdyJ19nLmFHzxaaO|juVaM%d+p-!qV{+3W^BAw{Z30X5mXq4n4p zzg=n?yAi%&>M(?WdRH`p_ZKmeI^=FEj6s&usxj%pNuVT6jj$MiaxpR3d+;LwXKa!r z)Z{eV#?MRjWA7C{LEB+^7927e$cN3g=OQ^~QbAkD&$P{UV1QB>XY*_)epj&+j@v|W zS(?dwTSw=@`*0wj!7~d|mC3UAi%3umJ0=8D`_*Sra{98 zU@Xo)h*7FQoekN@?a&X2KowL?!+MD@AI31Ha&?}28s21Nna$$-^^V@|T^OMj$=fhM zVg57-X9~il8cDd5Y=U3c*-)VZvR`g9U56j&X-Or}pbSGM9hSsSwGFFfxEWTSu7Y7(Tr~EaH+5~AMI-OWq7Kq zyUPHJ{qizm%rH|J=eTBV;%Y!FlV(}|Kv%~zf^ZJ$D?BHHRP&hO}L3x68=9=jV_xY;`K g{`d@kq<59{SwQ0K9%#jL7;nqZ3Dbknx{1O60E_yXWdHyG delta 3687 zcma)8dw3jG70fh`E9ueFSH)(&%43rYvz3gkz5h=V!kwc zm?*f;cR7EeU={Bw+~C_JdM69}rh41_7v*lm5Akb?mR5H~+nH@=t(A)wjVQJ{rcCr` z*9P2H)XWk`;5OE9Btf-~hR@7!{RMmHAVCWfDx1&20(3C`4 zjSda1-?a7$d0pR@HCOd*m8H$=hlYBh{Qj~AURd_o$vPH`o1g1oU4yYVhG*WnYp3~n z*Ze{U3%=1DR?0r(B-pK;JI%XX^NW;OfnP&vrRQhJM0|5QkF!Sx3lQD1Q{BY# zSL&=Xl(Lgpf?o62Sm}HW>VqURbn`b@j3-?4NrV+M`nKvWfLgo}U*_pEFFjt^9}cRn{$I3`N<{Dq}r5A9(O^V=(9z8A18 z^^@#THdBM&GZK5sHBXb+=Sb{}(_;V7!5(KX%#r!hT$#_(O#cy822iB}3C#xDi{_tD z#GhUBG>|qR*1(*XM}-_gvAhplHbP<>buOZ5seSwC>so z^YG7w`Pfbup!CeF3Sa^F)72g2kn4r#iST@E`IFVlaeq`VXb3<7j*%G@^8Jxzy;AP_ zfwddKk49R*!KrNq0gAe;b0-vG$Aw~Ssgf%XM0)s%1z}$apRBJcV8z5a$T!q1Pb_)n z#>3GL18|Qi>FAP9D8(EkT_ylR9ssS+QG)bnucnDhup<0Uxd;o-gt3sfaYv^KR}kTa zqtjF?rm0q9j-Xm4AgVnGk7}eQ>|20TtNnyeWFts+eN7FHkXx;jP18_4 zS_Y&*N=+J|*qWh3gRqnx+QMHr>Q5?I_ge}Ww4HkW~ z83!F~H>!*YXA56kd!MhBpRUc8v{7Is+ecHu+I9b~2QcZ!6C*kbudTghBH zN+>KmI+ePbQr{#}AFL}V=n}DAys3V1DRkoib@t$&3yXMd{mO-e=-nmIE6j_rrMdM^ z^)WTERGjLtgzC10!b!tY`u7fa3V~%fM&vi+p9^onc4|qE_VN?;H$~p+xt9y~3eP<_ zj=Pg*YsYg@LnlAg5S?6!o&l-kTuJfBv*03;bTPJ4AsVQ#7F;5XZzE%wHIYdeX?Z%! zf=kgHhs($rnlnWLuTOYak+))Q>ZB@*h_{P~)fC}RYPOhi3)TqhT5M^lNySMA0G|dj z9pz<79!$D5Y(Pdvl9n=pOy42W)?-Wbvj*M{0Phsxg<5KA)%4@I-#00h%%*F> zyF~5=$}O2D;!zwxn+qGsQ>NiX25Qolz01jhO(N}bau(uihVCT`Hsi2k<|-P-myL~A zVBkt6?ck*ZSNL)QIRa8lBWKH{JvIf<7T3=;S}RfnzA z@uTjfnoyG4VH=M3NWrX{C88=;D2YY5T3`e%8?-C}Wav$0!8JVER1u96LLM4m0Q?$~GWg*uQ{#sL;kMYLls#c9)@=|KT8G%ueU#4af zDoxu&TD6#}+OVB(Yi?;yQ)E6NC2h#ipv1yC(VdJuP74Bbex$j2t06#2@I|2M!^V^= zi$**%g7na!CkdjcN(M|3TS=uH*3zOHvaM#aX{-WX0{DqS^mVuPE=z&M%VO1SHUZ^H z`AI_`)<(b)0HW%+I(BH5Mz_Zfz9ClU8{?y~me@E(?3L!@OBW_YaB0fPWaX@-Iw@qA zNyBygXsmkj-NIQ;iYzB#Yc|sHWL+;1iY&u{q)K~XJGde^NV7O=3Ebe}8;+fIY#En@ zLC-IkM6;CV*u&k+;YR8Qrl4ry>fTG^QaPnr^ccWZB{aWJ zr1)`XW%1+MIPBs#x3o^aAI*Dlohk`=OiS4ecB7%cPzqut4Va;`hd}eBEo+g^Ug{Uf z9v}Dsj#!1{A5n3;D^$pRXc>@#qGB3uCcvA{f}4c3*vjBLP&OUB87#P&FK!L{ZsBWM z+hQLiR6MhETN#&`Hp0^Qvtd7(bJGTvc}5YZ(0N)4K1`h; zuBF)%aw|X8+8qA~x^UA@RYj~H3qFd*xKt$;lcrlL&|QYwseUQ=7<%_eMWBqGGkqLQ zxG+nE#B(RfL7r)ASapbeIjqiw+pxzPSjdvfadF^=v+=cyz}`uH7`-msPBE2uaN_0k p3GCB5h#!embvu%O=HNbpo;Z9GTPdGr5AV-U;lPDEuyqnW{{dF)hnN5W diff --git a/docs/_build/doctrees/hashing.doctree b/docs/_build/doctrees/hashing.doctree index 04c91b83a830380a40e821a03e7305c96a6af416..aedb072615b0645fcb08bce4064e07e2b6518d89 100644 GIT binary patch literal 39356 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 RN8xLucyjN|*XzU9{{cAz?Ee4& delta 11690 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 Ob6DwLyTaiH`~LyE`sc&| diff --git a/docs/_build/doctrees/include_announcement.doctree b/docs/_build/doctrees/include_announcement.doctree index eef1ebea0fbc609aa107e203b76e31b38a1c06ae..26649a0e6bd17638632044a5abb0dbabf2f50e35 100755 GIT binary patch delta 141 zcmX>ozF&L;6Sr-sSXyRIYJ6s1acWUXW`16LYF=VePHIZwtd3CbqQr7If3`PcC~rz> zZb5u;YDr0EUV3rioXL*d(pq!988Q@V3+IIj6_+Lzmt>Zdg3ZZG%uOvWoL^hGAVV@k kIYYX(aN*=OZgr7Gv4x96*@{xrGE<5Rm(&(6Eltt`0Pin0wg3PC delta 143 zcmdlleo%Y^6SsZgtWdGE%$(Ht%)H{%qLR$~y!h0-#H5_ml)~8^q1;7@<#7HSZ^lsG zl+xUS_~O)(lFYpH;=;L;?YX73=6N$@DAX3t4;3mdO)4(QEGY$>lb4vAT3ooGws2vF mWQKBvbZz0H$t~RKB8y`SmxQtvrKV-36c;Y7EnHTbqz3?lG&jot diff --git a/docs/_build/doctrees/include_supported_hashes.doctree b/docs/_build/doctrees/include_supported_hashes.doctree index 8182866d7a3c972e45532f31060b9ffde50a5821..b162b5ec4a28606d0a6c3f3c46425be52047bf51 100644 GIT binary patch delta 135 zcmbOl-Wk4OnLK0nV*n=Oz}Hq!#IK)>2SoWb~dKsHl%c mcJfq39TrCh28PKWk@{{y)6N^hyi}XPPo7EN67#aO0`zh*U nS1`F>QHRBafq`N22YFQ-O1>%1W^o58c_*)qUCHKiO1n7#2iG(# diff --git a/docs/_build/doctrees/tutorial.doctree b/docs/_build/doctrees/tutorial.doctree new file mode 100644 index 0000000000000000000000000000000000000000..525be7891e65de5a8161c6bedeb9f5e03ce4d7a3 GIT binary patch literal 20358 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 literal 0 HcmV?d00001 diff --git a/docs/_build/html/.buildinfo b/docs/_build/html/.buildinfo index 0e2c279..de20625 100755 --- a/docs/_build/html/.buildinfo +++ b/docs/_build/html/.buildinfo @@ -1,4 +1,4 @@ # Sphinx build info version 1 # This file hashes the configuration used when building these files. When it is not found, a full rebuild will be done. -config: 0f2527c1388396e133fc590fa9b30a61 +config: 4ec0f31f8e54a4abb502558368ea861c tags: 645f666f9bcd5a90fca523b33c5a78b7 diff --git a/docs/_build/html/_sources/archon-utils-validation.rst.txt b/docs/_build/html/_sources/archon-utils-validation.rst.txt index 10b65b3..d2b7e1d 100644 --- a/docs/_build/html/_sources/archon-utils-validation.rst.txt +++ b/docs/_build/html/_sources/archon-utils-validation.rst.txt @@ -22,13 +22,14 @@ Parameters The options parameter can include: -============ ====== ====================================================== +============ ====== ================================================================================ Key Type Description -============ ====== ====================================================== +============ ====== ================================================================================ +preValidated bool If file has been pre-validated this will just fetch file and set isValid = true. hash string The original hash to compare the file against. strictHashes bool If true, an error will throw if hash validations fail. customHashFn fn A custom hash function to use to validate the file. -============ ====== ====================================================== +============ ====== ================================================================================ ------- Returns diff --git a/docs/_build/html/_sources/archon-utils.rst.txt b/docs/_build/html/_sources/archon-utils.rst.txt index 1945e7c..7468880 100644 --- a/docs/_build/html/_sources/archon-utils.rst.txt +++ b/docs/_build/html/_sources/archon-utils.rst.txt @@ -8,7 +8,7 @@ archon.utils This package provides utility functions that can be used to validate hashes of ``Evidence`` and ``MetaEvidence`` -.. note:: If using ``/ipfs/...`` URIs the environment variable ``IPFS_GATEWAY_URI`` must be set so that data can be fetched and validated from the IPFS network. +.. note:: If using ``/ipfs/...`` URIs the the IPFS Gateway will be used to fetch and validate the data. .. warning:: It is not recommended that you link directly to an ``IPFS`` gateway in the evidence because it will not be able to be verified without a custom hashing function. The ``IPFS`` protocol does transformations on the data before hashing, therefore a hash can not be verified naively using the resulting ``IPFS`` multihash and the original file contents. diff --git a/docs/_build/html/_sources/archon.rst.txt b/docs/_build/html/_sources/archon.rst.txt index 4df09ad..701f8b1 100644 --- a/docs/_build/html/_sources/archon.rst.txt +++ b/docs/_build/html/_sources/archon.rst.txt @@ -1,5 +1,7 @@ .. _archon: +.. include:: include_announcement.rst + ====== Archon ====== @@ -156,12 +158,6 @@ Parameters 1. ``myProvider`` - ``Object|String``: A provider object or URI. -------- -Returns -------- - -``Boolean`` - ------- Example ------- @@ -190,7 +186,7 @@ archon.setIpfsGateway() archon.setIpfsGateway(ipfsGatewayURI) -Will change the ``IPFS`` gateway environment variable. +Will change the ``IPFS`` gateway used to fetch and validate data. ---------- Parameters diff --git a/docs/_build/html/_sources/evidence.rst.txt b/docs/_build/html/_sources/evidence.rst.txt index 8460b19..73024ca 100644 --- a/docs/_build/html/_sources/evidence.rst.txt +++ b/docs/_build/html/_sources/evidence.rst.txt @@ -1,3 +1,5 @@ +.. include:: include_announcement.rst + ================= Evidence Examples ================= @@ -54,8 +56,15 @@ Part 1: Create Evidence JSON File description: "This evidence shows how to properly utilize hashing and Archon to submit valid evidence!" } + var evidenceJSONHash = archon.utils.multihashFile( + evidenceJSON, + 0x1B // keccak-256 + ) + + console.log(evidenceJSONHash) // + // Write our JSON to a file so we can host it with IPFS - fs.writeFileSync(path.resolve(__dirname, "./exampleEvidence.json"), JSON.stringify(evidenceJSON)); + fs.writeFileSync(path.resolve(__dirname, `./${evidenceJSONHash}`), JSON.stringify(evidenceJSON)); --------------------------------------- Part 2: Host with IPFS and get the hash @@ -68,6 +77,19 @@ Part 2: Host with IPFS and get the hash ipfs add -r exampleEvidence.json > added QmdBNTwDazHsYXk9xW9JnM4iVGpdUnZni1DS4pyF3adKq1 exampleEvidence.json +-------------------------------------------------------------------------------- +Part 2 (Alternate): Host on any cloud provider (e.g. AWS) using hash as filename +-------------------------------------------------------------------------------- + +.. note:: If it is not hosted via IPFS make sure to use the multihash as the suffix of the URI or include ``selfHash`` in the ``JSON``. + +.. code-block:: bash + + # Add file to aws + aws s3 cp ./ s3://kleros-examples/ + + # file can be found at https://s3.us-east-2.amazonaws.com/kleros-examples/ + --------------------------- Part 3: Submit the evidence --------------------------- @@ -76,16 +98,27 @@ Part 3: Submit the evidence var Web3 = require("web3"); // You will need to submit your transaction from a node or wallet that has funds to pay gas fees. - var web3 = new Web3(); + var web3 = new Web3("https://mainnet.infura.io"); // Load the arbitrable contract to submit our evidence // See web3 docs for more information on interacting with your contract var contractInstance = new web3.eth.Contract(, ); + // Call submit evidence using the IPFS hash from our JSON file contractInstance.methods.submitEvidence( '/ipfs/QmdBNTwDazHsYXk9xW9JnM4iVGpdUnZni1DS4pyF3adKq1' ).send({ - from: , + from: "0x54FcB2536b3E1DD222aD2c644535244000b377cd", + gas: 500000 + }); + + // OR + + // Call submit evidence using the hosted URI + contractInstance.methods.submitEvidence( + 'https://s3.us-east-2.amazonaws.com/kleros-examples/' + ).send({ + from: "0x54FcB2536b3E1DD222aD2c644535244000b377cd", gas: 500000 }); diff --git a/docs/_build/html/_sources/getting-started.rst.txt b/docs/_build/html/_sources/getting-started.rst.txt index 9602bc9..b2c9150 100644 --- a/docs/_build/html/_sources/getting-started.rst.txt +++ b/docs/_build/html/_sources/getting-started.rst.txt @@ -17,15 +17,16 @@ Getting Started var Archon = require('@kleros/archon') -3. Initialize an instance of Archon using an Ethereum Provider and an IPFS Gateway. +3. Initialize an instance of Archon using an Ethereum Provider and, optionally, an IPFS Gateway. .. code-block:: javascript - var archon = new Archon('https://mainnet.infura.io', 'https://gateway.ipfs.io') + // By default Archon uses 'https://gateway.ipfs.io' as the default IPFS gateway. To use your own gateway, pass the gateway URI as the 2nd parameter to Archon. + var archon = new Archon('https://mainnet.infura.io') .. note:: A provider is needed so that the codebase knows how to connect to the Ethereum network. You can use a connection to your own node, or to a hosted node such as infura. ``web3.js`` will make RPC calls to the provider to fetch data from the blockchain. -.. note:: This sets the environment variable ``IPFS_GATEWAY_URI``. A gateway is needed to access ``IPFS`` files that might be referenced in evidence or metaEvidence. +.. note:: A gateway is needed to access ``IPFS`` files that might be referenced in evidence or metaEvidence. Now you are all set! Use your :ref:`Archon ` object to interact with :ref:`arbitrable ` and :ref:`arbitrator ` smart contracts on the blockchain. diff --git a/docs/_build/html/_sources/hashing.rst.txt b/docs/_build/html/_sources/hashing.rst.txt index 0087695..cf29b42 100644 --- a/docs/_build/html/_sources/hashing.rst.txt +++ b/docs/_build/html/_sources/hashing.rst.txt @@ -91,6 +91,12 @@ before you apply the hashing algorithm, as is the case with `IPFS` hashes. This is only for the initial hashing algorithm in the multihash. Your hashing function should take a single ``String`` argument and return a ``String`` that is the hex representation of the hash. +1) Non standard hash function implementations + +.. note:: You must still include a hashcode even if you are using a custom hash function. In order to have a valid multihash your hash must correspond to a valid hashcode. It is not recommended you use an unsupported hashing function that does not have a hashcode. If your hashes are not valid multihashes, consider validating your hashes outside of Archon. + +.. warning:: If you use a custom hash function other interfaces may not be able to validate your hashes. + ------------------------------ Example -- Solidity keccak-256 ------------------------------ @@ -99,6 +105,8 @@ Solidity uses a non standard implementation of the keccak-256 hashing algorithm. Therefore if we are using hashes produced by a smart contract we might need to validate using a custom hashing function. +.. note:: In this example the custom hash function is a non-standard implementation of keccak-256 so it can still use the hashcode 0x1B. + .. code-block:: javascript var Archon = require('@kleros/archon'); diff --git a/docs/_build/html/_sources/include_supported_hashes.rst.txt b/docs/_build/html/_sources/include_supported_hashes.rst.txt index cb12008..7858e18 100644 --- a/docs/_build/html/_sources/include_supported_hashes.rst.txt +++ b/docs/_build/html/_sources/include_supported_hashes.rst.txt @@ -22,4 +22,4 @@ keccak-512 0x1D If a different hashing algorithm was used, pass it in the desired function with ``customHashFn``. The function should expect a single string parameter. A full list of possible algorithms and multicodes can be found `here -`_. +`_. diff --git a/docs/_build/html/_sources/tutorial.rst.txt b/docs/_build/html/_sources/tutorial.rst.txt new file mode 100644 index 0000000..8f8ab04 --- /dev/null +++ b/docs/_build/html/_sources/tutorial.rst.txt @@ -0,0 +1,191 @@ +.. include:: include_announcement.rst + +==================== +Evidence Walkthrough +==================== + +The best way to try things out is to learn by doing. So we have created a test +smart contract, deployed on the Kovan test network, that you can use to test out +submitting and fetching evidence. Here we will go through the process step by step. +Feel free to follow along. + +The test smart contract we will be using includes all of the standard Evidence related +events that you would have in your smart contract. You can create a "dispute" in this +contract and submit MetaEvidence and Evidence. There is no arbitrator for these disputes +so they will always remain open. + +The contract can be found here: https://kovan.etherscan.io/address/0x3b43c3f69c5d06cc00575e3c5ab8723b129c494d#code + +------------------------------------------------------------------------------ + +Step 1: Create MetaEvidence +=========================== + +The first thing needed in order to create a dispute is to create the MetaEvidence. +In our example we are going to be going along with a hypothetical escrow dispute. + +--------------------------------- +Part 1: Create Evidence JSON File +--------------------------------- + +.. code-block:: javascript + + var Archon = require('@kleros/archon'); + var fs = require('fs'); + var path = require('path'); + + // initialize Archon. By default it uses IPFS gateway https://gateway.ipfs.io + var archon = new Archon("https://mainnet.infura.io"); + + // First we need the hash of our evidence file. Download the file and hash it. + var file = fs.readFileSync(path.resolve(__dirname, "./exampleEvidence.txt")).toString(); + + var evidenceHash = archon.utils.multihashFile( + file, + 0x1B // keccak-256 + ); + + console.log(evidenceHash); // Bce1WTQa7bfrJMFdEJuWV2xHsmj5JcDDyqBKGXu6PHZsn5e5oxkJ8cMJcuFDK1VsQYBtfrzgWkKCovWSvsacgN1XTj + + // Now we can construct our EvidenceJSON from the Evidence Standard + var evidenceJSON = { + fileURI: "https://s3.us-east-2.amazonaws.com/kleros-examples/exampleEvidence.txt", + fileHash: evidenceHash, + name: "Example Evidence", + description: "This evidence shows how to properly utilize hashing and Archon to submit valid evidence!" + } + + var evidenceJSONHash = archon.utils.multihashFile( + evidenceJSON, + 0x1B // keccak-256 + ) + + console.log(evidenceJSONHash) // + + // Write our JSON to a file so we can host it with IPFS + fs.writeFileSync(path.resolve(__dirname, `./${evidenceJSONHash}`), JSON.stringify(evidenceJSON)); + +--------------------------------------- +Part 2: Host with IPFS and get the hash +--------------------------------------- + +.. note:: If it is not hosted via IPFS make sure to use the multihash as the suffix of the URI or include ``selfHash`` in the ``JSON``. + +.. code-block:: bash + + ipfs add -r exampleEvidence.json + > added QmdBNTwDazHsYXk9xW9JnM4iVGpdUnZni1DS4pyF3adKq1 exampleEvidence.json + +-------------------------------------------------------------------------------- +Part 2 (Alternate): Host on any cloud provider (e.g. AWS) using hash as filename +-------------------------------------------------------------------------------- + +.. note:: If it is not hosted via IPFS make sure to use the multihash as the suffix of the URI or include ``selfHash`` in the ``JSON``. + +.. code-block:: bash + + # Add file to aws + aws s3 cp ./ s3://kleros-examples/ + + # file can be found at https://s3.us-east-2.amazonaws.com/kleros-examples/ + +--------------------------- +Part 3: Submit the evidence +--------------------------- + +.. code-block:: javascript + + var Web3 = require("web3"); + // You will need to submit your transaction from a node or wallet that has funds to pay gas fees. + var web3 = new Web3("https://mainnet.infura.io"); + + // Load the arbitrable contract to submit our evidence + // See web3 docs for more information on interacting with your contract + var contractInstance = new web3.eth.Contract(, ); + + // Call submit evidence using the IPFS hash from our JSON file + contractInstance.methods.submitEvidence( + '/ipfs/QmdBNTwDazHsYXk9xW9JnM4iVGpdUnZni1DS4pyF3adKq1' + ).send({ + from: "0x54FcB2536b3E1DD222aD2c644535244000b377cd", + gas: 500000 + }); + + // OR + + // Call submit evidence using the hosted URI + contractInstance.methods.submitEvidence( + 'https://s3.us-east-2.amazonaws.com/kleros-examples/' + ).send({ + from: "0x54FcB2536b3E1DD222aD2c644535244000b377cd", + gas: 500000 + }); + +------------------------------------------- +Part 4: Retrieve Evidence from the contract +------------------------------------------- + +.. code-block:: javascript + + var Archon = require("@kleros/archon"); + var archon = new Archon("https://mainnet.infura.io"); + + archon.arbitrable.getEvidence( + , + , + + ).then(evidence => { + console.log(evidence) + }); + + > [{ + evidenceJSON: { + fileURI: "https://s3.us-east-2.amazonaws.com/kleros-examples/exampleEvidence.txt", + fileHash: "Bce1WTQa7bfrJMFdEJuWV2xHsmj5JcDDyqBKGXu6PHZsn5e5oxkJ8cMJcuFDK1VsQYBtfrzgWkKCovWSvsacgN1XTj", + name: "Example Evidence", + Description: "This evidence shows how to properly utilize hashing and Archon to submit valid evidence!" + }, + evidenceValid: true, + fileValid: true, + submittedBy: , + submittedAt: + }] + +------------------------------------------------------------------------------ + +Fetch MetaEvidence for Dispute +============================== + +This example demonstrates how to retrieve the MetaEvidence for a dispute using ``Archon``. + +.. code-block:: javascript + + var Archon = require('@kleros/archon'); + + // initialize Archon. By default it uses IPFS gateway https://gateway.ipfs.io + var archon = new Archon("https://mainnet.infura.io"); + + // Fetch the event log emitted by the Arbitrable contract when a dispute is raised + archon.arbitrable.getDispute( + "0x91697c78d48e9c83b71727ddd41ccdc95bb2f012", // arbitrable contract address + "0x211f01e59b425253c0a0e9a7bf612605b42ce82c", // arbitrator contract address + 23 // dispute unique identifier + ).then(disputeLog => { + // use the metaEvidenceID to fetch the MetaEvidence event log + archon.arbitrable.getMetaEvidence( + "0x91697c78d48e9c83b71727ddd41ccdc95bb2f012", // arbitrable contract address + disputeLog.metaEvidenceID + ).then(metaEvidenceData => { + console.log(metaEvidenceData) + }) + }) + + > { + metaEvidenceValid: true, + fileValid: true, + interfaceValid: true, + metaEvidenceJSON: {"fileURI": "/ipfs/...", ...}, + submittedAt: 1539025000, + blockNumber: 6503570, + transactionHash: "0x340fdc6e32ef24eb14f9ccbd2ec614a8d0c7121e8d53f574529008f468481990" + } diff --git a/docs/_build/html/archon-utils-validation.html b/docs/_build/html/archon-utils-validation.html index f5be981..23d6db1 100644 --- a/docs/_build/html/archon-utils-validation.html +++ b/docs/_build/html/archon-utils-validation.html @@ -55,9 +55,9 @@

Parameters - - - + + + Key @@ -66,15 +66,19 @@

Parameters -hash +preValidated +bool +If file has been pre-validated this will just fetch file and set isValid = true. + +hash string The original hash to compare the file against. -strictHashes +strictHashes bool If true, an error will throw if hash validations fail. -customHashFn +customHashFn fn A custom hash function to use to validate the file. @@ -171,7 +175,7 @@

validMultihash()All insignificant whitespace should be removed from JSON files before hashing. You can use JSON.stringify to remove whitespace.

If a different hashing algorithm was used, pass it in the desired function with customHashFn. The function should expect a single string parameter.

-

A full list of possible algorithms and multicodes can be found here.

+

A full list of possible algorithms and multicodes can be found here.

If a different hashing algorithm was used, pass it in the desired function with customHashFn. The function should expect a single string parameter.

-

A full list of possible algorithms and multicodes can be found here.

+

A full list of possible algorithms and multicodes can be found here.

Parameters

    diff --git a/docs/_build/html/archon-utils.html b/docs/_build/html/archon-utils.html index 82a31ab..870a390 100644 --- a/docs/_build/html/archon-utils.html +++ b/docs/_build/html/archon-utils.html @@ -47,7 +47,7 @@

    archon.utilsEvidence and MetaEvidence

    Note

    -

    If using /ipfs/... URIs the environment variable IPFS_GATEWAY_URI must be set so that data can be fetched and validated from the IPFS network.

    +

    If using /ipfs/... URIs the the IPFS Gateway will be used to fetch and validate the data.

    If a different hashing algorithm was used, pass it in the desired function with customHashFn. The function should expect a single string parameter.

    -

    A full list of possible algorithms and multicodes can be found here.

    +

    A full list of possible algorithms and multicodes can be found here.

    If a different hashing algorithm was used, pass it in the desired function with customHashFn. The function should expect a single string parameter.

    -

    A full list of possible algorithms and multicodes can be found here.

    +

    A full list of possible algorithms and multicodes can be found here.

    Parameters

      diff --git a/docs/_build/html/archon.html b/docs/_build/html/archon.html index 3b34afc..355c224 100644 --- a/docs/_build/html/archon.html +++ b/docs/_build/html/archon.html @@ -42,8 +42,12 @@

      Navigation

      -
      -

      Archon

      +
      +

      Note

      +

      Archon depends on Web3 1.0. This version of web3 is still in Beta so usage may change unexpectedly and/or bugs may arise until a stable version of Web3 1.0 is released.

      +
      +
      +

      Archon

      Class

      This is the main class of Archon.

      @@ -169,11 +173,7 @@

      Parameters -

      Returns

      -

      Boolean

      -

      -
      -

      Example

      +

      Example

      var Archon = require('archon');
       var archon = new Archon('http://localhost:8545');
       
      @@ -194,15 +194,15 @@ 

      Example
      archon.setIpfsGateway(ipfsGatewayURI)
       
      -

      Will change the IPFS gateway environment variable.

      -
      -

      Parameters

      +

      Will change the IPFS gateway used to fetch and validate data.

      +
      +

      Parameters

      1. ipfsGatewayURI - Object: A URI to a trusted IPFS gateway .
      -
      -

      Example

      +
      +

      Example

      var Archon = require('archon');
       var archon = new Archon('http://localhost:8545');
       
      @@ -241,13 +241,12 @@ 

      Table of Contents

    1. archon.setProvider()
    2. archon.setIpfsGateway()
    3. diff --git a/docs/_build/html/evidence.html b/docs/_build/html/evidence.html index 7a1dcf0..021de99 100644 --- a/docs/_build/html/evidence.html +++ b/docs/_build/html/evidence.html @@ -42,7 +42,11 @@

      Navigation

      -
      +
      +

      Note

      +

      Archon depends on Web3 1.0. This version of web3 is still in Beta so usage may change unexpectedly and/or bugs may arise until a stable version of Web3 1.0 is released.

      +
      +
      @@ -102,20 +113,44 @@

      Part 2: Host with IPFS and get the hash +

      Part 2 (Alternate): Host on any cloud provider (e.g. AWS) using hash as filename

      +
      +

      Note

      +

      If it is not hosted via IPFS make sure to use the multihash as the suffix of the URI or include selfHash in the JSON.

      +
      +
      # Add file to aws
      +aws s3 cp ./<hash> s3://kleros-examples/<hash>
      +
      +# file can be found at https://s3.us-east-2.amazonaws.com/kleros-examples/<hash>
      +
      +
      +

      Part 3: Submit the evidence

      var Web3 = require("web3");
       // You will need to submit your transaction from a node or wallet that has funds to pay gas fees.
      -var web3 = new Web3(<My Node URI>);
      +var web3 = new Web3("https://mainnet.infura.io");
       
       // Load the arbitrable contract to submit our evidence
       // See web3 docs for more information on interacting with your contract
       var contractInstance = new web3.eth.Contract(<My Contract ABI>, <My Contract Address>);
      +
       // Call submit evidence using the IPFS hash from our JSON file
       contractInstance.methods.submitEvidence(
         '/ipfs/QmdBNTwDazHsYXk9xW9JnM4iVGpdUnZni1DS4pyF3adKq1'
       ).send({
      -  from: <My Account>,
      +  from: "0x54FcB2536b3E1DD222aD2c644535244000b377cd",
      +  gas: 500000
      +});
      +
      +// OR
      +
      +// Call submit evidence using the hosted URI
      +contractInstance.methods.submitEvidence(
      +  'https://s3.us-east-2.amazonaws.com/kleros-examples/<hash>'
      +).send({
      +  from: "0x54FcB2536b3E1DD222aD2c644535244000b377cd",
         gas: 500000
       });
       
      @@ -200,6 +235,7 @@

      Table of Contents

    4. Submit and Fetch Evidence diff --git a/docs/_build/html/getting-started.html b/docs/_build/html/getting-started.html index 125e192..eaaa657 100755 --- a/docs/_build/html/getting-started.html +++ b/docs/_build/html/getting-started.html @@ -51,7 +51,7 @@

      Getting Started
    5. Install Archon from NPM
    -
    yarn add eth-archon
    +
    yarn add @kleros/archon
     
      @@ -61,9 +61,10 @@

      Getting Started -
    1. Initialize an instance of Archon using an Ethereum Provider and an IPFS Gateway.
    2. +
    3. Initialize an instance of Archon using an Ethereum Provider and, optionally, an IPFS Gateway.
    -
    var archon = new Archon('https://mainnet.infura.io', 'https://gateway.ipfs.io')
    +
    // By default Archon uses 'https://gateway.ipfs.io' as the default IPFS gateway. To use your own gateway, pass the gateway URI as the 2nd parameter to Archon.
    +var archon = new Archon('https://mainnet.infura.io')
     

    Now you are all set! Use your Archon object to interact with arbitrable and arbitrator smart contracts on the blockchain.

    diff --git a/docs/_build/html/hashing.html b/docs/_build/html/hashing.html index c124846..0dff6a3 100644 --- a/docs/_build/html/hashing.html +++ b/docs/_build/html/hashing.html @@ -124,11 +124,26 @@

    Hash and Validate Local EvidenceString argument and return a String that is the hex representation of the hash.

    +
      +
    1. Non standard hash function implementations
    2. +
    +
    +

    Note

    +

    You must still include a hashcode even if you are using a custom hash function. In order to have a valid multihash your hash must correspond to a valid hashcode. It is not recommended you use an unsupported hashing function that does not have a hashcode. If your hashes are not valid multihashes, consider validating your hashes outside of Archon.

    +
    +
    +

    Warning

    +

    If you use a custom hash function other interfaces may not be able to validate your hashes.

    +

    Example – Solidity keccak-256

    Solidity uses a non standard implementation of the keccak-256 hashing algorithm. Therefore if we are using hashes produced by a smart contract we might need to validate using a custom hashing function.

    +
    +

    Note

    +

    In this example the custom hash function is a non-standard implementation of keccak-256 so it can still use the hashcode 0x1B.

    +
    diff --git a/docs/_build/html/include_supported_hashes.html b/docs/_build/html/include_supported_hashes.html index 0de7021..05cf4d8 100644 --- a/docs/_build/html/include_supported_hashes.html +++ b/docs/_build/html/include_supported_hashes.html @@ -85,7 +85,7 @@

    Navigation

    All insignificant whitespace should be removed from JSON files before hashing. You can use JSON.stringify to remove whitespace.

    If a different hashing algorithm was used, pass it in the desired function with customHashFn. The function should expect a single string parameter.

    -

    A full list of possible algorithms and multicodes can be found here.

    +

    A full list of possible algorithms and multicodes can be found here.

    diff --git a/docs/_build/html/objects.inv b/docs/_build/html/objects.inv index 2a10800b895cdfa66b1411c1e218b40c5c8fb2cd..f25afee7ec077ee26fb4cea1a32779f722f8b6b0 100755 GIT binary patch delta 500 zcmV)w)3c`k{ifi7)*CJzj@8NTPF!m~7*wRP!P_MAP=aCOn?>n`~ig?|gd z*(IRTe#KzG7uo??$oP}cN(xkK;apIX*|>(C(y(*3`+c{+`c&1yqwQMZ+lL~;h$++L z48IRVc1tMR1ye_3U%``-VCqGj8B5!4Gh_QKx?Y2?8ZgR8cwTOo(WKhPPhz4}z7P1` zAtS+$B%q_w0_gzUqi_gv-eOTodw<>}kR20PjRDMc^Gt>)VtqQ8GPMp8?u9Xy5`qp4 z&ed!6WcAfph6*)&n@oJ@dmH<>kDG#DGb%YNW;y3cIYm4^8_u@af`ib}drC7Jr;0)_ zQaH&rhkd2`hvojX9`EU}JF=h3JbFfa_Gg;8s@+Zs@=A*xXvQy@aCvDB7k&An#7du>GM;r9 zTKAWP%0o#gwRCCoJ-KDDMf*J@O+1s)h&br&(0JN-GTOu0LA%FY(pe@h1b-)&29@?R z1}#3)w#Z1vKZRCOpqfkQfD+BRHLR3|m9y2$^ZM*O%NvijDuplKCpiX8nIZ*w+Y;FW zp={NdJQ({7K9vNMkK#;N+;*85%WqND8hloOQAWb|c)Nr~)jE6<6Q%NXga4g065K@r z9gP-92jCusLy*H3C#AUOeSZYmHiB6fz)&~Lq>Uof`-3Ty>qf$xFve0sP=UdrdafR= zu8n1=P{U1c;+wj*p^vw)Dfl^~DQCtk<=iX#h`YDL*%C`|&{XtR;*5r=q7aM}PO`;j zovHeLyg#kGd)lnF>`|Ey&xp@n` + + + + + + Evidence Walkthrough — @kleros/archon 0.1.0 documentation + + + + + + + + + + + + + + +
    +
    +
    +
    + +
    +

    Note

    +

    Archon depends on Web3 1.0. This version of web3 is still in Beta so usage may change unexpectedly and/or bugs may arise until a stable version of Web3 1.0 is released.

    +
    +
    +

    Evidence Walkthrough

    +

    The best way to try things out is to learn by doing. So we have created a test +smart contract, deployed on the Kovan test network, that you can use to test out +submitting and fetching evidence. Here we will go through the process step by step. +Feel free to follow along.

    +

    The test smart contract we will be using includes all of the standard Evidence related +events that you would have in your smart contract. You can create a “dispute” in this +contract and submit MetaEvidence and Evidence. There is no arbitrator for these disputes +so they will always remain open.

    +

    The contract can be found here: https://kovan.etherscan.io/address/0x3b43c3f69c5d06cc00575e3c5ab8723b129c494d#code

    +
    +
    +

    Step 1: Create MetaEvidence

    +

    The first thing needed in order to create a dispute is to create the MetaEvidence. +In our example we are going to be going along with a hypothetical escrow dispute.

    +
    +

    Part 1: Create Evidence JSON File

    +
    var Archon = require('@kleros/archon');
    +var fs = require('fs');
    +var path = require('path');
    +
    +// initialize Archon. By default it uses IPFS gateway https://gateway.ipfs.io
    +var archon = new Archon("https://mainnet.infura.io");
    +
    +// First we need the hash of our evidence file. Download the file and hash it.
    +var file = fs.readFileSync(path.resolve(__dirname, "./exampleEvidence.txt")).toString();
    +
    +var evidenceHash = archon.utils.multihashFile(
    +  file,
    +  0x1B // keccak-256
    +);
    +
    +console.log(evidenceHash); // Bce1WTQa7bfrJMFdEJuWV2xHsmj5JcDDyqBKGXu6PHZsn5e5oxkJ8cMJcuFDK1VsQYBtfrzgWkKCovWSvsacgN1XTj
    +
    +// Now we can construct our EvidenceJSON from the Evidence Standard
    +var evidenceJSON = {
    +  fileURI: "https://s3.us-east-2.amazonaws.com/kleros-examples/exampleEvidence.txt",
    +  fileHash: evidenceHash,
    +  name: "Example Evidence",
    +  description: "This evidence shows how to properly utilize hashing and Archon to submit valid evidence!"
    +}
    +
    +var evidenceJSONHash = archon.utils.multihashFile(
    +  evidenceJSON,
    +  0x1B // keccak-256
    +)
    +
    +console.log(evidenceJSONHash) //
    +
    +// Write our JSON to a file so we can host it with IPFS
    +fs.writeFileSync(path.resolve(__dirname, `./${evidenceJSONHash}`), JSON.stringify(evidenceJSON));
    +
    +
    +
    +
    +

    Part 2: Host with IPFS and get the hash

    +
    +

    Note

    +

    If it is not hosted via IPFS make sure to use the multihash as the suffix of the URI or include selfHash in the JSON.

    +
    +
    ipfs add -r exampleEvidence.json
    +> added QmdBNTwDazHsYXk9xW9JnM4iVGpdUnZni1DS4pyF3adKq1 exampleEvidence.json
    +
    +
    +
    +
    +

    Part 2 (Alternate): Host on any cloud provider (e.g. AWS) using hash as filename

    +
    +

    Note

    +

    If it is not hosted via IPFS make sure to use the multihash as the suffix of the URI or include selfHash in the JSON.

    +
    +
    # Add file to aws
    +aws s3 cp ./<hash> s3://kleros-examples/<hash>
    +
    +# file can be found at https://s3.us-east-2.amazonaws.com/kleros-examples/<hash>
    +
    +
    +
    +
    +

    Part 3: Submit the evidence

    +
    var Web3 = require("web3");
    +// You will need to submit your transaction from a node or wallet that has funds to pay gas fees.
    +var web3 = new Web3("https://mainnet.infura.io");
    +
    +// Load the arbitrable contract to submit our evidence
    +// See web3 docs for more information on interacting with your contract
    +var contractInstance = new web3.eth.Contract(<My Contract ABI>, <My Contract Address>);
    +
    +// Call submit evidence using the IPFS hash from our JSON file
    +contractInstance.methods.submitEvidence(
    +  '/ipfs/QmdBNTwDazHsYXk9xW9JnM4iVGpdUnZni1DS4pyF3adKq1'
    +).send({
    +  from: "0x54FcB2536b3E1DD222aD2c644535244000b377cd",
    +  gas: 500000
    +});
    +
    +// OR
    +
    +// Call submit evidence using the hosted URI
    +contractInstance.methods.submitEvidence(
    +  'https://s3.us-east-2.amazonaws.com/kleros-examples/<hash>'
    +).send({
    +  from: "0x54FcB2536b3E1DD222aD2c644535244000b377cd",
    +  gas: 500000
    +});
    +
    +
    +
    +
    +

    Part 4: Retrieve Evidence from the contract

    +
    var Archon = require("@kleros/archon");
    +var archon = new Archon("https://mainnet.infura.io");
    +
    +archon.arbitrable.getEvidence(
    +  <My Contract Address>,
    +  <Arbitrator Address>,
    +  <Dispute ID>
    +).then(evidence => {
    +  console.log(evidence)
    +});
    +
    +> [{
    +  evidenceJSON: {
    +    fileURI: "https://s3.us-east-2.amazonaws.com/kleros-examples/exampleEvidence.txt",
    +    fileHash: "Bce1WTQa7bfrJMFdEJuWV2xHsmj5JcDDyqBKGXu6PHZsn5e5oxkJ8cMJcuFDK1VsQYBtfrzgWkKCovWSvsacgN1XTj",
    +    name: "Example Evidence",
    +    Description: "This evidence shows how to properly utilize hashing and Archon to submit valid evidence!"
    +  },
    +  evidenceValid: true,
    +  fileValid: true,
    +  submittedBy: <My Account>,
    +  submittedAt: <Timestamp>
    +}]
    +
    +
    +
    +
    +
    +
    +

    Fetch MetaEvidence for Dispute

    +

    This example demonstrates how to retrieve the MetaEvidence for a dispute using Archon.

    +
    var Archon = require('@kleros/archon');
    +
    +// initialize Archon. By default it uses IPFS gateway https://gateway.ipfs.io
    +var archon = new Archon("https://mainnet.infura.io");
    +
    +// Fetch the event log emitted by the Arbitrable contract when a dispute is raised
    +archon.arbitrable.getDispute(
    +  "0x91697c78d48e9c83b71727ddd41ccdc95bb2f012", // arbitrable contract address
    +  "0x211f01e59b425253c0a0e9a7bf612605b42ce82c", // arbitrator contract address
    +  23 // dispute unique identifier
    +).then(disputeLog => {
    +  // use the metaEvidenceID to fetch the MetaEvidence event log
    +  archon.arbitrable.getMetaEvidence(
    +    "0x91697c78d48e9c83b71727ddd41ccdc95bb2f012", // arbitrable contract address
    +    disputeLog.metaEvidenceID
    +  ).then(metaEvidenceData => {
    +    console.log(metaEvidenceData)
    +  })
    +})
    +
    +> {
    +  metaEvidenceValid: true,
    +  fileValid: true,
    +  interfaceValid: true,
    +  metaEvidenceJSON: {"fileURI": "/ipfs/...", ...},
    +  submittedAt: 1539025000,
    +  blockNumber: 6503570,
    +  transactionHash: "0x340fdc6e32ef24eb14f9ccbd2ec614a8d0c7121e8d53f574529008f468481990"
    +}
    +
    +
    +
    +
    + + +
    +
    +
    + +
    +
    + + + + \ No newline at end of file diff --git a/docs/archon-utils-validation.rst b/docs/archon-utils-validation.rst index 10b65b3..d2b7e1d 100644 --- a/docs/archon-utils-validation.rst +++ b/docs/archon-utils-validation.rst @@ -22,13 +22,14 @@ Parameters The options parameter can include: -============ ====== ====================================================== +============ ====== ================================================================================ Key Type Description -============ ====== ====================================================== +============ ====== ================================================================================ +preValidated bool If file has been pre-validated this will just fetch file and set isValid = true. hash string The original hash to compare the file against. strictHashes bool If true, an error will throw if hash validations fail. customHashFn fn A custom hash function to use to validate the file. -============ ====== ====================================================== +============ ====== ================================================================================ ------- Returns diff --git a/docs/archon-utils.rst b/docs/archon-utils.rst index 1945e7c..7468880 100755 --- a/docs/archon-utils.rst +++ b/docs/archon-utils.rst @@ -8,7 +8,7 @@ archon.utils This package provides utility functions that can be used to validate hashes of ``Evidence`` and ``MetaEvidence`` -.. note:: If using ``/ipfs/...`` URIs the environment variable ``IPFS_GATEWAY_URI`` must be set so that data can be fetched and validated from the IPFS network. +.. note:: If using ``/ipfs/...`` URIs the the IPFS Gateway will be used to fetch and validate the data. .. warning:: It is not recommended that you link directly to an ``IPFS`` gateway in the evidence because it will not be able to be verified without a custom hashing function. The ``IPFS`` protocol does transformations on the data before hashing, therefore a hash can not be verified naively using the resulting ``IPFS`` multihash and the original file contents. diff --git a/docs/archon.rst b/docs/archon.rst index 31fb4f7..701f8b1 100755 --- a/docs/archon.rst +++ b/docs/archon.rst @@ -186,7 +186,7 @@ archon.setIpfsGateway() archon.setIpfsGateway(ipfsGatewayURI) -Will change the ``IPFS`` gateway environment variable. +Will change the ``IPFS`` gateway used to fetch and validate data. ---------- Parameters diff --git a/docs/getting-started.rst b/docs/getting-started.rst index 9b88ae4..b2c9150 100755 --- a/docs/getting-started.rst +++ b/docs/getting-started.rst @@ -26,7 +26,7 @@ Getting Started .. note:: A provider is needed so that the codebase knows how to connect to the Ethereum network. You can use a connection to your own node, or to a hosted node such as infura. ``web3.js`` will make RPC calls to the provider to fetch data from the blockchain. -.. note:: When Archon is initialized the environment variable ``IPFS_GATEWAY_URI`` is set. A gateway is needed to access ``IPFS`` files that might be referenced in evidence or metaEvidence. +.. note:: A gateway is needed to access ``IPFS`` files that might be referenced in evidence or metaEvidence. Now you are all set! Use your :ref:`Archon ` object to interact with :ref:`arbitrable ` and :ref:`arbitrator ` smart contracts on the blockchain.