From 015015040cf43a23fe1a97d28923c42f2c261f10 Mon Sep 17 00:00:00 2001 From: kaal Date: Sat, 3 Jul 2021 00:36:22 -0400 Subject: [PATCH 01/34] Po --- .env.example | 8 +- .idea/.gitignore | 8 + .idea/analytics.iml | 9 + .idea/misc.xml | 6 + .idea/modules.xml | 8 + .idea/vcs.xml | 6 + package.json | 2 +- src/components/AppBar.js | 2 +- src/components/AppFooter.js | 2 +- src/components/AppNavigation.js | 45 +++- src/core/api/bury-bone.js | 60 ++++++ src/core/api/bury-leash.js | 60 ++++++ src/core/api/bury-shib.js | 60 ++++++ src/core/api/index.js | 3 + src/core/apollo/link.js | 42 ++++ src/core/constants.js | 6 + src/core/queries/bury-bone.js | 67 ++++++ src/core/queries/bury-leash.js | 67 ++++++ src/core/queries/bury-shib.js | 67 ++++++ src/core/queries/index.js | 3 + src/core/queries/masterchef.js | 6 - src/pages/bury-shib/index.js | 370 ++++++++++++++++++++++++++++++++ src/pages/index.js | 6 +- 23 files changed, 896 insertions(+), 17 deletions(-) create mode 100644 .idea/.gitignore create mode 100644 .idea/analytics.iml create mode 100644 .idea/misc.xml create mode 100644 .idea/modules.xml create mode 100644 .idea/vcs.xml create mode 100644 src/core/api/bury-bone.js create mode 100644 src/core/api/bury-leash.js create mode 100644 src/core/api/bury-shib.js create mode 100644 src/core/queries/bury-bone.js create mode 100644 src/core/queries/bury-leash.js create mode 100644 src/core/queries/bury-shib.js create mode 100644 src/pages/bury-shib/index.js diff --git a/.env.example b/.env.example index 7aad8b6..3b548a8 100644 --- a/.env.example +++ b/.env.example @@ -1,4 +1,4 @@ -NEXT_PUBLIC_APP_NAME="SushiSwap Analytics" -NEXT_PUBLIC_APP_URL="https://sushiswapanalytics.com" -NEXT_PUBLIC_APP_DESCRIPTION="Analytics for the SushiSwap protocol" -NEXT_PUBLIC_APP_KEYWORDS="sushiswap, uniswap" \ No newline at end of file +NEXT_PUBLIC_APP_NAME="ShibaSwap Analytics" +NEXT_PUBLIC_APP_URL="https://shibaswapanalytics.com" +NEXT_PUBLIC_APP_DESCRIPTION="Analytics for the ShibSwap protocol" +NEXT_PUBLIC_APP_KEYWORDS="shibaswap, uniswap" diff --git a/.idea/.gitignore b/.idea/.gitignore new file mode 100644 index 0000000..73f69e0 --- /dev/null +++ b/.idea/.gitignore @@ -0,0 +1,8 @@ +# Default ignored files +/shelf/ +/workspace.xml +# Datasource local storage ignored files +/dataSources/ +/dataSources.local.xml +# Editor-based HTTP Client requests +/httpRequests/ diff --git a/.idea/analytics.iml b/.idea/analytics.iml new file mode 100644 index 0000000..d6ebd48 --- /dev/null +++ b/.idea/analytics.iml @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml new file mode 100644 index 0000000..639900d --- /dev/null +++ b/.idea/misc.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/.idea/modules.xml b/.idea/modules.xml new file mode 100644 index 0000000..ad75da1 --- /dev/null +++ b/.idea/modules.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/.idea/vcs.xml b/.idea/vcs.xml new file mode 100644 index 0000000..35eb1dd --- /dev/null +++ b/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/package.json b/package.json index 57f69ce..2d82b31 100644 --- a/package.json +++ b/package.json @@ -1,5 +1,5 @@ { - "name": "sushiswap-analytics", + "name": "shibaswap-analytics", "version": "1.0.0", "private": true, "dependencies": { diff --git a/src/components/AppBar.js b/src/components/AppBar.js index cd46e09..5d3c44c 100644 --- a/src/components/AppBar.js +++ b/src/components/AppBar.js @@ -142,7 +142,7 @@ export default function AppBar({ - SushiSwap Analytics + ShibaSwap Analytics diff --git a/src/components/AppFooter.js b/src/components/AppFooter.js index a0aa797..4780b17 100644 --- a/src/components/AppFooter.js +++ b/src/components/AppFooter.js @@ -19,7 +19,7 @@ export default function AppFooter() { {"Copyright © "} - SushiSwap Analytics + ShibaSwap Analytics {" "} {new Date().getFullYear()} {"."} diff --git a/src/components/AppNavigation.js b/src/components/AppNavigation.js index 93c0a66..f8fdb84 100644 --- a/src/components/AppNavigation.js +++ b/src/components/AppNavigation.js @@ -96,7 +96,7 @@ export default function AppNavigation() { - Sushi Analytics + Bone Analytics @@ -136,6 +136,49 @@ export default function AppNavigation() { {/* {open ? : } */} + + router.push("/bury-shib")} + > + + + + + {/* {open ? : } */} + + + + router.push("/bury-leash")} + > + + + + + {/* {open ? : } */} + + + + router.push("/bury-bone")} + > + + + + + {/* {open ? : } */} + + + {/* ({ + charts: { + flexGrow: 1, + marginBottom: theme.spacing(4), + }, + paper: { + padding: theme.spacing(2), + // textAlign: "center", + color: theme.palette.text.secondary, + }, +})); + +function BuryShibPage() { + const classes = useStyles(); + + const theme = useTheme(); + + const { + data: { buryShib }, + } = useQuery(buryShibQuery, { + context: { + clientName: "buryShib", + }, + }); + + const { + data: { histories }, + } = useQuery(buryShibHistoriesQuery, { + context: { + clientName: "buryShib", + }, + }); + + const { + data: { factory }, + } = useQuery(factoryQuery); + + const { + data: { token }, + } = useQuery(tokenQuery, { + variables: { + id: "0x6b3595068778dd592e39a122f4f5a5cf09c90fe2", + }, + }); + + const { + data: { bundles }, + } = useQuery(ethPriceQuery); + + const { + data: { dayDatas }, + } = useQuery(dayDatasQuery); + + const sushiPrice = + parseFloat(token?.derivedETH) * parseFloat(bundles[0].ethPrice); + + useInterval(async () => { + await Promise.all([ + getBuryShib, + getBuryShibHistories, + getDayData, + getFactory, + getShibToken, + getEthPrice, + ]); + }, 60000); + + const { + sushiStakedUSD, + sushiHarvestedUSD, + xShibMinted, + xShibBurned, + xShib, + apr, + apy, + fees, + } = histories.reduce( + (previousValue, currentValue) => { + const date = currentValue.date * 1000; + const dayData = dayDatas.find((d) => d.date === currentValue.date); + previousValue["sushiStakedUSD"].push({ + date, + value: parseFloat(currentValue.sushiStakedUSD), + }); + previousValue["sushiHarvestedUSD"].push({ + date, + value: parseFloat(currentValue.sushiHarvestedUSD), + }); + + previousValue["xShibMinted"].push({ + date, + value: parseFloat(currentValue.xShibMinted), + }); + previousValue["xShibBurned"].push({ + date, + value: parseFloat(currentValue.xShibBurned), + }); + previousValue["xShib"].push({ + date, + value: parseFloat(currentValue.xShibSupply), + }); + const apr = + (((dayData.volumeUSD * 0.05 * 0.01) / currentValue.xShibSupply) * + 365) / + (currentValue.ratio * sushiPrice); + previousValue["apr"].push({ + date, + value: parseFloat(apr * 100), + }); + previousValue["apy"].push({ + date, + value: parseFloat((Math.pow(1 + apr / 365, 365) - 1) * 100), + }); + previousValue["fees"].push({ + date, + value: parseFloat(dayData.volumeUSD * 0.005), + }); + return previousValue; + }, + { + sushiStakedUSD: [], + sushiHarvestedUSD: [], + xShibMinted: [], + xShibBurned: [], + xShib: [], + apr: [], + apy: [], + fees: [], + } + ); + + const averageApy = + apy.reduce((previousValue, currentValue) => { + return previousValue + currentValue.value; + }, 0) / apy.length; + + const oneDayVolume = factory.volumeUSD - factory.oneDay.volumeUSD; + + const APR = + (((oneDayVolume * 0.05 * 0.01) / buryShib.totalSupply) * 365) / + (buryShib.ratio * sushiPrice); + + const APY = Math.pow(1 + APR / 365, 365) - 1; + + return ( + + + Bury Shib | ShibaSwap Analytics + + + + + + {/* + + */} + + + + + + + + + + {/* + + */} + + + + + + + {/* + + + + */} + + + + + {({ width, height }) => ( + + )} + + + + + + + + {({ width, height }) => ( + + )} + + + + + {/* + + + {({ width, height }) => ( + + )} + + + */} + + + + + {({ width, height }) => ( + + )} + + + + + + + + {({ width, height }) => ( + + )} + + + + + + + + {({ width, height }) => ( + + )} + + + + {/* */} + + + + {/*
{JSON.stringify(buryShib, null, 2)}
*/} +
+ ); +} + +export async function getStaticProps() { + const client = getApollo(); + await getBuryShib(client); + await getBuryShibHistories(client); + await getFactory(client); + await getDayData(client); + await getShibToken(client); + await getEthPrice(client); + return { + props: { + initialApolloState: client.cache.extract(), + }, + revalidate: 1, + }; +} + +export default BuryShibPage; diff --git a/src/pages/index.js b/src/pages/index.js index 9d986b9..3fdc8ba 100644 --- a/src/pages/index.js +++ b/src/pages/index.js @@ -83,7 +83,7 @@ function IndexPage() { return ( - Dashboard | SushiSwap Analytics + Dashboard | ShibaSwap Analytics @@ -130,7 +130,7 @@ function IndexPage() { - + From 550670e765d53be0d39a75323eb6e14f8b2a827b Mon Sep 17 00:00:00 2001 From: devVasuki Date: Thu, 8 Jul 2021 03:37:24 +0530 Subject: [PATCH 02/34] analytics update for testnet --- package-lock.json | 6549 ++++++++++++++++++++++++++++++++ src/core/api/exchange.js | 2 +- src/core/api/masterchef.js | 14 +- src/core/apollo/link.js | 2 +- src/core/constants.js | 4 +- src/core/queries/masterchef.js | 20 +- src/pages/bar/index.js | 2 +- src/pages/bury-shib/index.js | 2 +- src/pages/pools/[id].js | 6 +- src/pages/pools/index.js | 2 +- src/pages/pools/recent.js | 2 +- src/pages/users/[id].js | 12 +- 12 files changed, 6583 insertions(+), 34 deletions(-) create mode 100644 package-lock.json diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 0000000..1d4d0d5 --- /dev/null +++ b/package-lock.json @@ -0,0 +1,6549 @@ +{ + "name": "shibaswap-analytics", + "version": "1.0.0", + "lockfileVersion": 1, + "requires": true, + "dependencies": { + "@apollo/client": { + "version": "3.3.20", + "resolved": "https://registry.npmjs.org/@apollo/client/-/client-3.3.20.tgz", + "integrity": "sha512-hS7UmBwJweudw/J3M0RAcusMHNiRuGqkRH6g91PM2ev8cXScIMdXr/++9jo7wD1nAITMCMF4HQQ3LFaw/Or0Bw==", + "requires": { + "@graphql-typed-document-node/core": "^3.0.0", + "@types/zen-observable": "^0.8.0", + "@wry/context": "^0.6.0", + "@wry/equality": "^0.5.0", + "fast-json-stable-stringify": "^2.0.0", + "graphql-tag": "^2.12.0", + "hoist-non-react-statics": "^3.3.2", + "optimism": "^0.16.0", + "prop-types": "^15.7.2", + "symbol-observable": "^4.0.0", + "ts-invariant": "^0.7.0", + "tslib": "^1.10.0", + "zen-observable": "^0.8.14" + } + }, + "@babel/code-frame": { + "version": "7.12.11", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.11.tgz", + "integrity": "sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw==", + "requires": { + "@babel/highlight": "^7.10.4" + } + }, + "@babel/compat-data": { + "version": "7.14.7", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.14.7.tgz", + "integrity": "sha512-nS6dZaISCXJ3+518CWiBfEr//gHyMO02uDxBkXTKZDN5POruCnOZ1N4YBRZDCabwF8nZMWBpRxIicmXtBs+fvw==", + "dev": true + }, + "@babel/core": { + "version": "7.14.6", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.14.6.tgz", + "integrity": "sha512-gJnOEWSqTk96qG5BoIrl5bVtc23DCycmIePPYnamY9RboYdI4nFy5vAQMSl81O5K/W0sLDWfGysnOECC+KUUCA==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.14.5", + "@babel/generator": "^7.14.5", + "@babel/helper-compilation-targets": "^7.14.5", + "@babel/helper-module-transforms": "^7.14.5", + "@babel/helpers": "^7.14.6", + "@babel/parser": "^7.14.6", + "@babel/template": "^7.14.5", + "@babel/traverse": "^7.14.5", + "@babel/types": "^7.14.5", + "convert-source-map": "^1.7.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.1.2", + "semver": "^6.3.0", + "source-map": "^0.5.0" + }, + "dependencies": { + "@babel/code-frame": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.14.5.tgz", + "integrity": "sha512-9pzDqyc6OLDaqe+zbACgFkb6fKMNG6CObKpnYXChRsvYGyEdc7CA2BaqeOM+vOtCS5ndmJicPJhKAwYRI6UfFw==", + "dev": true, + "requires": { + "@babel/highlight": "^7.14.5" + } + }, + "@babel/types": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.14.5.tgz", + "integrity": "sha512-M/NzBpEL95I5Hh4dwhin5JlE7EzO5PHMAuzjxss3tiOBD46KfQvVedN/3jEPZvdRvtsK2222XfdHogNIttFgcg==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.14.5", + "to-fast-properties": "^2.0.0" + } + }, + "debug": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", + "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", + "dev": true, + "requires": { + "ms": "2.1.2" + } + }, + "json5": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.0.tgz", + "integrity": "sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA==", + "dev": true, + "requires": { + "minimist": "^1.2.5" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true + } + } + }, + "@babel/generator": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.14.5.tgz", + "integrity": "sha512-y3rlP+/G25OIX3mYKKIOlQRcqj7YgrvHxOLbVmyLJ9bPmi5ttvUmpydVjcFjZphOktWuA7ovbx91ECloWTfjIA==", + "dev": true, + "requires": { + "@babel/types": "^7.14.5", + "jsesc": "^2.5.1", + "source-map": "^0.5.0" + }, + "dependencies": { + "@babel/types": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.14.5.tgz", + "integrity": "sha512-M/NzBpEL95I5Hh4dwhin5JlE7EzO5PHMAuzjxss3tiOBD46KfQvVedN/3jEPZvdRvtsK2222XfdHogNIttFgcg==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.14.5", + "to-fast-properties": "^2.0.0" + } + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true + } + } + }, + "@babel/helper-annotate-as-pure": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.14.5.tgz", + "integrity": "sha512-EivH9EgBIb+G8ij1B2jAwSH36WnGvkQSEC6CkX/6v6ZFlw5fVOHvsgGF4uiEHO2GzMvunZb6tDLQEQSdrdocrA==", + "dev": true, + "requires": { + "@babel/types": "^7.14.5" + }, + "dependencies": { + "@babel/types": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.14.5.tgz", + "integrity": "sha512-M/NzBpEL95I5Hh4dwhin5JlE7EzO5PHMAuzjxss3tiOBD46KfQvVedN/3jEPZvdRvtsK2222XfdHogNIttFgcg==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.14.5", + "to-fast-properties": "^2.0.0" + } + } + } + }, + "@babel/helper-builder-binary-assignment-operator-visitor": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.14.5.tgz", + "integrity": "sha512-YTA/Twn0vBXDVGJuAX6PwW7x5zQei1luDDo2Pl6q1qZ7hVNl0RZrhHCQG/ArGpR29Vl7ETiB8eJyrvpuRp300w==", + "dev": true, + "requires": { + "@babel/helper-explode-assignable-expression": "^7.14.5", + "@babel/types": "^7.14.5" + }, + "dependencies": { + "@babel/types": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.14.5.tgz", + "integrity": "sha512-M/NzBpEL95I5Hh4dwhin5JlE7EzO5PHMAuzjxss3tiOBD46KfQvVedN/3jEPZvdRvtsK2222XfdHogNIttFgcg==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.14.5", + "to-fast-properties": "^2.0.0" + } + } + } + }, + "@babel/helper-compilation-targets": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.14.5.tgz", + "integrity": "sha512-v+QtZqXEiOnpO6EYvlImB6zCD2Lel06RzOPzmkz/D/XgQiUu3C/Jb1LOqSt/AIA34TYi/Q+KlT8vTQrgdxkbLw==", + "dev": true, + "requires": { + "@babel/compat-data": "^7.14.5", + "@babel/helper-validator-option": "^7.14.5", + "browserslist": "^4.16.6", + "semver": "^6.3.0" + } + }, + "@babel/helper-create-class-features-plugin": { + "version": "7.14.6", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.14.6.tgz", + "integrity": "sha512-Z6gsfGofTxH/+LQXqYEK45kxmcensbzmk/oi8DmaQytlQCgqNZt9XQF8iqlI/SeXWVjaMNxvYvzaYw+kh42mDg==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.14.5", + "@babel/helper-function-name": "^7.14.5", + "@babel/helper-member-expression-to-functions": "^7.14.5", + "@babel/helper-optimise-call-expression": "^7.14.5", + "@babel/helper-replace-supers": "^7.14.5", + "@babel/helper-split-export-declaration": "^7.14.5" + } + }, + "@babel/helper-create-regexp-features-plugin": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.14.5.tgz", + "integrity": "sha512-TLawwqpOErY2HhWbGJ2nZT5wSkR192QpN+nBg1THfBfftrlvOh+WbhrxXCH4q4xJ9Gl16BGPR/48JA+Ryiho/A==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.14.5", + "regexpu-core": "^4.7.1" + } + }, + "@babel/helper-define-polyfill-provider": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.2.3.tgz", + "integrity": "sha512-RH3QDAfRMzj7+0Nqu5oqgO5q9mFtQEVvCRsi8qCEfzLR9p2BHfn5FzhSB2oj1fF7I2+DcTORkYaQ6aTR9Cofew==", + "dev": true, + "requires": { + "@babel/helper-compilation-targets": "^7.13.0", + "@babel/helper-module-imports": "^7.12.13", + "@babel/helper-plugin-utils": "^7.13.0", + "@babel/traverse": "^7.13.0", + "debug": "^4.1.1", + "lodash.debounce": "^4.0.8", + "resolve": "^1.14.2", + "semver": "^6.1.2" + }, + "dependencies": { + "debug": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", + "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", + "dev": true, + "requires": { + "ms": "2.1.2" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + } + } + }, + "@babel/helper-explode-assignable-expression": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.14.5.tgz", + "integrity": "sha512-Htb24gnGJdIGT4vnRKMdoXiOIlqOLmdiUYpAQ0mYfgVT/GDm8GOYhgi4GL+hMKrkiPRohO4ts34ELFsGAPQLDQ==", + "dev": true, + "requires": { + "@babel/types": "^7.14.5" + }, + "dependencies": { + "@babel/types": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.14.5.tgz", + "integrity": "sha512-M/NzBpEL95I5Hh4dwhin5JlE7EzO5PHMAuzjxss3tiOBD46KfQvVedN/3jEPZvdRvtsK2222XfdHogNIttFgcg==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.14.5", + "to-fast-properties": "^2.0.0" + } + } + } + }, + "@babel/helper-function-name": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.14.5.tgz", + "integrity": "sha512-Gjna0AsXWfFvrAuX+VKcN/aNNWonizBj39yGwUzVDVTlMYJMK2Wp6xdpy72mfArFq5uK+NOuexfzZlzI1z9+AQ==", + "dev": true, + "requires": { + "@babel/helper-get-function-arity": "^7.14.5", + "@babel/template": "^7.14.5", + "@babel/types": "^7.14.5" + }, + "dependencies": { + "@babel/types": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.14.5.tgz", + "integrity": "sha512-M/NzBpEL95I5Hh4dwhin5JlE7EzO5PHMAuzjxss3tiOBD46KfQvVedN/3jEPZvdRvtsK2222XfdHogNIttFgcg==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.14.5", + "to-fast-properties": "^2.0.0" + } + } + } + }, + "@babel/helper-get-function-arity": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.14.5.tgz", + "integrity": "sha512-I1Db4Shst5lewOM4V+ZKJzQ0JGGaZ6VY1jYvMghRjqs6DWgxLCIyFt30GlnKkfUeFLpJt2vzbMVEXVSXlIFYUg==", + "dev": true, + "requires": { + "@babel/types": "^7.14.5" + }, + "dependencies": { + "@babel/types": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.14.5.tgz", + "integrity": "sha512-M/NzBpEL95I5Hh4dwhin5JlE7EzO5PHMAuzjxss3tiOBD46KfQvVedN/3jEPZvdRvtsK2222XfdHogNIttFgcg==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.14.5", + "to-fast-properties": "^2.0.0" + } + } + } + }, + "@babel/helper-hoist-variables": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.14.5.tgz", + "integrity": "sha512-R1PXiz31Uc0Vxy4OEOm07x0oSjKAdPPCh3tPivn/Eo8cvz6gveAeuyUUPB21Hoiif0uoPQSSdhIPS3352nvdyQ==", + "dev": true, + "requires": { + "@babel/types": "^7.14.5" + }, + "dependencies": { + "@babel/types": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.14.5.tgz", + "integrity": "sha512-M/NzBpEL95I5Hh4dwhin5JlE7EzO5PHMAuzjxss3tiOBD46KfQvVedN/3jEPZvdRvtsK2222XfdHogNIttFgcg==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.14.5", + "to-fast-properties": "^2.0.0" + } + } + } + }, + "@babel/helper-member-expression-to-functions": { + "version": "7.14.7", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.14.7.tgz", + "integrity": "sha512-TMUt4xKxJn6ccjcOW7c4hlwyJArizskAhoSTOCkA0uZ+KghIaci0Qg9R043kUMWI9mtQfgny+NQ5QATnZ+paaA==", + "dev": true, + "requires": { + "@babel/types": "^7.14.5" + }, + "dependencies": { + "@babel/types": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.14.5.tgz", + "integrity": "sha512-M/NzBpEL95I5Hh4dwhin5JlE7EzO5PHMAuzjxss3tiOBD46KfQvVedN/3jEPZvdRvtsK2222XfdHogNIttFgcg==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.14.5", + "to-fast-properties": "^2.0.0" + } + } + } + }, + "@babel/helper-module-imports": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.14.5.tgz", + "integrity": "sha512-SwrNHu5QWS84XlHwGYPDtCxcA0hrSlL2yhWYLgeOc0w7ccOl2qv4s/nARI0aYZW+bSwAL5CukeXA47B/1NKcnQ==", + "dev": true, + "requires": { + "@babel/types": "^7.14.5" + }, + "dependencies": { + "@babel/types": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.14.5.tgz", + "integrity": "sha512-M/NzBpEL95I5Hh4dwhin5JlE7EzO5PHMAuzjxss3tiOBD46KfQvVedN/3jEPZvdRvtsK2222XfdHogNIttFgcg==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.14.5", + "to-fast-properties": "^2.0.0" + } + } + } + }, + "@babel/helper-module-transforms": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.14.5.tgz", + "integrity": "sha512-iXpX4KW8LVODuAieD7MzhNjmM6dzYY5tfRqT+R9HDXWl0jPn/djKmA+G9s/2C2T9zggw5tK1QNqZ70USfedOwA==", + "dev": true, + "requires": { + "@babel/helper-module-imports": "^7.14.5", + "@babel/helper-replace-supers": "^7.14.5", + "@babel/helper-simple-access": "^7.14.5", + "@babel/helper-split-export-declaration": "^7.14.5", + "@babel/helper-validator-identifier": "^7.14.5", + "@babel/template": "^7.14.5", + "@babel/traverse": "^7.14.5", + "@babel/types": "^7.14.5" + }, + "dependencies": { + "@babel/types": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.14.5.tgz", + "integrity": "sha512-M/NzBpEL95I5Hh4dwhin5JlE7EzO5PHMAuzjxss3tiOBD46KfQvVedN/3jEPZvdRvtsK2222XfdHogNIttFgcg==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.14.5", + "to-fast-properties": "^2.0.0" + } + } + } + }, + "@babel/helper-optimise-call-expression": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.14.5.tgz", + "integrity": "sha512-IqiLIrODUOdnPU9/F8ib1Fx2ohlgDhxnIDU7OEVi+kAbEZcyiF7BLU8W6PfvPi9LzztjS7kcbzbmL7oG8kD6VA==", + "dev": true, + "requires": { + "@babel/types": "^7.14.5" + }, + "dependencies": { + "@babel/types": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.14.5.tgz", + "integrity": "sha512-M/NzBpEL95I5Hh4dwhin5JlE7EzO5PHMAuzjxss3tiOBD46KfQvVedN/3jEPZvdRvtsK2222XfdHogNIttFgcg==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.14.5", + "to-fast-properties": "^2.0.0" + } + } + } + }, + "@babel/helper-plugin-utils": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.14.5.tgz", + "integrity": "sha512-/37qQCE3K0vvZKwoK4XU/irIJQdIfCJuhU5eKnNxpFDsOkgFaUAwbv+RYw6eYgsC0E4hS7r5KqGULUogqui0fQ==", + "dev": true + }, + "@babel/helper-remap-async-to-generator": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.14.5.tgz", + "integrity": "sha512-rLQKdQU+HYlxBwQIj8dk4/0ENOUEhA/Z0l4hN8BexpvmSMN9oA9EagjnhnDpNsRdWCfjwa4mn/HyBXO9yhQP6A==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.14.5", + "@babel/helper-wrap-function": "^7.14.5", + "@babel/types": "^7.14.5" + }, + "dependencies": { + "@babel/types": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.14.5.tgz", + "integrity": "sha512-M/NzBpEL95I5Hh4dwhin5JlE7EzO5PHMAuzjxss3tiOBD46KfQvVedN/3jEPZvdRvtsK2222XfdHogNIttFgcg==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.14.5", + "to-fast-properties": "^2.0.0" + } + } + } + }, + "@babel/helper-replace-supers": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.14.5.tgz", + "integrity": "sha512-3i1Qe9/8x/hCHINujn+iuHy+mMRLoc77b2nI9TB0zjH1hvn9qGlXjWlggdwUcju36PkPCy/lpM7LLUdcTyH4Ow==", + "dev": true, + "requires": { + "@babel/helper-member-expression-to-functions": "^7.14.5", + "@babel/helper-optimise-call-expression": "^7.14.5", + "@babel/traverse": "^7.14.5", + "@babel/types": "^7.14.5" + }, + "dependencies": { + "@babel/types": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.14.5.tgz", + "integrity": "sha512-M/NzBpEL95I5Hh4dwhin5JlE7EzO5PHMAuzjxss3tiOBD46KfQvVedN/3jEPZvdRvtsK2222XfdHogNIttFgcg==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.14.5", + "to-fast-properties": "^2.0.0" + } + } + } + }, + "@babel/helper-simple-access": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.14.5.tgz", + "integrity": "sha512-nfBN9xvmCt6nrMZjfhkl7i0oTV3yxR4/FztsbOASyTvVcoYd0TRHh7eMLdlEcCqobydC0LAF3LtC92Iwxo0wyw==", + "dev": true, + "requires": { + "@babel/types": "^7.14.5" + }, + "dependencies": { + "@babel/types": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.14.5.tgz", + "integrity": "sha512-M/NzBpEL95I5Hh4dwhin5JlE7EzO5PHMAuzjxss3tiOBD46KfQvVedN/3jEPZvdRvtsK2222XfdHogNIttFgcg==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.14.5", + "to-fast-properties": "^2.0.0" + } + } + } + }, + "@babel/helper-skip-transparent-expression-wrappers": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.14.5.tgz", + "integrity": "sha512-dmqZB7mrb94PZSAOYtr+ZN5qt5owZIAgqtoTuqiFbHFtxgEcmQlRJVI+bO++fciBunXtB6MK7HrzrfcAzIz2NQ==", + "dev": true, + "requires": { + "@babel/types": "^7.14.5" + }, + "dependencies": { + "@babel/types": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.14.5.tgz", + "integrity": "sha512-M/NzBpEL95I5Hh4dwhin5JlE7EzO5PHMAuzjxss3tiOBD46KfQvVedN/3jEPZvdRvtsK2222XfdHogNIttFgcg==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.14.5", + "to-fast-properties": "^2.0.0" + } + } + } + }, + "@babel/helper-split-export-declaration": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.14.5.tgz", + "integrity": "sha512-hprxVPu6e5Kdp2puZUmvOGjaLv9TCe58E/Fl6hRq4YiVQxIcNvuq6uTM2r1mT/oPskuS9CgR+I94sqAYv0NGKA==", + "dev": true, + "requires": { + "@babel/types": "^7.14.5" + }, + "dependencies": { + "@babel/types": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.14.5.tgz", + "integrity": "sha512-M/NzBpEL95I5Hh4dwhin5JlE7EzO5PHMAuzjxss3tiOBD46KfQvVedN/3jEPZvdRvtsK2222XfdHogNIttFgcg==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.14.5", + "to-fast-properties": "^2.0.0" + } + } + } + }, + "@babel/helper-validator-identifier": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.5.tgz", + "integrity": "sha512-5lsetuxCLilmVGyiLEfoHBRX8UCFD+1m2x3Rj97WrW3V7H3u4RWRXA4evMjImCsin2J2YT0QaVDGf+z8ondbAg==" + }, + "@babel/helper-validator-option": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.14.5.tgz", + "integrity": "sha512-OX8D5eeX4XwcroVW45NMvoYaIuFI+GQpA2a8Gi+X/U/cDUIRsV37qQfF905F0htTRCREQIB4KqPeaveRJUl3Ow==", + "dev": true + }, + "@babel/helper-wrap-function": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.14.5.tgz", + "integrity": "sha512-YEdjTCq+LNuNS1WfxsDCNpgXkJaIyqco6DAelTUjT4f2KIWC1nBcaCaSdHTBqQVLnTBexBcVcFhLSU1KnYuePQ==", + "dev": true, + "requires": { + "@babel/helper-function-name": "^7.14.5", + "@babel/template": "^7.14.5", + "@babel/traverse": "^7.14.5", + "@babel/types": "^7.14.5" + }, + "dependencies": { + "@babel/types": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.14.5.tgz", + "integrity": "sha512-M/NzBpEL95I5Hh4dwhin5JlE7EzO5PHMAuzjxss3tiOBD46KfQvVedN/3jEPZvdRvtsK2222XfdHogNIttFgcg==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.14.5", + "to-fast-properties": "^2.0.0" + } + } + } + }, + "@babel/helpers": { + "version": "7.14.6", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.14.6.tgz", + "integrity": "sha512-yesp1ENQBiLI+iYHSJdoZKUtRpfTlL1grDIX9NRlAVppljLw/4tTyYupIB7uIYmC3stW/imAv8EqaKaS/ibmeA==", + "dev": true, + "requires": { + "@babel/template": "^7.14.5", + "@babel/traverse": "^7.14.5", + "@babel/types": "^7.14.5" + }, + "dependencies": { + "@babel/types": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.14.5.tgz", + "integrity": "sha512-M/NzBpEL95I5Hh4dwhin5JlE7EzO5PHMAuzjxss3tiOBD46KfQvVedN/3jEPZvdRvtsK2222XfdHogNIttFgcg==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.14.5", + "to-fast-properties": "^2.0.0" + } + } + } + }, + "@babel/highlight": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.14.5.tgz", + "integrity": "sha512-qf9u2WFWVV0MppaL877j2dBtQIDgmidgjGk5VIMw3OadXvYaXn66U1BFlH2t4+t3i+8PhedppRv+i40ABzd+gg==", + "requires": { + "@babel/helper-validator-identifier": "^7.14.5", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + } + }, + "@babel/parser": { + "version": "7.14.7", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.14.7.tgz", + "integrity": "sha512-X67Z5y+VBJuHB/RjwECp8kSl5uYi0BvRbNeWqkaJCVh+LiTPl19WBUfG627psSgp9rSf6ojuXghQM3ha6qHHdA==", + "dev": true + }, + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.14.5.tgz", + "integrity": "sha512-ZoJS2XCKPBfTmL122iP6NM9dOg+d4lc9fFk3zxc8iDjvt8Pk4+TlsHSKhIPf6X+L5ORCdBzqMZDjL/WHj7WknQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.14.5", + "@babel/helper-skip-transparent-expression-wrappers": "^7.14.5", + "@babel/plugin-proposal-optional-chaining": "^7.14.5" + } + }, + "@babel/plugin-proposal-async-generator-functions": { + "version": "7.14.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.14.7.tgz", + "integrity": "sha512-RK8Wj7lXLY3bqei69/cc25gwS5puEc3dknoFPFbqfy3XxYQBQFvu4ioWpafMBAB+L9NyptQK4nMOa5Xz16og8Q==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.14.5", + "@babel/helper-remap-async-to-generator": "^7.14.5", + "@babel/plugin-syntax-async-generators": "^7.8.4" + } + }, + "@babel/plugin-proposal-class-properties": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.14.5.tgz", + "integrity": "sha512-q/PLpv5Ko4dVc1LYMpCY7RVAAO4uk55qPwrIuJ5QJ8c6cVuAmhu7I/49JOppXL6gXf7ZHzpRVEUZdYoPLM04Gg==", + "dev": true, + "requires": { + "@babel/helper-create-class-features-plugin": "^7.14.5", + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/plugin-proposal-class-static-block": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.14.5.tgz", + "integrity": "sha512-KBAH5ksEnYHCegqseI5N9skTdxgJdmDoAOc0uXa+4QMYKeZD0w5IARh4FMlTNtaHhbB8v+KzMdTgxMMzsIy6Yg==", + "dev": true, + "requires": { + "@babel/helper-create-class-features-plugin": "^7.14.5", + "@babel/helper-plugin-utils": "^7.14.5", + "@babel/plugin-syntax-class-static-block": "^7.14.5" + } + }, + "@babel/plugin-proposal-dynamic-import": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.14.5.tgz", + "integrity": "sha512-ExjiNYc3HDN5PXJx+bwC50GIx/KKanX2HiggnIUAYedbARdImiCU4RhhHfdf0Kd7JNXGpsBBBCOm+bBVy3Gb0g==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.14.5", + "@babel/plugin-syntax-dynamic-import": "^7.8.3" + } + }, + "@babel/plugin-proposal-export-namespace-from": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.14.5.tgz", + "integrity": "sha512-g5POA32bXPMmSBu5Dx/iZGLGnKmKPc5AiY7qfZgurzrCYgIztDlHFbznSNCoQuv57YQLnQfaDi7dxCtLDIdXdA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.14.5", + "@babel/plugin-syntax-export-namespace-from": "^7.8.3" + } + }, + "@babel/plugin-proposal-json-strings": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.14.5.tgz", + "integrity": "sha512-NSq2fczJYKVRIsUJyNxrVUMhB27zb7N7pOFGQOhBKJrChbGcgEAqyZrmZswkPk18VMurEeJAaICbfm57vUeTbQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.14.5", + "@babel/plugin-syntax-json-strings": "^7.8.3" + } + }, + "@babel/plugin-proposal-logical-assignment-operators": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.14.5.tgz", + "integrity": "sha512-YGn2AvZAo9TwyhlLvCCWxD90Xq8xJ4aSgaX3G5D/8DW94L8aaT+dS5cSP+Z06+rCJERGSr9GxMBZ601xoc2taw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.14.5", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" + } + }, + "@babel/plugin-proposal-nullish-coalescing-operator": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.14.5.tgz", + "integrity": "sha512-gun/SOnMqjSb98Nkaq2rTKMwervfdAoz6NphdY0vTfuzMfryj+tDGb2n6UkDKwez+Y8PZDhE3D143v6Gepp4Hg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.14.5", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" + } + }, + "@babel/plugin-proposal-numeric-separator": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.14.5.tgz", + "integrity": "sha512-yiclALKe0vyZRZE0pS6RXgjUOt87GWv6FYa5zqj15PvhOGFO69R5DusPlgK/1K5dVnCtegTiWu9UaBSrLLJJBg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.14.5", + "@babel/plugin-syntax-numeric-separator": "^7.10.4" + } + }, + "@babel/plugin-proposal-object-rest-spread": { + "version": "7.14.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.14.7.tgz", + "integrity": "sha512-082hsZz+sVabfmDWo1Oct1u1AgbKbUAyVgmX4otIc7bdsRgHBXwTwb3DpDmD4Eyyx6DNiuz5UAATT655k+kL5g==", + "dev": true, + "requires": { + "@babel/compat-data": "^7.14.7", + "@babel/helper-compilation-targets": "^7.14.5", + "@babel/helper-plugin-utils": "^7.14.5", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-transform-parameters": "^7.14.5" + } + }, + "@babel/plugin-proposal-optional-catch-binding": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.14.5.tgz", + "integrity": "sha512-3Oyiixm0ur7bzO5ybNcZFlmVsygSIQgdOa7cTfOYCMY+wEPAYhZAJxi3mixKFCTCKUhQXuCTtQ1MzrpL3WT8ZQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.14.5", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" + } + }, + "@babel/plugin-proposal-optional-chaining": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.14.5.tgz", + "integrity": "sha512-ycz+VOzo2UbWNI1rQXxIuMOzrDdHGrI23fRiz/Si2R4kv2XZQ1BK8ccdHwehMKBlcH/joGW/tzrUmo67gbJHlQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.14.5", + "@babel/helper-skip-transparent-expression-wrappers": "^7.14.5", + "@babel/plugin-syntax-optional-chaining": "^7.8.3" + } + }, + "@babel/plugin-proposal-private-methods": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.14.5.tgz", + "integrity": "sha512-838DkdUA1u+QTCplatfq4B7+1lnDa/+QMI89x5WZHBcnNv+47N8QEj2k9I2MUU9xIv8XJ4XvPCviM/Dj7Uwt9g==", + "dev": true, + "requires": { + "@babel/helper-create-class-features-plugin": "^7.14.5", + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/plugin-proposal-private-property-in-object": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.14.5.tgz", + "integrity": "sha512-62EyfyA3WA0mZiF2e2IV9mc9Ghwxcg8YTu8BS4Wss4Y3PY725OmS9M0qLORbJwLqFtGh+jiE4wAmocK2CTUK2Q==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.14.5", + "@babel/helper-create-class-features-plugin": "^7.14.5", + "@babel/helper-plugin-utils": "^7.14.5", + "@babel/plugin-syntax-private-property-in-object": "^7.14.5" + } + }, + "@babel/plugin-proposal-unicode-property-regex": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.14.5.tgz", + "integrity": "sha512-6axIeOU5LnY471KenAB9vI8I5j7NQ2d652hIYwVyRfgaZT5UpiqFKCuVXCDMSrU+3VFafnu2c5m3lrWIlr6A5Q==", + "dev": true, + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.14.5", + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/plugin-syntax-async-generators": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", + "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-class-properties": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", + "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.12.13" + } + }, + "@babel/plugin-syntax-class-static-block": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz", + "integrity": "sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/plugin-syntax-dynamic-import": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz", + "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-export-namespace-from": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz", + "integrity": "sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.3" + } + }, + "@babel/plugin-syntax-json-strings": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", + "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-logical-assignment-operators": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", + "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-syntax-nullish-coalescing-operator": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", + "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-numeric-separator": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", + "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-syntax-object-rest-spread": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", + "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-optional-catch-binding": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", + "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-optional-chaining": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", + "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-private-property-in-object": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz", + "integrity": "sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/plugin-syntax-top-level-await": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", + "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/plugin-transform-arrow-functions": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.14.5.tgz", + "integrity": "sha512-KOnO0l4+tD5IfOdi4x8C1XmEIRWUjNRV8wc6K2vz/3e8yAOoZZvsRXRRIF/yo/MAOFb4QjtAw9xSxMXbSMRy8A==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/plugin-transform-async-to-generator": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.14.5.tgz", + "integrity": "sha512-szkbzQ0mNk0rpu76fzDdqSyPu0MuvpXgC+6rz5rpMb5OIRxdmHfQxrktL8CYolL2d8luMCZTR0DpIMIdL27IjA==", + "dev": true, + "requires": { + "@babel/helper-module-imports": "^7.14.5", + "@babel/helper-plugin-utils": "^7.14.5", + "@babel/helper-remap-async-to-generator": "^7.14.5" + } + }, + "@babel/plugin-transform-block-scoped-functions": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.14.5.tgz", + "integrity": "sha512-dtqWqdWZ5NqBX3KzsVCWfQI3A53Ft5pWFCT2eCVUftWZgjc5DpDponbIF1+c+7cSGk2wN0YK7HGL/ezfRbpKBQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/plugin-transform-block-scoping": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.14.5.tgz", + "integrity": "sha512-LBYm4ZocNgoCqyxMLoOnwpsmQ18HWTQvql64t3GvMUzLQrNoV1BDG0lNftC8QKYERkZgCCT/7J5xWGObGAyHDw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/plugin-transform-classes": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.14.5.tgz", + "integrity": "sha512-J4VxKAMykM06K/64z9rwiL6xnBHgB1+FVspqvlgCdwD1KUbQNfszeKVVOMh59w3sztHYIZDgnhOC4WbdEfHFDA==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.14.5", + "@babel/helper-function-name": "^7.14.5", + "@babel/helper-optimise-call-expression": "^7.14.5", + "@babel/helper-plugin-utils": "^7.14.5", + "@babel/helper-replace-supers": "^7.14.5", + "@babel/helper-split-export-declaration": "^7.14.5", + "globals": "^11.1.0" + } + }, + "@babel/plugin-transform-computed-properties": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.14.5.tgz", + "integrity": "sha512-pWM+E4283UxaVzLb8UBXv4EIxMovU4zxT1OPnpHJcmnvyY9QbPPTKZfEj31EUvG3/EQRbYAGaYEUZ4yWOBC2xg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/plugin-transform-destructuring": { + "version": "7.14.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.14.7.tgz", + "integrity": "sha512-0mDE99nK+kVh3xlc5vKwB6wnP9ecuSj+zQCa/n0voENtP/zymdT4HH6QEb65wjjcbqr1Jb/7z9Qp7TF5FtwYGw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/plugin-transform-dotall-regex": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.14.5.tgz", + "integrity": "sha512-loGlnBdj02MDsFaHhAIJzh7euK89lBrGIdM9EAtHFo6xKygCUGuuWe07o1oZVk287amtW1n0808sQM99aZt3gw==", + "dev": true, + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.14.5", + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/plugin-transform-duplicate-keys": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.14.5.tgz", + "integrity": "sha512-iJjbI53huKbPDAsJ8EmVmvCKeeq21bAze4fu9GBQtSLqfvzj2oRuHVx4ZkDwEhg1htQ+5OBZh/Ab0XDf5iBZ7A==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/plugin-transform-exponentiation-operator": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.14.5.tgz", + "integrity": "sha512-jFazJhMBc9D27o9jDnIE5ZErI0R0m7PbKXVq77FFvqFbzvTMuv8jaAwLZ5PviOLSFttqKIW0/wxNSDbjLk0tYA==", + "dev": true, + "requires": { + "@babel/helper-builder-binary-assignment-operator-visitor": "^7.14.5", + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/plugin-transform-for-of": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.14.5.tgz", + "integrity": "sha512-CfmqxSUZzBl0rSjpoQSFoR9UEj3HzbGuGNL21/iFTmjb5gFggJp3ph0xR1YBhexmLoKRHzgxuFvty2xdSt6gTA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/plugin-transform-function-name": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.14.5.tgz", + "integrity": "sha512-vbO6kv0fIzZ1GpmGQuvbwwm+O4Cbm2NrPzwlup9+/3fdkuzo1YqOZcXw26+YUJB84Ja7j9yURWposEHLYwxUfQ==", + "dev": true, + "requires": { + "@babel/helper-function-name": "^7.14.5", + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/plugin-transform-literals": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.14.5.tgz", + "integrity": "sha512-ql33+epql2F49bi8aHXxvLURHkxJbSmMKl9J5yHqg4PLtdE6Uc48CH1GS6TQvZ86eoB/ApZXwm7jlA+B3kra7A==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/plugin-transform-member-expression-literals": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.14.5.tgz", + "integrity": "sha512-WkNXxH1VXVTKarWFqmso83xl+2V3Eo28YY5utIkbsmXoItO8Q3aZxN4BTS2k0hz9dGUloHK26mJMyQEYfkn/+Q==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/plugin-transform-modules-amd": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.14.5.tgz", + "integrity": "sha512-3lpOU8Vxmp3roC4vzFpSdEpGUWSMsHFreTWOMMLzel2gNGfHE5UWIh/LN6ghHs2xurUp4jRFYMUIZhuFbody1g==", + "dev": true, + "requires": { + "@babel/helper-module-transforms": "^7.14.5", + "@babel/helper-plugin-utils": "^7.14.5", + "babel-plugin-dynamic-import-node": "^2.3.3" + } + }, + "@babel/plugin-transform-modules-commonjs": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.14.5.tgz", + "integrity": "sha512-en8GfBtgnydoao2PS+87mKyw62k02k7kJ9ltbKe0fXTHrQmG6QZZflYuGI1VVG7sVpx4E1n7KBpNlPb8m78J+A==", + "dev": true, + "requires": { + "@babel/helper-module-transforms": "^7.14.5", + "@babel/helper-plugin-utils": "^7.14.5", + "@babel/helper-simple-access": "^7.14.5", + "babel-plugin-dynamic-import-node": "^2.3.3" + } + }, + "@babel/plugin-transform-modules-systemjs": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.14.5.tgz", + "integrity": "sha512-mNMQdvBEE5DcMQaL5LbzXFMANrQjd2W7FPzg34Y4yEz7dBgdaC+9B84dSO+/1Wba98zoDbInctCDo4JGxz1VYA==", + "dev": true, + "requires": { + "@babel/helper-hoist-variables": "^7.14.5", + "@babel/helper-module-transforms": "^7.14.5", + "@babel/helper-plugin-utils": "^7.14.5", + "@babel/helper-validator-identifier": "^7.14.5", + "babel-plugin-dynamic-import-node": "^2.3.3" + } + }, + "@babel/plugin-transform-modules-umd": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.14.5.tgz", + "integrity": "sha512-RfPGoagSngC06LsGUYyM9QWSXZ8MysEjDJTAea1lqRjNECE3y0qIJF/qbvJxc4oA4s99HumIMdXOrd+TdKaAAA==", + "dev": true, + "requires": { + "@babel/helper-module-transforms": "^7.14.5", + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/plugin-transform-named-capturing-groups-regex": { + "version": "7.14.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.14.7.tgz", + "integrity": "sha512-DTNOTaS7TkW97xsDMrp7nycUVh6sn/eq22VaxWfEdzuEbRsiaOU0pqU7DlyUGHVsbQbSghvjKRpEl+nUCKGQSg==", + "dev": true, + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.14.5" + } + }, + "@babel/plugin-transform-new-target": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.14.5.tgz", + "integrity": "sha512-Nx054zovz6IIRWEB49RDRuXGI4Gy0GMgqG0cII9L3MxqgXz/+rgII+RU58qpo4g7tNEx1jG7rRVH4ihZoP4esQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/plugin-transform-object-super": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.14.5.tgz", + "integrity": "sha512-MKfOBWzK0pZIrav9z/hkRqIk/2bTv9qvxHzPQc12RcVkMOzpIKnFCNYJip00ssKWYkd8Sf5g0Wr7pqJ+cmtuFg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.14.5", + "@babel/helper-replace-supers": "^7.14.5" + } + }, + "@babel/plugin-transform-parameters": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.14.5.tgz", + "integrity": "sha512-Tl7LWdr6HUxTmzQtzuU14SqbgrSKmaR77M0OKyq4njZLQTPfOvzblNKyNkGwOfEFCEx7KeYHQHDI0P3F02IVkA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/plugin-transform-property-literals": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.14.5.tgz", + "integrity": "sha512-r1uilDthkgXW8Z1vJz2dKYLV1tuw2xsbrp3MrZmD99Wh9vsfKoob+JTgri5VUb/JqyKRXotlOtwgu4stIYCmnw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/plugin-transform-regenerator": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.14.5.tgz", + "integrity": "sha512-NVIY1W3ITDP5xQl50NgTKlZ0GrotKtLna08/uGY6ErQt6VEQZXla86x/CTddm5gZdcr+5GSsvMeTmWA5Ii6pkg==", + "dev": true, + "requires": { + "regenerator-transform": "^0.14.2" + } + }, + "@babel/plugin-transform-reserved-words": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.14.5.tgz", + "integrity": "sha512-cv4F2rv1nD4qdexOGsRQXJrOcyb5CrgjUH9PKrrtyhSDBNWGxd0UIitjyJiWagS+EbUGjG++22mGH1Pub8D6Vg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/plugin-transform-shorthand-properties": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.14.5.tgz", + "integrity": "sha512-xLucks6T1VmGsTB+GWK5Pl9Jl5+nRXD1uoFdA5TSO6xtiNjtXTjKkmPdFXVLGlK5A2/or/wQMKfmQ2Y0XJfn5g==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/plugin-transform-spread": { + "version": "7.14.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.14.6.tgz", + "integrity": "sha512-Zr0x0YroFJku7n7+/HH3A2eIrGMjbmAIbJSVv0IZ+t3U2WUQUA64S/oeied2e+MaGSjmt4alzBCsK9E8gh+fag==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.14.5", + "@babel/helper-skip-transparent-expression-wrappers": "^7.14.5" + } + }, + "@babel/plugin-transform-sticky-regex": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.14.5.tgz", + "integrity": "sha512-Z7F7GyvEMzIIbwnziAZmnSNpdijdr4dWt+FJNBnBLz5mwDFkqIXU9wmBcWWad3QeJF5hMTkRe4dAq2sUZiG+8A==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/plugin-transform-template-literals": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.14.5.tgz", + "integrity": "sha512-22btZeURqiepOfuy/VkFr+zStqlujWaarpMErvay7goJS6BWwdd6BY9zQyDLDa4x2S3VugxFb162IZ4m/S/+Gg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/plugin-transform-typeof-symbol": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.14.5.tgz", + "integrity": "sha512-lXzLD30ffCWseTbMQzrvDWqljvZlHkXU+CnseMhkMNqU1sASnCsz3tSzAaH3vCUXb9PHeUb90ZT1BdFTm1xxJw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/plugin-transform-unicode-escapes": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.14.5.tgz", + "integrity": "sha512-crTo4jATEOjxj7bt9lbYXcBAM3LZaUrbP2uUdxb6WIorLmjNKSpHfIybgY4B8SRpbf8tEVIWH3Vtm7ayCrKocA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/plugin-transform-unicode-regex": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.14.5.tgz", + "integrity": "sha512-UygduJpC5kHeCiRw/xDVzC+wj8VaYSoKl5JNVmbP7MadpNinAm3SvZCxZ42H37KZBKztz46YC73i9yV34d0Tzw==", + "dev": true, + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.14.5", + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/preset-env": { + "version": "7.14.7", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.14.7.tgz", + "integrity": "sha512-itOGqCKLsSUl0Y+1nSfhbuuOlTs0MJk2Iv7iSH+XT/mR8U1zRLO7NjWlYXB47yhK4J/7j+HYty/EhFZDYKa/VA==", + "dev": true, + "requires": { + "@babel/compat-data": "^7.14.7", + "@babel/helper-compilation-targets": "^7.14.5", + "@babel/helper-plugin-utils": "^7.14.5", + "@babel/helper-validator-option": "^7.14.5", + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.14.5", + "@babel/plugin-proposal-async-generator-functions": "^7.14.7", + "@babel/plugin-proposal-class-properties": "^7.14.5", + "@babel/plugin-proposal-class-static-block": "^7.14.5", + "@babel/plugin-proposal-dynamic-import": "^7.14.5", + "@babel/plugin-proposal-export-namespace-from": "^7.14.5", + "@babel/plugin-proposal-json-strings": "^7.14.5", + "@babel/plugin-proposal-logical-assignment-operators": "^7.14.5", + "@babel/plugin-proposal-nullish-coalescing-operator": "^7.14.5", + "@babel/plugin-proposal-numeric-separator": "^7.14.5", + "@babel/plugin-proposal-object-rest-spread": "^7.14.7", + "@babel/plugin-proposal-optional-catch-binding": "^7.14.5", + "@babel/plugin-proposal-optional-chaining": "^7.14.5", + "@babel/plugin-proposal-private-methods": "^7.14.5", + "@babel/plugin-proposal-private-property-in-object": "^7.14.5", + "@babel/plugin-proposal-unicode-property-regex": "^7.14.5", + "@babel/plugin-syntax-async-generators": "^7.8.4", + "@babel/plugin-syntax-class-properties": "^7.12.13", + "@babel/plugin-syntax-class-static-block": "^7.14.5", + "@babel/plugin-syntax-dynamic-import": "^7.8.3", + "@babel/plugin-syntax-export-namespace-from": "^7.8.3", + "@babel/plugin-syntax-json-strings": "^7.8.3", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", + "@babel/plugin-syntax-numeric-separator": "^7.10.4", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", + "@babel/plugin-syntax-optional-chaining": "^7.8.3", + "@babel/plugin-syntax-private-property-in-object": "^7.14.5", + "@babel/plugin-syntax-top-level-await": "^7.14.5", + "@babel/plugin-transform-arrow-functions": "^7.14.5", + "@babel/plugin-transform-async-to-generator": "^7.14.5", + "@babel/plugin-transform-block-scoped-functions": "^7.14.5", + "@babel/plugin-transform-block-scoping": "^7.14.5", + "@babel/plugin-transform-classes": "^7.14.5", + "@babel/plugin-transform-computed-properties": "^7.14.5", + "@babel/plugin-transform-destructuring": "^7.14.7", + "@babel/plugin-transform-dotall-regex": "^7.14.5", + "@babel/plugin-transform-duplicate-keys": "^7.14.5", + "@babel/plugin-transform-exponentiation-operator": "^7.14.5", + "@babel/plugin-transform-for-of": "^7.14.5", + "@babel/plugin-transform-function-name": "^7.14.5", + "@babel/plugin-transform-literals": "^7.14.5", + "@babel/plugin-transform-member-expression-literals": "^7.14.5", + "@babel/plugin-transform-modules-amd": "^7.14.5", + "@babel/plugin-transform-modules-commonjs": "^7.14.5", + "@babel/plugin-transform-modules-systemjs": "^7.14.5", + "@babel/plugin-transform-modules-umd": "^7.14.5", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.14.7", + "@babel/plugin-transform-new-target": "^7.14.5", + "@babel/plugin-transform-object-super": "^7.14.5", + "@babel/plugin-transform-parameters": "^7.14.5", + "@babel/plugin-transform-property-literals": "^7.14.5", + "@babel/plugin-transform-regenerator": "^7.14.5", + "@babel/plugin-transform-reserved-words": "^7.14.5", + "@babel/plugin-transform-shorthand-properties": "^7.14.5", + "@babel/plugin-transform-spread": "^7.14.6", + "@babel/plugin-transform-sticky-regex": "^7.14.5", + "@babel/plugin-transform-template-literals": "^7.14.5", + "@babel/plugin-transform-typeof-symbol": "^7.14.5", + "@babel/plugin-transform-unicode-escapes": "^7.14.5", + "@babel/plugin-transform-unicode-regex": "^7.14.5", + "@babel/preset-modules": "^0.1.4", + "@babel/types": "^7.14.5", + "babel-plugin-polyfill-corejs2": "^0.2.2", + "babel-plugin-polyfill-corejs3": "^0.2.2", + "babel-plugin-polyfill-regenerator": "^0.2.2", + "core-js-compat": "^3.15.0", + "semver": "^6.3.0" + }, + "dependencies": { + "@babel/types": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.14.5.tgz", + "integrity": "sha512-M/NzBpEL95I5Hh4dwhin5JlE7EzO5PHMAuzjxss3tiOBD46KfQvVedN/3jEPZvdRvtsK2222XfdHogNIttFgcg==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.14.5", + "to-fast-properties": "^2.0.0" + } + } + } + }, + "@babel/preset-modules": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.4.tgz", + "integrity": "sha512-J36NhwnfdzpmH41M1DrnkkgAqhZaqr/NBdPfQ677mLzlaXo+oDiv1deyCDtgAhz8p328otdob0Du7+xgHGZbKg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/plugin-proposal-unicode-property-regex": "^7.4.4", + "@babel/plugin-transform-dotall-regex": "^7.4.4", + "@babel/types": "^7.4.4", + "esutils": "^2.0.2" + } + }, + "@babel/runtime": { + "version": "7.14.6", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.14.6.tgz", + "integrity": "sha512-/PCB2uJ7oM44tz8YhC4Z/6PeOKXp4K588f+5M3clr1M4zbqztlo0XEfJ2LEzj/FgwfgGcIdl8n7YYjTCI0BYwg==", + "requires": { + "regenerator-runtime": "^0.13.4" + } + }, + "@babel/template": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.14.5.tgz", + "integrity": "sha512-6Z3Po85sfxRGachLULUhOmvAaOo7xCvqGQtxINai2mEGPFm6pQ4z5QInFnUrRpfoSV60BnjyF5F3c+15fxFV1g==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.14.5", + "@babel/parser": "^7.14.5", + "@babel/types": "^7.14.5" + }, + "dependencies": { + "@babel/code-frame": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.14.5.tgz", + "integrity": "sha512-9pzDqyc6OLDaqe+zbACgFkb6fKMNG6CObKpnYXChRsvYGyEdc7CA2BaqeOM+vOtCS5ndmJicPJhKAwYRI6UfFw==", + "dev": true, + "requires": { + "@babel/highlight": "^7.14.5" + } + }, + "@babel/types": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.14.5.tgz", + "integrity": "sha512-M/NzBpEL95I5Hh4dwhin5JlE7EzO5PHMAuzjxss3tiOBD46KfQvVedN/3jEPZvdRvtsK2222XfdHogNIttFgcg==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.14.5", + "to-fast-properties": "^2.0.0" + } + } + } + }, + "@babel/traverse": { + "version": "7.14.7", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.14.7.tgz", + "integrity": "sha512-9vDr5NzHu27wgwejuKL7kIOm4bwEtaPQ4Z6cpCmjSuaRqpH/7xc4qcGEscwMqlkwgcXl6MvqoAjZkQ24uSdIZQ==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.14.5", + "@babel/generator": "^7.14.5", + "@babel/helper-function-name": "^7.14.5", + "@babel/helper-hoist-variables": "^7.14.5", + "@babel/helper-split-export-declaration": "^7.14.5", + "@babel/parser": "^7.14.7", + "@babel/types": "^7.14.5", + "debug": "^4.1.0", + "globals": "^11.1.0" + }, + "dependencies": { + "@babel/code-frame": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.14.5.tgz", + "integrity": "sha512-9pzDqyc6OLDaqe+zbACgFkb6fKMNG6CObKpnYXChRsvYGyEdc7CA2BaqeOM+vOtCS5ndmJicPJhKAwYRI6UfFw==", + "dev": true, + "requires": { + "@babel/highlight": "^7.14.5" + } + }, + "@babel/types": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.14.5.tgz", + "integrity": "sha512-M/NzBpEL95I5Hh4dwhin5JlE7EzO5PHMAuzjxss3tiOBD46KfQvVedN/3jEPZvdRvtsK2222XfdHogNIttFgcg==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.14.5", + "to-fast-properties": "^2.0.0" + } + }, + "debug": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", + "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", + "dev": true, + "requires": { + "ms": "2.1.2" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + } + } + }, + "@babel/types": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.3.tgz", + "integrity": "sha512-jBD+G8+LWpMBBWvVcdr4QysjUE4mU/syrhN17o1u3gx0/WzJB1kwiVZAXRtWbsIPOwW8pF/YJV5+nmetPzepXg==", + "requires": { + "esutils": "^2.0.2", + "lodash": "^4.17.13", + "to-fast-properties": "^2.0.0" + } + }, + "@emotion/hash": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/@emotion/hash/-/hash-0.8.0.tgz", + "integrity": "sha512-kBJtf7PH6aWwZ6fka3zQ0p6SBYzx4fl1LoZXE2RrnYST9Xljm7WfKJrU4g/Xr3Beg72MLrp1AWNUmuYJTL7Cow==" + }, + "@graphql-typed-document-node/core": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@graphql-typed-document-node/core/-/core-3.1.0.tgz", + "integrity": "sha512-wYn6r8zVZyQJ6rQaALBEln5B1pzxb9shV5Ef97kTvn6yVGrqyXVnDqnU24MXnFubR+rZjBY9NWuxX3FB2sTsjg==" + }, + "@hapi/accept": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/@hapi/accept/-/accept-5.0.2.tgz", + "integrity": "sha512-CmzBx/bXUR8451fnZRuZAJRlzgm0Jgu5dltTX/bszmR2lheb9BpyN47Q1RbaGTsvFzn0PXAEs+lXDKfshccYZw==", + "requires": { + "@hapi/boom": "9.x.x", + "@hapi/hoek": "9.x.x" + } + }, + "@hapi/address": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/@hapi/address/-/address-2.1.4.tgz", + "integrity": "sha512-QD1PhQk+s31P1ixsX0H0Suoupp3VMXzIVMSwobR3F3MSUO2YCV0B7xqLcUw/Bh8yuvd3LhpyqLQWTNcRmp6IdQ==", + "dev": true + }, + "@hapi/boom": { + "version": "9.1.3", + "resolved": "https://registry.npmjs.org/@hapi/boom/-/boom-9.1.3.tgz", + "integrity": "sha512-RlrGyZ603hE/eRTZtTltocRm50HHmrmL3kGOP0SQ9MasazlW1mt/fkv4C5P/6rnpFXjwld/POFX1C8tMZE3ldg==", + "requires": { + "@hapi/hoek": "9.x.x" + } + }, + "@hapi/bourne": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/@hapi/bourne/-/bourne-1.3.2.tgz", + "integrity": "sha512-1dVNHT76Uu5N3eJNTYcvxee+jzX4Z9lfciqRRHCU27ihbUcYi+iSc2iml5Ke1LXe1SyJCLA0+14Jh4tXJgOppA==", + "dev": true + }, + "@hapi/hoek": { + "version": "9.2.0", + "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-9.2.0.tgz", + "integrity": "sha512-sqKVVVOe5ivCaXDWivIJYVSaEgdQK9ul7a4Kity5Iw7u9+wBAPbX1RMSnLLmp7O4Vzj0WOWwMAJsTL00xwaNug==" + }, + "@hapi/joi": { + "version": "15.1.1", + "resolved": "https://registry.npmjs.org/@hapi/joi/-/joi-15.1.1.tgz", + "integrity": "sha512-entf8ZMOK8sc+8YfeOlM8pCfg3b5+WZIKBfUaaJT8UsjAAPjartzxIYm3TIbjvA4u+u++KbcXD38k682nVHDAQ==", + "dev": true, + "requires": { + "@hapi/address": "2.x.x", + "@hapi/bourne": "1.x.x", + "@hapi/hoek": "8.x.x", + "@hapi/topo": "3.x.x" + }, + "dependencies": { + "@hapi/hoek": { + "version": "8.5.1", + "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-8.5.1.tgz", + "integrity": "sha512-yN7kbciD87WzLGc5539Tn0sApjyiGHAJgKvG9W8C7O+6c7qmoQMfVs0W4bX17eqz6C78QJqqFrtgdK5EWf6Qow==", + "dev": true + } + } + }, + "@hapi/topo": { + "version": "3.1.6", + "resolved": "https://registry.npmjs.org/@hapi/topo/-/topo-3.1.6.tgz", + "integrity": "sha512-tAag0jEcjwH+P2quUfipd7liWCNX2F8NvYjQp2wtInsZxnMlypdw0FtAOLxtvvkO+GSRRbmNi8m/5y42PQJYCQ==", + "dev": true, + "requires": { + "@hapi/hoek": "^8.3.0" + }, + "dependencies": { + "@hapi/hoek": { + "version": "8.5.1", + "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-8.5.1.tgz", + "integrity": "sha512-yN7kbciD87WzLGc5539Tn0sApjyiGHAJgKvG9W8C7O+6c7qmoQMfVs0W4bX17eqz6C78QJqqFrtgdK5EWf6Qow==", + "dev": true + } + } + }, + "@material-ui/core": { + "version": "4.11.4", + "resolved": "https://registry.npmjs.org/@material-ui/core/-/core-4.11.4.tgz", + "integrity": "sha512-oqb+lJ2Dl9HXI9orc6/aN8ZIAMkeThufA5iZELf2LQeBn2NtjVilF5D2w7e9RpntAzDb4jK5DsVhkfOvFY/8fg==", + "requires": { + "@babel/runtime": "^7.4.4", + "@material-ui/styles": "^4.11.4", + "@material-ui/system": "^4.11.3", + "@material-ui/types": "5.1.0", + "@material-ui/utils": "^4.11.2", + "@types/react-transition-group": "^4.2.0", + "clsx": "^1.0.4", + "hoist-non-react-statics": "^3.3.2", + "popper.js": "1.16.1-lts", + "prop-types": "^15.7.2", + "react-is": "^16.8.0 || ^17.0.0", + "react-transition-group": "^4.4.0" + } + }, + "@material-ui/icons": { + "version": "4.11.2", + "resolved": "https://registry.npmjs.org/@material-ui/icons/-/icons-4.11.2.tgz", + "integrity": "sha512-fQNsKX2TxBmqIGJCSi3tGTO/gZ+eJgWmMJkgDiOfyNaunNaxcklJQFaFogYcFl0qFuaEz1qaXYXboa/bUXVSOQ==", + "requires": { + "@babel/runtime": "^7.4.4" + } + }, + "@material-ui/lab": { + "version": "4.0.0-alpha.57", + "resolved": "https://registry.npmjs.org/@material-ui/lab/-/lab-4.0.0-alpha.57.tgz", + "integrity": "sha512-qo/IuIQOmEKtzmRD2E4Aa6DB4A87kmY6h0uYhjUmrrgmEAgbbw9etXpWPVXuRK6AGIQCjFzV6WO2i21m1R4FCw==", + "requires": { + "@babel/runtime": "^7.4.4", + "@material-ui/utils": "^4.11.2", + "clsx": "^1.0.4", + "prop-types": "^15.7.2", + "react-is": "^16.8.0 || ^17.0.0" + } + }, + "@material-ui/styles": { + "version": "4.11.4", + "resolved": "https://registry.npmjs.org/@material-ui/styles/-/styles-4.11.4.tgz", + "integrity": "sha512-KNTIZcnj/zprG5LW0Sao7zw+yG3O35pviHzejMdcSGCdWbiO8qzRgOYL8JAxAsWBKOKYwVZxXtHWaB5T2Kvxew==", + "requires": { + "@babel/runtime": "^7.4.4", + "@emotion/hash": "^0.8.0", + "@material-ui/types": "5.1.0", + "@material-ui/utils": "^4.11.2", + "clsx": "^1.0.4", + "csstype": "^2.5.2", + "hoist-non-react-statics": "^3.3.2", + "jss": "^10.5.1", + "jss-plugin-camel-case": "^10.5.1", + "jss-plugin-default-unit": "^10.5.1", + "jss-plugin-global": "^10.5.1", + "jss-plugin-nested": "^10.5.1", + "jss-plugin-props-sort": "^10.5.1", + "jss-plugin-rule-value-function": "^10.5.1", + "jss-plugin-vendor-prefixer": "^10.5.1", + "prop-types": "^15.7.2" + } + }, + "@material-ui/system": { + "version": "4.11.3", + "resolved": "https://registry.npmjs.org/@material-ui/system/-/system-4.11.3.tgz", + "integrity": "sha512-SY7otguNGol41Mu2Sg6KbBP1ZRFIbFLHGK81y4KYbsV2yIcaEPOmsCK6zwWlp+2yTV3J/VwT6oSBARtGIVdXPw==", + "requires": { + "@babel/runtime": "^7.4.4", + "@material-ui/utils": "^4.11.2", + "csstype": "^2.5.2", + "prop-types": "^15.7.2" + } + }, + "@material-ui/types": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/@material-ui/types/-/types-5.1.0.tgz", + "integrity": "sha512-7cqRjrY50b8QzRSYyhSpx4WRw2YuO0KKIGQEVk5J8uoz2BanawykgZGoWEqKm7pVIbzFDN0SpPcVV4IhOFkl8A==" + }, + "@material-ui/utils": { + "version": "4.11.2", + "resolved": "https://registry.npmjs.org/@material-ui/utils/-/utils-4.11.2.tgz", + "integrity": "sha512-Uul8w38u+PICe2Fg2pDKCaIG7kOyhowZ9vjiC1FsVwPABTW8vPPKfF6OvxRq3IiBaI1faOJmgdvMG7rMJARBhA==", + "requires": { + "@babel/runtime": "^7.4.4", + "prop-types": "^15.7.2", + "react-is": "^16.8.0 || ^17.0.0" + } + }, + "@next/bundle-analyzer": { + "version": "9.5.5", + "resolved": "https://registry.npmjs.org/@next/bundle-analyzer/-/bundle-analyzer-9.5.5.tgz", + "integrity": "sha512-HDYa5oFtBlZXG/N1wsheOaj2XeOFEi0HzwPiyIP82TxjoDoB6HKDYRIV3JHIUCeGFjkA66jSh8r1EAHNOuU51A==", + "dev": true, + "requires": { + "webpack-bundle-analyzer": "3.6.1" + } + }, + "@next/env": { + "version": "10.2.3", + "resolved": "https://registry.npmjs.org/@next/env/-/env-10.2.3.tgz", + "integrity": "sha512-uBOjRBjsWC4C8X3DfmWWP6ekwLnf2JCCwQX9KVnJtJkqfDsv1yQPakdOEwvJzXQc3JC/v5KKffYPVmV2wHXCgQ==" + }, + "@next/polyfill-module": { + "version": "10.2.3", + "resolved": "https://registry.npmjs.org/@next/polyfill-module/-/polyfill-module-10.2.3.tgz", + "integrity": "sha512-OkeY4cLhzfYbXxM4fd+6V4s5pTPuyfKSlavItfNRA6PpS7t1/R6YjO7S7rB8tu1pbTGuDHGIdE1ioDv15bAbDQ==" + }, + "@next/react-dev-overlay": { + "version": "10.2.3", + "resolved": "https://registry.npmjs.org/@next/react-dev-overlay/-/react-dev-overlay-10.2.3.tgz", + "integrity": "sha512-E6g2jws4YW94l0lMMopBVKIZK2mEHfSBvM0d9dmzKG9L/A/kEq6LZCB4SiwGJbNsAdlk2y3USDa0oNbpA+m5Kw==", + "requires": { + "@babel/code-frame": "7.12.11", + "anser": "1.4.9", + "chalk": "4.0.0", + "classnames": "2.2.6", + "css.escape": "1.5.1", + "data-uri-to-buffer": "3.0.1", + "platform": "1.3.6", + "shell-quote": "1.7.2", + "source-map": "0.8.0-beta.0", + "stacktrace-parser": "0.1.10", + "strip-ansi": "6.0.0" + }, + "dependencies": { + "chalk": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.0.0.tgz", + "integrity": "sha512-N9oWFcegS0sFr9oh1oz2d7Npos6vNoWW9HvtCg5N1KRFpUhaAhvTv5Y58g880fZaEYSNm3qDz8SU1UrGvp+n7A==", + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "classnames": { + "version": "2.2.6", + "resolved": "https://registry.npmjs.org/classnames/-/classnames-2.2.6.tgz", + "integrity": "sha512-JR/iSQOSt+LQIWwrwEzJ9uk0xfN3mTVYMwt1Ir5mUcSN6pU+V4zQFFaJsclJbPuAUQH+yfWef6tm7l1quW3C8Q==" + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "@next/react-refresh-utils": { + "version": "10.2.3", + "resolved": "https://registry.npmjs.org/@next/react-refresh-utils/-/react-refresh-utils-10.2.3.tgz", + "integrity": "sha512-qtBF56vPC6d6a8p7LYd0iRjW89fhY80kAIzmj+VonvIGjK/nymBjcFUhbKiMFqlhsarCksnhwX+Zmn95Dw9qvA==" + }, + "@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dev": true, + "requires": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + } + }, + "@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "dev": true + }, + "@nodelib/fs.walk": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.7.tgz", + "integrity": "sha512-BTIhocbPBSrRmHxOAJFtR18oLhxTtAFDAvL8hY1S3iU8k+E60W/YFs4jrixGzQjMpF4qPXxIQHcjVD9dz1C2QA==", + "dev": true, + "requires": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + } + }, + "@opentelemetry/api": { + "version": "0.14.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/api/-/api-0.14.0.tgz", + "integrity": "sha512-L7RMuZr5LzMmZiQSQDy9O1jo0q+DaLy6XpYJfIGfYSfoJA5qzYwUP3sP1uMIQ549DvxAgM3ng85EaPTM/hUHwQ==", + "requires": { + "@opentelemetry/context-base": "^0.14.0" + } + }, + "@opentelemetry/context-base": { + "version": "0.14.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/context-base/-/context-base-0.14.0.tgz", + "integrity": "sha512-sDOAZcYwynHFTbLo6n8kIbLiVF3a3BLkrmehJUyEbT9F+Smbi47kLGS2gG2g0fjBLR/Lr1InPD7kXL7FaTqEkw==" + }, + "@rollup/plugin-node-resolve": { + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-7.1.3.tgz", + "integrity": "sha512-RxtSL3XmdTAE2byxekYLnx+98kEUOrPHF/KRVjLH+DEIHy6kjIw7YINQzn+NXiH/NTrQLAwYs0GWB+csWygA9Q==", + "dev": true, + "requires": { + "@rollup/pluginutils": "^3.0.8", + "@types/resolve": "0.0.8", + "builtin-modules": "^3.1.0", + "is-module": "^1.0.0", + "resolve": "^1.14.2" + } + }, + "@rollup/plugin-replace": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/@rollup/plugin-replace/-/plugin-replace-2.4.2.tgz", + "integrity": "sha512-IGcu+cydlUMZ5En85jxHH4qj2hta/11BHq95iHEyb2sbgiN0eCdzvUcHw5gt9pBL5lTi4JDYJ1acCoMGpTvEZg==", + "dev": true, + "requires": { + "@rollup/pluginutils": "^3.1.0", + "magic-string": "^0.25.7" + } + }, + "@rollup/pluginutils": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-3.1.0.tgz", + "integrity": "sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg==", + "dev": true, + "requires": { + "@types/estree": "0.0.39", + "estree-walker": "^1.0.1", + "picomatch": "^2.2.2" + } + }, + "@surma/rollup-plugin-off-main-thread": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/@surma/rollup-plugin-off-main-thread/-/rollup-plugin-off-main-thread-1.4.2.tgz", + "integrity": "sha512-yBMPqmd1yEJo/280PAMkychuaALyQ9Lkb5q1ck3mjJrFuEobIfhnQ4J3mbvBoISmR3SWMWV+cGB/I0lCQee79A==", + "dev": true, + "requires": { + "ejs": "^2.6.1", + "magic-string": "^0.25.0" + } + }, + "@types/classnames": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/@types/classnames/-/classnames-2.3.1.tgz", + "integrity": "sha512-zeOWb0JGBoVmlQoznvqXbE0tEC/HONsnoUNH19Hc96NFsTAwTXbTqb8FMYkru1F/iqp7a18Ws3nWJvtA1sHD1A==", + "requires": { + "classnames": "*" + } + }, + "@types/d3-color": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/@types/d3-color/-/d3-color-1.4.1.tgz", + "integrity": "sha512-xkPLi+gbgUU9ED6QX4g6jqYL2KCB0/3AlM+ncMGqn49OgH0gFMY/ITGqPF8HwEiLzJaC+2L0I+gNwBgABv1Pvg==" + }, + "@types/d3-interpolate": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/@types/d3-interpolate/-/d3-interpolate-1.4.2.tgz", + "integrity": "sha512-ylycts6llFf8yAEs1tXzx2loxxzDZHseuhPokrqKprTQSTcD3JbJI1omZP1rphsELZO3Q+of3ff0ZS7+O6yVzg==", + "requires": { + "@types/d3-color": "^1" + } + }, + "@types/d3-path": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/@types/d3-path/-/d3-path-1.0.9.tgz", + "integrity": "sha512-NaIeSIBiFgSC6IGUBjZWcscUJEq7vpVu7KthHN8eieTV9d9MqkSOZLH4chq1PmcKy06PNe3axLeKmRIyxJ+PZQ==" + }, + "@types/d3-random": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/@types/d3-random/-/d3-random-2.2.1.tgz", + "integrity": "sha512-5vvxn6//poNeOxt1ZwC7QU//dG9QqABjy1T7fP/xmFHY95GnaOw3yABf29hiu5SR1Oo34XcpyHFbzod+vemQjA==" + }, + "@types/d3-scale": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/@types/d3-scale/-/d3-scale-3.3.2.tgz", + "integrity": "sha512-gGqr7x1ost9px3FvIfUMi5XA/F/yAf4UkUDtdQhpH92XCT0Oa7zkkRzY61gPVJq+DxpHn/btouw5ohWkbBsCzQ==", + "requires": { + "@types/d3-time": "^2" + } + }, + "@types/d3-shape": { + "version": "1.3.7", + "resolved": "https://registry.npmjs.org/@types/d3-shape/-/d3-shape-1.3.7.tgz", + "integrity": "sha512-jdrLlW7qscZlcy4NvOMA6s4LrgShqQ18cxVWbXmigauN+UmhLer8SGZdrBdiN7gUm+sk0wIrDA6zOcjrZnicwA==", + "requires": { + "@types/d3-path": "^1" + } + }, + "@types/d3-time": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/@types/d3-time/-/d3-time-2.1.1.tgz", + "integrity": "sha512-9MVYlmIgmRR31C5b4FVSWtuMmBHh2mOWQYfl7XAYOa8dsnb7iEmUmRSWSFgXFtkjxO65d7hTUHQC+RhR/9IWFg==" + }, + "@types/estree": { + "version": "0.0.39", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.39.tgz", + "integrity": "sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==", + "dev": true + }, + "@types/glob": { + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.1.3.tgz", + "integrity": "sha512-SEYeGAIQIQX8NN6LDKprLjbrd5dARM5EXsd8GI/A5l0apYI1fGMWgPHSe4ZKL4eozlAyI+doUE9XbYS4xCkQ1w==", + "dev": true, + "requires": { + "@types/minimatch": "*", + "@types/node": "*" + } + }, + "@types/lodash": { + "version": "4.14.170", + "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.170.tgz", + "integrity": "sha512-bpcvu/MKHHeYX+qeEN8GE7DIravODWdACVA1ctevD8CN24RhPZIKMn9ntfAsrvLfSX3cR5RrBKAbYm9bGs0A+Q==" + }, + "@types/minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-1z8k4wzFnNjVK/tlxvrWuK5WMt6mydWWP7+zvH5eFep4oj+UkrfiJTRtjCeBXNpwaA/FYqqtb4/QS4ianFpIRA==", + "dev": true + }, + "@types/node": { + "version": "16.0.0", + "resolved": "https://registry.npmjs.org/@types/node/-/node-16.0.0.tgz", + "integrity": "sha512-TmCW5HoZ2o2/z2EYi109jLqIaPIi9y/lc2LmDCWzuCi35bcaQ+OtUh6nwBiFK7SOu25FAU5+YKdqFZUwtqGSdg==" + }, + "@types/prop-types": { + "version": "15.7.3", + "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.3.tgz", + "integrity": "sha512-KfRL3PuHmqQLOG+2tGpRO26Ctg+Cq1E01D2DMriKEATHgWLfeNDmq9e29Q9WIky0dQ3NPkd1mzYH8Lm936Z9qw==" + }, + "@types/react": { + "version": "17.0.13", + "resolved": "https://registry.npmjs.org/@types/react/-/react-17.0.13.tgz", + "integrity": "sha512-D/G3PiuqTfE3IMNjLn/DCp6umjVCSvtZTPdtAFy5+Ved6CsdRvivfKeCzw79W4AatShtU4nGqgvOv5Gro534vQ==", + "requires": { + "@types/prop-types": "*", + "@types/scheduler": "*", + "csstype": "^3.0.2" + }, + "dependencies": { + "csstype": { + "version": "3.0.8", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.0.8.tgz", + "integrity": "sha512-jXKhWqXPmlUeoQnF/EhTtTl4C9SnrxSH/jZUih3jmO6lBKr99rP3/+FmrMj4EFpOXzMtXHAZkd3x0E6h6Fgflw==" + } + } + }, + "@types/react-dom": { + "version": "17.0.8", + "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-17.0.8.tgz", + "integrity": "sha512-0ohAiJAx1DAUEcY9UopnfwCE9sSMDGnY/oXjWMax6g3RpzmTt2GMyMVAXcbn0mo8XAff0SbQJl2/SBU+hjSZ1A==", + "requires": { + "@types/react": "*" + } + }, + "@types/react-transition-group": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/@types/react-transition-group/-/react-transition-group-4.4.1.tgz", + "integrity": "sha512-vIo69qKKcYoJ8wKCJjwSgCTM+z3chw3g18dkrDfVX665tMH7tmbDxEAnPdey4gTlwZz5QuHGzd+hul0OVZDqqQ==", + "requires": { + "@types/react": "*" + } + }, + "@types/resolve": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/@types/resolve/-/resolve-0.0.8.tgz", + "integrity": "sha512-auApPaJf3NPfe18hSoJkp8EbZzer2ISk7o8mCC3M9he/a04+gbMF97NkpD2S8riMGvm4BMRI59/SZQSaLTKpsQ==", + "dev": true, + "requires": { + "@types/node": "*" + } + }, + "@types/scheduler": { + "version": "0.16.1", + "resolved": "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.1.tgz", + "integrity": "sha512-EaCxbanVeyxDRTQBkdLb3Bvl/HK7PBK6UJjsSixB0iHKoWxE5uu2Q/DgtpOhPIojN0Zl1whvOd7PoHs2P0s5eA==" + }, + "@types/source-list-map": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/@types/source-list-map/-/source-list-map-0.1.2.tgz", + "integrity": "sha512-K5K+yml8LTo9bWJI/rECfIPrGgxdpeNbj+d53lwN4QjW1MCwlkhUms+gtdzigTeUyBr09+u8BwOIY3MXvHdcsA==", + "dev": true + }, + "@types/tapable": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/@types/tapable/-/tapable-1.0.8.tgz", + "integrity": "sha512-ipixuVrh2OdNmauvtT51o3d8z12p6LtFW9in7U79der/kwejjdNchQC5UMn5u/KxNoM7VHHOs/l8KS8uHxhODQ==", + "dev": true + }, + "@types/uglify-js": { + "version": "3.13.1", + "resolved": "https://registry.npmjs.org/@types/uglify-js/-/uglify-js-3.13.1.tgz", + "integrity": "sha512-O3MmRAk6ZuAKa9CHgg0Pr0+lUOqoMLpc9AS4R8ano2auvsg7IE8syF3Xh/NPr26TWklxYcqoEEFdzLLs1fV9PQ==", + "dev": true, + "requires": { + "source-map": "^0.6.1" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } + } + }, + "@types/webpack": { + "version": "4.41.30", + "resolved": "https://registry.npmjs.org/@types/webpack/-/webpack-4.41.30.tgz", + "integrity": "sha512-GUHyY+pfuQ6haAfzu4S14F+R5iGRwN6b2FRNJY7U0NilmFAqbsOfK6j1HwuLBAqwRIT+pVdNDJGJ6e8rpp0KHA==", + "dev": true, + "requires": { + "@types/node": "*", + "@types/tapable": "^1", + "@types/uglify-js": "*", + "@types/webpack-sources": "*", + "anymatch": "^3.0.0", + "source-map": "^0.6.0" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } + } + }, + "@types/webpack-sources": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/@types/webpack-sources/-/webpack-sources-2.1.1.tgz", + "integrity": "sha512-MjM1R6iuw8XaVbtkCBz0N349cyqBjJHCbQiOeppe3VBeFvxqs74RKHAVt9LkxTnUWc7YLZOEsUfPUnmK6SBPKQ==", + "dev": true, + "requires": { + "@types/node": "*", + "@types/source-list-map": "*", + "source-map": "^0.7.3" + }, + "dependencies": { + "source-map": { + "version": "0.7.3", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", + "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==", + "dev": true + } + } + }, + "@types/zen-observable": { + "version": "0.8.3", + "resolved": "https://registry.npmjs.org/@types/zen-observable/-/zen-observable-0.8.3.tgz", + "integrity": "sha512-fbF6oTd4sGGy0xjHPKAt+eS2CrxJ3+6gQ3FGcBoIJR2TLAyCkCyI8JqZNy+FeON0AhVgNJoUumVoZQjBFUqHkw==" + }, + "@visx/axis": { + "version": "1.16.0", + "resolved": "https://registry.npmjs.org/@visx/axis/-/axis-1.16.0.tgz", + "integrity": "sha512-QxuSF2QiDZMtceygKA0fD33bVxRbHM8eTIYbcbhv9eSYyG92wZFNo5Dt+KKz2n1Q/oh9C8CiI0b39C8P8ojvHQ==", + "requires": { + "@types/classnames": "^2.2.9", + "@types/react": "*", + "@visx/group": "1.7.0", + "@visx/point": "1.7.0", + "@visx/scale": "1.14.0", + "@visx/shape": "1.16.0", + "@visx/text": "1.10.0", + "classnames": "^2.2.5", + "prop-types": "^15.6.0" + } + }, + "@visx/bounds": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/@visx/bounds/-/bounds-1.7.0.tgz", + "integrity": "sha512-ajF6PTgDoZTfwv5J0ZTx1miXY8lk3sGhMVqE3UsMubdTZBlOgeZMT4OmtTPtbCJTBTgw0FD0gd7X3gZ+3X9HgQ==", + "requires": { + "@types/react": "*", + "@types/react-dom": "*", + "prop-types": "^15.5.10" + } + }, + "@visx/brush": { + "version": "1.16.0", + "resolved": "https://registry.npmjs.org/@visx/brush/-/brush-1.16.0.tgz", + "integrity": "sha512-n0vOcx++ch74Wrfthi31L/A86vQX3WRcmkrPOvbNFMnyNg2g/w8ObQYFU5hNxCXx0zFk+hVIWgDENwW0Euk+Aw==", + "requires": { + "@visx/drag": "1.15.0", + "@visx/event": "1.7.0", + "@visx/group": "1.7.0", + "@visx/shape": "1.16.0", + "classnames": "^2.2.5", + "prop-types": "^15.6.1" + } + }, + "@visx/clip-path": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/@visx/clip-path/-/clip-path-1.7.0.tgz", + "integrity": "sha512-PuEz/2Clmx3qb0gat4kzjoq/rLush1nhNOT1DV7ui/fipC7z+KpB53OXHeOviB4udD+u233W5kY1uSErLysPRQ==", + "requires": { + "@types/react": "*", + "prop-types": "^15.5.10" + } + }, + "@visx/curve": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/@visx/curve/-/curve-1.7.0.tgz", + "integrity": "sha512-n0/SHM4YXjke+aEinhHFZPLMxWu3jbqtvqzfGJyibX8OmbDjavk9P+MHfGokUcw0xHy6Ch3YTuwbYuvVw5ny9A==", + "requires": { + "@types/d3-shape": "^1.3.1", + "d3-shape": "^1.0.6" + } + }, + "@visx/drag": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/@visx/drag/-/drag-1.15.0.tgz", + "integrity": "sha512-0YfDDmxu5kxxgEeEfnTMWJad6fI/M+Zs9yK8sQx8iZIF6CLrR76yeOqE3KINE2kbpqDvOWGMr3E1g6ao7vL+eQ==", + "requires": { + "@types/react": "*", + "@visx/event": "1.7.0", + "prop-types": "^15.5.10" + } + }, + "@visx/event": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/@visx/event/-/event-1.7.0.tgz", + "integrity": "sha512-RbAoKxvy+ildX2dVXC9/ZX94lQXPwjKgtO9jy7COc15knG4zmzsMCDYDC3uLd0+jE2o/+gSaZ/9r52p6zG5+IQ==", + "requires": { + "@types/react": "*", + "@visx/point": "1.7.0" + } + }, + "@visx/gradient": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/@visx/gradient/-/gradient-1.7.0.tgz", + "integrity": "sha512-KtlzpgY+1tEIxEhFwyGp7nVwDjaPs9bcLO5Wkm3uw5ehQtRMYQBC3O2N+GEKdQM2yNZVApvtSMiXQDxGTFK67g==", + "requires": { + "@types/react": "*", + "prop-types": "^15.5.7" + } + }, + "@visx/grid": { + "version": "1.16.0", + "resolved": "https://registry.npmjs.org/@visx/grid/-/grid-1.16.0.tgz", + "integrity": "sha512-WxAZ2K9itSbO/uz/6gcK8npE/doTrUz2CKBvvwKOUWjKiHkbmyk8SvNNf2yT6rMaSJ1Qxw63oUn3+j50QpcXKA==", + "requires": { + "@types/classnames": "^2.2.9", + "@types/react": "*", + "@visx/curve": "1.7.0", + "@visx/group": "1.7.0", + "@visx/point": "1.7.0", + "@visx/scale": "1.14.0", + "@visx/shape": "1.16.0", + "classnames": "^2.2.5", + "prop-types": "^15.6.2" + } + }, + "@visx/group": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/@visx/group/-/group-1.7.0.tgz", + "integrity": "sha512-rzSXtV0+MHUyK+rwhVSV4qaHdzGi3Me3PRFXJSIAKVfoJIZczOkudUOLy34WvSrRlVyoFvGL7k9U5g8wHyY3nw==", + "requires": { + "@types/classnames": "^2.2.9", + "@types/react": "*", + "classnames": "^2.2.5", + "prop-types": "^15.6.2" + } + }, + "@visx/legend": { + "version": "1.14.0", + "resolved": "https://registry.npmjs.org/@visx/legend/-/legend-1.14.0.tgz", + "integrity": "sha512-4tZH45KXOSWN/WArt5BpAgGEKoOt6Xwq7NnAuFpiBZ4+DhmbH3qGuz/wOIv4wGmePpMPNLgNcKtYQee94gxJpQ==", + "requires": { + "@types/classnames": "^2.2.9", + "@types/react": "*", + "@visx/group": "1.7.0", + "@visx/scale": "1.14.0", + "classnames": "^2.2.5", + "prop-types": "^15.5.10" + } + }, + "@visx/marker": { + "version": "1.16.0", + "resolved": "https://registry.npmjs.org/@visx/marker/-/marker-1.16.0.tgz", + "integrity": "sha512-PimGnKJAa0o7ckRyIBdQXZ52b5UKiEBDO5ORkRWqeMxQRlA4rivpZMLA5GldAxccU9xDt7/8vp3aHfIEgV4KlA==", + "requires": { + "@types/classnames": "^2.2.9", + "@types/react": "*", + "@visx/group": "1.7.0", + "@visx/shape": "1.16.0", + "classnames": "^2.2.5", + "prop-types": "^15.6.2" + } + }, + "@visx/mock-data": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/@visx/mock-data/-/mock-data-1.7.0.tgz", + "integrity": "sha512-v7DGro/4q382ReSWmPCKdRR1AtNUp9ERM129omMaTcf52i8RbSYNfMdxucMaEBIbATI905vYqQKA8S6xopPupQ==", + "requires": { + "@types/d3-random": "^2.2.0", + "d3-random": "^2.2.2" + } + }, + "@visx/pattern": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/@visx/pattern/-/pattern-1.7.0.tgz", + "integrity": "sha512-uIrGDtm7NqDfZZneRZ/DRdZA0nli/13sIUcxQ0oRL70b6ul+epNGiBVR8pvrgMhZ+SW3b05xhfEDnfnl2CqFQw==", + "requires": { + "@types/classnames": "^2.2.9", + "@types/react": "*", + "classnames": "^2.2.5", + "prop-types": "^15.5.10" + } + }, + "@visx/point": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/@visx/point/-/point-1.7.0.tgz", + "integrity": "sha512-oaoY/HXYHhmpkkeKI4rBPmFtjHWtxSrIhZCVm1ipPoyQp3voJ8L6JD5eUIVmmaUCdUGUGwL1lFLnJiQ2p1Vlwg==" + }, + "@visx/react-spring": { + "version": "1.16.0", + "resolved": "https://registry.npmjs.org/@visx/react-spring/-/react-spring-1.16.0.tgz", + "integrity": "sha512-cU1BT8EEqUhHQxTCARA9ndhLHJyIb2zFHM51Bnrn4mKbqZKixSDuKMP1Il3kx7wUrak8SB4iGN0LwZK7mwmyPA==", + "requires": { + "@types/classnames": "^2.2.9", + "@types/react": "*", + "@visx/axis": "1.16.0", + "@visx/grid": "1.16.0", + "@visx/scale": "1.14.0", + "@visx/text": "1.10.0", + "classnames": "^2.2.5", + "prop-types": "^15.6.2" + } + }, + "@visx/responsive": { + "version": "1.10.1", + "resolved": "https://registry.npmjs.org/@visx/responsive/-/responsive-1.10.1.tgz", + "integrity": "sha512-7FT2BBmWFkFFqynI9C1NYfVOKT1FsNOm6MwWMqXKA7TMomdBW0wdtQNB1bHvwJvWurM/sNqxcQ/CBED6t9xujQ==", + "requires": { + "@types/lodash": "^4.14.146", + "@types/react": "*", + "lodash": "^4.17.10", + "prop-types": "^15.6.1", + "resize-observer-polyfill": "1.5.1" + } + }, + "@visx/scale": { + "version": "1.14.0", + "resolved": "https://registry.npmjs.org/@visx/scale/-/scale-1.14.0.tgz", + "integrity": "sha512-ovbtEOF/d76uGMJ5UZlxdS3t2T8I6md+aIwOXBaq0HdjaCLbe7HLlMyHJKjak/sqBxLAiCGVnechTUpSkfgSQw==", + "requires": { + "@types/d3-interpolate": "^1.3.1", + "@types/d3-scale": "^3.3.0", + "@types/d3-time": "^2.0.0", + "d3-interpolate": "^1.4.0", + "d3-scale": "^3.3.0", + "d3-time": "^2.1.1" + } + }, + "@visx/shape": { + "version": "1.16.0", + "resolved": "https://registry.npmjs.org/@visx/shape/-/shape-1.16.0.tgz", + "integrity": "sha512-+itAegbZiKegzDpBMRd/XQ13bR/YXzR7VcovQLzPE7GQqszq+efrrzNyjjnRLRBL9bZcCmp60aYSiDMOQVX0Tw==", + "requires": { + "@types/classnames": "^2.2.9", + "@types/d3-path": "^1.0.8", + "@types/d3-shape": "^1.3.1", + "@types/lodash": "^4.14.146", + "@types/react": "*", + "@visx/curve": "1.7.0", + "@visx/group": "1.7.0", + "@visx/scale": "1.14.0", + "classnames": "^2.2.5", + "d3-path": "^1.0.5", + "d3-shape": "^1.2.0", + "lodash": "^4.17.15", + "prop-types": "^15.5.10" + } + }, + "@visx/text": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/@visx/text/-/text-1.10.0.tgz", + "integrity": "sha512-2y56LxbbSHAlu8XP0cARB9JlhPx0HlQyIC4iKUzj36+iJaBiw9wUwLb9RbT/rY715V+6VzU7WCNCxoa4lDr9Sg==", + "requires": { + "@types/classnames": "^2.2.9", + "@types/lodash": "^4.14.160", + "@types/react": "*", + "classnames": "^2.2.5", + "lodash": "^4.17.20", + "prop-types": "^15.7.2", + "reduce-css-calc": "^1.3.0" + } + }, + "@visx/threshold": { + "version": "1.16.0", + "resolved": "https://registry.npmjs.org/@visx/threshold/-/threshold-1.16.0.tgz", + "integrity": "sha512-Fl+T1v/aK6Qsh9cxH/XaJsNDmR6yLgmqTnCrmAtB35awnxsQXKkLQtVYJd4PNmnzcBfGQXsuXT1YAgJQn78/tQ==", + "requires": { + "@types/classnames": "^2.2.9", + "@types/react": "*", + "@visx/clip-path": "1.7.0", + "@visx/shape": "1.16.0", + "classnames": "^2.2.5", + "prop-types": "^15.5.10" + } + }, + "@visx/tooltip": { + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/@visx/tooltip/-/tooltip-1.7.2.tgz", + "integrity": "sha512-QCNLaOGpgZ6RnZjCIbEJtfbu8ZkSwDOXRy5SOUvcC5J9RiEwCi0DXF1JzT7ZPv3hkLU1KiSPaUFf5q/5LNHwLg==", + "requires": { + "@types/classnames": "^2.2.9", + "@types/react": "*", + "@visx/bounds": "1.7.0", + "classnames": "^2.2.5", + "prop-types": "^15.5.10", + "react-use-measure": "^2.0.4" + } + }, + "@wry/context": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/@wry/context/-/context-0.6.0.tgz", + "integrity": "sha512-sAgendOXR8dM7stJw3FusRxFHF/ZinU0lffsA2YTyyIOfic86JX02qlPqPVqJNZJPAxFt+2EE8bvq6ZlS0Kf+Q==", + "requires": { + "tslib": "^2.1.0" + }, + "dependencies": { + "tslib": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.0.tgz", + "integrity": "sha512-N82ooyxVNm6h1riLCoyS9e3fuJ3AMG2zIZs2Gd1ATcSFjSA23Q0fzjjZeh0jbJvWVDZ0cJT8yaNNaaXHzueNjg==" + } + } + }, + "@wry/equality": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/@wry/equality/-/equality-0.5.1.tgz", + "integrity": "sha512-FZKbdpbcVcbDxQrKcaBClNsQaMg9nof1RKM7mReJe5DKUzM5u8S7T+PqwNqvib5O2j2xxF1R4p5O3+b6baTrbw==", + "requires": { + "tslib": "^2.1.0" + }, + "dependencies": { + "tslib": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.0.tgz", + "integrity": "sha512-N82ooyxVNm6h1riLCoyS9e3fuJ3AMG2zIZs2Gd1ATcSFjSA23Q0fzjjZeh0jbJvWVDZ0cJT8yaNNaaXHzueNjg==" + } + } + }, + "@wry/trie": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/@wry/trie/-/trie-0.3.0.tgz", + "integrity": "sha512-Yw1akIogPhAT6XPYsRHlZZIS0tIGmAl9EYXHi2scf7LPKKqdqmow/Hu4kEqP2cJR3EjaU/9L0ZlAjFf3hFxmug==", + "requires": { + "tslib": "^2.1.0" + }, + "dependencies": { + "tslib": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.0.tgz", + "integrity": "sha512-N82ooyxVNm6h1riLCoyS9e3fuJ3AMG2zIZs2Gd1ATcSFjSA23Q0fzjjZeh0jbJvWVDZ0cJT8yaNNaaXHzueNjg==" + } + } + }, + "accepts": { + "version": "1.3.7", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz", + "integrity": "sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==", + "dev": true, + "requires": { + "mime-types": "~2.1.24", + "negotiator": "0.6.2" + } + }, + "acorn": { + "version": "7.4.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", + "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", + "dev": true + }, + "acorn-walk": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-7.2.0.tgz", + "integrity": "sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==", + "dev": true + }, + "anser": { + "version": "1.4.9", + "resolved": "https://registry.npmjs.org/anser/-/anser-1.4.9.tgz", + "integrity": "sha512-AI+BjTeGt2+WFk4eWcqbQ7snZpDBt8SaLlj0RT2h5xfdWaiy51OjYvqwMrNzJLGy8iOAL6nKDITWO+rd4MkYEA==" + }, + "ansi-regex": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==" + }, + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "requires": { + "color-convert": "^2.0.1" + } + }, + "anymatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", + "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", + "requires": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + } + }, + "array-flatten": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", + "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=", + "dev": true + }, + "array-union": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", + "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=", + "dev": true, + "requires": { + "array-uniq": "^1.0.1" + } + }, + "array-uniq": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz", + "integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=", + "dev": true + }, + "asn1.js": { + "version": "5.4.1", + "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-5.4.1.tgz", + "integrity": "sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA==", + "requires": { + "bn.js": "^4.0.0", + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0", + "safer-buffer": "^2.1.0" + }, + "dependencies": { + "bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" + } + } + }, + "assert": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/assert/-/assert-2.0.0.tgz", + "integrity": "sha512-se5Cd+js9dXJnu6Ag2JFc00t+HmHOen+8Q+L7O9zI0PqQXr20uk2J0XQqMxZEeo5U50o8Nvmmx7dZrl+Ufr35A==", + "requires": { + "es6-object-assign": "^1.1.0", + "is-nan": "^1.2.1", + "object-is": "^1.0.1", + "util": "^0.12.0" + } + }, + "ast-types": { + "version": "0.13.2", + "resolved": "https://registry.npmjs.org/ast-types/-/ast-types-0.13.2.tgz", + "integrity": "sha512-uWMHxJxtfj/1oZClOxDEV1sQ1HCDkA4MG8Gr69KKeBjEVH0R84WlejZ0y2DcwyBlpAEMltmVYkVgqfLFb2oyiA==" + }, + "async-limiter": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.1.tgz", + "integrity": "sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ==", + "dev": true + }, + "autosuggest-highlight": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/autosuggest-highlight/-/autosuggest-highlight-3.1.1.tgz", + "integrity": "sha512-MQ6GNIGMMZbeA5FlBLXXgkZEthysCdYNkMV4MahB2/qB/9cwBnVsePUPnIqkMuzjzclTtDa67xln7cgLDu2f/g==", + "requires": { + "diacritic": "0.0.2" + } + }, + "available-typed-arrays": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.4.tgz", + "integrity": "sha512-SA5mXJWrId1TaQjfxUYghbqQ/hYioKmLJvPJyDuYRtXXenFNMjj4hSSt1Cf1xsuXSXrtxrVC5Ot4eU6cOtBDdA==" + }, + "babel-extract-comments": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/babel-extract-comments/-/babel-extract-comments-1.0.0.tgz", + "integrity": "sha512-qWWzi4TlddohA91bFwgt6zO/J0X+io7Qp184Fw0m2JYRSTZnJbFR8+07KmzudHCZgOiKRCrjhylwv9Xd8gfhVQ==", + "dev": true, + "requires": { + "babylon": "^6.18.0" + } + }, + "babel-plugin-dynamic-import-node": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz", + "integrity": "sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ==", + "dev": true, + "requires": { + "object.assign": "^4.1.0" + } + }, + "babel-plugin-polyfill-corejs2": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.2.2.tgz", + "integrity": "sha512-kISrENsJ0z5dNPq5eRvcctITNHYXWOA4DUZRFYCz3jYCcvTb/A546LIddmoGNMVYg2U38OyFeNosQwI9ENTqIQ==", + "dev": true, + "requires": { + "@babel/compat-data": "^7.13.11", + "@babel/helper-define-polyfill-provider": "^0.2.2", + "semver": "^6.1.1" + } + }, + "babel-plugin-polyfill-corejs3": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.2.3.tgz", + "integrity": "sha512-rCOFzEIJpJEAU14XCcV/erIf/wZQMmMT5l5vXOpL5uoznyOGfDIjPj6FVytMvtzaKSTSVKouOCTPJ5OMUZH30g==", + "dev": true, + "requires": { + "@babel/helper-define-polyfill-provider": "^0.2.2", + "core-js-compat": "^3.14.0" + } + }, + "babel-plugin-polyfill-regenerator": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.2.2.tgz", + "integrity": "sha512-Goy5ghsc21HgPDFtzRkSirpZVW35meGoTmTOb2bxqdl60ghub4xOidgNTHaZfQ2FaxQsKmwvXtOAkcIS4SMBWg==", + "dev": true, + "requires": { + "@babel/helper-define-polyfill-provider": "^0.2.2" + } + }, + "babel-plugin-syntax-jsx": { + "version": "6.18.0", + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-jsx/-/babel-plugin-syntax-jsx-6.18.0.tgz", + "integrity": "sha1-CvMqmm4Tyno/1QaeYtew9Y0NiUY=" + }, + "babel-plugin-syntax-object-rest-spread": { + "version": "6.13.0", + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-object-rest-spread/-/babel-plugin-syntax-object-rest-spread-6.13.0.tgz", + "integrity": "sha1-/WU28rzhODb/o6VFjEkDpZe7O/U=", + "dev": true + }, + "babel-plugin-transform-object-rest-spread": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-object-rest-spread/-/babel-plugin-transform-object-rest-spread-6.26.0.tgz", + "integrity": "sha1-DzZpLVD+9rfi1LOsFHgTepY7ewY=", + "dev": true, + "requires": { + "babel-plugin-syntax-object-rest-spread": "^6.8.0", + "babel-runtime": "^6.26.0" + } + }, + "babel-runtime": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", + "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", + "dev": true, + "requires": { + "core-js": "^2.4.0", + "regenerator-runtime": "^0.11.0" + }, + "dependencies": { + "regenerator-runtime": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", + "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==", + "dev": true + } + } + }, + "babylon": { + "version": "6.18.0", + "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz", + "integrity": "sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==", + "dev": true + }, + "balanced-match": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-0.4.2.tgz", + "integrity": "sha1-yz8+PHMtwPAe5wtAPzAuYddwmDg=" + }, + "base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==" + }, + "bfj": { + "version": "6.1.2", + "resolved": "https://registry.npmjs.org/bfj/-/bfj-6.1.2.tgz", + "integrity": "sha512-BmBJa4Lip6BPRINSZ0BPEIfB1wUY/9rwbwvIHQA1KjX9om29B6id0wnWXq7m3bn5JrUVjeOTnVuhPT1FiHwPGw==", + "dev": true, + "requires": { + "bluebird": "^3.5.5", + "check-types": "^8.0.3", + "hoopy": "^0.1.4", + "tryer": "^1.0.1" + } + }, + "big.js": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", + "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==" + }, + "binary-extensions": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==" + }, + "bluebird": { + "version": "3.7.2", + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", + "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==", + "dev": true + }, + "bn.js": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.0.tgz", + "integrity": "sha512-D7iWRBvnZE8ecXiLj/9wbxH7Tk79fAh8IHaTNq1RWRixsS02W+5qS+iE9yq6RYl0asXx5tw0bLhmT5pIfbSquw==" + }, + "body-parser": { + "version": "1.19.0", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.0.tgz", + "integrity": "sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw==", + "dev": true, + "requires": { + "bytes": "3.1.0", + "content-type": "~1.0.4", + "debug": "2.6.9", + "depd": "~1.1.2", + "http-errors": "1.7.2", + "iconv-lite": "0.4.24", + "on-finished": "~2.3.0", + "qs": "6.7.0", + "raw-body": "2.4.0", + "type-is": "~1.6.17" + }, + "dependencies": { + "http-errors": { + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.2.tgz", + "integrity": "sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg==", + "dev": true, + "requires": { + "depd": "~1.1.2", + "inherits": "2.0.3", + "setprototypeof": "1.1.1", + "statuses": ">= 1.5.0 < 2", + "toidentifier": "1.0.0" + } + }, + "iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dev": true, + "requires": { + "safer-buffer": ">= 2.1.2 < 3" + } + }, + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", + "dev": true + }, + "raw-body": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.0.tgz", + "integrity": "sha512-4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q==", + "dev": true, + "requires": { + "bytes": "3.1.0", + "http-errors": "1.7.2", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" + } + } + } + }, + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + }, + "dependencies": { + "balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true + } + } + }, + "braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "requires": { + "fill-range": "^7.0.1" + } + }, + "brorand": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", + "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=" + }, + "browserify-aes": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", + "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==", + "requires": { + "buffer-xor": "^1.0.3", + "cipher-base": "^1.0.0", + "create-hash": "^1.1.0", + "evp_bytestokey": "^1.0.3", + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "browserify-cipher": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.1.tgz", + "integrity": "sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==", + "requires": { + "browserify-aes": "^1.0.4", + "browserify-des": "^1.0.0", + "evp_bytestokey": "^1.0.0" + } + }, + "browserify-des": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.2.tgz", + "integrity": "sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==", + "requires": { + "cipher-base": "^1.0.1", + "des.js": "^1.0.0", + "inherits": "^2.0.1", + "safe-buffer": "^5.1.2" + } + }, + "browserify-rsa": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.1.0.tgz", + "integrity": "sha512-AdEER0Hkspgno2aR97SAf6vi0y0k8NuOpGnVH3O99rcA5Q6sh8QxcngtHuJ6uXwnfAXNM4Gn1Gb7/MV1+Ymbog==", + "requires": { + "bn.js": "^5.0.0", + "randombytes": "^2.0.1" + } + }, + "browserify-sign": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.2.1.tgz", + "integrity": "sha512-/vrA5fguVAKKAVTNJjgSm1tRQDHUU6DbwO9IROu/0WAzC8PKhucDSh18J0RMvVeHAn5puMd+QHC2erPRNf8lmg==", + "requires": { + "bn.js": "^5.1.1", + "browserify-rsa": "^4.0.1", + "create-hash": "^1.2.0", + "create-hmac": "^1.1.7", + "elliptic": "^6.5.3", + "inherits": "^2.0.4", + "parse-asn1": "^5.1.5", + "readable-stream": "^3.6.0", + "safe-buffer": "^5.2.0" + } + }, + "browserify-zlib": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.2.0.tgz", + "integrity": "sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==", + "requires": { + "pako": "~1.0.5" + } + }, + "browserslist": { + "version": "4.16.6", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.16.6.tgz", + "integrity": "sha512-Wspk/PqO+4W9qp5iUTJsa1B/QrYn1keNCcEP5OvP7WBwT4KaDly0uONYmC6Xa3Z5IqnUgS0KcgLYu1l74x0ZXQ==", + "requires": { + "caniuse-lite": "^1.0.30001219", + "colorette": "^1.2.2", + "electron-to-chromium": "^1.3.723", + "escalade": "^3.1.1", + "node-releases": "^1.1.71" + } + }, + "buffer": { + "version": "5.6.0", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.6.0.tgz", + "integrity": "sha512-/gDYp/UtU0eA1ys8bOs9J6a+E/KWIY+DZ+Q2WESNUA0jFRsJOc0SNUO6xJ5SGA1xueg3NL65W6s+NY5l9cunuw==", + "requires": { + "base64-js": "^1.0.2", + "ieee754": "^1.1.4" + } + }, + "buffer-from": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", + "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==", + "dev": true + }, + "buffer-to-arraybuffer": { + "version": "0.0.5", + "resolved": "https://registry.npmjs.org/buffer-to-arraybuffer/-/buffer-to-arraybuffer-0.0.5.tgz", + "integrity": "sha1-YGSkD6dutDxyOrqe+PbhIW0QURo=" + }, + "buffer-xor": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", + "integrity": "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=" + }, + "builtin-modules": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-3.2.0.tgz", + "integrity": "sha512-lGzLKcioL90C7wMczpkY0n/oART3MbBa8R9OFGE1rJxoVI86u4WAGfEk8Wjv10eKSyTHVGkSo3bvBylCEtk7LA==", + "dev": true + }, + "builtin-status-codes": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz", + "integrity": "sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug=" + }, + "bytes": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz", + "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==" + }, + "call-bind": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", + "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "requires": { + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.2" + } + }, + "caniuse-lite": { + "version": "1.0.30001241", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001241.tgz", + "integrity": "sha512-1uoSZ1Pq1VpH0WerIMqwptXHNNGfdl7d1cJUFs80CwQ/lVzdhTvsFZCeNFslze7AjsQnb4C85tzclPa1VShbeQ==" + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "requires": { + "color-convert": "^1.9.0" + } + }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" + } + } + }, + "check-types": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/check-types/-/check-types-8.0.3.tgz", + "integrity": "sha512-YpeKZngUmG65rLudJ4taU7VLkOCTMhNl/u4ctNC56LQS/zJTyNH0Lrtwm1tfTsbLlwvlfsA2d1c8vCf/Kh2KwQ==", + "dev": true + }, + "chokidar": { + "version": "3.5.1", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.1.tgz", + "integrity": "sha512-9+s+Od+W0VJJzawDma/gvBNQqkTiqYTWLuZoyAsivsI4AaWTCzHG06/TMjsf1cYe9Cb97UCEhjz7HvnPk2p/tw==", + "requires": { + "anymatch": "~3.1.1", + "braces": "~3.0.2", + "fsevents": "~2.3.1", + "glob-parent": "~5.1.0", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.5.0" + } + }, + "cipher-base": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", + "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", + "requires": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "classnames": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/classnames/-/classnames-2.3.1.tgz", + "integrity": "sha512-OlQdbZ7gLfGarSqxesMesDa5uz7KFbID8Kpq/SxIoNGDqY8lSYs0D+hhtBXhcdB3rcbXArFr7vlHheLk1voeNA==" + }, + "clean-webpack-plugin": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/clean-webpack-plugin/-/clean-webpack-plugin-3.0.0.tgz", + "integrity": "sha512-MciirUH5r+cYLGCOL5JX/ZLzOZbVr1ot3Fw+KcvbhUb6PM+yycqd9ZhIlcigQ5gl+XhppNmw3bEFuaaMNyLj3A==", + "dev": true, + "requires": { + "@types/webpack": "^4.4.31", + "del": "^4.1.1" + } + }, + "cliui": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", + "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", + "requires": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" + } + }, + "clsx": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/clsx/-/clsx-1.1.1.tgz", + "integrity": "sha512-6/bPho624p3S2pMyvP5kKBPXnI3ufHLObBFCfgx+LkeR5lg2XYy2hqZqUf45ypD8COn2bhgGJSUE+l5dhNBieA==" + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "colorette": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/colorette/-/colorette-1.2.2.tgz", + "integrity": "sha512-MKGMzyfeuutC/ZJ1cba9NqcNpfeqMUcYmyF1ZFY6/Cn7CNSAKx6a+s48sqLqyAiZuaP2TcqMhoo+dlwFnVxT9w==" + }, + "commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "dev": true + }, + "common-tags": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/common-tags/-/common-tags-1.8.0.tgz", + "integrity": "sha512-6P6g0uetGpW/sdyUy/iQQCbFF0kWVMSIVSyYz7Zgjcgh8mgw8PQzDNZeyZ5DQ2gM7LBoZPHmnjz8rUthkBG5tw==", + "dev": true + }, + "commondir": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", + "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=" + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", + "dev": true + }, + "console-browserify": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.2.0.tgz", + "integrity": "sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA==" + }, + "constants-browserify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz", + "integrity": "sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U=" + }, + "content-disposition": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.3.tgz", + "integrity": "sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g==", + "dev": true, + "requires": { + "safe-buffer": "5.1.2" + }, + "dependencies": { + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + } + } + }, + "content-type": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", + "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==", + "dev": true + }, + "convert-source-map": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.7.0.tgz", + "integrity": "sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA==", + "requires": { + "safe-buffer": "~5.1.1" + }, + "dependencies": { + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + } + } + }, + "cookie": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.0.tgz", + "integrity": "sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg==", + "dev": true + }, + "cookie-signature": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", + "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=", + "dev": true + }, + "core-js": { + "version": "2.6.12", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.12.tgz", + "integrity": "sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ==", + "dev": true + }, + "core-js-compat": { + "version": "3.15.2", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.15.2.tgz", + "integrity": "sha512-Wp+BJVvwopjI+A1EFqm2dwUmWYXrvucmtIB2LgXn/Rb+gWPKYxtmb4GKHGKG/KGF1eK9jfjzT38DITbTOCX/SQ==", + "dev": true, + "requires": { + "browserslist": "^4.16.6", + "semver": "7.0.0" + }, + "dependencies": { + "semver": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.0.0.tgz", + "integrity": "sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==", + "dev": true + } + } + }, + "core-util-is": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" + }, + "create-ecdh": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.4.tgz", + "integrity": "sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A==", + "requires": { + "bn.js": "^4.1.0", + "elliptic": "^6.5.3" + }, + "dependencies": { + "bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" + } + } + }, + "create-hash": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz", + "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==", + "requires": { + "cipher-base": "^1.0.1", + "inherits": "^2.0.1", + "md5.js": "^1.3.4", + "ripemd160": "^2.0.1", + "sha.js": "^2.4.0" + } + }, + "create-hmac": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz", + "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==", + "requires": { + "cipher-base": "^1.0.3", + "create-hash": "^1.1.0", + "inherits": "^2.0.1", + "ripemd160": "^2.0.0", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" + } + }, + "crypto-browserify": { + "version": "3.12.0", + "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz", + "integrity": "sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==", + "requires": { + "browserify-cipher": "^1.0.0", + "browserify-sign": "^4.0.0", + "create-ecdh": "^4.0.0", + "create-hash": "^1.1.0", + "create-hmac": "^1.1.0", + "diffie-hellman": "^5.0.0", + "inherits": "^2.0.1", + "pbkdf2": "^3.0.3", + "public-encrypt": "^4.0.0", + "randombytes": "^2.0.0", + "randomfill": "^1.0.3" + } + }, + "crypto-random-string": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-1.0.0.tgz", + "integrity": "sha1-ojD2T1aDEOFJgAmUB5DsmVRbyn4=", + "dev": true + }, + "css-vendor": { + "version": "2.0.8", + "resolved": "https://registry.npmjs.org/css-vendor/-/css-vendor-2.0.8.tgz", + "integrity": "sha512-x9Aq0XTInxrkuFeHKbYC7zWY8ai7qJ04Kxd9MnvbC1uO5DagxoHQjm4JvG+vCdXOoFtCjbL2XSZfxmoYa9uQVQ==", + "requires": { + "@babel/runtime": "^7.8.3", + "is-in-browser": "^1.0.2" + } + }, + "css.escape": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/css.escape/-/css.escape-1.5.1.tgz", + "integrity": "sha1-QuJ9T6BK4y+TGktNQZH6nN3ul8s=" + }, + "cssnano-preset-simple": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/cssnano-preset-simple/-/cssnano-preset-simple-2.0.0.tgz", + "integrity": "sha512-HkufSLkaBJbKBFx/7aj5HmCK9Ni/JedRQm0mT2qBzMG/dEuJOLnMt2lK6K1rwOOyV4j9aSY+knbW9WoS7BYpzg==", + "requires": { + "caniuse-lite": "^1.0.30001202" + } + }, + "cssnano-simple": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/cssnano-simple/-/cssnano-simple-2.0.0.tgz", + "integrity": "sha512-0G3TXaFxlh/szPEG/o3VcmCwl0N3E60XNb9YZZijew5eIs6fLjJuOPxQd9yEBaX2p/YfJtt49i4vYi38iH6/6w==", + "requires": { + "cssnano-preset-simple": "^2.0.0" + } + }, + "csstype": { + "version": "2.6.17", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-2.6.17.tgz", + "integrity": "sha512-u1wmTI1jJGzCJzWndZo8mk4wnPTZd1eOIYTYvuEyOQGfmDl3TrabCCfKnOC86FZwW/9djqTl933UF/cS425i9A==" + }, + "d3-array": { + "version": "2.12.1", + "resolved": "https://registry.npmjs.org/d3-array/-/d3-array-2.12.1.tgz", + "integrity": "sha512-B0ErZK/66mHtEsR1TkPEEkwdy+WDesimkM5gpZr5Dsg54BiTA5RXtYW5qTLIAcekaS9xfZrzBLF/OAkB3Qn1YQ==", + "requires": { + "internmap": "^1.0.0" + } + }, + "d3-color": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/d3-color/-/d3-color-1.4.1.tgz", + "integrity": "sha512-p2sTHSLCJI2QKunbGb7ocOh7DgTAn8IrLx21QRc/BSnodXM4sv6aLQlnfpvehFMLZEfBc6g9pH9SWQccFYfJ9Q==" + }, + "d3-format": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/d3-format/-/d3-format-2.0.0.tgz", + "integrity": "sha512-Ab3S6XuE/Q+flY96HXT0jOXcM4EAClYFnRGY5zsjRGNy6qCYrQsMffs7cV5Q9xejb35zxW5hf/guKw34kvIKsA==" + }, + "d3-interpolate": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/d3-interpolate/-/d3-interpolate-1.4.0.tgz", + "integrity": "sha512-V9znK0zc3jOPV4VD2zZn0sDhZU3WAE2bmlxdIwwQPPzPjvyLkd8B3JUVdS1IDUFDkWZ72c9qnv1GK2ZagTZ8EA==", + "requires": { + "d3-color": "1" + } + }, + "d3-path": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/d3-path/-/d3-path-1.0.9.tgz", + "integrity": "sha512-VLaYcn81dtHVTjEHd8B+pbe9yHWpXKZUC87PzoFmsFrJqgFwDe/qxfp5MlfsfM1V5E/iVt0MmEbWQ7FVIXh/bg==" + }, + "d3-random": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/d3-random/-/d3-random-2.2.2.tgz", + "integrity": "sha512-0D9P8TRj6qDAtHhRQn6EfdOtHMfsUWanl3yb/84C4DqpZ+VsgfI5iTVRNRbELCfNvRfpMr8OrqqUTQ6ANGCijw==" + }, + "d3-scale": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/d3-scale/-/d3-scale-3.3.0.tgz", + "integrity": "sha512-1JGp44NQCt5d1g+Yy+GeOnZP7xHo0ii8zsQp6PGzd+C1/dl0KGsp9A7Mxwp+1D1o4unbTTxVdU/ZOIEBoeZPbQ==", + "requires": { + "d3-array": "^2.3.0", + "d3-format": "1 - 2", + "d3-interpolate": "1.2.0 - 2", + "d3-time": "^2.1.1", + "d3-time-format": "2 - 3" + } + }, + "d3-shape": { + "version": "1.3.7", + "resolved": "https://registry.npmjs.org/d3-shape/-/d3-shape-1.3.7.tgz", + "integrity": "sha512-EUkvKjqPFUAZyOlhY5gzCxCeI0Aep04LwIRpsZ/mLFelJiUfnK56jo5JMDSE7yyP2kLSb6LtF+S5chMk7uqPqw==", + "requires": { + "d3-path": "1" + } + }, + "d3-time": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/d3-time/-/d3-time-2.1.1.tgz", + "integrity": "sha512-/eIQe/eR4kCQwq7yxi7z4c6qEXf2IYGcjoWB5OOQy4Tq9Uv39/947qlDcN2TLkiTzQWzvnsuYPB9TrWaNfipKQ==", + "requires": { + "d3-array": "2" + } + }, + "d3-time-format": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/d3-time-format/-/d3-time-format-3.0.0.tgz", + "integrity": "sha512-UXJh6EKsHBTjopVqZBhFysQcoXSv/5yLONZvkQ5Kk3qbwiUYkdX17Xa1PT6U1ZWXGGfB1ey5L8dKMlFq2DO0Ag==", + "requires": { + "d3-time": "1 - 2" + } + }, + "data-uri-to-buffer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-3.0.1.tgz", + "integrity": "sha512-WboRycPNsVw3B3TL559F7kuBUM4d8CgMEvk6xEJlOp7OBPjt6G7z8WMWlD2rOFZLk6OYfFIUGsCOWzcQH9K2og==" + }, + "date-fns": { + "version": "2.22.1", + "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-2.22.1.tgz", + "integrity": "sha512-yUFPQjrxEmIsMqlHhAhmxkuH769baF21Kk+nZwZGyrMoyLA+LugaQtC0+Tqf9CBUUULWwUJt6Q5ySI3LJDDCGg==" + }, + "debounce": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/debounce/-/debounce-1.2.1.tgz", + "integrity": "sha512-XRRe6Glud4rd/ZGQfiV1ruXSfbvfJedlV9Y6zOlP+2K04vBYiJEte6stfFkCP03aMnY5tsipamumUjL14fofug==" + }, + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "requires": { + "ms": "2.0.0" + } + }, + "decode-uri-component": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", + "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=" + }, + "decompress-response": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz", + "integrity": "sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M=", + "requires": { + "mimic-response": "^1.0.0" + } + }, + "define-properties": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", + "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", + "requires": { + "object-keys": "^1.0.12" + } + }, + "del": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/del/-/del-4.1.1.tgz", + "integrity": "sha512-QwGuEUouP2kVwQenAsOof5Fv8K9t3D8Ca8NxcXKrIpEHjTXK5J2nXLdP+ALI1cgv8wj7KuwBhTwBkOZSJKM5XQ==", + "dev": true, + "requires": { + "@types/glob": "^7.1.1", + "globby": "^6.1.0", + "is-path-cwd": "^2.0.0", + "is-path-in-cwd": "^2.0.0", + "p-map": "^2.0.0", + "pify": "^4.0.1", + "rimraf": "^2.6.3" + }, + "dependencies": { + "globby": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-6.1.0.tgz", + "integrity": "sha1-9abXDoOV4hyFj7BInWTfAkJNUGw=", + "dev": true, + "requires": { + "array-union": "^1.0.1", + "glob": "^7.0.3", + "object-assign": "^4.0.1", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" + }, + "dependencies": { + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", + "dev": true + } + } + } + } + }, + "depd": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", + "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=" + }, + "des.js": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.0.1.tgz", + "integrity": "sha512-Q0I4pfFrv2VPd34/vfLrFOoRmlYj3OV50i7fskps1jZWK1kApMWWT9G6RRUeYedLcBDIhnSDaUvJMb3AhUlaEA==", + "requires": { + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0" + } + }, + "destroy": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", + "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=", + "dev": true + }, + "diacritic": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/diacritic/-/diacritic-0.0.2.tgz", + "integrity": "sha1-/CqIe1pbwKCoVPthTHwvIJBh7gQ=" + }, + "diffie-hellman": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz", + "integrity": "sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==", + "requires": { + "bn.js": "^4.1.0", + "miller-rabin": "^4.0.0", + "randombytes": "^2.0.0" + }, + "dependencies": { + "bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" + } + } + }, + "dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "dev": true, + "requires": { + "path-type": "^4.0.0" + } + }, + "dom-helpers": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/dom-helpers/-/dom-helpers-5.2.1.tgz", + "integrity": "sha512-nRCa7CK3VTrM2NmGkIy4cbK7IZlgBE/PYMn55rrXefr5xXDP0LdtfPnblFDoVdcAfslJ7or6iqAUnx0CCGIWQA==", + "requires": { + "@babel/runtime": "^7.8.7", + "csstype": "^3.0.2" + }, + "dependencies": { + "csstype": { + "version": "3.0.8", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.0.8.tgz", + "integrity": "sha512-jXKhWqXPmlUeoQnF/EhTtTl4C9SnrxSH/jZUih3jmO6lBKr99rP3/+FmrMj4EFpOXzMtXHAZkd3x0E6h6Fgflw==" + } + } + }, + "dom-walk": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/dom-walk/-/dom-walk-0.1.2.tgz", + "integrity": "sha512-6QvTW9mrGeIegrFXdtQi9pk7O/nSK6lSdXW2eqUspN5LWD7UTji2Fqw5V2YLjBpHEoU9Xl/eUWNpDeZvoyOv2w==" + }, + "domain-browser": { + "version": "4.19.0", + "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-4.19.0.tgz", + "integrity": "sha512-fRA+BaAWOR/yr/t7T9E9GJztHPeFjj8U35ajyAjCDtAAnTn1Rc1f6W6VGPJrO1tkQv9zWu+JRof7z6oQtiYVFQ==" + }, + "duplexer": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.2.tgz", + "integrity": "sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==", + "dev": true + }, + "ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=", + "dev": true + }, + "ejs": { + "version": "2.7.4", + "resolved": "https://registry.npmjs.org/ejs/-/ejs-2.7.4.tgz", + "integrity": "sha512-7vmuyh5+kuUyJKePhQfRQBhXV5Ce+RnaeeQArKu1EAMpL3WbgMt5WG6uQZpEVvYSSsxMXRKOewtDk9RaTKXRlA==", + "dev": true + }, + "electron-to-chromium": { + "version": "1.3.766", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.766.tgz", + "integrity": "sha512-u2quJ862q9reRKh/je3GXis3w38+RoXH1J9N3XjtsS6NzmUAosNsyZgUVFZPN/ZlJ3v6T0rTyZR3q/J5c6Sy5w==" + }, + "elliptic": { + "version": "6.5.4", + "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.4.tgz", + "integrity": "sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==", + "requires": { + "bn.js": "^4.11.9", + "brorand": "^1.1.0", + "hash.js": "^1.0.0", + "hmac-drbg": "^1.0.1", + "inherits": "^2.0.4", + "minimalistic-assert": "^1.0.1", + "minimalistic-crypto-utils": "^1.0.1" + }, + "dependencies": { + "bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" + } + } + }, + "emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" + }, + "emojis-list": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-2.1.0.tgz", + "integrity": "sha1-TapNnbAPmBmIDHn6RXrlsJof04k=" + }, + "encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=", + "dev": true + }, + "encoding": { + "version": "0.1.13", + "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz", + "integrity": "sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==", + "requires": { + "iconv-lite": "^0.6.2" + } + }, + "es-abstract": { + "version": "1.18.3", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.18.3.tgz", + "integrity": "sha512-nQIr12dxV7SSxE6r6f1l3DtAeEYdsGpps13dR0TwJg1S8gyp4ZPgy3FZcHBgbiQqnoqSTb+oC+kO4UQ0C/J8vw==", + "requires": { + "call-bind": "^1.0.2", + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "get-intrinsic": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.2", + "is-callable": "^1.2.3", + "is-negative-zero": "^2.0.1", + "is-regex": "^1.1.3", + "is-string": "^1.0.6", + "object-inspect": "^1.10.3", + "object-keys": "^1.1.1", + "object.assign": "^4.1.2", + "string.prototype.trimend": "^1.0.4", + "string.prototype.trimstart": "^1.0.4", + "unbox-primitive": "^1.0.1" + } + }, + "es-to-primitive": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", + "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", + "requires": { + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" + } + }, + "es6-object-assign": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/es6-object-assign/-/es6-object-assign-1.1.0.tgz", + "integrity": "sha1-wsNYJlYkfDnqEHyx5mUrb58kUjw=" + }, + "escalade": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==" + }, + "escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=", + "dev": true + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" + }, + "estree-walker": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-1.0.1.tgz", + "integrity": "sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg==", + "dev": true + }, + "esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==" + }, + "etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=" + }, + "eth-lib": { + "version": "0.2.8", + "resolved": "https://registry.npmjs.org/eth-lib/-/eth-lib-0.2.8.tgz", + "integrity": "sha512-ArJ7x1WcWOlSpzdoTBX8vkwlkSQ85CjjifSZtV4co64vWxSV8geWfPI9x4SVYu3DSxnX4yWFVTtGL+j9DUFLNw==", + "requires": { + "bn.js": "^4.11.6", + "elliptic": "^6.4.0", + "xhr-request-promise": "^0.1.2" + }, + "dependencies": { + "bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" + } + } + }, + "ethereum-bloom-filters": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/ethereum-bloom-filters/-/ethereum-bloom-filters-1.0.10.tgz", + "integrity": "sha512-rxJ5OFN3RwjQxDcFP2Z5+Q9ho4eIdEmSc2ht0fCu8Se9nbXjZ7/031uXoUYJ87KHCOdVeiUuwSnoS7hmYAGVHA==", + "requires": { + "js-sha3": "^0.8.0" + } + }, + "ethjs-unit": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/ethjs-unit/-/ethjs-unit-0.1.6.tgz", + "integrity": "sha1-xmWSHkduh7ziqdWIpv4EBbLEFpk=", + "requires": { + "bn.js": "4.11.6", + "number-to-bn": "1.7.0" + }, + "dependencies": { + "bn.js": { + "version": "4.11.6", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.6.tgz", + "integrity": "sha1-UzRK2xRhehP26N0s4okF0cC6MhU=" + } + } + }, + "events": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", + "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==" + }, + "evp_bytestokey": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", + "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", + "requires": { + "md5.js": "^1.3.4", + "safe-buffer": "^5.1.1" + } + }, + "express": { + "version": "4.17.1", + "resolved": "https://registry.npmjs.org/express/-/express-4.17.1.tgz", + "integrity": "sha512-mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g==", + "dev": true, + "requires": { + "accepts": "~1.3.7", + "array-flatten": "1.1.1", + "body-parser": "1.19.0", + "content-disposition": "0.5.3", + "content-type": "~1.0.4", + "cookie": "0.4.0", + "cookie-signature": "1.0.6", + "debug": "2.6.9", + "depd": "~1.1.2", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "finalhandler": "~1.1.2", + "fresh": "0.5.2", + "merge-descriptors": "1.0.1", + "methods": "~1.1.2", + "on-finished": "~2.3.0", + "parseurl": "~1.3.3", + "path-to-regexp": "0.1.7", + "proxy-addr": "~2.0.5", + "qs": "6.7.0", + "range-parser": "~1.2.1", + "safe-buffer": "5.1.2", + "send": "0.17.1", + "serve-static": "1.14.1", + "setprototypeof": "1.1.1", + "statuses": "~1.5.0", + "type-is": "~1.6.18", + "utils-merge": "1.0.1", + "vary": "~1.1.2" + }, + "dependencies": { + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + } + } + }, + "fast-glob": { + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.6.tgz", + "integrity": "sha512-GnLuqj/pvQ7pX8/L4J84nijv6sAnlwvSDpMkJi9i7nPmPxGtRPkBSStfvDW5l6nMdX9VWe+pkKWFTgD+vF2QSQ==", + "dev": true, + "requires": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + } + }, + "fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==" + }, + "fastq": { + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.11.0.tgz", + "integrity": "sha512-7Eczs8gIPDrVzT+EksYBcupqMyxSHXXrHOLRRxU2/DicV8789MRBRR8+Hc2uWzUupOs4YS4JzBmBxjjCVBxD/g==", + "dev": true, + "requires": { + "reusify": "^1.0.4" + } + }, + "filesize": { + "version": "3.6.1", + "resolved": "https://registry.npmjs.org/filesize/-/filesize-3.6.1.tgz", + "integrity": "sha512-7KjR1vv6qnicaPMi1iiTcI85CyYwRO/PSFCu6SvqL8jN2Wjt/NIYQTFtFs7fSDCYOstUkEWIQGFUg5YZQfjlcg==", + "dev": true + }, + "fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "requires": { + "to-regex-range": "^5.0.1" + } + }, + "finalhandler": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz", + "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==", + "dev": true, + "requires": { + "debug": "2.6.9", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "on-finished": "~2.3.0", + "parseurl": "~1.3.3", + "statuses": "~1.5.0", + "unpipe": "~1.0.0" + } + }, + "find-cache-dir": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.1.tgz", + "integrity": "sha512-t2GDMt3oGC/v+BMwzmllWDuJF/xcDtE5j/fCGbqDD7OLuJkj0cfh1YSA5VKPvwMeLFLNDBkwOKZ2X85jGLVftQ==", + "requires": { + "commondir": "^1.0.1", + "make-dir": "^3.0.2", + "pkg-dir": "^4.1.0" + } + }, + "find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "requires": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + } + }, + "foreach": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/foreach/-/foreach-2.0.5.tgz", + "integrity": "sha1-C+4AUBiusmDQo6865ljdATbsG5k=" + }, + "forwarded": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", + "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", + "dev": true + }, + "fresh": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=", + "dev": true + }, + "fs-extra": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", + "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", + "dev": true, + "requires": { + "graceful-fs": "^4.2.0", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + } + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", + "dev": true + }, + "fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "optional": true + }, + "function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" + }, + "gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "dev": true + }, + "get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==" + }, + "get-intrinsic": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz", + "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==", + "requires": { + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1" + } + }, + "get-orientation": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/get-orientation/-/get-orientation-1.1.2.tgz", + "integrity": "sha512-/pViTfifW+gBbh/RnlFYHINvELT9Znt+SYyDKAUL6uV6By019AK/s+i9XP4jSwq7lwP38Fd8HVeTxym3+hkwmQ==", + "requires": { + "stream-parser": "^0.3.1" + } + }, + "get-own-enumerable-property-symbols": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/get-own-enumerable-property-symbols/-/get-own-enumerable-property-symbols-3.0.2.tgz", + "integrity": "sha512-I0UBV/XOz1XkIJHEUDMZAbzCThU/H8DxmSfmdGcKPnVhu2VfFqr34jr9777IyaTYvxjedWhqVIilEDsCdP5G6g==", + "dev": true + }, + "glob": { + "version": "7.1.7", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.7.tgz", + "integrity": "sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "requires": { + "is-glob": "^4.0.1" + } + }, + "glob-to-regexp": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", + "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==" + }, + "global": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/global/-/global-4.4.0.tgz", + "integrity": "sha512-wv/LAoHdRE3BeTGz53FAamhGlPLhlssK45usmGFThIi4XqnBmjKQ16u+RNbP7WvigRZDxUsM0J3gcQ5yicaL0w==", + "requires": { + "min-document": "^2.19.0", + "process": "^0.11.10" + } + }, + "globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "dev": true + }, + "globby": { + "version": "11.0.4", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.0.4.tgz", + "integrity": "sha512-9O4MVG9ioZJ08ffbcyVYyLOJLk5JQ688pJ4eMGLpdWLHq/Wr1D9BlriLQyL0E+jbkuePVZXYFj47QM/v093wHg==", + "dev": true, + "requires": { + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.1.1", + "ignore": "^5.1.4", + "merge2": "^1.3.0", + "slash": "^3.0.0" + }, + "dependencies": { + "array-union": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "dev": true + } + } + }, + "graceful-fs": { + "version": "4.2.6", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.6.tgz", + "integrity": "sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ==" + }, + "graphql": { + "version": "15.5.1", + "resolved": "https://registry.npmjs.org/graphql/-/graphql-15.5.1.tgz", + "integrity": "sha512-FeTRX67T3LoE3LWAxxOlW2K3Bz+rMYAC18rRguK4wgXaTZMiJwSUwDmPFo3UadAKbzirKIg5Qy+sNJXbpPRnQw==" + }, + "graphql-tag": { + "version": "2.12.5", + "resolved": "https://registry.npmjs.org/graphql-tag/-/graphql-tag-2.12.5.tgz", + "integrity": "sha512-5xNhP4063d16Pz3HBtKprutsPrmHZi5IdUGOWRxA2B6VF7BIRGOHZ5WQvDmJXZuPcBg7rYwaFxvQYjqkSdR3TQ==", + "requires": { + "tslib": "^2.1.0" + }, + "dependencies": { + "tslib": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.0.tgz", + "integrity": "sha512-N82ooyxVNm6h1riLCoyS9e3fuJ3AMG2zIZs2Gd1ATcSFjSA23Q0fzjjZeh0jbJvWVDZ0cJT8yaNNaaXHzueNjg==" + } + } + }, + "gzip-size": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/gzip-size/-/gzip-size-5.1.1.tgz", + "integrity": "sha512-FNHi6mmoHvs1mxZAds4PpdCS6QG8B4C1krxJsMutgxl5t3+GlRTzzI3NEkifXx2pVsOvJdOGSmIgDhQ55FwdPA==", + "dev": true, + "requires": { + "duplexer": "^0.1.1", + "pify": "^4.0.1" + } + }, + "has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "requires": { + "function-bind": "^1.1.1" + } + }, + "has-bigints": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.1.tgz", + "integrity": "sha512-LSBS2LjbNBTf6287JEbEzvJgftkF5qFkmCo9hDRpAzKhUOlJ+hx8dd4USs00SgsUNwc4617J9ki5YtEClM2ffA==" + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" + }, + "has-symbols": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.2.tgz", + "integrity": "sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==" + }, + "hash-base": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.1.0.tgz", + "integrity": "sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA==", + "requires": { + "inherits": "^2.0.4", + "readable-stream": "^3.6.0", + "safe-buffer": "^5.2.0" + } + }, + "hash.js": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", + "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", + "requires": { + "inherits": "^2.0.3", + "minimalistic-assert": "^1.0.1" + } + }, + "he": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", + "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==" + }, + "hmac-drbg": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", + "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=", + "requires": { + "hash.js": "^1.0.3", + "minimalistic-assert": "^1.0.0", + "minimalistic-crypto-utils": "^1.0.1" + } + }, + "hoist-non-react-statics": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz", + "integrity": "sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==", + "requires": { + "react-is": "^16.7.0" + } + }, + "hoopy": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/hoopy/-/hoopy-0.1.4.tgz", + "integrity": "sha512-HRcs+2mr52W0K+x8RzcLzuPPmVIKMSv97RGHy0Ea9y/mpcaK+xTrjICA04KAHi4GRzxliNqNJEFYWHghy3rSfQ==", + "dev": true + }, + "http-errors": { + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.3.tgz", + "integrity": "sha512-ZTTX0MWrsQ2ZAhA1cejAwDLycFsd7I7nVtnkT3Ol0aqodaKW+0CTZDQ1uBv5whptCnc8e8HeRRJxRs0kmm/Qfw==", + "requires": { + "depd": "~1.1.2", + "inherits": "2.0.4", + "setprototypeof": "1.1.1", + "statuses": ">= 1.5.0 < 2", + "toidentifier": "1.0.0" + } + }, + "https-browserify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz", + "integrity": "sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM=" + }, + "hyphenate-style-name": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/hyphenate-style-name/-/hyphenate-style-name-1.0.4.tgz", + "integrity": "sha512-ygGZLjmXfPHj+ZWh6LwbC37l43MhfztxetbFCoYTM2VjkIUpeHgSNn7QIyVFj7YQ1Wl9Cbw5sholVJPzWvC2MQ==" + }, + "iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "requires": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + } + }, + "ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==" + }, + "ignore": { + "version": "5.1.8", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.1.8.tgz", + "integrity": "sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw==", + "dev": true + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "dev": true, + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + }, + "internmap": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/internmap/-/internmap-1.0.1.tgz", + "integrity": "sha512-lDB5YccMydFBtasVtxnZ3MRBHuaoE8GKsppq+EchKL2U4nK/DmEpPHNH8MZe5HkMtpSiTSOZwfN0tzYjO/lJEw==" + }, + "ipaddr.js": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", + "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", + "dev": true + }, + "is-arguments": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.0.tgz", + "integrity": "sha512-1Ij4lOMPl/xB5kBDn7I+b2ttPMKa8szhEIrXDuXQD/oe3HJLTLhqhgGspwgyGd6MOywBUqVvYicF72lkgDnIHg==", + "requires": { + "call-bind": "^1.0.0" + } + }, + "is-bigint": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.2.tgz", + "integrity": "sha512-0JV5+SOCQkIdzjBK9buARcV804Ddu7A0Qet6sHi3FimE9ne6m4BGQZfRn+NZiXbBk4F4XmHfDZIipLj9pX8dSA==" + }, + "is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "requires": { + "binary-extensions": "^2.0.0" + } + }, + "is-boolean-object": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.1.tgz", + "integrity": "sha512-bXdQWkECBUIAcCkeH1unwJLIpZYaa5VvuygSyS/c2lf719mTKZDU5UdDRlpd01UjADgmW8RfqaP+mRaVPdr/Ng==", + "requires": { + "call-bind": "^1.0.2" + } + }, + "is-callable": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.3.tgz", + "integrity": "sha512-J1DcMe8UYTBSrKezuIUTUwjXsho29693unXM2YhJUTR2txK/eG47bvNa/wipPFmZFgr/N6f1GA66dv0mEyTIyQ==" + }, + "is-core-module": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.4.0.tgz", + "integrity": "sha512-6A2fkfq1rfeQZjxrZJGerpLCTHRNEBiSgnu0+obeJpEPZRUooHgsizvzv0ZjJwOz3iWIHdJtVWJ/tmPr3D21/A==", + "dev": true, + "requires": { + "has": "^1.0.3" + } + }, + "is-date-object": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.4.tgz", + "integrity": "sha512-/b4ZVsG7Z5XVtIxs/h9W8nvfLgSAyKYdtGWQLbqy6jA1icmgjf8WCoTKgeS4wy5tYaPePouzFMANbnj94c2Z+A==" + }, + "is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=" + }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==" + }, + "is-function": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-function/-/is-function-1.0.2.tgz", + "integrity": "sha512-lw7DUp0aWXYg+CBCN+JKkcE0Q2RayZnSvnZBlwgxHBQhqt5pZNVy4Ri7H9GmmXkdu7LUthszM+Tor1u/2iBcpQ==" + }, + "is-generator-function": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.9.tgz", + "integrity": "sha512-ZJ34p1uvIfptHCN7sFTjGibB9/oBg17sHqzDLfuwhvmN/qLVvIQXRQ8licZQ35WJ8KuEQt/etnnzQFI9C9Ue/A==" + }, + "is-glob": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", + "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", + "requires": { + "is-extglob": "^2.1.1" + } + }, + "is-hex-prefixed": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-hex-prefixed/-/is-hex-prefixed-1.0.0.tgz", + "integrity": "sha1-fY035q135dEnFIkTxXPggtd39VQ=" + }, + "is-in-browser": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/is-in-browser/-/is-in-browser-1.1.3.tgz", + "integrity": "sha1-Vv9NtoOgeMYILrldrX3GLh0E+DU=" + }, + "is-module": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-module/-/is-module-1.0.0.tgz", + "integrity": "sha1-Mlj7afeMFNW4FdZkM2tM/7ZEFZE=", + "dev": true + }, + "is-nan": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/is-nan/-/is-nan-1.3.2.tgz", + "integrity": "sha512-E+zBKpQ2t6MEo1VsonYmluk9NxGrbzpeeLC2xIViuO2EjU2xsXsBPwTr3Ykv9l08UYEVEdWeRZNouaZqF6RN0w==", + "requires": { + "call-bind": "^1.0.0", + "define-properties": "^1.1.3" + } + }, + "is-negative-zero": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.1.tgz", + "integrity": "sha512-2z6JzQvZRa9A2Y7xC6dQQm4FSTSTNWjKIYYTt4246eMTJmIo0Q+ZyOsU66X8lxK1AbB92dFeglPLrhwpeRKO6w==" + }, + "is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==" + }, + "is-number-object": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.5.tgz", + "integrity": "sha512-RU0lI/n95pMoUKu9v1BZP5MBcZuNSVJkMkAG2dJqC4z2GlkGUNeH68SuHuBKBD/XFe+LHZ+f9BKkLET60Niedw==" + }, + "is-obj": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz", + "integrity": "sha1-PkcprB9f3gJc19g6iW2rn09n2w8=", + "dev": true + }, + "is-path-cwd": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-2.2.0.tgz", + "integrity": "sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ==", + "dev": true + }, + "is-path-in-cwd": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-2.1.0.tgz", + "integrity": "sha512-rNocXHgipO+rvnP6dk3zI20RpOtrAM/kzbB258Uw5BWr3TpXi861yzjo16Dn4hUox07iw5AyeMLHWsujkjzvRQ==", + "dev": true, + "requires": { + "is-path-inside": "^2.1.0" + } + }, + "is-path-inside": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-2.1.0.tgz", + "integrity": "sha512-wiyhTzfDWsvwAW53OBWF5zuvaOGlZ6PwYxAbPVDhpm+gM09xKQGjBq/8uYN12aDvMxnAnq3dxTyoSoRNmg5YFg==", + "dev": true, + "requires": { + "path-is-inside": "^1.0.2" + } + }, + "is-regex": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.3.tgz", + "integrity": "sha512-qSVXFz28HM7y+IWX6vLCsexdlvzT1PJNFSBuaQLQ5o0IEw8UDYW6/2+eCMVyIsbM8CNLX2a/QWmSpyxYEHY7CQ==", + "requires": { + "call-bind": "^1.0.2", + "has-symbols": "^1.0.2" + } + }, + "is-regexp": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-regexp/-/is-regexp-1.0.0.tgz", + "integrity": "sha1-/S2INUXEa6xaYz57mgnof6LLUGk=", + "dev": true + }, + "is-string": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.6.tgz", + "integrity": "sha512-2gdzbKUuqtQ3lYNrUTQYoClPhm7oQu4UdpSZMp1/DGgkHBT8E2Z1l0yMdb6D4zNAxwDiMv8MdulKROJGNl0Q0w==" + }, + "is-symbol": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", + "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", + "requires": { + "has-symbols": "^1.0.2" + } + }, + "is-typed-array": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.5.tgz", + "integrity": "sha512-S+GRDgJlR3PyEbsX/Fobd9cqpZBuvUS+8asRqYDMLCb2qMzt1oz5m5oxQCxOgUDxiWsOVNi4yaF+/uvdlHlYug==", + "requires": { + "available-typed-arrays": "^1.0.2", + "call-bind": "^1.0.2", + "es-abstract": "^1.18.0-next.2", + "foreach": "^2.0.5", + "has-symbols": "^1.0.1" + } + }, + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" + }, + "jest-worker": { + "version": "27.0.0-next.5", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.0.0-next.5.tgz", + "integrity": "sha512-mk0umAQ5lT+CaOJ+Qp01N6kz48sJG2kr2n1rX0koqKf6FIygQV0qLOdN9SCYID4IVeSigDOcPeGLozdMLYfb5g==", + "requires": { + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" + }, + "dependencies": { + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" + }, + "supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "js-sha3": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/js-sha3/-/js-sha3-0.8.0.tgz", + "integrity": "sha512-gF1cRrHhIzNfToc802P800N8PpXS+evLLXfsVpowqmAFR9uwbi89WvXg2QspOmXL8QL86J4T1EpFu+yUkwJY3Q==" + }, + "js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" + }, + "jsesc": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "dev": true + }, + "json5": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", + "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", + "requires": { + "minimist": "^1.2.0" + } + }, + "jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", + "dev": true, + "requires": { + "graceful-fs": "^4.1.6" + } + }, + "jss": { + "version": "10.7.1", + "resolved": "https://registry.npmjs.org/jss/-/jss-10.7.1.tgz", + "integrity": "sha512-5QN8JSVZR6cxpZNeGfzIjqPEP+ZJwJJfZbXmeABNdxiExyO+eJJDy6WDtqTf8SDKnbL5kZllEpAP71E/Lt7PXg==", + "requires": { + "@babel/runtime": "^7.3.1", + "csstype": "^3.0.2", + "is-in-browser": "^1.1.3", + "tiny-warning": "^1.0.2" + }, + "dependencies": { + "csstype": { + "version": "3.0.8", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.0.8.tgz", + "integrity": "sha512-jXKhWqXPmlUeoQnF/EhTtTl4C9SnrxSH/jZUih3jmO6lBKr99rP3/+FmrMj4EFpOXzMtXHAZkd3x0E6h6Fgflw==" + } + } + }, + "jss-plugin-camel-case": { + "version": "10.7.1", + "resolved": "https://registry.npmjs.org/jss-plugin-camel-case/-/jss-plugin-camel-case-10.7.1.tgz", + "integrity": "sha512-+ioIyWvmAfgDCWXsQcW1NMnLBvRinOVFkSYJUgewQ6TynOcSj5F1bSU23B7z0p1iqK0PPHIU62xY1iNJD33WGA==", + "requires": { + "@babel/runtime": "^7.3.1", + "hyphenate-style-name": "^1.0.3", + "jss": "10.7.1" + } + }, + "jss-plugin-default-unit": { + "version": "10.7.1", + "resolved": "https://registry.npmjs.org/jss-plugin-default-unit/-/jss-plugin-default-unit-10.7.1.tgz", + "integrity": "sha512-tW+dfYVNARBQb/ONzBwd8uyImigyzMiAEDai+AbH5rcHg5h3TtqhAkxx06iuZiT/dZUiFdSKlbe3q9jZGAPIwA==", + "requires": { + "@babel/runtime": "^7.3.1", + "jss": "10.7.1" + } + }, + "jss-plugin-global": { + "version": "10.7.1", + "resolved": "https://registry.npmjs.org/jss-plugin-global/-/jss-plugin-global-10.7.1.tgz", + "integrity": "sha512-FbxCnu44IkK/bw8X3CwZKmcAnJqjAb9LujlAc/aP0bMSdVa3/MugKQRyeQSu00uGL44feJJDoeXXiHOakBr/Zw==", + "requires": { + "@babel/runtime": "^7.3.1", + "jss": "10.7.1" + } + }, + "jss-plugin-nested": { + "version": "10.7.1", + "resolved": "https://registry.npmjs.org/jss-plugin-nested/-/jss-plugin-nested-10.7.1.tgz", + "integrity": "sha512-RNbICk7FlYKaJyv9tkMl7s6FFfeLA3ubNIFKvPqaWtADK0KUaPsPXVYBkAu4x1ItgsWx67xvReMrkcKA0jSXfA==", + "requires": { + "@babel/runtime": "^7.3.1", + "jss": "10.7.1", + "tiny-warning": "^1.0.2" + } + }, + "jss-plugin-props-sort": { + "version": "10.7.1", + "resolved": "https://registry.npmjs.org/jss-plugin-props-sort/-/jss-plugin-props-sort-10.7.1.tgz", + "integrity": "sha512-eyd5FhA+J0QrpqXxO7YNF/HMSXXl4pB0EmUdY4vSJI4QG22F59vQ6AHtP6fSwhmBdQ98Qd9gjfO+RMxcE39P1A==", + "requires": { + "@babel/runtime": "^7.3.1", + "jss": "10.7.1" + } + }, + "jss-plugin-rule-value-function": { + "version": "10.7.1", + "resolved": "https://registry.npmjs.org/jss-plugin-rule-value-function/-/jss-plugin-rule-value-function-10.7.1.tgz", + "integrity": "sha512-fGAAImlbaHD3fXAHI3ooX6aRESOl5iBt3LjpVjxs9II5u9tzam7pqFUmgTcrip9VpRqYHn8J3gA7kCtm8xKwHg==", + "requires": { + "@babel/runtime": "^7.3.1", + "jss": "10.7.1", + "tiny-warning": "^1.0.2" + } + }, + "jss-plugin-vendor-prefixer": { + "version": "10.7.1", + "resolved": "https://registry.npmjs.org/jss-plugin-vendor-prefixer/-/jss-plugin-vendor-prefixer-10.7.1.tgz", + "integrity": "sha512-1UHFmBn7hZNsHXTkLLOL8abRl8vi+D1EVzWD4WmLFj55vawHZfnH1oEz6TUf5Y61XHv0smdHabdXds6BgOXe3A==", + "requires": { + "@babel/runtime": "^7.3.1", + "css-vendor": "^2.0.8", + "jss": "10.7.1" + } + }, + "loader-utils": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.2.3.tgz", + "integrity": "sha512-fkpz8ejdnEMG3s37wGL07iSBDg99O9D5yflE9RGNH3hRdx9SOwYfnGYdZOUIZitN8E+E2vkq3MUMYMvPYl5ZZA==", + "requires": { + "big.js": "^5.2.2", + "emojis-list": "^2.0.0", + "json5": "^1.0.1" + } + }, + "locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "requires": { + "p-locate": "^4.1.0" + } + }, + "lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" + }, + "lodash._reinterpolate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz", + "integrity": "sha1-DM8tiRZq8Ds2Y8eWU4t1rG4RTZ0=", + "dev": true + }, + "lodash.debounce": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", + "integrity": "sha1-gteb/zCmfEAF/9XiUVMArZyk168=", + "dev": true + }, + "lodash.merge": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==" + }, + "lodash.sortby": { + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz", + "integrity": "sha1-7dFMgk4sycHgsKG0K7UhBRakJDg=" + }, + "lodash.template": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.template/-/lodash.template-4.5.0.tgz", + "integrity": "sha512-84vYFxIkmidUiFxidA/KjjH9pAycqW+h980j7Fuz5qxRtO9pgB7MDFTdys1N7A5mcucRiDyEq4fusljItR1T/A==", + "dev": true, + "requires": { + "lodash._reinterpolate": "^3.0.0", + "lodash.templatesettings": "^4.0.0" + } + }, + "lodash.templatesettings": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/lodash.templatesettings/-/lodash.templatesettings-4.2.0.tgz", + "integrity": "sha512-stgLz+i3Aa9mZgnjr/O+v9ruKZsPsndy7qPZOchbqk2cnTU1ZaldKK+v7m54WoKIyxiuMZTKT2H81F8BeAc3ZQ==", + "dev": true, + "requires": { + "lodash._reinterpolate": "^3.0.0" + } + }, + "loose-envify": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", + "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", + "requires": { + "js-tokens": "^3.0.0 || ^4.0.0" + } + }, + "magic-string": { + "version": "0.25.7", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.7.tgz", + "integrity": "sha512-4CrMT5DOHTDk4HYDlzmwu4FVCcIYI8gauveasrdCu2IKIFOJ3f0v/8MDGJCDL9oD2ppz/Av1b0Nj345H9M+XIA==", + "dev": true, + "requires": { + "sourcemap-codec": "^1.4.4" + } + }, + "make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "requires": { + "semver": "^6.0.0" + } + }, + "math-expression-evaluator": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/math-expression-evaluator/-/math-expression-evaluator-1.3.8.tgz", + "integrity": "sha512-9FbRY3i6U+CbHgrdNbAUaisjWTozkm1ZfupYQJiZ87NtYHk2Zh9DvxMgp/fifxVhqTLpd5fCCLossUbpZxGeKw==" + }, + "md5.js": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz", + "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==", + "requires": { + "hash-base": "^3.0.0", + "inherits": "^2.0.1", + "safe-buffer": "^5.1.2" + } + }, + "media-typer": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", + "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=", + "dev": true + }, + "memoize-one": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/memoize-one/-/memoize-one-5.2.1.tgz", + "integrity": "sha512-zYiwtZUcYyXKo/np96AGZAckk+FWWsUdJ3cHGGmld7+AhvcWmQyGCYUh1hc4Q/pkOhb65dQR/pqCyK0cOaHz4Q==" + }, + "merge-descriptors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", + "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=", + "dev": true + }, + "merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==" + }, + "merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true + }, + "methods": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", + "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=", + "dev": true + }, + "micromatch": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz", + "integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==", + "dev": true, + "requires": { + "braces": "^3.0.1", + "picomatch": "^2.2.3" + } + }, + "miller-rabin": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz", + "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==", + "requires": { + "bn.js": "^4.0.0", + "brorand": "^1.0.1" + }, + "dependencies": { + "bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" + } + } + }, + "millify": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/millify/-/millify-3.5.2.tgz", + "integrity": "sha512-MdcYAP+h3GR5BivnkBHov4nbkfAB2dHiDhzEui9ZtrsHUTGZmsM3zxIFhEjoQSWOFfRx+Yp0eYCWzUvgFEvAhw==", + "requires": { + "yargs": "^16.2.0" + } + }, + "mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "dev": true + }, + "mime-db": { + "version": "1.48.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.48.0.tgz", + "integrity": "sha512-FM3QwxV+TnZYQ2aRqhlKBMHxk10lTbMt3bBkMAp54ddrNeVSfcQYOOKuGuy3Ddrm38I04If834fOUSq1yzslJQ==", + "dev": true + }, + "mime-types": { + "version": "2.1.31", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.31.tgz", + "integrity": "sha512-XGZnNzm3QvgKxa8dpzyhFTHmpP3l5YNusmne07VUOXxou9CqUqYa/HBy124RqtVh/O2pECas/MOcsDgpilPOPg==", + "dev": true, + "requires": { + "mime-db": "1.48.0" + } + }, + "mimic-response": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", + "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==" + }, + "min-document": { + "version": "2.19.0", + "resolved": "https://registry.npmjs.org/min-document/-/min-document-2.19.0.tgz", + "integrity": "sha1-e9KC4/WELtKVu3SM3Z8f+iyCRoU=", + "requires": { + "dom-walk": "^0.1.0" + } + }, + "minimalistic-assert": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", + "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==" + }, + "minimalistic-crypto-utils": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", + "integrity": "sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=" + }, + "minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "dev": true, + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "minimist": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", + "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==" + }, + "mkdirp": { + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", + "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", + "dev": true, + "requires": { + "minimist": "^1.2.5" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + }, + "nanoid": { + "version": "3.1.23", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.1.23.tgz", + "integrity": "sha512-FiB0kzdP0FFVGDKlRLEQ1BgDzU87dy5NnzjeW9YZNt+/c3+q82EQDUwniSAUxp/F0gFNI1ZhKU1FqYsMuqZVnw==" + }, + "native-url": { + "version": "0.3.4", + "resolved": "https://registry.npmjs.org/native-url/-/native-url-0.3.4.tgz", + "integrity": "sha512-6iM8R99ze45ivyH8vybJ7X0yekIcPf5GgLV5K0ENCbmRcaRIDoj37BC8iLEmaaBfqqb8enuZ5p0uhY+lVAbAcA==", + "requires": { + "querystring": "^0.2.0" + } + }, + "negotiator": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz", + "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==", + "dev": true + }, + "next": { + "version": "10.2.3", + "resolved": "https://registry.npmjs.org/next/-/next-10.2.3.tgz", + "integrity": "sha512-dkM1mIfnORtGyzw/Yme8RdqNxlCMZyi4Lqj56F01/yHbe1ZtOaJ0cyqqRB4RGiPhjGGh0319f8ddjDyO1605Ow==", + "requires": { + "@babel/runtime": "7.12.5", + "@hapi/accept": "5.0.2", + "@next/env": "10.2.3", + "@next/polyfill-module": "10.2.3", + "@next/react-dev-overlay": "10.2.3", + "@next/react-refresh-utils": "10.2.3", + "@opentelemetry/api": "0.14.0", + "assert": "2.0.0", + "ast-types": "0.13.2", + "browserify-zlib": "0.2.0", + "browserslist": "4.16.6", + "buffer": "5.6.0", + "caniuse-lite": "^1.0.30001228", + "chalk": "2.4.2", + "chokidar": "3.5.1", + "constants-browserify": "1.0.0", + "crypto-browserify": "3.12.0", + "cssnano-simple": "2.0.0", + "domain-browser": "4.19.0", + "encoding": "0.1.13", + "etag": "1.8.1", + "find-cache-dir": "3.3.1", + "get-orientation": "1.1.2", + "https-browserify": "1.0.0", + "jest-worker": "27.0.0-next.5", + "native-url": "0.3.4", + "node-fetch": "2.6.1", + "node-html-parser": "1.4.9", + "node-libs-browser": "^2.2.1", + "os-browserify": "0.3.0", + "p-limit": "3.1.0", + "path-browserify": "1.0.1", + "pnp-webpack-plugin": "1.6.4", + "postcss": "8.2.13", + "process": "0.11.10", + "prop-types": "15.7.2", + "querystring-es3": "0.2.1", + "raw-body": "2.4.1", + "react-is": "16.13.1", + "react-refresh": "0.8.3", + "stream-browserify": "3.0.0", + "stream-http": "3.1.1", + "string_decoder": "1.3.0", + "styled-jsx": "3.3.2", + "timers-browserify": "2.0.12", + "tty-browserify": "0.0.1", + "use-subscription": "1.5.1", + "util": "0.12.3", + "vm-browserify": "1.1.2", + "watchpack": "2.1.1" + }, + "dependencies": { + "@babel/runtime": { + "version": "7.12.5", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.12.5.tgz", + "integrity": "sha512-plcc+hbExy3McchJCEQG3knOsuh3HH+Prx1P6cLIkET/0dLuQDEnrT+s27Axgc9bqfsmNUNHfscgMUdBpC9xfg==", + "requires": { + "regenerator-runtime": "^0.13.4" + } + } + } + }, + "next-compose-plugins": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/next-compose-plugins/-/next-compose-plugins-2.2.1.tgz", + "integrity": "sha512-OjJ+fV15FXO2uQXQagLD4C0abYErBjyjE0I0FHpOEIB8upw0hg1ldFP6cqHTJBH1cZqy96OeR3u1dJ+Ez2D4Bg==", + "dev": true + }, + "next-pwa": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/next-pwa/-/next-pwa-3.1.5.tgz", + "integrity": "sha512-FInX1Xj9BCYvzwrzH0JupoHCpXKN1lVFospp7uYcL1eO3gOICtrNruYq988JIPG9vaW5iQpmcUkwbjIittyIlQ==", + "dev": true, + "requires": { + "clean-webpack-plugin": "^3.0.0", + "globby": "^11.0.1", + "workbox-webpack-plugin": "^5.1.4", + "workbox-window": "^5.1.4" + } + }, + "node-fetch": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.1.tgz", + "integrity": "sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw==" + }, + "node-html-parser": { + "version": "1.4.9", + "resolved": "https://registry.npmjs.org/node-html-parser/-/node-html-parser-1.4.9.tgz", + "integrity": "sha512-UVcirFD1Bn0O+TSmloHeHqZZCxHjvtIeGdVdGMhyZ8/PWlEiZaZ5iJzR189yKZr8p0FXN58BUeC7RHRkf/KYGw==", + "requires": { + "he": "1.2.0" + } + }, + "node-libs-browser": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-2.2.1.tgz", + "integrity": "sha512-h/zcD8H9kaDZ9ALUWwlBUDo6TKF8a7qBSCSEGfjTVIYeqsioSKaAX+BN7NgiMGp6iSIXZ3PxgCu8KS3b71YK5Q==", + "requires": { + "assert": "^1.1.1", + "browserify-zlib": "^0.2.0", + "buffer": "^4.3.0", + "console-browserify": "^1.1.0", + "constants-browserify": "^1.0.0", + "crypto-browserify": "^3.11.0", + "domain-browser": "^1.1.1", + "events": "^3.0.0", + "https-browserify": "^1.0.0", + "os-browserify": "^0.3.0", + "path-browserify": "0.0.1", + "process": "^0.11.10", + "punycode": "^1.2.4", + "querystring-es3": "^0.2.0", + "readable-stream": "^2.3.3", + "stream-browserify": "^2.0.1", + "stream-http": "^2.7.2", + "string_decoder": "^1.0.0", + "timers-browserify": "^2.0.4", + "tty-browserify": "0.0.0", + "url": "^0.11.0", + "util": "^0.11.0", + "vm-browserify": "^1.0.1" + }, + "dependencies": { + "assert": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/assert/-/assert-1.5.0.tgz", + "integrity": "sha512-EDsgawzwoun2CZkCgtxJbv392v4nbk9XDD06zI+kQYoBM/3RBWLlEyJARDOmhAAosBjWACEkKL6S+lIZtcAubA==", + "requires": { + "object-assign": "^4.1.1", + "util": "0.10.3" + }, + "dependencies": { + "util": { + "version": "0.10.3", + "resolved": "https://registry.npmjs.org/util/-/util-0.10.3.tgz", + "integrity": "sha1-evsa/lCAUkZInj23/g7TeTNqwPk=", + "requires": { + "inherits": "2.0.1" + } + } + } + }, + "buffer": { + "version": "4.9.2", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-4.9.2.tgz", + "integrity": "sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg==", + "requires": { + "base64-js": "^1.0.2", + "ieee754": "^1.1.4", + "isarray": "^1.0.0" + } + }, + "domain-browser": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.2.0.tgz", + "integrity": "sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA==" + }, + "inherits": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz", + "integrity": "sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE=" + }, + "path-browserify": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.1.tgz", + "integrity": "sha512-BapA40NHICOS+USX9SN4tyhq+A2RrN/Ws5F0Z5aMHDp98Fl86lX8Oti8B7uN93L4Ifv4fHOEA+pQw87gmMO/lQ==" + }, + "punycode": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", + "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=" + }, + "readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + }, + "dependencies": { + "inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "requires": { + "safe-buffer": "~5.1.0" + } + } + } + }, + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + }, + "stream-browserify": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.2.tgz", + "integrity": "sha512-nX6hmklHs/gr2FuxYDltq8fJA1GDlxKQCz8O/IM4atRqBH8OORmBNgfvW5gG10GT/qQ9u0CzIvr2X5Pkt6ntqg==", + "requires": { + "inherits": "~2.0.1", + "readable-stream": "^2.0.2" + } + }, + "stream-http": { + "version": "2.8.3", + "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-2.8.3.tgz", + "integrity": "sha512-+TSkfINHDo4J+ZobQLWiMouQYB+UVYFttRA94FpEzzJ7ZdqcL4uUUQ7WkdkI4DSozGmgBUE/a47L+38PenXhUw==", + "requires": { + "builtin-status-codes": "^3.0.0", + "inherits": "^2.0.1", + "readable-stream": "^2.3.6", + "to-arraybuffer": "^1.0.0", + "xtend": "^4.0.0" + } + }, + "tty-browserify": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.0.tgz", + "integrity": "sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY=" + }, + "util": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/util/-/util-0.11.1.tgz", + "integrity": "sha512-HShAsny+zS2TZfaXxD9tYj4HQGlBezXZMZuM/S5PKLLoZkShZiGk9o5CzukI1LVHZvjdvZ2Sj1aW/Ndn2NB/HQ==", + "requires": { + "inherits": "2.0.3" + }, + "dependencies": { + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" + } + } + } + } + }, + "node-releases": { + "version": "1.1.73", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.73.tgz", + "integrity": "sha512-uW7fodD6pyW2FZNZnp/Z3hvWKeEW1Y8R1+1CnErE8cXFXzl5blBOoVB41CvMer6P6Q0S5FXDwcHgFd1Wj0U9zg==" + }, + "normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==" + }, + "number-to-bn": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/number-to-bn/-/number-to-bn-1.7.0.tgz", + "integrity": "sha1-uzYjWS9+X54AMLGXe9QaDFP+HqA=", + "requires": { + "bn.js": "4.11.6", + "strip-hex-prefix": "1.0.0" + }, + "dependencies": { + "bn.js": { + "version": "4.11.6", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.6.tgz", + "integrity": "sha1-UzRK2xRhehP26N0s4okF0cC6MhU=" + } + } + }, + "object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" + }, + "object-inspect": { + "version": "1.10.3", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.10.3.tgz", + "integrity": "sha512-e5mCJlSH7poANfC8z8S9s9S2IN5/4Zb3aZ33f5s8YqoazCFzNLloLU8r5VCG+G7WoqLvAAZoVMcy3tp/3X0Plw==" + }, + "object-is": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.1.5.tgz", + "integrity": "sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw==", + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3" + } + }, + "object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==" + }, + "object.assign": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz", + "integrity": "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==", + "requires": { + "call-bind": "^1.0.0", + "define-properties": "^1.1.3", + "has-symbols": "^1.0.1", + "object-keys": "^1.1.1" + } + }, + "on-finished": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", + "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=", + "dev": true, + "requires": { + "ee-first": "1.1.1" + } + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "requires": { + "wrappy": "1" + } + }, + "opener": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/opener/-/opener-1.5.2.tgz", + "integrity": "sha512-ur5UIdyw5Y7yEj9wLzhqXiy6GZ3Mwx0yGI+5sMn2r0N0v3cKJvUmFH5yPP+WXh9e0xfyzyJX95D8l088DNFj7A==", + "dev": true + }, + "optimism": { + "version": "0.16.1", + "resolved": "https://registry.npmjs.org/optimism/-/optimism-0.16.1.tgz", + "integrity": "sha512-64i+Uw3otrndfq5kaoGNoY7pvOhSsjFEN4bdEFh80MWVk/dbgJfMv7VFDeCT8LxNAlEVhQmdVEbfE7X2nWNIIg==", + "requires": { + "@wry/context": "^0.6.0", + "@wry/trie": "^0.3.0" + } + }, + "os-browserify": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz", + "integrity": "sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc=" + }, + "p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "requires": { + "yocto-queue": "^0.1.0" + } + }, + "p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "requires": { + "p-limit": "^2.2.0" + }, + "dependencies": { + "p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "requires": { + "p-try": "^2.0.0" + } + } + } + }, + "p-map": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-2.1.0.tgz", + "integrity": "sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==", + "dev": true + }, + "p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==" + }, + "pako": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", + "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==" + }, + "parse-asn1": { + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.6.tgz", + "integrity": "sha512-RnZRo1EPU6JBnra2vGHj0yhp6ebyjBZpmUCLHWiFhxlzvBCCpAuZ7elsBp1PVAbQN0/04VD/19rfzlBSwLstMw==", + "requires": { + "asn1.js": "^5.2.0", + "browserify-aes": "^1.0.0", + "evp_bytestokey": "^1.0.0", + "pbkdf2": "^3.0.3", + "safe-buffer": "^5.1.1" + } + }, + "parse-headers": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/parse-headers/-/parse-headers-2.0.3.tgz", + "integrity": "sha512-QhhZ+DCCit2Coi2vmAKbq5RGTRcQUOE2+REgv8vdyu7MnYx2eZztegqtTx99TZ86GTIwqiy3+4nQTWZ2tgmdCA==" + }, + "parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", + "dev": true + }, + "path-browserify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-1.0.1.tgz", + "integrity": "sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==" + }, + "path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==" + }, + "path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", + "dev": true + }, + "path-is-inside": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", + "integrity": "sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=", + "dev": true + }, + "path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "dev": true + }, + "path-to-regexp": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", + "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=", + "dev": true + }, + "path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "dev": true + }, + "pbkdf2": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.2.tgz", + "integrity": "sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA==", + "requires": { + "create-hash": "^1.1.2", + "create-hmac": "^1.1.4", + "ripemd160": "^2.0.1", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" + } + }, + "picomatch": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.0.tgz", + "integrity": "sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw==" + }, + "pify": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", + "dev": true + }, + "pinkie": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", + "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=", + "dev": true + }, + "pinkie-promise": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", + "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", + "dev": true, + "requires": { + "pinkie": "^2.0.0" + } + }, + "pkg-dir": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", + "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", + "requires": { + "find-up": "^4.0.0" + } + }, + "platform": { + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/platform/-/platform-1.3.6.tgz", + "integrity": "sha512-fnWVljUchTro6RiCFvCXBbNhJc2NijN7oIQxbwsyL0buWJPG85v81ehlHI9fXrJsMNgTofEoWIQeClKpgxFLrg==" + }, + "pnp-webpack-plugin": { + "version": "1.6.4", + "resolved": "https://registry.npmjs.org/pnp-webpack-plugin/-/pnp-webpack-plugin-1.6.4.tgz", + "integrity": "sha512-7Wjy+9E3WwLOEL30D+m8TSTF7qJJUJLONBnwQp0518siuMxUQUbgZwssaFX+QKlZkjHZcw/IpZCt/H0srrntSg==", + "requires": { + "ts-pnp": "^1.1.6" + } + }, + "popper.js": { + "version": "1.16.1-lts", + "resolved": "https://registry.npmjs.org/popper.js/-/popper.js-1.16.1-lts.tgz", + "integrity": "sha512-Kjw8nKRl1m+VrSFCoVGPph93W/qrSO7ZkqPpTf7F4bk/sqcfWK019dWBUpE/fBOsOQY1dks/Bmcbfn1heM/IsA==" + }, + "postcss": { + "version": "8.2.13", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.2.13.tgz", + "integrity": "sha512-FCE5xLH+hjbzRdpbRb1IMCvPv9yZx2QnDarBEYSN0N0HYk+TcXsEhwdFcFb+SRWOKzKGErhIEbBK2ogyLdTtfQ==", + "requires": { + "colorette": "^1.2.2", + "nanoid": "^3.1.22", + "source-map": "^0.6.1" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + } + } + }, + "pretty-bytes": { + "version": "5.6.0", + "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-5.6.0.tgz", + "integrity": "sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg==", + "dev": true + }, + "process": { + "version": "0.11.10", + "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", + "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=" + }, + "process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" + }, + "prop-types": { + "version": "15.7.2", + "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.7.2.tgz", + "integrity": "sha512-8QQikdH7//R2vurIJSutZ1smHYTcLpRWEOlHnzcWHmBYrOGUysKwSsrC89BCiFj3CbrfJ/nXFdJepOVrY1GCHQ==", + "requires": { + "loose-envify": "^1.4.0", + "object-assign": "^4.1.1", + "react-is": "^16.8.1" + } + }, + "proxy-addr": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", + "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", + "dev": true, + "requires": { + "forwarded": "0.2.0", + "ipaddr.js": "1.9.1" + } + }, + "public-encrypt": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz", + "integrity": "sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==", + "requires": { + "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" + }, + "dependencies": { + "bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" + } + } + }, + "punycode": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==" + }, + "qs": { + "version": "6.7.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz", + "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==", + "dev": true + }, + "query-string": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/query-string/-/query-string-5.1.1.tgz", + "integrity": "sha512-gjWOsm2SoGlgLEdAGt7a6slVOk9mGiXmPFMqrEhLQ68rhQuBnpfs3+EmlvqKyxnCo9/PPlF+9MtY02S1aFg+Jw==", + "requires": { + "decode-uri-component": "^0.2.0", + "object-assign": "^4.1.0", + "strict-uri-encode": "^1.0.0" + } + }, + "querystring": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.1.tgz", + "integrity": "sha512-wkvS7mL/JMugcup3/rMitHmd9ecIGd2lhFhK9N3UUQ450h66d1r3Y9nvXzQAW1Lq+wyx61k/1pfKS5KuKiyEbg==" + }, + "querystring-es3": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz", + "integrity": "sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM=" + }, + "queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "dev": true + }, + "randombytes": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", + "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "requires": { + "safe-buffer": "^5.1.0" + } + }, + "randomfill": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/randomfill/-/randomfill-1.0.4.tgz", + "integrity": "sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==", + "requires": { + "randombytes": "^2.0.5", + "safe-buffer": "^5.1.0" + } + }, + "range-parser": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", + "dev": true + }, + "raw-body": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.1.tgz", + "integrity": "sha512-9WmIKF6mkvA0SLmA2Knm9+qj89e+j1zqgyn8aXGd7+nAduPoqgI9lO57SAZNn/Byzo5P7JhXTyg9PzaJbH73bA==", + "requires": { + "bytes": "3.1.0", + "http-errors": "1.7.3", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" + }, + "dependencies": { + "iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "requires": { + "safer-buffer": ">= 2.1.2 < 3" + } + } + } + }, + "react": { + "version": "17.0.2", + "resolved": "https://registry.npmjs.org/react/-/react-17.0.2.tgz", + "integrity": "sha512-gnhPt75i/dq/z3/6q/0asP78D0u592D5L1pd7M8P+dck6Fu/jJeL6iVVK23fptSUZj8Vjf++7wXA8UNclGQcbA==", + "requires": { + "loose-envify": "^1.1.0", + "object-assign": "^4.1.1" + } + }, + "react-dom": { + "version": "17.0.2", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-17.0.2.tgz", + "integrity": "sha512-s4h96KtLDUQlsENhMn1ar8t2bEa+q/YAtj8pPPdIjPDGBDIVNsrD9aXNWqspUe6AzKCIG0C1HZZLqLV7qpOBGA==", + "requires": { + "loose-envify": "^1.1.0", + "object-assign": "^4.1.1", + "scheduler": "^0.20.2" + } + }, + "react-is": { + "version": "16.13.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", + "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" + }, + "react-refresh": { + "version": "0.8.3", + "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.8.3.tgz", + "integrity": "sha512-X8jZHc7nCMjaCqoU+V2I0cOhNW+QMBwSUkeXnTi8IPe6zaRWfn60ZzvFDZqWPfmSJfjub7dDW1SP0jaHWLu/hg==" + }, + "react-sparklines": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/react-sparklines/-/react-sparklines-1.7.0.tgz", + "integrity": "sha512-bJFt9K4c5Z0k44G8KtxIhbG+iyxrKjBZhdW6afP+R7EnIq+iKjbWbEFISrf3WKNFsda+C46XAfnX0StS5fbDcg==", + "requires": { + "prop-types": "^15.5.10" + } + }, + "react-spring": { + "version": "8.0.27", + "resolved": "https://registry.npmjs.org/react-spring/-/react-spring-8.0.27.tgz", + "integrity": "sha512-nDpWBe3ZVezukNRandTeLSPcwwTMjNVu1IDq9qA/AMiUqHuRN4BeSWvKr3eIxxg1vtiYiOLy4FqdfCP5IoP77g==", + "requires": { + "@babel/runtime": "^7.3.1", + "prop-types": "^15.5.8" + } + }, + "react-transition-group": { + "version": "4.4.2", + "resolved": "https://registry.npmjs.org/react-transition-group/-/react-transition-group-4.4.2.tgz", + "integrity": "sha512-/RNYfRAMlZwDSr6z4zNKV6xu53/e2BuaBbGhbyYIXTrmgu/bGHzmqOs7mJSJBHy9Ud+ApHx3QjrkKSp1pxvlFg==", + "requires": { + "@babel/runtime": "^7.5.5", + "dom-helpers": "^5.0.1", + "loose-envify": "^1.4.0", + "prop-types": "^15.6.2" + } + }, + "react-use-measure": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/react-use-measure/-/react-use-measure-2.0.4.tgz", + "integrity": "sha512-7K2HIGaPMl3Q9ZQiEVjen3tRXl4UDda8LiTPy/QxP8dP2rl5gPBhf7mMH6MVjjRNv3loU7sNzey/ycPNnHVTxQ==", + "requires": { + "debounce": "^1.2.0" + } + }, + "react-window": { + "version": "1.8.6", + "resolved": "https://registry.npmjs.org/react-window/-/react-window-1.8.6.tgz", + "integrity": "sha512-8VwEEYyjz6DCnGBsd+MgkD0KJ2/OXFULyDtorIiTz+QzwoP94tBoA7CnbtyXMm+cCeAUER5KJcPtWl9cpKbOBg==", + "requires": { + "@babel/runtime": "^7.0.0", + "memoize-one": ">=3.1.1 <6" + } + }, + "readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + }, + "readdirp": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.5.0.tgz", + "integrity": "sha512-cMhu7c/8rdhkHXWsY+osBhfSy0JikwpHK/5+imo+LpeasTF8ouErHrlYkwT0++njiyuDvc7OFY5T3ukvZ8qmFQ==", + "requires": { + "picomatch": "^2.2.1" + } + }, + "reduce-css-calc": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/reduce-css-calc/-/reduce-css-calc-1.3.0.tgz", + "integrity": "sha1-dHyRTgSWFKTJz7umKYca0dKSdxY=", + "requires": { + "balanced-match": "^0.4.2", + "math-expression-evaluator": "^1.2.14", + "reduce-function-call": "^1.0.1" + } + }, + "reduce-function-call": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/reduce-function-call/-/reduce-function-call-1.0.3.tgz", + "integrity": "sha512-Hl/tuV2VDgWgCSEeWMLwxLZqX7OK59eU1guxXsRKTAyeYimivsKdtcV4fu3r710tpG5GmDKDhQ0HSZLExnNmyQ==", + "requires": { + "balanced-match": "^1.0.0" + }, + "dependencies": { + "balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" + } + } + }, + "regenerate": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz", + "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==", + "dev": true + }, + "regenerate-unicode-properties": { + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-8.2.0.tgz", + "integrity": "sha512-F9DjY1vKLo/tPePDycuH3dn9H1OTPIkVD9Kz4LODu+F2C75mgjAJ7x/gwy6ZcSNRAAkhNlJSOHRe8k3p+K9WhA==", + "dev": true, + "requires": { + "regenerate": "^1.4.0" + } + }, + "regenerator-runtime": { + "version": "0.13.7", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.7.tgz", + "integrity": "sha512-a54FxoJDIr27pgf7IgeQGxmqUNYrcV338lf/6gH456HZ/PhX+5BcwHXG9ajESmwe6WRO0tAzRUrRmNONWgkrew==" + }, + "regenerator-transform": { + "version": "0.14.5", + "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.14.5.tgz", + "integrity": "sha512-eOf6vka5IO151Jfsw2NO9WpGX58W6wWmefK3I1zEGr0lOD0u8rwPaNqQL1aRxUaxLeKO3ArNh3VYg1KbaD+FFw==", + "dev": true, + "requires": { + "@babel/runtime": "^7.8.4" + } + }, + "regexpu-core": { + "version": "4.7.1", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-4.7.1.tgz", + "integrity": "sha512-ywH2VUraA44DZQuRKzARmw6S66mr48pQVva4LBeRhcOltJ6hExvWly5ZjFLYo67xbIxb6W1q4bAGtgfEl20zfQ==", + "dev": true, + "requires": { + "regenerate": "^1.4.0", + "regenerate-unicode-properties": "^8.2.0", + "regjsgen": "^0.5.1", + "regjsparser": "^0.6.4", + "unicode-match-property-ecmascript": "^1.0.4", + "unicode-match-property-value-ecmascript": "^1.2.0" + } + }, + "regjsgen": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.5.2.tgz", + "integrity": "sha512-OFFT3MfrH90xIW8OOSyUrk6QHD5E9JOTeGodiJeBS3J6IwlgzJMNE/1bZklWz5oTg+9dCMyEetclvCVXOPoN3A==", + "dev": true + }, + "regjsparser": { + "version": "0.6.9", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.6.9.tgz", + "integrity": "sha512-ZqbNRz1SNjLAiYuwY0zoXW8Ne675IX5q+YHioAGbCw4X96Mjl2+dcX9B2ciaeyYjViDAfvIjFpQjJgLttTEERQ==", + "dev": true, + "requires": { + "jsesc": "~0.5.0" + }, + "dependencies": { + "jsesc": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", + "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=", + "dev": true + } + } + }, + "require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=" + }, + "resize-observer-polyfill": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/resize-observer-polyfill/-/resize-observer-polyfill-1.5.1.tgz", + "integrity": "sha512-LwZrotdHOo12nQuZlHEmtuXdqGoOD0OhaxopaNFxWzInpEgaLWoVuAMbTzixuosCx2nEG58ngzW3vxdWoxIgdg==" + }, + "resolve": { + "version": "1.20.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.20.0.tgz", + "integrity": "sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A==", + "dev": true, + "requires": { + "is-core-module": "^2.2.0", + "path-parse": "^1.0.6" + } + }, + "reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "dev": true + }, + "rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "dev": true, + "requires": { + "glob": "^7.1.3" + } + }, + "ripemd160": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz", + "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==", + "requires": { + "hash-base": "^3.0.0", + "inherits": "^2.0.1" + } + }, + "rollup": { + "version": "1.32.1", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-1.32.1.tgz", + "integrity": "sha512-/2HA0Ec70TvQnXdzynFffkjA6XN+1e2pEv/uKS5Ulca40g2L7KuOE3riasHoNVHOsFD5KKZgDsMk1CP3Tw9s+A==", + "dev": true, + "requires": { + "@types/estree": "*", + "@types/node": "*", + "acorn": "^7.1.0" + } + }, + "rollup-plugin-babel": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/rollup-plugin-babel/-/rollup-plugin-babel-4.4.0.tgz", + "integrity": "sha512-Lek/TYp1+7g7I+uMfJnnSJ7YWoD58ajo6Oarhlex7lvUce+RCKRuGRSgztDO3/MF/PuGKmUL5iTHKf208UNszw==", + "dev": true, + "requires": { + "@babel/helper-module-imports": "^7.0.0", + "rollup-pluginutils": "^2.8.1" + } + }, + "rollup-plugin-terser": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/rollup-plugin-terser/-/rollup-plugin-terser-5.3.1.tgz", + "integrity": "sha512-1pkwkervMJQGFYvM9nscrUoncPwiKR/K+bHdjv6PFgRo3cgPHoRT83y2Aa3GvINj4539S15t/tpFPb775TDs6w==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.5.5", + "jest-worker": "^24.9.0", + "rollup-pluginutils": "^2.8.2", + "serialize-javascript": "^4.0.0", + "terser": "^4.6.2" + }, + "dependencies": { + "jest-worker": { + "version": "24.9.0", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-24.9.0.tgz", + "integrity": "sha512-51PE4haMSXcHohnSMdM42anbvZANYTqMrr52tVKPqqsPJMzoP6FYYDVqahX/HrAoKEKz3uUPzSvKs9A3qR4iVw==", + "dev": true, + "requires": { + "merge-stream": "^2.0.0", + "supports-color": "^6.1.0" + } + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "rollup-pluginutils": { + "version": "2.8.2", + "resolved": "https://registry.npmjs.org/rollup-pluginutils/-/rollup-pluginutils-2.8.2.tgz", + "integrity": "sha512-EEp9NhnUkwY8aif6bxgovPHMoMoNr2FulJziTndpt5H9RdwC47GSGuII9XxpSdzVGM0GWrNPHV6ie1LTNJPaLQ==", + "dev": true, + "requires": { + "estree-walker": "^0.6.1" + }, + "dependencies": { + "estree-walker": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-0.6.1.tgz", + "integrity": "sha512-SqmZANLWS0mnatqbSfRP5g8OXZC12Fgg1IwNtLsyHDzJizORW4khDfjPqJZsemPWBB2uqykUah5YpQ6epsqC/w==", + "dev": true + } + } + }, + "run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "dev": true, + "requires": { + "queue-microtask": "^1.2.2" + } + }, + "safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==" + }, + "safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" + }, + "scheduler": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.20.2.tgz", + "integrity": "sha512-2eWfGgAqqWFGqtdMmcL5zCMK1U8KlXv8SQFGglL3CEtd0aDVDWgeF/YoCmvln55m5zSk3J/20hTaSBeSObsQDQ==", + "requires": { + "loose-envify": "^1.1.0", + "object-assign": "^4.1.1" + } + }, + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" + }, + "send": { + "version": "0.17.1", + "resolved": "https://registry.npmjs.org/send/-/send-0.17.1.tgz", + "integrity": "sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg==", + "dev": true, + "requires": { + "debug": "2.6.9", + "depd": "~1.1.2", + "destroy": "~1.0.4", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "fresh": "0.5.2", + "http-errors": "~1.7.2", + "mime": "1.6.0", + "ms": "2.1.1", + "on-finished": "~2.3.0", + "range-parser": "~1.2.1", + "statuses": "~1.5.0" + }, + "dependencies": { + "ms": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", + "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", + "dev": true + } + } + }, + "serialize-javascript": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-4.0.0.tgz", + "integrity": "sha512-GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw==", + "dev": true, + "requires": { + "randombytes": "^2.1.0" + } + }, + "serve-static": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.14.1.tgz", + "integrity": "sha512-JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg==", + "dev": true, + "requires": { + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "parseurl": "~1.3.3", + "send": "0.17.1" + } + }, + "setimmediate": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", + "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=" + }, + "setprototypeof": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz", + "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==" + }, + "sha.js": { + "version": "2.4.11", + "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", + "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", + "requires": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "shell-quote": { + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.7.2.tgz", + "integrity": "sha512-mRz/m/JVscCrkMyPqHc/bczi3OQHkLTqXHEFu0zDhK/qfv3UcOA4SVmRCLmos4bhjr9ekVQubj/R7waKapmiQg==" + }, + "simple-concat": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.1.tgz", + "integrity": "sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==" + }, + "simple-get": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/simple-get/-/simple-get-2.8.1.tgz", + "integrity": "sha512-lSSHRSw3mQNUGPAYRqo7xy9dhKmxFXIjLjp4KHpf99GEH2VH7C3AM+Qfx6du6jhfUi6Vm7XnbEVEf7Wb6N8jRw==", + "requires": { + "decompress-response": "^3.3.0", + "once": "^1.3.1", + "simple-concat": "^1.0.0" + } + }, + "slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true + }, + "source-list-map": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-2.0.1.tgz", + "integrity": "sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw==", + "dev": true + }, + "source-map": { + "version": "0.8.0-beta.0", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.8.0-beta.0.tgz", + "integrity": "sha512-2ymg6oRBpebeZi9UUNsgQ89bhx01TcTkmNTGnNO88imTmbSgy4nfujrgVEFKWpMTEGA11EDkTt7mqObTPdigIA==", + "requires": { + "whatwg-url": "^7.0.0" + } + }, + "source-map-support": { + "version": "0.5.19", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.19.tgz", + "integrity": "sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw==", + "dev": true, + "requires": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } + } + }, + "source-map-url": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.1.tgz", + "integrity": "sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw==", + "dev": true + }, + "sourcemap-codec": { + "version": "1.4.8", + "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz", + "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==", + "dev": true + }, + "stacktrace-parser": { + "version": "0.1.10", + "resolved": "https://registry.npmjs.org/stacktrace-parser/-/stacktrace-parser-0.1.10.tgz", + "integrity": "sha512-KJP1OCML99+8fhOHxwwzyWrlUuVX5GQ0ZpJTd1DFXhdkrvg1szxfHhawXUZ3g9TkXORQd4/WG68jMlQZ2p8wlg==", + "requires": { + "type-fest": "^0.7.1" + } + }, + "statuses": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", + "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=" + }, + "stream-browserify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-3.0.0.tgz", + "integrity": "sha512-H73RAHsVBapbim0tU2JwwOiXUj+fikfiaoYAKHF3VJfA0pe2BCzkhAHBlLG6REzE+2WNZcxOXjK7lkso+9euLA==", + "requires": { + "inherits": "~2.0.4", + "readable-stream": "^3.5.0" + } + }, + "stream-http": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-3.1.1.tgz", + "integrity": "sha512-S7OqaYu0EkFpgeGFb/NPOoPLxFko7TPqtEeFg5DXPB4v/KETHG0Ln6fRFrNezoelpaDKmycEmmZ81cC9DAwgYg==", + "requires": { + "builtin-status-codes": "^3.0.0", + "inherits": "^2.0.4", + "readable-stream": "^3.6.0", + "xtend": "^4.0.2" + } + }, + "stream-parser": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/stream-parser/-/stream-parser-0.3.1.tgz", + "integrity": "sha1-FhhUhpRCACGhGC/wrxkRwSl2F3M=", + "requires": { + "debug": "2" + } + }, + "strict-uri-encode": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz", + "integrity": "sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM=" + }, + "string-hash": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/string-hash/-/string-hash-1.1.3.tgz", + "integrity": "sha1-6Kr8CsGFW0Zmkp7X3RJ1311sgRs=" + }, + "string-width": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.2.tgz", + "integrity": "sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA==", + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.0" + } + }, + "string.prototype.trimend": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz", + "integrity": "sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A==", + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3" + } + }, + "string.prototype.trimstart": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4.tgz", + "integrity": "sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw==", + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3" + } + }, + "string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "requires": { + "safe-buffer": "~5.2.0" + } + }, + "stringify-object": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/stringify-object/-/stringify-object-3.3.0.tgz", + "integrity": "sha512-rHqiFh1elqCQ9WPLIC8I0Q/g/wj5J1eMkyoiD6eoQApWHP0FtlK7rqnhmabL5VUY9JQCcqwwvlOaSuutekgyrw==", + "dev": true, + "requires": { + "get-own-enumerable-property-symbols": "^3.0.0", + "is-obj": "^1.0.1", + "is-regexp": "^1.0.0" + } + }, + "strip-ansi": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "requires": { + "ansi-regex": "^5.0.0" + } + }, + "strip-comments": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/strip-comments/-/strip-comments-1.0.2.tgz", + "integrity": "sha512-kL97alc47hoyIQSV165tTt9rG5dn4w1dNnBhOQ3bOU1Nc1hel09jnXANaHJ7vzHLd4Ju8kseDGzlev96pghLFw==", + "dev": true, + "requires": { + "babel-extract-comments": "^1.0.0", + "babel-plugin-transform-object-rest-spread": "^6.26.0" + } + }, + "strip-hex-prefix": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/strip-hex-prefix/-/strip-hex-prefix-1.0.0.tgz", + "integrity": "sha1-DF8VX+8RUTczd96du1iNoFUA428=", + "requires": { + "is-hex-prefixed": "1.0.0" + } + }, + "styled-jsx": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/styled-jsx/-/styled-jsx-3.3.2.tgz", + "integrity": "sha512-daAkGd5mqhbBhLd6jYAjYBa9LpxYCzsgo/f6qzPdFxVB8yoGbhxvzQgkC0pfmCVvW3JuAEBn0UzFLBfkHVZG1g==", + "requires": { + "@babel/types": "7.8.3", + "babel-plugin-syntax-jsx": "6.18.0", + "convert-source-map": "1.7.0", + "loader-utils": "1.2.3", + "source-map": "0.7.3", + "string-hash": "1.1.3", + "stylis": "3.5.4", + "stylis-rule-sheet": "0.0.10" + }, + "dependencies": { + "source-map": { + "version": "0.7.3", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", + "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==" + } + } + }, + "stylis": { + "version": "3.5.4", + "resolved": "https://registry.npmjs.org/stylis/-/stylis-3.5.4.tgz", + "integrity": "sha512-8/3pSmthWM7lsPBKv7NXkzn2Uc9W7NotcwGNpJaa3k7WMM1XDCA4MgT5k/8BIexd5ydZdboXtU90XH9Ec4Bv/Q==" + }, + "stylis-rule-sheet": { + "version": "0.0.10", + "resolved": "https://registry.npmjs.org/stylis-rule-sheet/-/stylis-rule-sheet-0.0.10.tgz", + "integrity": "sha512-nTbZoaqoBnmK+ptANthb10ZRZOGC+EmTLLUxeYIuHNkEKcmKgXX1XWKkUBT2Ac4es3NybooPe0SmvKdhKJZAuw==" + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "requires": { + "has-flag": "^3.0.0" + } + }, + "symbol-observable": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-4.0.0.tgz", + "integrity": "sha512-b19dMThMV4HVFynSAM1++gBHAbk2Tc/osgLIBZMKsyqh34jb2e8Os7T6ZW/Bt3pJFdBTd2JwAnAAEQV7rSNvcQ==" + }, + "temp-dir": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/temp-dir/-/temp-dir-1.0.0.tgz", + "integrity": "sha1-CnwOom06Oa+n4OvqnB/AvE2qAR0=", + "dev": true + }, + "tempy": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/tempy/-/tempy-0.3.0.tgz", + "integrity": "sha512-WrH/pui8YCwmeiAoxV+lpRH9HpRtgBhSR2ViBPgpGb/wnYDzp21R4MN45fsCGvLROvY67o3byhJRYRONJyImVQ==", + "dev": true, + "requires": { + "temp-dir": "^1.0.0", + "type-fest": "^0.3.1", + "unique-string": "^1.0.0" + }, + "dependencies": { + "type-fest": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.3.1.tgz", + "integrity": "sha512-cUGJnCdr4STbePCgqNFbpVNCepa+kAVohJs1sLhxzdH+gnEoOd8VhbYa7pD3zZYGiURWM2xzEII3fQcRizDkYQ==", + "dev": true + } + } + }, + "terser": { + "version": "4.8.0", + "resolved": "https://registry.npmjs.org/terser/-/terser-4.8.0.tgz", + "integrity": "sha512-EAPipTNeWsb/3wLPeup1tVPaXfIaU68xMnVdPafIL1TV05OhASArYyIfFvnvJCNrR2NIOvDVNNTFRa+Re2MWyw==", + "dev": true, + "requires": { + "commander": "^2.20.0", + "source-map": "~0.6.1", + "source-map-support": "~0.5.12" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } + } + }, + "timed-out": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/timed-out/-/timed-out-4.0.1.tgz", + "integrity": "sha1-8y6srFoXW+ol1/q1Zas+2HQe9W8=" + }, + "timers-browserify": { + "version": "2.0.12", + "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.12.tgz", + "integrity": "sha512-9phl76Cqm6FhSX9Xe1ZUAMLtm1BLkKj2Qd5ApyWkXzsMRaA7dgr81kf4wJmQf/hAvg8EEyJxDo3du/0KlhPiKQ==", + "requires": { + "setimmediate": "^1.0.4" + } + }, + "tiny-warning": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/tiny-warning/-/tiny-warning-1.0.3.tgz", + "integrity": "sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA==" + }, + "to-arraybuffer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz", + "integrity": "sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M=" + }, + "to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=" + }, + "to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "requires": { + "is-number": "^7.0.0" + } + }, + "toidentifier": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz", + "integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==" + }, + "tr46": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-1.0.1.tgz", + "integrity": "sha1-qLE/1r/SSJUZZ0zN5VujaTtwbQk=", + "requires": { + "punycode": "^2.1.0" + } + }, + "tryer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/tryer/-/tryer-1.0.1.tgz", + "integrity": "sha512-c3zayb8/kWWpycWYg87P71E1S1ZL6b6IJxfb5fvsUgsf0S2MVGaDhDXXjDMpdCpfWXqptc+4mXwmiy1ypXqRAA==", + "dev": true + }, + "ts-invariant": { + "version": "0.7.5", + "resolved": "https://registry.npmjs.org/ts-invariant/-/ts-invariant-0.7.5.tgz", + "integrity": "sha512-qfVyqTYWEqADMtncLqwpUdMjMSXnsqOeqGtj1LeJNFDjz8oqZ1YxLEp29YCOq65z0LgEiERqQ8ThVjnfibJNpg==", + "requires": { + "tslib": "^2.1.0" + }, + "dependencies": { + "tslib": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.0.tgz", + "integrity": "sha512-N82ooyxVNm6h1riLCoyS9e3fuJ3AMG2zIZs2Gd1ATcSFjSA23Q0fzjjZeh0jbJvWVDZ0cJT8yaNNaaXHzueNjg==" + } + } + }, + "ts-pnp": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/ts-pnp/-/ts-pnp-1.2.0.tgz", + "integrity": "sha512-csd+vJOb/gkzvcCHgTGSChYpy5f1/XKNsmvBGO4JXS+z1v2HobugDz4s1IeFXM3wZB44uczs+eazB5Q/ccdhQw==" + }, + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + }, + "tty-browserify": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.1.tgz", + "integrity": "sha512-C3TaO7K81YvjCgQH9Q1S3R3P3BtN3RIM8n+OvX4il1K1zgE8ZhI0op7kClgkxtutIE8hQrcrHBXvIheqKUUCxw==" + }, + "type-fest": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.7.1.tgz", + "integrity": "sha512-Ne2YiiGN8bmrmJJEuTWTLJR32nh/JdL1+PSicowtNb0WFpn59GK8/lfD61bVtzguz7b3PBt74nxpv/Pw5po5Rg==" + }, + "type-is": { + "version": "1.6.18", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", + "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", + "dev": true, + "requires": { + "media-typer": "0.3.0", + "mime-types": "~2.1.24" + } + }, + "unbox-primitive": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.1.tgz", + "integrity": "sha512-tZU/3NqK3dA5gpE1KtyiJUrEB0lxnGkMFHptJ7q6ewdZ8s12QrODwNbhIJStmJkd1QDXa1NRA8aF2A1zk/Ypyw==", + "requires": { + "function-bind": "^1.1.1", + "has-bigints": "^1.0.1", + "has-symbols": "^1.0.2", + "which-boxed-primitive": "^1.0.2" + } + }, + "underscore": { + "version": "1.12.1", + "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.12.1.tgz", + "integrity": "sha512-hEQt0+ZLDVUMhebKxL4x1BTtDY7bavVofhZ9KZ4aI26X9SRaE+Y3m83XUL1UP2jn8ynjndwCCpEHdUG+9pP1Tw==" + }, + "unicode-canonical-property-names-ecmascript": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-1.0.4.tgz", + "integrity": "sha512-jDrNnXWHd4oHiTZnx/ZG7gtUTVp+gCcTTKr8L0HjlwphROEW3+Him+IpvC+xcJEFegapiMZyZe02CyuOnRmbnQ==", + "dev": true + }, + "unicode-match-property-ecmascript": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-1.0.4.tgz", + "integrity": "sha512-L4Qoh15vTfntsn4P1zqnHulG0LdXgjSO035fEpdtp6YxXhMT51Q6vgM5lYdG/5X3MjS+k/Y9Xw4SFCY9IkR0rg==", + "dev": true, + "requires": { + "unicode-canonical-property-names-ecmascript": "^1.0.4", + "unicode-property-aliases-ecmascript": "^1.0.4" + } + }, + "unicode-match-property-value-ecmascript": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-1.2.0.tgz", + "integrity": "sha512-wjuQHGQVofmSJv1uVISKLE5zO2rNGzM/KCYZch/QQvez7C1hUhBIuZ701fYXExuufJFMPhv2SyL8CyoIfMLbIQ==", + "dev": true + }, + "unicode-property-aliases-ecmascript": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-1.1.0.tgz", + "integrity": "sha512-PqSoPh/pWetQ2phoj5RLiaqIk4kCNwoV3CI+LfGmWLKI3rE3kl1h59XpX2BjgDrmbxD9ARtQobPGU1SguCYuQg==", + "dev": true + }, + "unique-string": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-1.0.0.tgz", + "integrity": "sha1-nhBXzKhRq7kzmPizOuGHuZyuwRo=", + "dev": true, + "requires": { + "crypto-random-string": "^1.0.0" + } + }, + "universalify": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", + "dev": true + }, + "unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=" + }, + "upath": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/upath/-/upath-1.2.0.tgz", + "integrity": "sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==", + "dev": true + }, + "url": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/url/-/url-0.11.0.tgz", + "integrity": "sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=", + "requires": { + "punycode": "1.3.2", + "querystring": "0.2.0" + }, + "dependencies": { + "punycode": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz", + "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=" + }, + "querystring": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", + "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=" + } + } + }, + "url-set-query": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/url-set-query/-/url-set-query-1.0.0.tgz", + "integrity": "sha1-AW6M/Xwg7gXK/neV6JK9BwL6ozk=" + }, + "use-subscription": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/use-subscription/-/use-subscription-1.5.1.tgz", + "integrity": "sha512-Xv2a1P/yReAjAbhylMfFplFKj9GssgTwN7RlcTxBujFQcloStWNDQdc4g4NRWH9xS4i/FDk04vQBptAXoF3VcA==", + "requires": { + "object-assign": "^4.1.1" + } + }, + "utf8": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/utf8/-/utf8-3.0.0.tgz", + "integrity": "sha512-E8VjFIQ/TyQgp+TZfS6l8yp/xWppSAHzidGiRrqe4bK4XP9pTRyKFgGJpO3SN7zdX4DeomTrwaseCHovfpFcqQ==" + }, + "util": { + "version": "0.12.3", + "resolved": "https://registry.npmjs.org/util/-/util-0.12.3.tgz", + "integrity": "sha512-I8XkoQwE+fPQEhy9v012V+TSdH2kp9ts29i20TaaDUXsg7x/onePbhFJUExBfv/2ay1ZOp/Vsm3nDlmnFGSAog==", + "requires": { + "inherits": "^2.0.3", + "is-arguments": "^1.0.4", + "is-generator-function": "^1.0.7", + "is-typed-array": "^1.1.3", + "safe-buffer": "^5.1.2", + "which-typed-array": "^1.1.2" + } + }, + "util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" + }, + "utils-merge": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", + "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=", + "dev": true + }, + "vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=", + "dev": true + }, + "vm-browserify": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-1.1.2.tgz", + "integrity": "sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ==" + }, + "watchpack": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.1.1.tgz", + "integrity": "sha512-Oo7LXCmc1eE1AjyuSBmtC3+Wy4HcV8PxWh2kP6fOl8yTlNS7r0K9l1ao2lrrUza7V39Y3D/BbJgY8VeSlc5JKw==", + "requires": { + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.1.2" + } + }, + "web3-utils": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.4.0.tgz", + "integrity": "sha512-b8mEhwh/J928Xk+SQFjtqrR2EGPhpknWLcIt9aCpVPVRXiqjUGo/kpOHKz0azu9c6/onEJ9tWXZt0cVjmH0N5Q==", + "requires": { + "bn.js": "^4.11.9", + "eth-lib": "0.2.8", + "ethereum-bloom-filters": "^1.0.6", + "ethjs-unit": "0.1.6", + "number-to-bn": "1.7.0", + "randombytes": "^2.1.0", + "underscore": "1.12.1", + "utf8": "3.0.0" + }, + "dependencies": { + "bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" + } + } + }, + "webidl-conversions": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-4.0.2.tgz", + "integrity": "sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==" + }, + "webpack-bundle-analyzer": { + "version": "3.6.1", + "resolved": "https://registry.npmjs.org/webpack-bundle-analyzer/-/webpack-bundle-analyzer-3.6.1.tgz", + "integrity": "sha512-Nfd8HDwfSx1xBwC+P8QMGvHAOITxNBSvu/J/mCJvOwv+G4VWkU7zir9SSenTtyCi0LnVtmsc7G5SZo1uV+bxRw==", + "dev": true, + "requires": { + "acorn": "^7.1.1", + "acorn-walk": "^7.1.1", + "bfj": "^6.1.1", + "chalk": "^2.4.1", + "commander": "^2.18.0", + "ejs": "^2.6.1", + "express": "^4.16.3", + "filesize": "^3.6.1", + "gzip-size": "^5.0.0", + "lodash": "^4.17.15", + "mkdirp": "^0.5.1", + "opener": "^1.5.1", + "ws": "^6.0.0" + } + }, + "webpack-sources": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.4.3.tgz", + "integrity": "sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ==", + "dev": true, + "requires": { + "source-list-map": "^2.0.0", + "source-map": "~0.6.1" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } + } + }, + "whatwg-url": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-7.1.0.tgz", + "integrity": "sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg==", + "requires": { + "lodash.sortby": "^4.7.0", + "tr46": "^1.0.1", + "webidl-conversions": "^4.0.2" + } + }, + "which-boxed-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", + "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", + "requires": { + "is-bigint": "^1.0.1", + "is-boolean-object": "^1.1.0", + "is-number-object": "^1.0.4", + "is-string": "^1.0.5", + "is-symbol": "^1.0.3" + } + }, + "which-typed-array": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.4.tgz", + "integrity": "sha512-49E0SpUe90cjpoc7BOJwyPHRqSAd12c10Qm2amdEZrJPCY2NDxaW01zHITrem+rnETY3dwrbH3UUrUwagfCYDA==", + "requires": { + "available-typed-arrays": "^1.0.2", + "call-bind": "^1.0.0", + "es-abstract": "^1.18.0-next.1", + "foreach": "^2.0.5", + "function-bind": "^1.1.1", + "has-symbols": "^1.0.1", + "is-typed-array": "^1.1.3" + } + }, + "workbox-background-sync": { + "version": "5.1.4", + "resolved": "https://registry.npmjs.org/workbox-background-sync/-/workbox-background-sync-5.1.4.tgz", + "integrity": "sha512-AH6x5pYq4vwQvfRDWH+vfOePfPIYQ00nCEB7dJRU1e0n9+9HMRyvI63FlDvtFT2AvXVRsXvUt7DNMEToyJLpSA==", + "dev": true, + "requires": { + "workbox-core": "^5.1.4" + } + }, + "workbox-broadcast-update": { + "version": "5.1.4", + "resolved": "https://registry.npmjs.org/workbox-broadcast-update/-/workbox-broadcast-update-5.1.4.tgz", + "integrity": "sha512-HTyTWkqXvHRuqY73XrwvXPud/FN6x3ROzkfFPsRjtw/kGZuZkPzfeH531qdUGfhtwjmtO/ZzXcWErqVzJNdXaA==", + "dev": true, + "requires": { + "workbox-core": "^5.1.4" + } + }, + "workbox-build": { + "version": "5.1.4", + "resolved": "https://registry.npmjs.org/workbox-build/-/workbox-build-5.1.4.tgz", + "integrity": "sha512-xUcZn6SYU8usjOlfLb9Y2/f86Gdo+fy1fXgH8tJHjxgpo53VVsqRX0lUDw8/JuyzNmXuo8vXX14pXX2oIm9Bow==", + "dev": true, + "requires": { + "@babel/core": "^7.8.4", + "@babel/preset-env": "^7.8.4", + "@babel/runtime": "^7.8.4", + "@hapi/joi": "^15.1.0", + "@rollup/plugin-node-resolve": "^7.1.1", + "@rollup/plugin-replace": "^2.3.1", + "@surma/rollup-plugin-off-main-thread": "^1.1.1", + "common-tags": "^1.8.0", + "fast-json-stable-stringify": "^2.1.0", + "fs-extra": "^8.1.0", + "glob": "^7.1.6", + "lodash.template": "^4.5.0", + "pretty-bytes": "^5.3.0", + "rollup": "^1.31.1", + "rollup-plugin-babel": "^4.3.3", + "rollup-plugin-terser": "^5.3.1", + "source-map": "^0.7.3", + "source-map-url": "^0.4.0", + "stringify-object": "^3.3.0", + "strip-comments": "^1.0.2", + "tempy": "^0.3.0", + "upath": "^1.2.0", + "workbox-background-sync": "^5.1.4", + "workbox-broadcast-update": "^5.1.4", + "workbox-cacheable-response": "^5.1.4", + "workbox-core": "^5.1.4", + "workbox-expiration": "^5.1.4", + "workbox-google-analytics": "^5.1.4", + "workbox-navigation-preload": "^5.1.4", + "workbox-precaching": "^5.1.4", + "workbox-range-requests": "^5.1.4", + "workbox-routing": "^5.1.4", + "workbox-strategies": "^5.1.4", + "workbox-streams": "^5.1.4", + "workbox-sw": "^5.1.4", + "workbox-window": "^5.1.4" + }, + "dependencies": { + "source-map": { + "version": "0.7.3", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", + "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==", + "dev": true + } + } + }, + "workbox-cacheable-response": { + "version": "5.1.4", + "resolved": "https://registry.npmjs.org/workbox-cacheable-response/-/workbox-cacheable-response-5.1.4.tgz", + "integrity": "sha512-0bfvMZs0Of1S5cdswfQK0BXt6ulU5kVD4lwer2CeI+03czHprXR3V4Y8lPTooamn7eHP8Iywi5QjyAMjw0qauA==", + "dev": true, + "requires": { + "workbox-core": "^5.1.4" + } + }, + "workbox-core": { + "version": "5.1.4", + "resolved": "https://registry.npmjs.org/workbox-core/-/workbox-core-5.1.4.tgz", + "integrity": "sha512-+4iRQan/1D8I81nR2L5vcbaaFskZC2CL17TLbvWVzQ4qiF/ytOGF6XeV54pVxAvKUtkLANhk8TyIUMtiMw2oDg==", + "dev": true + }, + "workbox-expiration": { + "version": "5.1.4", + "resolved": "https://registry.npmjs.org/workbox-expiration/-/workbox-expiration-5.1.4.tgz", + "integrity": "sha512-oDO/5iC65h2Eq7jctAv858W2+CeRW5e0jZBMNRXpzp0ZPvuT6GblUiHnAsC5W5lANs1QS9atVOm4ifrBiYY7AQ==", + "dev": true, + "requires": { + "workbox-core": "^5.1.4" + } + }, + "workbox-google-analytics": { + "version": "5.1.4", + "resolved": "https://registry.npmjs.org/workbox-google-analytics/-/workbox-google-analytics-5.1.4.tgz", + "integrity": "sha512-0IFhKoEVrreHpKgcOoddV+oIaVXBFKXUzJVBI+nb0bxmcwYuZMdteBTp8AEDJacENtc9xbR0wa9RDCnYsCDLjA==", + "dev": true, + "requires": { + "workbox-background-sync": "^5.1.4", + "workbox-core": "^5.1.4", + "workbox-routing": "^5.1.4", + "workbox-strategies": "^5.1.4" + } + }, + "workbox-navigation-preload": { + "version": "5.1.4", + "resolved": "https://registry.npmjs.org/workbox-navigation-preload/-/workbox-navigation-preload-5.1.4.tgz", + "integrity": "sha512-Wf03osvK0wTflAfKXba//QmWC5BIaIZARU03JIhAEO2wSB2BDROWI8Q/zmianf54kdV7e1eLaIEZhth4K4MyfQ==", + "dev": true, + "requires": { + "workbox-core": "^5.1.4" + } + }, + "workbox-precaching": { + "version": "5.1.4", + "resolved": "https://registry.npmjs.org/workbox-precaching/-/workbox-precaching-5.1.4.tgz", + "integrity": "sha512-gCIFrBXmVQLFwvAzuGLCmkUYGVhBb7D1k/IL7pUJUO5xacjLcFUaLnnsoVepBGAiKw34HU1y/YuqvTKim9qAZA==", + "dev": true, + "requires": { + "workbox-core": "^5.1.4" + } + }, + "workbox-range-requests": { + "version": "5.1.4", + "resolved": "https://registry.npmjs.org/workbox-range-requests/-/workbox-range-requests-5.1.4.tgz", + "integrity": "sha512-1HSujLjgTeoxHrMR2muDW2dKdxqCGMc1KbeyGcmjZZAizJTFwu7CWLDmLv6O1ceWYrhfuLFJO+umYMddk2XMhw==", + "dev": true, + "requires": { + "workbox-core": "^5.1.4" + } + }, + "workbox-routing": { + "version": "5.1.4", + "resolved": "https://registry.npmjs.org/workbox-routing/-/workbox-routing-5.1.4.tgz", + "integrity": "sha512-8ljknRfqE1vEQtnMtzfksL+UXO822jJlHTIR7+BtJuxQ17+WPZfsHqvk1ynR/v0EHik4x2+826Hkwpgh4GKDCw==", + "dev": true, + "requires": { + "workbox-core": "^5.1.4" + } + }, + "workbox-strategies": { + "version": "5.1.4", + "resolved": "https://registry.npmjs.org/workbox-strategies/-/workbox-strategies-5.1.4.tgz", + "integrity": "sha512-VVS57LpaJTdjW3RgZvPwX0NlhNmscR7OQ9bP+N/34cYMDzXLyA6kqWffP6QKXSkca1OFo/v6v7hW7zrrguo6EA==", + "dev": true, + "requires": { + "workbox-core": "^5.1.4", + "workbox-routing": "^5.1.4" + } + }, + "workbox-streams": { + "version": "5.1.4", + "resolved": "https://registry.npmjs.org/workbox-streams/-/workbox-streams-5.1.4.tgz", + "integrity": "sha512-xU8yuF1hI/XcVhJUAfbQLa1guQUhdLMPQJkdT0kn6HP5CwiPOGiXnSFq80rAG4b1kJUChQQIGPrq439FQUNVrw==", + "dev": true, + "requires": { + "workbox-core": "^5.1.4", + "workbox-routing": "^5.1.4" + } + }, + "workbox-sw": { + "version": "5.1.4", + "resolved": "https://registry.npmjs.org/workbox-sw/-/workbox-sw-5.1.4.tgz", + "integrity": "sha512-9xKnKw95aXwSNc8kk8gki4HU0g0W6KXu+xks7wFuC7h0sembFnTrKtckqZxbSod41TDaGh+gWUA5IRXrL0ECRA==", + "dev": true + }, + "workbox-webpack-plugin": { + "version": "5.1.4", + "resolved": "https://registry.npmjs.org/workbox-webpack-plugin/-/workbox-webpack-plugin-5.1.4.tgz", + "integrity": "sha512-PZafF4HpugZndqISi3rZ4ZK4A4DxO8rAqt2FwRptgsDx7NF8TVKP86/huHquUsRjMGQllsNdn4FNl8CD/UvKmQ==", + "dev": true, + "requires": { + "@babel/runtime": "^7.5.5", + "fast-json-stable-stringify": "^2.0.0", + "source-map-url": "^0.4.0", + "upath": "^1.1.2", + "webpack-sources": "^1.3.0", + "workbox-build": "^5.1.4" + } + }, + "workbox-window": { + "version": "5.1.4", + "resolved": "https://registry.npmjs.org/workbox-window/-/workbox-window-5.1.4.tgz", + "integrity": "sha512-vXQtgTeMCUq/4pBWMfQX8Ee7N2wVC4Q7XYFqLnfbXJ2hqew/cU1uMTD2KqGEgEpE4/30luxIxgE+LkIa8glBYw==", + "dev": true, + "requires": { + "workbox-core": "^5.1.4" + } + }, + "wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "requires": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + } + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" + }, + "ws": { + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/ws/-/ws-6.2.2.tgz", + "integrity": "sha512-zmhltoSR8u1cnDsD43TX59mzoMZsLKqUweyYBAIvTngR3shc0W6aOZylZmq/7hqyVxPdi+5Ud2QInblgyE72fw==", + "dev": true, + "requires": { + "async-limiter": "~1.0.0" + } + }, + "xhr": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/xhr/-/xhr-2.6.0.tgz", + "integrity": "sha512-/eCGLb5rxjx5e3mF1A7s+pLlR6CGyqWN91fv1JgER5mVWg1MZmlhBvy9kjcsOdRk8RrIujotWyJamfyrp+WIcA==", + "requires": { + "global": "~4.4.0", + "is-function": "^1.0.1", + "parse-headers": "^2.0.0", + "xtend": "^4.0.0" + } + }, + "xhr-request": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/xhr-request/-/xhr-request-1.1.0.tgz", + "integrity": "sha512-Y7qzEaR3FDtL3fP30k9wO/e+FBnBByZeybKOhASsGP30NIkRAAkKD/sCnLvgEfAIEC1rcmK7YG8f4oEnIrrWzA==", + "requires": { + "buffer-to-arraybuffer": "^0.0.5", + "object-assign": "^4.1.1", + "query-string": "^5.0.1", + "simple-get": "^2.7.0", + "timed-out": "^4.0.1", + "url-set-query": "^1.0.0", + "xhr": "^2.0.4" + } + }, + "xhr-request-promise": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/xhr-request-promise/-/xhr-request-promise-0.1.3.tgz", + "integrity": "sha512-YUBytBsuwgitWtdRzXDDkWAXzhdGB8bYm0sSzMPZT7Z2MBjMSTHFsyCT1yCRATY+XC69DUrQraRAEgcoCRaIPg==", + "requires": { + "xhr-request": "^1.1.0" + } + }, + "xtend": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", + "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==" + }, + "y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==" + }, + "yargs": { + "version": "16.2.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", + "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", + "requires": { + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.0", + "y18n": "^5.0.5", + "yargs-parser": "^20.2.2" + } + }, + "yargs-parser": { + "version": "20.2.9", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", + "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==" + }, + "yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==" + }, + "zen-observable": { + "version": "0.8.15", + "resolved": "https://registry.npmjs.org/zen-observable/-/zen-observable-0.8.15.tgz", + "integrity": "sha512-PQ2PC7R9rslx84ndNBZB/Dkv8V8fZEpk83RLgXtYd0fwUgEjseMn1Dgajh2x6S8QbZAFa9p2qVCEuYZNgve0dQ==" + } + } +} diff --git a/src/core/api/exchange.js b/src/core/api/exchange.js index cf1c70b..84b3a61 100644 --- a/src/core/api/exchange.js +++ b/src/core/api/exchange.js @@ -57,7 +57,7 @@ export async function getFactory(client = getApollo()) { } export async function getSushiToken(client = getApollo()) { - return await getToken("0x6b3595068778dd592e39a122f4f5a5cf09c90fe2", client); + return await getToken("0xd514244ed479a2050c44b448ec681faadd8c7429", client); } export async function getDayData(client = getApollo()) { diff --git a/src/core/api/masterchef.js b/src/core/api/masterchef.js index 17ae6d5..eb082f4 100644 --- a/src/core/api/masterchef.js +++ b/src/core/api/masterchef.js @@ -155,17 +155,17 @@ export async function getPools(client = getApollo()) { const ethPrice = bundles[0].ethPrice; const { token } = await getToken( - "0x6b3595068778dd592e39a122f4f5a5cf09c90fe2" + "0xd514244ed479a2050c44b448ec681faadd8c7429" ); - const sushiPrice = ethPrice * token.derivedETH; + const bonePrice = ethPrice * token.derivedETH; // MASTERCHEF const { data: { liquidityPositions }, } = await client.query({ query: liquidityPositionSubsetQuery, - variables: { user: "0xc2edad668740f1aa35e4d8f227fb8e17dca888cd" }, + variables: { user: "0xa897676603c7ad3e6037a11b5294dd5b3b54ad71" }, }); await client.cache.writeQuery({ @@ -176,7 +176,7 @@ export async function getPools(client = getApollo()) { (pool) => !POOL_DENY.includes(pool.id) && pool.allocPoint !== "0" && - pool.accSushiPerShare !== "0" && + pool.accBonePerShare !== "0" && pairs.find((pair) => pair?.id === pool.pair) ) .map((pool) => { @@ -205,11 +205,11 @@ export async function getPools(client = getApollo()) { const rewardPerBlock = ((pool.allocPoint / pool.owner.totalAllocPoint) * - pool.owner.sushiPerBlock) / + pool.owner.bonePerBlock) / 1e18; - const roiPerBlock = (rewardPerBlock * sushiPrice) / balanceUSD; + const roiPerBlock = (rewardPerBlock * bonePrice) / balanceUSD; const roiPerHour = roiPerBlock * blocksPerHour; @@ -227,7 +227,7 @@ export async function getPools(client = getApollo()) { roiPerDay, roiPerMonth, roiPerYear, - rewardPerThousand: 1 * roiPerDay * (1000 / sushiPrice), + rewardPerThousand: 1 * roiPerDay * (1000 / bonePrice), tvl: (pair.reserveUSD / pair.totalSupply) * liquidityPosition.liquidityTokenBalance, diff --git a/src/core/apollo/link.js b/src/core/apollo/link.js index 3603044..6d0151e 100644 --- a/src/core/apollo/link.js +++ b/src/core/apollo/link.js @@ -21,7 +21,7 @@ export const bar = from([ export const masterchef = from([ new RetryLink(), new HttpLink({ - uri: "https://api.thegraph.com/subgraphs/name/sushiswap/master-chef", + uri: "https://api.thegraph.com/subgraphs/name/shibaswaparmy/topdog", shouldBatch: true, }), ]); diff --git a/src/core/constants.js b/src/core/constants.js index df30c7b..2e171c0 100644 --- a/src/core/constants.js +++ b/src/core/constants.js @@ -11,10 +11,10 @@ export const EXCHANGE_CREATED_TIMESTAMP = 1599214239; export const POOL_DENY = ["14", "29", "45", "30"]; -export const SUSHI_TOKEN = "0x6b3595068778dd592e39a122f4f5a5cf09c90fe2"; +export const BONE_TOKEN = "0xd514244ed479a2050c44b448ec681faadd8c7429"; export const BURY_SHIB_ADDRESS = ""; export const BURY_LEASH_ADDRESS = ""; export const BURY_BONE_ADDRESS = ""; -export const TOPDOG_ADDRESS = ""; +export const TOPDOG_ADDRESS = "0xa897676603c7ad3e6037a11b5294dd5b3b54ad71"; diff --git a/src/core/queries/masterchef.js b/src/core/queries/masterchef.js index fd5e988..018781d 100644 --- a/src/core/queries/masterchef.js +++ b/src/core/queries/masterchef.js @@ -13,7 +13,7 @@ export const lockupUserQuery = gql` totalAllocPoint } balance - accSushiPerShare + accBonePerShare } } } @@ -27,15 +27,15 @@ const poolUserFragment = gql` id pair balance - accSushiPerShare + accBonePerShare lastRewardBlock } amount rewardDebt entryUSD exitUSD - sushiHarvested - sushiHarvestedUSD + boneHarvested + boneHarvestedUSD } `; @@ -54,7 +54,7 @@ export const poolHistoryQuery = gql` id pool { id - accSushiPerShare + accBonePerShare } slpBalance slpAge @@ -63,7 +63,7 @@ export const poolHistoryQuery = gql` slpWithdrawn entryUSD exitUSD - sushiHarvestedUSD + boneHarvestedUSD userCount timestamp block @@ -78,12 +78,12 @@ export const poolQuery = gql` pair allocPoint lastRewardBlock - accSushiPerShare + accBonePerShare balance userCount owner { id - sushiPerBlock + bonePerBlock totalAllocPoint } users(orderBy: amount, orderDirection: desc) { @@ -136,12 +136,12 @@ export const poolsQuery = gql` pair allocPoint lastRewardBlock - accSushiPerShare + accBonePerShare balance userCount owner { id - sushiPerBlock + bonePerBlock totalAllocPoint } liquidityPair @client diff --git a/src/pages/bar/index.js b/src/pages/bar/index.js index 62f6d2a..af80dd3 100644 --- a/src/pages/bar/index.js +++ b/src/pages/bar/index.js @@ -65,7 +65,7 @@ function BarPage() { data: { token }, } = useQuery(tokenQuery, { variables: { - id: "0x6b3595068778dd592e39a122f4f5a5cf09c90fe2", + id: "0xd514244ed479a2050c44b448ec681faadd8c7429", }, }); diff --git a/src/pages/bury-shib/index.js b/src/pages/bury-shib/index.js index cab8b24..b3f07d1 100644 --- a/src/pages/bury-shib/index.js +++ b/src/pages/bury-shib/index.js @@ -66,7 +66,7 @@ function BuryShibPage() { data: { token }, } = useQuery(tokenQuery, { variables: { - id: "0x6b3595068778dd592e39a122f4f5a5cf09c90fe2", + id: "0xd514244ed479a2050c44b448ec681faadd8c7429", }, }); diff --git a/src/pages/pools/[id].js b/src/pages/pools/[id].js index abc8bbb..7172a1b 100644 --- a/src/pages/pools/[id].js +++ b/src/pages/pools/[id].js @@ -87,7 +87,7 @@ function PoolPage() { data: { token }, } = useQuery(tokenQuery, { variables: { - id: "0x6b3595068778dd592e39a122f4f5a5cf09c90fe2", + id: "0xd514244ed479a2050c44b448ec681faadd8c7429", }, }); @@ -172,7 +172,7 @@ function PoolPage() { return ( - Pool {id} | SushiSwap Analytics + Pool {id} | ShibaSwap Analytics @@ -249,7 +249,7 @@ function PoolPage() { )} /> */} - {/* + {/* - Pools | SushiSwap Analytics + Pools | ShibaSwap Analytics - Recently Added Pools | SushiSwap Analytics + Recently Added Pools | ShibaSwap Analytics { return ( previousValue + - ((currentValue.amount * currentValue.pool.accSushiPerShare) / 1e12 - + ((currentValue.amount * currentValue.pool.accBonePerShare) / 1e12 - currentValue.rewardDebt) / 1e18 ); @@ -314,11 +314,11 @@ function UserPage() { imgProps={{ loading: "lazy" }} alt="SUSHI" src={`https://raw.githubusercontent.com/trustwallet/assets/master/blockchains/ethereum/assets/${toChecksumAddress( - "0x6b3595068778dd592e39a122f4f5a5cf09c90fe2" + "0xd514244ed479a2050c44b448ec681faadd8c7429" )}/logo.png`} /> @@ -465,10 +465,10 @@ function UserPage() { const token1 = pair.reserve1 * share; const pendingSushi = - ((user.amount * user.pool.accSushiPerShare) / 1e12 - + ((user.amount * user.pool.accBonePerShare) / 1e12 - user.rewardDebt) / 1e18; - // user.amount.mul(accSushiPerShare).div(1e12).sub(user.rewardDebt); + // user.amount.mul(accBonePerShare).div(1e12).sub(user.rewardDebt); // console.log( // user, From bee223f0ccfa77eb8011cc1028596f8cc4ae5bc8 Mon Sep 17 00:00:00 2001 From: devVasuki Date: Thu, 8 Jul 2021 23:49:36 +0530 Subject: [PATCH 03/34] updated analytics for mainnet --- src/core/api/exchange.js | 2 +- src/core/api/masterchef.js | 4 ++-- src/core/apollo/link.js | 2 +- src/core/constants.js | 4 ++-- src/core/queries/exchange.js | 4 ++-- src/pages/bar/index.js | 2 +- src/pages/bury-shib/index.js | 2 +- src/pages/pools/[id].js | 2 +- src/pages/users/[id].js | 6 +++--- 9 files changed, 14 insertions(+), 14 deletions(-) diff --git a/src/core/api/exchange.js b/src/core/api/exchange.js index 84b3a61..614ed20 100644 --- a/src/core/api/exchange.js +++ b/src/core/api/exchange.js @@ -57,7 +57,7 @@ export async function getFactory(client = getApollo()) { } export async function getSushiToken(client = getApollo()) { - return await getToken("0xd514244ed479a2050c44b448ec681faadd8c7429", client); + return await getToken("0x9813037ee2218799597d83d4a5b6f3b6778218d9", client); } export async function getDayData(client = getApollo()) { diff --git a/src/core/api/masterchef.js b/src/core/api/masterchef.js index eb082f4..fb65f9f 100644 --- a/src/core/api/masterchef.js +++ b/src/core/api/masterchef.js @@ -155,7 +155,7 @@ export async function getPools(client = getApollo()) { const ethPrice = bundles[0].ethPrice; const { token } = await getToken( - "0xd514244ed479a2050c44b448ec681faadd8c7429" + "0x9813037ee2218799597d83d4a5b6f3b6778218d9" ); const bonePrice = ethPrice * token.derivedETH; @@ -165,7 +165,7 @@ export async function getPools(client = getApollo()) { data: { liquidityPositions }, } = await client.query({ query: liquidityPositionSubsetQuery, - variables: { user: "0xa897676603c7ad3e6037a11b5294dd5b3b54ad71" }, + variables: { user: "0x94235659cf8b805b2c658f9ea2d6d6ddbb17c8d7" }, }); await client.cache.writeQuery({ diff --git a/src/core/apollo/link.js b/src/core/apollo/link.js index 6d0151e..97451fa 100644 --- a/src/core/apollo/link.js +++ b/src/core/apollo/link.js @@ -29,7 +29,7 @@ export const masterchef = from([ export const exchange = from([ new RetryLink(), new HttpLink({ - uri: "https://api.thegraph.com/subgraphs/name/sushiswap/exchange", + uri: "https://api.thegraph.com/subgraphs/name/shibaswaparmy/exchange", shouldBatch: true, }), ]); diff --git a/src/core/constants.js b/src/core/constants.js index 2e171c0..3701438 100644 --- a/src/core/constants.js +++ b/src/core/constants.js @@ -11,10 +11,10 @@ export const EXCHANGE_CREATED_TIMESTAMP = 1599214239; export const POOL_DENY = ["14", "29", "45", "30"]; -export const BONE_TOKEN = "0xd514244ed479a2050c44b448ec681faadd8c7429"; +export const BONE_TOKEN = "0x9813037ee2218799597d83d4a5b6f3b6778218d9"; export const BURY_SHIB_ADDRESS = ""; export const BURY_LEASH_ADDRESS = ""; export const BURY_BONE_ADDRESS = ""; -export const TOPDOG_ADDRESS = "0xa897676603c7ad3e6037a11b5294dd5b3b54ad71"; +export const TOPDOG_ADDRESS = "0x94235659cf8b805b2c658f9ea2d6d6ddbb17c8d7"; diff --git a/src/core/queries/exchange.js b/src/core/queries/exchange.js index dac1b7d..4caf6f5 100644 --- a/src/core/queries/exchange.js +++ b/src/core/queries/exchange.js @@ -2,7 +2,7 @@ import gql from "graphql-tag"; export const factoryQuery = gql` query factoryQuery( - $id: String! = "0xc0aee478e3658e2610c5f7a4a2e1777ce9e4f2ac" + $id: String! = "0x115934131916c8b277dd010ee02de363c09d037c" ) { factory(id: $id) { id @@ -15,7 +15,7 @@ export const factoryQuery = gql` export const factoryTimeTravelQuery = gql` query factoryTimeTravelQuery( - $id: String! = "0xc0aee478e3658e2610c5f7a4a2e1777ce9e4f2ac" + $id: String! = "0x115934131916c8b277dd010ee02de363c09d037c" $block: Block_height! ) { factory(id: $id, block: $block) { diff --git a/src/pages/bar/index.js b/src/pages/bar/index.js index af80dd3..bcee8c1 100644 --- a/src/pages/bar/index.js +++ b/src/pages/bar/index.js @@ -65,7 +65,7 @@ function BarPage() { data: { token }, } = useQuery(tokenQuery, { variables: { - id: "0xd514244ed479a2050c44b448ec681faadd8c7429", + id: "0x9813037ee2218799597d83d4a5b6f3b6778218d9", }, }); diff --git a/src/pages/bury-shib/index.js b/src/pages/bury-shib/index.js index b3f07d1..25fc6c4 100644 --- a/src/pages/bury-shib/index.js +++ b/src/pages/bury-shib/index.js @@ -66,7 +66,7 @@ function BuryShibPage() { data: { token }, } = useQuery(tokenQuery, { variables: { - id: "0xd514244ed479a2050c44b448ec681faadd8c7429", + id: "0x9813037ee2218799597d83d4a5b6f3b6778218d9", }, }); diff --git a/src/pages/pools/[id].js b/src/pages/pools/[id].js index 7172a1b..ff29bf9 100644 --- a/src/pages/pools/[id].js +++ b/src/pages/pools/[id].js @@ -87,7 +87,7 @@ function PoolPage() { data: { token }, } = useQuery(tokenQuery, { variables: { - id: "0xd514244ed479a2050c44b448ec681faadd8c7429", + id: "0x9813037ee2218799597d83d4a5b6f3b6778218d9", }, }); diff --git a/src/pages/users/[id].js b/src/pages/users/[id].js index 43e5223..53c364f 100644 --- a/src/pages/users/[id].js +++ b/src/pages/users/[id].js @@ -99,7 +99,7 @@ function UserPage() { data: { token }, } = useQuery(tokenQuery, { variables: { - id: "0xd514244ed479a2050c44b448ec681faadd8c7429", + id: "0x9813037ee2218799597d83d4a5b6f3b6778218d9", }, }); @@ -314,11 +314,11 @@ function UserPage() { imgProps={{ loading: "lazy" }} alt="SUSHI" src={`https://raw.githubusercontent.com/trustwallet/assets/master/blockchains/ethereum/assets/${toChecksumAddress( - "0xd514244ed479a2050c44b448ec681faadd8c7429" + "0x9813037ee2218799597d83D4a5B6F3b6778218d9" )}/logo.png`} /> From 3bcde661a3c257a0faf3fd1cbbaeff2e601f9312 Mon Sep 17 00:00:00 2001 From: kaal Date: Fri, 9 Jul 2021 01:37:24 -0400 Subject: [PATCH 04/34] Bury changes --- src/core/api/exchange.js | 12 ++++++ src/core/apollo/link.js | 71 +++++++++++++++++++--------------- src/core/queries/bury-bone.js | 4 +- src/core/queries/bury-leash.js | 4 +- src/core/queries/bury-shib.js | 4 +- src/pages/bury-shib/index.js | 29 +++++++------- 6 files changed, 73 insertions(+), 51 deletions(-) diff --git a/src/core/api/exchange.js b/src/core/api/exchange.js index cf1c70b..11c8c82 100644 --- a/src/core/api/exchange.js +++ b/src/core/api/exchange.js @@ -60,6 +60,18 @@ export async function getSushiToken(client = getApollo()) { return await getToken("0x6b3595068778dd592e39a122f4f5a5cf09c90fe2", client); } +export async function getShibToken(client = getApollo()) { + return await getToken("0x95ad61b0a150d79219dcf64e1e6cc01f0b64c4ce", client); +} + +export async function getBoneToken(client = getApollo()) { + return await getToken("0x9813037ee2218799597d83d4a5b6f3b6778218d9", client); +} + +export async function getLeashToken(client = getApollo()) { + return await getToken("0x27c70cd1946795b66be9d954418546998b546634", client); +} + export async function getDayData(client = getApollo()) { const { data } = await client.query({ query: dayDatasQuery, diff --git a/src/core/apollo/link.js b/src/core/apollo/link.js index 3603044..ff3444a 100644 --- a/src/core/apollo/link.js +++ b/src/core/apollo/link.js @@ -50,37 +50,11 @@ export const lockup = from([ }), ]); -export default split( - (operation) => { - return operation.getContext().clientName === "blocklytics"; - }, - blocklytics, - split( - (operation) => { - return operation.getContext().clientName === "masterchef"; - }, - masterchef, - split( - (operation) => { - return operation.getContext().clientName === "bar"; - }, - bar, - split( - (operation) => { - return operation.getContext().clientName === "lockup"; - }, - lockup, - exchange - ) - ) - ) -); - export const buryShib = from([ new RetryLink(), new HttpLink({ - uri: "https://api.thegraph.com/subgraphs/name/kaaldhairya/buryshibkovanv7", + uri: "https://api.thegraph.com/subgraphs/name/shibaswaparmy/buryshib", shouldBatch: true, }), ]); @@ -88,7 +62,7 @@ export const buryShib = from([ export const buryLeash = from([ new RetryLink(), new HttpLink({ - uri: "https://api.thegraph.com/subgraphs/name/kaaldhairya/buryleashkv1", + uri: "https://api.thegraph.com/subgraphs/name/shibaswaparmy/buryleas", shouldBatch: true, }), ]); @@ -97,7 +71,7 @@ export const buryLeash = from([ export const buryBone = from([ new RetryLink(), new HttpLink({ - uri: "https://api.thegraph.com/subgraphs/name/kaaldhairya/burybonekv1", + uri: "https://api.thegraph.com/subgraphs/name/shibaswaparmy/burybone", shouldBatch: true, }), ]); @@ -105,7 +79,7 @@ export const buryBone = from([ export const topDog = from([ new RetryLink(), new HttpLink({ - uri: "https://api.thegraph.com/subgraphs/name/kaaldhairya/topdogkovanv4", + uri: "https://api.thegraph.com/subgraphs/name/shibaswaparmy/topdog", shouldBatch: true, }), ]); @@ -113,7 +87,42 @@ export const topDog = from([ export const shibaSwapExchange = from([ new RetryLink(), new HttpLink({ - uri: "https://api.thegraph.com/subgraphs/name/shibaswap/exchange", + uri: "https://api.thegraph.com/subgraphs/name/shibaswaparmy/exchange", shouldBatch: true, }), ]); + + +export default split( + (operation) => { + return operation.getContext().clientName === "blocklytics"; + }, + blocklytics, + split( + (operation) => { + return operation.getContext().clientName === "masterchef"; + }, + masterchef, + split( + (operation) => { + return operation.getContext().clientName === "bar"; + }, + bar, + split( + (operation) => { + return operation.getContext().clientName === "lockup"; + }, + lockup, + split( + (operation) => { + return operation.getContext().clientName === "buryShib"; + }, + buryShib, + exchange + ), + ) + ) + ) +); + + diff --git a/src/core/queries/bury-bone.js b/src/core/queries/bury-bone.js index 793276c..9c69bd5 100644 --- a/src/core/queries/bury-bone.js +++ b/src/core/queries/bury-bone.js @@ -1,8 +1,8 @@ import gql from "graphql-tag"; export const buryBoneQuery = gql` - query buryBoneQuery($id: String! = "0xaFd395a2a95Cbd13721f8077fb6f55e14d48E554") { - buries(id: $id) { + query buryBoneQuery($id: String! = "0xf7a0383750fef5abace57cc4c9ff98e3790202b3") { + bury(id: $id) { id totalSupply ratio diff --git a/src/core/queries/bury-leash.js b/src/core/queries/bury-leash.js index ae9c31d..633bc8a 100644 --- a/src/core/queries/bury-leash.js +++ b/src/core/queries/bury-leash.js @@ -1,8 +1,8 @@ import gql from "graphql-tag"; export const buryLeashQuery = gql` - query buryLeashQuery($id: String! = "0xac05f1fE985541377D22a9F2fE7cE954175ebB5E") { - buries(id: $id) { + query buryLeashQuery($id: String! = "0xa57d319b3cf3ad0e4d19770f71e63cf847263a0b") { + bury(id: $id) { id totalSupply ratio diff --git a/src/core/queries/bury-shib.js b/src/core/queries/bury-shib.js index b43c288..bd4dacf 100644 --- a/src/core/queries/bury-shib.js +++ b/src/core/queries/bury-shib.js @@ -1,8 +1,8 @@ import gql from "graphql-tag"; export const buryShibQuery = gql` - query buryShibQuery($id: String! = "0xad7AC262cC107b7e72D775E5576319296a377e5d") { - buries(id: $id) { + query buryShibQuery($id: String! = "0xb4a81261b16b92af0b9f7c4a83f1e885132d81e4") { + bury(id: $id) { id totalSupply ratio diff --git a/src/pages/bury-shib/index.js b/src/pages/bury-shib/index.js index cab8b24..34c8eef 100644 --- a/src/pages/bury-shib/index.js +++ b/src/pages/bury-shib/index.js @@ -62,11 +62,12 @@ function BuryShibPage() { data: { factory }, } = useQuery(factoryQuery); + // TODO CHANGE const { data: { token }, } = useQuery(tokenQuery, { variables: { - id: "0x6b3595068778dd592e39a122f4f5a5cf09c90fe2", + id: "0x95ad61b0a150d79219dcf64e1e6cc01f0b64c4ce", }, }); @@ -78,7 +79,7 @@ function BuryShibPage() { data: { dayDatas }, } = useQuery(dayDatasQuery); - const sushiPrice = + const shibPrice = parseFloat(token?.derivedETH) * parseFloat(bundles[0].ethPrice); useInterval(async () => { @@ -93,8 +94,8 @@ function BuryShibPage() { }, 60000); const { - sushiStakedUSD, - sushiHarvestedUSD, + shibStakedUSD, + shibHarvestedUSD, xShibMinted, xShibBurned, xShib, @@ -105,13 +106,13 @@ function BuryShibPage() { (previousValue, currentValue) => { const date = currentValue.date * 1000; const dayData = dayDatas.find((d) => d.date === currentValue.date); - previousValue["sushiStakedUSD"].push({ + previousValue["shibStakedUSD"].push({ date, - value: parseFloat(currentValue.sushiStakedUSD), + value: parseFloat(currentValue.shibStakedUSD), }); - previousValue["sushiHarvestedUSD"].push({ + previousValue["shibHarvestedUSD"].push({ date, - value: parseFloat(currentValue.sushiHarvestedUSD), + value: parseFloat(currentValue.shibHarvestedUSD), }); previousValue["xShibMinted"].push({ @@ -129,7 +130,7 @@ function BuryShibPage() { const apr = (((dayData.volumeUSD * 0.05 * 0.01) / currentValue.xShibSupply) * 365) / - (currentValue.ratio * sushiPrice); + (currentValue.ratio * shibPrice); previousValue["apr"].push({ date, value: parseFloat(apr * 100), @@ -145,8 +146,8 @@ function BuryShibPage() { return previousValue; }, { - sushiStakedUSD: [], - sushiHarvestedUSD: [], + shibStakedUSD: [], + shibHarvestedUSD: [], xShibMinted: [], xShibBurned: [], xShib: [], @@ -165,7 +166,7 @@ function BuryShibPage() { const APR = (((oneDayVolume * 0.05 * 0.01) / buryShib.totalSupply) * 365) / - (buryShib.ratio * sushiPrice); + (buryShib.ratio * shibPrice); const APY = Math.pow(1 + APR / 365, 365) - 1; @@ -196,7 +197,7 @@ function BuryShibPage() { {/* */} @@ -289,7 +290,7 @@ function BuryShibPage() { From 2968829f3136c150c516c7193573b0c79f5f507e Mon Sep 17 00:00:00 2001 From: kaal Date: Fri, 9 Jul 2021 02:53:37 -0400 Subject: [PATCH 05/34] Bury changes --- src/components/PoolTable.js | 2 +- src/pages/bar/index.js | 2 +- src/pages/users/[id].js | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/components/PoolTable.js b/src/components/PoolTable.js index 48beab3..5aa9855 100644 --- a/src/components/PoolTable.js +++ b/src/components/PoolTable.js @@ -65,7 +65,7 @@ export default function PoolTable({ pools, ...rest }) { key: "rewardPerThousand", label: "Reward per $1000", render: (row) => - `${Number(row.rewardPerThousand).toFixed(2)} SUSHI per day`, + `${Number(row.rewardPerThousand).toFixed(2)} BONE per day`, }, { key: "roi", diff --git a/src/pages/bar/index.js b/src/pages/bar/index.js index bcee8c1..06c548e 100644 --- a/src/pages/bar/index.js +++ b/src/pages/bar/index.js @@ -290,7 +290,7 @@ function BarPage() { height={height} data={[sushiStakedUSD, sushiHarvestedUSD]} margin={{ top: 64, right: 32, bottom: 0, left: 64 }} - labels={["Sushi Staked (USD)", "Sushi Harvested (USD)"]} + labels={["Bone Staked (USD)", "Bone Harvested (USD)"]} /> )} diff --git a/src/pages/users/[id].js b/src/pages/users/[id].js index 53c364f..6ba0ea6 100644 --- a/src/pages/users/[id].js +++ b/src/pages/users/[id].js @@ -439,10 +439,10 @@ function UserPage() { Value - Sushi Pending + Bone Pending - Sushi Harvested + Bone Harvested Profit/Loss From 3df7fac20d7ff11ac5dcd7668317972f74f11879 Mon Sep 17 00:00:00 2001 From: kaal Date: Fri, 9 Jul 2021 12:52:01 -0400 Subject: [PATCH 06/34] Bury changes --- .env | 10 +- src/components/AppNavigation.js | 61 +++--- src/core/apollo/link.js | 2 +- src/pages/bar/index.js | 369 -------------------------------- src/pages/bury-shib/index.js | 18 +- 5 files changed, 39 insertions(+), 421 deletions(-) delete mode 100644 src/pages/bar/index.js diff --git a/.env b/.env index 724db31..81b91cb 100644 --- a/.env +++ b/.env @@ -1,5 +1,5 @@ -NEXT_PUBLIC_APP_NAME="SushiSwap Analytics" -NEXT_PUBLIC_APP_URL="https://analytics.sushi.com" -NEXT_PUBLIC_APP_DESCRIPTION="Analytics for the SushiSwap protocol" -NEXT_PUBLIC_APP_KEYWORDS="sushiswap, uniswap" -NEXT_PUBLIC_GA_ID="UA-191094689-2" \ No newline at end of file +NEXT_PUBLIC_APP_NAME="ShibaSwap Analytics" +NEXT_PUBLIC_APP_URL="https://analytics.shibaswap.com" +NEXT_PUBLIC_APP_DESCRIPTION="Analytics for the ShibaSwap protocol" +NEXT_PUBLIC_APP_KEYWORDS="shibaswap, uniswap" +NEXT_PUBLIC_GA_ID="" diff --git a/src/components/AppNavigation.js b/src/components/AppNavigation.js index f8fdb84..78284b6 100644 --- a/src/components/AppNavigation.js +++ b/src/components/AppNavigation.js @@ -123,19 +123,6 @@ export default function AppNavigation() {
- router.push("/bar")} - > - - - - - {/* {open ? : } */} - - - router.push("/bury-leash")} - > - - - - - {/* {open ? : } */} - + {/* router.push("/bury-leash")}*/} + {/*>*/} + {/* */} + {/* */} + {/* */} + {/* */} + {/* /!* {open ? : } *!/*/} + {/**/} - router.push("/bury-bone")} - > - - - - - {/* {open ? : } */} - + {/* router.push("/bury-bone")}*/} + {/*>*/} + {/* */} + {/* */} + {/* */} + {/* */} + {/* /!* {open ? : } *!/*/} + {/**/} {/* diff --git a/src/core/apollo/link.js b/src/core/apollo/link.js index 7df96d5..ce4f684 100644 --- a/src/core/apollo/link.js +++ b/src/core/apollo/link.js @@ -62,7 +62,7 @@ export const buryShib = from([ export const buryLeash = from([ new RetryLink(), new HttpLink({ - uri: "https://api.thegraph.com/subgraphs/name/shibaswaparmy/buryleas", + uri: "https://api.thegraph.com/subgraphs/name/shibaswaparmy/buryleash", shouldBatch: true, }), ]); diff --git a/src/pages/bar/index.js b/src/pages/bar/index.js deleted file mode 100644 index 06c548e..0000000 --- a/src/pages/bar/index.js +++ /dev/null @@ -1,369 +0,0 @@ -import { AppShell, Curves, KPI } from "app/components"; -import { Grid, Paper, useTheme } from "@material-ui/core"; -import { - barHistoriesQuery, - barQuery, - dayDatasQuery, - ethPriceQuery, - factoryQuery, - getApollo, - getBar, - getBarHistories, - getDayData, - getEthPrice, - getFactory, - getSushiToken, - tokenQuery, - useInterval, -} from "app/core"; - -import Chart from "../../components/Chart"; -import Head from "next/head"; -import { ParentSize } from "@visx/responsive"; -import React from "react"; -import { makeStyles } from "@material-ui/core/styles"; -import { useQuery } from "@apollo/client"; - -const useStyles = makeStyles((theme) => ({ - charts: { - flexGrow: 1, - marginBottom: theme.spacing(4), - }, - paper: { - padding: theme.spacing(2), - // textAlign: "center", - color: theme.palette.text.secondary, - }, -})); - -function BarPage() { - const classes = useStyles(); - - const theme = useTheme(); - - const { - data: { bar }, - } = useQuery(barQuery, { - context: { - clientName: "bar", - }, - }); - - const { - data: { histories }, - } = useQuery(barHistoriesQuery, { - context: { - clientName: "bar", - }, - }); - - const { - data: { factory }, - } = useQuery(factoryQuery); - - const { - data: { token }, - } = useQuery(tokenQuery, { - variables: { - id: "0x9813037ee2218799597d83d4a5b6f3b6778218d9", - }, - }); - - const { - data: { bundles }, - } = useQuery(ethPriceQuery); - - const { - data: { dayDatas }, - } = useQuery(dayDatasQuery); - - const sushiPrice = - parseFloat(token?.derivedETH) * parseFloat(bundles[0].ethPrice); - - useInterval(async () => { - await Promise.all([ - getBar, - getBarHistories, - getDayData, - getFactory, - getSushiToken, - getEthPrice, - ]); - }, 60000); - - const { - sushiStakedUSD, - sushiHarvestedUSD, - xSushiMinted, - xSushiBurned, - xSushi, - apr, - apy, - fees, - } = histories.reduce( - (previousValue, currentValue) => { - const date = currentValue.date * 1000; - const dayData = dayDatas.find((d) => d.date === currentValue.date); - previousValue["sushiStakedUSD"].push({ - date, - value: parseFloat(currentValue.sushiStakedUSD), - }); - previousValue["sushiHarvestedUSD"].push({ - date, - value: parseFloat(currentValue.sushiHarvestedUSD), - }); - - previousValue["xSushiMinted"].push({ - date, - value: parseFloat(currentValue.xSushiMinted), - }); - previousValue["xSushiBurned"].push({ - date, - value: parseFloat(currentValue.xSushiBurned), - }); - previousValue["xSushi"].push({ - date, - value: parseFloat(currentValue.xSushiSupply), - }); - const apr = - (((dayData.volumeUSD * 0.05 * 0.01) / currentValue.xSushiSupply) * - 365) / - (currentValue.ratio * sushiPrice); - previousValue["apr"].push({ - date, - value: parseFloat(apr * 100), - }); - previousValue["apy"].push({ - date, - value: parseFloat((Math.pow(1 + apr / 365, 365) - 1) * 100), - }); - previousValue["fees"].push({ - date, - value: parseFloat(dayData.volumeUSD * 0.005), - }); - return previousValue; - }, - { - sushiStakedUSD: [], - sushiHarvestedUSD: [], - xSushiMinted: [], - xSushiBurned: [], - xSushi: [], - apr: [], - apy: [], - fees: [], - } - ); - - const averageApy = - apy.reduce((previousValue, currentValue) => { - return previousValue + currentValue.value; - }, 0) / apy.length; - - const oneDayVolume = factory.volumeUSD - factory.oneDay.volumeUSD; - - const APR = - (((oneDayVolume * 0.05 * 0.01) / bar.totalSupply) * 365) / - (bar.ratio * sushiPrice); - - const APY = Math.pow(1 + APR / 365, 365) - 1; - - return ( - - - Sushi Bar | SushiSwap Analytics - - - - - - {/* - - */} - - - - - - - - - - {/* - - */} - - - - - - - {/* - - - - */} - - - - - {({ width, height }) => ( - - )} - - - - - - - - {({ width, height }) => ( - - )} - - - - - {/* - - - {({ width, height }) => ( - - )} - - - */} - - - - - {({ width, height }) => ( - - )} - - - - - - - - {({ width, height }) => ( - - )} - - - - - - - - {({ width, height }) => ( - - )} - - - - {/* */} - - - - {/*
{JSON.stringify(bar, null, 2)}
*/} -
- ); -} - -export async function getStaticProps() { - const client = getApollo(); - await getBar(client); - await getBarHistories(client); - await getFactory(client); - await getDayData(client); - await getSushiToken(client); - await getEthPrice(client); - return { - props: { - initialApolloState: client.cache.extract(), - }, - revalidate: 1, - }; -} - -export default BarPage; diff --git a/src/pages/bury-shib/index.js b/src/pages/bury-shib/index.js index 34c8eef..42fce50 100644 --- a/src/pages/bury-shib/index.js +++ b/src/pages/bury-shib/index.js @@ -43,13 +43,13 @@ function BuryShibPage() { const theme = useTheme(); const { - data: { buryShib }, + data: { bury }, } = useQuery(buryShibQuery, { context: { clientName: "buryShib", }, }); - + const { data: { histories }, } = useQuery(buryShibHistoriesQuery, { @@ -165,8 +165,8 @@ function BuryShibPage() { const oneDayVolume = factory.volumeUSD - factory.oneDay.volumeUSD; const APR = - (((oneDayVolume * 0.05 * 0.01) / buryShib.totalSupply) * 365) / - (buryShib.ratio * shibPrice); + (((oneDayVolume * 0.05 * 0.01) / bury.totalSupply) * 365) / + (bury.ratio * shibPrice); const APY = Math.pow(1 + APR / 365, 365) - 1; @@ -182,7 +182,7 @@ function BuryShibPage() { {/* */} @@ -192,16 +192,16 @@ function BuryShibPage() { - + {/* */} - + @@ -347,7 +347,7 @@ function BuryShibPage() { - {/*
{JSON.stringify(buryShib, null, 2)}
*/} + {/*
{JSON.stringify(bury, null, 2)}
*/} ); } From a430e8a3ac57cb1b13334c83aa4a877e89f49a53 Mon Sep 17 00:00:00 2001 From: kaal Date: Fri, 9 Jul 2021 17:00:44 -0400 Subject: [PATCH 07/34] Bury changes --- src/components/IntoTheBlock.js | 2 +- src/core/queries/masterchef.js | 12 +++--- src/pages/bury-shib/index.js | 4 +- src/pages/pools/[id].js | 78 +++++++++++++++++----------------- 4 files changed, 48 insertions(+), 48 deletions(-) diff --git a/src/components/IntoTheBlock.js b/src/components/IntoTheBlock.js index d3e186d..ff96dfc 100644 --- a/src/components/IntoTheBlock.js +++ b/src/components/IntoTheBlock.js @@ -12,7 +12,7 @@ function IntoTheBlock({ pairAddress }) { colors: { series: ["#FF1744"], }, - protocol: "sushiswap", + protocol: "shibaswap", pairAddress, granularity: "hourly", loader: true, diff --git a/src/core/queries/masterchef.js b/src/core/queries/masterchef.js index 018781d..1397a18 100644 --- a/src/core/queries/masterchef.js +++ b/src/core/queries/masterchef.js @@ -56,11 +56,11 @@ export const poolHistoryQuery = gql` id accBonePerShare } - slpBalance - slpAge - slpAgeRemoved - slpDeposited - slpWithdrawn + sslpBalance + sslpAge + sslpAgeRemoved + sslpDeposited + sslpWithdrawn entryUSD exitUSD boneHarvestedUSD @@ -92,7 +92,7 @@ export const poolQuery = gql` amount rewardDebt } - slpAge + sslpAge liquidityPair @client timestamp entryUSD diff --git a/src/pages/bury-shib/index.js b/src/pages/bury-shib/index.js index 42fce50..0d87e21 100644 --- a/src/pages/bury-shib/index.js +++ b/src/pages/bury-shib/index.js @@ -49,7 +49,7 @@ function BuryShibPage() { clientName: "buryShib", }, }); - + const { data: { histories }, } = useQuery(buryShibHistoriesQuery, { @@ -128,7 +128,7 @@ function BuryShibPage() { value: parseFloat(currentValue.xShibSupply), }); const apr = - (((dayData.volumeUSD * 0.05 * 0.01) / currentValue.xShibSupply) * + (((dayData.volumeUSD * 0.01 * 0.01) / currentValue.xShibSupply) * 365) / (currentValue.ratio * shibPrice); previousValue["apr"].push({ diff --git a/src/pages/pools/[id].js b/src/pages/pools/[id].js index ff29bf9..072a715 100644 --- a/src/pages/pools/[id].js +++ b/src/pages/pools/[id].js @@ -95,49 +95,49 @@ function PoolPage() { parseFloat(token?.derivedETH) * parseFloat(bundles[0].ethPrice); const { - slpAge, - slpAgeRemoved, + sslpAge, + sslpAgeRemoved, userCount, - slpDeposited, - slpWithdrawn, - slpAgeAverage, - slpBalance, + sslpDeposited, + sslpWithdrawn, + sslpAgeAverage, + sslpBalance, tvl, } = poolHistories.reduce( (previousValue, currentValue) => { const date = currentValue.timestamp * 1000; - previousValue.slpAge.push({ + previousValue.sslpAge.push({ date, - value: currentValue.slpAge, + value: currentValue.sslpAge, }); - const slpAgeAverage = - parseFloat(currentValue.slpAge) / parseFloat(currentValue.slpBalance); + const sslpAgeAverage = + parseFloat(currentValue.sslpAge) / parseFloat(currentValue.sslpBalance); - previousValue.slpAgeAverage.push({ + previousValue.sslpAgeAverage.push({ date, - value: !Number.isNaN(slpAgeAverage) ? slpAgeAverage : 0, + value: !Number.isNaN(sslpAgeAverage) ? sslpAgeAverage : 0, }); - previousValue.slpAgeRemoved.push({ + previousValue.sslpAgeRemoved.push({ date, - value: currentValue.slpAgeRemoved, + value: currentValue.sslpAgeRemoved, }); - previousValue.slpBalance.push({ + previousValue.sslpBalance.push({ date, - value: parseFloat(currentValue.slpBalance), + value: parseFloat(currentValue.sslpBalance), }); - previousValue.slpDeposited.push({ + previousValue.sslpDeposited.push({ date, - value: parseFloat(currentValue.slpDeposited), + value: parseFloat(currentValue.sslpDeposited), }); - previousValue.slpWithdrawn.push({ + previousValue.sslpWithdrawn.push({ date, - value: parseFloat(currentValue.slpWithdrawn), + value: parseFloat(currentValue.sslpWithdrawn), }); previousValue.tvl.push({ @@ -145,7 +145,7 @@ function PoolPage() { value: (parseFloat(pool.liquidityPair.reserveUSD) / parseFloat(pool.liquidityPair.totalSupply)) * - parseFloat(currentValue.slpBalance), + parseFloat(currentValue.sslpBalance), }); previousValue.userCount.push({ @@ -158,12 +158,12 @@ function PoolPage() { { entries: [], exits: [], - slpAge: [], - slpAgeAverage: [], - slpAgeRemoved: [], - slpBalance: [], - slpDeposited: [], - slpWithdrawn: [], + sslpAge: [], + sslpAgeAverage: [], + sslpAgeRemoved: [], + sslpBalance: [], + sslpDeposited: [], + sslpWithdrawn: [], tvl: [], userCount: [], } @@ -206,7 +206,7 @@ function PoolPage() { target="_blank" variant="body1" > - Stake SLP + Stake SSLP @@ -226,9 +226,9 @@ function PoolPage() { @@ -238,7 +238,7 @@ function PoolPage() { {/* @@ -290,8 +290,8 @@ function PoolPage() { width={width} height={height} margin={{ top: 64, right: 32, bottom: 0, left: 64 }} - data={[slpAge, slpAgeRemoved]} - labels={["SLP Age", "SLP Age Removed"]} + data={[sslpAge, sslpAgeRemoved]} + labels={["SSLP Age", "SSLP Age Removed"]} /> )} @@ -313,8 +313,8 @@ function PoolPage() { width={width} height={height} margin={{ top: 64, right: 32, bottom: 0, left: 64 }} - data={[slpDeposited, slpWithdrawn]} - labels={["SLP Deposited", "SLP Age Withdrawn"]} + data={[sslpDeposited, sslpWithdrawn]} + labels={["SSLP Deposited", "SSLP Age Withdrawn"]} /> )} @@ -334,11 +334,11 @@ function PoolPage() { {({ width, height }) => ( )} @@ -382,11 +382,11 @@ function PoolPage() { {({ width, height }) => ( )} From 4c825d050e1b2633be405c87c58639265db2d3eb Mon Sep 17 00:00:00 2001 From: kaal Date: Fri, 9 Jul 2021 17:10:22 -0400 Subject: [PATCH 08/34] Bury changes --- src/pages/users/[id].js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/pages/users/[id].js b/src/pages/users/[id].js index 6ba0ea6..527c851 100644 --- a/src/pages/users/[id].js +++ b/src/pages/users/[id].js @@ -247,7 +247,7 @@ function UserPage() { {!barData?.user?.bar ? ( - Address isn't in the bar... + Address isn't in the bar... ) : ( <> From e892f6951f9d3757097a6da492193bb98e9c9808 Mon Sep 17 00:00:00 2001 From: kaal Date: Sat, 10 Jul 2021 19:52:44 -0400 Subject: [PATCH 09/34] Bury changes --- src/pages/bury-leash/index.js | 371 ++++++++++++++++++++++++++++++++++ src/pages/pools/[id].js | 7 +- src/pages/users/[id].js | 40 ++-- 3 files changed, 392 insertions(+), 26 deletions(-) create mode 100644 src/pages/bury-leash/index.js diff --git a/src/pages/bury-leash/index.js b/src/pages/bury-leash/index.js new file mode 100644 index 0000000..1decb6a --- /dev/null +++ b/src/pages/bury-leash/index.js @@ -0,0 +1,371 @@ +import { AppShell, Curves, KPI } from "app/components"; +import { Grid, Paper, useTheme } from "@material-ui/core"; +import { + buryLeashHistoriesQuery, + buryLeashQuery, + dayDatasQuery, + ethPriceQuery, + factoryQuery, + getApollo, + getBuryLeash, + getBuryLeashHistories, + getDayData, + getEthPrice, + getFactory, + getLeashToken, + tokenQuery, + useInterval, +} from "app/core"; + +import Chart from "../../components/Chart"; +import Head from "next/head"; +import { ParentSize } from "@visx/responsive"; +import React from "react"; +import { makeStyles } from "@material-ui/core/styles"; +import { useQuery } from "@apollo/client"; +// import {getBuryLeash, getBuryLeashHistories} from "../../core/api/bury-leash"; + +const useStyles = makeStyles((theme) => ({ + charts: { + flexGrow: 1, + marginBottom: theme.spacing(4), + }, + paper: { + padding: theme.spacing(2), + // textAlign: "center", + color: theme.palette.text.secondary, + }, +})); + +function BuryLeashPage() { + const classes = useStyles(); + + const theme = useTheme(); + + const { + data: { bury }, + } = useQuery(buryLeashQuery, { + context: { + clientName: "buryLeash", + }, + }); + + const { + data: { histories }, + } = useQuery(buryLeashHistoriesQuery, { + context: { + clientName: "buryLeash", + }, + }); + + const { + data: { factory }, + } = useQuery(factoryQuery); + + // TODO CHANGE + const { + data: { token }, + } = useQuery(tokenQuery, { + variables: { + id: "0x27c70cd1946795b66be9d954418546998b546634", + }, + }); + + const { + data: { bundles }, + } = useQuery(ethPriceQuery); + + const { + data: { dayDatas }, + } = useQuery(dayDatasQuery); + + const leashPrice = + parseFloat(token?.derivedETH) * parseFloat(bundles[0].ethPrice); + + useInterval(async () => { + await Promise.all([ + getBuryLeash, + getBuryLeashHistories, + getDayData, + getFactory, + getLeashToken, + getEthPrice, + ]); + }, 60000); + + const { + leashStakedUSD, + leashHarvestedUSD, + xLeashMinted, + xLeashBurned, + xLeash, + apr, + apy, + fees, + } = histories.reduce( + (previousValue, currentValue) => { + const date = currentValue.date * 1000; + const dayData = dayDatas.find((d) => d.date === currentValue.date); + previousValue["leashStakedUSD"].push({ + date, + value: parseFloat(currentValue.leashStakedUSD), + }); + previousValue["leashHarvestedUSD"].push({ + date, + value: parseFloat(currentValue.leashHarvestedUSD), + }); + + previousValue["xLeashMinted"].push({ + date, + value: parseFloat(currentValue.xLeashMinted), + }); + previousValue["xLeashBurned"].push({ + date, + value: parseFloat(currentValue.xLeashBurned), + }); + previousValue["xLeash"].push({ + date, + value: parseFloat(currentValue.xLeashSupply), + }); + const apr = + (((dayData.volumeUSD * 0.015 * 0.01) / currentValue.xLeashSupply) * + 365) / + (currentValue.ratio * leashPrice); + previousValue["apr"].push({ + date, + value: parseFloat(apr * 100), + }); + previousValue["apy"].push({ + date, + value: parseFloat((Math.pow(1 + apr / 365, 365) - 1) * 100), + }); + previousValue["fees"].push({ + date, + value: parseFloat(dayData.volumeUSD * 0.005), + }); + return previousValue; + }, + { + leashStakedUSD: [], + leashHarvestedUSD: [], + xLeashMinted: [], + xLeashBurned: [], + xLeash: [], + apr: [], + apy: [], + fees: [], + } + ); + + const averageApy = + apy.reduce((previousValue, currentValue) => { + return previousValue + currentValue.value; + }, 0) / apy.length; + + const oneDayVolume = factory.volumeUSD - factory.oneDay.volumeUSD; + + const APR = + (((oneDayVolume * 0.05 * 0.01) / bury.totalSupply) * 365) / + (bury.ratio * leashPrice); + + const APY = Math.pow(1 + APR / 365, 365) - 1; + + return ( + + + Bury Leash | LeashaSwap Analytics + + + + + + {/* + + */} + + + + + + + + + + {/* + + */} + + + + + + + {/* + + + + */} + + + + + {({ width, height }) => ( + + )} + + + + + + + + {({ width, height }) => ( + + )} + + + + + {/* + + + {({ width, height }) => ( + + )} + + + */} + + + + + {({ width, height }) => ( + + )} + + + + + + + + {({ width, height }) => ( + + )} + + + + + + + + {({ width, height }) => ( + + )} + + + + {/* */} + + + + {/*
{JSON.stringify(bury, null, 2)}
*/} +
+ ); +} + +export async function getStaticProps() { + const client = getApollo(); + await getBuryLeash(client); + await getBuryLeashHistories(client); + await getFactory(client); + await getDayData(client); + await getLeashToken(client); + await getEthPrice(client); + return { + props: { + initialApolloState: client.cache.extract(), + }, + revalidate: 1, + }; +} + +export default BuryLeashPage; diff --git a/src/pages/pools/[id].js b/src/pages/pools/[id].js index 072a715..c970ad2 100644 --- a/src/pages/pools/[id].js +++ b/src/pages/pools/[id].js @@ -197,12 +197,7 @@ function PoolPage() {
diff --git a/src/pages/users/[id].js b/src/pages/users/[id].js index 527c851..8410efc 100644 --- a/src/pages/users/[id].js +++ b/src/pages/users/[id].js @@ -26,7 +26,7 @@ import { getLatestBlock, getPairs, getPoolUser, - getSushiToken, + getBoneToken, getToken, getUser, latestBlockQuery, @@ -119,7 +119,7 @@ function UserPage() { // () => // Promise.all([ // getPairs, - // getSushiToken, + // getBoneToken, // getPoolUser(id.toLowerCase()), // getBarUser(id.toLocaleLowerCase()), // getEthPrice, @@ -131,18 +131,18 @@ function UserPage() { parseFloat(token?.derivedETH) * parseFloat(bundles[0].ethPrice); // BAR - const xSushi = parseFloat(barData?.user?.xSushi); + const xShib = parseFloat(barData?.user?.xShib); const barPending = - (xSushi * parseFloat(barData?.user?.bar?.sushiStaked)) / + (xShib * parseFloat(barData?.user?.bar?.sushiStaked)) / parseFloat(barData?.user?.bar?.totalSupply); - const xSushiTransfered = - barData?.user?.xSushiIn > barData?.user?.xSushiOut - ? parseFloat(barData?.user?.xSushiIn) - - parseFloat(barData?.user?.xSushiOut) - : parseFloat(barData?.user?.xSushiOut) - - parseFloat(barData?.user?.xSushiIn); + const xShibTransfered = + barData?.user?.xShibIn > barData?.user?.xShibOut + ? parseFloat(barData?.user?.xShibIn) - + parseFloat(barData?.user?.xShibOut) + : parseFloat(barData?.user?.xShibOut) - + parseFloat(barData?.user?.xShibIn); const barStaked = barData?.user?.sushiStaked; @@ -153,9 +153,9 @@ function UserPage() { const barPendingUSD = barPending > 0 ? barPending * sushiPrice : 0; - const barRoiSushi = + const buryRoiShib = barPending - - (parseFloat(barData?.user?.sushiStaked) - + (parseFloat(barData?.user?.shibStaked) - parseFloat(barData?.user?.sushiHarvested) + parseFloat(barData?.user?.sushiIn) - parseFloat(barData?.user?.sushiOut)); @@ -312,7 +312,7 @@ function UserPage() { - SUSHI + BONE {/* xSUSHI @@ -464,7 +464,7 @@ function UserPage() { const token0 = pair.reserve0 * share; const token1 = pair.reserve1 * share; - const pendingSushi = + const pendingBone = ((user.amount * user.pool.accBonePerShare) / 1e12 - user.rewardDebt) / 1e18; @@ -474,7 +474,7 @@ function UserPage() { // user, // user.entryUSD, // user.exitUSD, - // pendingSushi * sushiPrice + // pendingBone * sushiPrice // ); return ( @@ -524,9 +524,9 @@ function UserPage() { - {decimalFormatter.format(pendingSushi)} ( + {decimalFormatter.format(pendingBone)} ( {currencyFormatter.format( - pendingSushi * sushiPrice + pendingBone * sushiPrice )} ) @@ -543,7 +543,7 @@ function UserPage() { parseFloat(pair.reserveUSD * share) + parseFloat(user.exitUSD) + parseFloat(user.sushiHarvestedUSD) + - parseFloat(pendingSushi * sushiPrice) - + parseFloat(pendingBone * sushiPrice) - parseFloat(user.entryUSD) )}
@@ -569,7 +569,7 @@ export async function getStaticProps({ params }) { await getEthPrice(client); - await getSushiToken(client); + await getBoneToken(client); await getBarUser(id.toLowerCase(), client); From 1782a57cd8e71bdae5b32d3255cb84da25c65e17 Mon Sep 17 00:00:00 2001 From: kaal Date: Sat, 10 Jul 2021 19:57:47 -0400 Subject: [PATCH 10/34] Bury changes --- src/pages/bury-leash/index.js | 371 ---------------------------------- 1 file changed, 371 deletions(-) delete mode 100644 src/pages/bury-leash/index.js diff --git a/src/pages/bury-leash/index.js b/src/pages/bury-leash/index.js deleted file mode 100644 index 1decb6a..0000000 --- a/src/pages/bury-leash/index.js +++ /dev/null @@ -1,371 +0,0 @@ -import { AppShell, Curves, KPI } from "app/components"; -import { Grid, Paper, useTheme } from "@material-ui/core"; -import { - buryLeashHistoriesQuery, - buryLeashQuery, - dayDatasQuery, - ethPriceQuery, - factoryQuery, - getApollo, - getBuryLeash, - getBuryLeashHistories, - getDayData, - getEthPrice, - getFactory, - getLeashToken, - tokenQuery, - useInterval, -} from "app/core"; - -import Chart from "../../components/Chart"; -import Head from "next/head"; -import { ParentSize } from "@visx/responsive"; -import React from "react"; -import { makeStyles } from "@material-ui/core/styles"; -import { useQuery } from "@apollo/client"; -// import {getBuryLeash, getBuryLeashHistories} from "../../core/api/bury-leash"; - -const useStyles = makeStyles((theme) => ({ - charts: { - flexGrow: 1, - marginBottom: theme.spacing(4), - }, - paper: { - padding: theme.spacing(2), - // textAlign: "center", - color: theme.palette.text.secondary, - }, -})); - -function BuryLeashPage() { - const classes = useStyles(); - - const theme = useTheme(); - - const { - data: { bury }, - } = useQuery(buryLeashQuery, { - context: { - clientName: "buryLeash", - }, - }); - - const { - data: { histories }, - } = useQuery(buryLeashHistoriesQuery, { - context: { - clientName: "buryLeash", - }, - }); - - const { - data: { factory }, - } = useQuery(factoryQuery); - - // TODO CHANGE - const { - data: { token }, - } = useQuery(tokenQuery, { - variables: { - id: "0x27c70cd1946795b66be9d954418546998b546634", - }, - }); - - const { - data: { bundles }, - } = useQuery(ethPriceQuery); - - const { - data: { dayDatas }, - } = useQuery(dayDatasQuery); - - const leashPrice = - parseFloat(token?.derivedETH) * parseFloat(bundles[0].ethPrice); - - useInterval(async () => { - await Promise.all([ - getBuryLeash, - getBuryLeashHistories, - getDayData, - getFactory, - getLeashToken, - getEthPrice, - ]); - }, 60000); - - const { - leashStakedUSD, - leashHarvestedUSD, - xLeashMinted, - xLeashBurned, - xLeash, - apr, - apy, - fees, - } = histories.reduce( - (previousValue, currentValue) => { - const date = currentValue.date * 1000; - const dayData = dayDatas.find((d) => d.date === currentValue.date); - previousValue["leashStakedUSD"].push({ - date, - value: parseFloat(currentValue.leashStakedUSD), - }); - previousValue["leashHarvestedUSD"].push({ - date, - value: parseFloat(currentValue.leashHarvestedUSD), - }); - - previousValue["xLeashMinted"].push({ - date, - value: parseFloat(currentValue.xLeashMinted), - }); - previousValue["xLeashBurned"].push({ - date, - value: parseFloat(currentValue.xLeashBurned), - }); - previousValue["xLeash"].push({ - date, - value: parseFloat(currentValue.xLeashSupply), - }); - const apr = - (((dayData.volumeUSD * 0.015 * 0.01) / currentValue.xLeashSupply) * - 365) / - (currentValue.ratio * leashPrice); - previousValue["apr"].push({ - date, - value: parseFloat(apr * 100), - }); - previousValue["apy"].push({ - date, - value: parseFloat((Math.pow(1 + apr / 365, 365) - 1) * 100), - }); - previousValue["fees"].push({ - date, - value: parseFloat(dayData.volumeUSD * 0.005), - }); - return previousValue; - }, - { - leashStakedUSD: [], - leashHarvestedUSD: [], - xLeashMinted: [], - xLeashBurned: [], - xLeash: [], - apr: [], - apy: [], - fees: [], - } - ); - - const averageApy = - apy.reduce((previousValue, currentValue) => { - return previousValue + currentValue.value; - }, 0) / apy.length; - - const oneDayVolume = factory.volumeUSD - factory.oneDay.volumeUSD; - - const APR = - (((oneDayVolume * 0.05 * 0.01) / bury.totalSupply) * 365) / - (bury.ratio * leashPrice); - - const APY = Math.pow(1 + APR / 365, 365) - 1; - - return ( - - - Bury Leash | LeashaSwap Analytics - - - - - - {/* - - */} - - - - - - - - - - {/* - - */} - - - - - - - {/* - - - - */} - - - - - {({ width, height }) => ( - - )} - - - - - - - - {({ width, height }) => ( - - )} - - - - - {/* - - - {({ width, height }) => ( - - )} - - - */} - - - - - {({ width, height }) => ( - - )} - - - - - - - - {({ width, height }) => ( - - )} - - - - - - - - {({ width, height }) => ( - - )} - - - - {/* */} - - - - {/*
{JSON.stringify(bury, null, 2)}
*/} -
- ); -} - -export async function getStaticProps() { - const client = getApollo(); - await getBuryLeash(client); - await getBuryLeashHistories(client); - await getFactory(client); - await getDayData(client); - await getLeashToken(client); - await getEthPrice(client); - return { - props: { - initialApolloState: client.cache.extract(), - }, - revalidate: 1, - }; -} - -export default BuryLeashPage; From 528df8bdcce0cbc18b23052a4df9d1a6bccb79d8 Mon Sep 17 00:00:00 2001 From: kaal Date: Sat, 10 Jul 2021 20:05:07 -0400 Subject: [PATCH 11/34] Bury changes --- src/pages/pairs/[id].js | 6 +++--- src/pages/pairs/gainers.js | 2 +- src/pages/pairs/index.js | 2 +- src/pages/pairs/losers.js | 2 +- src/pages/pairs/recent.js | 2 +- src/pages/tokens/[id].js | 6 +++--- src/pages/tokens/index.js | 2 +- src/pages/users/[id].js | 2 +- 8 files changed, 12 insertions(+), 12 deletions(-) diff --git a/src/pages/pairs/[id].js b/src/pages/pairs/[id].js index a6e278c..cef9f5d 100644 --- a/src/pages/pairs/[id].js +++ b/src/pages/pairs/[id].js @@ -188,7 +188,7 @@ function PairPage(props) { - {pair.token0.symbol}-{pair.token1.symbol} | SushiSwap Analytics + {pair.token0.symbol}-{pair.token1.symbol} | ShibaSwap Analytics @@ -201,7 +201,7 @@ function PairPage(props) { diff --git a/src/pages/pairs/gainers.js b/src/pages/pairs/gainers.js index 8ab8f51..34eb495 100644 --- a/src/pages/pairs/gainers.js +++ b/src/pages/pairs/gainers.js @@ -20,7 +20,7 @@ function GainersPage() { return ( - Top Gainers | SushiSwap Analytics + Top Gainers | ShibaSwap Analytics diff --git a/src/pages/pairs/index.js b/src/pages/pairs/index.js index fdb4704..b07c70d 100644 --- a/src/pages/pairs/index.js +++ b/src/pages/pairs/index.js @@ -13,7 +13,7 @@ function PairsPage() { return ( - Pairs | SushiSwap Analytics + Pairs | ShibaSwap Analytics diff --git a/src/pages/pairs/losers.js b/src/pages/pairs/losers.js index 3f017cc..f819e90 100644 --- a/src/pages/pairs/losers.js +++ b/src/pages/pairs/losers.js @@ -20,7 +20,7 @@ function LosersPage() { return ( - Top Losers | SushiSwap Analytics + Top Losers | ShibaSwap Analytics diff --git a/src/pages/pairs/recent.js b/src/pages/pairs/recent.js index ea88fee..7c21096 100644 --- a/src/pages/pairs/recent.js +++ b/src/pages/pairs/recent.js @@ -22,7 +22,7 @@ function RecentPairsPage() { return ( - Recently Added Pairs | SushiSwap Analytics + Recently Added Pairs | ShibaSwap Analytics diff --git a/src/pages/tokens/[id].js b/src/pages/tokens/[id].js index e0350cf..fa98f33 100644 --- a/src/pages/tokens/[id].js +++ b/src/pages/tokens/[id].js @@ -171,7 +171,7 @@ function TokenPage() { - {currencyFormatter.format(price || 0)} | {token.symbol} | SushiSwap + {currencyFormatter.format(price || 0)} | {token.symbol} | ShibaSwap Analytics @@ -198,14 +198,14 @@ function TokenPage() { Add Liquidity diff --git a/src/pages/tokens/index.js b/src/pages/tokens/index.js index 8ffba26..0e9de22 100644 --- a/src/pages/tokens/index.js +++ b/src/pages/tokens/index.js @@ -24,7 +24,7 @@ function TokensPage() { return ( - Tokens | SushiSwap Analytics + Tokens | ShibaSwap Analytics diff --git a/src/pages/users/[id].js b/src/pages/users/[id].js index 8410efc..0f64931 100644 --- a/src/pages/users/[id].js +++ b/src/pages/users/[id].js @@ -227,7 +227,7 @@ function UserPage() { return ( - User {id} | SushiSwap Analytics + User {id} | ShibaSwap Analytics From 8aa85960a810a6831e02a790e8d9123a4da31ed7 Mon Sep 17 00:00:00 2001 From: kaal Date: Sat, 10 Jul 2021 23:56:06 -0400 Subject: [PATCH 12/34] Bury changes --- src/core/constants.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/core/constants.js b/src/core/constants.js index 3701438..a76e4d2 100644 --- a/src/core/constants.js +++ b/src/core/constants.js @@ -5,11 +5,11 @@ export const TOKEN_DENY = [ "0xfc989fbb6b3024de5ca0144dc23c18a063942ac1", ]; -export const PAIR_DENY = ["0xb6a741f37d6e455ebcc9f17e2c16d0586c3f57a5"]; +export const PAIR_DENY = []; //"0xb6a741f37d6e455ebcc9f17e2c16d0586c3f57a5" export const EXCHANGE_CREATED_TIMESTAMP = 1599214239; -export const POOL_DENY = ["14", "29", "45", "30"]; +export const POOL_DENY = []; //"14", "29", "45", "30" export const BONE_TOKEN = "0x9813037ee2218799597d83d4a5b6f3b6778218d9"; From 4ea8d7be5910ef40a63ddff552f58960fd2702ff Mon Sep 17 00:00:00 2001 From: priya Date: Tue, 13 Jul 2021 17:42:56 +0530 Subject: [PATCH 13/34] fixed the css and color of the dashboard --- src/components/AppBar.js | 4 ++-- src/components/AppNavigation.js | 8 ++++---- src/components/AreaChart.js | 2 +- src/components/BarChart.js | 2 +- src/components/Percent.js | 12 ++++++------ src/components/Search.js | 13 +++++++------ src/styles/images/logo.png | Bin 0 -> 48396 bytes src/styles/index.css | 2 +- src/theme/index.js | 2 +- 9 files changed, 23 insertions(+), 22 deletions(-) create mode 100644 src/styles/images/logo.png diff --git a/src/components/AppBar.js b/src/components/AppBar.js index 5d3c44c..40cb221 100644 --- a/src/components/AppBar.js +++ b/src/components/AppBar.js @@ -158,7 +158,7 @@ export default function AppBar({ {page.charAt(0).toUpperCase() + page.slice(1)} - + {/* {!darkMode ? : } - + */} ); diff --git a/src/components/AppNavigation.js b/src/components/AppNavigation.js index 78284b6..4b4b016 100644 --- a/src/components/AppNavigation.js +++ b/src/components/AppNavigation.js @@ -133,7 +133,7 @@ export default function AppNavigation() { - + {/* {open ? : } */} @@ -194,7 +194,7 @@ export default function AppNavigation() { - + {open ? : } @@ -288,7 +288,7 @@ export default function AppNavigation() { - + - + diff --git a/src/components/AreaChart.js b/src/components/AreaChart.js index f9a516c..f1ed0b2 100644 --- a/src/components/AreaChart.js +++ b/src/components/AreaChart.js @@ -149,7 +149,7 @@ function AreaChart({ )} - + diff --git a/src/components/BarChart.js b/src/components/BarChart.js index d781722..2579449 100644 --- a/src/components/BarChart.js +++ b/src/components/BarChart.js @@ -137,7 +137,7 @@ export default function BarChart({ )} - + {/* 0) { - color = theme.palette.positive.main; - } else if (value < 0) { - color = theme.palette.negative.main; - } + // if (value > 0) { + // color = theme.palette.positive.main; + // } else if (value < 0) { + // color = theme.palette.negative.main; + // } return ( - + {value}% ); diff --git a/src/components/Search.js b/src/components/Search.js index dae7300..1ecadd0 100644 --- a/src/components/Search.js +++ b/src/components/Search.js @@ -120,12 +120,13 @@ export default function Search({ pairs, tokens }) { })} groupBy={(option) => option.__typename} renderInput={(params) => ( - + // + <> )} getOptionLabel={(option) => option.text} renderOption={(option, { inputValue }) => { diff --git a/src/styles/images/logo.png b/src/styles/images/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..02e5761235364b473bab59dc25d63347ae5674a7 GIT binary patch literal 48396 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 z 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 Date: Tue, 13 Jul 2021 10:19:37 -0400 Subject: [PATCH 14/34] Bury changes --- public/android-chrome-192x192.png | Bin 5370 -> 26022 bytes public/android-chrome-512x512.png | Bin 18589 -> 26022 bytes public/apple-touch-icon.png | Bin 5181 -> 26022 bytes public/favicon-16x16.png | Bin 915 -> 950 bytes public/favicon-32x32.png | Bin 1493 -> 2389 bytes public/logo-192x192.png | Bin 0 -> 23893 bytes public/logo-512x512.png | Bin 0 -> 45758 bytes public/manifest.json | 4 +- src/components/AppBar.js | 2 +- src/components/AppNavigation.js | 2 +- src/core/api/exchange.js | 5 +- src/core/api/masterchef.js | 6 +- src/core/constants.js | 2 +- src/pages/_document.js | 4 +- src/pages/bury-leash/index.js | 371 ++++++++++++++++++++++++++++++ src/pages/pools/[id].js | 4 +- src/pages/users/[id].js | 50 ++-- 17 files changed, 411 insertions(+), 39 deletions(-) create mode 100644 public/logo-192x192.png create mode 100644 public/logo-512x512.png create mode 100644 src/pages/bury-leash/index.js diff --git a/public/android-chrome-192x192.png b/public/android-chrome-192x192.png index 11e2e8d7b84db6acdd27255cef34743ad2966012..ce9ad655408f535ad0ff6886381c4b54f5fc2098 100644 GIT binary patch literal 26022 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 literal 5370 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 diff --git a/public/android-chrome-512x512.png b/public/android-chrome-512x512.png index 8c27995fe081f1cb2b23c49d35ac7ef3d894d1ea..ce9ad655408f535ad0ff6886381c4b54f5fc2098 100644 GIT binary patch literal 26022 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 literal 18589 zcmeIaX*`r~^glieLv|5ki%?R+WX(DiA!~~$*+sJN`^=z1S)#?hCR(g1*=Iy3Ym|K% z`!=?$8DoCe^!a}u{2%xK|W@F@rc_YeZ1J%U?+K>TDO zkR=-kL?s0R;q}a@xuypG0b!@FqXnVTe&y5`J_mop;Hzh-%`n3RKXzWS=hCl?M35dXeAVWw33fC35|eOx|DtRp-{avj;Sj2 z(3xTFvK0yMVGZQ2Vhm+Qw*D-IadIZc z+Q&8`xfEMilv)nbQFB!&#}BAER(k_#C3bc9ytbBBzSt)>QVDAAntcb=Hui#RY)ra; zavbVI97;yOK3I}5IyySPy!ncIY;`ws(>fNV(30}@uXA!Nia8E-BNjDw3lpGpju+x$v+5d_$08#!HfJj&2FUJ7_wp%+2_e6fIZ)h^!bY1 zq$2IJ?vt4s*YJ7ZF>#lXJ)c;VeH>~t7RBrCHI2VBimaGGZkD#BFvOwaBXHoMgrxC} zs5n$pEQ;zLdtvON0QL8sIMhfS3aikxYF{ab%ePs1cRPv1T^cvIvHV!!j3&ND13rZ!J5iZ#r_vBdThG|{T zwt6EfdCGaZ8_I;kLvMs@U`kh1)QGa{$IBoBOunr+U8cSdH^d)(ayzuOIlazHJV`u` zAMoSKL!Vn$G(luQ!_J8$J=uECtp{}zz(>06P_uR%u{8}>#L&mqdCCxP8R(&jH}lM1 z17Rp0lFQb1s1L(-h5v-O3FSlI5)k3%25oXgM3P`zXSg>SO*;>r3D)JEhpza6e!VUm z{Lw((LDo-a=%V-ZOVNqa{gr=r^XrE+!+$;42^hA{6gFlNgiSHQL=St;8s{^M*H5n@ zVjJBLw9(f1fw{=$WtlqjBt9pJ*St*Dr5#P&^vG4;ZGB%BZdB>m#^MGa3mQOD*d)nrA*Uu4~ zH>7z~fqdiJ1)B>yT;bi}Z!h86;(nghp5X@Z>Dj6PY`56#L#$3+}tPdV9hR4vuQY`tw@D;+aF58Q_t%oe)d! zK0Ba9Y~b*J^@6o^i6<4v!cB@~Y-AUyn~u{)K$h2>^)4MyAG-RZ;$=x`6m|%{#r^QX zj#C!G2EMLX##dFuA(96Xf%?WdQmw z*yEW)!txWar{zLWLl#||#oIFBJ(Yh0;920CPp?&Iw$Y>w7q*i?0IjEclC_fbGYQ-V z;(%|2gl}K-)B6z(4Z#J3pCkn2l+ueMx1^F|e^qWof$NyC?IvLv)#qo2@04-DV^k5+ zxCoqsqI&Jg*W%z%beKo#71ZRnLo!OIP^fjDo%rx8k09S~20Q9s(LJ-r3URb!|HBua zM)7v(f}Snsf~)p4;~YfP(@z##f(zmF&-aj0sjzm>ZZu*EjaXp}4L^ktk6cKVa+U

oNSE5Rk*`k|e;s{s3!gH0> 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 JC6{a>{ts&w%Yy&_ diff --git a/public/apple-touch-icon.png b/public/apple-touch-icon.png index d39e2a492b957397146af2b88df79165a126be34..ce9ad655408f535ad0ff6886381c4b54f5fc2098 100644 GIT binary patch literal 26022 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 literal 5181 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 KFy(0XJO2Za$dS_k diff --git a/public/favicon-16x16.png b/public/favicon-16x16.png index 6632f7e3ccccd4e073948590516e9acce75f6f5d..33822c071d8e9c2e8c66bf6d2162b2784dba3f43 100644 GIT binary patch delta 939 zcmV;c162Hz2et>08Gi-<001BJ|6u?C02y>eSaefwW^{L9a%BKPWN%_+AW3auXJt}l zVPtu6$z?nM00US_L_t(|+H8_rOxsl)$3MNS(q>|@mr-g9-CC%oTTr7>+#o_WVti0Z zd|-Q7M3)#7Go#67q9M^3HH0@G&^;IxXT~tw1eWLq4xLh*WPh4<+{?5GLQ5~Sg;Lso zkEbX`jlZ1R?|aVg`@0>45X2Ih<7az%#6)QMeW{ly1wke+DBk^dF0YAW=Pq1K&CQHo zka|TCZ20!8{@=bljOc$|F9yD!z9F%){QnsLFdOUs_>E@q-7&W1!K!4orfcKV@@)TH9aesPveDvVW@DjKiXuP)jK2bl?9?;Vuu9 zgU~A|Ih~xKtldsNU4oK@f-sR&mx3qBqTC9mM+ObxFA`8uuDce}?*|#7c7G?DqjAY3 zM=ph0l|`iFqvo&K@x&K0A6Pf;rJ~aNV=IR|fms_OiJw<{8>8VRCj_fVj4-JzO0enZ!^Z6%Xv}P!& zkZytsmc~oG*ZmWvCJRmztj(U^Hy5KxJ)fd36CShQsgqOzg^x}a7;lH2o`>MjI6NLE z;yFS0^N{G3_+|vcU|pY;^;xM>7ZS@QD^#-CI)4bQBaq(1-TQPjpB$mB{UR!rgZRB~ z(R|`XSd?{X=z-@($y7ask`8Otm5yEgMyvbgwV>>oS$chP6wx@b)vnY@5<27>4o1HYrNGpcxq~7(t?%f3R9C)Bv)5?w5jP;yWRfI zw#~l?wk4TN9-15NJ8HYh?E3vFk1l-IF;zWqah0RY-|wp?~9k(K}e N002ovPDHLkV1nuK!leKJ literal 915 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 Hu0mjfQlgJ_ literal 1493 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE3?yBabR7dyEa{HEjtmSN`?>!lvVtU&J%W50 z7^>757#dm_7=8hT8eT9klo~KFyh>nTu$sZZAYL$MSD+081CvjHPlzi}!Ta2TIWmy#M$S*{+wbUu#-BS2TCzRW$$|33Qc-tM8c$ zm&zL3fDB8|K%gUm=*I24Eq#-ngCZf^M^B$kp1r^;BH{Jhw~JP;4N6G=^!dw%?Ym;L z3XY#SxBtko%+hLz%E3T_{QKw6|4X<3-+K7}-@pGg)BbCR{5OvJ-?Qldlb8SBy#L?5 z=)b7be=+C(wn_iztpESz+le#hfBpXb|LLp$#eM%({QrwM{ugoj-#YjI`%mA0{MdWw zs8e7>WA}usH*fv@`}aRk<*|$ZlN$dkc>h=R|6kbq|L@=5zkl0;V;LBX9^r8lX3l-^ z_{l$@?caX<-*fW+(F^~7{Wfv&F#`v$sjF{beA@hFt6si-6P=N_cFXn;pFRNtKdq>8 z&%q<#zJIs%2`R2?vG)(N^$poQbALZDs_ILE{DOfr6foOvUaZfk(fj=0y&74W%h@8r znV0_lJ{rLje&qXBcXqcepO#pdEc*Crk{Z{Zg-krh{{3Cc3?l!nWd;&(#C>2nqus`D z9~T>j9Q^ftiyOO8+69m?(v^4rUCt6w>v?{^R@Qj#yBGbMK08?&mwT)R+RvEe?e4<( zpGo%~ki%Z$>Fdh=go|0!NaME7&1|6b3{Mxw5R22v2@Xs>F?VeC)con;xxuKszhObZ z-VGfqB$UlmdwL!%Qu?Z(prfeSy0B$pV3b?fIytT&9K$ zA#x-xEp_jmW7A|;G~7K`cl1=~>g#J*IoC(;PgL%h_x!<&Et#7)bB7$9rmMXz@AkgM za(pp&?}V?rv5D0aC>Cx0{?1lurMC}XZY^c?;BjRPI5}_c?{C+ySO5NzcauxdF?d7j z=~K+?fB!Il%W3^+D8evR#%hny!NZFZPIIZ4g|SAvt!p}<5X04^$mQg8_|QgAcNe#f z%_0UHHnY1OKeEXC_)&EgrzZ!!CQS+snz;1xCF3^_E(xg4jJ#R!a?YJSH6ocCCQWEM zq|{MU=&8xR%Os-HJF@cVG~KD8R~2t8X>6EmyYbjQvn_nCQVdJ7raNU9#0vtWO|`@| zq9i4;B-JXpC>2OC7#SED=o%X68W@Kd8CsbdSeY1T8yHy`7%1PL7mK1HH$NpatrE9} zpeD74Kn>wlArU1(iRB6fMfqu&IjIUIl?AB^nFS@u3=9=>9)IHDC=AokIOTu(jOWuJ z24-b$y<~1-Wnu5hBFw@HE)6D!Q<#-EhbWxBaplC3Ge=~Ou%B-5Sm33{@Jd{; QRG<|Mp00i_>zopr0Nta@XaE2J diff --git a/public/logo-192x192.png b/public/logo-192x192.png new file mode 100644 index 0000000000000000000000000000000000000000..3b50078a84d69f243fd18c56665792cec7964b34 GIT binary patch literal 23893 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%0D-`cZC`(dvra!9 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

hiE)we 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 literal 0 HcmV?d00001 diff --git a/public/manifest.json b/public/manifest.json index d7bd29f..244483e 100644 --- a/public/manifest.json +++ b/public/manifest.json @@ -1,6 +1,6 @@ { - "name": "SushiSwap Analytics", - "short_name": "SushiSwap Analytics", + "name": "ShibaSwap Analytics", + "short_name": "ShibaSwap Analytics", "theme_color": "#7e57c2", "background_color": "#fafafa", "display": "fullscreen", diff --git a/src/components/AppBar.js b/src/components/AppBar.js index 40cb221..c34c45b 100644 --- a/src/components/AppBar.js +++ b/src/components/AppBar.js @@ -139,7 +139,7 @@ export default function AppBar({ justifyContent="space-around" > router.push("/")}> - + {/**/} ShibaSwap Analytics diff --git a/src/components/AppNavigation.js b/src/components/AppNavigation.js index 4b4b016..57f8fc8 100644 --- a/src/components/AppNavigation.js +++ b/src/components/AppNavigation.js @@ -133,7 +133,7 @@ export default function AppNavigation() { - + {/* {open ? : } */} diff --git a/src/core/api/exchange.js b/src/core/api/exchange.js index d82b3c9..6fa9093 100644 --- a/src/core/api/exchange.js +++ b/src/core/api/exchange.js @@ -14,6 +14,7 @@ import { } from "../api/blocks"; import { getApollo } from "../apollo"; +import {BONE_TOKEN_ADDRESS} from "app/core/constants"; export async function getFactory(client = getApollo()) { const { @@ -57,7 +58,7 @@ export async function getFactory(client = getApollo()) { } export async function getSushiToken(client = getApollo()) { - return await getToken("0x9813037ee2218799597d83d4a5b6f3b6778218d9", client); + return await getToken(BONE_TOKEN_ADDRESS, client); } export async function getShibToken(client = getApollo()) { @@ -65,7 +66,7 @@ export async function getShibToken(client = getApollo()) { } export async function getBoneToken(client = getApollo()) { - return await getToken("0x9813037ee2218799597d83d4a5b6f3b6778218d9", client); + return await getToken(BONE_TOKEN_ADDRESS, client); } export async function getLeashToken(client = getApollo()) { diff --git a/src/core/api/masterchef.js b/src/core/api/masterchef.js index fb65f9f..b51fe49 100644 --- a/src/core/api/masterchef.js +++ b/src/core/api/masterchef.js @@ -12,7 +12,7 @@ import { poolsQuery, } from "../queries/masterchef"; -import { POOL_DENY } from "app/core/constants"; +import {BONE_TOKEN_ADDRESS, POOL_DENY, TOPDOG_ADDRESS} from "app/core/constants"; import { getApollo } from "../apollo"; import { sub } from "date-fns"; @@ -155,7 +155,7 @@ export async function getPools(client = getApollo()) { const ethPrice = bundles[0].ethPrice; const { token } = await getToken( - "0x9813037ee2218799597d83d4a5b6f3b6778218d9" + BONE_TOKEN_ADDRESS ); const bonePrice = ethPrice * token.derivedETH; @@ -165,7 +165,7 @@ export async function getPools(client = getApollo()) { data: { liquidityPositions }, } = await client.query({ query: liquidityPositionSubsetQuery, - variables: { user: "0x94235659cf8b805b2c658f9ea2d6d6ddbb17c8d7" }, + variables: { user: TOPDOG_ADDRESS }, }); await client.cache.writeQuery({ diff --git a/src/core/constants.js b/src/core/constants.js index a76e4d2..31f74a3 100644 --- a/src/core/constants.js +++ b/src/core/constants.js @@ -11,7 +11,7 @@ export const EXCHANGE_CREATED_TIMESTAMP = 1599214239; export const POOL_DENY = []; //"14", "29", "45", "30" -export const BONE_TOKEN = "0x9813037ee2218799597d83d4a5b6f3b6778218d9"; +export const BONE_TOKEN_ADDRESS = "0x9813037ee2218799597d83d4a5b6f3b6778218d9"; export const BURY_SHIB_ADDRESS = ""; diff --git a/src/pages/_document.js b/src/pages/_document.js index a86ba90..29a2e95 100644 --- a/src/pages/_document.js +++ b/src/pages/_document.js @@ -78,7 +78,7 @@ export default class MyDocument extends Document { - + {/* TWITTER */} @@ -130,7 +130,7 @@ export default class MyDocument extends Document { try { var query = window.matchMedia("(prefers-color-scheme: dark)"); var darkMode = window.localStorage.getItem("darkMode") === "true"; - + if (darkMode) { document.documentElement.classList.add("dark-theme"); } diff --git a/src/pages/bury-leash/index.js b/src/pages/bury-leash/index.js new file mode 100644 index 0000000..805163a --- /dev/null +++ b/src/pages/bury-leash/index.js @@ -0,0 +1,371 @@ +// import { AppShell, Curves, KPI } from "app/components"; +// import { Grid, Paper, useTheme } from "@material-ui/core"; +// import { +// buryLeashHistoriesQuery, +// buryLeashQuery, +// dayDatasQuery, +// ethPriceQuery, +// factoryQuery, +// getApollo, +// getBuryLeash, +// getBuryLeashHistories, +// getDayData, +// getEthPrice, +// getFactory, +// getLeashToken, +// tokenQuery, +// useInterval, +// } from "app/core"; +// +// import Chart from "../../components/Chart"; +// import Head from "next/head"; +// import { ParentSize } from "@visx/responsive"; +// import React from "react"; +// import { makeStyles } from "@material-ui/core/styles"; +// import { useQuery } from "@apollo/client"; +// // import {getBuryLeash, getBuryLeashHistories} from "../../core/api/bury-leash"; +// +// const useStyles = makeStyles((theme) => ({ +// charts: { +// flexGrow: 1, +// marginBottom: theme.spacing(4), +// }, +// paper: { +// padding: theme.spacing(2), +// // textAlign: "center", +// color: theme.palette.text.secondary, +// }, +// })); +// +// function BuryLeashPage() { +// const classes = useStyles(); +// +// const theme = useTheme(); +// +// const { +// data: { bury }, +// } = useQuery(buryLeashQuery, { +// context: { +// clientName: "buryLeash", +// }, +// }); +// +// const { +// data: { histories }, +// } = useQuery(buryLeashHistoriesQuery, { +// context: { +// clientName: "buryLeash", +// }, +// }); +// +// const { +// data: { factory }, +// } = useQuery(factoryQuery); +// +// // TODO CHANGE +// const { +// data: { token }, +// } = useQuery(tokenQuery, { +// variables: { +// id: "0x27c70cd1946795b66be9d954418546998b546634", +// }, +// }); +// +// const { +// data: { bundles }, +// } = useQuery(ethPriceQuery); +// +// const { +// data: { dayDatas }, +// } = useQuery(dayDatasQuery); +// +// const leashPrice = +// parseFloat(token?.derivedETH) * parseFloat(bundles[0].ethPrice); +// +// useInterval(async () => { +// await Promise.all([ +// getBuryLeash, +// getBuryLeashHistories, +// getDayData, +// getFactory, +// getLeashToken, +// getEthPrice, +// ]); +// }, 60000); +// +// const { +// leashStakedUSD, +// leashHarvestedUSD, +// xLeashMinted, +// xLeashBurned, +// xLeash, +// apr, +// apy, +// fees, +// } = histories.reduce( +// (previousValue, currentValue) => { +// const date = currentValue.date * 1000; +// const dayData = dayDatas.find((d) => d.date === currentValue.date); +// previousValue["leashStakedUSD"].push({ +// date, +// value: parseFloat(currentValue.leashStakedUSD), +// }); +// previousValue["leashHarvestedUSD"].push({ +// date, +// value: parseFloat(currentValue.leashHarvestedUSD), +// }); +// +// previousValue["xLeashMinted"].push({ +// date, +// value: parseFloat(currentValue.xLeashMinted), +// }); +// previousValue["xLeashBurned"].push({ +// date, +// value: parseFloat(currentValue.xLeashBurned), +// }); +// previousValue["xLeash"].push({ +// date, +// value: parseFloat(currentValue.xLeashSupply), +// }); +// const apr = +// (((dayData.volumeUSD * 0.01 * 0.01) / currentValue.xLeashSupply) * +// 365) / +// (currentValue.ratio * leashPrice); +// previousValue["apr"].push({ +// date, +// value: parseFloat(apr * 100), +// }); +// previousValue["apy"].push({ +// date, +// value: parseFloat((Math.pow(1 + apr / 365, 365) - 1) * 100), +// }); +// previousValue["fees"].push({ +// date, +// value: parseFloat(dayData.volumeUSD * 0.005), +// }); +// return previousValue; +// }, +// { +// leashStakedUSD: [], +// leashHarvestedUSD: [], +// xLeashMinted: [], +// xLeashBurned: [], +// xLeash: [], +// apr: [], +// apy: [], +// fees: [], +// } +// ); +// +// const averageApy = +// apy.reduce((previousValue, currentValue) => { +// return previousValue + currentValue.value; +// }, 0) / apy.length; +// +// const oneDayVolume = factory.volumeUSD - factory.oneDay.volumeUSD; +// +// const APR = +// (((oneDayVolume * 0.05 * 0.01) / bury.totalSupply) * 365) / +// (bury.ratio * leashPrice); +// +// const APY = Math.pow(1 + APR / 365, 365) - 1; +// +// return ( +// +// +// Bury Leash | ShibaSwap Analytics +// +// +// +// +// +// {/* +// +// */} +// +// +// +// +// +// +// +// +// +// {/* +// +// */} +// +// +// +// +// +// +// {/* +// +// +// +// */} +// +// +// +// +// {({ width, height }) => ( +// +// )} +// +// +// +// +// +// +// +// {({ width, height }) => ( +// +// )} +// +// +// +// +// {/* +// +// +// {({ width, height }) => ( +// +// )} +// +// +// */} +// +// +// +// +// {({ width, height }) => ( +// +// )} +// +// +// +// +// +// +// +// {({ width, height }) => ( +// +// )} +// +// +// +// +// +// +// +// {({ width, height }) => ( +// +// )} +// +// +// +// {/* */} +// +// +// +// {/*

{JSON.stringify(bury, null, 2)}
*/} +//
+// ); +// } +// +// export async function getStaticProps() { +// const client = getApollo(); +// await getBuryLeash(client); +// await getBuryLeashHistories(client); +// await getFactory(client); +// await getDayData(client); +// await getLeashToken(client); +// await getEthPrice(client); +// return { +// props: { +// initialApolloState: client.cache.extract(), +// }, +// revalidate: 1, +// }; +// } +// +// export default BuryLeashPage; diff --git a/src/pages/pools/[id].js b/src/pages/pools/[id].js index c970ad2..b446512 100644 --- a/src/pages/pools/[id].js +++ b/src/pages/pools/[id].js @@ -32,7 +32,7 @@ import { } from "app/core"; import Head from "next/head"; -import { POOL_DENY } from "app/core/constants"; +import {BONE_TOKEN_ADDRESS, POOL_DENY} from "app/core/constants"; import { ParentSize } from "@visx/responsive"; import { deepPurple } from "@material-ui/core/colors"; import { useQuery } from "@apollo/client"; @@ -87,7 +87,7 @@ function PoolPage() { data: { token }, } = useQuery(tokenQuery, { variables: { - id: "0x9813037ee2218799597d83d4a5b6f3b6778218d9", + id: BONE_TOKEN_ADDRESS, }, }); diff --git a/src/pages/users/[id].js b/src/pages/users/[id].js index 0f64931..93f66a3 100644 --- a/src/pages/users/[id].js +++ b/src/pages/users/[id].js @@ -26,7 +26,7 @@ import { getLatestBlock, getPairs, getPoolUser, - getBoneToken, + getSushiToken, getToken, getUser, latestBlockQuery, @@ -119,7 +119,7 @@ function UserPage() { // () => // Promise.all([ // getPairs, - // getBoneToken, + // getSushiToken, // getPoolUser(id.toLowerCase()), // getBarUser(id.toLocaleLowerCase()), // getEthPrice, @@ -131,18 +131,18 @@ function UserPage() { parseFloat(token?.derivedETH) * parseFloat(bundles[0].ethPrice); // BAR - const xShib = parseFloat(barData?.user?.xShib); + const xSushi = parseFloat(barData?.user?.xSushi); const barPending = - (xShib * parseFloat(barData?.user?.bar?.sushiStaked)) / + (xSushi * parseFloat(barData?.user?.bar?.sushiStaked)) / parseFloat(barData?.user?.bar?.totalSupply); - const xShibTransfered = - barData?.user?.xShibIn > barData?.user?.xShibOut - ? parseFloat(barData?.user?.xShibIn) - - parseFloat(barData?.user?.xShibOut) - : parseFloat(barData?.user?.xShibOut) - - parseFloat(barData?.user?.xShibIn); + const xSushiTransfered = + barData?.user?.xSushiIn > barData?.user?.xSushiOut + ? parseFloat(barData?.user?.xSushiIn) - + parseFloat(barData?.user?.xSushiOut) + : parseFloat(barData?.user?.xSushiOut) - + parseFloat(barData?.user?.xSushiIn); const barStaked = barData?.user?.sushiStaked; @@ -153,9 +153,9 @@ function UserPage() { const barPendingUSD = barPending > 0 ? barPending * sushiPrice : 0; - const buryRoiShib = + const barRoiSushi = barPending - - (parseFloat(barData?.user?.shibStaked) - + (parseFloat(barData?.user?.sushiStaked) - parseFloat(barData?.user?.sushiHarvested) + parseFloat(barData?.user?.sushiIn) - parseFloat(barData?.user?.sushiOut)); @@ -227,7 +227,7 @@ function UserPage() { return ( - User {id} | ShibaSwap Analytics + User {id} | SushiSwap Analytics @@ -247,7 +247,7 @@ function UserPage() { {!barData?.user?.bar ? ( - Address isn't in the bar... + Address isn't in the bar... ) : ( <> @@ -312,7 +312,7 @@ function UserPage() { - BONE + SUSHI {/* xSUSHI @@ -464,7 +464,7 @@ function UserPage() { const token0 = pair.reserve0 * share; const token1 = pair.reserve1 * share; - const pendingBone = + const pendingSushi = ((user.amount * user.pool.accBonePerShare) / 1e12 - user.rewardDebt) / 1e18; @@ -474,7 +474,7 @@ function UserPage() { // user, // user.entryUSD, // user.exitUSD, - // pendingBone * sushiPrice + // pendingSushi * sushiPrice // ); return ( @@ -524,17 +524,17 @@ function UserPage() { - {decimalFormatter.format(pendingBone)} ( + {decimalFormatter.format(pendingSushi)} ( {currencyFormatter.format( - pendingBone * sushiPrice + pendingSushi * sushiPrice )} ) - {decimalFormatter.format(user.sushiHarvested)} ( - {currencyFormatter.format(user.sushiHarvestedUSD)}) + {decimalFormatter.format(user.boneHarvested)} ( + {currencyFormatter.format(user.boneHarvestedUSD)}) @@ -542,8 +542,8 @@ function UserPage() { {currencyFormatter.format( parseFloat(pair.reserveUSD * share) + parseFloat(user.exitUSD) + - parseFloat(user.sushiHarvestedUSD) + - parseFloat(pendingBone * sushiPrice) - + parseFloat(user.boneHarvestedUSD) + + parseFloat(pendingSushi * sushiPrice) - parseFloat(user.entryUSD) )} @@ -569,7 +569,7 @@ export async function getStaticProps({ params }) { await getEthPrice(client); - await getBoneToken(client); + await getSushiToken(client); await getBarUser(id.toLowerCase(), client); From 726622e68bb1242fad0af070d390753fd5fecf99 Mon Sep 17 00:00:00 2001 From: kaal Date: Tue, 13 Jul 2021 10:24:08 -0400 Subject: [PATCH 15/34] Bury changes --- src/pages/bury-leash/index.js | 371 ---------------------------------- 1 file changed, 371 deletions(-) delete mode 100644 src/pages/bury-leash/index.js diff --git a/src/pages/bury-leash/index.js b/src/pages/bury-leash/index.js deleted file mode 100644 index 805163a..0000000 --- a/src/pages/bury-leash/index.js +++ /dev/null @@ -1,371 +0,0 @@ -// import { AppShell, Curves, KPI } from "app/components"; -// import { Grid, Paper, useTheme } from "@material-ui/core"; -// import { -// buryLeashHistoriesQuery, -// buryLeashQuery, -// dayDatasQuery, -// ethPriceQuery, -// factoryQuery, -// getApollo, -// getBuryLeash, -// getBuryLeashHistories, -// getDayData, -// getEthPrice, -// getFactory, -// getLeashToken, -// tokenQuery, -// useInterval, -// } from "app/core"; -// -// import Chart from "../../components/Chart"; -// import Head from "next/head"; -// import { ParentSize } from "@visx/responsive"; -// import React from "react"; -// import { makeStyles } from "@material-ui/core/styles"; -// import { useQuery } from "@apollo/client"; -// // import {getBuryLeash, getBuryLeashHistories} from "../../core/api/bury-leash"; -// -// const useStyles = makeStyles((theme) => ({ -// charts: { -// flexGrow: 1, -// marginBottom: theme.spacing(4), -// }, -// paper: { -// padding: theme.spacing(2), -// // textAlign: "center", -// color: theme.palette.text.secondary, -// }, -// })); -// -// function BuryLeashPage() { -// const classes = useStyles(); -// -// const theme = useTheme(); -// -// const { -// data: { bury }, -// } = useQuery(buryLeashQuery, { -// context: { -// clientName: "buryLeash", -// }, -// }); -// -// const { -// data: { histories }, -// } = useQuery(buryLeashHistoriesQuery, { -// context: { -// clientName: "buryLeash", -// }, -// }); -// -// const { -// data: { factory }, -// } = useQuery(factoryQuery); -// -// // TODO CHANGE -// const { -// data: { token }, -// } = useQuery(tokenQuery, { -// variables: { -// id: "0x27c70cd1946795b66be9d954418546998b546634", -// }, -// }); -// -// const { -// data: { bundles }, -// } = useQuery(ethPriceQuery); -// -// const { -// data: { dayDatas }, -// } = useQuery(dayDatasQuery); -// -// const leashPrice = -// parseFloat(token?.derivedETH) * parseFloat(bundles[0].ethPrice); -// -// useInterval(async () => { -// await Promise.all([ -// getBuryLeash, -// getBuryLeashHistories, -// getDayData, -// getFactory, -// getLeashToken, -// getEthPrice, -// ]); -// }, 60000); -// -// const { -// leashStakedUSD, -// leashHarvestedUSD, -// xLeashMinted, -// xLeashBurned, -// xLeash, -// apr, -// apy, -// fees, -// } = histories.reduce( -// (previousValue, currentValue) => { -// const date = currentValue.date * 1000; -// const dayData = dayDatas.find((d) => d.date === currentValue.date); -// previousValue["leashStakedUSD"].push({ -// date, -// value: parseFloat(currentValue.leashStakedUSD), -// }); -// previousValue["leashHarvestedUSD"].push({ -// date, -// value: parseFloat(currentValue.leashHarvestedUSD), -// }); -// -// previousValue["xLeashMinted"].push({ -// date, -// value: parseFloat(currentValue.xLeashMinted), -// }); -// previousValue["xLeashBurned"].push({ -// date, -// value: parseFloat(currentValue.xLeashBurned), -// }); -// previousValue["xLeash"].push({ -// date, -// value: parseFloat(currentValue.xLeashSupply), -// }); -// const apr = -// (((dayData.volumeUSD * 0.01 * 0.01) / currentValue.xLeashSupply) * -// 365) / -// (currentValue.ratio * leashPrice); -// previousValue["apr"].push({ -// date, -// value: parseFloat(apr * 100), -// }); -// previousValue["apy"].push({ -// date, -// value: parseFloat((Math.pow(1 + apr / 365, 365) - 1) * 100), -// }); -// previousValue["fees"].push({ -// date, -// value: parseFloat(dayData.volumeUSD * 0.005), -// }); -// return previousValue; -// }, -// { -// leashStakedUSD: [], -// leashHarvestedUSD: [], -// xLeashMinted: [], -// xLeashBurned: [], -// xLeash: [], -// apr: [], -// apy: [], -// fees: [], -// } -// ); -// -// const averageApy = -// apy.reduce((previousValue, currentValue) => { -// return previousValue + currentValue.value; -// }, 0) / apy.length; -// -// const oneDayVolume = factory.volumeUSD - factory.oneDay.volumeUSD; -// -// const APR = -// (((oneDayVolume * 0.05 * 0.01) / bury.totalSupply) * 365) / -// (bury.ratio * leashPrice); -// -// const APY = Math.pow(1 + APR / 365, 365) - 1; -// -// return ( -// -// -// Bury Leash | ShibaSwap Analytics -// -// -// -// -// -// {/* -// -// */} -// -// -// -// -// -// -// -// -// -// {/* -// -// */} -// -// -// -// -// -// -// {/* -// -// -// -// */} -// -// -// -// -// {({ width, height }) => ( -// -// )} -// -// -// -// -// -// -// -// {({ width, height }) => ( -// -// )} -// -// -// -// -// {/* -// -// -// {({ width, height }) => ( -// -// )} -// -// -// */} -// -// -// -// -// {({ width, height }) => ( -// -// )} -// -// -// -// -// -// -// -// {({ width, height }) => ( -// -// )} -// -// -// -// -// -// -// -// {({ width, height }) => ( -// -// )} -// -// -// -// {/* */} -// -// -// -// {/*
{JSON.stringify(bury, null, 2)}
*/} -//
-// ); -// } -// -// export async function getStaticProps() { -// const client = getApollo(); -// await getBuryLeash(client); -// await getBuryLeashHistories(client); -// await getFactory(client); -// await getDayData(client); -// await getLeashToken(client); -// await getEthPrice(client); -// return { -// props: { -// initialApolloState: client.cache.extract(), -// }, -// revalidate: 1, -// }; -// } -// -// export default BuryLeashPage; From 9a0f4fb06ea1f40607a040729d1097be07eadacf Mon Sep 17 00:00:00 2001 From: priya Date: Tue, 13 Jul 2021 21:24:32 +0530 Subject: [PATCH 16/34] fixed the css and color of the dashboard --- public/icons/all_icon.svg | 1 + public/icons/bury_bone.svg | 1 + public/icons/bury_leash.svg | 1 + public/icons/bury_shib.svg | 1 + public/icons/doggo_icon.svg | 1 + public/icons/dogpark_icon.svg | 1 + public/icons/header_icon.svg | 1 + public/icons/pairs_icon.svg | 1 + public/icons/pools_icon.svg | 1 + public/icons/portfolio_icon.svg | 1 + public/icons/puppy_icon.svg | 1 + public/icons/recent_icon.svg | 1 + public/icons/tokens_icon.svg | 1 + src/components/AppBar.js | 3 ++- src/components/AppNavigation.js | 2 +- src/components/Curves.js | 6 +++--- 16 files changed, 19 insertions(+), 5 deletions(-) create mode 100644 public/icons/all_icon.svg create mode 100644 public/icons/bury_bone.svg create mode 100644 public/icons/bury_leash.svg create mode 100644 public/icons/bury_shib.svg create mode 100644 public/icons/doggo_icon.svg create mode 100644 public/icons/dogpark_icon.svg create mode 100644 public/icons/header_icon.svg create mode 100644 public/icons/pairs_icon.svg create mode 100644 public/icons/pools_icon.svg create mode 100644 public/icons/portfolio_icon.svg create mode 100644 public/icons/puppy_icon.svg create mode 100644 public/icons/recent_icon.svg create mode 100644 public/icons/tokens_icon.svg diff --git a/public/icons/all_icon.svg b/public/icons/all_icon.svg new file mode 100644 index 0000000..14f4337 --- /dev/null +++ b/public/icons/all_icon.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/icons/bury_bone.svg b/public/icons/bury_bone.svg new file mode 100644 index 0000000..3687ca9 --- /dev/null +++ b/public/icons/bury_bone.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/icons/bury_leash.svg b/public/icons/bury_leash.svg new file mode 100644 index 0000000..4a7cc60 --- /dev/null +++ b/public/icons/bury_leash.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/icons/bury_shib.svg b/public/icons/bury_shib.svg new file mode 100644 index 0000000..70a9e3f --- /dev/null +++ b/public/icons/bury_shib.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/icons/doggo_icon.svg b/public/icons/doggo_icon.svg new file mode 100644 index 0000000..8c8d7f5 --- /dev/null +++ b/public/icons/doggo_icon.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/icons/dogpark_icon.svg b/public/icons/dogpark_icon.svg new file mode 100644 index 0000000..ade4e4b --- /dev/null +++ b/public/icons/dogpark_icon.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/icons/header_icon.svg b/public/icons/header_icon.svg new file mode 100644 index 0000000..0325900 --- /dev/null +++ b/public/icons/header_icon.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/icons/pairs_icon.svg b/public/icons/pairs_icon.svg new file mode 100644 index 0000000..369b5dd --- /dev/null +++ b/public/icons/pairs_icon.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/icons/pools_icon.svg b/public/icons/pools_icon.svg new file mode 100644 index 0000000..a67cd79 --- /dev/null +++ b/public/icons/pools_icon.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/icons/portfolio_icon.svg b/public/icons/portfolio_icon.svg new file mode 100644 index 0000000..bb6970a --- /dev/null +++ b/public/icons/portfolio_icon.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/icons/puppy_icon.svg b/public/icons/puppy_icon.svg new file mode 100644 index 0000000..ebc21fa --- /dev/null +++ b/public/icons/puppy_icon.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/icons/recent_icon.svg b/public/icons/recent_icon.svg new file mode 100644 index 0000000..4c3e9f0 --- /dev/null +++ b/public/icons/recent_icon.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/icons/tokens_icon.svg b/public/icons/tokens_icon.svg new file mode 100644 index 0000000..40619ed --- /dev/null +++ b/public/icons/tokens_icon.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/components/AppBar.js b/src/components/AppBar.js index 5d3c44c..75d2af2 100644 --- a/src/components/AppBar.js +++ b/src/components/AppBar.js @@ -25,6 +25,7 @@ import { darkModeVar } from "app/core"; import useDetect from "../core/hooks/useDetect"; import { useReactiveVar } from "@apollo/client"; import { useRouter } from "next/router"; +import { Avatar } from "@material-ui/core"; const useStyles = makeStyles((theme) => ({ root: { @@ -139,7 +140,7 @@ export default function AppBar({ justifyContent="space-around" > router.push("/")}> - + {/* */} ShibaSwap Analytics diff --git a/src/components/AppNavigation.js b/src/components/AppNavigation.js index 78284b6..b215674 100644 --- a/src/components/AppNavigation.js +++ b/src/components/AppNavigation.js @@ -120,7 +120,7 @@ export default function AppNavigation() { - + diff --git a/src/components/Curves.js b/src/components/Curves.js index fac98ae..28a54d9 100644 --- a/src/components/Curves.js +++ b/src/components/Curves.js @@ -32,7 +32,7 @@ const PATTERN_ID = "brush_pattern"; const accentColor = deepPurple[400]; const selectedBrushStyle = { - fill: `url(#${PATTERN_ID})`, + fill: `#14182438`, stroke: "currentColor", }; @@ -59,8 +59,8 @@ const axisLeftTickLabelProps = { fill: axisColor, }; -const purple1 = "#6c5efb"; -const purple2 = "#c998ff"; +const purple1 = "#bb7928"; +const purple2 = "#edb341"; const purple3 = "#a44afe"; const Curves = ({ From b9d69664b6a2dafc9fe77ac2aa184cfb450d4564 Mon Sep 17 00:00:00 2001 From: priya Date: Wed, 14 Jul 2021 11:34:46 +0530 Subject: [PATCH 17/34] removed the icons and added a pagination --- src/assets/header_icon.svg | 1 + src/components/AppBar.js | 4 +-- src/components/AppNavigation.js | 54 ++++++++++++++++----------------- 3 files changed, 30 insertions(+), 29 deletions(-) create mode 100644 src/assets/header_icon.svg diff --git a/src/assets/header_icon.svg b/src/assets/header_icon.svg new file mode 100644 index 0000000..0325900 --- /dev/null +++ b/src/assets/header_icon.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/components/AppBar.js b/src/components/AppBar.js index 6106a54..247709f 100644 --- a/src/components/AppBar.js +++ b/src/components/AppBar.js @@ -103,7 +103,7 @@ export default function AppBar({ } const page = - router.pathname === "/" ? "Dashboard" : router.pathname.split("/")[1]; + router.pathname === "/" ? "Dog Park" : router.pathname.split("/")[1]; const { isDesktop } = useDetect(); return ( - {page.charAt(0).toUpperCase() + page.slice(1)} + {router.pathname === "/bury-shib" ? 'BURIED Shib' : page.charAt(0).toUpperCase() + page.slice(1) } {/* diff --git a/src/components/AppNavigation.js b/src/components/AppNavigation.js index ac42e56..e91d0fb 100644 --- a/src/components/AppNavigation.js +++ b/src/components/AppNavigation.js @@ -92,9 +92,9 @@ export default function AppNavigation() {
- router.push("/")}> + {/* router.push("/")}> - + */} Bone Analytics @@ -117,9 +117,9 @@ export default function AppNavigation() { selected={router.pathname === "/"} onClick={() => router.push("/")} > - + {/* - + */} @@ -130,10 +130,10 @@ export default function AppNavigation() { selected={router.pathname === "/bury-shib"} onClick={() => router.push("/bury-shib")} > - + {/* - - + */} + {/* {open ? : } */} @@ -191,9 +191,9 @@ export default function AppNavigation() { */} - + {/* - + */} {open ? : } @@ -205,9 +205,9 @@ export default function AppNavigation() { onClick={() => router.push("/pools/recent")} className={classes.nested} > - + {/* - + */} router.push("/pools")} className={classes.nested} > - + {/* - + */} @@ -248,9 +248,9 @@ export default function AppNavigation() { - + {/* - + */} {open ? : } @@ -262,9 +262,9 @@ export default function AppNavigation() { onClick={() => router.push("/pairs/recent")} className={classes.nested} > - + {/* - + */} router.push("/pairs")} className={classes.nested} > - + {/* - + */} @@ -285,9 +285,9 @@ export default function AppNavigation() { onClick={() => router.push("/pairs/gainers")} className={classes.nested} > - + {/* - + */} router.push("/pairs/losers")} className={classes.nested} > - + {/* - + */} @@ -309,9 +309,9 @@ export default function AppNavigation() { selected={router.pathname.includes("tokens")} onClick={() => router.push("/tokens")} > - + {/* - + */} - + {/* - + */} From 8f6a04bccb4aa39f3dc9aa54c19cde87a2fe57a9 Mon Sep 17 00:00:00 2001 From: priya Date: Thu, 15 Jul 2021 10:36:33 +0530 Subject: [PATCH 18/34] fixed the search bar --- src/components/Search.js | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/src/components/Search.js b/src/components/Search.js index 1ecadd0..dae7300 100644 --- a/src/components/Search.js +++ b/src/components/Search.js @@ -120,13 +120,12 @@ export default function Search({ pairs, tokens }) { })} groupBy={(option) => option.__typename} renderInput={(params) => ( - // - <> + )} getOptionLabel={(option) => option.text} renderOption={(option, { inputValue }) => { From 7ce68115910b6849204c2928b9118d05f93f70ec Mon Sep 17 00:00:00 2001 From: priya Date: Thu, 15 Jul 2021 20:48:22 +0530 Subject: [PATCH 19/34] fixed the icon colur --- src/components/AddressAvatar.js | 2 +- src/styles/index.css | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/src/components/AddressAvatar.js b/src/components/AddressAvatar.js index e97cb55..68243ef 100644 --- a/src/components/AddressAvatar.js +++ b/src/components/AddressAvatar.js @@ -5,7 +5,7 @@ import { makeStyles } from "@material-ui/core/styles"; const useStyles = makeStyles((theme) => ({ avatar: { color: theme.palette.getContrastText(deepPurple[500]), - backgroundColor: deepPurple[500], + backgroundColor: `#e7a128`, marginRight: theme.spacing(2), }, })); diff --git a/src/styles/index.css b/src/styles/index.css index 3887f4c..54193de 100644 --- a/src/styles/index.css +++ b/src/styles/index.css @@ -13,7 +13,8 @@ body { .dark-theme body, .dark-theme .MuiInputBase-root, .dark-theme .MuiPaper-root { - background: #141824; + background-color: #202335; + background-image: linear-gradient(to bottom, #0d101a 20px, #141824 700px, #141824); color: #fff; } From 1a487455365fc8b5c2e8ac0c6535d122884ef4c0 Mon Sep 17 00:00:00 2001 From: kaal Date: Thu, 15 Jul 2021 12:24:36 -0400 Subject: [PATCH 20/34] Bury changes --- src/components/AppNavigation.js | 41 ++-- src/components/Transactions.js | 6 +- src/core/apollo/link.js | 14 +- src/core/constants.js | 9 +- src/pages/bury-bone/index.js | 374 +++++++++++++++++++++++++++++++ src/pages/bury-leash/index.js | 375 ++++++++++++++++++++++++++++++++ src/pages/bury-shib/index.js | 4 +- src/pages/tokens/[id].js | 2 +- 8 files changed, 800 insertions(+), 25 deletions(-) create mode 100644 src/pages/bury-bone/index.js create mode 100644 src/pages/bury-leash/index.js diff --git a/src/components/AppNavigation.js b/src/components/AppNavigation.js index e91d0fb..9c316ce 100644 --- a/src/components/AppNavigation.js +++ b/src/components/AppNavigation.js @@ -123,7 +123,6 @@ export default function AppNavigation() { - */} - + {/* {open ? : } */} + router.push("/bury-leash")} + > + {/**/} + {/**/} + {/**/} + + {/* {open ? : } */} + + + + router.push("/bury-bone")} + > + {/**/} + {/**/} + {/**/} + + {/* {open ? : } */} + - {/* router.push("/bury-leash")}*/} - {/*>*/} - {/* */} - {/* */} - {/* */} - {/* */} - {/* /!* {open ? : } *!/*/} - {/**/} {/* @@ -50,8 +50,8 @@ export default function Transactions({ transactions, txCount }) { { key: "__typename", label: "Type", - render: (row) => { - console.log(row) + render: (row) => { + // console.log(row) return ( {row.__typename}{" "} diff --git a/src/core/apollo/link.js b/src/core/apollo/link.js index ce4f684..2616583 100644 --- a/src/core/apollo/link.js +++ b/src/core/apollo/link.js @@ -118,7 +118,19 @@ export default split( return operation.getContext().clientName === "buryShib"; }, buryShib, - exchange + split( + (operation) => { + return operation.getContext().clientName === "buryLeash"; + }, + buryLeash, + split( + (operation) => { + return operation.getContext().clientName === "buryBone"; + }, + buryBone, + exchange + ) + ) ), ) ) diff --git a/src/core/constants.js b/src/core/constants.js index 31f74a3..7fd19c9 100644 --- a/src/core/constants.js +++ b/src/core/constants.js @@ -12,9 +12,10 @@ export const EXCHANGE_CREATED_TIMESTAMP = 1599214239; export const POOL_DENY = []; //"14", "29", "45", "30" export const BONE_TOKEN_ADDRESS = "0x9813037ee2218799597d83d4a5b6f3b6778218d9"; +export const LEASH_TOKEN_ADDRESS = "0x27c70cd1946795b66be9d954418546998b546634"; +export const SHIB_TOKEN_ADDRESS = "0x95ad61b0a150d79219dcf64e1e6cc01f0b64c4ce"; - -export const BURY_SHIB_ADDRESS = ""; -export const BURY_LEASH_ADDRESS = ""; -export const BURY_BONE_ADDRESS = ""; +export const BURY_SHIB_ADDRESS = "0xb4a81261b16b92af0b9f7c4a83f1e885132d81e4"; +export const BURY_LEASH_ADDRESS = "0xa57d319b3cf3ad0e4d19770f71e63cf847263a0b"; +export const BURY_BONE_ADDRESS = "0xf7a0383750fef5abace57cc4c9ff98e3790202b3"; export const TOPDOG_ADDRESS = "0x94235659cf8b805b2c658f9ea2d6d6ddbb17c8d7"; diff --git a/src/pages/bury-bone/index.js b/src/pages/bury-bone/index.js new file mode 100644 index 0000000..70a4eb0 --- /dev/null +++ b/src/pages/bury-bone/index.js @@ -0,0 +1,374 @@ +import { AppShell, Curves, KPI } from "app/components"; +import { Grid, Paper, useTheme } from "@material-ui/core"; +import { + buryBoneHistoriesQuery, + buryBoneQuery, + dayDatasQuery, + ethPriceQuery, + factoryQuery, + getApollo, + getBuryBone, + getBuryBoneHistories, + getDayData, + getEthPrice, + getFactory, + getBoneToken, + tokenQuery, + useInterval, +} from "app/core"; + +import Chart from "../../components/Chart"; +import Head from "next/head"; +import { ParentSize } from "@visx/responsive"; +import React from "react"; +import { makeStyles } from "@material-ui/core/styles"; +import { useQuery } from "@apollo/client"; +import {BONE_TOKEN_ADDRESS} from "app/core/constants"; + +const useStyles = makeStyles((theme) => ({ + charts: { + flexGrow: 1, + marginBottom: theme.spacing(4), + }, + paper: { + padding: theme.spacing(2), + // textAlign: "center", + color: theme.palette.text.secondary, + }, +})); + +function BuryBonePage() { + const classes = useStyles(); + + const theme = useTheme(); + + const results = useQuery(buryBoneQuery, { + context: { + clientName: "buryBone", + }, + }); + + + const { + data: { bury }, + } = results + + const { + data: { histories }, + } = useQuery(buryBoneHistoriesQuery, { + context: { + clientName: "buryBone", + }, + }); + + const { + data: { factory }, + } = useQuery(factoryQuery); + + // TODO CHANGE + const { + data: { token }, + } = useQuery(tokenQuery, { + variables: { + id: BONE_TOKEN_ADDRESS, + }, + }); + + const { + data: { bundles }, + } = useQuery(ethPriceQuery); + + const { + data: { dayDatas }, + } = useQuery(dayDatasQuery); + + const bonePrice = + parseFloat(token?.derivedETH) * parseFloat(bundles[0].ethPrice); + + useInterval(async () => { + await Promise.all([ + getBuryBone, + getBuryBoneHistories, + getDayData, + getFactory, + getBoneToken, + getEthPrice, + ]); + }, 60000); + + const { + boneStakedUSD, + boneHarvestedUSD, + tBoneMinted, + tBoneBurned, + tBone, + apr, + apy, + fees, + } = histories.reduce( + (previousValue, currentValue) => { + const date = currentValue.date * 1000; + const dayData = dayDatas.find((d) => d.date === currentValue.date); + previousValue["boneStakedUSD"].push({ + date, + value: parseFloat(currentValue.boneStakedUSD), + }); + previousValue["boneHarvestedUSD"].push({ + date, + value: parseFloat(currentValue.boneHarvestedUSD), + }); + + previousValue["tBoneMinted"].push({ + date, + value: parseFloat(currentValue.tBoneMinted), + }); + previousValue["tBoneBurned"].push({ + date, + value: parseFloat(currentValue.tBoneBurned), + }); + previousValue["tBone"].push({ + date, + value: parseFloat(currentValue.tBoneSupply), + }); + const apr = + (((dayData.volumeUSD * 0.01 * 0.01) / currentValue.tBoneSupply) * + 365) / + (currentValue.ratio * bonePrice); + previousValue["apr"].push({ + date, + value: parseFloat(apr * 100), + }); + previousValue["apy"].push({ + date, + value: parseFloat((Math.pow(1 + apr / 365, 365) - 1) * 100), + }); + previousValue["fees"].push({ + date, + value: parseFloat(dayData.volumeUSD * 0.005), + }); + return previousValue; + }, + { + boneStakedUSD: [], + boneHarvestedUSD: [], + tBoneMinted: [], + tBoneBurned: [], + tBone: [], + apr: [], + apy: [], + fees: [], + } + ); + + const averageApy = + apy.reduce((previousValue, currentValue) => { + return previousValue + currentValue.value; + }, 0) / apy.length; + + const oneDayVolume = factory.volumeUSD - factory.oneDay.volumeUSD; + + const APR = + (((oneDayVolume * 0.05 * 0.01) / bury.totalSupply) * 365) / + (bury.ratio * bonePrice); + + const APY = Math.pow(1 + APR / 365, 365) - 1; + + return ( + + + Bury Bone | ShibaSwap Analytics + + + + + + {/* + + */} + + + + + + + + + + {/* + + */} + + + + + + + {/* + + + + */} + + + + + {({ width, height }) => ( + + )} + + + + + + + + {({ width, height }) => ( + + )} + + + + + {/* + + + {({ width, height }) => ( + + )} + + + */} + + + + + {({ width, height }) => ( + + )} + + + + + + + + {({ width, height }) => ( + + )} + + + + + + + + {({ width, height }) => ( + + )} + + + + {/* */} + + + + {/*
{JSON.stringify(bury, null, 2)}
*/} +
+ ); +} + +export async function getStaticProps() { + const client = getApollo(); + await getBuryBone(client); + await getBuryBoneHistories(client); + await getFactory(client); + await getDayData(client); + await getBoneToken(client); + await getEthPrice(client); + return { + props: { + initialApolloState: client.cache.extract(), + }, + revalidate: 1, + }; +} + +export default BuryBonePage; diff --git a/src/pages/bury-leash/index.js b/src/pages/bury-leash/index.js new file mode 100644 index 0000000..e4f693d --- /dev/null +++ b/src/pages/bury-leash/index.js @@ -0,0 +1,375 @@ +import { AppShell, Curves, KPI } from "app/components"; +import { Grid, Paper, useTheme } from "@material-ui/core"; +import { + buryLeashHistoriesQuery, + buryLeashQuery, + dayDatasQuery, + ethPriceQuery, + factoryQuery, + getApollo, + getBuryLeash, + getBuryLeashHistories, + getDayData, + getEthPrice, + getFactory, + getLeashToken, + tokenQuery, + useInterval, +} from "app/core"; + +import Chart from "../../components/Chart"; +import Head from "next/head"; +import { ParentSize } from "@visx/responsive"; +import React from "react"; +import { makeStyles } from "@material-ui/core/styles"; +import { useQuery } from "@apollo/client"; +import {LEASH_TOKEN_ADDRESS} from "app/core/constants"; + +const useStyles = makeStyles((theme) => ({ + charts: { + flexGrow: 1, + marginBottom: theme.spacing(4), + }, + paper: { + padding: theme.spacing(2), + // textAlign: "center", + color: theme.palette.text.secondary, + }, +})); + +function BuryLeashPage() { + const classes = useStyles(); + + const theme = useTheme(); + + const results = useQuery(buryLeashQuery, { + context: { + clientName: "buryLeash", + }, + }); + + // console.log(results); + + const { + data: { bury }, + } = results + + const { + data: { histories }, + } = useQuery(buryLeashHistoriesQuery, { + context: { + clientName: "buryLeash", + }, + }); + + const { + data: { factory }, + } = useQuery(factoryQuery); + + // TODO CHANGE + const { + data: { token }, + } = useQuery(tokenQuery, { + variables: { + id: LEASH_TOKEN_ADDRESS, + }, + }); + + const { + data: { bundles }, + } = useQuery(ethPriceQuery); + + const { + data: { dayDatas }, + } = useQuery(dayDatasQuery); + + const leashPrice = + parseFloat(token?.derivedETH) * parseFloat(bundles[0].ethPrice); + + useInterval(async () => { + await Promise.all([ + getBuryLeash, + getBuryLeashHistories, + getDayData, + getFactory, + getLeashToken, + getEthPrice, + ]); + }, 60000); + + const { + leashStakedUSD, + leashHarvestedUSD, + xLeashMinted, + xLeashBurned, + xLeash, + apr, + apy, + fees, + } = histories.reduce( + (previousValue, currentValue) => { + const date = currentValue.date * 1000; + const dayData = dayDatas.find((d) => d.date === currentValue.date); + previousValue["leashStakedUSD"].push({ + date, + value: parseFloat(currentValue.leashStakedUSD), + }); + previousValue["leashHarvestedUSD"].push({ + date, + value: parseFloat(currentValue.leashHarvestedUSD), + }); + + previousValue["xLeashMinted"].push({ + date, + value: parseFloat(currentValue.xLeashMinted), + }); + previousValue["xLeashBurned"].push({ + date, + value: parseFloat(currentValue.xLeashBurned), + }); + previousValue["xLeash"].push({ + date, + value: parseFloat(currentValue.xLeashSupply), + }); + const apr = + (((dayData.volumeUSD * 0.01 * 0.01) / currentValue.xLeashSupply) * + 365) / + (currentValue.ratio * leashPrice); + previousValue["apr"].push({ + date, + value: parseFloat(apr * 100), + }); + previousValue["apy"].push({ + date, + value: parseFloat((Math.pow(1 + apr / 365, 365) - 1) * 100), + }); + previousValue["fees"].push({ + date, + value: parseFloat(dayData.volumeUSD * 0.005), + }); + return previousValue; + }, + { + leashStakedUSD: [], + leashHarvestedUSD: [], + xLeashMinted: [], + xLeashBurned: [], + xLeash: [], + apr: [], + apy: [], + fees: [], + } + ); + + const averageApy = + apy.reduce((previousValue, currentValue) => { + return previousValue + currentValue.value; + }, 0) / apy.length; + + const oneDayVolume = factory.volumeUSD - factory.oneDay.volumeUSD; + + const APR = + (((oneDayVolume * 0.05 * 0.01) / bury.totalSupply) * 365) / + (bury.ratio * leashPrice); + + const APY = Math.pow(1 + APR / 365, 365) - 1; + + return ( + + + Bury Leash | ShibaSwap Analytics + + + + + + {/* + + */} + + + + + + + + + + {/* + + */} + + + + + + + {/* + + + + */} + + + + + {({ width, height }) => ( + + )} + + + + + + + + {({ width, height }) => ( + + )} + + + + + {/* + + + {({ width, height }) => ( + + )} + + + */} + + + + + {({ width, height }) => ( + + )} + + + + + + + + {({ width, height }) => ( + + )} + + + + + + + + {({ width, height }) => ( + + )} + + + + {/* */} + + + + {/*
{JSON.stringify(bury, null, 2)}
*/} +
+ ); +} + +export async function getStaticProps() { + const client = getApollo(); + await getBuryLeash(client); + await getBuryLeashHistories(client); + await getFactory(client); + await getDayData(client); + await getLeashToken(client); + await getEthPrice(client); + return { + props: { + initialApolloState: client.cache.extract(), + }, + revalidate: 1, + }; +} + +export default BuryLeashPage; diff --git a/src/pages/bury-shib/index.js b/src/pages/bury-shib/index.js index 0d87e21..4858a97 100644 --- a/src/pages/bury-shib/index.js +++ b/src/pages/bury-shib/index.js @@ -23,7 +23,7 @@ import { ParentSize } from "@visx/responsive"; import React from "react"; import { makeStyles } from "@material-ui/core/styles"; import { useQuery } from "@apollo/client"; -// import {getBuryShib, getBuryShibHistories} from "../../core/api/bury-shib"; +import {SHIB_TOKEN_ADDRESS} from "app/core/constants"; const useStyles = makeStyles((theme) => ({ charts: { @@ -67,7 +67,7 @@ function BuryShibPage() { data: { token }, } = useQuery(tokenQuery, { variables: { - id: "0x95ad61b0a150d79219dcf64e1e6cc01f0b64c4ce", + id: SHIB_TOKEN_ADDRESS, }, }); diff --git a/src/pages/tokens/[id].js b/src/pages/tokens/[id].js index fa98f33..5c3730a 100644 --- a/src/pages/tokens/[id].js +++ b/src/pages/tokens/[id].js @@ -92,7 +92,7 @@ function TokenPage() { pollInterval: 60000, }); - console.log({ token }) + // console.log({ token }) const { data: oneDayEthPriceData } = useQuery(oneDayEthPriceQuery); From 6c4d36cb1a4f7af6cddd95dde620ce4e8a9c7ea3 Mon Sep 17 00:00:00 2001 From: unknown Date: Thu, 15 Jul 2021 23:16:56 +0530 Subject: [PATCH 21/34] bury APRs --- src/pages/bury-bone/index.js | 10 ++++++++-- src/pages/bury-leash/index.js | 10 ++++++++-- src/pages/bury-shib/index.js | 14 ++++++++++---- 3 files changed, 26 insertions(+), 8 deletions(-) diff --git a/src/pages/bury-bone/index.js b/src/pages/bury-bone/index.js index 70a4eb0..871c152 100644 --- a/src/pages/bury-bone/index.js +++ b/src/pages/bury-bone/index.js @@ -167,11 +167,14 @@ function BuryBonePage() { const oneDayVolume = factory.volumeUSD - factory.oneDay.volumeUSD; + const boneApr = dayDatas && (((parseFloat(dayDatas[0]?.volumeUSD) * (0.05 / 3) * 0.2) / parseFloat(bury?.totalSupply)) * 365) + / (parseFloat(bury?.ratio) * bonePrice) + const APR = (((oneDayVolume * 0.05 * 0.01) / bury.totalSupply) * 365) / (bury.ratio * bonePrice); - const APY = Math.pow(1 + APR / 365, 365) - 1; + const APY = Math.pow(1 + boneApr / 365, 365) - 1; return ( @@ -191,8 +194,11 @@ function BuryBonePage() { - + {/* + */} + + diff --git a/src/pages/bury-leash/index.js b/src/pages/bury-leash/index.js index e4f693d..b09043f 100644 --- a/src/pages/bury-leash/index.js +++ b/src/pages/bury-leash/index.js @@ -168,11 +168,14 @@ function BuryLeashPage() { const oneDayVolume = factory.volumeUSD - factory.oneDay.volumeUSD; + const leashApr = dayDatas && (((parseFloat(dayDatas[0]?.volumeUSD) * (0.05 / 3) * 0.2) / parseFloat(bury?.totalSupply)) * 365) + / (parseFloat(bury?.ratio) * leashPrice) + const APR = (((oneDayVolume * 0.05 * 0.01) / bury.totalSupply) * 365) / (bury.ratio * leashPrice); - const APY = Math.pow(1 + APR / 365, 365) - 1; + const APY = Math.pow(1 + leashApr / 365, 365) - 1; return ( @@ -192,8 +195,11 @@ function BuryLeashPage() { - + {/* + */} + + diff --git a/src/pages/bury-shib/index.js b/src/pages/bury-shib/index.js index 4858a97..9924482 100644 --- a/src/pages/bury-shib/index.js +++ b/src/pages/bury-shib/index.js @@ -14,7 +14,7 @@ import { getFactory, getShibToken, tokenQuery, - useInterval, + useInterval } from "app/core"; import Chart from "../../components/Chart"; @@ -164,11 +164,14 @@ function BuryShibPage() { const oneDayVolume = factory.volumeUSD - factory.oneDay.volumeUSD; + const shibApr = dayDatas && (((parseFloat(dayDatas[0]?.volumeUSD) * (0.05 / 3) * 0.2) / parseFloat(bury?.totalSupply)) * 365) + / (parseFloat(bury?.ratio) * shibPrice) + const APR = - (((oneDayVolume * 0.05 * 0.01) / bury.totalSupply) * 365) / + (((oneDayVolume * (0.05 / 3) * 0.2) / bury.totalSupply) * 365) / (bury.ratio * shibPrice); - const APY = Math.pow(1 + APR / 365, 365) - 1; + const APY = Math.pow(1 + shibApr / 365, 365) - 1; return ( @@ -188,8 +191,11 @@ function BuryShibPage() { - + {/* + */} + + From e6402abf1e93536cefaef044a4ac13fd5afb63a4 Mon Sep 17 00:00:00 2001 From: kaal Date: Thu, 15 Jul 2021 14:49:49 -0400 Subject: [PATCH 22/34] Bury changes --- src/pages/users/[id].js | 61 +++++++++++++++++++++-------------------- 1 file changed, 31 insertions(+), 30 deletions(-) diff --git a/src/pages/users/[id].js b/src/pages/users/[id].js index 93f66a3..4b30490 100644 --- a/src/pages/users/[id].js +++ b/src/pages/users/[id].js @@ -37,13 +37,13 @@ import { tokenQuery, useInterval, userIdsQuery, - userQuery, + userQuery, buryShibUserQuery, } from "app/core"; import { getUnixTime, startOfMinute, startOfSecond } from "date-fns"; import { AvatarGroup } from "@material-ui/lab"; import Head from "next/head"; -import { POOL_DENY } from "app/core/constants"; +import {BONE_TOKEN_ADDRESS, POOL_DENY} from "app/core/constants"; import { toChecksumAddress } from "web3-utils"; import { useQuery } from "@apollo/client"; import { useRouter } from "next/router"; @@ -77,14 +77,15 @@ function UserPage() { pollInterval: 60000, }); - const { data: barData } = useQuery(barUserQuery, { + const { data: barData } = useQuery(buryShibUserQuery, { variables: { id: id.toLowerCase(), }, context: { - clientName: "bar", + clientName: "buryShib", }, }); + console.log(barData) const { data: poolData } = useQuery(poolUserQuery, { variables: { @@ -99,7 +100,7 @@ function UserPage() { data: { token }, } = useQuery(tokenQuery, { variables: { - id: "0x9813037ee2218799597d83d4a5b6f3b6778218d9", + id: BONE_TOKEN_ADDRESS, }, }); @@ -127,33 +128,33 @@ function UserPage() { // 60000 // ); - const sushiPrice = + const bonePrice = parseFloat(token?.derivedETH) * parseFloat(bundles[0].ethPrice); // BAR - const xSushi = parseFloat(barData?.user?.xSushi); + const xShib = parseFloat(barData?.user?.xShib); const barPending = - (xSushi * parseFloat(barData?.user?.bar?.sushiStaked)) / + (xShib * parseFloat(barData?.user?.bar?.shibStaked)) / parseFloat(barData?.user?.bar?.totalSupply); - const xSushiTransfered = - barData?.user?.xSushiIn > barData?.user?.xSushiOut - ? parseFloat(barData?.user?.xSushiIn) - - parseFloat(barData?.user?.xSushiOut) - : parseFloat(barData?.user?.xSushiOut) - - parseFloat(barData?.user?.xSushiIn); + const xShibTransfered = + barData?.user?.xShibIn > barData?.user?.xShibOut + ? parseFloat(barData?.user?.xShibIn) - + parseFloat(barData?.user?.xShibOut) + : parseFloat(barData?.user?.xShibOut) - + parseFloat(barData?.user?.xShibIn); - const barStaked = barData?.user?.sushiStaked; + const barStaked = barData?.user?.shibStaked; - const barStakedUSD = barData?.user?.sushiStakedUSD; + const barStakedUSD = barData?.user?.shibStakedUSD; - const barHarvested = barData?.user?.sushiHarvested; - const barHarvestedUSD = barData?.user?.sushiHarvestedUSD; + const barHarvested = barData?.user?.shibHarvested; + const barHarvestedUSD = barData?.user?.shibHarvestedUSD; const barPendingUSD = barPending > 0 ? barPending * sushiPrice : 0; - const barRoiSushi = + const barRoiShib = barPending - (parseFloat(barData?.user?.sushiStaked) - parseFloat(barData?.user?.sushiHarvested) + @@ -198,7 +199,7 @@ function UserPage() { currentValue.rewardDebt) / 1e18 ); - }, 0) * sushiPrice; + }, 0) * bonePrice; const [ poolEntriesUSD, @@ -210,7 +211,7 @@ function UserPage() { return [ entries + parseFloat(currentValue.entryUSD), exits + parseFloat(currentValue.exitUSD), - harvested + parseFloat(currentValue.sushiHarvestedUSD), + harvested + parseFloat(currentValue.boneHarvestedUSD), ]; }, [0, 0, 0] @@ -227,7 +228,7 @@ function UserPage() { return ( - User {id} | SushiSwap Analytics + User {id} | ShibaSwap Analytics @@ -236,14 +237,14 @@ function UserPage() {
- - Bar - + {/**/} + {/* Bar*/} + {/**/} {!barData?.user?.bar ? ( From 702873674fa65c5e8c6effa0281353a00c7f3416 Mon Sep 17 00:00:00 2001 From: devVasuki Date: Fri, 16 Jul 2021 08:51:18 +0530 Subject: [PATCH 23/34] file updated with bury logic --- src/pages/pools/[id].js | 4 +- src/pages/users/[id].js | 564 ++++++++++++++++++++++++++++++++++------ 2 files changed, 486 insertions(+), 82 deletions(-) diff --git a/src/pages/pools/[id].js b/src/pages/pools/[id].js index b446512..71bfa46 100644 --- a/src/pages/pools/[id].js +++ b/src/pages/pools/[id].js @@ -25,7 +25,7 @@ import { getPoolHistories, getPoolIds, getPools, - getSushiToken, + getBoneToken, poolHistoryQuery, poolQuery, tokenQuery, @@ -437,7 +437,7 @@ function PoolPage() { export async function getStaticProps({ params: { id } }) { const client = getApollo(); await getEthPrice(client); - await getSushiToken(client); + await getBoneToken(client); await getPool(id, client); await getPoolHistories(id, client); return { diff --git a/src/pages/users/[id].js b/src/pages/users/[id].js index 4b30490..49e4318 100644 --- a/src/pages/users/[id].js +++ b/src/pages/users/[id].js @@ -26,7 +26,7 @@ import { getLatestBlock, getPairs, getPoolUser, - getSushiToken, + getBoneToken, getToken, getUser, latestBlockQuery, @@ -37,13 +37,13 @@ import { tokenQuery, useInterval, userIdsQuery, - userQuery, buryShibUserQuery, + userQuery, buryShibUserQuery, buryLeashUserQuery, buryBoneUserQuery } from "app/core"; import { getUnixTime, startOfMinute, startOfSecond } from "date-fns"; import { AvatarGroup } from "@material-ui/lab"; import Head from "next/head"; -import {BONE_TOKEN_ADDRESS, POOL_DENY} from "app/core/constants"; +import {BONE_TOKEN_ADDRESS, SHIB_TOKEN_ADDRESS, LEASH_TOKEN_ADDRESS, POOL_DENY} from "app/core/constants"; import { toChecksumAddress } from "web3-utils"; import { useQuery } from "@apollo/client"; import { useRouter } from "next/router"; @@ -77,7 +77,7 @@ function UserPage() { pollInterval: 60000, }); - const { data: barData } = useQuery(buryShibUserQuery, { + const { data: buryShibData } = useQuery(buryShibUserQuery, { variables: { id: id.toLowerCase(), }, @@ -85,7 +85,24 @@ function UserPage() { clientName: "buryShib", }, }); - console.log(barData) + + const { data: buryBoneData } = useQuery(buryBoneUserQuery, { + variables: { + id: id.toLowerCase(), + }, + context: { + clientName: "buryBone", + }, + }); + const { data: buryLeashData } = useQuery(buryLeashUserQuery, { + variables: { + id: id.toLowerCase(), + }, + context: { + clientName: "buryLeash", + }, + }); + // console.log(barData) const { data: poolData } = useQuery(poolUserQuery, { variables: { @@ -104,6 +121,24 @@ function UserPage() { }, }); + console.log("token:: ", token) + + const { + data: { shibToken }, + } = useQuery(tokenQuery, { + variables: { + id: SHIB_TOKEN_ADDRESS, + }, + }); + + const { + data: { leashToken }, + } = useQuery(tokenQuery, { + variables: { + id: LEASH_TOKEN_ADDRESS, + }, + }); + const { data: { pairs }, } = useQuery(pairsQuery); @@ -120,7 +155,7 @@ function UserPage() { // () => // Promise.all([ // getPairs, - // getSushiToken, + // getBoneToken, // getPoolUser(id.toLowerCase()), // getBarUser(id.toLocaleLowerCase()), // getEthPrice, @@ -130,55 +165,147 @@ function UserPage() { const bonePrice = parseFloat(token?.derivedETH) * parseFloat(bundles[0].ethPrice); + const shibPrice = + parseFloat(shibToken?.derivedETH) * parseFloat(bundles[0].ethPrice); + const leashPrice = + parseFloat(leashToken?.derivedETH) * parseFloat(bundles[0].ethPrice); + + const { data: blocksData } = useQuery(latestBlockQuery, { + context: { + clientName: "blocklytics", + }, + }); + + // BAR - Bury Bone + const tBone = parseFloat(buryBoneData?.user?.tBone); + + const buryBonePending = + (tBone * parseFloat(buryBoneData?.user?.buries?.boneStaked)) / + parseFloat(buryBoneData?.user?.buries?.totalSupply); + + const tBoneTransfered = + buryBoneData?.user?.tBoneIn > buryBoneData?.user?.tBoneOut + ? parseFloat(buryBoneData?.user?.tBoneIn) - + parseFloat(buryBoneData?.user?.tBoneOut) + : parseFloat(buryBoneData?.user?.tBoneOut) - + parseFloat(buryBoneData?.user?.tBoneIn); - // BAR - const xShib = parseFloat(barData?.user?.xShib); + const buryBoneStaked = buryBoneData?.user?.boneStaked; - const barPending = - (xShib * parseFloat(barData?.user?.bar?.shibStaked)) / - parseFloat(barData?.user?.bar?.totalSupply); + const buryBoneStakedUSD = buryBoneData?.user?.boneStakedUSD; + + const buryBoneHarvested = buryBoneData?.user?.boneHarvested; + const buryBoneHarvestedUSD = buryBoneData?.user?.boneHarvestedUSD; + + const buryBonePendingUSD = buryBonePending > 0 ? buryBonePending * bonePrice : 0; + + const buryBoneRoiBone = + buryBonePending - + (parseFloat(buryBoneData?.user?.boneStaked) - + parseFloat(buryBoneData?.user?.boneHarvested) + + parseFloat(buryBoneData?.user?.boneIn) - + parseFloat(buryBoneData?.user?.boneOut)); + + const buryBoneRoiUSD = + buryBonePendingUSD - + (parseFloat(buryBoneData?.user?.boneStakedUSD) - + parseFloat(buryBoneData?.user?.boneHarvestedUSD) + + parseFloat(buryBoneData?.user?.usdIn) - + parseFloat(buryBoneData?.user?.usdOut)); + + const buryBoneBlockDifference = + parseInt(blocksData?.blocks[0].number) - + parseInt(buryBoneData?.user?.createdAtBlock); + + const buryBoneRoiDailyBone = (buryBoneRoiBone / buryBoneBlockDifference) * 6440; + + // Bury Shib + const xShib = parseFloat(buryShibData?.user?.xShib); + + const buryShibPending = + (xShib * parseFloat(buryShibData?.user?.buries?.shibStaked)) / + parseFloat(buryShibData?.user?.buries?.totalSupply); const xShibTransfered = - barData?.user?.xShibIn > barData?.user?.xShibOut - ? parseFloat(barData?.user?.xShibIn) - - parseFloat(barData?.user?.xShibOut) - : parseFloat(barData?.user?.xShibOut) - - parseFloat(barData?.user?.xShibIn); + buryShibData?.user?.xShibIn > buryShibData?.user?.xShibOut + ? parseFloat(buryShibData?.user?.xShibIn) - + parseFloat(buryShibData?.user?.xShibOut) + : parseFloat(buryShibData?.user?.xShibOut) - + parseFloat(buryShibData?.user?.xShibIn); - const barStaked = barData?.user?.shibStaked; + const buryShibStaked = buryShibData?.user?.shibStaked; - const barStakedUSD = barData?.user?.shibStakedUSD; + const buryShibStakedUSD = buryShibData?.user?.shibStakedUSD; - const barHarvested = barData?.user?.shibHarvested; - const barHarvestedUSD = barData?.user?.shibHarvestedUSD; + const buryShibHarvested = buryShibData?.user?.shibHarvested; + const buryShibHarvestedUSD = buryShibData?.user?.shibHarvestedUSD; - const barPendingUSD = barPending > 0 ? barPending * sushiPrice : 0; + const buryShibPendingUSD = buryShibPending > 0 ? buryShibPending * shibPrice : 0; - const barRoiShib = - barPending - - (parseFloat(barData?.user?.sushiStaked) - - parseFloat(barData?.user?.sushiHarvested) + - parseFloat(barData?.user?.sushiIn) - - parseFloat(barData?.user?.sushiOut)); + const buryShibRoiShib = + buryShibPending - + (parseFloat(buryShibData?.user?.shibStaked) - + parseFloat(buryShibData?.user?.shibHarvested) + + parseFloat(buryShibData?.user?.shibIn) - + parseFloat(buryShibData?.user?.shibOut)); - const barRoiUSD = - barPendingUSD - - (parseFloat(barData?.user?.sushiStakedUSD) - - parseFloat(barData?.user?.sushiHarvestedUSD) + - parseFloat(barData?.user?.usdIn) - - parseFloat(barData?.user?.usdOut)); + const buryShibRoiUSD = + buryShibPendingUSD - + (parseFloat(buryShibData?.user?.shibStakedUSD) - + parseFloat(buryShibData?.user?.shibHarvestedUSD) + + parseFloat(buryShibData?.user?.usdIn) - + parseFloat(buryShibData?.user?.usdOut)); - const { data: blocksData } = useQuery(latestBlockQuery, { - context: { - clientName: "blocklytics", - }, - }); - const blockDifference = + const buryShibBlockDifference = + parseInt(blocksData?.blocks[0].number) - + parseInt(buryShibData?.user?.createdAtBlock); + + const buryShibRoiDailyShib = (buryShibRoiShib / buryShibBlockDifference) * 6440; + + + // Bury Leash + const xLeash = parseFloat(buryLeashData?.user?.xLeash); + + const buryLeashPending = + (xLeash * parseFloat(buryLeashData?.user?.buries?.leashStaked)) / + parseFloat(buryLeashData?.user?.buries?.totalSupply); + + const xLeashTransfered = + buryLeashData?.user?.xLeashIn > buryLeashData?.user?.xLeashOut + ? parseFloat(buryLeashData?.user?.xLeashIn) - + parseFloat(buryLeashData?.user?.xLeashOut) + : parseFloat(buryLeashData?.user?.xLeashOut) - + parseFloat(buryLeashData?.user?.xLeashIn); + + const buryLeashStaked = buryLeashData?.user?.leashStaked; + + const buryLeashStakedUSD = buryLeashData?.user?.leashStakedUSD; + + const buryLeashHarvested = buryLeashData?.user?.leashHarvested; + const buryLeashHarvestedUSD = buryLeashData?.user?.leashHarvestedUSD; + + const buryLeashPendingUSD = buryLeashPending > 0 ? buryLeashPending * leashPrice : 0; + + const buryLeashRoiLeash = + buryLeashPending - + (parseFloat(buryLeashData?.user?.leashStaked) - + parseFloat(buryLeashData?.user?.leashHarvested) + + parseFloat(buryLeashData?.user?.leashIn) - + parseFloat(buryLeashData?.user?.leashOut)); + + const buryLeashRoiUSD = + buryLeashPendingUSD - + (parseFloat(buryLeashData?.user?.leashStakedUSD) - + parseFloat(buryLeashData?.user?.leashHarvestedUSD) + + parseFloat(buryLeashData?.user?.usdIn) - + parseFloat(buryLeashData?.user?.usdOut)); + + const buryLeashBlockDifference = parseInt(blocksData?.blocks[0].number) - - parseInt(barData?.user?.createdAtBlock); + parseInt(buryLeashData?.user?.createdAtBlock); - const barRoiDailySushi = (barRoiSushi / blockDifference) * 6440; + const buryLeashRoiDailyLeash = (buryLeashRoiLeash / buryLeashBlockDifference) * 6440; // POOLS @@ -220,10 +347,17 @@ function UserPage() { // Global // const originalInvestments = - // parseFloat(barData?.user?.sushiStakedUSD) + parseFloat(poolEntriesUSD); + // parseFloat(barData?.user?.boneStakedUSD) + parseFloat(poolEntriesUSD); + + // const investments = + // poolEntriesUSD + barPendingUSD + poolsPendingUSD + poolExitsUSD; - const investments = - poolEntriesUSD + barPendingUSD + poolsPendingUSD + poolExitsUSD; + const buryBoneInvestments = + poolEntriesUSD + buryBonePendingUSD + poolsPendingUSD + poolExitsUSD; + const buryShibInvestments = + poolEntriesUSD + buryShibPendingUSD + poolsPendingUSD + poolExitsUSD; + const buryLeashInvestments = + poolEntriesUSD + buryLeashPendingUSD + poolsPendingUSD + poolExitsUSD; return ( @@ -246,9 +380,279 @@ function UserPage() { {/* Bar*/} {/**/} - {!barData?.user?.bar ? ( + {/* Bury Bone */} + {!buryBoneData?.user?.buries ? ( + + Address isn't in the Bury Bone... + + ) : ( + <> + + + + + + + + + + + + + + + + + + + + + + + + + Token + + Deposited + + + Withdrawn + + + Pending + + + ROI (Yearly) + + + ROI (Monthly) + + + ROI (Daily) + + + ROI (All-time) + + + + + + + + + + BONE + + {/* + tBONE + */} + + + + + {decimalFormatter.format(buryBoneStaked)} ( + {formatCurrency(buryBoneStakedUSD)}) + + + + + {decimalFormatter.format(buryBoneHarvested)} ( + {formatCurrency(buryBoneHarvestedUSD)}) + + + + + {Number(buryBonePending.toFixed(2)).toLocaleString()} ( + {formatCurrency(bonePrice * buryBonePending)}) + + + + + {decimalFormatter.format(buryBoneRoiDailyBone * 365)} ( + {formatCurrency(buryBoneRoiDailyBone * 365 * bonePrice)}) + + + + + {decimalFormatter.format(buryBoneRoiDailyBone * 30)} ( + {formatCurrency(buryBoneRoiDailyBone * 30 * bonePrice)}) + + + + + {decimalFormatter.format(buryBoneRoiDailyBone)} ( + {formatCurrency(buryBoneRoiDailyBone * bonePrice)}) + + + + + {decimalFormatter.format(buryBoneRoiBone)} ( + {formatCurrency(buryBoneRoiBone * bonePrice)}) + + + +
+
+
+ + )} + + {/* Bury Shib */} + {!buryShibData?.user?.buries ? ( + + Address isn't in the Bury Shib... + + ) : ( + <> + + + + + + + + + + + + + + + + + + + + + + + + + Token + + Deposited + + + Withdrawn + + + Pending + + + ROI (Yearly) + + + ROI (Monthly) + + + ROI (Daily) + + + ROI (All-time) + + + + + + + + + + SHIB + + {/* + xShib + */} + + + + + {decimalFormatter.format(buryShibStaked)} ( + {formatCurrency(buryShibStakedUSD)}) + + + + + {decimalFormatter.format(buryShibHarvested)} ( + {formatCurrency(buryShibHarvestedUSD)}) + + + + + {Number(buryShibPending.toFixed(2)).toLocaleString()} ( + {formatCurrency(shibPrice * buryShibPending)}) + + + + + {decimalFormatter.format(buryShibRoiDailyShib * 365)} ( + {formatCurrency(buryShibRoiDailyShib * 365 * shibPrice)}) + + + + + {decimalFormatter.format(buryShibRoiDailyShib * 30)} ( + {formatCurrency(buryShibRoiDailyShib * 30 * shibPrice)}) + + + + + {decimalFormatter.format(buryShibRoiDailyShib)} ( + {formatCurrency(buryShibRoiDailyShib * shibPrice)}) + + + + + {decimalFormatter.format(buryShibRoiShib)} ( + {formatCurrency(buryShibRoiShib * shibPrice)}) + + + +
+
+
+ + )} + + {/* Bury Leash */} + + {!buryLeashData?.user?.buries ? ( - Address isn't in the bar... + Address isn't in the Bury Leash... ) : ( <> @@ -257,22 +661,22 @@ function UserPage() { - + - +
@@ -292,16 +696,16 @@ function UserPage() { Pending - + ROI (Yearly) - + ROI (Monthly) - + ROI (Daily) - + ROI (All-time) @@ -313,7 +717,7 @@ function UserPage() { - SUSHI + LEASH {/* - xSUSHI + xLEASH */}
- {decimalFormatter.format(barStaked)} ( - {formatCurrency(barStakedUSD)}) + {decimalFormatter.format(buryLeashStaked)} ( + {formatCurrency(buryLeashStakedUSD)}) - {decimalFormatter.format(barHarvested)} ( - {formatCurrency(barHarvestedUSD)}) + {decimalFormatter.format(buryLeashHarvested)} ( + {formatCurrency(buryLeashHarvestedUSD)}) - {Number(barPending.toFixed(2)).toLocaleString()} ( - {formatCurrency(sushiPrice * barPending)}) + {Number(buryLeashPending.toFixed(2)).toLocaleString()} ( + {formatCurrency(leashPrice * buryLeashPending)}) - {decimalFormatter.format(barRoiDailySushi * 365)} ( - {formatCurrency(barRoiDailySushi * 365 * sushiPrice)}) + {decimalFormatter.format(buryLeashRoiDailyLeash * 365)} ( + {formatCurrency(buryLeashRoiDailyLeash * 365 * leashPrice)}) - {decimalFormatter.format(barRoiDailySushi * 30)} ( - {formatCurrency(barRoiDailySushi * 30 * sushiPrice)}) + {decimalFormatter.format(buryLeashRoiDailyLeash * 30)} ( + {formatCurrency(buryLeashRoiDailyLeash * 30 * leashPrice)}) - {decimalFormatter.format(barRoiDailySushi)} ( - {formatCurrency(barRoiDailySushi * sushiPrice)}) + {decimalFormatter.format(buryLeashRoiDailyLeash)} ( + {formatCurrency(buryLeashRoiDailyLeash * leashPrice)}) - {decimalFormatter.format(barRoiSushi)} ( - {formatCurrency(barRoiSushi * sushiPrice)}) + {decimalFormatter.format(buryLeashRoiLeash)} ( + {formatCurrency(buryLeashRoiLeash * leashPrice)}) @@ -439,10 +843,10 @@ function UserPage() { Value - + Bone Pending - + Bone Harvested @@ -465,7 +869,7 @@ function UserPage() { const token0 = pair.reserve0 * share; const token1 = pair.reserve1 * share; - const pendingSushi = + const pendingBone = ((user.amount * user.pool.accBonePerShare) / 1e12 - user.rewardDebt) / 1e18; @@ -475,7 +879,7 @@ function UserPage() { // user, // user.entryUSD, // user.exitUSD, - // pendingSushi * sushiPrice + // pendingBone * bonePrice // ); return ( @@ -525,9 +929,9 @@ function UserPage() { - {decimalFormatter.format(pendingSushi)} ( + {decimalFormatter.format(pendingBone)} ( {currencyFormatter.format( - pendingSushi * sushiPrice + pendingBone * bonePrice )} ) @@ -544,7 +948,7 @@ function UserPage() { parseFloat(pair.reserveUSD * share) + parseFloat(user.exitUSD) + parseFloat(user.boneHarvestedUSD) + - parseFloat(pendingSushi * sushiPrice) - + parseFloat(pendingBone * bonePrice) - parseFloat(user.entryUSD) )} @@ -570,7 +974,7 @@ export async function getStaticProps({ params }) { await getEthPrice(client); - await getSushiToken(client); + await getBoneToken(client); await getBarUser(id.toLowerCase(), client); From d74994358eedc903df1ff8341c01c3d91c965156 Mon Sep 17 00:00:00 2001 From: kaal Date: Fri, 16 Jul 2021 00:50:38 -0400 Subject: [PATCH 24/34] Bury changes --- src/pages/users/[id].js | 14 +++++--------- 1 file changed, 5 insertions(+), 9 deletions(-) diff --git a/src/pages/users/[id].js b/src/pages/users/[id].js index 49e4318..f4edfe4 100644 --- a/src/pages/users/[id].js +++ b/src/pages/users/[id].js @@ -121,19 +121,15 @@ function UserPage() { }, }); - console.log("token:: ", token) + // console.log("token:: ", token) - const { - data: { shibToken }, - } = useQuery(tokenQuery, { + const shibTokenData = useQuery(tokenQuery, { variables: { id: SHIB_TOKEN_ADDRESS, }, }); - const { - data: { leashToken }, - } = useQuery(tokenQuery, { + const leashTokenData = useQuery(tokenQuery, { variables: { id: LEASH_TOKEN_ADDRESS, }, @@ -166,9 +162,9 @@ function UserPage() { const bonePrice = parseFloat(token?.derivedETH) * parseFloat(bundles[0].ethPrice); const shibPrice = - parseFloat(shibToken?.derivedETH) * parseFloat(bundles[0].ethPrice); + parseFloat(shibTokenData?.data?.token?.derivedETH) * parseFloat(bundles[0].ethPrice); const leashPrice = - parseFloat(leashToken?.derivedETH) * parseFloat(bundles[0].ethPrice); + parseFloat(leashTokenData?.data?.token.derivedETH) * parseFloat(bundles[0].ethPrice); const { data: blocksData } = useQuery(latestBlockQuery, { context: { From 09a7cfbbb9693cc5fc206216e68683b99c1c80e5 Mon Sep 17 00:00:00 2001 From: priya Date: Fri, 16 Jul 2021 14:24:31 +0530 Subject: [PATCH 25/34] fixed the icons --- src/components/AppNavigation.js | 87 ++++++++++++++++++--------------- src/pages/bury-shib/index.js | 2 +- 2 files changed, 49 insertions(+), 40 deletions(-) diff --git a/src/components/AppNavigation.js b/src/components/AppNavigation.js index e91d0fb..13ac7b4 100644 --- a/src/components/AppNavigation.js +++ b/src/components/AppNavigation.js @@ -50,9 +50,18 @@ import { } from "@material-ui/core"; import React, { useState } from "react"; import { makeStyles, useTheme } from "@material-ui/core/styles"; - import Sushi from "./Sushi"; import { useRouter } from "next/router"; +import LandscapeIcon from '@material-ui/icons/Landscape'; +import StarIcon from '@material-ui/icons/Star'; +import GradeIcon from '@material-ui/icons/Grade'; +import AccessTimeIcon from '@material-ui/icons/AccessTime'; +import TripOriginIcon from '@material-ui/icons/TripOrigin'; +import ViewAgendaIcon from '@material-ui/icons/ViewAgenda'; +import TrendingUpIcon from '@material-ui/icons/TrendingUp'; +import TrendingDownIcon from '@material-ui/icons/TrendingDown'; +import AppsIcon from '@material-ui/icons/Apps'; +import RemoveRedEyeIcon from '@material-ui/icons/RemoveRedEye'; const drawerWidth = 240; @@ -117,9 +126,9 @@ export default function AppNavigation() { selected={router.pathname === "/"} onClick={() => router.push("/")} > - {/* - - */} + + + @@ -130,9 +139,9 @@ export default function AppNavigation() { selected={router.pathname === "/bury-shib"} onClick={() => router.push("/bury-shib")} > - {/* - - */} + + + {/* {open ? : } */} @@ -145,7 +154,7 @@ export default function AppNavigation() { {/* onClick={() => router.push("/bury-leash")}*/} {/*>*/} {/* */} - {/* */} + {/* */} {/* */} {/* */} {/* /!* {open ? : } *!/*/} @@ -159,7 +168,7 @@ export default function AppNavigation() { {/* onClick={() => router.push("/bury-bone")}*/} {/*>*/} {/* */} - {/* */} + {/* */} {/* */} {/* */} {/* /!* {open ? : } *!/*/} @@ -191,9 +200,9 @@ export default function AppNavigation() { */} - {/* - - */} + + + {open ? : } @@ -205,9 +214,9 @@ export default function AppNavigation() { onClick={() => router.push("/pools/recent")} className={classes.nested} > - {/* - - */} + + + router.push("/pools")} className={classes.nested} > - {/* - - */} + + + @@ -248,9 +257,9 @@ export default function AppNavigation() { - {/* - - */} + + + {open ? : } @@ -262,9 +271,9 @@ export default function AppNavigation() { onClick={() => router.push("/pairs/recent")} className={classes.nested} > - {/* - - */} + + + router.push("/pairs")} className={classes.nested} > - {/* - - */} + + + @@ -285,9 +294,9 @@ export default function AppNavigation() { onClick={() => router.push("/pairs/gainers")} className={classes.nested} > - {/* - - */} + + + router.push("/pairs/losers")} className={classes.nested} > - {/* - - */} + + + @@ -309,9 +318,9 @@ export default function AppNavigation() { selected={router.pathname.includes("tokens")} onClick={() => router.push("/tokens")} > - {/* - - */} + + + - {/* - - */} + + + diff --git a/src/pages/bury-shib/index.js b/src/pages/bury-shib/index.js index 0d87e21..c07cc9f 100644 --- a/src/pages/bury-shib/index.js +++ b/src/pages/bury-shib/index.js @@ -292,7 +292,7 @@ function BuryShibPage() { height={height} data={[shibStakedUSD, shibHarvestedUSD]} margin={{ top: 64, right: 32, bottom: 0, left: 64 }} - labels={["Shib Staked (USD)", "Shib Harvested (USD)"]} + labels={["Shib Staked (USD)", "Shib Woofed (USD)"]} /> )} From 47e9127386841b7e5724de9f2051afabc03db03a Mon Sep 17 00:00:00 2001 From: priya Date: Fri, 16 Jul 2021 15:01:43 +0530 Subject: [PATCH 26/34] changed the woof icon --- src/components/AppNavigation.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/components/AppNavigation.js b/src/components/AppNavigation.js index 6b38856..d189a5a 100644 --- a/src/components/AppNavigation.js +++ b/src/components/AppNavigation.js @@ -54,7 +54,7 @@ import Sushi from "./Sushi"; import { useRouter } from "next/router"; import LandscapeIcon from '@material-ui/icons/Landscape'; import StarIcon from '@material-ui/icons/Star'; -import GradeIcon from '@material-ui/icons/Grade'; +import PetsIcon from '@material-ui/icons/Pets'; import AccessTimeIcon from '@material-ui/icons/AccessTime'; import TripOriginIcon from '@material-ui/icons/TripOrigin'; import ViewAgendaIcon from '@material-ui/icons/ViewAgenda'; @@ -211,7 +211,7 @@ export default function AppNavigation() { - + {open ? : } From f55b1562907ac0575a04baef2cf0799a6f9df88e Mon Sep 17 00:00:00 2001 From: priya Date: Fri, 16 Jul 2021 15:03:58 +0530 Subject: [PATCH 27/34] added woffed --- src/pages/bury-bone/index.js | 2 +- src/pages/bury-leash/index.js | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/pages/bury-bone/index.js b/src/pages/bury-bone/index.js index 871c152..69cd960 100644 --- a/src/pages/bury-bone/index.js +++ b/src/pages/bury-bone/index.js @@ -301,7 +301,7 @@ function BuryBonePage() { height={height} data={[boneStakedUSD, boneHarvestedUSD]} margin={{ top: 64, right: 32, bottom: 0, left: 64 }} - labels={["Bone Staked (USD)", "Bone Harvested (USD)"]} + labels={["Bone Staked (USD)", "Bone Woofed (USD)"]} /> )} diff --git a/src/pages/bury-leash/index.js b/src/pages/bury-leash/index.js index b09043f..1a72b78 100644 --- a/src/pages/bury-leash/index.js +++ b/src/pages/bury-leash/index.js @@ -302,7 +302,7 @@ function BuryLeashPage() { height={height} data={[leashStakedUSD, leashHarvestedUSD]} margin={{ top: 64, right: 32, bottom: 0, left: 64 }} - labels={["Leash Staked (USD)", "Leash Harvested (USD)"]} + labels={["Leash Staked (USD)", "Leash Woofed (USD)"]} /> )} From fe04ae2a5197de34db4fe8a51e0d856c7c90198a Mon Sep 17 00:00:00 2001 From: unknown Date: Fri, 16 Jul 2021 20:47:39 +0530 Subject: [PATCH 28/34] apr and apy --- src/pages/bury-bone/index.js | 9 +++++++-- src/pages/bury-leash/index.js | 23 ++++++++++++++++++++--- src/pages/bury-shib/index.js | 33 +++++++++++++++++++++++++++++---- 3 files changed, 56 insertions(+), 9 deletions(-) diff --git a/src/pages/bury-bone/index.js b/src/pages/bury-bone/index.js index 69cd960..61b7273 100644 --- a/src/pages/bury-bone/index.js +++ b/src/pages/bury-bone/index.js @@ -176,6 +176,8 @@ function BuryBonePage() { const APY = Math.pow(1 + boneApr / 365, 365) - 1; + const boneBoneApr = ((10 * parseInt(bonePrice))/(bury?.boneStakedUSD)) * 277 * 24 * 30 * 12 * 100; + return ( @@ -192,13 +194,16 @@ function BuryBonePage() { /> */} - + {/* */} - + {/* + */} + + diff --git a/src/pages/bury-leash/index.js b/src/pages/bury-leash/index.js index 1a72b78..189b777 100644 --- a/src/pages/bury-leash/index.js +++ b/src/pages/bury-leash/index.js @@ -15,6 +15,7 @@ import { getLeashToken, tokenQuery, useInterval, + getBoneToken } from "app/core"; import Chart from "../../components/Chart"; @@ -23,7 +24,7 @@ import { ParentSize } from "@visx/responsive"; import React from "react"; import { makeStyles } from "@material-ui/core/styles"; import { useQuery } from "@apollo/client"; -import {LEASH_TOKEN_ADDRESS} from "app/core/constants"; +import {LEASH_TOKEN_ADDRESS, BONE_TOKEN_ADDRESS} from "app/core/constants"; const useStyles = makeStyles((theme) => ({ charts: { @@ -94,6 +95,7 @@ function BuryLeashPage() { getFactory, getLeashToken, getEthPrice, + getBoneToken ]); }, 60000); @@ -177,6 +179,17 @@ function BuryLeashPage() { const APY = Math.pow(1 + leashApr / 365, 365) - 1; + const boneToken = useQuery(tokenQuery, { + variables: { + id: BONE_TOKEN_ADDRESS, + }, + }); + + const bonePrice = + parseFloat(boneToken?.data?.token?.derivedETH) * parseFloat(bundles[0].ethPrice); + + const leashBoneApr = ((10 * parseInt(bonePrice))/(bury?.leashStakedUSD)) * 277 * 24 * 30 * 12 * 100; + return ( @@ -193,13 +206,16 @@ function BuryLeashPage() { /> */} - + {/* */} - + {/* + */} + + @@ -370,6 +386,7 @@ export async function getStaticProps() { await getDayData(client); await getLeashToken(client); await getEthPrice(client); + await getBoneToken(client); return { props: { initialApolloState: client.cache.extract(), diff --git a/src/pages/bury-shib/index.js b/src/pages/bury-shib/index.js index 4d65a63..92e232a 100644 --- a/src/pages/bury-shib/index.js +++ b/src/pages/bury-shib/index.js @@ -14,7 +14,8 @@ import { getFactory, getShibToken, tokenQuery, - useInterval + useInterval, + getBoneToken } from "app/core"; import Chart from "../../components/Chart"; @@ -23,7 +24,7 @@ import { ParentSize } from "@visx/responsive"; import React from "react"; import { makeStyles } from "@material-ui/core/styles"; import { useQuery } from "@apollo/client"; -import {SHIB_TOKEN_ADDRESS} from "app/core/constants"; +import {SHIB_TOKEN_ADDRESS, BONE_TOKEN_ADDRESS} from "app/core/constants"; const useStyles = makeStyles((theme) => ({ charts: { @@ -71,6 +72,12 @@ function BuryShibPage() { }, }); + const boneToken = useQuery(tokenQuery, { + variables: { + id: BONE_TOKEN_ADDRESS, + }, + }); + const { data: { bundles }, } = useQuery(ethPriceQuery); @@ -90,6 +97,7 @@ function BuryShibPage() { getFactory, getShibToken, getEthPrice, + getBoneToken ]); }, 60000); @@ -173,6 +181,16 @@ function BuryShibPage() { const APY = Math.pow(1 + shibApr / 365, 365) - 1; + const bonePrice = + parseFloat(boneToken?.data?.token?.derivedETH) * parseFloat(bundles[0].ethPrice); + + const shibBoneApr = ((30 * parseInt(bonePrice))/(bury?.shibStakedUSD)) * 277 * 24 * 30 * 12 * 100; + + const shibEthApr = dayDatas && (((dayDatas[0]?.volumeUSD * 0.1) / bury?.totalSupply) * 365) / (bury?.ratio * shibPrice) + + const EthAPY = Math.pow(1 + shibEthApr / 365, 365) - 1; + + return ( @@ -189,13 +207,19 @@ function BuryShibPage() { /> */} - + {/* */} - + {/* + */} + + + + + @@ -366,6 +390,7 @@ export async function getStaticProps() { await getDayData(client); await getShibToken(client); await getEthPrice(client); + await getBoneToken(client); return { props: { initialApolloState: client.cache.extract(), From 3284cc6a91d8f63b4d27e7d75b8e7ad45adff0ea Mon Sep 17 00:00:00 2001 From: unknown Date: Tue, 20 Jul 2021 01:52:15 +0530 Subject: [PATCH 29/34] bury coming soon --- src/core/queries/bury-bone.js | 28 ++++++++++- src/core/queries/bury-shib.js | 29 +++++++++++- src/pages/users/[id].js | 89 +++++++++++++++++++++++------------ 3 files changed, 114 insertions(+), 32 deletions(-) diff --git a/src/core/queries/bury-bone.js b/src/core/queries/bury-bone.js index 9c69bd5..2ac6f83 100644 --- a/src/core/queries/bury-bone.js +++ b/src/core/queries/bury-bone.js @@ -38,7 +38,7 @@ export const buryBoneHistoriesQuery = gql` } `; -export const buryBoneUserQuery = gql` +export const buryBoneUserQuery1 = gql` query buryBoneUserQuery($id: String!) { user(id: $id) { id @@ -65,3 +65,29 @@ export const buryBoneUserQuery = gql` } } `; + +export const buryBoneUserQuery = gql` + query buryBoneUserQuery($id: String!) { + user(id: $id) { + id + bury{ + totalSupply + boneStaked + } + tBone + boneStaked + boneStakedUSD + boneHarvested + boneHarvestedUSD + tBoneIn + tBoneOut + tBoneOffset + tBoneMinted + tBoneBurned + boneIn + boneOut + usdIn + usdOut + } + } +`; diff --git a/src/core/queries/bury-shib.js b/src/core/queries/bury-shib.js index bd4dacf..6313e70 100644 --- a/src/core/queries/bury-shib.js +++ b/src/core/queries/bury-shib.js @@ -38,7 +38,7 @@ export const buryShibHistoriesQuery = gql` } `; -export const buryShibUserQuery = gql` +export const buryShibUserQuery1 = gql` query buryShibUserQuery($id: String!) { user(id: $id) { id @@ -65,3 +65,30 @@ export const buryShibUserQuery = gql` } } `; + + +export const buryShibUserQuery = gql` + query buryShibUserQuery($id: String!) { + user(id: $id) { + id + bury { + totalSupply + shibStaked + } + xShib + shibStaked + shibStakedUSD + shibHarvested + shibHarvestedUSD + xShibIn + xShibOut + xShibOffset + xShibMinted + xShibBurned + shibIn + shibOut + usdIn + usdOut + } + } +`; diff --git a/src/pages/users/[id].js b/src/pages/users/[id].js index f4edfe4..c8972d0 100644 --- a/src/pages/users/[id].js +++ b/src/pages/users/[id].js @@ -37,7 +37,13 @@ import { tokenQuery, useInterval, userIdsQuery, - userQuery, buryShibUserQuery, buryLeashUserQuery, buryBoneUserQuery + userQuery, + buryShibUserQuery, + buryLeashUserQuery, + buryBoneUserQuery, + getBuryBoneUser, + getBuryShibUser, + getBuryLeashUser } from "app/core"; import { getUnixTime, startOfMinute, startOfSecond } from "date-fns"; @@ -102,7 +108,7 @@ function UserPage() { clientName: "buryLeash", }, }); - // console.log(barData) + const { data: poolData } = useQuery(poolUserQuery, { variables: { @@ -209,11 +215,11 @@ function UserPage() { parseFloat(buryBoneData?.user?.usdIn) - parseFloat(buryBoneData?.user?.usdOut)); - const buryBoneBlockDifference = - parseInt(blocksData?.blocks[0].number) - - parseInt(buryBoneData?.user?.createdAtBlock); + // const buryBoneBlockDifference = + // parseInt(blocksData?.blocks[0].number) - + // parseInt(buryBoneData?.user?.createdAtBlock); - const buryBoneRoiDailyBone = (buryBoneRoiBone / buryBoneBlockDifference) * 6440; + // const buryBoneRoiDailyBone = (buryBoneRoiBone / buryBoneBlockDifference) * 6440; // Bury Shib const xShib = parseFloat(buryShibData?.user?.xShib); @@ -253,11 +259,11 @@ function UserPage() { parseFloat(buryShibData?.user?.usdOut)); - const buryShibBlockDifference = - parseInt(blocksData?.blocks[0].number) - - parseInt(buryShibData?.user?.createdAtBlock); + // const buryShibBlockDifference = + // parseInt(blocksData?.blocks[0].number) - + // parseInt(buryShibData?.user?.createdAtBlock); - const buryShibRoiDailyShib = (buryShibRoiShib / buryShibBlockDifference) * 6440; + // const buryShibRoiDailyShib = (buryShibRoiShib / buryShibBlockDifference) * 6440; // Bury Leash @@ -297,11 +303,11 @@ function UserPage() { parseFloat(buryLeashData?.user?.usdIn) - parseFloat(buryLeashData?.user?.usdOut)); - const buryLeashBlockDifference = - parseInt(blocksData?.blocks[0].number) - - parseInt(buryLeashData?.user?.createdAtBlock); + // const buryLeashBlockDifference = + // parseInt(blocksData?.blocks[0].number) - + // parseInt(buryLeashData?.user?.createdAtBlock); - const buryLeashRoiDailyLeash = (buryLeashRoiLeash / buryLeashBlockDifference) * 6440; + // const buryLeashRoiDailyLeash = (buryLeashRoiLeash / buryLeashBlockDifference) * 6440; // POOLS @@ -355,6 +361,10 @@ function UserPage() { const buryLeashInvestments = poolEntriesUSD + buryLeashPendingUSD + poolsPendingUSD + poolExitsUSD; + const buryShibComing = true + const buryLeashComing = true + const buryBoneComing = true + return ( @@ -377,7 +387,12 @@ function UserPage() { {/**/} {/* Bury Bone */} - {!buryBoneData?.user?.buries ? ( + { + buryBoneComing ? ( + + BuryBone: Coming Soon... + + ):!buryBoneData?.user?.buries ? ( Address isn't in the Bury Bone... @@ -423,7 +438,7 @@ function UserPage() { Pending - + {/* ROI (Yearly) @@ -431,7 +446,7 @@ function UserPage() { ROI (Daily) - + */} ROI (All-time) @@ -479,7 +494,7 @@ function UserPage() { {formatCurrency(bonePrice * buryBonePending)}) - + {/* {decimalFormatter.format(buryBoneRoiDailyBone * 365)} ( {formatCurrency(buryBoneRoiDailyBone * 365 * bonePrice)}) @@ -496,7 +511,7 @@ function UserPage() { {decimalFormatter.format(buryBoneRoiDailyBone)} ( {formatCurrency(buryBoneRoiDailyBone * bonePrice)}) - + */} {decimalFormatter.format(buryBoneRoiBone)} ( @@ -511,7 +526,12 @@ function UserPage() { )} {/* Bury Shib */} - {!buryShibData?.user?.buries ? ( + { + buryShibComing ? ( + + BuryShib: Coming Soon... + + ): !buryShibData?.user?.buries ? ( Address isn't in the Bury Shib... @@ -557,7 +577,7 @@ function UserPage() { Pending - + {/* ROI (Yearly) @@ -568,7 +588,7 @@ function UserPage() { ROI (All-time) - + */} @@ -613,7 +633,7 @@ function UserPage() { {formatCurrency(shibPrice * buryShibPending)}) - + {/* {decimalFormatter.format(buryShibRoiDailyShib * 365)} ( {formatCurrency(buryShibRoiDailyShib * 365 * shibPrice)}) @@ -630,7 +650,7 @@ function UserPage() { {decimalFormatter.format(buryShibRoiDailyShib)} ( {formatCurrency(buryShibRoiDailyShib * shibPrice)}) - + */} {decimalFormatter.format(buryShibRoiShib)} ( @@ -646,7 +666,12 @@ function UserPage() { {/* Bury Leash */} - {!buryLeashData?.user?.buries ? ( + { + buryLeashComing ? ( + + BuryLeash: Coming Soon... + + ): !buryLeashData?.user?.buries ? ( Address isn't in the Bury Leash... @@ -692,7 +717,7 @@ function UserPage() { Pending - + {/* ROI (Yearly) @@ -700,7 +725,7 @@ function UserPage() { ROI (Daily) - + */} ROI (All-time) @@ -748,7 +773,7 @@ function UserPage() { {formatCurrency(leashPrice * buryLeashPending)}) - + {/* {decimalFormatter.format(buryLeashRoiDailyLeash * 365)} ( {formatCurrency(buryLeashRoiDailyLeash * 365 * leashPrice)}) @@ -765,7 +790,7 @@ function UserPage() { {decimalFormatter.format(buryLeashRoiDailyLeash)} ( {formatCurrency(buryLeashRoiDailyLeash * leashPrice)}) - + */} {decimalFormatter.format(buryLeashRoiLeash)} ( @@ -972,7 +997,11 @@ export async function getStaticProps({ params }) { await getBoneToken(client); - await getBarUser(id.toLowerCase(), client); + await getBuryBoneUser(id.toLowerCase(), client); + + await getBuryShibUser(id.toLowerCase(), client); + + await getBuryLeashUser(id.toLowerCase(), client); await getPoolUser(id.toLowerCase(), client); From 4677fda6947df4ac8b7dcb807db4b0e6bb717b9d Mon Sep 17 00:00:00 2001 From: unknown Date: Mon, 26 Jul 2021 06:08:42 +0530 Subject: [PATCH 30/34] 90 bpb aprs --- src/pages/bury-bone/index.js | 4 ++-- src/pages/bury-leash/index.js | 4 ++-- src/pages/bury-shib/index.js | 9 ++++++--- 3 files changed, 10 insertions(+), 7 deletions(-) diff --git a/src/pages/bury-bone/index.js b/src/pages/bury-bone/index.js index 61b7273..3cf57fd 100644 --- a/src/pages/bury-bone/index.js +++ b/src/pages/bury-bone/index.js @@ -167,7 +167,7 @@ function BuryBonePage() { const oneDayVolume = factory.volumeUSD - factory.oneDay.volumeUSD; - const boneApr = dayDatas && (((parseFloat(dayDatas[0]?.volumeUSD) * (0.05 / 3) * 0.2) / parseFloat(bury?.totalSupply)) * 365) + const boneApr = dayDatas && (((parseFloat(dayDatas[0]?.volumeUSD) * (0.05 / 3) * 0.05) / parseFloat(bury?.totalSupply)) * 365) / (parseFloat(bury?.ratio) * bonePrice) const APR = @@ -176,7 +176,7 @@ function BuryBonePage() { const APY = Math.pow(1 + boneApr / 365, 365) - 1; - const boneBoneApr = ((10 * parseInt(bonePrice))/(bury?.boneStakedUSD)) * 277 * 24 * 30 * 12 * 100; + const boneBoneApr = ((0.9 * parseInt(bonePrice))/(bury?.boneStakedUSD)) * 277 * 24 * 30 * 12 * 100; return ( diff --git a/src/pages/bury-leash/index.js b/src/pages/bury-leash/index.js index 189b777..ff4cf1e 100644 --- a/src/pages/bury-leash/index.js +++ b/src/pages/bury-leash/index.js @@ -170,7 +170,7 @@ function BuryLeashPage() { const oneDayVolume = factory.volumeUSD - factory.oneDay.volumeUSD; - const leashApr = dayDatas && (((parseFloat(dayDatas[0]?.volumeUSD) * (0.05 / 3) * 0.2) / parseFloat(bury?.totalSupply)) * 365) + const leashApr = dayDatas && (((parseFloat(dayDatas[0]?.volumeUSD) * (0.05 / 3) * 0.05) / parseFloat(bury?.totalSupply)) * 365) / (parseFloat(bury?.ratio) * leashPrice) const APR = @@ -188,7 +188,7 @@ function BuryLeashPage() { const bonePrice = parseFloat(boneToken?.data?.token?.derivedETH) * parseFloat(bundles[0].ethPrice); - const leashBoneApr = ((10 * parseInt(bonePrice))/(bury?.leashStakedUSD)) * 277 * 24 * 30 * 12 * 100; + const leashBoneApr = ((0.9 * parseInt(bonePrice))/(bury?.leashStakedUSD)) * 277 * 24 * 30 * 12 * 100; return ( diff --git a/src/pages/bury-shib/index.js b/src/pages/bury-shib/index.js index 92e232a..646e436 100644 --- a/src/pages/bury-shib/index.js +++ b/src/pages/bury-shib/index.js @@ -172,7 +172,7 @@ function BuryShibPage() { const oneDayVolume = factory.volumeUSD - factory.oneDay.volumeUSD; - const shibApr = dayDatas && (((parseFloat(dayDatas[0]?.volumeUSD) * (0.05 / 3) * 0.2) / parseFloat(bury?.totalSupply)) * 365) + const shibApr = dayDatas && (((parseFloat(dayDatas[0]?.volumeUSD) * (0.05 / 3) * 0.05) / parseFloat(bury?.totalSupply)) * 365) / (parseFloat(bury?.ratio) * shibPrice) const APR = @@ -184,7 +184,7 @@ function BuryShibPage() { const bonePrice = parseFloat(boneToken?.data?.token?.derivedETH) * parseFloat(bundles[0].ethPrice); - const shibBoneApr = ((30 * parseInt(bonePrice))/(bury?.shibStakedUSD)) * 277 * 24 * 30 * 12 * 100; + const shibBoneApr = ((2.7 * parseInt(bonePrice))/(bury?.shibStakedUSD)) * 277 * 24 * 30 * 12 * 100; const shibEthApr = dayDatas && (((dayDatas[0]?.volumeUSD * 0.1) / bury?.totalSupply) * 365) / (bury?.ratio * shibPrice) @@ -218,8 +218,11 @@ function BuryShibPage() { - + {/* + */} + + From 0ce6fe6e7c31c2c31aebc43147ae90358818e0a7 Mon Sep 17 00:00:00 2001 From: unknown Date: Wed, 28 Jul 2021 01:25:10 +0530 Subject: [PATCH 31/34] label change --- src/pages/bury-bone/index.js | 2 +- src/pages/bury-leash/index.js | 2 +- src/pages/bury-shib/index.js | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/pages/bury-bone/index.js b/src/pages/bury-bone/index.js index 3cf57fd..065409d 100644 --- a/src/pages/bury-bone/index.js +++ b/src/pages/bury-bone/index.js @@ -203,7 +203,7 @@ function BuryBonePage() { */} - + diff --git a/src/pages/bury-leash/index.js b/src/pages/bury-leash/index.js index ff4cf1e..eed8aae 100644 --- a/src/pages/bury-leash/index.js +++ b/src/pages/bury-leash/index.js @@ -215,7 +215,7 @@ function BuryLeashPage() { */} - + diff --git a/src/pages/bury-shib/index.js b/src/pages/bury-shib/index.js index 646e436..881aa00 100644 --- a/src/pages/bury-shib/index.js +++ b/src/pages/bury-shib/index.js @@ -216,13 +216,13 @@ function BuryShibPage() { */} - + {/* */} - + From e14b604bc00fb360ab4b407af3aca52224faf5f4 Mon Sep 17 00:00:00 2001 From: unknown Date: Wed, 28 Jul 2021 03:45:22 +0530 Subject: [PATCH 32/34] APYs --- src/pages/bury-bone/index.js | 4 +++- src/pages/bury-leash/index.js | 4 +++- src/pages/bury-shib/index.js | 8 +++++--- 3 files changed, 11 insertions(+), 5 deletions(-) diff --git a/src/pages/bury-bone/index.js b/src/pages/bury-bone/index.js index 065409d..94394db 100644 --- a/src/pages/bury-bone/index.js +++ b/src/pages/bury-bone/index.js @@ -178,6 +178,8 @@ function BuryBonePage() { const boneBoneApr = ((0.9 * parseInt(bonePrice))/(bury?.boneStakedUSD)) * 277 * 24 * 30 * 12 * 100; + const boneBoneApy = Math.pow(1 + boneBoneApr / 365, 365) - 1; + return ( @@ -203,7 +205,7 @@ function BuryBonePage() { */} - + diff --git a/src/pages/bury-leash/index.js b/src/pages/bury-leash/index.js index eed8aae..acd99ff 100644 --- a/src/pages/bury-leash/index.js +++ b/src/pages/bury-leash/index.js @@ -190,6 +190,8 @@ function BuryLeashPage() { const leashBoneApr = ((0.9 * parseInt(bonePrice))/(bury?.leashStakedUSD)) * 277 * 24 * 30 * 12 * 100; + const leashBoneApy = Math.pow(1 + leashBoneApr / 365, 365) - 1; + return ( @@ -215,7 +217,7 @@ function BuryLeashPage() { */} - + diff --git a/src/pages/bury-shib/index.js b/src/pages/bury-shib/index.js index 881aa00..20ea303 100644 --- a/src/pages/bury-shib/index.js +++ b/src/pages/bury-shib/index.js @@ -186,9 +186,11 @@ function BuryShibPage() { const shibBoneApr = ((2.7 * parseInt(bonePrice))/(bury?.shibStakedUSD)) * 277 * 24 * 30 * 12 * 100; + const shibBoneApy = Math.pow(1 + shibBoneApr / 365, 365) - 1; + const shibEthApr = dayDatas && (((dayDatas[0]?.volumeUSD * 0.1) / bury?.totalSupply) * 365) / (bury?.ratio * shibPrice) - const EthAPY = Math.pow(1 + shibEthApr / 365, 365) - 1; + const shibEthAPY = Math.pow(1 + shibEthApr / 365, 365) - 1; return ( @@ -216,13 +218,13 @@ function BuryShibPage() { */} - + {/* */} - + From becf9162692339bc3b1bb8951767eb7de28d8941 Mon Sep 17 00:00:00 2001 From: unknown Date: Wed, 11 Aug 2021 00:54:50 +0530 Subject: [PATCH 33/34] buries fixed --- src/pages/users/[id].js | 75 ++++++++++++++++++++++++++--------------- 1 file changed, 48 insertions(+), 27 deletions(-) diff --git a/src/pages/users/[id].js b/src/pages/users/[id].js index c8972d0..1a83cc5 100644 --- a/src/pages/users/[id].js +++ b/src/pages/users/[id].js @@ -27,6 +27,8 @@ import { getPairs, getPoolUser, getBoneToken, + getShibToken, + getLeashToken, getToken, getUser, latestBlockQuery, @@ -87,6 +89,7 @@ function UserPage() { variables: { id: id.toLowerCase(), }, + fetchPolicy: "no-cache", context: { clientName: "buryShib", }, @@ -96,6 +99,7 @@ function UserPage() { variables: { id: id.toLowerCase(), }, + fetchPolicy: "no-cache", context: { clientName: "buryBone", }, @@ -104,6 +108,7 @@ function UserPage() { variables: { id: id.toLowerCase(), }, + fetchPolicy: "no-cache", context: { clientName: "buryLeash", }, @@ -182,8 +187,8 @@ function UserPage() { const tBone = parseFloat(buryBoneData?.user?.tBone); const buryBonePending = - (tBone * parseFloat(buryBoneData?.user?.buries?.boneStaked)) / - parseFloat(buryBoneData?.user?.buries?.totalSupply); + (tBone * parseFloat(buryBoneData?.user?.bury?.boneStaked)) / + parseFloat(buryBoneData?.user?.bury?.totalSupply); const tBoneTransfered = buryBoneData?.user?.tBoneIn > buryBoneData?.user?.tBoneOut @@ -225,8 +230,8 @@ function UserPage() { const xShib = parseFloat(buryShibData?.user?.xShib); const buryShibPending = - (xShib * parseFloat(buryShibData?.user?.buries?.shibStaked)) / - parseFloat(buryShibData?.user?.buries?.totalSupply); + (xShib * parseFloat(buryShibData?.user?.bury?.shibStaked)) / + parseFloat(buryShibData?.user?.bury?.totalSupply); const xShibTransfered = buryShibData?.user?.xShibIn > buryShibData?.user?.xShibOut @@ -270,8 +275,8 @@ function UserPage() { const xLeash = parseFloat(buryLeashData?.user?.xLeash); const buryLeashPending = - (xLeash * parseFloat(buryLeashData?.user?.buries?.leashStaked)) / - parseFloat(buryLeashData?.user?.buries?.totalSupply); + (xLeash * parseFloat(buryLeashData?.user?.bury?.leashStaked)) / + parseFloat(buryLeashData?.user?.bury?.totalSupply); const xLeashTransfered = buryLeashData?.user?.xLeashIn > buryLeashData?.user?.xLeashOut @@ -361,9 +366,9 @@ function UserPage() { const buryLeashInvestments = poolEntriesUSD + buryLeashPendingUSD + poolsPendingUSD + poolExitsUSD; - const buryShibComing = true - const buryLeashComing = true - const buryBoneComing = true + const buryShibComing = false + const buryLeashComing = false + const buryBoneComing = false return ( @@ -392,7 +397,7 @@ function UserPage() { BuryBone: Coming Soon... - ):!buryBoneData?.user?.buries ? ( + ):!buryBoneData?.user ? ( Address isn't in the Bury Bone... @@ -403,7 +408,7 @@ function UserPage() { @@ -490,8 +495,10 @@ function UserPage() { - {Number(buryBonePending.toFixed(2)).toLocaleString()} ( - {formatCurrency(bonePrice * buryBonePending)}) + {buryBoneData?.user?.bury ? + Number(buryBonePending.toFixed(2)).toLocaleString()+" ("+formatCurrency(bonePrice * buryBonePending)+")" + : "-" + } {/* @@ -514,8 +521,10 @@ function UserPage() { */} - {decimalFormatter.format(buryBoneRoiBone)} ( - {formatCurrency(buryBoneRoiBone * bonePrice)}) + {buryBoneData?.user?.bury ? + decimalFormatter.format(buryBoneRoiBone)+" ("+formatCurrency(buryBoneRoiBone * bonePrice)+")" + : "-" + } @@ -531,7 +540,7 @@ function UserPage() { BuryShib: Coming Soon... - ): !buryShibData?.user?.buries ? ( + ): !buryShibData?.user ? ( Address isn't in the Bury Shib... @@ -542,7 +551,7 @@ function UserPage() { @@ -629,8 +638,10 @@ function UserPage() { - {Number(buryShibPending.toFixed(2)).toLocaleString()} ( - {formatCurrency(shibPrice * buryShibPending)}) + {buryShibData?.user?.bury ? + Number(buryShibPending.toFixed(2)).toLocaleString()+" ("+formatCurrency(shibPrice * buryShibPending)+")" + : "-" + } {/* @@ -653,8 +664,10 @@ function UserPage() { */} - {decimalFormatter.format(buryShibRoiShib)} ( - {formatCurrency(buryShibRoiShib * shibPrice)}) + {buryShibData?.user?.bury ? + decimalFormatter.format(buryShibRoiShib)+" ("+formatCurrency(buryShibRoiShib * shibPrice)+")" + : "-" + } @@ -671,7 +684,7 @@ function UserPage() { BuryLeash: Coming Soon... - ): !buryLeashData?.user?.buries ? ( + ): !buryLeashData?.user ? ( Address isn't in the Bury Leash... @@ -682,7 +695,7 @@ function UserPage() { @@ -769,8 +782,10 @@ function UserPage() { - {Number(buryLeashPending.toFixed(2)).toLocaleString()} ( - {formatCurrency(leashPrice * buryLeashPending)}) + {buryLeashData?.user?.bury ? + Number(buryLeashPending.toFixed(2)).toLocaleString()+" ("+formatCurrency(leashPrice * buryLeashPending)+")" + : "-" + } {/* @@ -793,8 +808,10 @@ function UserPage() { */} - {decimalFormatter.format(buryLeashRoiLeash)} ( - {formatCurrency(buryLeashRoiLeash * leashPrice)}) + {buryLeashData?.user?.bury ? + decimalFormatter.format(buryLeashRoiLeash)+" ("+formatCurrency(buryLeashRoiLeash * leashPrice)+")" + : "-" + } @@ -997,6 +1014,10 @@ export async function getStaticProps({ params }) { await getBoneToken(client); + await getShibToken(client); + + await getLeashToken(client); + await getBuryBoneUser(id.toLowerCase(), client); await getBuryShibUser(id.toLowerCase(), client); From 80c531dfcebb555b2476b5ba1fa45afadeef7a12 Mon Sep 17 00:00:00 2001 From: VarunEIYSYS Date: Tue, 14 Sep 2021 13:41:19 +0530 Subject: [PATCH 34/34] Initial commit after beanstalk deployments --- .elasticbeanstalk/config.yml | 22 +++++++ next.config.js | 1 + package.json | 27 ++++----- src/core/apollo/link.js | 110 +++++++++++++++++++++++++++++++---- 4 files changed, 136 insertions(+), 24 deletions(-) create mode 100644 .elasticbeanstalk/config.yml diff --git a/.elasticbeanstalk/config.yml b/.elasticbeanstalk/config.yml new file mode 100644 index 0000000..c63f3bd --- /dev/null +++ b/.elasticbeanstalk/config.yml @@ -0,0 +1,22 @@ +branch-defaults: + main: + environment: ShibaApp-dev + group_suffix: null +environment-defaults: + ShibaApp-dev: + branch: null + repository: null +global: + application_name: ShibaApp + branch: null + default_ec2_keyname: latest-kaal + default_platform: Node.js 14 running on 64bit Amazon Linux 2 + default_region: us-east-1 + include_git_submodules: true + instance_profile: null + platform_name: null + platform_version: null + profile: eb-cli + repository: null + sc: git + workspace_type: Application diff --git a/next.config.js b/next.config.js index 96d2805..6e7fc52 100644 --- a/next.config.js +++ b/next.config.js @@ -8,4 +8,5 @@ module.exports = withPWA({ // scope: "/", // sw: "service-worker.js", }, + ignoreBuildErrors: true, }); diff --git a/package.json b/package.json index 2d82b31..17ec75d 100644 --- a/package.json +++ b/package.json @@ -1,8 +1,17 @@ { "name": "shibaswap-analytics", - "version": "1.0.0", + "version": "1.1.3", "private": true, + "scripts": { + "dev": "next dev", + "build": "next build", + "start": "next start --port $PORT", + "lint": "next lint" + }, "dependencies": { + "next": "^10.0.0", + "react": "^17.0.0", + "react-dom": "^17.0.0", "@apollo/client": "^3.2.0", "@material-ui/core": "^4.11.0", "@material-ui/icons": "^4.11.0", @@ -23,32 +32,24 @@ "@visx/threshold": "^1.1.0", "@visx/tooltip": "^1.1.0", "autosuggest-highlight": "^3.1.1", - "clsx": "latest", + "clsx": "^1.1.1", "d3-array": "^2.8.0", "d3-time-format": "^3.0.0", "date-fns": "^2.16.1", "graphql": "^15.3.0", "lodash.merge": "^4.6.2", "millify": "^3.3.0", - "next": "^10.0.0", - "react": "^17.0.0", - "react-dom": "^17.0.0", + "next-pwa": "^3.1.4", "react-sparklines": "^1.7.0", "react-spring": "^8.0.27", "react-window": "^1.8.6", "web3-utils": "^1.3.4" }, "devDependencies": { + "eslint": "7.32.0", "@next/bundle-analyzer": "^9.5.3", "next-compose-plugins": "^2.2.0", - "next-pwa": "^3.1.4" - }, - "scripts": { - "analyze": "ANALYZE=true yarn build", - "analyze-serve": "serve .next/analyze -p 3002", - "dev": "next -p 3001", - "build": "next build", - "start": "next start" + "eslint-config-next": "11.1.0" }, "husky": { "hooks": { diff --git a/src/core/apollo/link.js b/src/core/apollo/link.js index 2616583..9149eeb 100644 --- a/src/core/apollo/link.js +++ b/src/core/apollo/link.js @@ -3,7 +3,15 @@ import { HttpLink, from, split } from "@apollo/client"; import { RetryLink } from "@apollo/client/link/retry"; export const uniswap = from([ - new RetryLink(), + new RetryLink({ + delay: (count, operation, error) => { + return count * 1000 * Math.random(); + }, + attempts: { + max: 5, + retryIf: (error, _operation) => !!error + } + }), new HttpLink({ uri: "https://api.thegraph.com/subgraphs/name/uniswap/uniswap-v2", shouldBatch: true, @@ -11,7 +19,15 @@ export const uniswap = from([ ]); export const bar = from([ - new RetryLink(), + new RetryLink({ + delay: (count, operation, error) => { + return count * 1000 * Math.random(); + }, + attempts: { + max: 5, + retryIf: (error, _operation) => !!error + } + }), new HttpLink({ uri: "https://api.thegraph.com/subgraphs/name/matthewlilley/bar", shouldBatch: true, @@ -19,7 +35,15 @@ export const bar = from([ ]); export const masterchef = from([ - new RetryLink(), + new RetryLink({ + delay: (count, operation, error) => { + return count * 1000 * Math.random(); + }, + attempts: { + max: 5, + retryIf: (error, _operation) => !!error + } + }), new HttpLink({ uri: "https://api.thegraph.com/subgraphs/name/shibaswaparmy/topdog", shouldBatch: true, @@ -27,7 +51,15 @@ export const masterchef = from([ ]); export const exchange = from([ - new RetryLink(), + new RetryLink({ + delay: (count, operation, error) => { + return count * 1000 * Math.random(); + }, + attempts: { + max: 5, + retryIf: (error, _operation) => !!error + } + }), new HttpLink({ uri: "https://api.thegraph.com/subgraphs/name/shibaswaparmy/exchange", shouldBatch: true, @@ -35,7 +67,15 @@ export const exchange = from([ ]); export const blocklytics = from([ - new RetryLink(), + new RetryLink({ + delay: (count, operation, error) => { + return count * 1000 * Math.random(); + }, + attempts: { + max: 5, + retryIf: (error, _operation) => !!error + } + }), new HttpLink({ uri: "https://api.thegraph.com/subgraphs/name/blocklytics/ethereum-blocks", shouldBatch: true, @@ -43,7 +83,15 @@ export const blocklytics = from([ ]); export const lockup = from([ - new RetryLink(), + new RetryLink({ + delay: (count, operation, error) => { + return count * 1000 * Math.random(); + }, + attempts: { + max: 5, + retryIf: (error, _operation) => !!error + } + }), new HttpLink({ uri: "https://api.thegraph.com/subgraphs/name/matthewlilley/lockup", shouldBatch: true, @@ -52,7 +100,15 @@ export const lockup = from([ export const buryShib = from([ - new RetryLink(), + new RetryLink({ + delay: (count, operation, error) => { + return count * 1000 * Math.random(); + }, + attempts: { + max: 5, + retryIf: (error, _operation) => !!error + } + }), new HttpLink({ uri: "https://api.thegraph.com/subgraphs/name/shibaswaparmy/buryshib", shouldBatch: true, @@ -60,7 +116,15 @@ export const buryShib = from([ ]); export const buryLeash = from([ - new RetryLink(), + new RetryLink({ + delay: (count, operation, error) => { + return count * 1000 * Math.random(); + }, + attempts: { + max: 5, + retryIf: (error, _operation) => !!error + } + }), new HttpLink({ uri: "https://api.thegraph.com/subgraphs/name/shibaswaparmy/buryleash", shouldBatch: true, @@ -69,7 +133,15 @@ export const buryLeash = from([ export const buryBone = from([ - new RetryLink(), + new RetryLink({ + delay: (count, operation, error) => { + return count * 1000 * Math.random(); + }, + attempts: { + max: 5, + retryIf: (error, _operation) => !!error + } + }), new HttpLink({ uri: "https://api.thegraph.com/subgraphs/name/shibaswaparmy/burybone", shouldBatch: true, @@ -77,7 +149,15 @@ export const buryBone = from([ ]); export const topDog = from([ - new RetryLink(), + new RetryLink({ + delay: (count, operation, error) => { + return count * 1000 * Math.random(); + }, + attempts: { + max: 5, + retryIf: (error, _operation) => !!error + } + }), new HttpLink({ uri: "https://api.thegraph.com/subgraphs/name/shibaswaparmy/topdog", shouldBatch: true, @@ -85,7 +165,15 @@ export const topDog = from([ ]); export const shibaSwapExchange = from([ - new RetryLink(), + new RetryLink({ + delay: (count, operation, error) => { + return count * 1000 * Math.random(); + }, + attempts: { + max: 5, + retryIf: (error, _operation) => !!error + } + }), new HttpLink({ uri: "https://api.thegraph.com/subgraphs/name/shibaswaparmy/exchange", shouldBatch: true,