From 2aa1b18d145c57a853fefab7adff1dbdd50ada11 Mon Sep 17 00:00:00 2001 From: Charles Bachmeier Date: Tue, 20 Dec 2022 13:42:52 -0800 Subject: [PATCH] chore: Migrate from Relay to Apollo (#5754) * feat: initial apollo configutation (#5565) * initial apollo configutation * add new files * check in types-and-hooks * config unused export * deduplicate * ignore checked in schema for linting * remove prettier ignore * test unchecking types and hooks file * undo * rename codegen, respond to comments Co-authored-by: Charles Bachmeier * Remove maybe value from codegen * add babel gql codegen * correct ts graphql-tag * remove plugin from craco * chore: migrate Assets Query to Apollo (#5665) * chore: migrate Assets Query to Apollo * delete comment * move length check back to collectionAssets * remove uneeded check * respond to comments * working switching and filters * change sweep fetch policy Co-authored-by: Charles Bachmeier * chore: migrate collection query to apollo (#5647) * migrate collection query to apollo * remove page level suspense * undo removing page level suspense * rename query and hook * guard returns * add return type prop * cleanup nullables * memoizing * use gql from apollo * use babel gql and move empty trait * add fetch policy Co-authored-by: Charles Bachmeier * chore: migrate NFT details query to apollo (#5648) * chore: migrate NFT details query to apollo * update todo * update imports * remove no longer used hook * rename query * use babel gql and nonnullable type * working page * add fetchpolicy * respond to comments Co-authored-by: Charles Bachmeier * chore: migrate NftBalanceQuery (#5653) * chore: migrate NftBalanceQuery * cleanup * update pagination * better undefined handling * move brake listing for invalid asset higher * better handle loading * memoize and cleanup Co-authored-by: Charles Bachmeier * remove named gql query consts * set default fetchPolicy * null suspense * chore: Migrate The Graph queries (#5727) * migrate TheGraph queries to Apollo * add new files * ignore thegraph generated types * use standard fetchPolicy * update apollo codegen commands Co-authored-by: Charles Bachmeier * chore: migrate token queries to Apollo (#5682) * migrate utils to types-and-hooks * too many TokenTable re-renders * working token queries * fixed sparkline for native asset * onChangeTimePeriod * define inline * use query instead of data in naming * sparklineQuery instead of sparklineData * rename to usePriceHistory * multiline if else * remove optional * remove unneeded eslint ignore * rename tokenQueryLoading * rename OnChangeTimePeriod * token address fallback * just address Co-authored-by: Charles Bachmeier * chore: deprecate Relay (#5747) * chore: deprecate Relay * remove graph:ql generate step * add new files * apollo to graphql centric naming * add new files Co-authored-by: Charles Bachmeier * remove no longer needed config exclusions Co-authored-by: Charles Bachmeier --- .eslintignore | 2 + .gitignore | 1 - apollo-codegen.ts | 23 + apollo-codegen_thegraph.ts | 23 + fetch-schema.js | 4 +- relay.config.js => graphql.config.js | 0 ...ph.config.js => graphql_thegraph.config.js | 2 +- package.json | 19 +- src/components/Charts/SparklineChart.tsx | 11 +- .../Tokens/TokenDetails/ChartSection.tsx | 37 +- src/components/Tokens/TokenDetails/index.tsx | 25 +- src/components/Tokens/TokenTable/TokenRow.tsx | 3 +- .../Tokens/TokenTable/TokenTable.tsx | 11 +- src/graphql/data/RelayEnvironment.ts | 57 - src/graphql/data/Token.ts | 27 +- src/graphql/data/TokenPrice.ts | 16 +- src/graphql/data/TopTokens.ts | 87 +- .../data/__generated__/types-and-hooks.ts | 1595 ++++++ src/graphql/data/apollo.ts | 30 + src/graphql/data/nft/Asset.ts | 185 +- src/graphql/data/nft/Collection.ts | 111 +- src/graphql/data/nft/Details.ts | 162 +- src/graphql/data/nft/NftBalance.ts | 114 +- src/graphql/data/util.tsx | 52 +- src/graphql/thegraph/AllV3TicksQuery.ts | 65 +- .../thegraph/FeeTierDistributionQuery.ts | 63 +- src/graphql/thegraph/RelayEnvironment.ts | 9 - .../thegraph/__generated__/types-and-hooks.ts | 4750 +++++++++++++++++ src/graphql/thegraph/apollo.ts | 40 + src/graphql/thegraph/fetchGraphQL.ts | 53 - src/hooks/usePoolTickData.ts | 2 +- src/index.tsx | 8 +- .../components/bag/profile/ListingButton.tsx | 2 +- .../components/bag/profile/ListingSection.tsx | 2 +- src/nft/components/bag/profile/utils.ts | 19 +- src/nft/components/collection/Card.tsx | 10 +- .../components/collection/CollectionAsset.tsx | 5 +- .../components/collection/CollectionNfts.tsx | 90 +- src/nft/components/collection/Sweep.tsx | 20 +- src/nft/components/details/AssetDetails.tsx | 2 +- .../components/details/AssetPriceDetails.tsx | 25 +- src/nft/components/explore/Banner.tsx | 19 +- src/nft/components/explore/CarouselCard.tsx | 6 +- .../profile/list/NFTListingsGrid.tsx | 20 +- .../components/profile/view/ProfilePage.tsx | 16 +- .../profile/view/ViewMyNftsAsset.tsx | 7 +- src/nft/hooks/useBag.ts | 5 +- src/nft/hooks/useCollectionFilters.ts | 2 +- src/nft/hooks/useWalletCollections.ts | 3 +- src/nft/pages/asset/Asset.tsx | 36 +- src/nft/pages/collection/index.tsx | 36 +- src/nft/queries/genie/RouteFetcher.ts | 5 +- src/nft/types/common/common.ts | 15 +- src/nft/types/sell/sell.ts | 63 +- src/nft/utils/listNfts.ts | 8 +- src/pages/App.tsx | 12 +- src/pages/TokenDetails/index.tsx | 51 +- src/pages/Tokens/index.tsx | 11 +- src/react-app-env.d.ts | 4 - yarn.lock | 2180 ++++++-- 60 files changed, 8918 insertions(+), 1343 deletions(-) create mode 100644 apollo-codegen.ts create mode 100644 apollo-codegen_thegraph.ts rename relay.config.js => graphql.config.js (100%) rename relay_thegraph.config.js => graphql_thegraph.config.js (85%) delete mode 100644 src/graphql/data/RelayEnvironment.ts create mode 100644 src/graphql/data/__generated__/types-and-hooks.ts create mode 100644 src/graphql/data/apollo.ts delete mode 100644 src/graphql/thegraph/RelayEnvironment.ts create mode 100644 src/graphql/thegraph/__generated__/types-and-hooks.ts create mode 100644 src/graphql/thegraph/apollo.ts delete mode 100644 src/graphql/thegraph/fetchGraphQL.ts diff --git a/.eslintignore b/.eslintignore index eb0ffc8e01..e34cedf643 100644 --- a/.eslintignore +++ b/.eslintignore @@ -1,2 +1,4 @@ *.config.ts *.d.ts +/src/graphql/data/__generated__/types-and-hooks.ts +/src/graphql/thegraph/__generated__/types-and-hooks.ts diff --git a/.gitignore b/.gitignore index eaaa22fbad..92d6d71654 100644 --- a/.gitignore +++ b/.gitignore @@ -9,7 +9,6 @@ /src/locales/**/pseudo.po # generated graphql types -__generated__/ schema.graphql # dependencies diff --git a/apollo-codegen.ts b/apollo-codegen.ts new file mode 100644 index 0000000000..43b1fe1ca3 --- /dev/null +++ b/apollo-codegen.ts @@ -0,0 +1,23 @@ +import type { CodegenConfig } from '@graphql-codegen/cli' + +// Generates TS objects from the schemas returned by graphql queries +// To learn more: https://www.apollographql.com/docs/react/development-testing/static-typing/#setting-up-your-project +const config: CodegenConfig = { + overwrite: true, + schema: './src/graphql/data/schema.graphql', + documents: ['./src/graphql/data/**', '!./src/graphql/data/__generated__/**', '!**/thegraph/**'], + generates: { + 'src/graphql/data/__generated__/types-and-hooks.ts': { + plugins: ['typescript', 'typescript-operations', 'typescript-react-apollo'], + config: { + withHooks: true, + // This avoid all generated schemas being wrapped in Maybe https://the-guild.dev/graphql/codegen/plugins/typescript/typescript#maybevalue-string-default-value-t--null + maybeValue: 'T', + }, + }, + }, +} + +// This is used in package.json when generating apollo schemas however the linter stills flags this as unused +// eslint-disable-next-line import/no-unused-modules +export default config diff --git a/apollo-codegen_thegraph.ts b/apollo-codegen_thegraph.ts new file mode 100644 index 0000000000..085f64d95b --- /dev/null +++ b/apollo-codegen_thegraph.ts @@ -0,0 +1,23 @@ +import type { CodegenConfig } from '@graphql-codegen/cli' + +// Generates TS objects from the schemas returned by graphql queries +// To learn more: https://www.apollographql.com/docs/react/development-testing/static-typing/#setting-up-your-project +const config: CodegenConfig = { + overwrite: true, + schema: './src/graphql/thegraph/schema.graphql', + documents: ['!./src/graphql/data/**', '!./src/graphql/thegraph/__generated__/**', './src/graphql/thegraph/**'], + generates: { + 'src/graphql/thegraph/__generated__/types-and-hooks.ts': { + plugins: ['typescript', 'typescript-operations', 'typescript-react-apollo'], + config: { + withHooks: true, + // This avoid all generated schemas being wrapped in Maybe https://the-guild.dev/graphql/codegen/plugins/typescript/typescript#maybevalue-string-default-value-t--null + maybeValue: 'T', + }, + }, + }, +} + +// This is used in package.json when generating apollo schemas however the linter stills flags this as unused +// eslint-disable-next-line import/no-unused-modules +export default config diff --git a/fetch-schema.js b/fetch-schema.js index 23a01dc059..0bfdc239a1 100644 --- a/fetch-schema.js +++ b/fetch-schema.js @@ -1,8 +1,8 @@ /* eslint-disable */ require('dotenv').config({ path: '.env.production' }) const { exec } = require('child_process') -const dataConfig = require('./relay.config') -const thegraphConfig = require('./relay_thegraph.config') +const dataConfig = require('./graphql.config') +const thegraphConfig = require('./graphql_thegraph.config') /* eslint-enable */ function fetchSchema(url, outputFile) { diff --git a/relay.config.js b/graphql.config.js similarity index 100% rename from relay.config.js rename to graphql.config.js diff --git a/relay_thegraph.config.js b/graphql_thegraph.config.js similarity index 85% rename from relay_thegraph.config.js rename to graphql_thegraph.config.js index b27a2e3716..b8564f0816 100644 --- a/relay_thegraph.config.js +++ b/graphql_thegraph.config.js @@ -1,5 +1,5 @@ // eslint-disable-next-line @typescript-eslint/no-var-requires -const defaultConfig = require('./relay.config') +const defaultConfig = require('./graphql.config') module.exports = { src: defaultConfig.src, diff --git a/package.json b/package.json index 5c0f99d173..522ad109d9 100644 --- a/package.json +++ b/package.json @@ -8,10 +8,10 @@ "contracts:compile:abi": "typechain --target ethers-v5 --out-dir src/abis/types \"./src/abis/**/*.json\"", "contracts:compile:v3": "typechain --target ethers-v5 --out-dir src/types/v3 \"./node_modules/@uniswap/**/artifacts/contracts/**/*[!dbg].json\"", "contracts:compile": "yarn contracts:compile:abi && yarn contracts:compile:v3", - "relay": "relay-compiler relay.config.js", - "relay-thegraph": "relay-compiler relay_thegraph.config.js", "graphql:fetch": "node fetch-schema.js", - "graphql:generate": "yarn relay && yarn relay-thegraph", + "graphql:generate:data": "graphql-codegen --config apollo-codegen.ts", + "graphql:generate:thegraph": "graphql-codegen --config apollo-codegen_thegraph.ts", + "graphql:generate": "yarn graphql:generate:data && yarn graphql:generate:thegraph", "prei18n:extract": "node prei18n-extract.js", "i18n:extract": "lingui extract --locale en-US", "i18n:compile": "yarn i18n:extract && lingui compile", @@ -94,7 +94,6 @@ "@typescript-eslint/parser": "^4", "@vanilla-extract/babel-plugin": "^1.1.7", "@vanilla-extract/webpack-plugin": "^2.1.11", - "babel-plugin-relay": "^14.1.0", "cypress": "^10.3.1", "env-cmd": "^10.1.0", "eslint": "^7.11.0", @@ -113,16 +112,23 @@ "postinstall-postinstall": "^2.1.0", "prettier": "^2.7.1", "react-scripts": "^4.0.3", - "relay-compiler": "^14.1.0", "serve": "^11.3.2", + "ts-transform-graphql-tag": "^0.2.1", "typechain": "^5.0.0", "typescript": "^4.4.3", "yarn-deduplicate": "^6.0.0" }, "dependencies": { + "@apollo/client": "^3.7.2", "@coinbase/wallet-sdk": "^3.3.0", "@fontsource/ibm-plex-mono": "^4.5.1", "@fontsource/inter": "^4.5.1", + "@graphql-codegen/cli": "^2.15.0", + "@graphql-codegen/client-preset": "^1.2.1", + "@graphql-codegen/typescript": "^2.8.3", + "@graphql-codegen/typescript-operations": "^2.5.8", + "@graphql-codegen/typescript-react-apollo": "^3.3.7", + "@graphql-codegen/typescript-resolvers": "^2.7.8", "@lingui/core": "^3.14.0", "@lingui/macro": "^3.14.0", "@lingui/react": "^3.14.0", @@ -135,7 +141,6 @@ "@react-hook/window-scroll": "^1.3.0", "@reduxjs/toolkit": "^1.6.1", "@sentry/react": "7.20.1", - "@types/react-relay": "^13.0.2", "@types/react-window-infinite-loader": "^1.0.6", "@uniswap/analytics": "1.2.0", "@uniswap/analytics-events": "^1.5.0", @@ -215,8 +220,6 @@ "react-popper": "^2.2.3", "react-query": "^3.39.1", "react-redux": "^8.0.2", - "react-relay": "^14.1.0", - "react-relay-network-modern": "^6.2.1", "react-router-dom": "^6.3.0", "react-spring": "^9.5.5", "react-table": "^7.8.0", diff --git a/src/components/Charts/SparklineChart.tsx b/src/components/Charts/SparklineChart.tsx index b37b2a9a69..7c9b455999 100644 --- a/src/components/Charts/SparklineChart.tsx +++ b/src/components/Charts/SparklineChart.tsx @@ -2,7 +2,6 @@ import { SparkLineLoadingBubble } from 'components/Tokens/TokenTable/TokenRow' import { curveCardinal, scaleLinear } from 'd3' import { SparklineMap, TopToken } from 'graphql/data/TopTokens' import { PricePoint } from 'graphql/data/util' -import { TimePeriod } from 'graphql/data/util' import { memo } from 'react' import styled, { useTheme } from 'styled-components/macro' @@ -21,18 +20,10 @@ interface SparklineChartProps { height: number tokenData: TopToken pricePercentChange: number | undefined | null - timePeriod: TimePeriod sparklineMap: SparklineMap } -function _SparklineChart({ - width, - height, - tokenData, - pricePercentChange, - timePeriod, - sparklineMap, -}: SparklineChartProps) { +function _SparklineChart({ width, height, tokenData, pricePercentChange, sparklineMap }: SparklineChartProps) { const theme = useTheme() // for sparkline const pricePoints = tokenData?.address ? sparklineMap[tokenData.address] : null diff --git a/src/components/Tokens/TokenDetails/ChartSection.tsx b/src/components/Tokens/TokenDetails/ChartSection.tsx index 147d60f321..852ba0c31a 100644 --- a/src/components/Tokens/TokenDetails/ChartSection.tsx +++ b/src/components/Tokens/TokenDetails/ChartSection.tsx @@ -1,22 +1,19 @@ import { ParentSize } from '@visx/responsive' import { ChartContainer, LoadingChart } from 'components/Tokens/TokenDetails/Skeleton' -import { TokenPriceQuery, tokenPriceQuery } from 'graphql/data/TokenPrice' +import { TokenPriceQuery } from 'graphql/data/TokenPrice' import { isPricePoint, PricePoint } from 'graphql/data/util' import { TimePeriod } from 'graphql/data/util' import { useAtomValue } from 'jotai/utils' import { pageTimePeriodAtom } from 'pages/TokenDetails' import { startTransition, Suspense, useMemo } from 'react' -import { PreloadedQuery, usePreloadedQuery } from 'react-relay' import { PriceChart } from './PriceChart' import TimePeriodSelector from './TimeSelector' -function usePreloadedTokenPriceQuery(priceQueryReference: PreloadedQuery): PricePoint[] | undefined { - const queryData = usePreloadedQuery(tokenPriceQuery, priceQueryReference) - +function usePriceHistory(tokenPriceData: TokenPriceQuery): PricePoint[] | undefined { // Appends the current price to the end of the priceHistory array const priceHistory = useMemo(() => { - const market = queryData.tokens?.[0]?.market + const market = tokenPriceData.tokens?.[0]?.market const priceHistory = market?.priceHistory?.filter(isPricePoint) const currentPrice = market?.price?.value if (Array.isArray(priceHistory) && currentPrice !== undefined) { @@ -24,39 +21,39 @@ function usePreloadedTokenPriceQuery(priceQueryReference: PreloadedQuery | null | undefined - refetchTokenPrices: RefetchPricesFunction + tokenPriceQuery?: TokenPriceQuery + onChangeTimePeriod: OnChangeTimePeriod }) { - if (!priceQueryReference) { + if (!tokenPriceQuery) { return } return ( }> - + ) } -export type RefetchPricesFunction = (t: TimePeriod) => void +export type OnChangeTimePeriod = (t: TimePeriod) => void function Chart({ - priceQueryReference, - refetchTokenPrices, + tokenPriceQuery, + onChangeTimePeriod, }: { - priceQueryReference: PreloadedQuery - refetchTokenPrices: RefetchPricesFunction + tokenPriceQuery: TokenPriceQuery + onChangeTimePeriod: OnChangeTimePeriod }) { - const prices = usePreloadedTokenPriceQuery(priceQueryReference) + const prices = usePriceHistory(tokenPriceQuery) // Initializes time period to global & maintain separate time period for subsequent changes const timePeriod = useAtomValue(pageTimePeriodAtom) @@ -68,7 +65,7 @@ function Chart({ { - startTransition(() => refetchTokenPrices(t)) + startTransition(() => onChangeTimePeriod(t)) }} /> diff --git a/src/components/Tokens/TokenDetails/index.tsx b/src/components/Tokens/TokenDetails/index.tsx index a30e16998d..a4ea9b08e7 100644 --- a/src/components/Tokens/TokenDetails/index.tsx +++ b/src/components/Tokens/TokenDetails/index.tsx @@ -27,21 +27,20 @@ import Widget from 'components/Widget' import { getChainInfo } from 'constants/chainInfo' import { NATIVE_CHAIN_ID, nativeOnChain } from 'constants/tokens' import { checkWarning } from 'constants/tokenSafety' -import { TokenPriceQuery } from 'graphql/data/__generated__/TokenPriceQuery.graphql' +import { TokenPriceQuery } from 'graphql/data/__generated__/types-and-hooks' import { Chain, TokenQuery, TokenQueryData } from 'graphql/data/Token' -import { QueryToken, tokenQuery } from 'graphql/data/Token' +import { QueryToken } from 'graphql/data/Token' import { CHAIN_NAME_TO_CHAIN_ID, getTokenDetailsURL } from 'graphql/data/util' import { useIsUserAddedTokenOnChain } from 'hooks/Tokens' import { useOnGlobalChainSwitch } from 'hooks/useGlobalChainSwitch' import { UNKNOWN_TOKEN_SYMBOL, useTokenFromActiveNetwork } from 'lib/hooks/useCurrency' import { useCallback, useMemo, useState, useTransition } from 'react' import { ArrowLeft } from 'react-feather' -import { PreloadedQuery, usePreloadedQuery } from 'react-relay' import { useNavigate } from 'react-router-dom' import styled from 'styled-components/macro' import { isAddress } from 'utils' -import { RefetchPricesFunction } from './ChartSection' +import { OnChangeTimePeriod } from './ChartSection' import InvalidTokenDetails from './InvalidTokenDetails' const TokenSymbol = styled.span` @@ -75,7 +74,7 @@ function useRelevantToken( const queryToken = useMemo(() => { if (!address) return undefined if (address === NATIVE_CHAIN_ID) return nativeOnChain(pageChainId) - if (tokenQueryData) return new QueryToken(tokenQueryData) + if (tokenQueryData) return new QueryToken(address, tokenQueryData) return undefined }, [pageChainId, address, tokenQueryData]) // fetches on-chain token if query data is missing and page chain matches global chain (else fetch won't work) @@ -91,16 +90,16 @@ function useRelevantToken( type TokenDetailsProps = { urlAddress: string | undefined chain: Chain - tokenQueryReference: PreloadedQuery - priceQueryReference: PreloadedQuery | null | undefined - refetchTokenPrices: RefetchPricesFunction + tokenQuery: TokenQuery + tokenPriceQuery: TokenPriceQuery | undefined + onChangeTimePeriod: OnChangeTimePeriod } export default function TokenDetails({ urlAddress, chain, - tokenQueryReference, - priceQueryReference, - refetchTokenPrices, + tokenQuery, + tokenPriceQuery, + onChangeTimePeriod, }: TokenDetailsProps) { if (!urlAddress) { throw new Error('Invalid token details route: tokenAddress param is undefined') @@ -112,7 +111,7 @@ export default function TokenDetails({ const pageChainId = CHAIN_NAME_TO_CHAIN_ID[chain] - const tokenQueryData = usePreloadedQuery(tokenQuery, tokenQueryReference).tokens?.[0] + const tokenQueryData = tokenQuery.tokens?.[0] const crossChainMap = useMemo( () => tokenQueryData?.project?.tokens.reduce((map, current) => { @@ -200,7 +199,7 @@ export default function TokenDetails({ - + sendAnalyticsEvent(EventName.EXPLORE_TOKEN_ROW_CLICKED, exploreTokenSelectedEventProperties)} > ) diff --git a/src/components/Tokens/TokenTable/TokenTable.tsx b/src/components/Tokens/TokenTable/TokenTable.tsx index e06b2abf87..b03b884908 100644 --- a/src/components/Tokens/TokenTable/TokenTable.tsx +++ b/src/components/Tokens/TokenTable/TokenTable.tsx @@ -64,7 +64,7 @@ const LoadingRows = ({ rowCount }: { rowCount: number }) => ( ) -export function LoadingTokenTable({ rowCount = PAGE_SIZE }: { rowCount?: number }) { +function LoadingTokenTable({ rowCount = PAGE_SIZE }: { rowCount?: number }) { return ( @@ -75,14 +75,15 @@ export function LoadingTokenTable({ rowCount = PAGE_SIZE }: { rowCount?: number ) } -export default function TokenTable({ setRowCount }: { setRowCount: (c: number) => void }) { +export default function TokenTable() { // TODO: consider moving prefetched call into app.tsx and passing it here, use a preloaded call & updated on interval every 60s const chainName = validateUrlChainParam(useParams<{ chainName?: string }>().chainName) - const { tokens, sparklines } = useTopTokens(chainName) - setRowCount(tokens?.length ?? PAGE_SIZE) + const { tokens, loadingTokens, sparklines } = useTopTokens(chainName) /* loading and error state */ - if (!tokens) { + if (loadingTokens) { + return + } else if (!tokens) { return ( { - try { - const res = await next(req) - if (!res || !res.data) throw new Error('Missing response data') - return res - } catch (e) { - console.error(e) - return RelayNetworkLayerResponse.createFromGraphQL({ data: [] }) - } - } - }, - retryMiddleware({ - fetchTimeout: ms`30s`, // mirrors backend's timeout in case that fails - retryDelays: RETRY_TIME_MS, - statusCodes: (statusCode) => statusCode >= 500 && statusCode < 600, - }), - ], - { noThrow: true } -) - -const CachingEnvironment = new Environment({ - network, - store: new Store(new RecordSource(), { gcReleaseBufferSize, queryCacheExpirationTime }), -}) -export default CachingEnvironment diff --git a/src/graphql/data/Token.ts b/src/graphql/data/Token.ts index a1c08550e9..a9c904ddae 100644 --- a/src/graphql/data/Token.ts +++ b/src/graphql/data/Token.ts @@ -1,8 +1,8 @@ -import graphql from 'babel-plugin-relay/macro' import { DEFAULT_ERC20_DECIMALS } from 'constants/tokens' +import gql from 'graphql-tag' import { WrappedTokenInfo } from 'state/lists/wrappedTokenInfo' -import { TokenQuery$data } from './__generated__/TokenQuery.graphql' +import { TokenQuery } from './__generated__/types-and-hooks' import { CHAIN_NAME_TO_CHAIN_ID } from './util' /* @@ -13,14 +13,14 @@ The difference between Token and TokenProject: TokenMarket is per-chain market data for contracts pulled from the graph. TokenProjectMarket is aggregated market data (aggregated over multiple dexes and centralized exchanges) that we get from coingecko. */ -export const tokenQuery = graphql` - query TokenQuery($contract: ContractInput!) { +gql` + query Token($contract: ContractInput!) { tokens(contracts: [$contract]) { - id @required(action: LOG) + id decimals name - chain @required(action: LOG) - address @required(action: LOG) + chain + address symbol market(currency: USD) { totalValueLocked { @@ -48,23 +48,24 @@ export const tokenQuery = graphql` twitterName logoUrl tokens { - chain @required(action: LOG) - address @required(action: LOG) + chain + address } } } } ` -export type { Chain, TokenQuery } from './__generated__/TokenQuery.graphql' -export type TokenQueryData = NonNullable[number] +export type { Chain, TokenQuery } from './__generated__/types-and-hooks' + +export type TokenQueryData = NonNullable[number] // TODO: Return a QueryToken from useTokenQuery instead of TokenQueryData to make it more usable in Currency-centric interfaces. export class QueryToken extends WrappedTokenInfo { - constructor(data: NonNullable, logoSrc?: string) { + constructor(address: string, data: NonNullable, logoSrc?: string) { super({ chainId: CHAIN_NAME_TO_CHAIN_ID[data.chain], - address: data.address, + address, decimals: data.decimals ?? DEFAULT_ERC20_DECIMALS, symbol: data.symbol ?? '', name: data.name ?? '', diff --git a/src/graphql/data/TokenPrice.ts b/src/graphql/data/TokenPrice.ts index 4c9f93a4df..f13f3aef9e 100644 --- a/src/graphql/data/TokenPrice.ts +++ b/src/graphql/data/TokenPrice.ts @@ -1,19 +1,19 @@ -import graphql from 'babel-plugin-relay/macro' +import gql from 'graphql-tag' // TODO: Implemnt this as a refetchable fragment on tokenQuery when backend adds support -export const tokenPriceQuery = graphql` - query TokenPriceQuery($contract: ContractInput!, $duration: HistoryDuration!) { +gql` + query TokenPrice($contract: ContractInput!, $duration: HistoryDuration!) { tokens(contracts: [$contract]) { - market(currency: USD) @required(action: LOG) { + market(currency: USD) { price { - value @required(action: LOG) + value } priceHistory(duration: $duration) { - timestamp @required(action: LOG) - value @required(action: LOG) + timestamp + value } } } } ` -export type { TokenPriceQuery } from './__generated__/TokenPriceQuery.graphql' +export type { TokenPriceQuery } from './__generated__/types-and-hooks' diff --git a/src/graphql/data/TopTokens.ts b/src/graphql/data/TopTokens.ts index 7edceeacdd..7d44c289e2 100644 --- a/src/graphql/data/TopTokens.ts +++ b/src/graphql/data/TopTokens.ts @@ -1,4 +1,3 @@ -import graphql from 'babel-plugin-relay/macro' import { filterStringAtom, filterTimeAtom, @@ -6,22 +5,25 @@ import { sortMethodAtom, TokenSortMethod, } from 'components/Tokens/state' +import gql from 'graphql-tag' import { useAtomValue } from 'jotai/utils' -import { useEffect, useMemo, useState } from 'react' -import { fetchQuery, useLazyLoadQuery, useRelayEnvironment } from 'react-relay' +import { useMemo } from 'react' -import type { Chain, TopTokens100Query } from './__generated__/TopTokens100Query.graphql' -import { TopTokensSparklineQuery } from './__generated__/TopTokensSparklineQuery.graphql' -import { isPricePoint, PricePoint } from './util' -import { CHAIN_NAME_TO_CHAIN_ID, toHistoryDuration, unwrapToken } from './util' +import { + Chain, + TopTokens100Query, + useTopTokens100Query, + useTopTokensSparklineQuery, +} from './__generated__/types-and-hooks' +import { CHAIN_NAME_TO_CHAIN_ID, isPricePoint, PricePoint, toHistoryDuration, unwrapToken } from './util' -const topTokens100Query = graphql` - query TopTokens100Query($duration: HistoryDuration!, $chain: Chain!) { +gql` + query TopTokens100($duration: HistoryDuration!, $chain: Chain!) { topTokens(pageSize: 100, page: 1, chain: $chain) { - id @required(action: LOG) + id name - chain @required(action: LOG) - address @required(action: LOG) + chain + address symbol market(currency: USD) { totalValueLocked { @@ -48,21 +50,21 @@ const topTokens100Query = graphql` } ` -const tokenSparklineQuery = graphql` - query TopTokensSparklineQuery($duration: HistoryDuration!, $chain: Chain!) { +gql` + query TopTokensSparkline($duration: HistoryDuration!, $chain: Chain!) { topTokens(pageSize: 100, page: 1, chain: $chain) { address market(currency: USD) { priceHistory(duration: $duration) { - timestamp @required(action: LOG) - value @required(action: LOG) + timestamp + value } } } } ` -function useSortedTokens(tokens: NonNullable) { +function useSortedTokens(tokens: NonNullable) { const sortMethod = useAtomValue(sortMethodAtom) const sortAscending = useAtomValue(sortAscendingAtom) @@ -91,7 +93,7 @@ function useSortedTokens(tokens: NonNullable) { +function useFilteredTokens(tokens: NonNullable) { const filterString = useAtomValue(filterStringAtom) const lowercaseFilterString = useMemo(() => filterString.toLowerCase(), [filterString]) @@ -112,11 +114,12 @@ function useFilteredTokens(tokens: NonNullable['topTokens']>[number] export type SparklineMap = { [key: string]: PricePoint[] | undefined } +export type TopToken = NonNullable['topTokens']>[number] + interface UseTopTokensReturnValue { tokens: TopToken[] | undefined + loadingTokens: boolean sparklines: SparklineMap } @@ -124,33 +127,27 @@ export function useTopTokens(chain: Chain): UseTopTokensReturnValue { const chainId = CHAIN_NAME_TO_CHAIN_ID[chain] const duration = toHistoryDuration(useAtomValue(filterTimeAtom)) - const environment = useRelayEnvironment() - const [sparklines, setSparklines] = useState({}) - useEffect(() => { - const subscription = fetchQuery(environment, tokenSparklineQuery, { duration, chain }) - .map((data) => ({ - topTokens: data.topTokens?.map((token) => unwrapToken(chainId, token)), - })) - .subscribe({ - next(data) { - const map: SparklineMap = {} - data.topTokens?.forEach( - (current) => - current?.address && (map[current.address] = current?.market?.priceHistory?.filter(isPricePoint)) - ) - setSparklines(map) - }, - }) - return () => subscription.unsubscribe() - }, [chain, chainId, duration, environment]) + const { data: sparklineQuery } = useTopTokensSparklineQuery({ + variables: { duration, chain }, + }) - useEffect(() => { - setSparklines({}) - }, [duration]) + const sparklines = useMemo(() => { + const unwrappedTokens = sparklineQuery?.topTokens?.map((topToken) => unwrapToken(chainId, topToken)) + const map: SparklineMap = {} + unwrappedTokens?.forEach( + (current) => current?.address && (map[current.address] = current?.market?.priceHistory?.filter(isPricePoint)) + ) + return map + }, [chainId, sparklineQuery?.topTokens]) - const { topTokens } = useLazyLoadQuery(topTokens100Query, { duration, chain }) - const mappedTokens = useMemo(() => topTokens?.map((token) => unwrapToken(chainId, token)) ?? [], [chainId, topTokens]) + const { data, loading: loadingTokens } = useTopTokens100Query({ + variables: { duration, chain }, + }) + const mappedTokens = useMemo( + () => data?.topTokens?.map((token) => unwrapToken(chainId, token)) ?? [], + [chainId, data] + ) const filteredTokens = useFilteredTokens(mappedTokens) const sortedTokens = useSortedTokens(filteredTokens) - return useMemo(() => ({ tokens: sortedTokens, sparklines }), [sortedTokens, sparklines]) + return useMemo(() => ({ tokens: sortedTokens, loadingTokens, sparklines }), [loadingTokens, sortedTokens, sparklines]) } diff --git a/src/graphql/data/__generated__/types-and-hooks.ts b/src/graphql/data/__generated__/types-and-hooks.ts new file mode 100644 index 0000000000..617bce4a4c --- /dev/null +++ b/src/graphql/data/__generated__/types-and-hooks.ts @@ -0,0 +1,1595 @@ +import { gql } from '@apollo/client'; +import * as Apollo from '@apollo/client'; +export type Maybe = T; +export type InputMaybe = T; +export type Exact = { [K in keyof T]: T[K] }; +export type MakeOptional = Omit & { [SubKey in K]?: Maybe }; +export type MakeMaybe = Omit & { [SubKey in K]: Maybe }; +const defaultOptions = {} as const; +/** All built-in and custom scalars, mapped to their actual values */ +export type Scalars = { + ID: string; + String: string; + Boolean: boolean; + Int: number; + Float: number; + /** + * The `AWSJSON` scalar type provided by AWS AppSync, represents a JSON string that + * complies with [RFC 8259](https://tools.ietf.org/html/rfc8259). Maps like + * "**{\\"upvotes\\": 10}**", lists like "**[1,2,3]**", and scalar values like + * "**\\"AWSJSON example string\\"**", "**1**", and "**true**" are accepted as + * valid JSON and will automatically be parsed and loaded in the resolver mapping + * templates as Maps, Lists, or Scalar values rather than as the literal input + * strings. Invalid JSON strings like "**{a: 1}**", "**{'a': 1}**" and "**Unquoted + * string**" will throw GraphQL validation errors. + */ + AWSJSON: any; +}; + +export enum ActivityType { + Approve = 'APPROVE', + Borrow = 'BORROW', + Burn = 'BURN', + Cancel = 'CANCEL', + Claim = 'CLAIM', + Deployment = 'DEPLOYMENT', + Lend = 'LEND', + Mint = 'MINT', + Nft = 'NFT', + Receive = 'RECEIVE', + Repay = 'REPAY', + Send = 'SEND', + Stake = 'STAKE', + Swap = 'SWAP', + Staking = 'Staking', + Unknown = 'UNKNOWN', + Unstake = 'UNSTAKE', + Withdraw = 'WITHDRAW', + Market = 'market', + Money = 'money' +} + +export type Amount = IAmount & { + __typename?: 'Amount'; + currency?: Maybe; + id: Scalars['ID']; + value: Scalars['Float']; +}; + +export type AmountChange = { + __typename?: 'AmountChange'; + absolute?: Maybe; + id: Scalars['ID']; + percentage?: Maybe; +}; + +export type AssetActivity = { + __typename?: 'AssetActivity'; + assetChanges: Array>; + chain: Chain; + gasUsed?: Maybe; + id: Scalars['ID']; + timestamp: Scalars['Int']; + transaction: Transaction; + type: ActivityType; +}; + +export type AssetChange = NftApproval | NftApproveForAll | NftTransfer | TokenApproval | TokenTransfer; + +export enum Chain { + Arbitrum = 'ARBITRUM', + Celo = 'CELO', + Ethereum = 'ETHEREUM', + EthereumGoerli = 'ETHEREUM_GOERLI', + Optimism = 'OPTIMISM', + Polygon = 'POLYGON' +} + +export type ContractInput = { + address?: InputMaybe; + chain: Chain; +}; + +export enum Currency { + Eth = 'ETH', + Usd = 'USD' +} + +export type Dimensions = { + __typename?: 'Dimensions'; + height?: Maybe; + id: Scalars['ID']; + width?: Maybe; +}; + +export enum HighLow { + High = 'HIGH', + Low = 'LOW' +} + +export enum HistoryDuration { + Day = 'DAY', + Hour = 'HOUR', + Max = 'MAX', + Month = 'MONTH', + Week = 'WEEK', + Year = 'YEAR' +} + +export type IAmount = { + currency?: Maybe; + value: Scalars['Float']; +}; + +export type IContract = { + address?: Maybe; + chain: Chain; +}; + +export type Image = { + __typename?: 'Image'; + dimensions?: Maybe; + id: Scalars['ID']; + url: Scalars['String']; +}; + +/** TODO: deprecate this enum */ +export enum MarketSortableField { + MarketCap = 'MARKET_CAP', + Volume = 'VOLUME' +} + +export type NftApproval = { + __typename?: 'NftApproval'; + approvedAddress: Scalars['String']; + /** can be erc20 or erc1155 */ + asset: NftAsset; + id: Scalars['ID']; + nftStandard: NftStandard; +}; + +export type NftApproveForAll = { + __typename?: 'NftApproveForAll'; + approved: Scalars['Boolean']; + /** can be erc721 or erc1155 */ + asset: NftAsset; + id: Scalars['ID']; + nftStandard: NftStandard; + operatorAddress: Scalars['String']; +}; + +export type NftAsset = { + __typename?: 'NftAsset'; + animationUrl?: Maybe; + collection?: Maybe; + creator?: Maybe; + description?: Maybe; + flaggedBy?: Maybe; + id: Scalars['ID']; + image?: Maybe; + imageUrl?: Maybe; + listings?: Maybe; + metadataUrl?: Maybe; + name?: Maybe; + nftContract?: Maybe; + originalImage?: Maybe; + /** TODO: may need to be array to support erc1155 cases. not needed at the moment so will revisit. */ + ownerAddress?: Maybe; + rarities?: Maybe>; + smallImage?: Maybe; + smallImageUrl?: Maybe; + suspiciousFlag?: Maybe; + thumbnail?: Maybe; + thumbnailUrl?: Maybe; + tokenId: Scalars['String']; + traits?: Maybe>; +}; + + +export type NftAssetListingsArgs = { + after?: InputMaybe; + asc?: InputMaybe; + before?: InputMaybe; + first?: InputMaybe; + last?: InputMaybe; +}; + +export type NftAssetConnection = { + __typename?: 'NftAssetConnection'; + edges: Array; + pageInfo: PageInfo; + totalCount?: Maybe; +}; + +export type NftAssetEdge = { + __typename?: 'NftAssetEdge'; + cursor: Scalars['String']; + node: NftAsset; +}; + +export type NftAssetInput = { + address: Scalars['String']; + tokenId: Scalars['String']; +}; + +export type NftAssetRarity = { + __typename?: 'NftAssetRarity'; + id: Scalars['ID']; + provider?: Maybe; + rank?: Maybe; + score?: Maybe; +}; + +export enum NftAssetSortableField { + Price = 'PRICE', + Rarity = 'RARITY' +} + +export type NftAssetTrait = { + __typename?: 'NftAssetTrait'; + id: Scalars['ID']; + name?: Maybe; + rarity?: Maybe; + value?: Maybe; +}; + +export type NftAssetTraitInput = { + name: Scalars['String']; + values: Array; +}; + +export type NftAssetsFilterInput = { + listed?: InputMaybe; + marketplaces?: InputMaybe>; + maxPrice?: InputMaybe; + minPrice?: InputMaybe; + tokenIds?: InputMaybe>; + tokenSearchQuery?: InputMaybe; + traits?: InputMaybe>; +}; + +export type NftBalance = { + __typename?: 'NftBalance'; + id: Scalars['ID']; + lastPrice?: Maybe; + listedMarketplaces?: Maybe>; + listingFees?: Maybe>>; + ownedAsset?: Maybe; +}; + +export type NftBalanceConnection = { + __typename?: 'NftBalanceConnection'; + edges: Array; + pageInfo: PageInfo; +}; + +export type NftBalanceEdge = { + __typename?: 'NftBalanceEdge'; + cursor: Scalars['String']; + node: NftBalance; +}; + +export type NftBalancesFilterInput = { + addresses?: InputMaybe>; + assets?: InputMaybe>; +}; + +export type NftCollection = { + __typename?: 'NftCollection'; + bannerImage?: Maybe; + /** + * TODO: support querying for collection assets here + * assets(page: Int, pageSize: Int, orderBy: NftAssetSortableField): [NftAsset] + */ + bannerImageUrl?: Maybe; + collectionId: Scalars['String']; + creator?: Maybe; + description?: Maybe; + discordUrl?: Maybe; + homepageUrl?: Maybe; + id: Scalars['ID']; + image?: Maybe; + imageUrl?: Maybe; + instagramName?: Maybe; + isVerified?: Maybe; + markets?: Maybe>; + name?: Maybe; + nftContracts?: Maybe>; + numAssets?: Maybe; + openseaUrl?: Maybe; + traits?: Maybe>; + twitterName?: Maybe; +}; + + +export type NftCollectionMarketsArgs = { + currencies: Array; +}; + +export type NftCollectionConnection = { + __typename?: 'NftCollectionConnection'; + edges: Array; + pageInfo: PageInfo; +}; + +export type NftCollectionEdge = { + __typename?: 'NftCollectionEdge'; + cursor: Scalars['String']; + node: NftCollection; +}; + +export type NftCollectionMarket = { + __typename?: 'NftCollectionMarket'; + floorPrice?: Maybe; + floorPricePercentChange?: Maybe; + id: Scalars['ID']; + listings?: Maybe; + marketplaces?: Maybe>; + nftContracts?: Maybe>; + owners?: Maybe; + sales?: Maybe; + totalVolume?: Maybe; + volume?: Maybe; + volume24h?: Maybe; + volumePercentChange?: Maybe; +}; + + +export type NftCollectionMarketFloorPricePercentChangeArgs = { + duration?: InputMaybe; +}; + + +export type NftCollectionMarketMarketplacesArgs = { + marketplaces?: InputMaybe>; +}; + + +export type NftCollectionMarketSalesArgs = { + duration?: InputMaybe; +}; + + +export type NftCollectionMarketVolumeArgs = { + duration?: InputMaybe; +}; + + +export type NftCollectionMarketVolumePercentChangeArgs = { + duration?: InputMaybe; +}; + +export type NftCollectionMarketplace = { + __typename?: 'NftCollectionMarketplace'; + floorPrice?: Maybe; + id: Scalars['ID']; + listings?: Maybe; + marketplace?: Maybe; +}; + +export type NftCollectionTrait = { + __typename?: 'NftCollectionTrait'; + id: Scalars['ID']; + name?: Maybe; + stats?: Maybe>; + values?: Maybe>; +}; + +export type NftCollectionTraitStats = { + __typename?: 'NftCollectionTraitStats'; + assets?: Maybe; + id: Scalars['ID']; + listings?: Maybe; + name?: Maybe; + value?: Maybe; +}; + +export type NftCollectionsFilterInput = { + addresses?: InputMaybe>; +}; + +export type NftContract = IContract & { + __typename?: 'NftContract'; + address: Scalars['String']; + chain: Chain; + id: Scalars['ID']; + name?: Maybe; + standard?: Maybe; + symbol?: Maybe; + totalSupply?: Maybe; +}; + +export type NftFee = { + __typename?: 'NftFee'; + basisPoints: Scalars['Int']; + id: Scalars['ID']; + payoutAddress: Scalars['String']; +}; + +export enum NftMarketSortableField { + FloorPrice = 'FLOOR_PRICE', + Volume = 'VOLUME' +} + +export enum NftMarketplace { + Cryptopunks = 'CRYPTOPUNKS', + Foundation = 'FOUNDATION', + Looksrare = 'LOOKSRARE', + Nft20 = 'NFT20', + Nftx = 'NFTX', + Opensea = 'OPENSEA', + Sudoswap = 'SUDOSWAP', + X2Y2 = 'X2Y2' +} + +export type NftOrder = { + __typename?: 'NftOrder'; + address: Scalars['String']; + auctionType?: Maybe; + createdAt: Scalars['Float']; + endAt?: Maybe; + id: Scalars['ID']; + maker: Scalars['String']; + marketplace: NftMarketplace; + marketplaceUrl: Scalars['String']; + orderHash?: Maybe; + price: Amount; + protocolParameters?: Maybe; + quantity: Scalars['Int']; + startAt: Scalars['Float']; + status: OrderStatus; + taker?: Maybe; + tokenId?: Maybe; + type: OrderType; +}; + +export type NftOrderConnection = { + __typename?: 'NftOrderConnection'; + edges: Array; + pageInfo: PageInfo; +}; + +export type NftOrderEdge = { + __typename?: 'NftOrderEdge'; + cursor: Scalars['String']; + node: NftOrder; +}; + +export type NftProfile = { + __typename?: 'NftProfile'; + address: Scalars['String']; + id: Scalars['ID']; + isVerified?: Maybe; + profileImage?: Maybe; + username?: Maybe; +}; + +export enum NftRarityProvider { + RaritySniper = 'RARITY_SNIPER' +} + +export enum NftStandard { + Erc721 = 'ERC721', + Erc1155 = 'ERC1155', + Noncompliant = 'NONCOMPLIANT' +} + +export type NftTransfer = { + __typename?: 'NftTransfer'; + asset: NftAsset; + direction: TransactionDirection; + id: Scalars['ID']; + nftStandard: NftStandard; + recipient: Scalars['String']; + sender: Scalars['String']; +}; + +export enum OrderStatus { + Cancelled = 'CANCELLED', + Executed = 'EXECUTED', + Expired = 'EXPIRED', + Valid = 'VALID' +} + +export enum OrderType { + Listing = 'LISTING', + Offer = 'OFFER' +} + +export type PageInfo = { + __typename?: 'PageInfo'; + endCursor?: Maybe; + hasNextPage?: Maybe; + hasPreviousPage?: Maybe; + startCursor?: Maybe; +}; + +export type Portfolio = { + __typename?: 'Portfolio'; + assetActivities?: Maybe>>; + id: Scalars['ID']; + /** TODO: (michael.zhang) replace with paginated query */ + nftBalances?: Maybe>>; + ownerAddress: Scalars['String']; + tokenBalances?: Maybe>>; + tokensTotalDenominatedValue?: Maybe; + tokensTotalDenominatedValueChange?: Maybe; + tokensTotalDenominatedValueHistory?: Maybe>>; +}; + + +export type PortfolioAssetActivitiesArgs = { + page?: InputMaybe; + pageSize?: InputMaybe; +}; + + +export type PortfolioTokensTotalDenominatedValueChangeArgs = { + duration?: InputMaybe; +}; + + +export type PortfolioTokensTotalDenominatedValueHistoryArgs = { + duration?: InputMaybe; +}; + +export type Query = { + __typename?: 'Query'; + assetActivities?: Maybe>>; + nftAssets?: Maybe; + nftBalances?: Maybe; + nftCollections?: Maybe; + nftCollectionsById?: Maybe>>; + portfolios?: Maybe>>; + searchTokenProjects?: Maybe>>; + searchTokens?: Maybe>>; + token?: Maybe; + tokenProjects?: Maybe>>; + tokens?: Maybe>>; + topTokens?: Maybe>>; +}; + + +export type QueryAssetActivitiesArgs = { + address: Scalars['String']; + page?: InputMaybe; + pageSize?: InputMaybe; +}; + + +export type QueryNftAssetsArgs = { + address: Scalars['String']; + after?: InputMaybe; + asc?: InputMaybe; + before?: InputMaybe; + chain?: InputMaybe; + filter?: InputMaybe; + first?: InputMaybe; + last?: InputMaybe; + orderBy?: InputMaybe; +}; + + +export type QueryNftBalancesArgs = { + after?: InputMaybe; + before?: InputMaybe; + chain?: InputMaybe; + filter?: InputMaybe; + first?: InputMaybe; + last?: InputMaybe; + ownerAddress: Scalars['String']; +}; + + +export type QueryNftCollectionsArgs = { + after?: InputMaybe; + before?: InputMaybe; + filter?: InputMaybe; + first?: InputMaybe; + last?: InputMaybe; +}; + + +export type QueryNftCollectionsByIdArgs = { + collectionIds?: InputMaybe>>; +}; + + +export type QueryPortfoliosArgs = { + ownerAddresses: Array; + useAltDataSource?: InputMaybe; +}; + + +export type QuerySearchTokenProjectsArgs = { + searchQuery: Scalars['String']; +}; + + +export type QuerySearchTokensArgs = { + searchQuery: Scalars['String']; +}; + + +export type QueryTokenArgs = { + address?: InputMaybe; + chain: Chain; +}; + + +export type QueryTokenProjectsArgs = { + contracts: Array; +}; + + +export type QueryTokensArgs = { + contracts: Array; +}; + + +export type QueryTopTokensArgs = { + chain?: InputMaybe; + orderBy?: InputMaybe; + page?: InputMaybe; + pageSize?: InputMaybe; +}; + +export enum SafetyLevel { + Blocked = 'BLOCKED', + MediumWarning = 'MEDIUM_WARNING', + StrongWarning = 'STRONG_WARNING', + Verified = 'VERIFIED' +} + +export type TimestampedAmount = IAmount & { + __typename?: 'TimestampedAmount'; + currency?: Maybe; + id: Scalars['ID']; + timestamp: Scalars['Int']; + value: Scalars['Float']; +}; + +export type Token = IContract & { + __typename?: 'Token'; + address?: Maybe; + chain: Chain; + decimals?: Maybe; + id: Scalars['ID']; + market?: Maybe; + name?: Maybe; + project?: Maybe; + standard?: Maybe; + symbol?: Maybe; +}; + + +export type TokenMarketArgs = { + currency?: InputMaybe; +}; + +export type TokenApproval = { + __typename?: 'TokenApproval'; + approvedAddress: Scalars['String']; + /** can be erc20 or erc1155 */ + asset: Token; + id: Scalars['ID']; + quantity: Scalars['String']; + tokenStandard: TokenStandard; +}; + +export type TokenBalance = { + __typename?: 'TokenBalance'; + blockNumber?: Maybe; + blockTimestamp?: Maybe; + denominatedValue?: Maybe; + id: Scalars['ID']; + ownerAddress: Scalars['String']; + quantity?: Maybe; + token?: Maybe; + tokenProjectMarket?: Maybe; +}; + +export type TokenMarket = { + __typename?: 'TokenMarket'; + id: Scalars['ID']; + price?: Maybe; + priceHighLow?: Maybe; + priceHistory?: Maybe>>; + pricePercentChange?: Maybe; + token: Token; + totalValueLocked?: Maybe; + volume?: Maybe; +}; + + +export type TokenMarketPriceHighLowArgs = { + duration: HistoryDuration; + highLow: HighLow; +}; + + +export type TokenMarketPriceHistoryArgs = { + duration: HistoryDuration; +}; + + +export type TokenMarketPricePercentChangeArgs = { + duration: HistoryDuration; +}; + + +export type TokenMarketVolumeArgs = { + duration: HistoryDuration; +}; + +export type TokenProject = { + __typename?: 'TokenProject'; + description?: Maybe; + homepageUrl?: Maybe; + id: Scalars['ID']; + isSpam?: Maybe; + logo?: Maybe; + logoUrl?: Maybe; + markets?: Maybe>>; + name?: Maybe; + safetyLevel?: Maybe; + smallLogo?: Maybe; + spamCode?: Maybe; + tokens: Array; + twitterName?: Maybe; +}; + + +export type TokenProjectMarketsArgs = { + currencies: Array; +}; + +export type TokenProjectMarket = { + __typename?: 'TokenProjectMarket'; + currency: Currency; + fullyDilutedMarketCap?: Maybe; + id: Scalars['ID']; + marketCap?: Maybe; + price?: Maybe; + priceHighLow?: Maybe; + priceHistory?: Maybe>>; + pricePercentChange?: Maybe; + pricePercentChange24h?: Maybe; + tokenProject: TokenProject; + volume?: Maybe; + volume24h?: Maybe; +}; + + +export type TokenProjectMarketPriceHighLowArgs = { + duration: HistoryDuration; + highLow: HighLow; +}; + + +export type TokenProjectMarketPriceHistoryArgs = { + duration: HistoryDuration; +}; + + +export type TokenProjectMarketPricePercentChangeArgs = { + duration: HistoryDuration; +}; + + +export type TokenProjectMarketVolumeArgs = { + duration: HistoryDuration; +}; + +export enum TokenSortableField { + MarketCap = 'MARKET_CAP', + Popularity = 'POPULARITY', + TotalValueLocked = 'TOTAL_VALUE_LOCKED', + Volume = 'VOLUME' +} + +export enum TokenStandard { + Erc20 = 'ERC20', + Erc1155 = 'ERC1155', + Native = 'NATIVE' +} + +export type TokenTransfer = { + __typename?: 'TokenTransfer'; + asset: Token; + direction: TransactionDirection; + id: Scalars['ID']; + quantity: Scalars['String']; + recipient: Scalars['String']; + sender: Scalars['String']; + tokenStandard: TokenStandard; + transactedValue?: Maybe; +}; + +export type Transaction = { + __typename?: 'Transaction'; + blockNumber: Scalars['Int']; + from: Scalars['String']; + gasLimit?: Maybe; + hash: Scalars['String']; + id: Scalars['ID']; + maxFeePerGas?: Maybe; + nonce: Scalars['Int']; + status: TransactionStatus; + to: Scalars['String']; +}; + +export enum TransactionDirection { + In = 'IN', + Out = 'OUT', + Self = 'SELF' +} + +export enum TransactionStatus { + Confirmed = 'CONFIRMED', + Failed = 'FAILED', + Pending = 'PENDING' +} + +export type TokenQueryVariables = Exact<{ + contract: ContractInput; +}>; + + +export type TokenQuery = { __typename?: 'Query', tokens?: Array<{ __typename?: 'Token', id: string, decimals?: number, name?: string, chain: Chain, address?: string, symbol?: string, market?: { __typename?: 'TokenMarket', totalValueLocked?: { __typename?: 'Amount', value: number, currency?: Currency }, price?: { __typename?: 'Amount', value: number, currency?: Currency }, volume24H?: { __typename?: 'Amount', value: number, currency?: Currency }, priceHigh52W?: { __typename?: 'Amount', value: number }, priceLow52W?: { __typename?: 'Amount', value: number } }, project?: { __typename?: 'TokenProject', description?: string, homepageUrl?: string, twitterName?: string, logoUrl?: string, tokens: Array<{ __typename?: 'Token', chain: Chain, address?: string }> } }> }; + +export type TokenPriceQueryVariables = Exact<{ + contract: ContractInput; + duration: HistoryDuration; +}>; + + +export type TokenPriceQuery = { __typename?: 'Query', tokens?: Array<{ __typename?: 'Token', market?: { __typename?: 'TokenMarket', price?: { __typename?: 'Amount', value: number }, priceHistory?: Array<{ __typename?: 'TimestampedAmount', timestamp: number, value: number }> } }> }; + +export type TopTokens100QueryVariables = Exact<{ + duration: HistoryDuration; + chain: Chain; +}>; + + +export type TopTokens100Query = { __typename?: 'Query', topTokens?: Array<{ __typename?: 'Token', id: string, name?: string, chain: Chain, address?: string, symbol?: string, market?: { __typename?: 'TokenMarket', totalValueLocked?: { __typename?: 'Amount', value: number, currency?: Currency }, price?: { __typename?: 'Amount', value: number, currency?: Currency }, pricePercentChange?: { __typename?: 'Amount', currency?: Currency, value: number }, volume?: { __typename?: 'Amount', value: number, currency?: Currency } }, project?: { __typename?: 'TokenProject', logoUrl?: string } }> }; + +export type TopTokensSparklineQueryVariables = Exact<{ + duration: HistoryDuration; + chain: Chain; +}>; + + +export type TopTokensSparklineQuery = { __typename?: 'Query', topTokens?: Array<{ __typename?: 'Token', address?: string, market?: { __typename?: 'TokenMarket', priceHistory?: Array<{ __typename?: 'TimestampedAmount', timestamp: number, value: number }> } }> }; + +export type AssetQueryVariables = Exact<{ + address: Scalars['String']; + orderBy?: InputMaybe; + asc?: InputMaybe; + filter?: InputMaybe; + first?: InputMaybe; + after?: InputMaybe; + last?: InputMaybe; + before?: InputMaybe; +}>; + + +export type AssetQuery = { __typename?: 'Query', nftAssets?: { __typename?: 'NftAssetConnection', totalCount?: number, edges: Array<{ __typename?: 'NftAssetEdge', cursor: string, node: { __typename?: 'NftAsset', id: string, name?: string, ownerAddress?: string, tokenId: string, description?: string, animationUrl?: string, suspiciousFlag?: boolean, metadataUrl?: string, image?: { __typename?: 'Image', url: string }, smallImage?: { __typename?: 'Image', url: string }, originalImage?: { __typename?: 'Image', url: string }, collection?: { __typename?: 'NftCollection', name?: string, isVerified?: boolean, image?: { __typename?: 'Image', url: string }, creator?: { __typename?: 'NftProfile', address: string, isVerified?: boolean, profileImage?: { __typename?: 'Image', url: string } }, nftContracts?: Array<{ __typename?: 'NftContract', address: string, standard?: NftStandard }> }, listings?: { __typename?: 'NftOrderConnection', edges: Array<{ __typename?: 'NftOrderEdge', cursor: string, node: { __typename?: 'NftOrder', address: string, createdAt: number, endAt?: number, id: string, maker: string, marketplace: NftMarketplace, marketplaceUrl: string, orderHash?: string, quantity: number, startAt: number, status: OrderStatus, taker?: string, tokenId?: string, type: OrderType, protocolParameters?: any, price: { __typename?: 'Amount', currency?: Currency, value: number } } }> }, rarities?: Array<{ __typename?: 'NftAssetRarity', provider?: NftRarityProvider, rank?: number, score?: number }> } }>, pageInfo: { __typename?: 'PageInfo', endCursor?: string, hasNextPage?: boolean, hasPreviousPage?: boolean, startCursor?: string } } }; + +export type CollectionQueryVariables = Exact<{ + addresses: Array | Scalars['String']; +}>; + + +export type CollectionQuery = { __typename?: 'Query', nftCollections?: { __typename?: 'NftCollectionConnection', edges: Array<{ __typename?: 'NftCollectionEdge', cursor: string, node: { __typename?: 'NftCollection', collectionId: string, description?: string, discordUrl?: string, homepageUrl?: string, instagramName?: string, isVerified?: boolean, name?: string, numAssets?: number, twitterName?: string, bannerImage?: { __typename?: 'Image', url: string }, image?: { __typename?: 'Image', url: string }, nftContracts?: Array<{ __typename?: 'NftContract', address: string, chain: Chain, name?: string, standard?: NftStandard, symbol?: string, totalSupply?: number }>, traits?: Array<{ __typename?: 'NftCollectionTrait', name?: string, values?: Array, stats?: Array<{ __typename?: 'NftCollectionTraitStats', name?: string, value?: string, assets?: number, listings?: number }> }>, markets?: Array<{ __typename?: 'NftCollectionMarket', owners?: number, floorPrice?: { __typename?: 'TimestampedAmount', currency?: Currency, value: number }, totalVolume?: { __typename?: 'TimestampedAmount', value: number, currency?: Currency }, listings?: { __typename?: 'TimestampedAmount', value: number }, volume?: { __typename?: 'TimestampedAmount', value: number, currency?: Currency }, volumePercentChange?: { __typename?: 'TimestampedAmount', value: number, currency?: Currency }, floorPricePercentChange?: { __typename?: 'TimestampedAmount', value: number, currency?: Currency }, marketplaces?: Array<{ __typename?: 'NftCollectionMarketplace', marketplace?: NftMarketplace, listings?: number, floorPrice?: number }> }> } }>, pageInfo: { __typename?: 'PageInfo', endCursor?: string, hasNextPage?: boolean, hasPreviousPage?: boolean, startCursor?: string } } }; + +export type DetailsQueryVariables = Exact<{ + address: Scalars['String']; + tokenId: Scalars['String']; +}>; + + +export type DetailsQuery = { __typename?: 'Query', nftAssets?: { __typename?: 'NftAssetConnection', edges: Array<{ __typename?: 'NftAssetEdge', node: { __typename?: 'NftAsset', id: string, name?: string, ownerAddress?: string, tokenId: string, description?: string, animationUrl?: string, suspiciousFlag?: boolean, metadataUrl?: string, image?: { __typename?: 'Image', url: string }, smallImage?: { __typename?: 'Image', url: string }, originalImage?: { __typename?: 'Image', url: string }, creator?: { __typename?: 'NftProfile', address: string, isVerified?: boolean, profileImage?: { __typename?: 'Image', url: string } }, collection?: { __typename?: 'NftCollection', name?: string, isVerified?: boolean, numAssets?: number, twitterName?: string, discordUrl?: string, homepageUrl?: string, description?: string, image?: { __typename?: 'Image', url: string }, nftContracts?: Array<{ __typename?: 'NftContract', address: string, standard?: NftStandard }> }, listings?: { __typename?: 'NftOrderConnection', edges: Array<{ __typename?: 'NftOrderEdge', cursor: string, node: { __typename?: 'NftOrder', address: string, createdAt: number, endAt?: number, id: string, maker: string, marketplace: NftMarketplace, marketplaceUrl: string, orderHash?: string, quantity: number, startAt: number, status: OrderStatus, taker?: string, tokenId?: string, type: OrderType, protocolParameters?: any, price: { __typename?: 'Amount', currency?: Currency, value: number } } }> }, rarities?: Array<{ __typename?: 'NftAssetRarity', provider?: NftRarityProvider, rank?: number, score?: number }>, traits?: Array<{ __typename?: 'NftAssetTrait', name?: string, value?: string }> } }> } }; + +export type NftBalanceQueryVariables = Exact<{ + ownerAddress: Scalars['String']; + filter?: InputMaybe; + first?: InputMaybe; + after?: InputMaybe; + last?: InputMaybe; + before?: InputMaybe; +}>; + + +export type NftBalanceQuery = { __typename?: 'Query', nftBalances?: { __typename?: 'NftBalanceConnection', edges: Array<{ __typename?: 'NftBalanceEdge', node: { __typename?: 'NftBalance', listedMarketplaces?: Array, ownedAsset?: { __typename?: 'NftAsset', id: string, animationUrl?: string, description?: string, flaggedBy?: string, name?: string, ownerAddress?: string, suspiciousFlag?: boolean, tokenId: string, collection?: { __typename?: 'NftCollection', isVerified?: boolean, name?: string, image?: { __typename?: 'Image', url: string }, nftContracts?: Array<{ __typename?: 'NftContract', address: string, chain: Chain, name?: string, standard?: NftStandard, symbol?: string, totalSupply?: number }>, markets?: Array<{ __typename?: 'NftCollectionMarket', floorPrice?: { __typename?: 'TimestampedAmount', value: number } }> }, image?: { __typename?: 'Image', url: string }, originalImage?: { __typename?: 'Image', url: string }, smallImage?: { __typename?: 'Image', url: string }, thumbnail?: { __typename?: 'Image', url: string }, listings?: { __typename?: 'NftOrderConnection', edges: Array<{ __typename?: 'NftOrderEdge', node: { __typename?: 'NftOrder', createdAt: number, marketplace: NftMarketplace, endAt?: number, price: { __typename?: 'Amount', value: number, currency?: Currency } } }> } }, listingFees?: Array<{ __typename?: 'NftFee', payoutAddress: string, basisPoints: number }>, lastPrice?: { __typename?: 'TimestampedAmount', currency?: Currency, timestamp: number, value: number } } }>, pageInfo: { __typename?: 'PageInfo', endCursor?: string, hasNextPage?: boolean, hasPreviousPage?: boolean, startCursor?: string } } }; + + +export const TokenDocument = gql` + query Token($contract: ContractInput!) { + tokens(contracts: [$contract]) { + id + decimals + name + chain + address + symbol + market(currency: USD) { + totalValueLocked { + value + currency + } + price { + value + currency + } + volume24H: volume(duration: DAY) { + value + currency + } + priceHigh52W: priceHighLow(duration: YEAR, highLow: HIGH) { + value + } + priceLow52W: priceHighLow(duration: YEAR, highLow: LOW) { + value + } + } + project { + description + homepageUrl + twitterName + logoUrl + tokens { + chain + address + } + } + } +} + `; + +/** + * __useTokenQuery__ + * + * To run a query within a React component, call `useTokenQuery` and pass it any options that fit your needs. + * When your component renders, `useTokenQuery` returns an object from Apollo Client that contains loading, error, and data properties + * you can use to render your UI. + * + * @param baseOptions options that will be passed into the query, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options; + * + * @example + * const { data, loading, error } = useTokenQuery({ + * variables: { + * contract: // value for 'contract' + * }, + * }); + */ +export function useTokenQuery(baseOptions: Apollo.QueryHookOptions) { + const options = {...defaultOptions, ...baseOptions} + return Apollo.useQuery(TokenDocument, options); + } +export function useTokenLazyQuery(baseOptions?: Apollo.LazyQueryHookOptions) { + const options = {...defaultOptions, ...baseOptions} + return Apollo.useLazyQuery(TokenDocument, options); + } +export type TokenQueryHookResult = ReturnType; +export type TokenLazyQueryHookResult = ReturnType; +export type TokenQueryResult = Apollo.QueryResult; +export const TokenPriceDocument = gql` + query TokenPrice($contract: ContractInput!, $duration: HistoryDuration!) { + tokens(contracts: [$contract]) { + market(currency: USD) { + price { + value + } + priceHistory(duration: $duration) { + timestamp + value + } + } + } +} + `; + +/** + * __useTokenPriceQuery__ + * + * To run a query within a React component, call `useTokenPriceQuery` and pass it any options that fit your needs. + * When your component renders, `useTokenPriceQuery` returns an object from Apollo Client that contains loading, error, and data properties + * you can use to render your UI. + * + * @param baseOptions options that will be passed into the query, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options; + * + * @example + * const { data, loading, error } = useTokenPriceQuery({ + * variables: { + * contract: // value for 'contract' + * duration: // value for 'duration' + * }, + * }); + */ +export function useTokenPriceQuery(baseOptions: Apollo.QueryHookOptions) { + const options = {...defaultOptions, ...baseOptions} + return Apollo.useQuery(TokenPriceDocument, options); + } +export function useTokenPriceLazyQuery(baseOptions?: Apollo.LazyQueryHookOptions) { + const options = {...defaultOptions, ...baseOptions} + return Apollo.useLazyQuery(TokenPriceDocument, options); + } +export type TokenPriceQueryHookResult = ReturnType; +export type TokenPriceLazyQueryHookResult = ReturnType; +export type TokenPriceQueryResult = Apollo.QueryResult; +export const TopTokens100Document = gql` + query TopTokens100($duration: HistoryDuration!, $chain: Chain!) { + topTokens(pageSize: 100, page: 1, chain: $chain) { + id + name + chain + address + symbol + market(currency: USD) { + totalValueLocked { + value + currency + } + price { + value + currency + } + pricePercentChange(duration: $duration) { + currency + value + } + volume(duration: $duration) { + value + currency + } + } + project { + logoUrl + } + } +} + `; + +/** + * __useTopTokens100Query__ + * + * To run a query within a React component, call `useTopTokens100Query` and pass it any options that fit your needs. + * When your component renders, `useTopTokens100Query` returns an object from Apollo Client that contains loading, error, and data properties + * you can use to render your UI. + * + * @param baseOptions options that will be passed into the query, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options; + * + * @example + * const { data, loading, error } = useTopTokens100Query({ + * variables: { + * duration: // value for 'duration' + * chain: // value for 'chain' + * }, + * }); + */ +export function useTopTokens100Query(baseOptions: Apollo.QueryHookOptions) { + const options = {...defaultOptions, ...baseOptions} + return Apollo.useQuery(TopTokens100Document, options); + } +export function useTopTokens100LazyQuery(baseOptions?: Apollo.LazyQueryHookOptions) { + const options = {...defaultOptions, ...baseOptions} + return Apollo.useLazyQuery(TopTokens100Document, options); + } +export type TopTokens100QueryHookResult = ReturnType; +export type TopTokens100LazyQueryHookResult = ReturnType; +export type TopTokens100QueryResult = Apollo.QueryResult; +export const TopTokensSparklineDocument = gql` + query TopTokensSparkline($duration: HistoryDuration!, $chain: Chain!) { + topTokens(pageSize: 100, page: 1, chain: $chain) { + address + market(currency: USD) { + priceHistory(duration: $duration) { + timestamp + value + } + } + } +} + `; + +/** + * __useTopTokensSparklineQuery__ + * + * To run a query within a React component, call `useTopTokensSparklineQuery` and pass it any options that fit your needs. + * When your component renders, `useTopTokensSparklineQuery` returns an object from Apollo Client that contains loading, error, and data properties + * you can use to render your UI. + * + * @param baseOptions options that will be passed into the query, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options; + * + * @example + * const { data, loading, error } = useTopTokensSparklineQuery({ + * variables: { + * duration: // value for 'duration' + * chain: // value for 'chain' + * }, + * }); + */ +export function useTopTokensSparklineQuery(baseOptions: Apollo.QueryHookOptions) { + const options = {...defaultOptions, ...baseOptions} + return Apollo.useQuery(TopTokensSparklineDocument, options); + } +export function useTopTokensSparklineLazyQuery(baseOptions?: Apollo.LazyQueryHookOptions) { + const options = {...defaultOptions, ...baseOptions} + return Apollo.useLazyQuery(TopTokensSparklineDocument, options); + } +export type TopTokensSparklineQueryHookResult = ReturnType; +export type TopTokensSparklineLazyQueryHookResult = ReturnType; +export type TopTokensSparklineQueryResult = Apollo.QueryResult; +export const AssetDocument = gql` + query Asset($address: String!, $orderBy: NftAssetSortableField, $asc: Boolean, $filter: NftAssetsFilterInput, $first: Int, $after: String, $last: Int, $before: String) { + nftAssets( + address: $address + orderBy: $orderBy + asc: $asc + filter: $filter + first: $first + after: $after + last: $last + before: $before + ) { + edges { + node { + id + name + ownerAddress + image { + url + } + smallImage { + url + } + originalImage { + url + } + tokenId + description + animationUrl + suspiciousFlag + collection { + name + isVerified + image { + url + } + creator { + address + profileImage { + url + } + isVerified + } + nftContracts { + address + standard + } + } + listings(first: 1) { + edges { + node { + address + createdAt + endAt + id + maker + marketplace + marketplaceUrl + orderHash + price { + currency + value + } + quantity + startAt + status + taker + tokenId + type + protocolParameters + } + cursor + } + } + rarities { + provider + rank + score + } + metadataUrl + } + cursor + } + totalCount + pageInfo { + endCursor + hasNextPage + hasPreviousPage + startCursor + } + } +} + `; + +/** + * __useAssetQuery__ + * + * To run a query within a React component, call `useAssetQuery` and pass it any options that fit your needs. + * When your component renders, `useAssetQuery` returns an object from Apollo Client that contains loading, error, and data properties + * you can use to render your UI. + * + * @param baseOptions options that will be passed into the query, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options; + * + * @example + * const { data, loading, error } = useAssetQuery({ + * variables: { + * address: // value for 'address' + * orderBy: // value for 'orderBy' + * asc: // value for 'asc' + * filter: // value for 'filter' + * first: // value for 'first' + * after: // value for 'after' + * last: // value for 'last' + * before: // value for 'before' + * }, + * }); + */ +export function useAssetQuery(baseOptions: Apollo.QueryHookOptions) { + const options = {...defaultOptions, ...baseOptions} + return Apollo.useQuery(AssetDocument, options); + } +export function useAssetLazyQuery(baseOptions?: Apollo.LazyQueryHookOptions) { + const options = {...defaultOptions, ...baseOptions} + return Apollo.useLazyQuery(AssetDocument, options); + } +export type AssetQueryHookResult = ReturnType; +export type AssetLazyQueryHookResult = ReturnType; +export type AssetQueryResult = Apollo.QueryResult; +export const CollectionDocument = gql` + query Collection($addresses: [String!]!) { + nftCollections(filter: {addresses: $addresses}) { + edges { + cursor + node { + bannerImage { + url + } + collectionId + description + discordUrl + homepageUrl + image { + url + } + instagramName + isVerified + name + numAssets + twitterName + nftContracts { + address + chain + name + standard + symbol + totalSupply + } + traits { + name + values + stats { + name + value + assets + listings + } + } + markets(currencies: ETH) { + floorPrice { + currency + value + } + owners + totalVolume { + value + currency + } + listings { + value + } + volume(duration: DAY) { + value + currency + } + volumePercentChange(duration: DAY) { + value + currency + } + floorPricePercentChange(duration: DAY) { + value + currency + } + marketplaces { + marketplace + listings + floorPrice + } + } + } + } + pageInfo { + endCursor + hasNextPage + hasPreviousPage + startCursor + } + } +} + `; + +/** + * __useCollectionQuery__ + * + * To run a query within a React component, call `useCollectionQuery` and pass it any options that fit your needs. + * When your component renders, `useCollectionQuery` returns an object from Apollo Client that contains loading, error, and data properties + * you can use to render your UI. + * + * @param baseOptions options that will be passed into the query, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options; + * + * @example + * const { data, loading, error } = useCollectionQuery({ + * variables: { + * addresses: // value for 'addresses' + * }, + * }); + */ +export function useCollectionQuery(baseOptions: Apollo.QueryHookOptions) { + const options = {...defaultOptions, ...baseOptions} + return Apollo.useQuery(CollectionDocument, options); + } +export function useCollectionLazyQuery(baseOptions?: Apollo.LazyQueryHookOptions) { + const options = {...defaultOptions, ...baseOptions} + return Apollo.useLazyQuery(CollectionDocument, options); + } +export type CollectionQueryHookResult = ReturnType; +export type CollectionLazyQueryHookResult = ReturnType; +export type CollectionQueryResult = Apollo.QueryResult; +export const DetailsDocument = gql` + query Details($address: String!, $tokenId: String!) { + nftAssets(address: $address, filter: {listed: false, tokenIds: [$tokenId]}) { + edges { + node { + id + name + ownerAddress + image { + url + } + smallImage { + url + } + originalImage { + url + } + tokenId + description + animationUrl + suspiciousFlag + creator { + address + profileImage { + url + } + isVerified + } + collection { + name + isVerified + numAssets + twitterName + discordUrl + homepageUrl + image { + url + } + nftContracts { + address + standard + } + description + } + listings(first: 1) { + edges { + node { + address + createdAt + endAt + id + maker + marketplace + marketplaceUrl + orderHash + price { + currency + value + } + quantity + startAt + status + taker + tokenId + type + protocolParameters + } + cursor + } + } + rarities { + provider + rank + score + } + metadataUrl + traits { + name + value + } + } + } + } +} + `; + +/** + * __useDetailsQuery__ + * + * To run a query within a React component, call `useDetailsQuery` and pass it any options that fit your needs. + * When your component renders, `useDetailsQuery` returns an object from Apollo Client that contains loading, error, and data properties + * you can use to render your UI. + * + * @param baseOptions options that will be passed into the query, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options; + * + * @example + * const { data, loading, error } = useDetailsQuery({ + * variables: { + * address: // value for 'address' + * tokenId: // value for 'tokenId' + * }, + * }); + */ +export function useDetailsQuery(baseOptions: Apollo.QueryHookOptions) { + const options = {...defaultOptions, ...baseOptions} + return Apollo.useQuery(DetailsDocument, options); + } +export function useDetailsLazyQuery(baseOptions?: Apollo.LazyQueryHookOptions) { + const options = {...defaultOptions, ...baseOptions} + return Apollo.useLazyQuery(DetailsDocument, options); + } +export type DetailsQueryHookResult = ReturnType; +export type DetailsLazyQueryHookResult = ReturnType; +export type DetailsQueryResult = Apollo.QueryResult; +export const NftBalanceDocument = gql` + query NftBalance($ownerAddress: String!, $filter: NftBalancesFilterInput, $first: Int, $after: String, $last: Int, $before: String) { + nftBalances( + ownerAddress: $ownerAddress + filter: $filter + first: $first + after: $after + last: $last + before: $before + ) { + edges { + node { + ownedAsset { + id + animationUrl + collection { + isVerified + image { + url + } + name + nftContracts { + address + chain + name + standard + symbol + totalSupply + } + markets(currencies: ETH) { + floorPrice { + value + } + } + } + description + flaggedBy + image { + url + } + originalImage { + url + } + name + ownerAddress + smallImage { + url + } + suspiciousFlag + tokenId + thumbnail { + url + } + listings(first: 1) { + edges { + node { + price { + value + currency + } + createdAt + marketplace + endAt + } + } + } + } + listedMarketplaces + listingFees { + payoutAddress + basisPoints + } + lastPrice { + currency + timestamp + value + } + } + } + pageInfo { + endCursor + hasNextPage + hasPreviousPage + startCursor + } + } +} + `; + +/** + * __useNftBalanceQuery__ + * + * To run a query within a React component, call `useNftBalanceQuery` and pass it any options that fit your needs. + * When your component renders, `useNftBalanceQuery` returns an object from Apollo Client that contains loading, error, and data properties + * you can use to render your UI. + * + * @param baseOptions options that will be passed into the query, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options; + * + * @example + * const { data, loading, error } = useNftBalanceQuery({ + * variables: { + * ownerAddress: // value for 'ownerAddress' + * filter: // value for 'filter' + * first: // value for 'first' + * after: // value for 'after' + * last: // value for 'last' + * before: // value for 'before' + * }, + * }); + */ +export function useNftBalanceQuery(baseOptions: Apollo.QueryHookOptions) { + const options = {...defaultOptions, ...baseOptions} + return Apollo.useQuery(NftBalanceDocument, options); + } +export function useNftBalanceLazyQuery(baseOptions?: Apollo.LazyQueryHookOptions) { + const options = {...defaultOptions, ...baseOptions} + return Apollo.useLazyQuery(NftBalanceDocument, options); + } +export type NftBalanceQueryHookResult = ReturnType; +export type NftBalanceLazyQueryHookResult = ReturnType; +export type NftBalanceQueryResult = Apollo.QueryResult; \ No newline at end of file diff --git a/src/graphql/data/apollo.ts b/src/graphql/data/apollo.ts new file mode 100644 index 0000000000..fa3e3a3756 --- /dev/null +++ b/src/graphql/data/apollo.ts @@ -0,0 +1,30 @@ +import { ApolloClient, InMemoryCache } from '@apollo/client' +import { relayStylePagination } from '@apollo/client/utilities' + +const GRAPHQL_URL = process.env.REACT_APP_AWS_API_ENDPOINT +if (!GRAPHQL_URL) { + throw new Error('AWS URL MISSING FROM ENVIRONMENT') +} + +export const apolloClient = new ApolloClient({ + uri: GRAPHQL_URL, + headers: { + 'Content-Type': 'application/json', + Origin: 'https://app.uniswap.org', + }, + cache: new InMemoryCache({ + typePolicies: { + Query: { + fields: { + nftBalances: relayStylePagination(), + nftAssets: relayStylePagination(), + }, + }, + }, + }), + defaultOptions: { + watchQuery: { + fetchPolicy: 'cache-and-network', + }, + }, +}) diff --git a/src/graphql/data/nft/Asset.ts b/src/graphql/data/nft/Asset.ts index 4b4a884ec6..f88588fc79 100644 --- a/src/graphql/data/nft/Asset.ts +++ b/src/graphql/data/nft/Asset.ts @@ -1,25 +1,30 @@ -import graphql from 'babel-plugin-relay/macro' import { parseEther } from 'ethers/lib/utils' -import useInterval from 'lib/hooks/useInterval' -import ms from 'ms.macro' -import { GenieAsset, Trait } from 'nft/types' +import gql from 'graphql-tag' +import { GenieAsset, Markets, Trait } from 'nft/types' import { wrapScientificNotation } from 'nft/utils' -import { useCallback, useEffect, useMemo, useState } from 'react' -import { fetchQuery, useLazyLoadQuery, usePaginationFragment, useQueryLoader, useRelayEnvironment } from 'react-relay' +import { useCallback, useMemo } from 'react' -import { AssetPaginationQuery } from './__generated__/AssetPaginationQuery.graphql' import { - AssetQuery, - AssetQuery$variables, + AssetQueryVariables, + NftAssetEdge, NftAssetsFilterInput, NftAssetSortableField, NftAssetTraitInput, NftMarketplace, -} from './__generated__/AssetQuery.graphql' -import { AssetQuery_nftAssets$data } from './__generated__/AssetQuery_nftAssets.graphql' + useAssetQuery, +} from '../__generated__/types-and-hooks' -const assetPaginationQuery = graphql` - fragment AssetQuery_nftAssets on Query @refetchable(queryName: "AssetPaginationQuery") { +gql` + query Asset( + $address: String! + $orderBy: NftAssetSortableField + $asc: Boolean + $filter: NftAssetsFilterInput + $first: Int + $after: String + $last: Int + $before: String + ) { nftAssets( address: $address orderBy: $orderBy @@ -29,7 +34,7 @@ const assetPaginationQuery = graphql` after: $after last: $last before: $before - ) @connection(key: "AssetQuery_nftAssets") { + ) { edges { node { id @@ -99,52 +104,38 @@ const assetPaginationQuery = graphql` } metadataUrl } + cursor } totalCount + pageInfo { + endCursor + hasNextPage + hasPreviousPage + startCursor + } } } ` -const assetQuery = graphql` - query AssetQuery( - $address: String! - $orderBy: NftAssetSortableField - $asc: Boolean - $filter: NftAssetsFilterInput - $first: Int - $after: String - $last: Int - $before: String - ) { - ...AssetQuery_nftAssets - } -` - -type NftAssetsQueryAsset = NonNullable< - NonNullable['edges']>[number] -> - -function formatAssetQueryData(queryAsset: NftAssetsQueryAsset, totalCount?: number) { +function formatAssetQueryData(queryAsset: NftAssetEdge, totalCount?: number) { const asset = queryAsset.node const ethPrice = parseEther(wrapScientificNotation(asset.listings?.edges[0]?.node.price.value ?? 0)).toString() return { id: asset.id, - address: asset?.collection?.nftContracts?.[0]?.address, + address: asset?.collection?.nftContracts?.[0]?.address ?? '', notForSale: asset.listings?.edges?.length === 0, collectionName: asset.collection?.name, collectionSymbol: asset.collection?.image?.url, imageUrl: asset.image?.url, animationUrl: asset.animationUrl, - marketplace: asset.listings?.edges[0]?.node?.marketplace?.toLowerCase(), + marketplace: asset.listings?.edges[0]?.node?.marketplace?.toLowerCase() as unknown as Markets, name: asset.name, - priceInfo: asset.listings - ? { - ETHPrice: ethPrice, - baseAsset: 'ETH', - baseDecimals: '18', - basePrice: ethPrice, - } - : undefined, + priceInfo: { + ETHPrice: ethPrice, + baseAsset: 'ETH', + baseDecimals: '18', + basePrice: ethPrice, + }, susFlag: asset.suspiciousFlag, sellorders: asset.listings?.edges.map((listingNode) => { return { @@ -155,7 +146,7 @@ function formatAssetQueryData(queryAsset: NftAssetsQueryAsset, totalCount?: numb } }), smallImageUrl: asset.smallImage?.url, - tokenId: asset.tokenId, + tokenId: asset.tokenId ?? '', tokenType: asset.collection?.nftContracts?.[0]?.standard, totalCount, collectionIsVerified: asset.collection?.isVerified, @@ -168,7 +159,7 @@ function formatAssetQueryData(queryAsset: NftAssetsQueryAsset, totalCount?: numb } }), }, - owner: asset.ownerAddress, + ownerAddress: asset.ownerAddress, creator: { profile_img_url: asset.collection?.creator?.profileImage?.url, address: asset.collection?.creator?.address, @@ -190,57 +181,50 @@ export interface AssetFetcherParams { before?: string } -const defaultAssetFetcherParams: Omit = { - orderBy: 'PRICE', +const defaultAssetFetcherParams: Omit = { + orderBy: NftAssetSortableField.Price, asc: true, // tokenSearchQuery must be specified so that this exactly matches the initial query. filter: { listed: false, tokenSearchQuery: '' }, first: ASSET_PAGE_SIZE, } -export function useLoadAssetsQuery(address?: string) { - const [, loadQuery] = useQueryLoader(assetQuery) - useEffect(() => { - if (address) { - loadQuery({ ...defaultAssetFetcherParams, address }) - } - }, [address, loadQuery]) -} +export function useNftAssets(params: AssetFetcherParams) { + const variables = useMemo(() => ({ ...defaultAssetFetcherParams, ...params }), [params]) -export function useLazyLoadAssetsQuery(params: AssetFetcherParams) { - const vars = useMemo(() => ({ ...defaultAssetFetcherParams, ...params }), [params]) - const [fetchKey, setFetchKey] = useState(0) - // Use the store if it is available (eg from polling), or the network if it is not (eg from an incorrect preload). - const fetchPolicy = 'store-or-network' - const queryData = useLazyLoadQuery(assetQuery, vars, { fetchKey, fetchPolicy }) // this will suspend if not yet loaded - - const { data, hasNext, loadNext, isLoadingNext } = usePaginationFragment( - assetPaginationQuery, - queryData + const { data, loading, fetchMore } = useAssetQuery({ + variables, + }) + const hasNext = data?.nftAssets?.pageInfo?.hasNextPage + const loadMore = useCallback( + () => + fetchMore({ + variables: { + after: data?.nftAssets?.pageInfo?.endCursor, + }, + }), + [data, fetchMore] ) - // Poll for updates. - const POLLING_INTERVAL = ms`5s` - const environment = useRelayEnvironment() - const poll = useCallback(async () => { - if (data.nftAssets?.edges?.length > ASSET_PAGE_SIZE) return - // Initiate a network request. When it resolves, refresh the UI from store (to avoid re-triggering Suspense); - // see: https://relay.dev/docs/guided-tour/refetching/refreshing-queries/#if-you-need-to-avoid-suspense-1. - await fetchQuery(environment, assetQuery, { ...vars }).toPromise() - setFetchKey((fetchKey) => fetchKey + 1) - }, [data.nftAssets?.edges?.length, environment, vars]) - useInterval(poll, isLoadingNext ? null : POLLING_INTERVAL, /* leading= */ false) + // TODO: setup polling while handling pagination // It is especially important for this to be memoized to avoid re-rendering from polling if data is unchanged. - const assets: GenieAsset[] = useMemo( + const assets: GenieAsset[] | undefined = useMemo( () => - data.nftAssets?.edges?.map((queryAsset: NftAssetsQueryAsset) => { - return formatAssetQueryData(queryAsset, data.nftAssets?.totalCount) + data?.nftAssets?.edges?.map((queryAsset) => { + return formatAssetQueryData(queryAsset as NonNullable, data.nftAssets?.totalCount) }), - [data.nftAssets?.edges, data.nftAssets?.totalCount] + [data?.nftAssets?.edges, data?.nftAssets?.totalCount] ) - return { assets, hasNext, isLoadingNext, loadNext } + return useMemo(() => { + return { + data: assets, + hasNext, + loading, + loadMore, + } + }, [assets, hasNext, loadMore, loading]) } const DEFAULT_SWEEP_AMOUNT = 50 @@ -252,7 +236,7 @@ export interface SweepFetcherParams { traits?: Trait[] } -function useSweepFetcherVars({ contractAddress, markets, price, traits }: SweepFetcherParams): AssetQuery$variables { +function useSweepFetcherVars({ contractAddress, markets, price, traits }: SweepFetcherParams): AssetQueryVariables { const filter: NftAssetsFilterInput = useMemo( () => ({ listed: true, @@ -272,7 +256,7 @@ function useSweepFetcherVars({ contractAddress, markets, price, traits }: SweepF return useMemo( () => ({ address: contractAddress, - orderBy: 'PRICE', + orderBy: NftAssetSortableField.Price, asc: true, first: DEFAULT_SWEEP_AMOUNT, filter, @@ -281,28 +265,19 @@ function useSweepFetcherVars({ contractAddress, markets, price, traits }: SweepF ) } -export function useLoadSweepAssetsQuery(params: SweepFetcherParams, enabled = true) { - const [, loadQuery] = useQueryLoader(assetQuery) - const vars = useSweepFetcherVars(params) - useEffect(() => { - if (enabled) { - loadQuery(vars) - } - }, [loadQuery, enabled, vars]) -} - -// Lazy-loads an already loaded AssetsQuery. -// This will *not* trigger a query - that must be done from a parent component to ensure proper query coalescing and to -// prevent waterfalling. Use useLoadSweepAssetsQuery to trigger the query. -export function useLazyLoadSweepAssetsQuery(params: SweepFetcherParams): GenieAsset[] { - const vars = useSweepFetcherVars(params) - const queryData = useLazyLoadQuery(assetQuery, vars, { fetchPolicy: 'store-only' }) // this will suspend if not yet loaded - const { data } = usePaginationFragment(assetPaginationQuery, queryData) - return useMemo( +export function useSweepNftAssets(params: SweepFetcherParams) { + const variables = useSweepFetcherVars(params) + const { data, loading } = useAssetQuery({ + variables, + // This prevents overwriting the page's call to assets for cards shown + fetchPolicy: 'no-cache', + }) + const assets = useMemo( () => - data.nftAssets?.edges?.map((queryAsset: NftAssetsQueryAsset) => { - return formatAssetQueryData(queryAsset, data.nftAssets?.totalCount) + data?.nftAssets?.edges?.map((queryAsset) => { + return formatAssetQueryData(queryAsset as NonNullable, data.nftAssets?.totalCount) }), - [data.nftAssets?.edges, data.nftAssets?.totalCount] + [data?.nftAssets?.edges, data?.nftAssets?.totalCount] ) + return useMemo(() => ({ data: assets, loading }), [assets, loading]) } diff --git a/src/graphql/data/nft/Collection.ts b/src/graphql/data/nft/Collection.ts index 6d8852a583..09af79a3b1 100644 --- a/src/graphql/data/nft/Collection.ts +++ b/src/graphql/data/nft/Collection.ts @@ -1,12 +1,11 @@ -import graphql from 'babel-plugin-relay/macro' +import gql from 'graphql-tag' import { GenieCollection, Trait } from 'nft/types' -import { useEffect } from 'react' -import { useLazyLoadQuery, useQueryLoader } from 'react-relay' +import { useMemo } from 'react' -import { CollectionQuery } from './__generated__/CollectionQuery.graphql' +import { NftCollection, useCollectionQuery } from '../__generated__/types-and-hooks' -const collectionQuery = graphql` - query CollectionQuery($addresses: [String!]!) { +gql` + query Collection($addresses: [String!]!) { nftCollections(filter: { addresses: $addresses }) { edges { cursor @@ -87,28 +86,23 @@ const collectionQuery = graphql` } ` -export function useLoadCollectionQuery(address?: string | string[]): void { - const [, loadQuery] = useQueryLoader(collectionQuery) - useEffect(() => { - if (address) { - loadQuery({ addresses: Array.isArray(address) ? address : [address] }) - } - }, [address, loadQuery]) +interface useCollectionReturnProps { + data: GenieCollection + loading: boolean } -// Lazy-loads an already loaded CollectionQuery. -// This will *not* trigger a query - that must be done from a parent component to ensure proper query coalescing and to -// prevent waterfalling. Use useLoadCollectionQuery to trigger the query. -export function useCollectionQuery(address: string): GenieCollection { - const queryData = useLazyLoadQuery( // this will suspend if not yet loaded - collectionQuery, - { addresses: [address] }, - { fetchPolicy: 'store-or-network' } - ) +export function useCollection(address: string): useCollectionReturnProps { + const { data: queryData, loading } = useCollectionQuery({ + variables: { + addresses: address, + }, + }) - const queryCollection = queryData.nftCollections?.edges[0]?.node - const market = queryCollection?.markets && queryCollection?.markets[0] - const traits = {} as Record + const queryCollection = queryData?.nftCollections?.edges?.[0]?.node as NonNullable + const market = queryCollection?.markets?.[0] + const traits = useMemo(() => { + return {} as Record + }, []) if (queryCollection?.traits) { queryCollection?.traits.forEach((trait) => { if (trait.name && trait.stats) { @@ -122,42 +116,43 @@ export function useCollectionQuery(address: string): GenieCollection { } }) } - return { - address, - isVerified: queryCollection?.isVerified ?? undefined, - name: queryCollection?.name ?? undefined, - description: queryCollection?.description ?? undefined, - standard: queryCollection?.nftContracts ? queryCollection?.nftContracts[0]?.standard ?? undefined : undefined, - bannerImageUrl: queryCollection?.bannerImage?.url ?? undefined, - stats: queryCollection?.markets - ? { - num_owners: market?.owners ?? undefined, - floor_price: market?.floorPrice?.value ?? undefined, - one_day_volume: market?.volume?.value ?? undefined, - one_day_change: market?.volumePercentChange?.value ?? undefined, - one_day_floor_change: market?.floorPricePercentChange?.value ?? undefined, - banner_image_url: queryCollection?.bannerImage?.url ?? undefined, - total_supply: queryCollection?.numAssets ?? undefined, - total_listings: market?.listings?.value ?? undefined, - total_volume: market?.totalVolume?.value ?? undefined, - } - : {}, - traits, - marketplaceCount: queryCollection?.markets - ? market?.marketplaces?.map((market) => { + return useMemo(() => { + return { + data: { + address, + isVerified: queryCollection?.isVerified, + name: queryCollection?.name, + description: queryCollection?.description, + standard: queryCollection?.nftContracts?.[0]?.standard, + bannerImageUrl: queryCollection?.bannerImage?.url, + stats: { + num_owners: market?.owners, + floor_price: market?.floorPrice?.value, + one_day_volume: market?.volume?.value, + one_day_change: market?.volumePercentChange?.value, + one_day_floor_change: market?.floorPricePercentChange?.value, + banner_image_url: queryCollection?.bannerImage?.url, + total_supply: queryCollection?.numAssets, + total_listings: market?.listings?.value, + total_volume: market?.totalVolume?.value, + }, + traits, + marketplaceCount: market?.marketplaces?.map((market) => { return { marketplace: market.marketplace?.toLowerCase() ?? '', count: market.listings ?? 0, floorPrice: market.floorPrice ?? 0, } - }) - : undefined, - imageUrl: queryCollection?.image?.url ?? '', - twitterUrl: queryCollection?.twitterName ?? '', - instagram: queryCollection?.instagramName ?? undefined, - discordUrl: queryCollection?.discordUrl ?? undefined, - externalUrl: queryCollection?.homepageUrl ?? undefined, - rarityVerified: false, // TODO update when backend supports - // isFoundation: boolean, // TODO ask backend to add - } + }), + imageUrl: queryCollection?.image?.url ?? '', + twitterUrl: queryCollection?.twitterName, + instagram: queryCollection?.instagramName, + discordUrl: queryCollection?.discordUrl, + externalUrl: queryCollection?.homepageUrl, + rarityVerified: false, // TODO update when backend supports + // isFoundation: boolean, // TODO ask backend to add + }, + loading, + } + }, [address, loading, market, queryCollection, traits]) } diff --git a/src/graphql/data/nft/Details.ts b/src/graphql/data/nft/Details.ts index 703bddf947..f34e8c198b 100644 --- a/src/graphql/data/nft/Details.ts +++ b/src/graphql/data/nft/Details.ts @@ -1,13 +1,12 @@ import { parseEther } from '@ethersproject/units' -import graphql from 'babel-plugin-relay/macro' -import { CollectionInfoForAsset, GenieAsset, SellOrder, TokenType } from 'nft/types' -import { useEffect } from 'react' -import { useLazyLoadQuery, useQueryLoader } from 'react-relay' +import gql from 'graphql-tag' +import { CollectionInfoForAsset, GenieAsset, Markets, SellOrder } from 'nft/types' +import { useMemo } from 'react' -import { DetailsQuery } from './__generated__/DetailsQuery.graphql' +import { NftAsset, useDetailsQuery } from '../__generated__/types-and-hooks' -const detailsQuery = graphql` - query DetailsQuery($address: String!, $tokenId: String!) { +gql` + query Details($address: String!, $tokenId: String!) { nftAssets(address: $address, filter: { listed: false, tokenIds: [$tokenId] }) { edges { node { @@ -92,92 +91,87 @@ const detailsQuery = graphql` } ` -export function useLoadDetailsQuery(address?: string, tokenId?: string): void { - const [, loadQuery] = useQueryLoader(detailsQuery) - useEffect(() => { - if (address && tokenId) { - loadQuery({ address, tokenId }) - } - }, [address, tokenId, loadQuery]) -} - -export function useDetailsQuery(address: string, tokenId: string): [GenieAsset, CollectionInfoForAsset] | undefined { - const queryData = useLazyLoadQuery( - detailsQuery, - { +export function useNftAssetDetails( + address: string, + tokenId: string +): { data: [GenieAsset, CollectionInfoForAsset]; loading: boolean } { + const { data: queryData, loading } = useDetailsQuery({ + variables: { address, tokenId, }, - { fetchPolicy: 'store-or-network' } - ) + }) - const asset = queryData.nftAssets?.edges[0]?.node + const asset = queryData?.nftAssets?.edges[0]?.node as NonNullable | undefined const collection = asset?.collection const listing = asset?.listings?.edges[0]?.node const ethPrice = parseEther(listing?.price?.value?.toString() ?? '0').toString() - return [ - { - id: asset?.id, - address, - notForSale: asset?.listings === null, - collectionName: asset?.collection?.name ?? undefined, - collectionSymbol: asset?.collection?.image?.url ?? undefined, - imageUrl: asset?.image?.url ?? undefined, - animationUrl: asset?.animationUrl ?? undefined, - // todo: fix the back/frontend discrepency here and drop the any - marketplace: listing?.marketplace.toLowerCase() as any, - name: asset?.name ?? undefined, - priceInfo: { - ETHPrice: ethPrice, - baseAsset: 'ETH', - baseDecimals: '18', - basePrice: ethPrice, - }, - susFlag: asset?.suspiciousFlag ?? undefined, - sellorders: asset?.listings?.edges.map((listingNode) => { - return { - ...listingNode.node, - protocolParameters: listingNode.node.protocolParameters - ? JSON.parse(listingNode.node.protocolParameters.toString()) - : undefined, - } as SellOrder - }), - smallImageUrl: asset?.smallImage?.url ?? undefined, - tokenId, - tokenType: (asset?.collection?.nftContracts && asset?.collection.nftContracts[0]?.standard) as TokenType, - collectionIsVerified: asset?.collection?.isVerified ?? undefined, - rarity: { - primaryProvider: 'Rarity Sniper', // TODO update when backend adds more providers - providers: asset?.rarities - ? asset?.rarities?.map((rarity) => { + return useMemo( + () => ({ + data: [ + { + id: asset?.id, + address, + notForSale: asset?.listings === null, + collectionName: asset?.collection?.name, + collectionSymbol: asset?.collection?.image?.url, + imageUrl: asset?.image?.url, + animationUrl: asset?.animationUrl, + marketplace: listing?.marketplace.toLowerCase() as unknown as Markets, + name: asset?.name, + priceInfo: { + ETHPrice: ethPrice, + baseAsset: 'ETH', + baseDecimals: '18', + basePrice: ethPrice, + }, + susFlag: asset?.suspiciousFlag, + sellorders: asset?.listings?.edges.map((listingNode) => { + return { + ...listingNode.node, + protocolParameters: listingNode.node.protocolParameters + ? JSON.parse(listingNode.node.protocolParameters.toString()) + : undefined, + } as SellOrder + }), + smallImageUrl: asset?.smallImage?.url, + tokenId, + tokenType: asset?.collection?.nftContracts?.[0]?.standard, + collectionIsVerified: asset?.collection?.isVerified, + rarity: { + primaryProvider: 'Rarity Sniper', // TODO update when backend adds more providers + providers: asset?.rarities?.map((rarity) => { return { - rank: rarity.rank ?? undefined, - score: rarity.score ?? undefined, + rank: rarity.rank, + score: rarity.score, provider: 'Rarity Sniper', } - }) - : undefined, - }, - owner: { address: asset?.ownerAddress ?? '' }, - creator: { - profile_img_url: asset?.creator?.profileImage?.url ?? '', - address: asset?.creator?.address ?? '', - }, - metadataUrl: asset?.metadataUrl ?? '', - traits: asset?.traits?.map((trait) => { - return { trait_type: trait.name ?? '', trait_value: trait.value ?? '' } - }), - }, - { - collectionDescription: collection?.description ?? undefined, - collectionImageUrl: collection?.image?.url ?? undefined, - collectionName: collection?.name ?? undefined, - isVerified: collection?.isVerified ?? undefined, - totalSupply: collection?.numAssets ?? undefined, - twitterUrl: collection?.twitterName ?? undefined, - discordUrl: collection?.discordUrl ?? undefined, - externalUrl: collection?.homepageUrl ?? undefined, - }, - ] + }), + }, + ownerAddress: asset?.ownerAddress, + creator: { + profile_img_url: asset?.creator?.profileImage?.url ?? '', + address: asset?.creator?.address ?? '', + }, + metadataUrl: asset?.metadataUrl ?? '', + traits: asset?.traits?.map((trait) => { + return { trait_type: trait.name ?? '', trait_value: trait.value ?? '' } + }), + }, + { + collectionDescription: collection?.description, + collectionImageUrl: collection?.image?.url, + collectionName: collection?.name, + isVerified: collection?.isVerified, + totalSupply: collection?.numAssets, + twitterUrl: collection?.twitterName, + discordUrl: collection?.discordUrl, + externalUrl: collection?.homepageUrl, + }, + ], + loading, + }), + [address, asset, collection, ethPrice, listing?.marketplace, loading, tokenId] + ) } diff --git a/src/graphql/data/nft/NftBalance.ts b/src/graphql/data/nft/NftBalance.ts index 8913314d23..53fa030827 100644 --- a/src/graphql/data/nft/NftBalance.ts +++ b/src/graphql/data/nft/NftBalance.ts @@ -1,17 +1,20 @@ -import graphql from 'babel-plugin-relay/macro' import { parseEther } from 'ethers/lib/utils' -import { DEFAULT_WALLET_ASSET_QUERY_AMOUNT } from 'nft/components/profile/view/ProfilePage' -import { WalletAsset } from 'nft/types' +import gql from 'graphql-tag' +import { GenieCollection, WalletAsset } from 'nft/types' import { wrapScientificNotation } from 'nft/utils' -import { useEffect } from 'react' -import { useLazyLoadQuery, usePaginationFragment, useQueryLoader } from 'react-relay' +import { useCallback, useMemo } from 'react' -import { NftBalancePaginationQuery } from './__generated__/NftBalancePaginationQuery.graphql' -import { NftBalanceQuery } from './__generated__/NftBalanceQuery.graphql' -import { NftBalanceQuery_nftBalances$data } from './__generated__/NftBalanceQuery_nftBalances.graphql' +import { NftAsset, useNftBalanceQuery } from '../__generated__/types-and-hooks' -const nftBalancePaginationQuery = graphql` - fragment NftBalanceQuery_nftBalances on Query @refetchable(queryName: "NftBalancePaginationQuery") { +gql` + query NftBalance( + $ownerAddress: String! + $filter: NftBalancesFilterInput + $first: Int + $after: String + $last: Int + $before: String + ) { nftBalances( ownerAddress: $ownerAddress filter: $filter @@ -19,7 +22,7 @@ const nftBalancePaginationQuery = graphql` after: $after last: $last before: $before - ) @connection(key: "NftBalanceQuery_nftBalances") { + ) { edges { node { ownedAsset { @@ -99,43 +102,7 @@ const nftBalancePaginationQuery = graphql` } ` -const nftBalanceQuery = graphql` - query NftBalanceQuery( - $ownerAddress: String! - $filter: NftBalancesFilterInput - $first: Int - $after: String - $last: Int - $before: String - ) { - ...NftBalanceQuery_nftBalances - } -` - -type NftBalanceQueryAsset = NonNullable< - NonNullable['edges']>[number] -> - -export function useLoadNftBalanceQuery( - ownerAddress?: string, - collectionAddress?: string | string[], - tokenId?: string -): void { - const [, loadQuery] = useQueryLoader(nftBalanceQuery) - useEffect(() => { - if (ownerAddress) { - loadQuery({ - ownerAddress, - filter: tokenId - ? { assets: [{ address: collectionAddress, tokenId }] } - : { addresses: Array.isArray(collectionAddress) ? collectionAddress : [collectionAddress] }, - first: tokenId ? 1 : DEFAULT_WALLET_ASSET_QUERY_AMOUNT, - }) - } - }, [ownerAddress, loadQuery, collectionAddress, tokenId]) -} - -export function useNftBalanceQuery( +export function useNftBalance( ownerAddress: string, collectionFilters?: string[], assetsFilter?: { address: string; tokenId: string }[], @@ -144,9 +111,8 @@ export function useNftBalanceQuery( last?: number, before?: string ) { - const queryData = useLazyLoadQuery( - nftBalanceQuery, - { + const { data, loading, fetchMore } = useNftBalanceQuery({ + variables: { ownerAddress, filter: assetsFilter && assetsFilter.length > 0 @@ -161,14 +127,21 @@ export function useNftBalanceQuery( last, before, }, - { fetchPolicy: 'store-or-network' } + }) + + const hasNext = data?.nftBalances?.pageInfo?.hasNextPage + const loadMore = useCallback( + () => + fetchMore({ + variables: { + after: data?.nftBalances?.pageInfo?.endCursor, + }, + }), + [data?.nftBalances?.pageInfo?.endCursor, fetchMore] ) - const { data, hasNext, loadNext, isLoadingNext } = usePaginationFragment( - nftBalancePaginationQuery, - queryData - ) - const walletAssets: WalletAsset[] = data.nftBalances?.edges?.map((queryAsset: NftBalanceQueryAsset) => { - const asset = queryAsset.node.ownedAsset + + const walletAssets: WalletAsset[] | undefined = data?.nftBalances?.edges?.map((queryAsset) => { + const asset = queryAsset?.node.ownedAsset as NonNullable const ethPrice = parseEther(wrapScientificNotation(asset?.listings?.edges[0]?.node.price.value ?? 0)).toString() return { id: asset?.id, @@ -177,35 +150,32 @@ export function useNftBalanceQuery( notForSale: asset?.listings?.edges?.length === 0, animationUrl: asset?.animationUrl, susFlag: asset?.suspiciousFlag, - priceInfo: asset?.listings - ? { - ETHPrice: ethPrice, - baseAsset: 'ETH', - baseDecimals: '18', - basePrice: ethPrice, - } - : undefined, + priceInfo: { + ETHPrice: ethPrice, + baseAsset: 'ETH', + baseDecimals: '18', + basePrice: ethPrice, + }, name: asset?.name, tokenId: asset?.tokenId, asset_contract: { address: asset?.collection?.nftContracts?.[0]?.address, - schema_name: asset?.collection?.nftContracts?.[0]?.standard, + tokenType: asset?.collection?.nftContracts?.[0]?.standard, name: asset?.collection?.name, description: asset?.description, image_url: asset?.collection?.image?.url, payout_address: queryAsset?.node?.listingFees?.[0]?.payoutAddress, - tokenType: asset?.collection?.nftContracts?.[0].standard, }, - collection: asset?.collection, + collection: asset?.collection as unknown as GenieCollection, collectionIsVerified: asset?.collection?.isVerified, lastPrice: queryAsset.node.lastPrice?.value, floorPrice: asset?.collection?.markets?.[0]?.floorPrice?.value, basisPoints: queryAsset?.node?.listingFees?.[0]?.basisPoints ?? 0 / 10000, - listing_date: asset?.listings?.edges?.[0]?.node?.createdAt, - date_acquired: queryAsset.node.lastPrice?.timestamp, + listing_date: asset?.listings?.edges?.[0]?.node?.createdAt?.toString(), + date_acquired: queryAsset.node.lastPrice?.timestamp?.toString(), sellOrders: asset?.listings?.edges.map((edge: any) => edge.node), floor_sell_order_price: asset?.listings?.edges?.[0]?.node?.price?.value, } }) - return { walletAssets, hasNext, isLoadingNext, loadNext } + return useMemo(() => ({ walletAssets, hasNext, loadMore, loading }), [hasNext, loadMore, loading, walletAssets]) } diff --git a/src/graphql/data/util.tsx b/src/graphql/data/util.tsx index 55077abebf..326028aac9 100644 --- a/src/graphql/data/util.tsx +++ b/src/graphql/data/util.tsx @@ -2,7 +2,7 @@ import { SupportedChainId } from 'constants/chains' import { ZERO_ADDRESS } from 'constants/misc' import { NATIVE_CHAIN_ID, nativeOnChain, WRAPPED_NATIVE_CURRENCY } from 'constants/tokens' -import { Chain, HistoryDuration } from './__generated__/TopTokens100Query.graphql' +import { Chain, HistoryDuration } from './__generated__/types-and-hooks' export enum TimePeriod { HOUR, @@ -15,15 +15,15 @@ export enum TimePeriod { export function toHistoryDuration(timePeriod: TimePeriod): HistoryDuration { switch (timePeriod) { case TimePeriod.HOUR: - return 'HOUR' + return HistoryDuration.Hour case TimePeriod.DAY: - return 'DAY' + return HistoryDuration.Day case TimePeriod.WEEK: - return 'WEEK' + return HistoryDuration.Week case TimePeriod.MONTH: - return 'MONTH' + return HistoryDuration.Month case TimePeriod.YEAR: - return 'YEAR' + return HistoryDuration.Year } } @@ -34,16 +34,16 @@ export function isPricePoint(p: PricePoint | null): p is PricePoint { } export const CHAIN_ID_TO_BACKEND_NAME: { [key: number]: Chain } = { - [SupportedChainId.MAINNET]: 'ETHEREUM', - [SupportedChainId.GOERLI]: 'ETHEREUM_GOERLI', - [SupportedChainId.POLYGON]: 'POLYGON', - [SupportedChainId.POLYGON_MUMBAI]: 'POLYGON', - [SupportedChainId.CELO]: 'CELO', - [SupportedChainId.CELO_ALFAJORES]: 'CELO', - [SupportedChainId.ARBITRUM_ONE]: 'ARBITRUM', - [SupportedChainId.ARBITRUM_RINKEBY]: 'ARBITRUM', - [SupportedChainId.OPTIMISM]: 'OPTIMISM', - [SupportedChainId.OPTIMISM_GOERLI]: 'OPTIMISM', + [SupportedChainId.MAINNET]: Chain.Ethereum, + [SupportedChainId.GOERLI]: Chain.EthereumGoerli, + [SupportedChainId.POLYGON]: Chain.Polygon, + [SupportedChainId.POLYGON_MUMBAI]: Chain.Polygon, + [SupportedChainId.CELO]: Chain.Celo, + [SupportedChainId.CELO_ALFAJORES]: Chain.Celo, + [SupportedChainId.ARBITRUM_ONE]: Chain.Arbitrum, + [SupportedChainId.ARBITRUM_RINKEBY]: Chain.Arbitrum, + [SupportedChainId.OPTIMISM]: Chain.Optimism, + [SupportedChainId.OPTIMISM_GOERLI]: Chain.Optimism, } export function chainIdToBackendName(chainId: number | undefined) { @@ -53,15 +53,15 @@ export function chainIdToBackendName(chainId: number | undefined) { } const URL_CHAIN_PARAM_TO_BACKEND: { [key: string]: Chain } = { - ethereum: 'ETHEREUM', - polygon: 'POLYGON', - celo: 'CELO', - arbitrum: 'ARBITRUM', - optimism: 'OPTIMISM', + ethereum: Chain.Ethereum, + polygon: Chain.Polygon, + celo: Chain.Celo, + arbitrum: Chain.Arbitrum, + optimism: Chain.Optimism, } export function validateUrlChainParam(chainName: string | undefined) { - return chainName && URL_CHAIN_PARAM_TO_BACKEND[chainName] ? URL_CHAIN_PARAM_TO_BACKEND[chainName] : 'ETHEREUM' + return chainName && URL_CHAIN_PARAM_TO_BACKEND[chainName] ? URL_CHAIN_PARAM_TO_BACKEND[chainName] : Chain.Ethereum } export const CHAIN_NAME_TO_CHAIN_ID: { [key: string]: SupportedChainId } = { @@ -72,7 +72,7 @@ export const CHAIN_NAME_TO_CHAIN_ID: { [key: string]: SupportedChainId } = { OPTIMISM: SupportedChainId.OPTIMISM, } -export const BACKEND_CHAIN_NAMES: Chain[] = ['ETHEREUM', 'POLYGON', 'OPTIMISM', 'ARBITRUM', 'CELO'] +export const BACKEND_CHAIN_NAMES: Chain[] = [Chain.Ethereum, Chain.Polygon, Chain.Optimism, Chain.Arbitrum, Chain.Celo] export function isValidBackendChainName(chainName: string | undefined): chainName is Chain { if (!chainName) return false @@ -95,7 +95,11 @@ export function getTokenDetailsURL(address: string, chainName?: Chain, chainId?: } } -export function unwrapToken(chainId: number, token: T): T { +export function unwrapToken< + T extends { + address?: string | null | undefined + } | null +>(chainId: number, token: T): T { if (!token?.address) return token const address = token.address.toLowerCase() diff --git a/src/graphql/thegraph/AllV3TicksQuery.ts b/src/graphql/thegraph/AllV3TicksQuery.ts index 03e090a0fe..e6a2b1beae 100644 --- a/src/graphql/thegraph/AllV3TicksQuery.ts +++ b/src/graphql/thegraph/AllV3TicksQuery.ts @@ -1,17 +1,12 @@ -import graphql from 'babel-plugin-relay/macro' -import useInterval from 'lib/hooks/useInterval' -import { useCallback, useEffect, useState } from 'react' -import { fetchQuery } from 'react-relay' -import { useAppSelector } from 'state/hooks' +import { useQuery } from '@apollo/client' +import gql from 'graphql-tag' +import { useMemo } from 'react' -import type { - AllV3TicksQuery as AllV3TicksQueryType, - AllV3TicksQuery$data, -} from './__generated__/AllV3TicksQuery.graphql' -import environment from './RelayEnvironment' +import { AllV3TicksQuery } from './__generated__/types-and-hooks' +import { apolloClient } from './apollo' -const query = graphql` - query AllV3TicksQuery($poolAddress: String!, $skip: Int!) { +const query = gql` + query AllV3Ticks($poolAddress: String!, $skip: Int!) { ticks(first: 1000, skip: $skip, where: { poolAddress: $poolAddress }, orderBy: tickIdx) { tick: tickIdx liquidityNet @@ -21,33 +16,29 @@ const query = graphql` } ` -export type Ticks = AllV3TicksQuery$data['ticks'] +export type Ticks = AllV3TicksQuery['ticks'] export type TickData = Ticks[number] export default function useAllV3TicksQuery(poolAddress: string | undefined, skip: number, interval: number) { - const [data, setData] = useState(null) - const [error, setError] = useState(null) - const [isLoading, setIsLoading] = useState(true) - const chainId = useAppSelector((state) => state.application.chainId) + const { + data, + loading: isLoading, + error, + } = useQuery(query, { + variables: { + poolAddress: poolAddress?.toLowerCase(), + skip, + }, + pollInterval: interval, + client: apolloClient, + }) - const refreshData = useCallback(() => { - if (poolAddress && chainId) { - fetchQuery(environment, query, { - poolAddress: poolAddress.toLowerCase(), - skip, - }).subscribe({ - next: setData, - error: setError, - complete: () => setIsLoading(false), - }) - } else { - setIsLoading(false) - } - }, [poolAddress, skip, chainId]) - - // Trigger fetch on first load - useEffect(refreshData, [refreshData, poolAddress, skip]) - - useInterval(refreshData, interval, true) - return { error, isLoading, data } + return useMemo( + () => ({ + error, + isLoading, + data, + }), + [data, error, isLoading] + ) } diff --git a/src/graphql/thegraph/FeeTierDistributionQuery.ts b/src/graphql/thegraph/FeeTierDistributionQuery.ts index 4ee6e32cd5..5778a3eda5 100644 --- a/src/graphql/thegraph/FeeTierDistributionQuery.ts +++ b/src/graphql/thegraph/FeeTierDistributionQuery.ts @@ -1,17 +1,12 @@ -import graphql from 'babel-plugin-relay/macro' -import useInterval from 'lib/hooks/useInterval' -import { useCallback, useEffect, useState } from 'react' -import { fetchQuery } from 'react-relay' -import { useAppSelector } from 'state/hooks' +import { ApolloError, useQuery } from '@apollo/client' +import gql from 'graphql-tag' +import { useMemo } from 'react' -import type { - FeeTierDistributionQuery as FeeTierDistributionQueryType, - FeeTierDistributionQuery$data, -} from './__generated__/FeeTierDistributionQuery.graphql' -import environment from './RelayEnvironment' +import { FeeTierDistributionQuery } from './__generated__/types-and-hooks' +import { apolloClient } from './apollo' -const query = graphql` - query FeeTierDistributionQuery($token0: String!, $token1: String!) { +const query = gql` + query FeeTierDistribution($token0: String!, $token1: String!) { _meta { block { number @@ -42,28 +37,26 @@ export default function useFeeTierDistributionQuery( token0: string | undefined, token1: string | undefined, interval: number -) { - const [data, setData] = useState(null) - const [error, setError] = useState(null) - const [isLoading, setIsLoading] = useState(true) - const chainId = useAppSelector((state) => state.application.chainId) +): { error: ApolloError | undefined; isLoading: boolean; data: FeeTierDistributionQuery } { + const { + data, + loading: isLoading, + error, + } = useQuery(query, { + variables: { + token0: token0?.toLowerCase(), + token1: token1?.toLowerCase(), + }, + pollInterval: interval, + client: apolloClient, + }) - const refreshData = useCallback(() => { - if (token0 && token1 && chainId) { - fetchQuery(environment, query, { - token0: token0.toLowerCase(), - token1: token1.toLowerCase(), - }).subscribe({ - next: setData, - error: setError, - complete: () => setIsLoading(false), - }) - } - }, [token0, token1, chainId]) - - // Trigger fetch on first load - useEffect(refreshData, [refreshData, token0, token1]) - - useInterval(refreshData, interval, true) - return { error, isLoading, data } + return useMemo( + () => ({ + error, + isLoading, + data, + }), + [data, error, isLoading] + ) } diff --git a/src/graphql/thegraph/RelayEnvironment.ts b/src/graphql/thegraph/RelayEnvironment.ts deleted file mode 100644 index 29ce7ec28d..0000000000 --- a/src/graphql/thegraph/RelayEnvironment.ts +++ /dev/null @@ -1,9 +0,0 @@ -import { Environment, Network, RecordSource, Store } from 'relay-runtime' - -import fetchGraphQL from './fetchGraphQL' - -// Export a singleton instance of Relay Environment configured with our network function: -export default new Environment({ - network: Network.create(fetchGraphQL), - store: new Store(new RecordSource()), -}) diff --git a/src/graphql/thegraph/__generated__/types-and-hooks.ts b/src/graphql/thegraph/__generated__/types-and-hooks.ts new file mode 100644 index 0000000000..a958a3f8ed --- /dev/null +++ b/src/graphql/thegraph/__generated__/types-and-hooks.ts @@ -0,0 +1,4750 @@ +import { gql } from '@apollo/client'; +import * as Apollo from '@apollo/client'; +export type Maybe = T; +export type InputMaybe = T; +export type Exact = { [K in keyof T]: T[K] }; +export type MakeOptional = Omit & { [SubKey in K]?: Maybe }; +export type MakeMaybe = Omit & { [SubKey in K]: Maybe }; +const defaultOptions = {} as const; +/** All built-in and custom scalars, mapped to their actual values */ +export type Scalars = { + ID: string; + String: string; + Boolean: boolean; + Int: number; + Float: number; + BigDecimal: any; + BigInt: any; + Bytes: any; +}; + +export type BlockChangedFilter = { + number_gte: Scalars['Int']; +}; + +export type Block_Height = { + hash?: InputMaybe; + number?: InputMaybe; + number_gte?: InputMaybe; +}; + +export type Bundle = { + __typename?: 'Bundle'; + ethPriceUSD: Scalars['BigDecimal']; + id: Scalars['ID']; +}; + +export type Bundle_Filter = { + /** Filter for the block changed event. */ + _change_block?: InputMaybe; + ethPriceUSD?: InputMaybe; + ethPriceUSD_gt?: InputMaybe; + ethPriceUSD_gte?: InputMaybe; + ethPriceUSD_in?: InputMaybe>; + ethPriceUSD_lt?: InputMaybe; + ethPriceUSD_lte?: InputMaybe; + ethPriceUSD_not?: InputMaybe; + ethPriceUSD_not_in?: InputMaybe>; + id?: InputMaybe; + id_gt?: InputMaybe; + id_gte?: InputMaybe; + id_in?: InputMaybe>; + id_lt?: InputMaybe; + id_lte?: InputMaybe; + id_not?: InputMaybe; + id_not_in?: InputMaybe>; +}; + +export enum Bundle_OrderBy { + EthPriceUsd = 'ethPriceUSD', + Id = 'id' +} + +export type Burn = { + __typename?: 'Burn'; + amount: Scalars['BigInt']; + amount0: Scalars['BigDecimal']; + amount1: Scalars['BigDecimal']; + amountUSD?: Maybe; + id: Scalars['ID']; + logIndex?: Maybe; + origin: Scalars['Bytes']; + owner?: Maybe; + pool: Pool; + tickLower: Scalars['BigInt']; + tickUpper: Scalars['BigInt']; + timestamp: Scalars['BigInt']; + token0: Token; + token1: Token; + transaction: Transaction; +}; + +export type Burn_Filter = { + /** Filter for the block changed event. */ + _change_block?: InputMaybe; + amount?: InputMaybe; + amount0?: InputMaybe; + amount0_gt?: InputMaybe; + amount0_gte?: InputMaybe; + amount0_in?: InputMaybe>; + amount0_lt?: InputMaybe; + amount0_lte?: InputMaybe; + amount0_not?: InputMaybe; + amount0_not_in?: InputMaybe>; + amount1?: InputMaybe; + amount1_gt?: InputMaybe; + amount1_gte?: InputMaybe; + amount1_in?: InputMaybe>; + amount1_lt?: InputMaybe; + amount1_lte?: InputMaybe; + amount1_not?: InputMaybe; + amount1_not_in?: InputMaybe>; + amountUSD?: InputMaybe; + amountUSD_gt?: InputMaybe; + amountUSD_gte?: InputMaybe; + amountUSD_in?: InputMaybe>; + amountUSD_lt?: InputMaybe; + amountUSD_lte?: InputMaybe; + amountUSD_not?: InputMaybe; + amountUSD_not_in?: InputMaybe>; + amount_gt?: InputMaybe; + amount_gte?: InputMaybe; + amount_in?: InputMaybe>; + amount_lt?: InputMaybe; + amount_lte?: InputMaybe; + amount_not?: InputMaybe; + amount_not_in?: InputMaybe>; + id?: InputMaybe; + id_gt?: InputMaybe; + id_gte?: InputMaybe; + id_in?: InputMaybe>; + id_lt?: InputMaybe; + id_lte?: InputMaybe; + id_not?: InputMaybe; + id_not_in?: InputMaybe>; + logIndex?: InputMaybe; + logIndex_gt?: InputMaybe; + logIndex_gte?: InputMaybe; + logIndex_in?: InputMaybe>; + logIndex_lt?: InputMaybe; + logIndex_lte?: InputMaybe; + logIndex_not?: InputMaybe; + logIndex_not_in?: InputMaybe>; + origin?: InputMaybe; + origin_contains?: InputMaybe; + origin_in?: InputMaybe>; + origin_not?: InputMaybe; + origin_not_contains?: InputMaybe; + origin_not_in?: InputMaybe>; + owner?: InputMaybe; + owner_contains?: InputMaybe; + owner_in?: InputMaybe>; + owner_not?: InputMaybe; + owner_not_contains?: InputMaybe; + owner_not_in?: InputMaybe>; + pool?: InputMaybe; + pool_?: InputMaybe; + pool_contains?: InputMaybe; + pool_contains_nocase?: InputMaybe; + pool_ends_with?: InputMaybe; + pool_ends_with_nocase?: InputMaybe; + pool_gt?: InputMaybe; + pool_gte?: InputMaybe; + pool_in?: InputMaybe>; + pool_lt?: InputMaybe; + pool_lte?: InputMaybe; + pool_not?: InputMaybe; + pool_not_contains?: InputMaybe; + pool_not_contains_nocase?: InputMaybe; + pool_not_ends_with?: InputMaybe; + pool_not_ends_with_nocase?: InputMaybe; + pool_not_in?: InputMaybe>; + pool_not_starts_with?: InputMaybe; + pool_not_starts_with_nocase?: InputMaybe; + pool_starts_with?: InputMaybe; + pool_starts_with_nocase?: InputMaybe; + tickLower?: InputMaybe; + tickLower_gt?: InputMaybe; + tickLower_gte?: InputMaybe; + tickLower_in?: InputMaybe>; + tickLower_lt?: InputMaybe; + tickLower_lte?: InputMaybe; + tickLower_not?: InputMaybe; + tickLower_not_in?: InputMaybe>; + tickUpper?: InputMaybe; + tickUpper_gt?: InputMaybe; + tickUpper_gte?: InputMaybe; + tickUpper_in?: InputMaybe>; + tickUpper_lt?: InputMaybe; + tickUpper_lte?: InputMaybe; + tickUpper_not?: InputMaybe; + tickUpper_not_in?: InputMaybe>; + timestamp?: InputMaybe; + timestamp_gt?: InputMaybe; + timestamp_gte?: InputMaybe; + timestamp_in?: InputMaybe>; + timestamp_lt?: InputMaybe; + timestamp_lte?: InputMaybe; + timestamp_not?: InputMaybe; + timestamp_not_in?: InputMaybe>; + token0?: InputMaybe; + token0_?: InputMaybe; + token0_contains?: InputMaybe; + token0_contains_nocase?: InputMaybe; + token0_ends_with?: InputMaybe; + token0_ends_with_nocase?: InputMaybe; + token0_gt?: InputMaybe; + token0_gte?: InputMaybe; + token0_in?: InputMaybe>; + token0_lt?: InputMaybe; + token0_lte?: InputMaybe; + token0_not?: InputMaybe; + token0_not_contains?: InputMaybe; + token0_not_contains_nocase?: InputMaybe; + token0_not_ends_with?: InputMaybe; + token0_not_ends_with_nocase?: InputMaybe; + token0_not_in?: InputMaybe>; + token0_not_starts_with?: InputMaybe; + token0_not_starts_with_nocase?: InputMaybe; + token0_starts_with?: InputMaybe; + token0_starts_with_nocase?: InputMaybe; + token1?: InputMaybe; + token1_?: InputMaybe; + token1_contains?: InputMaybe; + token1_contains_nocase?: InputMaybe; + token1_ends_with?: InputMaybe; + token1_ends_with_nocase?: InputMaybe; + token1_gt?: InputMaybe; + token1_gte?: InputMaybe; + token1_in?: InputMaybe>; + token1_lt?: InputMaybe; + token1_lte?: InputMaybe; + token1_not?: InputMaybe; + token1_not_contains?: InputMaybe; + token1_not_contains_nocase?: InputMaybe; + token1_not_ends_with?: InputMaybe; + token1_not_ends_with_nocase?: InputMaybe; + token1_not_in?: InputMaybe>; + token1_not_starts_with?: InputMaybe; + token1_not_starts_with_nocase?: InputMaybe; + token1_starts_with?: InputMaybe; + token1_starts_with_nocase?: InputMaybe; + transaction?: InputMaybe; + transaction_?: InputMaybe; + transaction_contains?: InputMaybe; + transaction_contains_nocase?: InputMaybe; + transaction_ends_with?: InputMaybe; + transaction_ends_with_nocase?: InputMaybe; + transaction_gt?: InputMaybe; + transaction_gte?: InputMaybe; + transaction_in?: InputMaybe>; + transaction_lt?: InputMaybe; + transaction_lte?: InputMaybe; + transaction_not?: InputMaybe; + transaction_not_contains?: InputMaybe; + transaction_not_contains_nocase?: InputMaybe; + transaction_not_ends_with?: InputMaybe; + transaction_not_ends_with_nocase?: InputMaybe; + transaction_not_in?: InputMaybe>; + transaction_not_starts_with?: InputMaybe; + transaction_not_starts_with_nocase?: InputMaybe; + transaction_starts_with?: InputMaybe; + transaction_starts_with_nocase?: InputMaybe; +}; + +export enum Burn_OrderBy { + Amount = 'amount', + Amount0 = 'amount0', + Amount1 = 'amount1', + AmountUsd = 'amountUSD', + Id = 'id', + LogIndex = 'logIndex', + Origin = 'origin', + Owner = 'owner', + Pool = 'pool', + TickLower = 'tickLower', + TickUpper = 'tickUpper', + Timestamp = 'timestamp', + Token0 = 'token0', + Token1 = 'token1', + Transaction = 'transaction' +} + +export type Collect = { + __typename?: 'Collect'; + amount0: Scalars['BigDecimal']; + amount1: Scalars['BigDecimal']; + amountUSD?: Maybe; + id: Scalars['ID']; + logIndex?: Maybe; + owner?: Maybe; + pool: Pool; + tickLower: Scalars['BigInt']; + tickUpper: Scalars['BigInt']; + timestamp: Scalars['BigInt']; + transaction: Transaction; +}; + +export type Collect_Filter = { + /** Filter for the block changed event. */ + _change_block?: InputMaybe; + amount0?: InputMaybe; + amount0_gt?: InputMaybe; + amount0_gte?: InputMaybe; + amount0_in?: InputMaybe>; + amount0_lt?: InputMaybe; + amount0_lte?: InputMaybe; + amount0_not?: InputMaybe; + amount0_not_in?: InputMaybe>; + amount1?: InputMaybe; + amount1_gt?: InputMaybe; + amount1_gte?: InputMaybe; + amount1_in?: InputMaybe>; + amount1_lt?: InputMaybe; + amount1_lte?: InputMaybe; + amount1_not?: InputMaybe; + amount1_not_in?: InputMaybe>; + amountUSD?: InputMaybe; + amountUSD_gt?: InputMaybe; + amountUSD_gte?: InputMaybe; + amountUSD_in?: InputMaybe>; + amountUSD_lt?: InputMaybe; + amountUSD_lte?: InputMaybe; + amountUSD_not?: InputMaybe; + amountUSD_not_in?: InputMaybe>; + id?: InputMaybe; + id_gt?: InputMaybe; + id_gte?: InputMaybe; + id_in?: InputMaybe>; + id_lt?: InputMaybe; + id_lte?: InputMaybe; + id_not?: InputMaybe; + id_not_in?: InputMaybe>; + logIndex?: InputMaybe; + logIndex_gt?: InputMaybe; + logIndex_gte?: InputMaybe; + logIndex_in?: InputMaybe>; + logIndex_lt?: InputMaybe; + logIndex_lte?: InputMaybe; + logIndex_not?: InputMaybe; + logIndex_not_in?: InputMaybe>; + owner?: InputMaybe; + owner_contains?: InputMaybe; + owner_in?: InputMaybe>; + owner_not?: InputMaybe; + owner_not_contains?: InputMaybe; + owner_not_in?: InputMaybe>; + pool?: InputMaybe; + pool_?: InputMaybe; + pool_contains?: InputMaybe; + pool_contains_nocase?: InputMaybe; + pool_ends_with?: InputMaybe; + pool_ends_with_nocase?: InputMaybe; + pool_gt?: InputMaybe; + pool_gte?: InputMaybe; + pool_in?: InputMaybe>; + pool_lt?: InputMaybe; + pool_lte?: InputMaybe; + pool_not?: InputMaybe; + pool_not_contains?: InputMaybe; + pool_not_contains_nocase?: InputMaybe; + pool_not_ends_with?: InputMaybe; + pool_not_ends_with_nocase?: InputMaybe; + pool_not_in?: InputMaybe>; + pool_not_starts_with?: InputMaybe; + pool_not_starts_with_nocase?: InputMaybe; + pool_starts_with?: InputMaybe; + pool_starts_with_nocase?: InputMaybe; + tickLower?: InputMaybe; + tickLower_gt?: InputMaybe; + tickLower_gte?: InputMaybe; + tickLower_in?: InputMaybe>; + tickLower_lt?: InputMaybe; + tickLower_lte?: InputMaybe; + tickLower_not?: InputMaybe; + tickLower_not_in?: InputMaybe>; + tickUpper?: InputMaybe; + tickUpper_gt?: InputMaybe; + tickUpper_gte?: InputMaybe; + tickUpper_in?: InputMaybe>; + tickUpper_lt?: InputMaybe; + tickUpper_lte?: InputMaybe; + tickUpper_not?: InputMaybe; + tickUpper_not_in?: InputMaybe>; + timestamp?: InputMaybe; + timestamp_gt?: InputMaybe; + timestamp_gte?: InputMaybe; + timestamp_in?: InputMaybe>; + timestamp_lt?: InputMaybe; + timestamp_lte?: InputMaybe; + timestamp_not?: InputMaybe; + timestamp_not_in?: InputMaybe>; + transaction?: InputMaybe; + transaction_?: InputMaybe; + transaction_contains?: InputMaybe; + transaction_contains_nocase?: InputMaybe; + transaction_ends_with?: InputMaybe; + transaction_ends_with_nocase?: InputMaybe; + transaction_gt?: InputMaybe; + transaction_gte?: InputMaybe; + transaction_in?: InputMaybe>; + transaction_lt?: InputMaybe; + transaction_lte?: InputMaybe; + transaction_not?: InputMaybe; + transaction_not_contains?: InputMaybe; + transaction_not_contains_nocase?: InputMaybe; + transaction_not_ends_with?: InputMaybe; + transaction_not_ends_with_nocase?: InputMaybe; + transaction_not_in?: InputMaybe>; + transaction_not_starts_with?: InputMaybe; + transaction_not_starts_with_nocase?: InputMaybe; + transaction_starts_with?: InputMaybe; + transaction_starts_with_nocase?: InputMaybe; +}; + +export enum Collect_OrderBy { + Amount0 = 'amount0', + Amount1 = 'amount1', + AmountUsd = 'amountUSD', + Id = 'id', + LogIndex = 'logIndex', + Owner = 'owner', + Pool = 'pool', + TickLower = 'tickLower', + TickUpper = 'tickUpper', + Timestamp = 'timestamp', + Transaction = 'transaction' +} + +export type Factory = { + __typename?: 'Factory'; + id: Scalars['ID']; + owner: Scalars['ID']; + poolCount: Scalars['BigInt']; + totalFeesETH: Scalars['BigDecimal']; + totalFeesUSD: Scalars['BigDecimal']; + totalValueLockedETH: Scalars['BigDecimal']; + totalValueLockedETHUntracked: Scalars['BigDecimal']; + totalValueLockedUSD: Scalars['BigDecimal']; + totalValueLockedUSDUntracked: Scalars['BigDecimal']; + totalVolumeETH: Scalars['BigDecimal']; + totalVolumeUSD: Scalars['BigDecimal']; + txCount: Scalars['BigInt']; + untrackedVolumeUSD: Scalars['BigDecimal']; +}; + +export type Factory_Filter = { + /** Filter for the block changed event. */ + _change_block?: InputMaybe; + id?: InputMaybe; + id_gt?: InputMaybe; + id_gte?: InputMaybe; + id_in?: InputMaybe>; + id_lt?: InputMaybe; + id_lte?: InputMaybe; + id_not?: InputMaybe; + id_not_in?: InputMaybe>; + owner?: InputMaybe; + owner_gt?: InputMaybe; + owner_gte?: InputMaybe; + owner_in?: InputMaybe>; + owner_lt?: InputMaybe; + owner_lte?: InputMaybe; + owner_not?: InputMaybe; + owner_not_in?: InputMaybe>; + poolCount?: InputMaybe; + poolCount_gt?: InputMaybe; + poolCount_gte?: InputMaybe; + poolCount_in?: InputMaybe>; + poolCount_lt?: InputMaybe; + poolCount_lte?: InputMaybe; + poolCount_not?: InputMaybe; + poolCount_not_in?: InputMaybe>; + totalFeesETH?: InputMaybe; + totalFeesETH_gt?: InputMaybe; + totalFeesETH_gte?: InputMaybe; + totalFeesETH_in?: InputMaybe>; + totalFeesETH_lt?: InputMaybe; + totalFeesETH_lte?: InputMaybe; + totalFeesETH_not?: InputMaybe; + totalFeesETH_not_in?: InputMaybe>; + totalFeesUSD?: InputMaybe; + totalFeesUSD_gt?: InputMaybe; + totalFeesUSD_gte?: InputMaybe; + totalFeesUSD_in?: InputMaybe>; + totalFeesUSD_lt?: InputMaybe; + totalFeesUSD_lte?: InputMaybe; + totalFeesUSD_not?: InputMaybe; + totalFeesUSD_not_in?: InputMaybe>; + totalValueLockedETH?: InputMaybe; + totalValueLockedETHUntracked?: InputMaybe; + totalValueLockedETHUntracked_gt?: InputMaybe; + totalValueLockedETHUntracked_gte?: InputMaybe; + totalValueLockedETHUntracked_in?: InputMaybe>; + totalValueLockedETHUntracked_lt?: InputMaybe; + totalValueLockedETHUntracked_lte?: InputMaybe; + totalValueLockedETHUntracked_not?: InputMaybe; + totalValueLockedETHUntracked_not_in?: InputMaybe>; + totalValueLockedETH_gt?: InputMaybe; + totalValueLockedETH_gte?: InputMaybe; + totalValueLockedETH_in?: InputMaybe>; + totalValueLockedETH_lt?: InputMaybe; + totalValueLockedETH_lte?: InputMaybe; + totalValueLockedETH_not?: InputMaybe; + totalValueLockedETH_not_in?: InputMaybe>; + totalValueLockedUSD?: InputMaybe; + totalValueLockedUSDUntracked?: InputMaybe; + totalValueLockedUSDUntracked_gt?: InputMaybe; + totalValueLockedUSDUntracked_gte?: InputMaybe; + totalValueLockedUSDUntracked_in?: InputMaybe>; + totalValueLockedUSDUntracked_lt?: InputMaybe; + totalValueLockedUSDUntracked_lte?: InputMaybe; + totalValueLockedUSDUntracked_not?: InputMaybe; + totalValueLockedUSDUntracked_not_in?: InputMaybe>; + totalValueLockedUSD_gt?: InputMaybe; + totalValueLockedUSD_gte?: InputMaybe; + totalValueLockedUSD_in?: InputMaybe>; + totalValueLockedUSD_lt?: InputMaybe; + totalValueLockedUSD_lte?: InputMaybe; + totalValueLockedUSD_not?: InputMaybe; + totalValueLockedUSD_not_in?: InputMaybe>; + totalVolumeETH?: InputMaybe; + totalVolumeETH_gt?: InputMaybe; + totalVolumeETH_gte?: InputMaybe; + totalVolumeETH_in?: InputMaybe>; + totalVolumeETH_lt?: InputMaybe; + totalVolumeETH_lte?: InputMaybe; + totalVolumeETH_not?: InputMaybe; + totalVolumeETH_not_in?: InputMaybe>; + totalVolumeUSD?: InputMaybe; + totalVolumeUSD_gt?: InputMaybe; + totalVolumeUSD_gte?: InputMaybe; + totalVolumeUSD_in?: InputMaybe>; + totalVolumeUSD_lt?: InputMaybe; + totalVolumeUSD_lte?: InputMaybe; + totalVolumeUSD_not?: InputMaybe; + totalVolumeUSD_not_in?: InputMaybe>; + txCount?: InputMaybe; + txCount_gt?: InputMaybe; + txCount_gte?: InputMaybe; + txCount_in?: InputMaybe>; + txCount_lt?: InputMaybe; + txCount_lte?: InputMaybe; + txCount_not?: InputMaybe; + txCount_not_in?: InputMaybe>; + untrackedVolumeUSD?: InputMaybe; + untrackedVolumeUSD_gt?: InputMaybe; + untrackedVolumeUSD_gte?: InputMaybe; + untrackedVolumeUSD_in?: InputMaybe>; + untrackedVolumeUSD_lt?: InputMaybe; + untrackedVolumeUSD_lte?: InputMaybe; + untrackedVolumeUSD_not?: InputMaybe; + untrackedVolumeUSD_not_in?: InputMaybe>; +}; + +export enum Factory_OrderBy { + Id = 'id', + Owner = 'owner', + PoolCount = 'poolCount', + TotalFeesEth = 'totalFeesETH', + TotalFeesUsd = 'totalFeesUSD', + TotalValueLockedEth = 'totalValueLockedETH', + TotalValueLockedEthUntracked = 'totalValueLockedETHUntracked', + TotalValueLockedUsd = 'totalValueLockedUSD', + TotalValueLockedUsdUntracked = 'totalValueLockedUSDUntracked', + TotalVolumeEth = 'totalVolumeETH', + TotalVolumeUsd = 'totalVolumeUSD', + TxCount = 'txCount', + UntrackedVolumeUsd = 'untrackedVolumeUSD' +} + +export type Flash = { + __typename?: 'Flash'; + amount0: Scalars['BigDecimal']; + amount0Paid: Scalars['BigDecimal']; + amount1: Scalars['BigDecimal']; + amount1Paid: Scalars['BigDecimal']; + amountUSD: Scalars['BigDecimal']; + id: Scalars['ID']; + logIndex?: Maybe; + pool: Pool; + recipient: Scalars['Bytes']; + sender: Scalars['Bytes']; + timestamp: Scalars['BigInt']; + transaction: Transaction; +}; + +export type Flash_Filter = { + /** Filter for the block changed event. */ + _change_block?: InputMaybe; + amount0?: InputMaybe; + amount0Paid?: InputMaybe; + amount0Paid_gt?: InputMaybe; + amount0Paid_gte?: InputMaybe; + amount0Paid_in?: InputMaybe>; + amount0Paid_lt?: InputMaybe; + amount0Paid_lte?: InputMaybe; + amount0Paid_not?: InputMaybe; + amount0Paid_not_in?: InputMaybe>; + amount0_gt?: InputMaybe; + amount0_gte?: InputMaybe; + amount0_in?: InputMaybe>; + amount0_lt?: InputMaybe; + amount0_lte?: InputMaybe; + amount0_not?: InputMaybe; + amount0_not_in?: InputMaybe>; + amount1?: InputMaybe; + amount1Paid?: InputMaybe; + amount1Paid_gt?: InputMaybe; + amount1Paid_gte?: InputMaybe; + amount1Paid_in?: InputMaybe>; + amount1Paid_lt?: InputMaybe; + amount1Paid_lte?: InputMaybe; + amount1Paid_not?: InputMaybe; + amount1Paid_not_in?: InputMaybe>; + amount1_gt?: InputMaybe; + amount1_gte?: InputMaybe; + amount1_in?: InputMaybe>; + amount1_lt?: InputMaybe; + amount1_lte?: InputMaybe; + amount1_not?: InputMaybe; + amount1_not_in?: InputMaybe>; + amountUSD?: InputMaybe; + amountUSD_gt?: InputMaybe; + amountUSD_gte?: InputMaybe; + amountUSD_in?: InputMaybe>; + amountUSD_lt?: InputMaybe; + amountUSD_lte?: InputMaybe; + amountUSD_not?: InputMaybe; + amountUSD_not_in?: InputMaybe>; + id?: InputMaybe; + id_gt?: InputMaybe; + id_gte?: InputMaybe; + id_in?: InputMaybe>; + id_lt?: InputMaybe; + id_lte?: InputMaybe; + id_not?: InputMaybe; + id_not_in?: InputMaybe>; + logIndex?: InputMaybe; + logIndex_gt?: InputMaybe; + logIndex_gte?: InputMaybe; + logIndex_in?: InputMaybe>; + logIndex_lt?: InputMaybe; + logIndex_lte?: InputMaybe; + logIndex_not?: InputMaybe; + logIndex_not_in?: InputMaybe>; + pool?: InputMaybe; + pool_?: InputMaybe; + pool_contains?: InputMaybe; + pool_contains_nocase?: InputMaybe; + pool_ends_with?: InputMaybe; + pool_ends_with_nocase?: InputMaybe; + pool_gt?: InputMaybe; + pool_gte?: InputMaybe; + pool_in?: InputMaybe>; + pool_lt?: InputMaybe; + pool_lte?: InputMaybe; + pool_not?: InputMaybe; + pool_not_contains?: InputMaybe; + pool_not_contains_nocase?: InputMaybe; + pool_not_ends_with?: InputMaybe; + pool_not_ends_with_nocase?: InputMaybe; + pool_not_in?: InputMaybe>; + pool_not_starts_with?: InputMaybe; + pool_not_starts_with_nocase?: InputMaybe; + pool_starts_with?: InputMaybe; + pool_starts_with_nocase?: InputMaybe; + recipient?: InputMaybe; + recipient_contains?: InputMaybe; + recipient_in?: InputMaybe>; + recipient_not?: InputMaybe; + recipient_not_contains?: InputMaybe; + recipient_not_in?: InputMaybe>; + sender?: InputMaybe; + sender_contains?: InputMaybe; + sender_in?: InputMaybe>; + sender_not?: InputMaybe; + sender_not_contains?: InputMaybe; + sender_not_in?: InputMaybe>; + timestamp?: InputMaybe; + timestamp_gt?: InputMaybe; + timestamp_gte?: InputMaybe; + timestamp_in?: InputMaybe>; + timestamp_lt?: InputMaybe; + timestamp_lte?: InputMaybe; + timestamp_not?: InputMaybe; + timestamp_not_in?: InputMaybe>; + transaction?: InputMaybe; + transaction_?: InputMaybe; + transaction_contains?: InputMaybe; + transaction_contains_nocase?: InputMaybe; + transaction_ends_with?: InputMaybe; + transaction_ends_with_nocase?: InputMaybe; + transaction_gt?: InputMaybe; + transaction_gte?: InputMaybe; + transaction_in?: InputMaybe>; + transaction_lt?: InputMaybe; + transaction_lte?: InputMaybe; + transaction_not?: InputMaybe; + transaction_not_contains?: InputMaybe; + transaction_not_contains_nocase?: InputMaybe; + transaction_not_ends_with?: InputMaybe; + transaction_not_ends_with_nocase?: InputMaybe; + transaction_not_in?: InputMaybe>; + transaction_not_starts_with?: InputMaybe; + transaction_not_starts_with_nocase?: InputMaybe; + transaction_starts_with?: InputMaybe; + transaction_starts_with_nocase?: InputMaybe; +}; + +export enum Flash_OrderBy { + Amount0 = 'amount0', + Amount0Paid = 'amount0Paid', + Amount1 = 'amount1', + Amount1Paid = 'amount1Paid', + AmountUsd = 'amountUSD', + Id = 'id', + LogIndex = 'logIndex', + Pool = 'pool', + Recipient = 'recipient', + Sender = 'sender', + Timestamp = 'timestamp', + Transaction = 'transaction' +} + +export type Mint = { + __typename?: 'Mint'; + amount: Scalars['BigInt']; + amount0: Scalars['BigDecimal']; + amount1: Scalars['BigDecimal']; + amountUSD?: Maybe; + id: Scalars['ID']; + logIndex?: Maybe; + origin: Scalars['Bytes']; + owner: Scalars['Bytes']; + pool: Pool; + sender?: Maybe; + tickLower: Scalars['BigInt']; + tickUpper: Scalars['BigInt']; + timestamp: Scalars['BigInt']; + token0: Token; + token1: Token; + transaction: Transaction; +}; + +export type Mint_Filter = { + /** Filter for the block changed event. */ + _change_block?: InputMaybe; + amount?: InputMaybe; + amount0?: InputMaybe; + amount0_gt?: InputMaybe; + amount0_gte?: InputMaybe; + amount0_in?: InputMaybe>; + amount0_lt?: InputMaybe; + amount0_lte?: InputMaybe; + amount0_not?: InputMaybe; + amount0_not_in?: InputMaybe>; + amount1?: InputMaybe; + amount1_gt?: InputMaybe; + amount1_gte?: InputMaybe; + amount1_in?: InputMaybe>; + amount1_lt?: InputMaybe; + amount1_lte?: InputMaybe; + amount1_not?: InputMaybe; + amount1_not_in?: InputMaybe>; + amountUSD?: InputMaybe; + amountUSD_gt?: InputMaybe; + amountUSD_gte?: InputMaybe; + amountUSD_in?: InputMaybe>; + amountUSD_lt?: InputMaybe; + amountUSD_lte?: InputMaybe; + amountUSD_not?: InputMaybe; + amountUSD_not_in?: InputMaybe>; + amount_gt?: InputMaybe; + amount_gte?: InputMaybe; + amount_in?: InputMaybe>; + amount_lt?: InputMaybe; + amount_lte?: InputMaybe; + amount_not?: InputMaybe; + amount_not_in?: InputMaybe>; + id?: InputMaybe; + id_gt?: InputMaybe; + id_gte?: InputMaybe; + id_in?: InputMaybe>; + id_lt?: InputMaybe; + id_lte?: InputMaybe; + id_not?: InputMaybe; + id_not_in?: InputMaybe>; + logIndex?: InputMaybe; + logIndex_gt?: InputMaybe; + logIndex_gte?: InputMaybe; + logIndex_in?: InputMaybe>; + logIndex_lt?: InputMaybe; + logIndex_lte?: InputMaybe; + logIndex_not?: InputMaybe; + logIndex_not_in?: InputMaybe>; + origin?: InputMaybe; + origin_contains?: InputMaybe; + origin_in?: InputMaybe>; + origin_not?: InputMaybe; + origin_not_contains?: InputMaybe; + origin_not_in?: InputMaybe>; + owner?: InputMaybe; + owner_contains?: InputMaybe; + owner_in?: InputMaybe>; + owner_not?: InputMaybe; + owner_not_contains?: InputMaybe; + owner_not_in?: InputMaybe>; + pool?: InputMaybe; + pool_?: InputMaybe; + pool_contains?: InputMaybe; + pool_contains_nocase?: InputMaybe; + pool_ends_with?: InputMaybe; + pool_ends_with_nocase?: InputMaybe; + pool_gt?: InputMaybe; + pool_gte?: InputMaybe; + pool_in?: InputMaybe>; + pool_lt?: InputMaybe; + pool_lte?: InputMaybe; + pool_not?: InputMaybe; + pool_not_contains?: InputMaybe; + pool_not_contains_nocase?: InputMaybe; + pool_not_ends_with?: InputMaybe; + pool_not_ends_with_nocase?: InputMaybe; + pool_not_in?: InputMaybe>; + pool_not_starts_with?: InputMaybe; + pool_not_starts_with_nocase?: InputMaybe; + pool_starts_with?: InputMaybe; + pool_starts_with_nocase?: InputMaybe; + sender?: InputMaybe; + sender_contains?: InputMaybe; + sender_in?: InputMaybe>; + sender_not?: InputMaybe; + sender_not_contains?: InputMaybe; + sender_not_in?: InputMaybe>; + tickLower?: InputMaybe; + tickLower_gt?: InputMaybe; + tickLower_gte?: InputMaybe; + tickLower_in?: InputMaybe>; + tickLower_lt?: InputMaybe; + tickLower_lte?: InputMaybe; + tickLower_not?: InputMaybe; + tickLower_not_in?: InputMaybe>; + tickUpper?: InputMaybe; + tickUpper_gt?: InputMaybe; + tickUpper_gte?: InputMaybe; + tickUpper_in?: InputMaybe>; + tickUpper_lt?: InputMaybe; + tickUpper_lte?: InputMaybe; + tickUpper_not?: InputMaybe; + tickUpper_not_in?: InputMaybe>; + timestamp?: InputMaybe; + timestamp_gt?: InputMaybe; + timestamp_gte?: InputMaybe; + timestamp_in?: InputMaybe>; + timestamp_lt?: InputMaybe; + timestamp_lte?: InputMaybe; + timestamp_not?: InputMaybe; + timestamp_not_in?: InputMaybe>; + token0?: InputMaybe; + token0_?: InputMaybe; + token0_contains?: InputMaybe; + token0_contains_nocase?: InputMaybe; + token0_ends_with?: InputMaybe; + token0_ends_with_nocase?: InputMaybe; + token0_gt?: InputMaybe; + token0_gte?: InputMaybe; + token0_in?: InputMaybe>; + token0_lt?: InputMaybe; + token0_lte?: InputMaybe; + token0_not?: InputMaybe; + token0_not_contains?: InputMaybe; + token0_not_contains_nocase?: InputMaybe; + token0_not_ends_with?: InputMaybe; + token0_not_ends_with_nocase?: InputMaybe; + token0_not_in?: InputMaybe>; + token0_not_starts_with?: InputMaybe; + token0_not_starts_with_nocase?: InputMaybe; + token0_starts_with?: InputMaybe; + token0_starts_with_nocase?: InputMaybe; + token1?: InputMaybe; + token1_?: InputMaybe; + token1_contains?: InputMaybe; + token1_contains_nocase?: InputMaybe; + token1_ends_with?: InputMaybe; + token1_ends_with_nocase?: InputMaybe; + token1_gt?: InputMaybe; + token1_gte?: InputMaybe; + token1_in?: InputMaybe>; + token1_lt?: InputMaybe; + token1_lte?: InputMaybe; + token1_not?: InputMaybe; + token1_not_contains?: InputMaybe; + token1_not_contains_nocase?: InputMaybe; + token1_not_ends_with?: InputMaybe; + token1_not_ends_with_nocase?: InputMaybe; + token1_not_in?: InputMaybe>; + token1_not_starts_with?: InputMaybe; + token1_not_starts_with_nocase?: InputMaybe; + token1_starts_with?: InputMaybe; + token1_starts_with_nocase?: InputMaybe; + transaction?: InputMaybe; + transaction_?: InputMaybe; + transaction_contains?: InputMaybe; + transaction_contains_nocase?: InputMaybe; + transaction_ends_with?: InputMaybe; + transaction_ends_with_nocase?: InputMaybe; + transaction_gt?: InputMaybe; + transaction_gte?: InputMaybe; + transaction_in?: InputMaybe>; + transaction_lt?: InputMaybe; + transaction_lte?: InputMaybe; + transaction_not?: InputMaybe; + transaction_not_contains?: InputMaybe; + transaction_not_contains_nocase?: InputMaybe; + transaction_not_ends_with?: InputMaybe; + transaction_not_ends_with_nocase?: InputMaybe; + transaction_not_in?: InputMaybe>; + transaction_not_starts_with?: InputMaybe; + transaction_not_starts_with_nocase?: InputMaybe; + transaction_starts_with?: InputMaybe; + transaction_starts_with_nocase?: InputMaybe; +}; + +export enum Mint_OrderBy { + Amount = 'amount', + Amount0 = 'amount0', + Amount1 = 'amount1', + AmountUsd = 'amountUSD', + Id = 'id', + LogIndex = 'logIndex', + Origin = 'origin', + Owner = 'owner', + Pool = 'pool', + Sender = 'sender', + TickLower = 'tickLower', + TickUpper = 'tickUpper', + Timestamp = 'timestamp', + Token0 = 'token0', + Token1 = 'token1', + Transaction = 'transaction' +} + +/** Defines the order direction, either ascending or descending */ +export enum OrderDirection { + Asc = 'asc', + Desc = 'desc' +} + +export type Pool = { + __typename?: 'Pool'; + burns: Array; + collectedFeesToken0: Scalars['BigDecimal']; + collectedFeesToken1: Scalars['BigDecimal']; + collectedFeesUSD: Scalars['BigDecimal']; + collects: Array; + createdAtBlockNumber: Scalars['BigInt']; + createdAtTimestamp: Scalars['BigInt']; + feeGrowthGlobal0X128: Scalars['BigInt']; + feeGrowthGlobal1X128: Scalars['BigInt']; + feeTier: Scalars['BigInt']; + feesUSD: Scalars['BigDecimal']; + id: Scalars['ID']; + liquidity: Scalars['BigInt']; + liquidityProviderCount: Scalars['BigInt']; + mints: Array; + observationIndex: Scalars['BigInt']; + poolDayData: Array; + poolHourData: Array; + sqrtPrice: Scalars['BigInt']; + swaps: Array; + tick?: Maybe; + ticks: Array; + token0: Token; + token0Price: Scalars['BigDecimal']; + token1: Token; + token1Price: Scalars['BigDecimal']; + totalValueLockedETH: Scalars['BigDecimal']; + totalValueLockedToken0: Scalars['BigDecimal']; + totalValueLockedToken1: Scalars['BigDecimal']; + totalValueLockedUSD: Scalars['BigDecimal']; + totalValueLockedUSDUntracked: Scalars['BigDecimal']; + txCount: Scalars['BigInt']; + untrackedVolumeUSD: Scalars['BigDecimal']; + volumeToken0: Scalars['BigDecimal']; + volumeToken1: Scalars['BigDecimal']; + volumeUSD: Scalars['BigDecimal']; +}; + + +export type PoolBurnsArgs = { + first?: InputMaybe; + orderBy?: InputMaybe; + orderDirection?: InputMaybe; + skip?: InputMaybe; + where?: InputMaybe; +}; + + +export type PoolCollectsArgs = { + first?: InputMaybe; + orderBy?: InputMaybe; + orderDirection?: InputMaybe; + skip?: InputMaybe; + where?: InputMaybe; +}; + + +export type PoolMintsArgs = { + first?: InputMaybe; + orderBy?: InputMaybe; + orderDirection?: InputMaybe; + skip?: InputMaybe; + where?: InputMaybe; +}; + + +export type PoolPoolDayDataArgs = { + first?: InputMaybe; + orderBy?: InputMaybe; + orderDirection?: InputMaybe; + skip?: InputMaybe; + where?: InputMaybe; +}; + + +export type PoolPoolHourDataArgs = { + first?: InputMaybe; + orderBy?: InputMaybe; + orderDirection?: InputMaybe; + skip?: InputMaybe; + where?: InputMaybe; +}; + + +export type PoolSwapsArgs = { + first?: InputMaybe; + orderBy?: InputMaybe; + orderDirection?: InputMaybe; + skip?: InputMaybe; + where?: InputMaybe; +}; + + +export type PoolTicksArgs = { + first?: InputMaybe; + orderBy?: InputMaybe; + orderDirection?: InputMaybe; + skip?: InputMaybe; + where?: InputMaybe; +}; + +export type PoolDayData = { + __typename?: 'PoolDayData'; + close: Scalars['BigDecimal']; + date: Scalars['Int']; + feeGrowthGlobal0X128: Scalars['BigInt']; + feeGrowthGlobal1X128: Scalars['BigInt']; + feesUSD: Scalars['BigDecimal']; + high: Scalars['BigDecimal']; + id: Scalars['ID']; + liquidity: Scalars['BigInt']; + low: Scalars['BigDecimal']; + open: Scalars['BigDecimal']; + pool: Pool; + sqrtPrice: Scalars['BigInt']; + tick?: Maybe; + token0Price: Scalars['BigDecimal']; + token1Price: Scalars['BigDecimal']; + tvlUSD: Scalars['BigDecimal']; + txCount: Scalars['BigInt']; + volumeToken0: Scalars['BigDecimal']; + volumeToken1: Scalars['BigDecimal']; + volumeUSD: Scalars['BigDecimal']; +}; + +export type PoolDayData_Filter = { + /** Filter for the block changed event. */ + _change_block?: InputMaybe; + close?: InputMaybe; + close_gt?: InputMaybe; + close_gte?: InputMaybe; + close_in?: InputMaybe>; + close_lt?: InputMaybe; + close_lte?: InputMaybe; + close_not?: InputMaybe; + close_not_in?: InputMaybe>; + date?: InputMaybe; + date_gt?: InputMaybe; + date_gte?: InputMaybe; + date_in?: InputMaybe>; + date_lt?: InputMaybe; + date_lte?: InputMaybe; + date_not?: InputMaybe; + date_not_in?: InputMaybe>; + feeGrowthGlobal0X128?: InputMaybe; + feeGrowthGlobal0X128_gt?: InputMaybe; + feeGrowthGlobal0X128_gte?: InputMaybe; + feeGrowthGlobal0X128_in?: InputMaybe>; + feeGrowthGlobal0X128_lt?: InputMaybe; + feeGrowthGlobal0X128_lte?: InputMaybe; + feeGrowthGlobal0X128_not?: InputMaybe; + feeGrowthGlobal0X128_not_in?: InputMaybe>; + feeGrowthGlobal1X128?: InputMaybe; + feeGrowthGlobal1X128_gt?: InputMaybe; + feeGrowthGlobal1X128_gte?: InputMaybe; + feeGrowthGlobal1X128_in?: InputMaybe>; + feeGrowthGlobal1X128_lt?: InputMaybe; + feeGrowthGlobal1X128_lte?: InputMaybe; + feeGrowthGlobal1X128_not?: InputMaybe; + feeGrowthGlobal1X128_not_in?: InputMaybe>; + feesUSD?: InputMaybe; + feesUSD_gt?: InputMaybe; + feesUSD_gte?: InputMaybe; + feesUSD_in?: InputMaybe>; + feesUSD_lt?: InputMaybe; + feesUSD_lte?: InputMaybe; + feesUSD_not?: InputMaybe; + feesUSD_not_in?: InputMaybe>; + high?: InputMaybe; + high_gt?: InputMaybe; + high_gte?: InputMaybe; + high_in?: InputMaybe>; + high_lt?: InputMaybe; + high_lte?: InputMaybe; + high_not?: InputMaybe; + high_not_in?: InputMaybe>; + id?: InputMaybe; + id_gt?: InputMaybe; + id_gte?: InputMaybe; + id_in?: InputMaybe>; + id_lt?: InputMaybe; + id_lte?: InputMaybe; + id_not?: InputMaybe; + id_not_in?: InputMaybe>; + liquidity?: InputMaybe; + liquidity_gt?: InputMaybe; + liquidity_gte?: InputMaybe; + liquidity_in?: InputMaybe>; + liquidity_lt?: InputMaybe; + liquidity_lte?: InputMaybe; + liquidity_not?: InputMaybe; + liquidity_not_in?: InputMaybe>; + low?: InputMaybe; + low_gt?: InputMaybe; + low_gte?: InputMaybe; + low_in?: InputMaybe>; + low_lt?: InputMaybe; + low_lte?: InputMaybe; + low_not?: InputMaybe; + low_not_in?: InputMaybe>; + open?: InputMaybe; + open_gt?: InputMaybe; + open_gte?: InputMaybe; + open_in?: InputMaybe>; + open_lt?: InputMaybe; + open_lte?: InputMaybe; + open_not?: InputMaybe; + open_not_in?: InputMaybe>; + pool?: InputMaybe; + pool_?: InputMaybe; + pool_contains?: InputMaybe; + pool_contains_nocase?: InputMaybe; + pool_ends_with?: InputMaybe; + pool_ends_with_nocase?: InputMaybe; + pool_gt?: InputMaybe; + pool_gte?: InputMaybe; + pool_in?: InputMaybe>; + pool_lt?: InputMaybe; + pool_lte?: InputMaybe; + pool_not?: InputMaybe; + pool_not_contains?: InputMaybe; + pool_not_contains_nocase?: InputMaybe; + pool_not_ends_with?: InputMaybe; + pool_not_ends_with_nocase?: InputMaybe; + pool_not_in?: InputMaybe>; + pool_not_starts_with?: InputMaybe; + pool_not_starts_with_nocase?: InputMaybe; + pool_starts_with?: InputMaybe; + pool_starts_with_nocase?: InputMaybe; + sqrtPrice?: InputMaybe; + sqrtPrice_gt?: InputMaybe; + sqrtPrice_gte?: InputMaybe; + sqrtPrice_in?: InputMaybe>; + sqrtPrice_lt?: InputMaybe; + sqrtPrice_lte?: InputMaybe; + sqrtPrice_not?: InputMaybe; + sqrtPrice_not_in?: InputMaybe>; + tick?: InputMaybe; + tick_gt?: InputMaybe; + tick_gte?: InputMaybe; + tick_in?: InputMaybe>; + tick_lt?: InputMaybe; + tick_lte?: InputMaybe; + tick_not?: InputMaybe; + tick_not_in?: InputMaybe>; + token0Price?: InputMaybe; + token0Price_gt?: InputMaybe; + token0Price_gte?: InputMaybe; + token0Price_in?: InputMaybe>; + token0Price_lt?: InputMaybe; + token0Price_lte?: InputMaybe; + token0Price_not?: InputMaybe; + token0Price_not_in?: InputMaybe>; + token1Price?: InputMaybe; + token1Price_gt?: InputMaybe; + token1Price_gte?: InputMaybe; + token1Price_in?: InputMaybe>; + token1Price_lt?: InputMaybe; + token1Price_lte?: InputMaybe; + token1Price_not?: InputMaybe; + token1Price_not_in?: InputMaybe>; + tvlUSD?: InputMaybe; + tvlUSD_gt?: InputMaybe; + tvlUSD_gte?: InputMaybe; + tvlUSD_in?: InputMaybe>; + tvlUSD_lt?: InputMaybe; + tvlUSD_lte?: InputMaybe; + tvlUSD_not?: InputMaybe; + tvlUSD_not_in?: InputMaybe>; + txCount?: InputMaybe; + txCount_gt?: InputMaybe; + txCount_gte?: InputMaybe; + txCount_in?: InputMaybe>; + txCount_lt?: InputMaybe; + txCount_lte?: InputMaybe; + txCount_not?: InputMaybe; + txCount_not_in?: InputMaybe>; + volumeToken0?: InputMaybe; + volumeToken0_gt?: InputMaybe; + volumeToken0_gte?: InputMaybe; + volumeToken0_in?: InputMaybe>; + volumeToken0_lt?: InputMaybe; + volumeToken0_lte?: InputMaybe; + volumeToken0_not?: InputMaybe; + volumeToken0_not_in?: InputMaybe>; + volumeToken1?: InputMaybe; + volumeToken1_gt?: InputMaybe; + volumeToken1_gte?: InputMaybe; + volumeToken1_in?: InputMaybe>; + volumeToken1_lt?: InputMaybe; + volumeToken1_lte?: InputMaybe; + volumeToken1_not?: InputMaybe; + volumeToken1_not_in?: InputMaybe>; + volumeUSD?: InputMaybe; + volumeUSD_gt?: InputMaybe; + volumeUSD_gte?: InputMaybe; + volumeUSD_in?: InputMaybe>; + volumeUSD_lt?: InputMaybe; + volumeUSD_lte?: InputMaybe; + volumeUSD_not?: InputMaybe; + volumeUSD_not_in?: InputMaybe>; +}; + +export enum PoolDayData_OrderBy { + Close = 'close', + Date = 'date', + FeeGrowthGlobal0X128 = 'feeGrowthGlobal0X128', + FeeGrowthGlobal1X128 = 'feeGrowthGlobal1X128', + FeesUsd = 'feesUSD', + High = 'high', + Id = 'id', + Liquidity = 'liquidity', + Low = 'low', + Open = 'open', + Pool = 'pool', + SqrtPrice = 'sqrtPrice', + Tick = 'tick', + Token0Price = 'token0Price', + Token1Price = 'token1Price', + TvlUsd = 'tvlUSD', + TxCount = 'txCount', + VolumeToken0 = 'volumeToken0', + VolumeToken1 = 'volumeToken1', + VolumeUsd = 'volumeUSD' +} + +export type PoolHourData = { + __typename?: 'PoolHourData'; + close: Scalars['BigDecimal']; + feeGrowthGlobal0X128: Scalars['BigInt']; + feeGrowthGlobal1X128: Scalars['BigInt']; + feesUSD: Scalars['BigDecimal']; + high: Scalars['BigDecimal']; + id: Scalars['ID']; + liquidity: Scalars['BigInt']; + low: Scalars['BigDecimal']; + open: Scalars['BigDecimal']; + periodStartUnix: Scalars['Int']; + pool: Pool; + sqrtPrice: Scalars['BigInt']; + tick?: Maybe; + token0Price: Scalars['BigDecimal']; + token1Price: Scalars['BigDecimal']; + tvlUSD: Scalars['BigDecimal']; + txCount: Scalars['BigInt']; + volumeToken0: Scalars['BigDecimal']; + volumeToken1: Scalars['BigDecimal']; + volumeUSD: Scalars['BigDecimal']; +}; + +export type PoolHourData_Filter = { + /** Filter for the block changed event. */ + _change_block?: InputMaybe; + close?: InputMaybe; + close_gt?: InputMaybe; + close_gte?: InputMaybe; + close_in?: InputMaybe>; + close_lt?: InputMaybe; + close_lte?: InputMaybe; + close_not?: InputMaybe; + close_not_in?: InputMaybe>; + feeGrowthGlobal0X128?: InputMaybe; + feeGrowthGlobal0X128_gt?: InputMaybe; + feeGrowthGlobal0X128_gte?: InputMaybe; + feeGrowthGlobal0X128_in?: InputMaybe>; + feeGrowthGlobal0X128_lt?: InputMaybe; + feeGrowthGlobal0X128_lte?: InputMaybe; + feeGrowthGlobal0X128_not?: InputMaybe; + feeGrowthGlobal0X128_not_in?: InputMaybe>; + feeGrowthGlobal1X128?: InputMaybe; + feeGrowthGlobal1X128_gt?: InputMaybe; + feeGrowthGlobal1X128_gte?: InputMaybe; + feeGrowthGlobal1X128_in?: InputMaybe>; + feeGrowthGlobal1X128_lt?: InputMaybe; + feeGrowthGlobal1X128_lte?: InputMaybe; + feeGrowthGlobal1X128_not?: InputMaybe; + feeGrowthGlobal1X128_not_in?: InputMaybe>; + feesUSD?: InputMaybe; + feesUSD_gt?: InputMaybe; + feesUSD_gte?: InputMaybe; + feesUSD_in?: InputMaybe>; + feesUSD_lt?: InputMaybe; + feesUSD_lte?: InputMaybe; + feesUSD_not?: InputMaybe; + feesUSD_not_in?: InputMaybe>; + high?: InputMaybe; + high_gt?: InputMaybe; + high_gte?: InputMaybe; + high_in?: InputMaybe>; + high_lt?: InputMaybe; + high_lte?: InputMaybe; + high_not?: InputMaybe; + high_not_in?: InputMaybe>; + id?: InputMaybe; + id_gt?: InputMaybe; + id_gte?: InputMaybe; + id_in?: InputMaybe>; + id_lt?: InputMaybe; + id_lte?: InputMaybe; + id_not?: InputMaybe; + id_not_in?: InputMaybe>; + liquidity?: InputMaybe; + liquidity_gt?: InputMaybe; + liquidity_gte?: InputMaybe; + liquidity_in?: InputMaybe>; + liquidity_lt?: InputMaybe; + liquidity_lte?: InputMaybe; + liquidity_not?: InputMaybe; + liquidity_not_in?: InputMaybe>; + low?: InputMaybe; + low_gt?: InputMaybe; + low_gte?: InputMaybe; + low_in?: InputMaybe>; + low_lt?: InputMaybe; + low_lte?: InputMaybe; + low_not?: InputMaybe; + low_not_in?: InputMaybe>; + open?: InputMaybe; + open_gt?: InputMaybe; + open_gte?: InputMaybe; + open_in?: InputMaybe>; + open_lt?: InputMaybe; + open_lte?: InputMaybe; + open_not?: InputMaybe; + open_not_in?: InputMaybe>; + periodStartUnix?: InputMaybe; + periodStartUnix_gt?: InputMaybe; + periodStartUnix_gte?: InputMaybe; + periodStartUnix_in?: InputMaybe>; + periodStartUnix_lt?: InputMaybe; + periodStartUnix_lte?: InputMaybe; + periodStartUnix_not?: InputMaybe; + periodStartUnix_not_in?: InputMaybe>; + pool?: InputMaybe; + pool_?: InputMaybe; + pool_contains?: InputMaybe; + pool_contains_nocase?: InputMaybe; + pool_ends_with?: InputMaybe; + pool_ends_with_nocase?: InputMaybe; + pool_gt?: InputMaybe; + pool_gte?: InputMaybe; + pool_in?: InputMaybe>; + pool_lt?: InputMaybe; + pool_lte?: InputMaybe; + pool_not?: InputMaybe; + pool_not_contains?: InputMaybe; + pool_not_contains_nocase?: InputMaybe; + pool_not_ends_with?: InputMaybe; + pool_not_ends_with_nocase?: InputMaybe; + pool_not_in?: InputMaybe>; + pool_not_starts_with?: InputMaybe; + pool_not_starts_with_nocase?: InputMaybe; + pool_starts_with?: InputMaybe; + pool_starts_with_nocase?: InputMaybe; + sqrtPrice?: InputMaybe; + sqrtPrice_gt?: InputMaybe; + sqrtPrice_gte?: InputMaybe; + sqrtPrice_in?: InputMaybe>; + sqrtPrice_lt?: InputMaybe; + sqrtPrice_lte?: InputMaybe; + sqrtPrice_not?: InputMaybe; + sqrtPrice_not_in?: InputMaybe>; + tick?: InputMaybe; + tick_gt?: InputMaybe; + tick_gte?: InputMaybe; + tick_in?: InputMaybe>; + tick_lt?: InputMaybe; + tick_lte?: InputMaybe; + tick_not?: InputMaybe; + tick_not_in?: InputMaybe>; + token0Price?: InputMaybe; + token0Price_gt?: InputMaybe; + token0Price_gte?: InputMaybe; + token0Price_in?: InputMaybe>; + token0Price_lt?: InputMaybe; + token0Price_lte?: InputMaybe; + token0Price_not?: InputMaybe; + token0Price_not_in?: InputMaybe>; + token1Price?: InputMaybe; + token1Price_gt?: InputMaybe; + token1Price_gte?: InputMaybe; + token1Price_in?: InputMaybe>; + token1Price_lt?: InputMaybe; + token1Price_lte?: InputMaybe; + token1Price_not?: InputMaybe; + token1Price_not_in?: InputMaybe>; + tvlUSD?: InputMaybe; + tvlUSD_gt?: InputMaybe; + tvlUSD_gte?: InputMaybe; + tvlUSD_in?: InputMaybe>; + tvlUSD_lt?: InputMaybe; + tvlUSD_lte?: InputMaybe; + tvlUSD_not?: InputMaybe; + tvlUSD_not_in?: InputMaybe>; + txCount?: InputMaybe; + txCount_gt?: InputMaybe; + txCount_gte?: InputMaybe; + txCount_in?: InputMaybe>; + txCount_lt?: InputMaybe; + txCount_lte?: InputMaybe; + txCount_not?: InputMaybe; + txCount_not_in?: InputMaybe>; + volumeToken0?: InputMaybe; + volumeToken0_gt?: InputMaybe; + volumeToken0_gte?: InputMaybe; + volumeToken0_in?: InputMaybe>; + volumeToken0_lt?: InputMaybe; + volumeToken0_lte?: InputMaybe; + volumeToken0_not?: InputMaybe; + volumeToken0_not_in?: InputMaybe>; + volumeToken1?: InputMaybe; + volumeToken1_gt?: InputMaybe; + volumeToken1_gte?: InputMaybe; + volumeToken1_in?: InputMaybe>; + volumeToken1_lt?: InputMaybe; + volumeToken1_lte?: InputMaybe; + volumeToken1_not?: InputMaybe; + volumeToken1_not_in?: InputMaybe>; + volumeUSD?: InputMaybe; + volumeUSD_gt?: InputMaybe; + volumeUSD_gte?: InputMaybe; + volumeUSD_in?: InputMaybe>; + volumeUSD_lt?: InputMaybe; + volumeUSD_lte?: InputMaybe; + volumeUSD_not?: InputMaybe; + volumeUSD_not_in?: InputMaybe>; +}; + +export enum PoolHourData_OrderBy { + Close = 'close', + FeeGrowthGlobal0X128 = 'feeGrowthGlobal0X128', + FeeGrowthGlobal1X128 = 'feeGrowthGlobal1X128', + FeesUsd = 'feesUSD', + High = 'high', + Id = 'id', + Liquidity = 'liquidity', + Low = 'low', + Open = 'open', + PeriodStartUnix = 'periodStartUnix', + Pool = 'pool', + SqrtPrice = 'sqrtPrice', + Tick = 'tick', + Token0Price = 'token0Price', + Token1Price = 'token1Price', + TvlUsd = 'tvlUSD', + TxCount = 'txCount', + VolumeToken0 = 'volumeToken0', + VolumeToken1 = 'volumeToken1', + VolumeUsd = 'volumeUSD' +} + +export type Pool_Filter = { + /** Filter for the block changed event. */ + _change_block?: InputMaybe; + burns_?: InputMaybe; + collectedFeesToken0?: InputMaybe; + collectedFeesToken0_gt?: InputMaybe; + collectedFeesToken0_gte?: InputMaybe; + collectedFeesToken0_in?: InputMaybe>; + collectedFeesToken0_lt?: InputMaybe; + collectedFeesToken0_lte?: InputMaybe; + collectedFeesToken0_not?: InputMaybe; + collectedFeesToken0_not_in?: InputMaybe>; + collectedFeesToken1?: InputMaybe; + collectedFeesToken1_gt?: InputMaybe; + collectedFeesToken1_gte?: InputMaybe; + collectedFeesToken1_in?: InputMaybe>; + collectedFeesToken1_lt?: InputMaybe; + collectedFeesToken1_lte?: InputMaybe; + collectedFeesToken1_not?: InputMaybe; + collectedFeesToken1_not_in?: InputMaybe>; + collectedFeesUSD?: InputMaybe; + collectedFeesUSD_gt?: InputMaybe; + collectedFeesUSD_gte?: InputMaybe; + collectedFeesUSD_in?: InputMaybe>; + collectedFeesUSD_lt?: InputMaybe; + collectedFeesUSD_lte?: InputMaybe; + collectedFeesUSD_not?: InputMaybe; + collectedFeesUSD_not_in?: InputMaybe>; + collects_?: InputMaybe; + createdAtBlockNumber?: InputMaybe; + createdAtBlockNumber_gt?: InputMaybe; + createdAtBlockNumber_gte?: InputMaybe; + createdAtBlockNumber_in?: InputMaybe>; + createdAtBlockNumber_lt?: InputMaybe; + createdAtBlockNumber_lte?: InputMaybe; + createdAtBlockNumber_not?: InputMaybe; + createdAtBlockNumber_not_in?: InputMaybe>; + createdAtTimestamp?: InputMaybe; + createdAtTimestamp_gt?: InputMaybe; + createdAtTimestamp_gte?: InputMaybe; + createdAtTimestamp_in?: InputMaybe>; + createdAtTimestamp_lt?: InputMaybe; + createdAtTimestamp_lte?: InputMaybe; + createdAtTimestamp_not?: InputMaybe; + createdAtTimestamp_not_in?: InputMaybe>; + feeGrowthGlobal0X128?: InputMaybe; + feeGrowthGlobal0X128_gt?: InputMaybe; + feeGrowthGlobal0X128_gte?: InputMaybe; + feeGrowthGlobal0X128_in?: InputMaybe>; + feeGrowthGlobal0X128_lt?: InputMaybe; + feeGrowthGlobal0X128_lte?: InputMaybe; + feeGrowthGlobal0X128_not?: InputMaybe; + feeGrowthGlobal0X128_not_in?: InputMaybe>; + feeGrowthGlobal1X128?: InputMaybe; + feeGrowthGlobal1X128_gt?: InputMaybe; + feeGrowthGlobal1X128_gte?: InputMaybe; + feeGrowthGlobal1X128_in?: InputMaybe>; + feeGrowthGlobal1X128_lt?: InputMaybe; + feeGrowthGlobal1X128_lte?: InputMaybe; + feeGrowthGlobal1X128_not?: InputMaybe; + feeGrowthGlobal1X128_not_in?: InputMaybe>; + feeTier?: InputMaybe; + feeTier_gt?: InputMaybe; + feeTier_gte?: InputMaybe; + feeTier_in?: InputMaybe>; + feeTier_lt?: InputMaybe; + feeTier_lte?: InputMaybe; + feeTier_not?: InputMaybe; + feeTier_not_in?: InputMaybe>; + feesUSD?: InputMaybe; + feesUSD_gt?: InputMaybe; + feesUSD_gte?: InputMaybe; + feesUSD_in?: InputMaybe>; + feesUSD_lt?: InputMaybe; + feesUSD_lte?: InputMaybe; + feesUSD_not?: InputMaybe; + feesUSD_not_in?: InputMaybe>; + id?: InputMaybe; + id_gt?: InputMaybe; + id_gte?: InputMaybe; + id_in?: InputMaybe>; + id_lt?: InputMaybe; + id_lte?: InputMaybe; + id_not?: InputMaybe; + id_not_in?: InputMaybe>; + liquidity?: InputMaybe; + liquidityProviderCount?: InputMaybe; + liquidityProviderCount_gt?: InputMaybe; + liquidityProviderCount_gte?: InputMaybe; + liquidityProviderCount_in?: InputMaybe>; + liquidityProviderCount_lt?: InputMaybe; + liquidityProviderCount_lte?: InputMaybe; + liquidityProviderCount_not?: InputMaybe; + liquidityProviderCount_not_in?: InputMaybe>; + liquidity_gt?: InputMaybe; + liquidity_gte?: InputMaybe; + liquidity_in?: InputMaybe>; + liquidity_lt?: InputMaybe; + liquidity_lte?: InputMaybe; + liquidity_not?: InputMaybe; + liquidity_not_in?: InputMaybe>; + mints_?: InputMaybe; + observationIndex?: InputMaybe; + observationIndex_gt?: InputMaybe; + observationIndex_gte?: InputMaybe; + observationIndex_in?: InputMaybe>; + observationIndex_lt?: InputMaybe; + observationIndex_lte?: InputMaybe; + observationIndex_not?: InputMaybe; + observationIndex_not_in?: InputMaybe>; + poolDayData_?: InputMaybe; + poolHourData_?: InputMaybe; + sqrtPrice?: InputMaybe; + sqrtPrice_gt?: InputMaybe; + sqrtPrice_gte?: InputMaybe; + sqrtPrice_in?: InputMaybe>; + sqrtPrice_lt?: InputMaybe; + sqrtPrice_lte?: InputMaybe; + sqrtPrice_not?: InputMaybe; + sqrtPrice_not_in?: InputMaybe>; + swaps_?: InputMaybe; + tick?: InputMaybe; + tick_gt?: InputMaybe; + tick_gte?: InputMaybe; + tick_in?: InputMaybe>; + tick_lt?: InputMaybe; + tick_lte?: InputMaybe; + tick_not?: InputMaybe; + tick_not_in?: InputMaybe>; + ticks_?: InputMaybe; + token0?: InputMaybe; + token0Price?: InputMaybe; + token0Price_gt?: InputMaybe; + token0Price_gte?: InputMaybe; + token0Price_in?: InputMaybe>; + token0Price_lt?: InputMaybe; + token0Price_lte?: InputMaybe; + token0Price_not?: InputMaybe; + token0Price_not_in?: InputMaybe>; + token0_?: InputMaybe; + token0_contains?: InputMaybe; + token0_contains_nocase?: InputMaybe; + token0_ends_with?: InputMaybe; + token0_ends_with_nocase?: InputMaybe; + token0_gt?: InputMaybe; + token0_gte?: InputMaybe; + token0_in?: InputMaybe>; + token0_lt?: InputMaybe; + token0_lte?: InputMaybe; + token0_not?: InputMaybe; + token0_not_contains?: InputMaybe; + token0_not_contains_nocase?: InputMaybe; + token0_not_ends_with?: InputMaybe; + token0_not_ends_with_nocase?: InputMaybe; + token0_not_in?: InputMaybe>; + token0_not_starts_with?: InputMaybe; + token0_not_starts_with_nocase?: InputMaybe; + token0_starts_with?: InputMaybe; + token0_starts_with_nocase?: InputMaybe; + token1?: InputMaybe; + token1Price?: InputMaybe; + token1Price_gt?: InputMaybe; + token1Price_gte?: InputMaybe; + token1Price_in?: InputMaybe>; + token1Price_lt?: InputMaybe; + token1Price_lte?: InputMaybe; + token1Price_not?: InputMaybe; + token1Price_not_in?: InputMaybe>; + token1_?: InputMaybe; + token1_contains?: InputMaybe; + token1_contains_nocase?: InputMaybe; + token1_ends_with?: InputMaybe; + token1_ends_with_nocase?: InputMaybe; + token1_gt?: InputMaybe; + token1_gte?: InputMaybe; + token1_in?: InputMaybe>; + token1_lt?: InputMaybe; + token1_lte?: InputMaybe; + token1_not?: InputMaybe; + token1_not_contains?: InputMaybe; + token1_not_contains_nocase?: InputMaybe; + token1_not_ends_with?: InputMaybe; + token1_not_ends_with_nocase?: InputMaybe; + token1_not_in?: InputMaybe>; + token1_not_starts_with?: InputMaybe; + token1_not_starts_with_nocase?: InputMaybe; + token1_starts_with?: InputMaybe; + token1_starts_with_nocase?: InputMaybe; + totalValueLockedETH?: InputMaybe; + totalValueLockedETH_gt?: InputMaybe; + totalValueLockedETH_gte?: InputMaybe; + totalValueLockedETH_in?: InputMaybe>; + totalValueLockedETH_lt?: InputMaybe; + totalValueLockedETH_lte?: InputMaybe; + totalValueLockedETH_not?: InputMaybe; + totalValueLockedETH_not_in?: InputMaybe>; + totalValueLockedToken0?: InputMaybe; + totalValueLockedToken0_gt?: InputMaybe; + totalValueLockedToken0_gte?: InputMaybe; + totalValueLockedToken0_in?: InputMaybe>; + totalValueLockedToken0_lt?: InputMaybe; + totalValueLockedToken0_lte?: InputMaybe; + totalValueLockedToken0_not?: InputMaybe; + totalValueLockedToken0_not_in?: InputMaybe>; + totalValueLockedToken1?: InputMaybe; + totalValueLockedToken1_gt?: InputMaybe; + totalValueLockedToken1_gte?: InputMaybe; + totalValueLockedToken1_in?: InputMaybe>; + totalValueLockedToken1_lt?: InputMaybe; + totalValueLockedToken1_lte?: InputMaybe; + totalValueLockedToken1_not?: InputMaybe; + totalValueLockedToken1_not_in?: InputMaybe>; + totalValueLockedUSD?: InputMaybe; + totalValueLockedUSDUntracked?: InputMaybe; + totalValueLockedUSDUntracked_gt?: InputMaybe; + totalValueLockedUSDUntracked_gte?: InputMaybe; + totalValueLockedUSDUntracked_in?: InputMaybe>; + totalValueLockedUSDUntracked_lt?: InputMaybe; + totalValueLockedUSDUntracked_lte?: InputMaybe; + totalValueLockedUSDUntracked_not?: InputMaybe; + totalValueLockedUSDUntracked_not_in?: InputMaybe>; + totalValueLockedUSD_gt?: InputMaybe; + totalValueLockedUSD_gte?: InputMaybe; + totalValueLockedUSD_in?: InputMaybe>; + totalValueLockedUSD_lt?: InputMaybe; + totalValueLockedUSD_lte?: InputMaybe; + totalValueLockedUSD_not?: InputMaybe; + totalValueLockedUSD_not_in?: InputMaybe>; + txCount?: InputMaybe; + txCount_gt?: InputMaybe; + txCount_gte?: InputMaybe; + txCount_in?: InputMaybe>; + txCount_lt?: InputMaybe; + txCount_lte?: InputMaybe; + txCount_not?: InputMaybe; + txCount_not_in?: InputMaybe>; + untrackedVolumeUSD?: InputMaybe; + untrackedVolumeUSD_gt?: InputMaybe; + untrackedVolumeUSD_gte?: InputMaybe; + untrackedVolumeUSD_in?: InputMaybe>; + untrackedVolumeUSD_lt?: InputMaybe; + untrackedVolumeUSD_lte?: InputMaybe; + untrackedVolumeUSD_not?: InputMaybe; + untrackedVolumeUSD_not_in?: InputMaybe>; + volumeToken0?: InputMaybe; + volumeToken0_gt?: InputMaybe; + volumeToken0_gte?: InputMaybe; + volumeToken0_in?: InputMaybe>; + volumeToken0_lt?: InputMaybe; + volumeToken0_lte?: InputMaybe; + volumeToken0_not?: InputMaybe; + volumeToken0_not_in?: InputMaybe>; + volumeToken1?: InputMaybe; + volumeToken1_gt?: InputMaybe; + volumeToken1_gte?: InputMaybe; + volumeToken1_in?: InputMaybe>; + volumeToken1_lt?: InputMaybe; + volumeToken1_lte?: InputMaybe; + volumeToken1_not?: InputMaybe; + volumeToken1_not_in?: InputMaybe>; + volumeUSD?: InputMaybe; + volumeUSD_gt?: InputMaybe; + volumeUSD_gte?: InputMaybe; + volumeUSD_in?: InputMaybe>; + volumeUSD_lt?: InputMaybe; + volumeUSD_lte?: InputMaybe; + volumeUSD_not?: InputMaybe; + volumeUSD_not_in?: InputMaybe>; +}; + +export enum Pool_OrderBy { + Burns = 'burns', + CollectedFeesToken0 = 'collectedFeesToken0', + CollectedFeesToken1 = 'collectedFeesToken1', + CollectedFeesUsd = 'collectedFeesUSD', + Collects = 'collects', + CreatedAtBlockNumber = 'createdAtBlockNumber', + CreatedAtTimestamp = 'createdAtTimestamp', + FeeGrowthGlobal0X128 = 'feeGrowthGlobal0X128', + FeeGrowthGlobal1X128 = 'feeGrowthGlobal1X128', + FeeTier = 'feeTier', + FeesUsd = 'feesUSD', + Id = 'id', + Liquidity = 'liquidity', + LiquidityProviderCount = 'liquidityProviderCount', + Mints = 'mints', + ObservationIndex = 'observationIndex', + PoolDayData = 'poolDayData', + PoolHourData = 'poolHourData', + SqrtPrice = 'sqrtPrice', + Swaps = 'swaps', + Tick = 'tick', + Ticks = 'ticks', + Token0 = 'token0', + Token0Price = 'token0Price', + Token1 = 'token1', + Token1Price = 'token1Price', + TotalValueLockedEth = 'totalValueLockedETH', + TotalValueLockedToken0 = 'totalValueLockedToken0', + TotalValueLockedToken1 = 'totalValueLockedToken1', + TotalValueLockedUsd = 'totalValueLockedUSD', + TotalValueLockedUsdUntracked = 'totalValueLockedUSDUntracked', + TxCount = 'txCount', + UntrackedVolumeUsd = 'untrackedVolumeUSD', + VolumeToken0 = 'volumeToken0', + VolumeToken1 = 'volumeToken1', + VolumeUsd = 'volumeUSD' +} + +export type Position = { + __typename?: 'Position'; + collectedFeesToken0: Scalars['BigDecimal']; + collectedFeesToken1: Scalars['BigDecimal']; + depositedToken0: Scalars['BigDecimal']; + depositedToken1: Scalars['BigDecimal']; + feeGrowthInside0LastX128: Scalars['BigInt']; + feeGrowthInside1LastX128: Scalars['BigInt']; + id: Scalars['ID']; + liquidity: Scalars['BigInt']; + owner: Scalars['Bytes']; + pool: Pool; + tickLower: Tick; + tickUpper: Tick; + token0: Token; + token1: Token; + transaction: Transaction; + withdrawnToken0: Scalars['BigDecimal']; + withdrawnToken1: Scalars['BigDecimal']; +}; + +export type PositionSnapshot = { + __typename?: 'PositionSnapshot'; + blockNumber: Scalars['BigInt']; + collectedFeesToken0: Scalars['BigDecimal']; + collectedFeesToken1: Scalars['BigDecimal']; + depositedToken0: Scalars['BigDecimal']; + depositedToken1: Scalars['BigDecimal']; + feeGrowthInside0LastX128: Scalars['BigInt']; + feeGrowthInside1LastX128: Scalars['BigInt']; + id: Scalars['ID']; + liquidity: Scalars['BigInt']; + owner: Scalars['Bytes']; + pool: Pool; + position: Position; + timestamp: Scalars['BigInt']; + transaction: Transaction; + withdrawnToken0: Scalars['BigDecimal']; + withdrawnToken1: Scalars['BigDecimal']; +}; + +export type PositionSnapshot_Filter = { + /** Filter for the block changed event. */ + _change_block?: InputMaybe; + blockNumber?: InputMaybe; + blockNumber_gt?: InputMaybe; + blockNumber_gte?: InputMaybe; + blockNumber_in?: InputMaybe>; + blockNumber_lt?: InputMaybe; + blockNumber_lte?: InputMaybe; + blockNumber_not?: InputMaybe; + blockNumber_not_in?: InputMaybe>; + collectedFeesToken0?: InputMaybe; + collectedFeesToken0_gt?: InputMaybe; + collectedFeesToken0_gte?: InputMaybe; + collectedFeesToken0_in?: InputMaybe>; + collectedFeesToken0_lt?: InputMaybe; + collectedFeesToken0_lte?: InputMaybe; + collectedFeesToken0_not?: InputMaybe; + collectedFeesToken0_not_in?: InputMaybe>; + collectedFeesToken1?: InputMaybe; + collectedFeesToken1_gt?: InputMaybe; + collectedFeesToken1_gte?: InputMaybe; + collectedFeesToken1_in?: InputMaybe>; + collectedFeesToken1_lt?: InputMaybe; + collectedFeesToken1_lte?: InputMaybe; + collectedFeesToken1_not?: InputMaybe; + collectedFeesToken1_not_in?: InputMaybe>; + depositedToken0?: InputMaybe; + depositedToken0_gt?: InputMaybe; + depositedToken0_gte?: InputMaybe; + depositedToken0_in?: InputMaybe>; + depositedToken0_lt?: InputMaybe; + depositedToken0_lte?: InputMaybe; + depositedToken0_not?: InputMaybe; + depositedToken0_not_in?: InputMaybe>; + depositedToken1?: InputMaybe; + depositedToken1_gt?: InputMaybe; + depositedToken1_gte?: InputMaybe; + depositedToken1_in?: InputMaybe>; + depositedToken1_lt?: InputMaybe; + depositedToken1_lte?: InputMaybe; + depositedToken1_not?: InputMaybe; + depositedToken1_not_in?: InputMaybe>; + feeGrowthInside0LastX128?: InputMaybe; + feeGrowthInside0LastX128_gt?: InputMaybe; + feeGrowthInside0LastX128_gte?: InputMaybe; + feeGrowthInside0LastX128_in?: InputMaybe>; + feeGrowthInside0LastX128_lt?: InputMaybe; + feeGrowthInside0LastX128_lte?: InputMaybe; + feeGrowthInside0LastX128_not?: InputMaybe; + feeGrowthInside0LastX128_not_in?: InputMaybe>; + feeGrowthInside1LastX128?: InputMaybe; + feeGrowthInside1LastX128_gt?: InputMaybe; + feeGrowthInside1LastX128_gte?: InputMaybe; + feeGrowthInside1LastX128_in?: InputMaybe>; + feeGrowthInside1LastX128_lt?: InputMaybe; + feeGrowthInside1LastX128_lte?: InputMaybe; + feeGrowthInside1LastX128_not?: InputMaybe; + feeGrowthInside1LastX128_not_in?: InputMaybe>; + id?: InputMaybe; + id_gt?: InputMaybe; + id_gte?: InputMaybe; + id_in?: InputMaybe>; + id_lt?: InputMaybe; + id_lte?: InputMaybe; + id_not?: InputMaybe; + id_not_in?: InputMaybe>; + liquidity?: InputMaybe; + liquidity_gt?: InputMaybe; + liquidity_gte?: InputMaybe; + liquidity_in?: InputMaybe>; + liquidity_lt?: InputMaybe; + liquidity_lte?: InputMaybe; + liquidity_not?: InputMaybe; + liquidity_not_in?: InputMaybe>; + owner?: InputMaybe; + owner_contains?: InputMaybe; + owner_in?: InputMaybe>; + owner_not?: InputMaybe; + owner_not_contains?: InputMaybe; + owner_not_in?: InputMaybe>; + pool?: InputMaybe; + pool_?: InputMaybe; + pool_contains?: InputMaybe; + pool_contains_nocase?: InputMaybe; + pool_ends_with?: InputMaybe; + pool_ends_with_nocase?: InputMaybe; + pool_gt?: InputMaybe; + pool_gte?: InputMaybe; + pool_in?: InputMaybe>; + pool_lt?: InputMaybe; + pool_lte?: InputMaybe; + pool_not?: InputMaybe; + pool_not_contains?: InputMaybe; + pool_not_contains_nocase?: InputMaybe; + pool_not_ends_with?: InputMaybe; + pool_not_ends_with_nocase?: InputMaybe; + pool_not_in?: InputMaybe>; + pool_not_starts_with?: InputMaybe; + pool_not_starts_with_nocase?: InputMaybe; + pool_starts_with?: InputMaybe; + pool_starts_with_nocase?: InputMaybe; + position?: InputMaybe; + position_?: InputMaybe; + position_contains?: InputMaybe; + position_contains_nocase?: InputMaybe; + position_ends_with?: InputMaybe; + position_ends_with_nocase?: InputMaybe; + position_gt?: InputMaybe; + position_gte?: InputMaybe; + position_in?: InputMaybe>; + position_lt?: InputMaybe; + position_lte?: InputMaybe; + position_not?: InputMaybe; + position_not_contains?: InputMaybe; + position_not_contains_nocase?: InputMaybe; + position_not_ends_with?: InputMaybe; + position_not_ends_with_nocase?: InputMaybe; + position_not_in?: InputMaybe>; + position_not_starts_with?: InputMaybe; + position_not_starts_with_nocase?: InputMaybe; + position_starts_with?: InputMaybe; + position_starts_with_nocase?: InputMaybe; + timestamp?: InputMaybe; + timestamp_gt?: InputMaybe; + timestamp_gte?: InputMaybe; + timestamp_in?: InputMaybe>; + timestamp_lt?: InputMaybe; + timestamp_lte?: InputMaybe; + timestamp_not?: InputMaybe; + timestamp_not_in?: InputMaybe>; + transaction?: InputMaybe; + transaction_?: InputMaybe; + transaction_contains?: InputMaybe; + transaction_contains_nocase?: InputMaybe; + transaction_ends_with?: InputMaybe; + transaction_ends_with_nocase?: InputMaybe; + transaction_gt?: InputMaybe; + transaction_gte?: InputMaybe; + transaction_in?: InputMaybe>; + transaction_lt?: InputMaybe; + transaction_lte?: InputMaybe; + transaction_not?: InputMaybe; + transaction_not_contains?: InputMaybe; + transaction_not_contains_nocase?: InputMaybe; + transaction_not_ends_with?: InputMaybe; + transaction_not_ends_with_nocase?: InputMaybe; + transaction_not_in?: InputMaybe>; + transaction_not_starts_with?: InputMaybe; + transaction_not_starts_with_nocase?: InputMaybe; + transaction_starts_with?: InputMaybe; + transaction_starts_with_nocase?: InputMaybe; + withdrawnToken0?: InputMaybe; + withdrawnToken0_gt?: InputMaybe; + withdrawnToken0_gte?: InputMaybe; + withdrawnToken0_in?: InputMaybe>; + withdrawnToken0_lt?: InputMaybe; + withdrawnToken0_lte?: InputMaybe; + withdrawnToken0_not?: InputMaybe; + withdrawnToken0_not_in?: InputMaybe>; + withdrawnToken1?: InputMaybe; + withdrawnToken1_gt?: InputMaybe; + withdrawnToken1_gte?: InputMaybe; + withdrawnToken1_in?: InputMaybe>; + withdrawnToken1_lt?: InputMaybe; + withdrawnToken1_lte?: InputMaybe; + withdrawnToken1_not?: InputMaybe; + withdrawnToken1_not_in?: InputMaybe>; +}; + +export enum PositionSnapshot_OrderBy { + BlockNumber = 'blockNumber', + CollectedFeesToken0 = 'collectedFeesToken0', + CollectedFeesToken1 = 'collectedFeesToken1', + DepositedToken0 = 'depositedToken0', + DepositedToken1 = 'depositedToken1', + FeeGrowthInside0LastX128 = 'feeGrowthInside0LastX128', + FeeGrowthInside1LastX128 = 'feeGrowthInside1LastX128', + Id = 'id', + Liquidity = 'liquidity', + Owner = 'owner', + Pool = 'pool', + Position = 'position', + Timestamp = 'timestamp', + Transaction = 'transaction', + WithdrawnToken0 = 'withdrawnToken0', + WithdrawnToken1 = 'withdrawnToken1' +} + +export type Position_Filter = { + /** Filter for the block changed event. */ + _change_block?: InputMaybe; + collectedFeesToken0?: InputMaybe; + collectedFeesToken0_gt?: InputMaybe; + collectedFeesToken0_gte?: InputMaybe; + collectedFeesToken0_in?: InputMaybe>; + collectedFeesToken0_lt?: InputMaybe; + collectedFeesToken0_lte?: InputMaybe; + collectedFeesToken0_not?: InputMaybe; + collectedFeesToken0_not_in?: InputMaybe>; + collectedFeesToken1?: InputMaybe; + collectedFeesToken1_gt?: InputMaybe; + collectedFeesToken1_gte?: InputMaybe; + collectedFeesToken1_in?: InputMaybe>; + collectedFeesToken1_lt?: InputMaybe; + collectedFeesToken1_lte?: InputMaybe; + collectedFeesToken1_not?: InputMaybe; + collectedFeesToken1_not_in?: InputMaybe>; + depositedToken0?: InputMaybe; + depositedToken0_gt?: InputMaybe; + depositedToken0_gte?: InputMaybe; + depositedToken0_in?: InputMaybe>; + depositedToken0_lt?: InputMaybe; + depositedToken0_lte?: InputMaybe; + depositedToken0_not?: InputMaybe; + depositedToken0_not_in?: InputMaybe>; + depositedToken1?: InputMaybe; + depositedToken1_gt?: InputMaybe; + depositedToken1_gte?: InputMaybe; + depositedToken1_in?: InputMaybe>; + depositedToken1_lt?: InputMaybe; + depositedToken1_lte?: InputMaybe; + depositedToken1_not?: InputMaybe; + depositedToken1_not_in?: InputMaybe>; + feeGrowthInside0LastX128?: InputMaybe; + feeGrowthInside0LastX128_gt?: InputMaybe; + feeGrowthInside0LastX128_gte?: InputMaybe; + feeGrowthInside0LastX128_in?: InputMaybe>; + feeGrowthInside0LastX128_lt?: InputMaybe; + feeGrowthInside0LastX128_lte?: InputMaybe; + feeGrowthInside0LastX128_not?: InputMaybe; + feeGrowthInside0LastX128_not_in?: InputMaybe>; + feeGrowthInside1LastX128?: InputMaybe; + feeGrowthInside1LastX128_gt?: InputMaybe; + feeGrowthInside1LastX128_gte?: InputMaybe; + feeGrowthInside1LastX128_in?: InputMaybe>; + feeGrowthInside1LastX128_lt?: InputMaybe; + feeGrowthInside1LastX128_lte?: InputMaybe; + feeGrowthInside1LastX128_not?: InputMaybe; + feeGrowthInside1LastX128_not_in?: InputMaybe>; + id?: InputMaybe; + id_gt?: InputMaybe; + id_gte?: InputMaybe; + id_in?: InputMaybe>; + id_lt?: InputMaybe; + id_lte?: InputMaybe; + id_not?: InputMaybe; + id_not_in?: InputMaybe>; + liquidity?: InputMaybe; + liquidity_gt?: InputMaybe; + liquidity_gte?: InputMaybe; + liquidity_in?: InputMaybe>; + liquidity_lt?: InputMaybe; + liquidity_lte?: InputMaybe; + liquidity_not?: InputMaybe; + liquidity_not_in?: InputMaybe>; + owner?: InputMaybe; + owner_contains?: InputMaybe; + owner_in?: InputMaybe>; + owner_not?: InputMaybe; + owner_not_contains?: InputMaybe; + owner_not_in?: InputMaybe>; + pool?: InputMaybe; + pool_?: InputMaybe; + pool_contains?: InputMaybe; + pool_contains_nocase?: InputMaybe; + pool_ends_with?: InputMaybe; + pool_ends_with_nocase?: InputMaybe; + pool_gt?: InputMaybe; + pool_gte?: InputMaybe; + pool_in?: InputMaybe>; + pool_lt?: InputMaybe; + pool_lte?: InputMaybe; + pool_not?: InputMaybe; + pool_not_contains?: InputMaybe; + pool_not_contains_nocase?: InputMaybe; + pool_not_ends_with?: InputMaybe; + pool_not_ends_with_nocase?: InputMaybe; + pool_not_in?: InputMaybe>; + pool_not_starts_with?: InputMaybe; + pool_not_starts_with_nocase?: InputMaybe; + pool_starts_with?: InputMaybe; + pool_starts_with_nocase?: InputMaybe; + tickLower?: InputMaybe; + tickLower_?: InputMaybe; + tickLower_contains?: InputMaybe; + tickLower_contains_nocase?: InputMaybe; + tickLower_ends_with?: InputMaybe; + tickLower_ends_with_nocase?: InputMaybe; + tickLower_gt?: InputMaybe; + tickLower_gte?: InputMaybe; + tickLower_in?: InputMaybe>; + tickLower_lt?: InputMaybe; + tickLower_lte?: InputMaybe; + tickLower_not?: InputMaybe; + tickLower_not_contains?: InputMaybe; + tickLower_not_contains_nocase?: InputMaybe; + tickLower_not_ends_with?: InputMaybe; + tickLower_not_ends_with_nocase?: InputMaybe; + tickLower_not_in?: InputMaybe>; + tickLower_not_starts_with?: InputMaybe; + tickLower_not_starts_with_nocase?: InputMaybe; + tickLower_starts_with?: InputMaybe; + tickLower_starts_with_nocase?: InputMaybe; + tickUpper?: InputMaybe; + tickUpper_?: InputMaybe; + tickUpper_contains?: InputMaybe; + tickUpper_contains_nocase?: InputMaybe; + tickUpper_ends_with?: InputMaybe; + tickUpper_ends_with_nocase?: InputMaybe; + tickUpper_gt?: InputMaybe; + tickUpper_gte?: InputMaybe; + tickUpper_in?: InputMaybe>; + tickUpper_lt?: InputMaybe; + tickUpper_lte?: InputMaybe; + tickUpper_not?: InputMaybe; + tickUpper_not_contains?: InputMaybe; + tickUpper_not_contains_nocase?: InputMaybe; + tickUpper_not_ends_with?: InputMaybe; + tickUpper_not_ends_with_nocase?: InputMaybe; + tickUpper_not_in?: InputMaybe>; + tickUpper_not_starts_with?: InputMaybe; + tickUpper_not_starts_with_nocase?: InputMaybe; + tickUpper_starts_with?: InputMaybe; + tickUpper_starts_with_nocase?: InputMaybe; + token0?: InputMaybe; + token0_?: InputMaybe; + token0_contains?: InputMaybe; + token0_contains_nocase?: InputMaybe; + token0_ends_with?: InputMaybe; + token0_ends_with_nocase?: InputMaybe; + token0_gt?: InputMaybe; + token0_gte?: InputMaybe; + token0_in?: InputMaybe>; + token0_lt?: InputMaybe; + token0_lte?: InputMaybe; + token0_not?: InputMaybe; + token0_not_contains?: InputMaybe; + token0_not_contains_nocase?: InputMaybe; + token0_not_ends_with?: InputMaybe; + token0_not_ends_with_nocase?: InputMaybe; + token0_not_in?: InputMaybe>; + token0_not_starts_with?: InputMaybe; + token0_not_starts_with_nocase?: InputMaybe; + token0_starts_with?: InputMaybe; + token0_starts_with_nocase?: InputMaybe; + token1?: InputMaybe; + token1_?: InputMaybe; + token1_contains?: InputMaybe; + token1_contains_nocase?: InputMaybe; + token1_ends_with?: InputMaybe; + token1_ends_with_nocase?: InputMaybe; + token1_gt?: InputMaybe; + token1_gte?: InputMaybe; + token1_in?: InputMaybe>; + token1_lt?: InputMaybe; + token1_lte?: InputMaybe; + token1_not?: InputMaybe; + token1_not_contains?: InputMaybe; + token1_not_contains_nocase?: InputMaybe; + token1_not_ends_with?: InputMaybe; + token1_not_ends_with_nocase?: InputMaybe; + token1_not_in?: InputMaybe>; + token1_not_starts_with?: InputMaybe; + token1_not_starts_with_nocase?: InputMaybe; + token1_starts_with?: InputMaybe; + token1_starts_with_nocase?: InputMaybe; + transaction?: InputMaybe; + transaction_?: InputMaybe; + transaction_contains?: InputMaybe; + transaction_contains_nocase?: InputMaybe; + transaction_ends_with?: InputMaybe; + transaction_ends_with_nocase?: InputMaybe; + transaction_gt?: InputMaybe; + transaction_gte?: InputMaybe; + transaction_in?: InputMaybe>; + transaction_lt?: InputMaybe; + transaction_lte?: InputMaybe; + transaction_not?: InputMaybe; + transaction_not_contains?: InputMaybe; + transaction_not_contains_nocase?: InputMaybe; + transaction_not_ends_with?: InputMaybe; + transaction_not_ends_with_nocase?: InputMaybe; + transaction_not_in?: InputMaybe>; + transaction_not_starts_with?: InputMaybe; + transaction_not_starts_with_nocase?: InputMaybe; + transaction_starts_with?: InputMaybe; + transaction_starts_with_nocase?: InputMaybe; + withdrawnToken0?: InputMaybe; + withdrawnToken0_gt?: InputMaybe; + withdrawnToken0_gte?: InputMaybe; + withdrawnToken0_in?: InputMaybe>; + withdrawnToken0_lt?: InputMaybe; + withdrawnToken0_lte?: InputMaybe; + withdrawnToken0_not?: InputMaybe; + withdrawnToken0_not_in?: InputMaybe>; + withdrawnToken1?: InputMaybe; + withdrawnToken1_gt?: InputMaybe; + withdrawnToken1_gte?: InputMaybe; + withdrawnToken1_in?: InputMaybe>; + withdrawnToken1_lt?: InputMaybe; + withdrawnToken1_lte?: InputMaybe; + withdrawnToken1_not?: InputMaybe; + withdrawnToken1_not_in?: InputMaybe>; +}; + +export enum Position_OrderBy { + CollectedFeesToken0 = 'collectedFeesToken0', + CollectedFeesToken1 = 'collectedFeesToken1', + DepositedToken0 = 'depositedToken0', + DepositedToken1 = 'depositedToken1', + FeeGrowthInside0LastX128 = 'feeGrowthInside0LastX128', + FeeGrowthInside1LastX128 = 'feeGrowthInside1LastX128', + Id = 'id', + Liquidity = 'liquidity', + Owner = 'owner', + Pool = 'pool', + TickLower = 'tickLower', + TickUpper = 'tickUpper', + Token0 = 'token0', + Token1 = 'token1', + Transaction = 'transaction', + WithdrawnToken0 = 'withdrawnToken0', + WithdrawnToken1 = 'withdrawnToken1' +} + +export type Query = { + __typename?: 'Query'; + /** Access to subgraph metadata */ + _meta?: Maybe<_Meta_>; + bundle?: Maybe; + bundles: Array; + burn?: Maybe; + burns: Array; + collect?: Maybe; + collects: Array; + factories: Array; + factory?: Maybe; + flash?: Maybe; + flashes: Array; + mint?: Maybe; + mints: Array; + pool?: Maybe; + poolDayData?: Maybe; + poolDayDatas: Array; + poolHourData?: Maybe; + poolHourDatas: Array; + pools: Array; + position?: Maybe; + positionSnapshot?: Maybe; + positionSnapshots: Array; + positions: Array; + swap?: Maybe; + swaps: Array; + tick?: Maybe; + tickDayData?: Maybe; + tickDayDatas: Array; + tickHourData?: Maybe; + tickHourDatas: Array; + ticks: Array; + token?: Maybe; + tokenDayData?: Maybe; + tokenDayDatas: Array; + tokenHourData?: Maybe; + tokenHourDatas: Array; + tokens: Array; + transaction?: Maybe; + transactions: Array; + uniswapDayData?: Maybe; + uniswapDayDatas: Array; +}; + + +export type Query_MetaArgs = { + block?: InputMaybe; +}; + + +export type QueryBundleArgs = { + block?: InputMaybe; + id: Scalars['ID']; + subgraphError?: _SubgraphErrorPolicy_; +}; + + +export type QueryBundlesArgs = { + block?: InputMaybe; + first?: InputMaybe; + orderBy?: InputMaybe; + orderDirection?: InputMaybe; + skip?: InputMaybe; + subgraphError?: _SubgraphErrorPolicy_; + where?: InputMaybe; +}; + + +export type QueryBurnArgs = { + block?: InputMaybe; + id: Scalars['ID']; + subgraphError?: _SubgraphErrorPolicy_; +}; + + +export type QueryBurnsArgs = { + block?: InputMaybe; + first?: InputMaybe; + orderBy?: InputMaybe; + orderDirection?: InputMaybe; + skip?: InputMaybe; + subgraphError?: _SubgraphErrorPolicy_; + where?: InputMaybe; +}; + + +export type QueryCollectArgs = { + block?: InputMaybe; + id: Scalars['ID']; + subgraphError?: _SubgraphErrorPolicy_; +}; + + +export type QueryCollectsArgs = { + block?: InputMaybe; + first?: InputMaybe; + orderBy?: InputMaybe; + orderDirection?: InputMaybe; + skip?: InputMaybe; + subgraphError?: _SubgraphErrorPolicy_; + where?: InputMaybe; +}; + + +export type QueryFactoriesArgs = { + block?: InputMaybe; + first?: InputMaybe; + orderBy?: InputMaybe; + orderDirection?: InputMaybe; + skip?: InputMaybe; + subgraphError?: _SubgraphErrorPolicy_; + where?: InputMaybe; +}; + + +export type QueryFactoryArgs = { + block?: InputMaybe; + id: Scalars['ID']; + subgraphError?: _SubgraphErrorPolicy_; +}; + + +export type QueryFlashArgs = { + block?: InputMaybe; + id: Scalars['ID']; + subgraphError?: _SubgraphErrorPolicy_; +}; + + +export type QueryFlashesArgs = { + block?: InputMaybe; + first?: InputMaybe; + orderBy?: InputMaybe; + orderDirection?: InputMaybe; + skip?: InputMaybe; + subgraphError?: _SubgraphErrorPolicy_; + where?: InputMaybe; +}; + + +export type QueryMintArgs = { + block?: InputMaybe; + id: Scalars['ID']; + subgraphError?: _SubgraphErrorPolicy_; +}; + + +export type QueryMintsArgs = { + block?: InputMaybe; + first?: InputMaybe; + orderBy?: InputMaybe; + orderDirection?: InputMaybe; + skip?: InputMaybe; + subgraphError?: _SubgraphErrorPolicy_; + where?: InputMaybe; +}; + + +export type QueryPoolArgs = { + block?: InputMaybe; + id: Scalars['ID']; + subgraphError?: _SubgraphErrorPolicy_; +}; + + +export type QueryPoolDayDataArgs = { + block?: InputMaybe; + id: Scalars['ID']; + subgraphError?: _SubgraphErrorPolicy_; +}; + + +export type QueryPoolDayDatasArgs = { + block?: InputMaybe; + first?: InputMaybe; + orderBy?: InputMaybe; + orderDirection?: InputMaybe; + skip?: InputMaybe; + subgraphError?: _SubgraphErrorPolicy_; + where?: InputMaybe; +}; + + +export type QueryPoolHourDataArgs = { + block?: InputMaybe; + id: Scalars['ID']; + subgraphError?: _SubgraphErrorPolicy_; +}; + + +export type QueryPoolHourDatasArgs = { + block?: InputMaybe; + first?: InputMaybe; + orderBy?: InputMaybe; + orderDirection?: InputMaybe; + skip?: InputMaybe; + subgraphError?: _SubgraphErrorPolicy_; + where?: InputMaybe; +}; + + +export type QueryPoolsArgs = { + block?: InputMaybe; + first?: InputMaybe; + orderBy?: InputMaybe; + orderDirection?: InputMaybe; + skip?: InputMaybe; + subgraphError?: _SubgraphErrorPolicy_; + where?: InputMaybe; +}; + + +export type QueryPositionArgs = { + block?: InputMaybe; + id: Scalars['ID']; + subgraphError?: _SubgraphErrorPolicy_; +}; + + +export type QueryPositionSnapshotArgs = { + block?: InputMaybe; + id: Scalars['ID']; + subgraphError?: _SubgraphErrorPolicy_; +}; + + +export type QueryPositionSnapshotsArgs = { + block?: InputMaybe; + first?: InputMaybe; + orderBy?: InputMaybe; + orderDirection?: InputMaybe; + skip?: InputMaybe; + subgraphError?: _SubgraphErrorPolicy_; + where?: InputMaybe; +}; + + +export type QueryPositionsArgs = { + block?: InputMaybe; + first?: InputMaybe; + orderBy?: InputMaybe; + orderDirection?: InputMaybe; + skip?: InputMaybe; + subgraphError?: _SubgraphErrorPolicy_; + where?: InputMaybe; +}; + + +export type QuerySwapArgs = { + block?: InputMaybe; + id: Scalars['ID']; + subgraphError?: _SubgraphErrorPolicy_; +}; + + +export type QuerySwapsArgs = { + block?: InputMaybe; + first?: InputMaybe; + orderBy?: InputMaybe; + orderDirection?: InputMaybe; + skip?: InputMaybe; + subgraphError?: _SubgraphErrorPolicy_; + where?: InputMaybe; +}; + + +export type QueryTickArgs = { + block?: InputMaybe; + id: Scalars['ID']; + subgraphError?: _SubgraphErrorPolicy_; +}; + + +export type QueryTickDayDataArgs = { + block?: InputMaybe; + id: Scalars['ID']; + subgraphError?: _SubgraphErrorPolicy_; +}; + + +export type QueryTickDayDatasArgs = { + block?: InputMaybe; + first?: InputMaybe; + orderBy?: InputMaybe; + orderDirection?: InputMaybe; + skip?: InputMaybe; + subgraphError?: _SubgraphErrorPolicy_; + where?: InputMaybe; +}; + + +export type QueryTickHourDataArgs = { + block?: InputMaybe; + id: Scalars['ID']; + subgraphError?: _SubgraphErrorPolicy_; +}; + + +export type QueryTickHourDatasArgs = { + block?: InputMaybe; + first?: InputMaybe; + orderBy?: InputMaybe; + orderDirection?: InputMaybe; + skip?: InputMaybe; + subgraphError?: _SubgraphErrorPolicy_; + where?: InputMaybe; +}; + + +export type QueryTicksArgs = { + block?: InputMaybe; + first?: InputMaybe; + orderBy?: InputMaybe; + orderDirection?: InputMaybe; + skip?: InputMaybe; + subgraphError?: _SubgraphErrorPolicy_; + where?: InputMaybe; +}; + + +export type QueryTokenArgs = { + block?: InputMaybe; + id: Scalars['ID']; + subgraphError?: _SubgraphErrorPolicy_; +}; + + +export type QueryTokenDayDataArgs = { + block?: InputMaybe; + id: Scalars['ID']; + subgraphError?: _SubgraphErrorPolicy_; +}; + + +export type QueryTokenDayDatasArgs = { + block?: InputMaybe; + first?: InputMaybe; + orderBy?: InputMaybe; + orderDirection?: InputMaybe; + skip?: InputMaybe; + subgraphError?: _SubgraphErrorPolicy_; + where?: InputMaybe; +}; + + +export type QueryTokenHourDataArgs = { + block?: InputMaybe; + id: Scalars['ID']; + subgraphError?: _SubgraphErrorPolicy_; +}; + + +export type QueryTokenHourDatasArgs = { + block?: InputMaybe; + first?: InputMaybe; + orderBy?: InputMaybe; + orderDirection?: InputMaybe; + skip?: InputMaybe; + subgraphError?: _SubgraphErrorPolicy_; + where?: InputMaybe; +}; + + +export type QueryTokensArgs = { + block?: InputMaybe; + first?: InputMaybe; + orderBy?: InputMaybe; + orderDirection?: InputMaybe; + skip?: InputMaybe; + subgraphError?: _SubgraphErrorPolicy_; + where?: InputMaybe; +}; + + +export type QueryTransactionArgs = { + block?: InputMaybe; + id: Scalars['ID']; + subgraphError?: _SubgraphErrorPolicy_; +}; + + +export type QueryTransactionsArgs = { + block?: InputMaybe; + first?: InputMaybe; + orderBy?: InputMaybe; + orderDirection?: InputMaybe; + skip?: InputMaybe; + subgraphError?: _SubgraphErrorPolicy_; + where?: InputMaybe; +}; + + +export type QueryUniswapDayDataArgs = { + block?: InputMaybe; + id: Scalars['ID']; + subgraphError?: _SubgraphErrorPolicy_; +}; + + +export type QueryUniswapDayDatasArgs = { + block?: InputMaybe; + first?: InputMaybe; + orderBy?: InputMaybe; + orderDirection?: InputMaybe; + skip?: InputMaybe; + subgraphError?: _SubgraphErrorPolicy_; + where?: InputMaybe; +}; + +export type Subscription = { + __typename?: 'Subscription'; + /** Access to subgraph metadata */ + _meta?: Maybe<_Meta_>; + bundle?: Maybe; + bundles: Array; + burn?: Maybe; + burns: Array; + collect?: Maybe; + collects: Array; + factories: Array; + factory?: Maybe; + flash?: Maybe; + flashes: Array; + mint?: Maybe; + mints: Array; + pool?: Maybe; + poolDayData?: Maybe; + poolDayDatas: Array; + poolHourData?: Maybe; + poolHourDatas: Array; + pools: Array; + position?: Maybe; + positionSnapshot?: Maybe; + positionSnapshots: Array; + positions: Array; + swap?: Maybe; + swaps: Array; + tick?: Maybe; + tickDayData?: Maybe; + tickDayDatas: Array; + tickHourData?: Maybe; + tickHourDatas: Array; + ticks: Array; + token?: Maybe; + tokenDayData?: Maybe; + tokenDayDatas: Array; + tokenHourData?: Maybe; + tokenHourDatas: Array; + tokens: Array; + transaction?: Maybe; + transactions: Array; + uniswapDayData?: Maybe; + uniswapDayDatas: Array; +}; + + +export type Subscription_MetaArgs = { + block?: InputMaybe; +}; + + +export type SubscriptionBundleArgs = { + block?: InputMaybe; + id: Scalars['ID']; + subgraphError?: _SubgraphErrorPolicy_; +}; + + +export type SubscriptionBundlesArgs = { + block?: InputMaybe; + first?: InputMaybe; + orderBy?: InputMaybe; + orderDirection?: InputMaybe; + skip?: InputMaybe; + subgraphError?: _SubgraphErrorPolicy_; + where?: InputMaybe; +}; + + +export type SubscriptionBurnArgs = { + block?: InputMaybe; + id: Scalars['ID']; + subgraphError?: _SubgraphErrorPolicy_; +}; + + +export type SubscriptionBurnsArgs = { + block?: InputMaybe; + first?: InputMaybe; + orderBy?: InputMaybe; + orderDirection?: InputMaybe; + skip?: InputMaybe; + subgraphError?: _SubgraphErrorPolicy_; + where?: InputMaybe; +}; + + +export type SubscriptionCollectArgs = { + block?: InputMaybe; + id: Scalars['ID']; + subgraphError?: _SubgraphErrorPolicy_; +}; + + +export type SubscriptionCollectsArgs = { + block?: InputMaybe; + first?: InputMaybe; + orderBy?: InputMaybe; + orderDirection?: InputMaybe; + skip?: InputMaybe; + subgraphError?: _SubgraphErrorPolicy_; + where?: InputMaybe; +}; + + +export type SubscriptionFactoriesArgs = { + block?: InputMaybe; + first?: InputMaybe; + orderBy?: InputMaybe; + orderDirection?: InputMaybe; + skip?: InputMaybe; + subgraphError?: _SubgraphErrorPolicy_; + where?: InputMaybe; +}; + + +export type SubscriptionFactoryArgs = { + block?: InputMaybe; + id: Scalars['ID']; + subgraphError?: _SubgraphErrorPolicy_; +}; + + +export type SubscriptionFlashArgs = { + block?: InputMaybe; + id: Scalars['ID']; + subgraphError?: _SubgraphErrorPolicy_; +}; + + +export type SubscriptionFlashesArgs = { + block?: InputMaybe; + first?: InputMaybe; + orderBy?: InputMaybe; + orderDirection?: InputMaybe; + skip?: InputMaybe; + subgraphError?: _SubgraphErrorPolicy_; + where?: InputMaybe; +}; + + +export type SubscriptionMintArgs = { + block?: InputMaybe; + id: Scalars['ID']; + subgraphError?: _SubgraphErrorPolicy_; +}; + + +export type SubscriptionMintsArgs = { + block?: InputMaybe; + first?: InputMaybe; + orderBy?: InputMaybe; + orderDirection?: InputMaybe; + skip?: InputMaybe; + subgraphError?: _SubgraphErrorPolicy_; + where?: InputMaybe; +}; + + +export type SubscriptionPoolArgs = { + block?: InputMaybe; + id: Scalars['ID']; + subgraphError?: _SubgraphErrorPolicy_; +}; + + +export type SubscriptionPoolDayDataArgs = { + block?: InputMaybe; + id: Scalars['ID']; + subgraphError?: _SubgraphErrorPolicy_; +}; + + +export type SubscriptionPoolDayDatasArgs = { + block?: InputMaybe; + first?: InputMaybe; + orderBy?: InputMaybe; + orderDirection?: InputMaybe; + skip?: InputMaybe; + subgraphError?: _SubgraphErrorPolicy_; + where?: InputMaybe; +}; + + +export type SubscriptionPoolHourDataArgs = { + block?: InputMaybe; + id: Scalars['ID']; + subgraphError?: _SubgraphErrorPolicy_; +}; + + +export type SubscriptionPoolHourDatasArgs = { + block?: InputMaybe; + first?: InputMaybe; + orderBy?: InputMaybe; + orderDirection?: InputMaybe; + skip?: InputMaybe; + subgraphError?: _SubgraphErrorPolicy_; + where?: InputMaybe; +}; + + +export type SubscriptionPoolsArgs = { + block?: InputMaybe; + first?: InputMaybe; + orderBy?: InputMaybe; + orderDirection?: InputMaybe; + skip?: InputMaybe; + subgraphError?: _SubgraphErrorPolicy_; + where?: InputMaybe; +}; + + +export type SubscriptionPositionArgs = { + block?: InputMaybe; + id: Scalars['ID']; + subgraphError?: _SubgraphErrorPolicy_; +}; + + +export type SubscriptionPositionSnapshotArgs = { + block?: InputMaybe; + id: Scalars['ID']; + subgraphError?: _SubgraphErrorPolicy_; +}; + + +export type SubscriptionPositionSnapshotsArgs = { + block?: InputMaybe; + first?: InputMaybe; + orderBy?: InputMaybe; + orderDirection?: InputMaybe; + skip?: InputMaybe; + subgraphError?: _SubgraphErrorPolicy_; + where?: InputMaybe; +}; + + +export type SubscriptionPositionsArgs = { + block?: InputMaybe; + first?: InputMaybe; + orderBy?: InputMaybe; + orderDirection?: InputMaybe; + skip?: InputMaybe; + subgraphError?: _SubgraphErrorPolicy_; + where?: InputMaybe; +}; + + +export type SubscriptionSwapArgs = { + block?: InputMaybe; + id: Scalars['ID']; + subgraphError?: _SubgraphErrorPolicy_; +}; + + +export type SubscriptionSwapsArgs = { + block?: InputMaybe; + first?: InputMaybe; + orderBy?: InputMaybe; + orderDirection?: InputMaybe; + skip?: InputMaybe; + subgraphError?: _SubgraphErrorPolicy_; + where?: InputMaybe; +}; + + +export type SubscriptionTickArgs = { + block?: InputMaybe; + id: Scalars['ID']; + subgraphError?: _SubgraphErrorPolicy_; +}; + + +export type SubscriptionTickDayDataArgs = { + block?: InputMaybe; + id: Scalars['ID']; + subgraphError?: _SubgraphErrorPolicy_; +}; + + +export type SubscriptionTickDayDatasArgs = { + block?: InputMaybe; + first?: InputMaybe; + orderBy?: InputMaybe; + orderDirection?: InputMaybe; + skip?: InputMaybe; + subgraphError?: _SubgraphErrorPolicy_; + where?: InputMaybe; +}; + + +export type SubscriptionTickHourDataArgs = { + block?: InputMaybe; + id: Scalars['ID']; + subgraphError?: _SubgraphErrorPolicy_; +}; + + +export type SubscriptionTickHourDatasArgs = { + block?: InputMaybe; + first?: InputMaybe; + orderBy?: InputMaybe; + orderDirection?: InputMaybe; + skip?: InputMaybe; + subgraphError?: _SubgraphErrorPolicy_; + where?: InputMaybe; +}; + + +export type SubscriptionTicksArgs = { + block?: InputMaybe; + first?: InputMaybe; + orderBy?: InputMaybe; + orderDirection?: InputMaybe; + skip?: InputMaybe; + subgraphError?: _SubgraphErrorPolicy_; + where?: InputMaybe; +}; + + +export type SubscriptionTokenArgs = { + block?: InputMaybe; + id: Scalars['ID']; + subgraphError?: _SubgraphErrorPolicy_; +}; + + +export type SubscriptionTokenDayDataArgs = { + block?: InputMaybe; + id: Scalars['ID']; + subgraphError?: _SubgraphErrorPolicy_; +}; + + +export type SubscriptionTokenDayDatasArgs = { + block?: InputMaybe; + first?: InputMaybe; + orderBy?: InputMaybe; + orderDirection?: InputMaybe; + skip?: InputMaybe; + subgraphError?: _SubgraphErrorPolicy_; + where?: InputMaybe; +}; + + +export type SubscriptionTokenHourDataArgs = { + block?: InputMaybe; + id: Scalars['ID']; + subgraphError?: _SubgraphErrorPolicy_; +}; + + +export type SubscriptionTokenHourDatasArgs = { + block?: InputMaybe; + first?: InputMaybe; + orderBy?: InputMaybe; + orderDirection?: InputMaybe; + skip?: InputMaybe; + subgraphError?: _SubgraphErrorPolicy_; + where?: InputMaybe; +}; + + +export type SubscriptionTokensArgs = { + block?: InputMaybe; + first?: InputMaybe; + orderBy?: InputMaybe; + orderDirection?: InputMaybe; + skip?: InputMaybe; + subgraphError?: _SubgraphErrorPolicy_; + where?: InputMaybe; +}; + + +export type SubscriptionTransactionArgs = { + block?: InputMaybe; + id: Scalars['ID']; + subgraphError?: _SubgraphErrorPolicy_; +}; + + +export type SubscriptionTransactionsArgs = { + block?: InputMaybe; + first?: InputMaybe; + orderBy?: InputMaybe; + orderDirection?: InputMaybe; + skip?: InputMaybe; + subgraphError?: _SubgraphErrorPolicy_; + where?: InputMaybe; +}; + + +export type SubscriptionUniswapDayDataArgs = { + block?: InputMaybe; + id: Scalars['ID']; + subgraphError?: _SubgraphErrorPolicy_; +}; + + +export type SubscriptionUniswapDayDatasArgs = { + block?: InputMaybe; + first?: InputMaybe; + orderBy?: InputMaybe; + orderDirection?: InputMaybe; + skip?: InputMaybe; + subgraphError?: _SubgraphErrorPolicy_; + where?: InputMaybe; +}; + +export type Swap = { + __typename?: 'Swap'; + amount0: Scalars['BigDecimal']; + amount1: Scalars['BigDecimal']; + amountUSD: Scalars['BigDecimal']; + id: Scalars['ID']; + logIndex?: Maybe; + origin: Scalars['Bytes']; + pool: Pool; + recipient: Scalars['Bytes']; + sender: Scalars['Bytes']; + sqrtPriceX96: Scalars['BigInt']; + tick: Scalars['BigInt']; + timestamp: Scalars['BigInt']; + token0: Token; + token1: Token; + transaction: Transaction; +}; + +export type Swap_Filter = { + /** Filter for the block changed event. */ + _change_block?: InputMaybe; + amount0?: InputMaybe; + amount0_gt?: InputMaybe; + amount0_gte?: InputMaybe; + amount0_in?: InputMaybe>; + amount0_lt?: InputMaybe; + amount0_lte?: InputMaybe; + amount0_not?: InputMaybe; + amount0_not_in?: InputMaybe>; + amount1?: InputMaybe; + amount1_gt?: InputMaybe; + amount1_gte?: InputMaybe; + amount1_in?: InputMaybe>; + amount1_lt?: InputMaybe; + amount1_lte?: InputMaybe; + amount1_not?: InputMaybe; + amount1_not_in?: InputMaybe>; + amountUSD?: InputMaybe; + amountUSD_gt?: InputMaybe; + amountUSD_gte?: InputMaybe; + amountUSD_in?: InputMaybe>; + amountUSD_lt?: InputMaybe; + amountUSD_lte?: InputMaybe; + amountUSD_not?: InputMaybe; + amountUSD_not_in?: InputMaybe>; + id?: InputMaybe; + id_gt?: InputMaybe; + id_gte?: InputMaybe; + id_in?: InputMaybe>; + id_lt?: InputMaybe; + id_lte?: InputMaybe; + id_not?: InputMaybe; + id_not_in?: InputMaybe>; + logIndex?: InputMaybe; + logIndex_gt?: InputMaybe; + logIndex_gte?: InputMaybe; + logIndex_in?: InputMaybe>; + logIndex_lt?: InputMaybe; + logIndex_lte?: InputMaybe; + logIndex_not?: InputMaybe; + logIndex_not_in?: InputMaybe>; + origin?: InputMaybe; + origin_contains?: InputMaybe; + origin_in?: InputMaybe>; + origin_not?: InputMaybe; + origin_not_contains?: InputMaybe; + origin_not_in?: InputMaybe>; + pool?: InputMaybe; + pool_?: InputMaybe; + pool_contains?: InputMaybe; + pool_contains_nocase?: InputMaybe; + pool_ends_with?: InputMaybe; + pool_ends_with_nocase?: InputMaybe; + pool_gt?: InputMaybe; + pool_gte?: InputMaybe; + pool_in?: InputMaybe>; + pool_lt?: InputMaybe; + pool_lte?: InputMaybe; + pool_not?: InputMaybe; + pool_not_contains?: InputMaybe; + pool_not_contains_nocase?: InputMaybe; + pool_not_ends_with?: InputMaybe; + pool_not_ends_with_nocase?: InputMaybe; + pool_not_in?: InputMaybe>; + pool_not_starts_with?: InputMaybe; + pool_not_starts_with_nocase?: InputMaybe; + pool_starts_with?: InputMaybe; + pool_starts_with_nocase?: InputMaybe; + recipient?: InputMaybe; + recipient_contains?: InputMaybe; + recipient_in?: InputMaybe>; + recipient_not?: InputMaybe; + recipient_not_contains?: InputMaybe; + recipient_not_in?: InputMaybe>; + sender?: InputMaybe; + sender_contains?: InputMaybe; + sender_in?: InputMaybe>; + sender_not?: InputMaybe; + sender_not_contains?: InputMaybe; + sender_not_in?: InputMaybe>; + sqrtPriceX96?: InputMaybe; + sqrtPriceX96_gt?: InputMaybe; + sqrtPriceX96_gte?: InputMaybe; + sqrtPriceX96_in?: InputMaybe>; + sqrtPriceX96_lt?: InputMaybe; + sqrtPriceX96_lte?: InputMaybe; + sqrtPriceX96_not?: InputMaybe; + sqrtPriceX96_not_in?: InputMaybe>; + tick?: InputMaybe; + tick_gt?: InputMaybe; + tick_gte?: InputMaybe; + tick_in?: InputMaybe>; + tick_lt?: InputMaybe; + tick_lte?: InputMaybe; + tick_not?: InputMaybe; + tick_not_in?: InputMaybe>; + timestamp?: InputMaybe; + timestamp_gt?: InputMaybe; + timestamp_gte?: InputMaybe; + timestamp_in?: InputMaybe>; + timestamp_lt?: InputMaybe; + timestamp_lte?: InputMaybe; + timestamp_not?: InputMaybe; + timestamp_not_in?: InputMaybe>; + token0?: InputMaybe; + token0_?: InputMaybe; + token0_contains?: InputMaybe; + token0_contains_nocase?: InputMaybe; + token0_ends_with?: InputMaybe; + token0_ends_with_nocase?: InputMaybe; + token0_gt?: InputMaybe; + token0_gte?: InputMaybe; + token0_in?: InputMaybe>; + token0_lt?: InputMaybe; + token0_lte?: InputMaybe; + token0_not?: InputMaybe; + token0_not_contains?: InputMaybe; + token0_not_contains_nocase?: InputMaybe; + token0_not_ends_with?: InputMaybe; + token0_not_ends_with_nocase?: InputMaybe; + token0_not_in?: InputMaybe>; + token0_not_starts_with?: InputMaybe; + token0_not_starts_with_nocase?: InputMaybe; + token0_starts_with?: InputMaybe; + token0_starts_with_nocase?: InputMaybe; + token1?: InputMaybe; + token1_?: InputMaybe; + token1_contains?: InputMaybe; + token1_contains_nocase?: InputMaybe; + token1_ends_with?: InputMaybe; + token1_ends_with_nocase?: InputMaybe; + token1_gt?: InputMaybe; + token1_gte?: InputMaybe; + token1_in?: InputMaybe>; + token1_lt?: InputMaybe; + token1_lte?: InputMaybe; + token1_not?: InputMaybe; + token1_not_contains?: InputMaybe; + token1_not_contains_nocase?: InputMaybe; + token1_not_ends_with?: InputMaybe; + token1_not_ends_with_nocase?: InputMaybe; + token1_not_in?: InputMaybe>; + token1_not_starts_with?: InputMaybe; + token1_not_starts_with_nocase?: InputMaybe; + token1_starts_with?: InputMaybe; + token1_starts_with_nocase?: InputMaybe; + transaction?: InputMaybe; + transaction_?: InputMaybe; + transaction_contains?: InputMaybe; + transaction_contains_nocase?: InputMaybe; + transaction_ends_with?: InputMaybe; + transaction_ends_with_nocase?: InputMaybe; + transaction_gt?: InputMaybe; + transaction_gte?: InputMaybe; + transaction_in?: InputMaybe>; + transaction_lt?: InputMaybe; + transaction_lte?: InputMaybe; + transaction_not?: InputMaybe; + transaction_not_contains?: InputMaybe; + transaction_not_contains_nocase?: InputMaybe; + transaction_not_ends_with?: InputMaybe; + transaction_not_ends_with_nocase?: InputMaybe; + transaction_not_in?: InputMaybe>; + transaction_not_starts_with?: InputMaybe; + transaction_not_starts_with_nocase?: InputMaybe; + transaction_starts_with?: InputMaybe; + transaction_starts_with_nocase?: InputMaybe; +}; + +export enum Swap_OrderBy { + Amount0 = 'amount0', + Amount1 = 'amount1', + AmountUsd = 'amountUSD', + Id = 'id', + LogIndex = 'logIndex', + Origin = 'origin', + Pool = 'pool', + Recipient = 'recipient', + Sender = 'sender', + SqrtPriceX96 = 'sqrtPriceX96', + Tick = 'tick', + Timestamp = 'timestamp', + Token0 = 'token0', + Token1 = 'token1', + Transaction = 'transaction' +} + +export type Tick = { + __typename?: 'Tick'; + collectedFeesToken0: Scalars['BigDecimal']; + collectedFeesToken1: Scalars['BigDecimal']; + collectedFeesUSD: Scalars['BigDecimal']; + createdAtBlockNumber: Scalars['BigInt']; + createdAtTimestamp: Scalars['BigInt']; + feeGrowthOutside0X128: Scalars['BigInt']; + feeGrowthOutside1X128: Scalars['BigInt']; + feesUSD: Scalars['BigDecimal']; + id: Scalars['ID']; + liquidityGross: Scalars['BigInt']; + liquidityNet: Scalars['BigInt']; + liquidityProviderCount: Scalars['BigInt']; + pool: Pool; + poolAddress?: Maybe; + price0: Scalars['BigDecimal']; + price1: Scalars['BigDecimal']; + tickIdx: Scalars['BigInt']; + untrackedVolumeUSD: Scalars['BigDecimal']; + volumeToken0: Scalars['BigDecimal']; + volumeToken1: Scalars['BigDecimal']; + volumeUSD: Scalars['BigDecimal']; +}; + +export type TickDayData = { + __typename?: 'TickDayData'; + date: Scalars['Int']; + feeGrowthOutside0X128: Scalars['BigInt']; + feeGrowthOutside1X128: Scalars['BigInt']; + feesUSD: Scalars['BigDecimal']; + id: Scalars['ID']; + liquidityGross: Scalars['BigInt']; + liquidityNet: Scalars['BigInt']; + pool: Pool; + tick: Tick; + volumeToken0: Scalars['BigDecimal']; + volumeToken1: Scalars['BigDecimal']; + volumeUSD: Scalars['BigDecimal']; +}; + +export type TickDayData_Filter = { + /** Filter for the block changed event. */ + _change_block?: InputMaybe; + date?: InputMaybe; + date_gt?: InputMaybe; + date_gte?: InputMaybe; + date_in?: InputMaybe>; + date_lt?: InputMaybe; + date_lte?: InputMaybe; + date_not?: InputMaybe; + date_not_in?: InputMaybe>; + feeGrowthOutside0X128?: InputMaybe; + feeGrowthOutside0X128_gt?: InputMaybe; + feeGrowthOutside0X128_gte?: InputMaybe; + feeGrowthOutside0X128_in?: InputMaybe>; + feeGrowthOutside0X128_lt?: InputMaybe; + feeGrowthOutside0X128_lte?: InputMaybe; + feeGrowthOutside0X128_not?: InputMaybe; + feeGrowthOutside0X128_not_in?: InputMaybe>; + feeGrowthOutside1X128?: InputMaybe; + feeGrowthOutside1X128_gt?: InputMaybe; + feeGrowthOutside1X128_gte?: InputMaybe; + feeGrowthOutside1X128_in?: InputMaybe>; + feeGrowthOutside1X128_lt?: InputMaybe; + feeGrowthOutside1X128_lte?: InputMaybe; + feeGrowthOutside1X128_not?: InputMaybe; + feeGrowthOutside1X128_not_in?: InputMaybe>; + feesUSD?: InputMaybe; + feesUSD_gt?: InputMaybe; + feesUSD_gte?: InputMaybe; + feesUSD_in?: InputMaybe>; + feesUSD_lt?: InputMaybe; + feesUSD_lte?: InputMaybe; + feesUSD_not?: InputMaybe; + feesUSD_not_in?: InputMaybe>; + id?: InputMaybe; + id_gt?: InputMaybe; + id_gte?: InputMaybe; + id_in?: InputMaybe>; + id_lt?: InputMaybe; + id_lte?: InputMaybe; + id_not?: InputMaybe; + id_not_in?: InputMaybe>; + liquidityGross?: InputMaybe; + liquidityGross_gt?: InputMaybe; + liquidityGross_gte?: InputMaybe; + liquidityGross_in?: InputMaybe>; + liquidityGross_lt?: InputMaybe; + liquidityGross_lte?: InputMaybe; + liquidityGross_not?: InputMaybe; + liquidityGross_not_in?: InputMaybe>; + liquidityNet?: InputMaybe; + liquidityNet_gt?: InputMaybe; + liquidityNet_gte?: InputMaybe; + liquidityNet_in?: InputMaybe>; + liquidityNet_lt?: InputMaybe; + liquidityNet_lte?: InputMaybe; + liquidityNet_not?: InputMaybe; + liquidityNet_not_in?: InputMaybe>; + pool?: InputMaybe; + pool_?: InputMaybe; + pool_contains?: InputMaybe; + pool_contains_nocase?: InputMaybe; + pool_ends_with?: InputMaybe; + pool_ends_with_nocase?: InputMaybe; + pool_gt?: InputMaybe; + pool_gte?: InputMaybe; + pool_in?: InputMaybe>; + pool_lt?: InputMaybe; + pool_lte?: InputMaybe; + pool_not?: InputMaybe; + pool_not_contains?: InputMaybe; + pool_not_contains_nocase?: InputMaybe; + pool_not_ends_with?: InputMaybe; + pool_not_ends_with_nocase?: InputMaybe; + pool_not_in?: InputMaybe>; + pool_not_starts_with?: InputMaybe; + pool_not_starts_with_nocase?: InputMaybe; + pool_starts_with?: InputMaybe; + pool_starts_with_nocase?: InputMaybe; + tick?: InputMaybe; + tick_?: InputMaybe; + tick_contains?: InputMaybe; + tick_contains_nocase?: InputMaybe; + tick_ends_with?: InputMaybe; + tick_ends_with_nocase?: InputMaybe; + tick_gt?: InputMaybe; + tick_gte?: InputMaybe; + tick_in?: InputMaybe>; + tick_lt?: InputMaybe; + tick_lte?: InputMaybe; + tick_not?: InputMaybe; + tick_not_contains?: InputMaybe; + tick_not_contains_nocase?: InputMaybe; + tick_not_ends_with?: InputMaybe; + tick_not_ends_with_nocase?: InputMaybe; + tick_not_in?: InputMaybe>; + tick_not_starts_with?: InputMaybe; + tick_not_starts_with_nocase?: InputMaybe; + tick_starts_with?: InputMaybe; + tick_starts_with_nocase?: InputMaybe; + volumeToken0?: InputMaybe; + volumeToken0_gt?: InputMaybe; + volumeToken0_gte?: InputMaybe; + volumeToken0_in?: InputMaybe>; + volumeToken0_lt?: InputMaybe; + volumeToken0_lte?: InputMaybe; + volumeToken0_not?: InputMaybe; + volumeToken0_not_in?: InputMaybe>; + volumeToken1?: InputMaybe; + volumeToken1_gt?: InputMaybe; + volumeToken1_gte?: InputMaybe; + volumeToken1_in?: InputMaybe>; + volumeToken1_lt?: InputMaybe; + volumeToken1_lte?: InputMaybe; + volumeToken1_not?: InputMaybe; + volumeToken1_not_in?: InputMaybe>; + volumeUSD?: InputMaybe; + volumeUSD_gt?: InputMaybe; + volumeUSD_gte?: InputMaybe; + volumeUSD_in?: InputMaybe>; + volumeUSD_lt?: InputMaybe; + volumeUSD_lte?: InputMaybe; + volumeUSD_not?: InputMaybe; + volumeUSD_not_in?: InputMaybe>; +}; + +export enum TickDayData_OrderBy { + Date = 'date', + FeeGrowthOutside0X128 = 'feeGrowthOutside0X128', + FeeGrowthOutside1X128 = 'feeGrowthOutside1X128', + FeesUsd = 'feesUSD', + Id = 'id', + LiquidityGross = 'liquidityGross', + LiquidityNet = 'liquidityNet', + Pool = 'pool', + Tick = 'tick', + VolumeToken0 = 'volumeToken0', + VolumeToken1 = 'volumeToken1', + VolumeUsd = 'volumeUSD' +} + +export type TickHourData = { + __typename?: 'TickHourData'; + feesUSD: Scalars['BigDecimal']; + id: Scalars['ID']; + liquidityGross: Scalars['BigInt']; + liquidityNet: Scalars['BigInt']; + periodStartUnix: Scalars['Int']; + pool: Pool; + tick: Tick; + volumeToken0: Scalars['BigDecimal']; + volumeToken1: Scalars['BigDecimal']; + volumeUSD: Scalars['BigDecimal']; +}; + +export type TickHourData_Filter = { + /** Filter for the block changed event. */ + _change_block?: InputMaybe; + feesUSD?: InputMaybe; + feesUSD_gt?: InputMaybe; + feesUSD_gte?: InputMaybe; + feesUSD_in?: InputMaybe>; + feesUSD_lt?: InputMaybe; + feesUSD_lte?: InputMaybe; + feesUSD_not?: InputMaybe; + feesUSD_not_in?: InputMaybe>; + id?: InputMaybe; + id_gt?: InputMaybe; + id_gte?: InputMaybe; + id_in?: InputMaybe>; + id_lt?: InputMaybe; + id_lte?: InputMaybe; + id_not?: InputMaybe; + id_not_in?: InputMaybe>; + liquidityGross?: InputMaybe; + liquidityGross_gt?: InputMaybe; + liquidityGross_gte?: InputMaybe; + liquidityGross_in?: InputMaybe>; + liquidityGross_lt?: InputMaybe; + liquidityGross_lte?: InputMaybe; + liquidityGross_not?: InputMaybe; + liquidityGross_not_in?: InputMaybe>; + liquidityNet?: InputMaybe; + liquidityNet_gt?: InputMaybe; + liquidityNet_gte?: InputMaybe; + liquidityNet_in?: InputMaybe>; + liquidityNet_lt?: InputMaybe; + liquidityNet_lte?: InputMaybe; + liquidityNet_not?: InputMaybe; + liquidityNet_not_in?: InputMaybe>; + periodStartUnix?: InputMaybe; + periodStartUnix_gt?: InputMaybe; + periodStartUnix_gte?: InputMaybe; + periodStartUnix_in?: InputMaybe>; + periodStartUnix_lt?: InputMaybe; + periodStartUnix_lte?: InputMaybe; + periodStartUnix_not?: InputMaybe; + periodStartUnix_not_in?: InputMaybe>; + pool?: InputMaybe; + pool_?: InputMaybe; + pool_contains?: InputMaybe; + pool_contains_nocase?: InputMaybe; + pool_ends_with?: InputMaybe; + pool_ends_with_nocase?: InputMaybe; + pool_gt?: InputMaybe; + pool_gte?: InputMaybe; + pool_in?: InputMaybe>; + pool_lt?: InputMaybe; + pool_lte?: InputMaybe; + pool_not?: InputMaybe; + pool_not_contains?: InputMaybe; + pool_not_contains_nocase?: InputMaybe; + pool_not_ends_with?: InputMaybe; + pool_not_ends_with_nocase?: InputMaybe; + pool_not_in?: InputMaybe>; + pool_not_starts_with?: InputMaybe; + pool_not_starts_with_nocase?: InputMaybe; + pool_starts_with?: InputMaybe; + pool_starts_with_nocase?: InputMaybe; + tick?: InputMaybe; + tick_?: InputMaybe; + tick_contains?: InputMaybe; + tick_contains_nocase?: InputMaybe; + tick_ends_with?: InputMaybe; + tick_ends_with_nocase?: InputMaybe; + tick_gt?: InputMaybe; + tick_gte?: InputMaybe; + tick_in?: InputMaybe>; + tick_lt?: InputMaybe; + tick_lte?: InputMaybe; + tick_not?: InputMaybe; + tick_not_contains?: InputMaybe; + tick_not_contains_nocase?: InputMaybe; + tick_not_ends_with?: InputMaybe; + tick_not_ends_with_nocase?: InputMaybe; + tick_not_in?: InputMaybe>; + tick_not_starts_with?: InputMaybe; + tick_not_starts_with_nocase?: InputMaybe; + tick_starts_with?: InputMaybe; + tick_starts_with_nocase?: InputMaybe; + volumeToken0?: InputMaybe; + volumeToken0_gt?: InputMaybe; + volumeToken0_gte?: InputMaybe; + volumeToken0_in?: InputMaybe>; + volumeToken0_lt?: InputMaybe; + volumeToken0_lte?: InputMaybe; + volumeToken0_not?: InputMaybe; + volumeToken0_not_in?: InputMaybe>; + volumeToken1?: InputMaybe; + volumeToken1_gt?: InputMaybe; + volumeToken1_gte?: InputMaybe; + volumeToken1_in?: InputMaybe>; + volumeToken1_lt?: InputMaybe; + volumeToken1_lte?: InputMaybe; + volumeToken1_not?: InputMaybe; + volumeToken1_not_in?: InputMaybe>; + volumeUSD?: InputMaybe; + volumeUSD_gt?: InputMaybe; + volumeUSD_gte?: InputMaybe; + volumeUSD_in?: InputMaybe>; + volumeUSD_lt?: InputMaybe; + volumeUSD_lte?: InputMaybe; + volumeUSD_not?: InputMaybe; + volumeUSD_not_in?: InputMaybe>; +}; + +export enum TickHourData_OrderBy { + FeesUsd = 'feesUSD', + Id = 'id', + LiquidityGross = 'liquidityGross', + LiquidityNet = 'liquidityNet', + PeriodStartUnix = 'periodStartUnix', + Pool = 'pool', + Tick = 'tick', + VolumeToken0 = 'volumeToken0', + VolumeToken1 = 'volumeToken1', + VolumeUsd = 'volumeUSD' +} + +export type Tick_Filter = { + /** Filter for the block changed event. */ + _change_block?: InputMaybe; + collectedFeesToken0?: InputMaybe; + collectedFeesToken0_gt?: InputMaybe; + collectedFeesToken0_gte?: InputMaybe; + collectedFeesToken0_in?: InputMaybe>; + collectedFeesToken0_lt?: InputMaybe; + collectedFeesToken0_lte?: InputMaybe; + collectedFeesToken0_not?: InputMaybe; + collectedFeesToken0_not_in?: InputMaybe>; + collectedFeesToken1?: InputMaybe; + collectedFeesToken1_gt?: InputMaybe; + collectedFeesToken1_gte?: InputMaybe; + collectedFeesToken1_in?: InputMaybe>; + collectedFeesToken1_lt?: InputMaybe; + collectedFeesToken1_lte?: InputMaybe; + collectedFeesToken1_not?: InputMaybe; + collectedFeesToken1_not_in?: InputMaybe>; + collectedFeesUSD?: InputMaybe; + collectedFeesUSD_gt?: InputMaybe; + collectedFeesUSD_gte?: InputMaybe; + collectedFeesUSD_in?: InputMaybe>; + collectedFeesUSD_lt?: InputMaybe; + collectedFeesUSD_lte?: InputMaybe; + collectedFeesUSD_not?: InputMaybe; + collectedFeesUSD_not_in?: InputMaybe>; + createdAtBlockNumber?: InputMaybe; + createdAtBlockNumber_gt?: InputMaybe; + createdAtBlockNumber_gte?: InputMaybe; + createdAtBlockNumber_in?: InputMaybe>; + createdAtBlockNumber_lt?: InputMaybe; + createdAtBlockNumber_lte?: InputMaybe; + createdAtBlockNumber_not?: InputMaybe; + createdAtBlockNumber_not_in?: InputMaybe>; + createdAtTimestamp?: InputMaybe; + createdAtTimestamp_gt?: InputMaybe; + createdAtTimestamp_gte?: InputMaybe; + createdAtTimestamp_in?: InputMaybe>; + createdAtTimestamp_lt?: InputMaybe; + createdAtTimestamp_lte?: InputMaybe; + createdAtTimestamp_not?: InputMaybe; + createdAtTimestamp_not_in?: InputMaybe>; + feeGrowthOutside0X128?: InputMaybe; + feeGrowthOutside0X128_gt?: InputMaybe; + feeGrowthOutside0X128_gte?: InputMaybe; + feeGrowthOutside0X128_in?: InputMaybe>; + feeGrowthOutside0X128_lt?: InputMaybe; + feeGrowthOutside0X128_lte?: InputMaybe; + feeGrowthOutside0X128_not?: InputMaybe; + feeGrowthOutside0X128_not_in?: InputMaybe>; + feeGrowthOutside1X128?: InputMaybe; + feeGrowthOutside1X128_gt?: InputMaybe; + feeGrowthOutside1X128_gte?: InputMaybe; + feeGrowthOutside1X128_in?: InputMaybe>; + feeGrowthOutside1X128_lt?: InputMaybe; + feeGrowthOutside1X128_lte?: InputMaybe; + feeGrowthOutside1X128_not?: InputMaybe; + feeGrowthOutside1X128_not_in?: InputMaybe>; + feesUSD?: InputMaybe; + feesUSD_gt?: InputMaybe; + feesUSD_gte?: InputMaybe; + feesUSD_in?: InputMaybe>; + feesUSD_lt?: InputMaybe; + feesUSD_lte?: InputMaybe; + feesUSD_not?: InputMaybe; + feesUSD_not_in?: InputMaybe>; + id?: InputMaybe; + id_gt?: InputMaybe; + id_gte?: InputMaybe; + id_in?: InputMaybe>; + id_lt?: InputMaybe; + id_lte?: InputMaybe; + id_not?: InputMaybe; + id_not_in?: InputMaybe>; + liquidityGross?: InputMaybe; + liquidityGross_gt?: InputMaybe; + liquidityGross_gte?: InputMaybe; + liquidityGross_in?: InputMaybe>; + liquidityGross_lt?: InputMaybe; + liquidityGross_lte?: InputMaybe; + liquidityGross_not?: InputMaybe; + liquidityGross_not_in?: InputMaybe>; + liquidityNet?: InputMaybe; + liquidityNet_gt?: InputMaybe; + liquidityNet_gte?: InputMaybe; + liquidityNet_in?: InputMaybe>; + liquidityNet_lt?: InputMaybe; + liquidityNet_lte?: InputMaybe; + liquidityNet_not?: InputMaybe; + liquidityNet_not_in?: InputMaybe>; + liquidityProviderCount?: InputMaybe; + liquidityProviderCount_gt?: InputMaybe; + liquidityProviderCount_gte?: InputMaybe; + liquidityProviderCount_in?: InputMaybe>; + liquidityProviderCount_lt?: InputMaybe; + liquidityProviderCount_lte?: InputMaybe; + liquidityProviderCount_not?: InputMaybe; + liquidityProviderCount_not_in?: InputMaybe>; + pool?: InputMaybe; + poolAddress?: InputMaybe; + poolAddress_contains?: InputMaybe; + poolAddress_contains_nocase?: InputMaybe; + poolAddress_ends_with?: InputMaybe; + poolAddress_ends_with_nocase?: InputMaybe; + poolAddress_gt?: InputMaybe; + poolAddress_gte?: InputMaybe; + poolAddress_in?: InputMaybe>; + poolAddress_lt?: InputMaybe; + poolAddress_lte?: InputMaybe; + poolAddress_not?: InputMaybe; + poolAddress_not_contains?: InputMaybe; + poolAddress_not_contains_nocase?: InputMaybe; + poolAddress_not_ends_with?: InputMaybe; + poolAddress_not_ends_with_nocase?: InputMaybe; + poolAddress_not_in?: InputMaybe>; + poolAddress_not_starts_with?: InputMaybe; + poolAddress_not_starts_with_nocase?: InputMaybe; + poolAddress_starts_with?: InputMaybe; + poolAddress_starts_with_nocase?: InputMaybe; + pool_?: InputMaybe; + pool_contains?: InputMaybe; + pool_contains_nocase?: InputMaybe; + pool_ends_with?: InputMaybe; + pool_ends_with_nocase?: InputMaybe; + pool_gt?: InputMaybe; + pool_gte?: InputMaybe; + pool_in?: InputMaybe>; + pool_lt?: InputMaybe; + pool_lte?: InputMaybe; + pool_not?: InputMaybe; + pool_not_contains?: InputMaybe; + pool_not_contains_nocase?: InputMaybe; + pool_not_ends_with?: InputMaybe; + pool_not_ends_with_nocase?: InputMaybe; + pool_not_in?: InputMaybe>; + pool_not_starts_with?: InputMaybe; + pool_not_starts_with_nocase?: InputMaybe; + pool_starts_with?: InputMaybe; + pool_starts_with_nocase?: InputMaybe; + price0?: InputMaybe; + price0_gt?: InputMaybe; + price0_gte?: InputMaybe; + price0_in?: InputMaybe>; + price0_lt?: InputMaybe; + price0_lte?: InputMaybe; + price0_not?: InputMaybe; + price0_not_in?: InputMaybe>; + price1?: InputMaybe; + price1_gt?: InputMaybe; + price1_gte?: InputMaybe; + price1_in?: InputMaybe>; + price1_lt?: InputMaybe; + price1_lte?: InputMaybe; + price1_not?: InputMaybe; + price1_not_in?: InputMaybe>; + tickIdx?: InputMaybe; + tickIdx_gt?: InputMaybe; + tickIdx_gte?: InputMaybe; + tickIdx_in?: InputMaybe>; + tickIdx_lt?: InputMaybe; + tickIdx_lte?: InputMaybe; + tickIdx_not?: InputMaybe; + tickIdx_not_in?: InputMaybe>; + untrackedVolumeUSD?: InputMaybe; + untrackedVolumeUSD_gt?: InputMaybe; + untrackedVolumeUSD_gte?: InputMaybe; + untrackedVolumeUSD_in?: InputMaybe>; + untrackedVolumeUSD_lt?: InputMaybe; + untrackedVolumeUSD_lte?: InputMaybe; + untrackedVolumeUSD_not?: InputMaybe; + untrackedVolumeUSD_not_in?: InputMaybe>; + volumeToken0?: InputMaybe; + volumeToken0_gt?: InputMaybe; + volumeToken0_gte?: InputMaybe; + volumeToken0_in?: InputMaybe>; + volumeToken0_lt?: InputMaybe; + volumeToken0_lte?: InputMaybe; + volumeToken0_not?: InputMaybe; + volumeToken0_not_in?: InputMaybe>; + volumeToken1?: InputMaybe; + volumeToken1_gt?: InputMaybe; + volumeToken1_gte?: InputMaybe; + volumeToken1_in?: InputMaybe>; + volumeToken1_lt?: InputMaybe; + volumeToken1_lte?: InputMaybe; + volumeToken1_not?: InputMaybe; + volumeToken1_not_in?: InputMaybe>; + volumeUSD?: InputMaybe; + volumeUSD_gt?: InputMaybe; + volumeUSD_gte?: InputMaybe; + volumeUSD_in?: InputMaybe>; + volumeUSD_lt?: InputMaybe; + volumeUSD_lte?: InputMaybe; + volumeUSD_not?: InputMaybe; + volumeUSD_not_in?: InputMaybe>; +}; + +export enum Tick_OrderBy { + CollectedFeesToken0 = 'collectedFeesToken0', + CollectedFeesToken1 = 'collectedFeesToken1', + CollectedFeesUsd = 'collectedFeesUSD', + CreatedAtBlockNumber = 'createdAtBlockNumber', + CreatedAtTimestamp = 'createdAtTimestamp', + FeeGrowthOutside0X128 = 'feeGrowthOutside0X128', + FeeGrowthOutside1X128 = 'feeGrowthOutside1X128', + FeesUsd = 'feesUSD', + Id = 'id', + LiquidityGross = 'liquidityGross', + LiquidityNet = 'liquidityNet', + LiquidityProviderCount = 'liquidityProviderCount', + Pool = 'pool', + PoolAddress = 'poolAddress', + Price0 = 'price0', + Price1 = 'price1', + TickIdx = 'tickIdx', + UntrackedVolumeUsd = 'untrackedVolumeUSD', + VolumeToken0 = 'volumeToken0', + VolumeToken1 = 'volumeToken1', + VolumeUsd = 'volumeUSD' +} + +export type Token = { + __typename?: 'Token'; + decimals: Scalars['BigInt']; + derivedETH: Scalars['BigDecimal']; + feesUSD: Scalars['BigDecimal']; + id: Scalars['ID']; + name: Scalars['String']; + poolCount: Scalars['BigInt']; + symbol: Scalars['String']; + tokenDayData: Array; + totalSupply: Scalars['BigInt']; + totalValueLocked: Scalars['BigDecimal']; + totalValueLockedUSD: Scalars['BigDecimal']; + totalValueLockedUSDUntracked: Scalars['BigDecimal']; + txCount: Scalars['BigInt']; + untrackedVolumeUSD: Scalars['BigDecimal']; + volume: Scalars['BigDecimal']; + volumeUSD: Scalars['BigDecimal']; + whitelistPools: Array; +}; + + +export type TokenTokenDayDataArgs = { + first?: InputMaybe; + orderBy?: InputMaybe; + orderDirection?: InputMaybe; + skip?: InputMaybe; + where?: InputMaybe; +}; + + +export type TokenWhitelistPoolsArgs = { + first?: InputMaybe; + orderBy?: InputMaybe; + orderDirection?: InputMaybe; + skip?: InputMaybe; + where?: InputMaybe; +}; + +export type TokenDayData = { + __typename?: 'TokenDayData'; + close: Scalars['BigDecimal']; + date: Scalars['Int']; + feesUSD: Scalars['BigDecimal']; + high: Scalars['BigDecimal']; + id: Scalars['ID']; + low: Scalars['BigDecimal']; + open: Scalars['BigDecimal']; + priceUSD: Scalars['BigDecimal']; + token: Token; + totalValueLocked: Scalars['BigDecimal']; + totalValueLockedUSD: Scalars['BigDecimal']; + untrackedVolumeUSD: Scalars['BigDecimal']; + volume: Scalars['BigDecimal']; + volumeUSD: Scalars['BigDecimal']; +}; + +export type TokenDayData_Filter = { + /** Filter for the block changed event. */ + _change_block?: InputMaybe; + close?: InputMaybe; + close_gt?: InputMaybe; + close_gte?: InputMaybe; + close_in?: InputMaybe>; + close_lt?: InputMaybe; + close_lte?: InputMaybe; + close_not?: InputMaybe; + close_not_in?: InputMaybe>; + date?: InputMaybe; + date_gt?: InputMaybe; + date_gte?: InputMaybe; + date_in?: InputMaybe>; + date_lt?: InputMaybe; + date_lte?: InputMaybe; + date_not?: InputMaybe; + date_not_in?: InputMaybe>; + feesUSD?: InputMaybe; + feesUSD_gt?: InputMaybe; + feesUSD_gte?: InputMaybe; + feesUSD_in?: InputMaybe>; + feesUSD_lt?: InputMaybe; + feesUSD_lte?: InputMaybe; + feesUSD_not?: InputMaybe; + feesUSD_not_in?: InputMaybe>; + high?: InputMaybe; + high_gt?: InputMaybe; + high_gte?: InputMaybe; + high_in?: InputMaybe>; + high_lt?: InputMaybe; + high_lte?: InputMaybe; + high_not?: InputMaybe; + high_not_in?: InputMaybe>; + id?: InputMaybe; + id_gt?: InputMaybe; + id_gte?: InputMaybe; + id_in?: InputMaybe>; + id_lt?: InputMaybe; + id_lte?: InputMaybe; + id_not?: InputMaybe; + id_not_in?: InputMaybe>; + low?: InputMaybe; + low_gt?: InputMaybe; + low_gte?: InputMaybe; + low_in?: InputMaybe>; + low_lt?: InputMaybe; + low_lte?: InputMaybe; + low_not?: InputMaybe; + low_not_in?: InputMaybe>; + open?: InputMaybe; + open_gt?: InputMaybe; + open_gte?: InputMaybe; + open_in?: InputMaybe>; + open_lt?: InputMaybe; + open_lte?: InputMaybe; + open_not?: InputMaybe; + open_not_in?: InputMaybe>; + priceUSD?: InputMaybe; + priceUSD_gt?: InputMaybe; + priceUSD_gte?: InputMaybe; + priceUSD_in?: InputMaybe>; + priceUSD_lt?: InputMaybe; + priceUSD_lte?: InputMaybe; + priceUSD_not?: InputMaybe; + priceUSD_not_in?: InputMaybe>; + token?: InputMaybe; + token_?: InputMaybe; + token_contains?: InputMaybe; + token_contains_nocase?: InputMaybe; + token_ends_with?: InputMaybe; + token_ends_with_nocase?: InputMaybe; + token_gt?: InputMaybe; + token_gte?: InputMaybe; + token_in?: InputMaybe>; + token_lt?: InputMaybe; + token_lte?: InputMaybe; + token_not?: InputMaybe; + token_not_contains?: InputMaybe; + token_not_contains_nocase?: InputMaybe; + token_not_ends_with?: InputMaybe; + token_not_ends_with_nocase?: InputMaybe; + token_not_in?: InputMaybe>; + token_not_starts_with?: InputMaybe; + token_not_starts_with_nocase?: InputMaybe; + token_starts_with?: InputMaybe; + token_starts_with_nocase?: InputMaybe; + totalValueLocked?: InputMaybe; + totalValueLockedUSD?: InputMaybe; + totalValueLockedUSD_gt?: InputMaybe; + totalValueLockedUSD_gte?: InputMaybe; + totalValueLockedUSD_in?: InputMaybe>; + totalValueLockedUSD_lt?: InputMaybe; + totalValueLockedUSD_lte?: InputMaybe; + totalValueLockedUSD_not?: InputMaybe; + totalValueLockedUSD_not_in?: InputMaybe>; + totalValueLocked_gt?: InputMaybe; + totalValueLocked_gte?: InputMaybe; + totalValueLocked_in?: InputMaybe>; + totalValueLocked_lt?: InputMaybe; + totalValueLocked_lte?: InputMaybe; + totalValueLocked_not?: InputMaybe; + totalValueLocked_not_in?: InputMaybe>; + untrackedVolumeUSD?: InputMaybe; + untrackedVolumeUSD_gt?: InputMaybe; + untrackedVolumeUSD_gte?: InputMaybe; + untrackedVolumeUSD_in?: InputMaybe>; + untrackedVolumeUSD_lt?: InputMaybe; + untrackedVolumeUSD_lte?: InputMaybe; + untrackedVolumeUSD_not?: InputMaybe; + untrackedVolumeUSD_not_in?: InputMaybe>; + volume?: InputMaybe; + volumeUSD?: InputMaybe; + volumeUSD_gt?: InputMaybe; + volumeUSD_gte?: InputMaybe; + volumeUSD_in?: InputMaybe>; + volumeUSD_lt?: InputMaybe; + volumeUSD_lte?: InputMaybe; + volumeUSD_not?: InputMaybe; + volumeUSD_not_in?: InputMaybe>; + volume_gt?: InputMaybe; + volume_gte?: InputMaybe; + volume_in?: InputMaybe>; + volume_lt?: InputMaybe; + volume_lte?: InputMaybe; + volume_not?: InputMaybe; + volume_not_in?: InputMaybe>; +}; + +export enum TokenDayData_OrderBy { + Close = 'close', + Date = 'date', + FeesUsd = 'feesUSD', + High = 'high', + Id = 'id', + Low = 'low', + Open = 'open', + PriceUsd = 'priceUSD', + Token = 'token', + TotalValueLocked = 'totalValueLocked', + TotalValueLockedUsd = 'totalValueLockedUSD', + UntrackedVolumeUsd = 'untrackedVolumeUSD', + Volume = 'volume', + VolumeUsd = 'volumeUSD' +} + +export type TokenHourData = { + __typename?: 'TokenHourData'; + close: Scalars['BigDecimal']; + feesUSD: Scalars['BigDecimal']; + high: Scalars['BigDecimal']; + id: Scalars['ID']; + low: Scalars['BigDecimal']; + open: Scalars['BigDecimal']; + periodStartUnix: Scalars['Int']; + priceUSD: Scalars['BigDecimal']; + token: Token; + totalValueLocked: Scalars['BigDecimal']; + totalValueLockedUSD: Scalars['BigDecimal']; + untrackedVolumeUSD: Scalars['BigDecimal']; + volume: Scalars['BigDecimal']; + volumeUSD: Scalars['BigDecimal']; +}; + +export type TokenHourData_Filter = { + /** Filter for the block changed event. */ + _change_block?: InputMaybe; + close?: InputMaybe; + close_gt?: InputMaybe; + close_gte?: InputMaybe; + close_in?: InputMaybe>; + close_lt?: InputMaybe; + close_lte?: InputMaybe; + close_not?: InputMaybe; + close_not_in?: InputMaybe>; + feesUSD?: InputMaybe; + feesUSD_gt?: InputMaybe; + feesUSD_gte?: InputMaybe; + feesUSD_in?: InputMaybe>; + feesUSD_lt?: InputMaybe; + feesUSD_lte?: InputMaybe; + feesUSD_not?: InputMaybe; + feesUSD_not_in?: InputMaybe>; + high?: InputMaybe; + high_gt?: InputMaybe; + high_gte?: InputMaybe; + high_in?: InputMaybe>; + high_lt?: InputMaybe; + high_lte?: InputMaybe; + high_not?: InputMaybe; + high_not_in?: InputMaybe>; + id?: InputMaybe; + id_gt?: InputMaybe; + id_gte?: InputMaybe; + id_in?: InputMaybe>; + id_lt?: InputMaybe; + id_lte?: InputMaybe; + id_not?: InputMaybe; + id_not_in?: InputMaybe>; + low?: InputMaybe; + low_gt?: InputMaybe; + low_gte?: InputMaybe; + low_in?: InputMaybe>; + low_lt?: InputMaybe; + low_lte?: InputMaybe; + low_not?: InputMaybe; + low_not_in?: InputMaybe>; + open?: InputMaybe; + open_gt?: InputMaybe; + open_gte?: InputMaybe; + open_in?: InputMaybe>; + open_lt?: InputMaybe; + open_lte?: InputMaybe; + open_not?: InputMaybe; + open_not_in?: InputMaybe>; + periodStartUnix?: InputMaybe; + periodStartUnix_gt?: InputMaybe; + periodStartUnix_gte?: InputMaybe; + periodStartUnix_in?: InputMaybe>; + periodStartUnix_lt?: InputMaybe; + periodStartUnix_lte?: InputMaybe; + periodStartUnix_not?: InputMaybe; + periodStartUnix_not_in?: InputMaybe>; + priceUSD?: InputMaybe; + priceUSD_gt?: InputMaybe; + priceUSD_gte?: InputMaybe; + priceUSD_in?: InputMaybe>; + priceUSD_lt?: InputMaybe; + priceUSD_lte?: InputMaybe; + priceUSD_not?: InputMaybe; + priceUSD_not_in?: InputMaybe>; + token?: InputMaybe; + token_?: InputMaybe; + token_contains?: InputMaybe; + token_contains_nocase?: InputMaybe; + token_ends_with?: InputMaybe; + token_ends_with_nocase?: InputMaybe; + token_gt?: InputMaybe; + token_gte?: InputMaybe; + token_in?: InputMaybe>; + token_lt?: InputMaybe; + token_lte?: InputMaybe; + token_not?: InputMaybe; + token_not_contains?: InputMaybe; + token_not_contains_nocase?: InputMaybe; + token_not_ends_with?: InputMaybe; + token_not_ends_with_nocase?: InputMaybe; + token_not_in?: InputMaybe>; + token_not_starts_with?: InputMaybe; + token_not_starts_with_nocase?: InputMaybe; + token_starts_with?: InputMaybe; + token_starts_with_nocase?: InputMaybe; + totalValueLocked?: InputMaybe; + totalValueLockedUSD?: InputMaybe; + totalValueLockedUSD_gt?: InputMaybe; + totalValueLockedUSD_gte?: InputMaybe; + totalValueLockedUSD_in?: InputMaybe>; + totalValueLockedUSD_lt?: InputMaybe; + totalValueLockedUSD_lte?: InputMaybe; + totalValueLockedUSD_not?: InputMaybe; + totalValueLockedUSD_not_in?: InputMaybe>; + totalValueLocked_gt?: InputMaybe; + totalValueLocked_gte?: InputMaybe; + totalValueLocked_in?: InputMaybe>; + totalValueLocked_lt?: InputMaybe; + totalValueLocked_lte?: InputMaybe; + totalValueLocked_not?: InputMaybe; + totalValueLocked_not_in?: InputMaybe>; + untrackedVolumeUSD?: InputMaybe; + untrackedVolumeUSD_gt?: InputMaybe; + untrackedVolumeUSD_gte?: InputMaybe; + untrackedVolumeUSD_in?: InputMaybe>; + untrackedVolumeUSD_lt?: InputMaybe; + untrackedVolumeUSD_lte?: InputMaybe; + untrackedVolumeUSD_not?: InputMaybe; + untrackedVolumeUSD_not_in?: InputMaybe>; + volume?: InputMaybe; + volumeUSD?: InputMaybe; + volumeUSD_gt?: InputMaybe; + volumeUSD_gte?: InputMaybe; + volumeUSD_in?: InputMaybe>; + volumeUSD_lt?: InputMaybe; + volumeUSD_lte?: InputMaybe; + volumeUSD_not?: InputMaybe; + volumeUSD_not_in?: InputMaybe>; + volume_gt?: InputMaybe; + volume_gte?: InputMaybe; + volume_in?: InputMaybe>; + volume_lt?: InputMaybe; + volume_lte?: InputMaybe; + volume_not?: InputMaybe; + volume_not_in?: InputMaybe>; +}; + +export enum TokenHourData_OrderBy { + Close = 'close', + FeesUsd = 'feesUSD', + High = 'high', + Id = 'id', + Low = 'low', + Open = 'open', + PeriodStartUnix = 'periodStartUnix', + PriceUsd = 'priceUSD', + Token = 'token', + TotalValueLocked = 'totalValueLocked', + TotalValueLockedUsd = 'totalValueLockedUSD', + UntrackedVolumeUsd = 'untrackedVolumeUSD', + Volume = 'volume', + VolumeUsd = 'volumeUSD' +} + +export type Token_Filter = { + /** Filter for the block changed event. */ + _change_block?: InputMaybe; + decimals?: InputMaybe; + decimals_gt?: InputMaybe; + decimals_gte?: InputMaybe; + decimals_in?: InputMaybe>; + decimals_lt?: InputMaybe; + decimals_lte?: InputMaybe; + decimals_not?: InputMaybe; + decimals_not_in?: InputMaybe>; + derivedETH?: InputMaybe; + derivedETH_gt?: InputMaybe; + derivedETH_gte?: InputMaybe; + derivedETH_in?: InputMaybe>; + derivedETH_lt?: InputMaybe; + derivedETH_lte?: InputMaybe; + derivedETH_not?: InputMaybe; + derivedETH_not_in?: InputMaybe>; + feesUSD?: InputMaybe; + feesUSD_gt?: InputMaybe; + feesUSD_gte?: InputMaybe; + feesUSD_in?: InputMaybe>; + feesUSD_lt?: InputMaybe; + feesUSD_lte?: InputMaybe; + feesUSD_not?: InputMaybe; + feesUSD_not_in?: InputMaybe>; + id?: InputMaybe; + id_gt?: InputMaybe; + id_gte?: InputMaybe; + id_in?: InputMaybe>; + id_lt?: InputMaybe; + id_lte?: InputMaybe; + id_not?: InputMaybe; + id_not_in?: InputMaybe>; + name?: InputMaybe; + name_contains?: InputMaybe; + name_contains_nocase?: InputMaybe; + name_ends_with?: InputMaybe; + name_ends_with_nocase?: InputMaybe; + name_gt?: InputMaybe; + name_gte?: InputMaybe; + name_in?: InputMaybe>; + name_lt?: InputMaybe; + name_lte?: InputMaybe; + name_not?: InputMaybe; + name_not_contains?: InputMaybe; + name_not_contains_nocase?: InputMaybe; + name_not_ends_with?: InputMaybe; + name_not_ends_with_nocase?: InputMaybe; + name_not_in?: InputMaybe>; + name_not_starts_with?: InputMaybe; + name_not_starts_with_nocase?: InputMaybe; + name_starts_with?: InputMaybe; + name_starts_with_nocase?: InputMaybe; + poolCount?: InputMaybe; + poolCount_gt?: InputMaybe; + poolCount_gte?: InputMaybe; + poolCount_in?: InputMaybe>; + poolCount_lt?: InputMaybe; + poolCount_lte?: InputMaybe; + poolCount_not?: InputMaybe; + poolCount_not_in?: InputMaybe>; + symbol?: InputMaybe; + symbol_contains?: InputMaybe; + symbol_contains_nocase?: InputMaybe; + symbol_ends_with?: InputMaybe; + symbol_ends_with_nocase?: InputMaybe; + symbol_gt?: InputMaybe; + symbol_gte?: InputMaybe; + symbol_in?: InputMaybe>; + symbol_lt?: InputMaybe; + symbol_lte?: InputMaybe; + symbol_not?: InputMaybe; + symbol_not_contains?: InputMaybe; + symbol_not_contains_nocase?: InputMaybe; + symbol_not_ends_with?: InputMaybe; + symbol_not_ends_with_nocase?: InputMaybe; + symbol_not_in?: InputMaybe>; + symbol_not_starts_with?: InputMaybe; + symbol_not_starts_with_nocase?: InputMaybe; + symbol_starts_with?: InputMaybe; + symbol_starts_with_nocase?: InputMaybe; + tokenDayData_?: InputMaybe; + totalSupply?: InputMaybe; + totalSupply_gt?: InputMaybe; + totalSupply_gte?: InputMaybe; + totalSupply_in?: InputMaybe>; + totalSupply_lt?: InputMaybe; + totalSupply_lte?: InputMaybe; + totalSupply_not?: InputMaybe; + totalSupply_not_in?: InputMaybe>; + totalValueLocked?: InputMaybe; + totalValueLockedUSD?: InputMaybe; + totalValueLockedUSDUntracked?: InputMaybe; + totalValueLockedUSDUntracked_gt?: InputMaybe; + totalValueLockedUSDUntracked_gte?: InputMaybe; + totalValueLockedUSDUntracked_in?: InputMaybe>; + totalValueLockedUSDUntracked_lt?: InputMaybe; + totalValueLockedUSDUntracked_lte?: InputMaybe; + totalValueLockedUSDUntracked_not?: InputMaybe; + totalValueLockedUSDUntracked_not_in?: InputMaybe>; + totalValueLockedUSD_gt?: InputMaybe; + totalValueLockedUSD_gte?: InputMaybe; + totalValueLockedUSD_in?: InputMaybe>; + totalValueLockedUSD_lt?: InputMaybe; + totalValueLockedUSD_lte?: InputMaybe; + totalValueLockedUSD_not?: InputMaybe; + totalValueLockedUSD_not_in?: InputMaybe>; + totalValueLocked_gt?: InputMaybe; + totalValueLocked_gte?: InputMaybe; + totalValueLocked_in?: InputMaybe>; + totalValueLocked_lt?: InputMaybe; + totalValueLocked_lte?: InputMaybe; + totalValueLocked_not?: InputMaybe; + totalValueLocked_not_in?: InputMaybe>; + txCount?: InputMaybe; + txCount_gt?: InputMaybe; + txCount_gte?: InputMaybe; + txCount_in?: InputMaybe>; + txCount_lt?: InputMaybe; + txCount_lte?: InputMaybe; + txCount_not?: InputMaybe; + txCount_not_in?: InputMaybe>; + untrackedVolumeUSD?: InputMaybe; + untrackedVolumeUSD_gt?: InputMaybe; + untrackedVolumeUSD_gte?: InputMaybe; + untrackedVolumeUSD_in?: InputMaybe>; + untrackedVolumeUSD_lt?: InputMaybe; + untrackedVolumeUSD_lte?: InputMaybe; + untrackedVolumeUSD_not?: InputMaybe; + untrackedVolumeUSD_not_in?: InputMaybe>; + volume?: InputMaybe; + volumeUSD?: InputMaybe; + volumeUSD_gt?: InputMaybe; + volumeUSD_gte?: InputMaybe; + volumeUSD_in?: InputMaybe>; + volumeUSD_lt?: InputMaybe; + volumeUSD_lte?: InputMaybe; + volumeUSD_not?: InputMaybe; + volumeUSD_not_in?: InputMaybe>; + volume_gt?: InputMaybe; + volume_gte?: InputMaybe; + volume_in?: InputMaybe>; + volume_lt?: InputMaybe; + volume_lte?: InputMaybe; + volume_not?: InputMaybe; + volume_not_in?: InputMaybe>; + whitelistPools?: InputMaybe>; + whitelistPools_?: InputMaybe; + whitelistPools_contains?: InputMaybe>; + whitelistPools_contains_nocase?: InputMaybe>; + whitelistPools_not?: InputMaybe>; + whitelistPools_not_contains?: InputMaybe>; + whitelistPools_not_contains_nocase?: InputMaybe>; +}; + +export enum Token_OrderBy { + Decimals = 'decimals', + DerivedEth = 'derivedETH', + FeesUsd = 'feesUSD', + Id = 'id', + Name = 'name', + PoolCount = 'poolCount', + Symbol = 'symbol', + TokenDayData = 'tokenDayData', + TotalSupply = 'totalSupply', + TotalValueLocked = 'totalValueLocked', + TotalValueLockedUsd = 'totalValueLockedUSD', + TotalValueLockedUsdUntracked = 'totalValueLockedUSDUntracked', + TxCount = 'txCount', + UntrackedVolumeUsd = 'untrackedVolumeUSD', + Volume = 'volume', + VolumeUsd = 'volumeUSD', + WhitelistPools = 'whitelistPools' +} + +export type Transaction = { + __typename?: 'Transaction'; + blockNumber: Scalars['BigInt']; + burns: Array>; + collects: Array>; + flashed: Array>; + gasPrice: Scalars['BigInt']; + gasUsed: Scalars['BigInt']; + id: Scalars['ID']; + mints: Array>; + swaps: Array>; + timestamp: Scalars['BigInt']; +}; + + +export type TransactionBurnsArgs = { + first?: InputMaybe; + orderBy?: InputMaybe; + orderDirection?: InputMaybe; + skip?: InputMaybe; + where?: InputMaybe; +}; + + +export type TransactionCollectsArgs = { + first?: InputMaybe; + orderBy?: InputMaybe; + orderDirection?: InputMaybe; + skip?: InputMaybe; + where?: InputMaybe; +}; + + +export type TransactionFlashedArgs = { + first?: InputMaybe; + orderBy?: InputMaybe; + orderDirection?: InputMaybe; + skip?: InputMaybe; + where?: InputMaybe; +}; + + +export type TransactionMintsArgs = { + first?: InputMaybe; + orderBy?: InputMaybe; + orderDirection?: InputMaybe; + skip?: InputMaybe; + where?: InputMaybe; +}; + + +export type TransactionSwapsArgs = { + first?: InputMaybe; + orderBy?: InputMaybe; + orderDirection?: InputMaybe; + skip?: InputMaybe; + where?: InputMaybe; +}; + +export type Transaction_Filter = { + /** Filter for the block changed event. */ + _change_block?: InputMaybe; + blockNumber?: InputMaybe; + blockNumber_gt?: InputMaybe; + blockNumber_gte?: InputMaybe; + blockNumber_in?: InputMaybe>; + blockNumber_lt?: InputMaybe; + blockNumber_lte?: InputMaybe; + blockNumber_not?: InputMaybe; + blockNumber_not_in?: InputMaybe>; + burns_?: InputMaybe; + collects_?: InputMaybe; + flashed_?: InputMaybe; + gasPrice?: InputMaybe; + gasPrice_gt?: InputMaybe; + gasPrice_gte?: InputMaybe; + gasPrice_in?: InputMaybe>; + gasPrice_lt?: InputMaybe; + gasPrice_lte?: InputMaybe; + gasPrice_not?: InputMaybe; + gasPrice_not_in?: InputMaybe>; + gasUsed?: InputMaybe; + gasUsed_gt?: InputMaybe; + gasUsed_gte?: InputMaybe; + gasUsed_in?: InputMaybe>; + gasUsed_lt?: InputMaybe; + gasUsed_lte?: InputMaybe; + gasUsed_not?: InputMaybe; + gasUsed_not_in?: InputMaybe>; + id?: InputMaybe; + id_gt?: InputMaybe; + id_gte?: InputMaybe; + id_in?: InputMaybe>; + id_lt?: InputMaybe; + id_lte?: InputMaybe; + id_not?: InputMaybe; + id_not_in?: InputMaybe>; + mints_?: InputMaybe; + swaps_?: InputMaybe; + timestamp?: InputMaybe; + timestamp_gt?: InputMaybe; + timestamp_gte?: InputMaybe; + timestamp_in?: InputMaybe>; + timestamp_lt?: InputMaybe; + timestamp_lte?: InputMaybe; + timestamp_not?: InputMaybe; + timestamp_not_in?: InputMaybe>; +}; + +export enum Transaction_OrderBy { + BlockNumber = 'blockNumber', + Burns = 'burns', + Collects = 'collects', + Flashed = 'flashed', + GasPrice = 'gasPrice', + GasUsed = 'gasUsed', + Id = 'id', + Mints = 'mints', + Swaps = 'swaps', + Timestamp = 'timestamp' +} + +export type UniswapDayData = { + __typename?: 'UniswapDayData'; + date: Scalars['Int']; + feesUSD: Scalars['BigDecimal']; + id: Scalars['ID']; + tvlUSD: Scalars['BigDecimal']; + txCount: Scalars['BigInt']; + volumeETH: Scalars['BigDecimal']; + volumeUSD: Scalars['BigDecimal']; + volumeUSDUntracked: Scalars['BigDecimal']; +}; + +export type UniswapDayData_Filter = { + /** Filter for the block changed event. */ + _change_block?: InputMaybe; + date?: InputMaybe; + date_gt?: InputMaybe; + date_gte?: InputMaybe; + date_in?: InputMaybe>; + date_lt?: InputMaybe; + date_lte?: InputMaybe; + date_not?: InputMaybe; + date_not_in?: InputMaybe>; + feesUSD?: InputMaybe; + feesUSD_gt?: InputMaybe; + feesUSD_gte?: InputMaybe; + feesUSD_in?: InputMaybe>; + feesUSD_lt?: InputMaybe; + feesUSD_lte?: InputMaybe; + feesUSD_not?: InputMaybe; + feesUSD_not_in?: InputMaybe>; + id?: InputMaybe; + id_gt?: InputMaybe; + id_gte?: InputMaybe; + id_in?: InputMaybe>; + id_lt?: InputMaybe; + id_lte?: InputMaybe; + id_not?: InputMaybe; + id_not_in?: InputMaybe>; + tvlUSD?: InputMaybe; + tvlUSD_gt?: InputMaybe; + tvlUSD_gte?: InputMaybe; + tvlUSD_in?: InputMaybe>; + tvlUSD_lt?: InputMaybe; + tvlUSD_lte?: InputMaybe; + tvlUSD_not?: InputMaybe; + tvlUSD_not_in?: InputMaybe>; + txCount?: InputMaybe; + txCount_gt?: InputMaybe; + txCount_gte?: InputMaybe; + txCount_in?: InputMaybe>; + txCount_lt?: InputMaybe; + txCount_lte?: InputMaybe; + txCount_not?: InputMaybe; + txCount_not_in?: InputMaybe>; + volumeETH?: InputMaybe; + volumeETH_gt?: InputMaybe; + volumeETH_gte?: InputMaybe; + volumeETH_in?: InputMaybe>; + volumeETH_lt?: InputMaybe; + volumeETH_lte?: InputMaybe; + volumeETH_not?: InputMaybe; + volumeETH_not_in?: InputMaybe>; + volumeUSD?: InputMaybe; + volumeUSDUntracked?: InputMaybe; + volumeUSDUntracked_gt?: InputMaybe; + volumeUSDUntracked_gte?: InputMaybe; + volumeUSDUntracked_in?: InputMaybe>; + volumeUSDUntracked_lt?: InputMaybe; + volumeUSDUntracked_lte?: InputMaybe; + volumeUSDUntracked_not?: InputMaybe; + volumeUSDUntracked_not_in?: InputMaybe>; + volumeUSD_gt?: InputMaybe; + volumeUSD_gte?: InputMaybe; + volumeUSD_in?: InputMaybe>; + volumeUSD_lt?: InputMaybe; + volumeUSD_lte?: InputMaybe; + volumeUSD_not?: InputMaybe; + volumeUSD_not_in?: InputMaybe>; +}; + +export enum UniswapDayData_OrderBy { + Date = 'date', + FeesUsd = 'feesUSD', + Id = 'id', + TvlUsd = 'tvlUSD', + TxCount = 'txCount', + VolumeEth = 'volumeETH', + VolumeUsd = 'volumeUSD', + VolumeUsdUntracked = 'volumeUSDUntracked' +} + +export type _Block_ = { + __typename?: '_Block_'; + /** The hash of the block */ + hash?: Maybe; + /** The block number */ + number: Scalars['Int']; + /** Integer representation of the timestamp stored in blocks for the chain */ + timestamp?: Maybe; +}; + +/** The type for the top-level _meta field */ +export type _Meta_ = { + __typename?: '_Meta_'; + /** + * Information about a specific subgraph block. The hash of the block + * will be null if the _meta field has a block constraint that asks for + * a block number. It will be filled if the _meta field has no block constraint + * and therefore asks for the latest block + */ + block: _Block_; + /** The deployment ID */ + deployment: Scalars['String']; + /** If `true`, the subgraph encountered indexing errors at some past block */ + hasIndexingErrors: Scalars['Boolean']; +}; + +export enum _SubgraphErrorPolicy_ { + /** Data will be returned even if the subgraph has indexing errors */ + Allow = 'allow', + /** If the subgraph has indexing errors, data will be omitted. The default. */ + Deny = 'deny' +} + +export type AllV3TicksQueryVariables = Exact<{ + poolAddress: Scalars['String']; + skip: Scalars['Int']; +}>; + + +export type AllV3TicksQuery = { __typename?: 'Query', ticks: Array<{ __typename?: 'Tick', liquidityNet: any, price0: any, price1: any, tick: any }> }; + +export type FeeTierDistributionQueryVariables = Exact<{ + token0: Scalars['String']; + token1: Scalars['String']; +}>; + + +export type FeeTierDistributionQuery = { __typename?: 'Query', _meta?: { __typename?: '_Meta_', block: { __typename?: '_Block_', number: number } }, asToken0: Array<{ __typename?: 'Pool', feeTier: any, totalValueLockedToken0: any, totalValueLockedToken1: any }>, asToken1: Array<{ __typename?: 'Pool', feeTier: any, totalValueLockedToken0: any, totalValueLockedToken1: any }> }; + + +export const AllV3TicksDocument = gql` + query AllV3Ticks($poolAddress: String!, $skip: Int!) { + ticks( + first: 1000 + skip: $skip + where: {poolAddress: $poolAddress} + orderBy: tickIdx + ) { + tick: tickIdx + liquidityNet + price0 + price1 + } +} + `; + +/** + * __useAllV3TicksQuery__ + * + * To run a query within a React component, call `useAllV3TicksQuery` and pass it any options that fit your needs. + * When your component renders, `useAllV3TicksQuery` returns an object from Apollo Client that contains loading, error, and data properties + * you can use to render your UI. + * + * @param baseOptions options that will be passed into the query, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options; + * + * @example + * const { data, loading, error } = useAllV3TicksQuery({ + * variables: { + * poolAddress: // value for 'poolAddress' + * skip: // value for 'skip' + * }, + * }); + */ +export function useAllV3TicksQuery(baseOptions: Apollo.QueryHookOptions) { + const options = {...defaultOptions, ...baseOptions} + return Apollo.useQuery(AllV3TicksDocument, options); + } +export function useAllV3TicksLazyQuery(baseOptions?: Apollo.LazyQueryHookOptions) { + const options = {...defaultOptions, ...baseOptions} + return Apollo.useLazyQuery(AllV3TicksDocument, options); + } +export type AllV3TicksQueryHookResult = ReturnType; +export type AllV3TicksLazyQueryHookResult = ReturnType; +export type AllV3TicksQueryResult = Apollo.QueryResult; +export const FeeTierDistributionDocument = gql` + query FeeTierDistribution($token0: String!, $token1: String!) { + _meta { + block { + number + } + } + asToken0: pools( + orderBy: totalValueLockedToken0 + orderDirection: desc + where: {token0: $token0, token1: $token1} + ) { + feeTier + totalValueLockedToken0 + totalValueLockedToken1 + } + asToken1: pools( + orderBy: totalValueLockedToken0 + orderDirection: desc + where: {token0: $token1, token1: $token0} + ) { + feeTier + totalValueLockedToken0 + totalValueLockedToken1 + } +} + `; + +/** + * __useFeeTierDistributionQuery__ + * + * To run a query within a React component, call `useFeeTierDistributionQuery` and pass it any options that fit your needs. + * When your component renders, `useFeeTierDistributionQuery` returns an object from Apollo Client that contains loading, error, and data properties + * you can use to render your UI. + * + * @param baseOptions options that will be passed into the query, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options; + * + * @example + * const { data, loading, error } = useFeeTierDistributionQuery({ + * variables: { + * token0: // value for 'token0' + * token1: // value for 'token1' + * }, + * }); + */ +export function useFeeTierDistributionQuery(baseOptions: Apollo.QueryHookOptions) { + const options = {...defaultOptions, ...baseOptions} + return Apollo.useQuery(FeeTierDistributionDocument, options); + } +export function useFeeTierDistributionLazyQuery(baseOptions?: Apollo.LazyQueryHookOptions) { + const options = {...defaultOptions, ...baseOptions} + return Apollo.useLazyQuery(FeeTierDistributionDocument, options); + } +export type FeeTierDistributionQueryHookResult = ReturnType; +export type FeeTierDistributionLazyQueryHookResult = ReturnType; +export type FeeTierDistributionQueryResult = Apollo.QueryResult; \ No newline at end of file diff --git a/src/graphql/thegraph/apollo.ts b/src/graphql/thegraph/apollo.ts new file mode 100644 index 0000000000..f9831b2f3d --- /dev/null +++ b/src/graphql/thegraph/apollo.ts @@ -0,0 +1,40 @@ +import { ApolloClient, ApolloLink, concat, HttpLink, InMemoryCache } from '@apollo/client' +import { SupportedChainId } from 'constants/chains' + +import store, { AppState } from '../../state/index' + +const CHAIN_SUBGRAPH_URL: Record = { + [SupportedChainId.MAINNET]: 'https://api.thegraph.com/subgraphs/name/uniswap/uniswap-v3', + [SupportedChainId.RINKEBY]: 'https://api.thegraph.com/subgraphs/name/uniswap/uniswap-v3', + + [SupportedChainId.ARBITRUM_ONE]: 'https://api.thegraph.com/subgraphs/name/ianlapham/arbitrum-minimal', + + [SupportedChainId.OPTIMISM]: 'https://api.thegraph.com/subgraphs/name/ianlapham/optimism-post-regenesis', + + [SupportedChainId.POLYGON]: 'https://api.thegraph.com/subgraphs/name/ianlapham/uniswap-v3-polygon', + + [SupportedChainId.CELO]: 'https://api.thegraph.com/subgraphs/name/jesse-sawa/uniswap-celo', +} + +const httpLink = new HttpLink({ uri: CHAIN_SUBGRAPH_URL[SupportedChainId.MAINNET] }) + +// This middleware will allow us to dynamically update the uri for the requests based off chainId +// For more information: https://www.apollographql.com/docs/react/networking/advanced-http-networking/ +const authMiddleware = new ApolloLink((operation, forward) => { + // add the authorization to the headers + const chainId = (store.getState() as AppState).application.chainId + + operation.setContext(() => ({ + uri: + chainId && CHAIN_SUBGRAPH_URL[chainId] + ? CHAIN_SUBGRAPH_URL[chainId] + : CHAIN_SUBGRAPH_URL[SupportedChainId.MAINNET], + })) + + return forward(operation) +}) + +export const apolloClient = new ApolloClient({ + cache: new InMemoryCache(), + link: concat(authMiddleware, httpLink), +}) diff --git a/src/graphql/thegraph/fetchGraphQL.ts b/src/graphql/thegraph/fetchGraphQL.ts deleted file mode 100644 index cbb8fe469d..0000000000 --- a/src/graphql/thegraph/fetchGraphQL.ts +++ /dev/null @@ -1,53 +0,0 @@ -/** - * Helpful Resources - * https://github.com/sibelius/create-react-app-relay-modern/blob/master/src/relay/fetchQuery.js - * https://github.com/relay-tools/relay-compiler-language-typescript/blob/master/example/ts/app.tsx - */ - -import { SupportedChainId } from 'constants/chains' -import { Variables } from 'react-relay' -import { GraphQLResponse, ObservableFromValue, RequestParameters } from 'relay-runtime' - -import store, { AppState } from '../../state/index' - -const CHAIN_SUBGRAPH_URL: Record = { - [SupportedChainId.MAINNET]: 'https://api.thegraph.com/subgraphs/name/uniswap/uniswap-v3', - [SupportedChainId.RINKEBY]: 'https://api.thegraph.com/subgraphs/name/uniswap/uniswap-v3', - - [SupportedChainId.ARBITRUM_ONE]: 'https://api.thegraph.com/subgraphs/name/ianlapham/arbitrum-minimal', - - [SupportedChainId.OPTIMISM]: 'https://api.thegraph.com/subgraphs/name/ianlapham/optimism-post-regenesis', - - [SupportedChainId.POLYGON]: 'https://api.thegraph.com/subgraphs/name/ianlapham/uniswap-v3-polygon', - - [SupportedChainId.CELO]: 'https://api.thegraph.com/subgraphs/name/jesse-sawa/uniswap-celo', -} - -const headers = { - Accept: 'application/json', - 'Content-type': 'application/json', -} - -// Define a function that fetches the results of a request (query/mutation/etc) -// and returns its results as a Promise: -const fetchQuery = (params: RequestParameters, variables: Variables): ObservableFromValue => { - const chainId = (store.getState() as AppState).application.chainId - - const subgraphUrl = - chainId && CHAIN_SUBGRAPH_URL[chainId] ? CHAIN_SUBGRAPH_URL[chainId] : CHAIN_SUBGRAPH_URL[SupportedChainId.MAINNET] - - const body = JSON.stringify({ - query: params.text, // GraphQL text from input - variables, - }) - - const response = fetch(subgraphUrl, { - method: 'POST', - headers, - body, - }).then((res) => res.json()) - - return response -} - -export default fetchQuery diff --git a/src/hooks/usePoolTickData.ts b/src/hooks/usePoolTickData.ts index 41d33b6f49..422225c126 100644 --- a/src/hooks/usePoolTickData.ts +++ b/src/hooks/usePoolTickData.ts @@ -165,7 +165,7 @@ function useAllV3Ticks( ): { isLoading: boolean error: unknown - ticks: readonly TickData[] | undefined + ticks: TickData[] | undefined } { const useSubgraph = currencyA ? !CHAIN_IDS_MISSING_SUBGRAPH_DATA.includes(currencyA.chainId) : true diff --git a/src/index.tsx b/src/index.tsx index 6757b81a84..d4b1997780 100644 --- a/src/index.tsx +++ b/src/index.tsx @@ -3,16 +3,16 @@ import 'inter-ui' import 'polyfills' import 'components/analytics' +import { ApolloProvider } from '@apollo/client' import * as Sentry from '@sentry/react' import { FeatureFlagsProvider } from 'featureFlags' -import RelayEnvironment from 'graphql/data/RelayEnvironment' +import { apolloClient } from 'graphql/data/apollo' import { BlockNumberProvider } from 'lib/hooks/useBlockNumber' import { MulticallUpdater } from 'lib/state/multicall' import { StrictMode } from 'react' import { createRoot } from 'react-dom/client' import { QueryClient, QueryClientProvider } from 'react-query' import { Provider } from 'react-redux' -import { RelayEnvironmentProvider } from 'react-relay' import { HashRouter } from 'react-router-dom' import { isProductionEnv } from 'utils/env' @@ -66,7 +66,7 @@ createRoot(container).render( - + @@ -74,7 +74,7 @@ createRoot(container).render( - + diff --git a/src/nft/components/bag/profile/ListingButton.tsx b/src/nft/components/bag/profile/ListingButton.tsx index 4100fd9da5..4c01566b6a 100644 --- a/src/nft/components/bag/profile/ListingButton.tsx +++ b/src/nft/components/bag/profile/ListingButton.tsx @@ -71,7 +71,7 @@ export const ListingButton = ({ onClick, buttonText, showWarningOverride = false for (const listing of asset.newListings) { if (!listing.price) listingsMissingPrice.push([asset, listing]) else if (isNaN(listing.price) || listing.price < 0) invalidPrices.push([asset, listing]) - else if (listing.price < asset.floorPrice && !listing.overrideFloorPrice) + else if (listing.price < (asset?.floorPrice ?? 0) && !listing.overrideFloorPrice) listingsBelowFloor.push([asset, listing]) else if (asset.floor_sell_order_price && listing.price > asset.floor_sell_order_price) listingsAboveSellOrderFloor.push([asset, listing]) diff --git a/src/nft/components/bag/profile/ListingSection.tsx b/src/nft/components/bag/profile/ListingSection.tsx index ed1046bc88..e0cbe9938a 100644 --- a/src/nft/components/bag/profile/ListingSection.tsx +++ b/src/nft/components/bag/profile/ListingSection.tsx @@ -88,7 +88,7 @@ export const ListingSection = ({ return ( - {row.images.map((image, index) => { + {row.images?.map((image, index) => { return ( - updateStatus({ - listing: collectionRow, - newStatus, - rows: collectionsRequiringApproval, - setRows: setCollectionsRequiringApproval as Dispatch, - }) - ) + !!collectionAddress && + (await approveCollection(spender, collectionAddress, signer, (newStatus: ListingStatus) => + updateStatus({ + listing: collectionRow, + newStatus, + rows: collectionsRequiringApproval, + setRows: setCollectionsRequiringApproval as Dispatch, + }) + )) if (collectionRow.status === ListingStatus.REJECTED || collectionRow.status === ListingStatus.FAILED) pauseAllRows() } @@ -127,7 +128,7 @@ export const getTotalEthValue = (sellAssets: WalletAsset[]) => { // LooksRare is a unique case where creator royalties are a flat 0.5% or 50 basis points const maxFee = maxListing.marketplace.fee + - (maxListing.marketplace.name === 'LooksRare' ? LOOKS_RARE_CREATOR_BASIS_POINTS : asset.basisPoints) / 100 + (maxListing.marketplace.name === 'LooksRare' ? LOOKS_RARE_CREATOR_BASIS_POINTS : asset?.basisPoints ?? 0) / 100 return total + (maxListing.price ?? 0) - (maxListing.price ?? 0) * (maxFee / 100) } return total diff --git a/src/nft/components/collection/Card.tsx b/src/nft/components/collection/Card.tsx index c1ae2627e2..d1f12ff990 100644 --- a/src/nft/components/collection/Card.tsx +++ b/src/nft/components/collection/Card.tsx @@ -2,6 +2,7 @@ import { BigNumber } from '@ethersproject/bignumber' import clsx from 'clsx' import { OpacityHoverState } from 'components/Common' import { MouseoverTooltip } from 'components/Tooltip' +import { NftStandard } from 'graphql/data/__generated__/types-and-hooks' import { Box } from 'nft/components/Box' import { Row } from 'nft/components/Flex' import { @@ -16,7 +17,7 @@ import { import { body, bodySmall, buttonTextMedium, subhead } from 'nft/css/common.css' import { themeVars } from 'nft/css/sprinkles.css' import { useIsMobile } from 'nft/hooks' -import { GenieAsset, Rarity, TokenType, UniformAspectRatio, UniformAspectRatios, WalletAsset } from 'nft/types' +import { GenieAsset, Rarity, UniformAspectRatio, UniformAspectRatios, WalletAsset } from 'nft/types' import { fallbackProvider, isAudio, isVideo, putCommas } from 'nft/utils' import { floorFormatter } from 'nft/utils/numbers' import { @@ -579,8 +580,7 @@ const ProfileNftDetails = ({ asset, hideDetails }: ProfileNftDetailsProps) => { return !!asset.name ? asset.name : `#${asset.tokenId}` } - const shouldShowUserListedPrice = - !!asset.floor_sell_order_price && !asset.notForSale && asset.asset_contract.tokenType !== TokenType.ERC1155 + const shouldShowUserListedPrice = !asset.notForSale && asset.asset_contract.tokenType !== NftStandard.Erc1155 return ( @@ -605,7 +605,9 @@ const ProfileNftDetails = ({ asset, hideDetails }: ProfileNftDetailsProps) => { {asset.susFlag && } - {shouldShowUserListedPrice ? `${floorFormatter(asset.floor_sell_order_price)} ETH` : ' '} + {shouldShowUserListedPrice && asset.floor_sell_order_price + ? `${floorFormatter(asset.floor_sell_order_price)} ETH` + : ' '} ) diff --git a/src/nft/components/collection/CollectionAsset.tsx b/src/nft/components/collection/CollectionAsset.tsx index 5e9939fa0d..1fcf9f52f0 100644 --- a/src/nft/components/collection/CollectionAsset.tsx +++ b/src/nft/components/collection/CollectionAsset.tsx @@ -4,10 +4,11 @@ import { sendAnalyticsEvent, useTrace } from '@uniswap/analytics' import { EventName, PageName } from '@uniswap/analytics-events' import { MouseoverTooltip } from 'components/Tooltip' import Tooltip from 'components/Tooltip' +import { NftStandard } from 'graphql/data/__generated__/types-and-hooks' import { Box } from 'nft/components/Box' import { bodySmall } from 'nft/css/common.css' import { useBag } from 'nft/hooks' -import { GenieAsset, isPooledMarket, TokenType, UniformAspectRatio } from 'nft/types' +import { GenieAsset, isPooledMarket, UniformAspectRatio } from 'nft/types' import { formatWeiToDecimal, rarityProviderLogo } from 'nft/utils' import { useCallback, useEffect, useMemo, useRef, useState } from 'react' import styled from 'styled-components/macro' @@ -212,7 +213,7 @@ export const CollectionAsset = ({ {isPooledMarket(asset.marketplace) && } - {asset.tokenType !== TokenType.ERC1155 && asset.marketplace && ( + {asset.tokenType !== NftStandard.Erc1155 && asset.marketplace && ( )} diff --git a/src/nft/components/collection/CollectionNfts.tsx b/src/nft/components/collection/CollectionNfts.tsx index 60a695724f..df499860ad 100644 --- a/src/nft/components/collection/CollectionNfts.tsx +++ b/src/nft/components/collection/CollectionNfts.tsx @@ -5,13 +5,8 @@ import { useWeb3React } from '@web3-react/core' import clsx from 'clsx' import { OpacityHoverState } from 'components/Common' import { parseEther } from 'ethers/lib/utils' -import { NftAssetTraitInput, NftMarketplace } from 'graphql/data/nft/__generated__/AssetQuery.graphql' -import { - ASSET_PAGE_SIZE, - AssetFetcherParams, - useLazyLoadAssetsQuery, - useLoadSweepAssetsQuery, -} from 'graphql/data/nft/Asset' +import { NftAssetTraitInput, NftMarketplace, NftStandard } from 'graphql/data/__generated__/types-and-hooks' +import { ASSET_PAGE_SIZE, AssetFetcherParams, useNftAssets } from 'graphql/data/nft/Asset' import useDebounce from 'hooks/useDebounce' import { useScreenSize } from 'hooks/useScreenSize' import { AnimatedBox, Box } from 'nft/components/Box' @@ -41,7 +36,6 @@ import { GenieCollection, isPooledMarket, Markets, - TokenType, UniformAspectRatio, UniformAspectRatios, } from 'nft/types' @@ -63,7 +57,7 @@ import { ThemedText } from 'theme' import { CollectionAssetLoading } from './CollectionAssetLoading' import { MARKETPLACE_ITEMS, MarketplaceLogo } from './MarketplaceSelect' -import { Sweep, useSweepFetcherParams } from './Sweep' +import { Sweep } from './Sweep' import { TraitChip } from './TraitChip' interface CollectionNftsProps { @@ -282,15 +276,6 @@ export const CollectionNfts = ({ contractAddress, collectionStats, rarityVerifie const [renderedHeight, setRenderedHeight] = useState() const [sweepIsOpen, setSweepOpen] = useState(false) - // Load all sweep queries. Loading them on the parent allows lazy-loading, but avoids waterfalling requests. - const collectionParams = useSweepFetcherParams(contractAddress, 'others', debouncedMinPrice, debouncedMaxPrice) - const sudoSwapParams = useSweepFetcherParams(contractAddress, Markets.Sudoswap, debouncedMinPrice, debouncedMaxPrice) - const nftxParams = useSweepFetcherParams(contractAddress, Markets.NFTX, debouncedMinPrice, debouncedMaxPrice) - const nft20Params = useSweepFetcherParams(contractAddress, Markets.NFT20, debouncedMinPrice, debouncedMaxPrice) - useLoadSweepAssetsQuery(collectionParams, sweepIsOpen) - useLoadSweepAssetsQuery(sudoSwapParams, sweepIsOpen) - useLoadSweepAssetsQuery(nftxParams, sweepIsOpen) - useLoadSweepAssetsQuery(nft20Params, sweepIsOpen) const assetQueryParams: AssetFetcherParams = { address: contractAddress, @@ -312,8 +297,7 @@ export const CollectionNfts = ({ contractAddress, collectionStats, rarityVerifie first: ASSET_PAGE_SIZE, } - const { assets: collectionNfts, loadNext, hasNext, isLoadingNext } = useLazyLoadAssetsQuery(assetQueryParams) - const handleNextPageLoad = useCallback(() => loadNext(ASSET_PAGE_SIZE), [loadNext]) + const { data: collectionNfts, loading, hasNext, loadMore } = useNftAssets(assetQueryParams) const getPoolPosition = useCallback( (asset: GenieAsset) => { @@ -394,8 +378,8 @@ export const CollectionNfts = ({ contractAddress, collectionStats, rarityVerifie const screenSize = useScreenSize() useEffect(() => { - setIsCollectionNftsLoading(isLoadingNext) - }, [isLoadingNext, setIsCollectionNftsLoading]) + setIsCollectionNftsLoading(loading) + }, [loading, setIsCollectionNftsLoading]) const hasRarity = useMemo(() => { const hasRarity = getRarityStatus(rarityStatusCache, collectionStats?.address, collectionAssets) ?? false @@ -434,7 +418,7 @@ export const CollectionNfts = ({ contractAddress, collectionStats, rarityVerifie }, [collectionAssets, isMobile, currentTokenPlayingMedia, rarityVerified, uniformAspectRatio, renderedHeight]) const hasNfts = collectionAssets && collectionAssets.length > 0 - const hasErc1155s = hasNfts && collectionAssets[0] && collectionAssets[0].tokenType === TokenType.ERC1155 + const hasErc1155s = hasNfts && collectionAssets[0] && collectionAssets[0]?.tokenType === NftStandard.Erc1155 const minMaxPriceChipText: string | undefined = useMemo(() => { if (debouncedMinPrice && debouncedMaxPrice) { @@ -619,35 +603,37 @@ export const CollectionNfts = ({ contractAddress, collectionStats, rarityVerifie - } - dataLength={collectionAssets?.length ?? 0} - style={{ overflow: 'unset' }} - className={hasNfts || isLoadingNext ? styles.assetList : undefined} - > - {hasNfts ? ( - assets - ) : collectionAssets?.length === 0 ? ( -
- -

No NFTS found

- - View full collection - -
-
- ) : ( - - )} -
+ {loading ? ( + + ) : ( + } + dataLength={collectionAssets?.length ?? 0} + style={{ overflow: 'unset' }} + className={hasNfts ? styles.assetList : undefined} + > + {!hasNfts ? ( +
+ +

No NFTS found

+ + View full collection + +
+
+ ) : ( + assets + )} +
+ )}
) diff --git a/src/nft/components/collection/Sweep.tsx b/src/nft/components/collection/Sweep.tsx index a9fb284a3b..c61669bf8d 100644 --- a/src/nft/components/collection/Sweep.tsx +++ b/src/nft/components/collection/Sweep.tsx @@ -2,7 +2,7 @@ import 'rc-slider/assets/index.css' import { BigNumber } from '@ethersproject/bignumber' import { formatEther, parseEther } from '@ethersproject/units' -import { SweepFetcherParams, useLazyLoadSweepAssetsQuery } from 'graphql/data/nft/Asset' +import { SweepFetcherParams, useSweepNftAssets } from 'graphql/data/nft/Asset' import { useBag, useCollectionFilters } from 'nft/hooks' import { GenieAsset, isPooledMarket, Markets } from 'nft/types' import { calcPoolPrice, calcSudoSwapPrice, formatWeiToDecimal, isInSameSudoSwapPool } from 'nft/utils' @@ -178,13 +178,13 @@ export const Sweep = ({ contractAddress, minPrice, maxPrice }: SweepProps) => { const nftxParams = useSweepFetcherParams(contractAddress, Markets.NFTX, minPrice, maxPrice) const nft20Params = useSweepFetcherParams(contractAddress, Markets.NFT20, minPrice, maxPrice) // These calls will suspend if the query is not yet loaded. - const collectionAssets = useLazyLoadSweepAssetsQuery(collectionParams) - const sudoSwapAsssets = useLazyLoadSweepAssetsQuery(sudoSwapParams) - const nftxAssets = useLazyLoadSweepAssetsQuery(nftxParams) - const nft20Assets = useLazyLoadSweepAssetsQuery(nft20Params) + const { data: collectionAssets } = useSweepNftAssets(collectionParams) + const { data: sudoSwapAssets } = useSweepNftAssets(sudoSwapParams) + const { data: nftxAssets } = useSweepNftAssets(nftxParams) + const { data: nft20Assets } = useSweepNftAssets(nft20Params) const { sortedAssets, sortedAssetsTotalEth } = useMemo(() => { - if (!collectionAssets && !sudoSwapAsssets && !nftxAssets && !nft20Assets) { + if (!collectionAssets && !sudoSwapAssets && !nftxAssets && !nft20Assets) { return { sortedAssets: undefined, sortedAssetsTotalEth: BigNumber.from(0) } } @@ -193,7 +193,7 @@ export const Sweep = ({ contractAddress, minPrice, maxPrice }: SweepProps) => { let jointCollections: GenieAsset[] = [] - if (sudoSwapAsssets) jointCollections = [...jointCollections, ...sudoSwapAsssets] + if (sudoSwapAssets) jointCollections = [...jointCollections, ...sudoSwapAssets] if (nftxAssets) jointCollections = [...jointCollections, ...nftxAssets] if (nft20Assets) jointCollections = [...jointCollections, ...nft20Assets] @@ -236,7 +236,7 @@ export const Sweep = ({ contractAddress, minPrice, maxPrice }: SweepProps) => { 0, Math.max( collectionAssets?.length ?? 0, - sudoSwapAsssets?.length ?? 0, + sudoSwapAssets?.length ?? 0, nftxAssets?.length ?? 0, nft20Assets?.length ?? 0 ) @@ -249,7 +249,7 @@ export const Sweep = ({ contractAddress, minPrice, maxPrice }: SweepProps) => { BigNumber.from(0) ), } - }, [collectionAssets, sudoSwapAsssets, nftxAssets, nft20Assets]) + }, [collectionAssets, sudoSwapAssets, nftxAssets, nft20Assets]) const { sweepItemsInBag, sweepEthPrice } = useMemo(() => { const sweepItemsInBag = itemsInBag @@ -435,7 +435,7 @@ export const Sweep = ({ contractAddress, minPrice, maxPrice }: SweepProps) => { const ALL_OTHER_MARKETS = [Markets.Opensea, Markets.X2Y2, Markets.LooksRare] -export function useSweepFetcherParams( +function useSweepFetcherParams( contractAddress: string, market: Markets.Sudoswap | Markets.NFTX | Markets.NFT20 | 'others', minPrice: string, diff --git a/src/nft/components/details/AssetDetails.tsx b/src/nft/components/details/AssetDetails.tsx index f04d33cc24..0c055e9e9f 100644 --- a/src/nft/components/details/AssetDetails.tsx +++ b/src/nft/components/details/AssetDetails.tsx @@ -263,7 +263,7 @@ export const AssetDetails = ({ asset, collection }: AssetDetailsProps) => { return MediaType.Audio } else if (isVideo(asset.animationUrl ?? '')) { return MediaType.Video - } else if (asset.animationUrl !== undefined) { + } else if (!!asset.animationUrl) { return MediaType.Embed } return MediaType.Image diff --git a/src/nft/components/details/AssetPriceDetails.tsx b/src/nft/components/details/AssetPriceDetails.tsx index c67c284b5a..2b6c1fa20e 100644 --- a/src/nft/components/details/AssetPriceDetails.tsx +++ b/src/nft/components/details/AssetPriceDetails.tsx @@ -3,7 +3,7 @@ import { sendAnalyticsEvent } from '@uniswap/analytics' import { EventName } from '@uniswap/analytics-events' import { useWeb3React } from '@web3-react/core' import { OpacityHoverState } from 'components/Common' -import { useNftBalanceQuery } from 'graphql/data/nft/NftBalance' +import { useNftBalance } from 'graphql/data/nft/NftBalance' import { CancelListingIcon, VerifiedIcon } from 'nft/components/icons' import { useBag, useProfilePageState, useSellAsset } from 'nft/hooks' import { CollectionInfoForAsset, GenieAsset, ProfilePageStateType, WalletAsset } from 'nft/types' @@ -218,10 +218,10 @@ const OwnerContainer = ({ asset }: { asset: WalletAsset }) => { const resetSellAssets = useSellAsset((state) => state.reset) const listing = asset.sellOrders && asset.sellOrders.length > 0 ? asset.sellOrders[0] : undefined - const expirationDate = listing ? new Date(listing.endAt) : undefined + const expirationDate = listing?.endAt ? new Date(listing.endAt) : undefined const USDPrice = useMemo( - () => (USDValue ? USDValue * asset.floor_sell_order_price : undefined), + () => (USDValue && asset.floor_sell_order_price ? USDValue * asset.floor_sell_order_price : undefined), [USDValue, asset.floor_sell_order_price] ) const trace = useTrace() @@ -254,7 +254,7 @@ const OwnerContainer = ({ asset }: { asset: WalletAsset }) => { {listing ? ( <> - {formatEthPrice(asset.priceInfo.ETHPrice)} ETH + {formatEthPrice(asset.priceInfo?.ETHPrice)} ETH {USDPrice && ( @@ -320,7 +320,7 @@ export const AssetPriceDetails = ({ asset, collection }: AssetPriceDetailsProps) const { account } = useWeb3React() const cheapestOrder = asset.sellorders && asset.sellorders.length > 0 ? asset.sellorders[0] : undefined - const expirationDate = cheapestOrder ? new Date(cheapestOrder.endAt) : undefined + const expirationDate = cheapestOrder?.endAt ? new Date(cheapestOrder.endAt) : undefined const itemsInBag = useBag((s) => s.itemsInBag) const addAssetsToBag = useBag((s) => s.addAssetsToBag) @@ -331,11 +331,8 @@ export const AssetPriceDetails = ({ asset, collection }: AssetPriceDetailsProps) const USDPrice = useUsdPrice(asset) const assetsFilter = [{ address: asset.address, tokenId: asset.tokenId }] - const { walletAssets: ownerAssets } = useNftBalanceQuery(account ?? '', [], assetsFilter, 1) - const walletAsset: WalletAsset | undefined = useMemo( - () => (ownerAssets?.length > 0 ? ownerAssets[0] : undefined), - [ownerAssets] - ) + const { walletAssets: ownerAssets } = useNftBalance(account ?? '', [], assetsFilter, 1) + const walletAsset: WalletAsset | undefined = useMemo(() => ownerAssets?.[0], [ownerAssets]) const { assetInBag } = useMemo(() => { return { @@ -355,7 +352,7 @@ export const AssetPriceDetails = ({ asset, collection }: AssetPriceDetailsProps) ) } - const isOwner = asset.owner && !!walletAsset && account?.toLowerCase() === asset.owner?.address?.toLowerCase() + const isOwner = asset.ownerAddress && !!walletAsset && account?.toLowerCase() === asset.ownerAddress?.toLowerCase() const isForSale = cheapestOrder && asset.priceInfo return ( @@ -424,20 +421,20 @@ export const AssetPriceDetails = ({ asset, collection }: AssetPriceDetailsProps) )} {isForSale && ( - {asset.tokenType !== 'ERC1155' && asset.owner.address && ( + {asset.tokenType !== 'ERC1155' && asset.ownerAddress && ( Seller: )} {asset.tokenType === 'ERC1155' ? ( '' ) : ( - {isOwner ? 'You' : asset.owner.address && shortenAddress(asset.owner.address, 2, 4)} + {isOwner ? 'You' : asset.ownerAddress && shortenAddress(asset.ownerAddress, 2, 4)} )} diff --git a/src/nft/components/explore/Banner.tsx b/src/nft/components/explore/Banner.tsx index e11a06d2d5..3e9f71230f 100644 --- a/src/nft/components/explore/Banner.tsx +++ b/src/nft/components/explore/Banner.tsx @@ -1,8 +1,7 @@ -import { useLoadCollectionQuery } from 'graphql/data/nft/Collection' import { fetchTrendingCollections } from 'nft/queries' import { TimePeriod } from 'nft/types' import { calculateCardIndex } from 'nft/utils' -import { Suspense, useCallback, useMemo, useState } from 'react' +import { useCallback, useMemo, useState } from 'react' import { useQuery } from 'react-query' import { useNavigate } from 'react-router-dom' import styled from 'styled-components/macro' @@ -137,10 +136,6 @@ const Banner = () => { [data] ) - // Trigger queries for the top trending collections, so that the data is immediately available if the user clicks through. - const collectionAddresses = useMemo(() => collections?.map(({ address }) => address), [collections]) - useLoadCollectionQuery(collectionAddresses) - const [activeCollectionIdx, setActiveCollectionIdx] = useState(0) const onToggleNextSlide = useCallback( (direction: number) => { @@ -169,13 +164,11 @@ const Banner = () => { {collections ? ( {collections.map((collection) => ( - } key={collection.address}> - navigate(`/nfts/collection/${collection.address}`)} - /> - + navigate(`/nfts/collection/${collection.address}`)} + /> ))} ) : ( diff --git a/src/nft/components/explore/CarouselCard.tsx b/src/nft/components/explore/CarouselCard.tsx index 646bae1d2e..120e7dd3cf 100644 --- a/src/nft/components/explore/CarouselCard.tsx +++ b/src/nft/components/explore/CarouselCard.tsx @@ -1,7 +1,7 @@ import { formatNumberOrString, NumberType } from '@uniswap/conedison/format' import { loadingAnimation } from 'components/Loader/styled' import { LoadingBubble } from 'components/Tokens/loading' -import { useCollectionQuery } from 'graphql/data/nft/Collection' +import { useCollection } from 'graphql/data/nft/Collection' import { VerifiedIcon } from 'nft/components/icons' import { Markets, TrendingCollection } from 'nft/types' import { formatWeiToDecimal } from 'nft/utils' @@ -235,7 +235,9 @@ const MARKETS_ENUM_TO_NAME = { } export const CarouselCard = ({ collection, onClick }: CarouselCardProps) => { - const gqlCollection = useCollectionQuery(collection.address) + const { data: gqlCollection, loading } = useCollection(collection.address) + + if (loading) return return ( diff --git a/src/nft/components/profile/list/NFTListingsGrid.tsx b/src/nft/components/profile/list/NFTListingsGrid.tsx index a70a972c94..f40a5ac9bb 100644 --- a/src/nft/components/profile/list/NFTListingsGrid.tsx +++ b/src/nft/components/profile/list/NFTListingsGrid.tsx @@ -152,7 +152,7 @@ const PriceTextInput = ({ inputRef.current.value = listPrice !== undefined ? `${listPrice}` : '' setWarningType(WarningType.NONE) if (!warning && listPrice) { - if (listPrice < asset.floorPrice) setWarningType(WarningType.BELOW_FLOOR) + if (listPrice < (asset?.floorPrice ?? 0)) setWarningType(WarningType.BELOW_FLOOR) else if (asset.floor_sell_order_price && listPrice >= asset.floor_sell_order_price) setWarningType(WarningType.ALREADY_LISTED) } else if (warning && listPrice && listPrice >= 0) removeMarketplaceWarning(asset, warning) @@ -226,10 +226,14 @@ const PriceTextInput = ({ > {focused ? ( <> - - LAST: {formatEth(asset.lastPrice)} ETH - - FLOOR: {formatEth(asset.floorPrice)} ETH + {!!asset.lastPrice && ( + + LAST: {formatEth(asset.lastPrice)} ETH + + )} + {!!asset.floorPrice && ( + FLOOR: {formatEth(asset.floorPrice)} ETH + )} ) : ( <> @@ -239,8 +243,8 @@ const PriceTextInput = ({ <> {warningType} {warningType === WarningType.BELOW_FLOOR - ? formatEth(asset.floorPrice) - : formatEth(asset.floor_sell_order_price)} + ? formatEth(asset?.floorPrice ?? 0) + : formatEth(asset?.floor_sell_order_price ?? 0)} ETH + return ( {ownerAssets?.length === 0 ? ( @@ -242,13 +244,13 @@ const ProfilePageNfts = ({ /> loadNext(DEFAULT_WALLET_ASSET_QUERY_AMOUNT)} - hasMore={hasNext} + next={loadMore} + hasMore={hasNext ?? false} loader={ Boolean(hasNext && ownerAssets?.length) && } dataLength={ownerAssets?.length ?? 0} - className={ownerAssets?.length || isLoadingNext ? assetList : undefined} + className={ownerAssets?.length ? assetList : undefined} style={{ overflow: 'unset' }} > {ownerAssets?.length diff --git a/src/nft/components/profile/view/ViewMyNftsAsset.tsx b/src/nft/components/profile/view/ViewMyNftsAsset.tsx index 2d1306286a..581732a554 100644 --- a/src/nft/components/profile/view/ViewMyNftsAsset.tsx +++ b/src/nft/components/profile/view/ViewMyNftsAsset.tsx @@ -4,13 +4,14 @@ import { sendAnalyticsEvent } from '@uniswap/analytics' import { EventName } from '@uniswap/analytics-events' import { MouseoverTooltip } from 'components/Tooltip' import Tooltip from 'components/Tooltip' +import { NftStandard } from 'graphql/data/__generated__/types-and-hooks' import { Box } from 'nft/components/Box' import * as Card from 'nft/components/collection/Card' import { AssetMediaType } from 'nft/components/collection/Card' import { bodySmall } from 'nft/css/common.css' import { themeVars } from 'nft/css/sprinkles.css' import { useBag, useIsMobile, useSellAsset } from 'nft/hooks' -import { TokenType, WalletAsset } from 'nft/types' +import { WalletAsset } from 'nft/types' import { useEffect, useMemo, useRef, useState } from 'react' const TOOLTIP_TIMEOUT = 2000 @@ -39,7 +40,7 @@ const getNftDisplayComponent = ( const getUnsupportedNftTextComponent = (asset: WalletAsset) => ( - {asset.asset_contract.tokenType === TokenType.ERC1155 ? ( + {asset.asset_contract.tokenType === NftStandard.Erc1155 ? ( Selling ERC-1155s coming soon ) : ( Blocked from trading @@ -109,7 +110,7 @@ export const ViewMyNftsAsset = ({ }, [isSelected, isSelectedRef]) const assetMediaType = Card.useAssetMediaType(asset) - const isDisabled = asset.asset_contract.tokenType === TokenType.ERC1155 || asset.susFlag + const isDisabled = asset.asset_contract.tokenType === NftStandard.Erc1155 || asset.susFlag return ( ()( const itemsInBagCopy = [...itemsInBag] assets.forEach((asset) => { let index = -1 - if (asset.tokenType !== TokenType.ERC1155) { + if (asset.tokenType !== NftStandard.Erc1155) { index = itemsInBag.findIndex( (n) => n.asset.tokenId === asset.tokenId && n.asset.address === asset.address ) diff --git a/src/nft/hooks/useCollectionFilters.ts b/src/nft/hooks/useCollectionFilters.ts index 31d96b5b9a..23dc64ba94 100644 --- a/src/nft/hooks/useCollectionFilters.ts +++ b/src/nft/hooks/useCollectionFilters.ts @@ -1,4 +1,4 @@ -import { NftAssetSortableField } from 'graphql/data/nft/__generated__/AssetPaginationQuery.graphql' +import { NftAssetSortableField } from 'graphql/data/__generated__/types-and-hooks' import create from 'zustand' import { devtools } from 'zustand/middleware' diff --git a/src/nft/hooks/useWalletCollections.ts b/src/nft/hooks/useWalletCollections.ts index bc5ae54be1..36a8bfc7d5 100644 --- a/src/nft/hooks/useWalletCollections.ts +++ b/src/nft/hooks/useWalletCollections.ts @@ -1,3 +1,4 @@ +import { NftStandard } from 'graphql/data/__generated__/types-and-hooks' import create from 'zustand' import { devtools } from 'zustand/middleware' @@ -28,7 +29,7 @@ export const useWalletCollections = create()( setWalletAssets: (assets) => set(() => { return { - walletAssets: assets?.filter((asset) => asset.asset_contract?.schema_name === 'ERC721'), + walletAssets: assets?.filter((asset) => asset.asset_contract?.tokenType === NftStandard.Erc721), } }), setWalletCollections: (collections) => diff --git a/src/nft/pages/asset/Asset.tsx b/src/nft/pages/asset/Asset.tsx index 6e767c4c30..dbb74175db 100644 --- a/src/nft/pages/asset/Asset.tsx +++ b/src/nft/pages/asset/Asset.tsx @@ -1,13 +1,9 @@ import { Trace } from '@uniswap/analytics' import { PageName } from '@uniswap/analytics-events' -import { useWeb3React } from '@web3-react/core' -import { useDetailsQuery, useLoadDetailsQuery } from 'graphql/data/nft/Details' -import { useLoadNftBalanceQuery } from 'graphql/data/nft/NftBalance' +import { useNftAssetDetails } from 'graphql/data/nft/Details' import { AssetDetails } from 'nft/components/details/AssetDetails' import { AssetDetailsLoading } from 'nft/components/details/AssetDetailsLoading' import { AssetPriceDetails } from 'nft/components/details/AssetPriceDetails' -import { useBag } from 'nft/hooks' -import { Suspense, useEffect, useMemo } from 'react' import { useParams } from 'react-router-dom' import styled from 'styled-components/macro' @@ -38,11 +34,13 @@ const AssetPriceDetailsContainer = styled.div` } ` -const Asset = () => { +const AssetPage = () => { const { tokenId = '', contractAddress = '' } = useParams() - const data = useDetailsQuery(contractAddress, tokenId) + const { data, loading } = useNftAssetDetails(contractAddress, tokenId) - const [asset, collection] = useMemo(() => data ?? [], [data]) + const [asset, collection] = data + + if (loading) return return ( <> @@ -51,35 +49,17 @@ const Asset = () => { properties={{ collection_address: contractAddress, token_id: tokenId }} shouldLogImpression > - {asset && collection ? ( + {!!asset && !!collection && ( - ) : null} + )} ) } -const AssetPage = () => { - const { tokenId, contractAddress } = useParams() - const { account } = useWeb3React() - const setBagExpanded = useBag((state) => state.setBagExpanded) - useLoadDetailsQuery(contractAddress, tokenId) - useLoadNftBalanceQuery(account, contractAddress, tokenId) - - useEffect(() => { - setBagExpanded({ bagExpanded: false, manualClose: false }) - }, []) // eslint-disable-line react-hooks/exhaustive-deps - - return ( - }> - - - ) -} - export default AssetPage diff --git a/src/nft/pages/collection/index.tsx b/src/nft/pages/collection/index.tsx index 4bfb8fa1de..a1a2884bcd 100644 --- a/src/nft/pages/collection/index.tsx +++ b/src/nft/pages/collection/index.tsx @@ -5,8 +5,7 @@ import Column from 'components/Column' import { OpacityHoverState } from 'components/Common' import Row from 'components/Row' import { LoadingBubble } from 'components/Tokens/loading' -import { useLoadAssetsQuery } from 'graphql/data/nft/Asset' -import { useCollectionQuery, useLoadCollectionQuery } from 'graphql/data/nft/Collection' +import { useCollection } from 'graphql/data/nft/Collection' import { useScreenSize } from 'hooks/useScreenSize' import { BAG_WIDTH, XXXL_BAG_WIDTH } from 'nft/components/bag/Bag' import { MobileHoverBag } from 'nft/components/bag/MobileHoverBag' @@ -16,7 +15,6 @@ import { CollectionPageSkeleton } from 'nft/components/collection/CollectionPage import { BagCloseIcon } from 'nft/components/icons' import { useBag, useCollectionFilters, useFiltersExpanded, useIsMobile } from 'nft/hooks' import * as styles from 'nft/pages/collection/index.css' -import { GenieCollection } from 'nft/types' import { Suspense, useEffect } from 'react' import { useLocation, useNavigate, useParams } from 'react-router-dom' import { animated, easings, useSpring } from 'react-spring' @@ -26,6 +24,7 @@ import { TRANSITION_DURATIONS } from 'theme/styles' import { Z_INDEX } from 'theme/zIndex' const FILTER_WIDTH = 332 +const EMPTY_TRAIT_OBJ = {} export const CollectionBannerLoading = styled(LoadingBubble)` width: 100%; @@ -133,7 +132,7 @@ const Collection = () => { const { chainId } = useWeb3React() const screenSize = useScreenSize() - const collectionStats = useCollectionQuery(contractAddress as string) + const { data: collectionStats, loading } = useCollection(contractAddress as string) const { CollectionContainerWidthChange } = useSpring({ CollectionContainerWidthChange: @@ -169,6 +168,8 @@ const Collection = () => { // eslint-disable-next-line react-hooks/exhaustive-deps }, []) + if (loading) return + const toggleActivity = () => { isActivityToggled ? navigate(`/nfts/collection/${contractAddress}`) @@ -197,9 +198,7 @@ const Collection = () => { /> - {collectionStats && ( - - )} + {collectionStats && }
{ )} - + )} @@ -246,7 +245,7 @@ const Collection = () => { collectionStats && ( }> @@ -265,21 +264,4 @@ const Collection = () => { ) } -// The page is responsible for any queries that must be run on initial load. -// Triggering query load from the page prevents waterfalled requests, as lazy-loading them in components would prevent -// any children from rendering. -const CollectionPage = () => { - const { contractAddress } = useParams() - useLoadCollectionQuery(contractAddress) - useLoadAssetsQuery(contractAddress) - - // The Collection must be wrapped in suspense so that it does not suspend the CollectionPage, - // which is needed to trigger query loads. - return ( - }> - - - ) -} - -export default CollectionPage +export default Collection diff --git a/src/nft/queries/genie/RouteFetcher.ts b/src/nft/queries/genie/RouteFetcher.ts index d92eebef9c..a540eb85c2 100644 --- a/src/nft/queries/genie/RouteFetcher.ts +++ b/src/nft/queries/genie/RouteFetcher.ts @@ -1,4 +1,5 @@ -import { GenieAsset, RouteResponse, TokenType } from '../../types' +import { NftStandard } from 'graphql/data/__generated__/types-and-hooks' +import { GenieAsset, RouteResponse } from 'nft/types' export const fetchRoute = async ({ toSell, @@ -41,7 +42,7 @@ type RouteItem = { decimals: number address: string priceInfo: ApiPriceInfo - tokenType: TokenType + tokenType?: NftStandard tokenId: string amount: number marketplace?: string diff --git a/src/nft/types/common/common.ts b/src/nft/types/common/common.ts index e67d731611..ea68ff6755 100644 --- a/src/nft/types/common/common.ts +++ b/src/nft/types/common/common.ts @@ -1,3 +1,4 @@ +import { NftStandard } from 'graphql/data/__generated__/types-and-hooks' import { SortBy } from 'nft/hooks' import { SellOrder } from '../sell' @@ -81,7 +82,7 @@ export interface Trait { export interface GenieAsset { id?: string // This would be a random id created and assigned by front end address: string - notForSale: boolean + notForSale?: boolean collectionName?: string collectionSymbol?: string imageUrl?: string @@ -93,17 +94,15 @@ export interface GenieAsset { sellorders?: SellOrder[] smallImageUrl?: string tokenId: string - tokenType: TokenType + tokenType?: NftStandard totalCount?: number // The totalCount from the query to /assets collectionIsVerified?: boolean rarity?: Rarity - owner: { - address: string - } - metadataUrl: string + ownerAddress?: string + metadataUrl?: string creator: { - address: string - profile_img_url: string + address?: string + profile_img_url?: string } traits?: Trait[] } diff --git a/src/nft/types/sell/sell.ts b/src/nft/types/sell/sell.ts index c38b2bd449..4c7825513e 100644 --- a/src/nft/types/sell/sell.ts +++ b/src/nft/types/sell/sell.ts @@ -1,6 +1,6 @@ -import { NftMarketplace, OrderStatus, OrderType } from 'graphql/data/nft/__generated__/DetailsQuery.graphql' +import { NftMarketplace, NftStandard, OrderStatus, OrderType } from 'graphql/data/__generated__/types-and-hooks' -import { GenieCollection, PriceInfo, TokenType } from '../common' +import { GenieCollection, PriceInfo } from '../common' export interface ListingMarket { name: string @@ -15,20 +15,20 @@ export interface ListingWarning { export interface SellOrder { address: string createdAt: number - endAt: number + endAt?: number id: string maker: string marketplace: NftMarketplace marketplaceUrl: string - orderHash: string + orderHash?: string price: { - currency: string + currency?: string value: number } quantity: number startAt: number status: OrderStatus - tokenId: string + tokenId?: string type: OrderType protocolParameters: Record } @@ -41,32 +41,31 @@ export interface Listing { export interface WalletAsset { id?: string - imageUrl: string - smallImageUrl: string + imageUrl?: string + smallImageUrl?: string notForSale: boolean - animationUrl: string - susFlag: boolean - priceInfo: PriceInfo - name: string - tokenId: string + animationUrl?: string + susFlag?: boolean + priceInfo?: PriceInfo + name?: string + tokenId?: string asset_contract: { - address: string - schema_name: 'ERC1155' | 'ERC721' | string - name: string - description: string - image_url: string - payout_address: string - tokenType: TokenType + address?: string + name?: string + description?: string + image_url?: string + payout_address?: string + tokenType?: NftStandard } - collection: GenieCollection - collectionIsVerified: boolean - lastPrice: number - floorPrice: number - basisPoints: number - listing_date: string - date_acquired: string - sellOrders: SellOrder[] - floor_sell_order_price: number + collection?: GenieCollection + collectionIsVerified?: boolean + lastPrice?: number + floorPrice?: number + basisPoints?: number + listing_date?: string + date_acquired?: string + sellOrders?: SellOrder[] + floor_sell_order_price?: number // Used for creating new listings expirationTime?: number marketAgnosticPrice?: number @@ -95,8 +94,8 @@ export enum ListingStatus { } export interface AssetRow { - images: string[] - name: string + images: (string | undefined)[] + name?: string status: ListingStatus callback?: () => Promise } @@ -108,7 +107,7 @@ export interface ListingRow extends AssetRow { } export interface CollectionRow extends AssetRow { - collectionAddress: string + collectionAddress?: string marketplace: ListingMarket } diff --git a/src/nft/utils/listNfts.ts b/src/nft/utils/listNfts.ts index aeee65b240..ac8c4e2268 100644 --- a/src/nft/utils/listNfts.ts +++ b/src/nft/utils/listNfts.ts @@ -62,7 +62,7 @@ const getConsiderationItems = ( creatorFee?: ConsiderationInputItem } => { const openSeaBasisPoints = OPENSEA_DEFAULT_FEE * INVERSE_BASIS_POINTS - const creatorFeeBasisPoints = asset.basisPoints + const creatorFeeBasisPoints = asset?.basisPoints ?? 0 const sellerBasisPoints = INVERSE_BASIS_POINTS - openSeaBasisPoints - creatorFeeBasisPoints const openseaFee = price.mul(BigNumber.from(openSeaBasisPoints)).div(BigNumber.from(INVERSE_BASIS_POINTS)).toString() @@ -76,7 +76,9 @@ const getConsiderationItems = ( sellerFee: createConsiderationItem(sellerFee, signerAddress), openseaFee: createConsiderationItem(openseaFee, OPENSEA_FEE_ADDRESS), creatorFee: - creatorFeeBasisPoints > 0 ? createConsiderationItem(creatorFee, asset.asset_contract.payout_address) : undefined, + creatorFeeBasisPoints > 0 + ? createConsiderationItem(creatorFee, asset?.asset_contract?.payout_address ?? '') + : undefined, } } @@ -128,7 +130,7 @@ export async function signListing( const signerAddress = await signer.getAddress() const listingPrice = asset.newListings?.find((listing) => listing.marketplace.name === marketplace.name)?.price - if (!listingPrice || !asset.expirationTime) return false + if (!listingPrice || !asset.expirationTime || !asset.asset_contract.address || !asset.tokenId) return false switch (marketplace.name) { case 'OpenSea': try { diff --git a/src/pages/App.tsx b/src/pages/App.tsx index 0f95583e27..423691432e 100644 --- a/src/pages/App.tsx +++ b/src/pages/App.tsx @@ -6,9 +6,6 @@ import TopLevelModals from 'components/TopLevelModals' import { useFeatureFlagsIsLoaded } from 'featureFlags' import ApeModeQueryParamReader from 'hooks/useApeModeQueryParamReader' import { Box } from 'nft/components/Box' -import { CollectionPageSkeleton } from 'nft/components/collection/CollectionPageSkeleton' -import { AssetDetailsLoading } from 'nft/components/details/AssetDetailsLoading' -import { ProfilePageLoadingSkeleton } from 'nft/components/profile/view/ProfilePageLoadingSkeleton' import { lazy, Suspense, useEffect, useState } from 'react' import { Navigate, Route, Routes, useLocation } from 'react-router-dom' import { useIsDarkMode } from 'state/user/hooks' @@ -251,7 +248,6 @@ export default function App() { @@ -260,7 +256,7 @@ export default function App() { }> + } @@ -268,7 +264,7 @@ export default function App() { }> + } @@ -276,7 +272,7 @@ export default function App() { }> + } @@ -284,7 +280,7 @@ export default function App() { }> + } diff --git a/src/pages/TokenDetails/index.tsx b/src/pages/TokenDetails/index.tsx index 20ee5a7067..0b6500937f 100644 --- a/src/pages/TokenDetails/index.tsx +++ b/src/pages/TokenDetails/index.tsx @@ -1,13 +1,11 @@ import TokenDetails from 'components/Tokens/TokenDetails' import { TokenDetailsPageSkeleton } from 'components/Tokens/TokenDetails/Skeleton' import { NATIVE_CHAIN_ID, nativeOnChain } from 'constants/tokens' -import { TokenQuery, tokenQuery } from 'graphql/data/Token' -import { TokenPriceQuery, tokenPriceQuery } from 'graphql/data/TokenPrice' +import { useTokenPriceQuery, useTokenQuery } from 'graphql/data/__generated__/types-and-hooks' import { CHAIN_NAME_TO_CHAIN_ID, TimePeriod, toHistoryDuration, validateUrlChainParam } from 'graphql/data/util' import { useAtom } from 'jotai' import { atomWithStorage } from 'jotai/utils' -import { Suspense, useCallback, useEffect, useMemo } from 'react' -import { useQueryLoader } from 'react-relay' +import { useMemo } from 'react' import { useParams } from 'react-router-dom' export const pageTimePeriodAtom = atomWithStorage('tokenDetailsTimePeriod', TimePeriod.DAY) @@ -26,35 +24,28 @@ export default function TokenDetailsPage() { [chain, isNative, pageChainId, timePeriod, tokenAddress] ) - const [tokenQueryReference, loadTokenQuery] = useQueryLoader(tokenQuery) - const [priceQueryReference, loadPriceQuery] = useQueryLoader(tokenPriceQuery) - - useEffect(() => { - loadTokenQuery({ contract }) - loadPriceQuery({ contract, duration }) - }, [contract, duration, loadPriceQuery, loadTokenQuery, timePeriod]) - - const refetchTokenPrices = useCallback( - (t: TimePeriod) => { - loadPriceQuery({ contract, duration: toHistoryDuration(t) }) - setTimePeriod(t) + const { data: tokenQuery, loading: tokenQueryLoading } = useTokenQuery({ + variables: { + contract, }, - [contract, loadPriceQuery, setTimePeriod] - ) + }) - if (!tokenQueryReference) { - return - } + const { data: tokenPriceQuery } = useTokenPriceQuery({ + variables: { + contract, + duration, + }, + }) + + if (!tokenQuery || tokenQueryLoading) return return ( - }> - - + ) } diff --git a/src/pages/Tokens/index.tsx b/src/pages/Tokens/index.tsx index 19cb06dbc7..0e60a12c26 100644 --- a/src/pages/Tokens/index.tsx +++ b/src/pages/Tokens/index.tsx @@ -7,12 +7,11 @@ import { filterStringAtom } from 'components/Tokens/state' import NetworkFilter from 'components/Tokens/TokenTable/NetworkFilter' import SearchBar from 'components/Tokens/TokenTable/SearchBar' import TimeSelector from 'components/Tokens/TokenTable/TimeSelector' -import TokenTable, { LoadingTokenTable } from 'components/Tokens/TokenTable/TokenTable' -import { PAGE_SIZE } from 'graphql/data/TopTokens' +import TokenTable from 'components/Tokens/TokenTable/TokenTable' import { chainIdToBackendName, isValidBackendChainName } from 'graphql/data/util' import { useOnGlobalChainSwitch } from 'hooks/useGlobalChainSwitch' import { useResetAtom } from 'jotai/utils' -import { Suspense, useEffect, useState } from 'react' +import { useEffect } from 'react' import { useLocation, useNavigate, useParams } from 'react-router-dom' import styled from 'styled-components/macro' import { ThemedText } from 'theme' @@ -75,8 +74,6 @@ const Tokens = () => { const { chainId: connectedChainId } = useWeb3React() const connectedChainName = chainIdToBackendName(connectedChainId) - const [rowCount, setRowCount] = useState(PAGE_SIZE) - useEffect(() => { resetFilterString() }, [location, resetFilterString]) @@ -110,9 +107,7 @@ const Tokens = () => { - }> - - + ) diff --git a/src/react-app-env.d.ts b/src/react-app-env.d.ts index 7768ca1d17..04f6a09fec 100644 --- a/src/react-app-env.d.ts +++ b/src/react-app-env.d.ts @@ -25,7 +25,3 @@ declare module 'multihashes' { declare function decode(buff: Uint8Array): { code: number; name: string; length: number; digest: Uint8Array } declare function toB58String(hash: Uint8Array): string } - -declare module 'babel-plugin-relay/macro' { - export { graphql as default } from 'react-relay' -} diff --git a/yarn.lock b/yarn.lock index bb32026fc8..c9d2eb81c5 100644 --- a/yarn.lock +++ b/yarn.lock @@ -91,6 +91,55 @@ "@jridgewell/gen-mapping" "^0.1.0" "@jridgewell/trace-mapping" "^0.3.9" +"@apollo/client@^3.7.2": + version "3.7.2" + resolved "https://registry.yarnpkg.com/@apollo/client/-/client-3.7.2.tgz#71b6846c1d99b81d041a1134f5679e30ec0363a0" + integrity sha512-ohAIpXl3mTa1Fd3GT/K37VwQJfTIuuJRp4aOlJ4q/hlx0Wxh+RqDrbn0awtVCOdhGDQN+CQQmVzIqFKn6GziXQ== + dependencies: + "@graphql-typed-document-node/core" "^3.1.1" + "@wry/context" "^0.7.0" + "@wry/equality" "^0.5.0" + "@wry/trie" "^0.3.0" + graphql-tag "^2.12.6" + hoist-non-react-statics "^3.3.2" + optimism "^0.16.1" + prop-types "^15.7.2" + response-iterator "^0.2.6" + symbol-observable "^4.0.0" + ts-invariant "^0.10.3" + tslib "^2.3.0" + zen-observable-ts "^1.2.5" + +"@ardatan/relay-compiler@12.0.0": + version "12.0.0" + resolved "https://registry.yarnpkg.com/@ardatan/relay-compiler/-/relay-compiler-12.0.0.tgz#2e4cca43088e807adc63450e8cab037020e91106" + integrity sha512-9anThAaj1dQr6IGmzBMcfzOQKTa5artjuPmw8NYK/fiGEMjADbSguBY2FMDykt+QhilR3wc9VA/3yVju7JHg7Q== + dependencies: + "@babel/core" "^7.14.0" + "@babel/generator" "^7.14.0" + "@babel/parser" "^7.14.0" + "@babel/runtime" "^7.0.0" + "@babel/traverse" "^7.14.0" + "@babel/types" "^7.0.0" + babel-preset-fbjs "^3.4.0" + chalk "^4.0.0" + fb-watchman "^2.0.0" + fbjs "^3.0.0" + glob "^7.1.1" + immutable "~3.7.6" + invariant "^2.2.4" + nullthrows "^1.1.1" + relay-runtime "12.0.0" + signedsource "^1.0.0" + yargs "^15.3.1" + +"@ardatan/sync-fetch@0.0.1": + version "0.0.1" + resolved "https://registry.yarnpkg.com/@ardatan/sync-fetch/-/sync-fetch-0.0.1.tgz#3385d3feedceb60a896518a1db857ec1e945348f" + integrity sha512-xhlTqH0m31mnsG0tIP4ETgfSB6gXDaYYsUWTrlUV93fFQPI9dd8hE0Ot6MHLCtqgB32hwJAC3YZMWlXZw7AleA== + dependencies: + node-fetch "^2.6.1" + "@babel/code-frame@7.10.4": version "7.10.4" resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.10.4.tgz#168da1a36e90da68ae8d49c0f1b48c7c6249213a" @@ -112,10 +161,10 @@ dependencies: "@babel/highlight" "^7.18.6" -"@babel/compat-data@^7.12.1", "@babel/compat-data@^7.16.4", "@babel/compat-data@^7.18.8": - version "7.18.8" - resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.18.8.tgz#2483f565faca607b8535590e84e7de323f27764d" - integrity sha512-HSmX4WZPPK3FUxYp7g2T6EyO8j96HlZJlxmKPSh6KAcqwyDrfx7hKjXpAW/0FhFfTJsR0Yt4lAjLI2coMptIHQ== +"@babel/compat-data@^7.12.1", "@babel/compat-data@^7.20.0", "@babel/compat-data@^7.20.1": + version "7.20.5" + resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.20.5.tgz#86f172690b093373a933223b4745deeb6049e733" + integrity sha512-KZXo2t10+/jxmkhNXc7pZTqRvSOIvVv/+lJwHS+B2rErwOyjuVRh60yVpb7liQ1U5t7lLJ1bz+t8tSypUZdm0g== "@babel/core@7.12.3": version "7.12.3" @@ -139,42 +188,42 @@ semver "^5.4.1" source-map "^0.5.0" -"@babel/core@^7.1.0", "@babel/core@^7.12.3", "@babel/core@^7.13.10", "@babel/core@^7.7.5", "@babel/core@^7.8.4": - version "7.18.10" - resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.18.10.tgz#39ad504991d77f1f3da91be0b8b949a5bc466fb8" - integrity sha512-JQM6k6ENcBFKVtWvLavlvi/mPcpYZ3+R+2EySDEMSMbp7Mn4FexlbbJVrx2R7Ijhr01T8gyqrOaABWIOgxeUyw== +"@babel/core@^7.1.0", "@babel/core@^7.12.3", "@babel/core@^7.13.10", "@babel/core@^7.14.0", "@babel/core@^7.7.5", "@babel/core@^7.8.4": + version "7.20.5" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.20.5.tgz#45e2114dc6cd4ab167f81daf7820e8fa1250d113" + integrity sha512-UdOWmk4pNWTm/4DlPUl/Pt4Gz4rcEMb7CY0Y3eJl5Yz1vI8ZJGmHWaVE55LoxRjdpx0z259GE9U5STA9atUinQ== dependencies: "@ampproject/remapping" "^2.1.0" "@babel/code-frame" "^7.18.6" - "@babel/generator" "^7.18.10" - "@babel/helper-compilation-targets" "^7.18.9" - "@babel/helper-module-transforms" "^7.18.9" - "@babel/helpers" "^7.18.9" - "@babel/parser" "^7.18.10" + "@babel/generator" "^7.20.5" + "@babel/helper-compilation-targets" "^7.20.0" + "@babel/helper-module-transforms" "^7.20.2" + "@babel/helpers" "^7.20.5" + "@babel/parser" "^7.20.5" "@babel/template" "^7.18.10" - "@babel/traverse" "^7.18.10" - "@babel/types" "^7.18.10" + "@babel/traverse" "^7.20.5" + "@babel/types" "^7.20.5" convert-source-map "^1.7.0" debug "^4.1.0" gensync "^1.0.0-beta.2" json5 "^2.2.1" semver "^6.3.0" -"@babel/generator@^7.11.6", "@babel/generator@^7.12.1", "@babel/generator@^7.18.10": - version "7.18.12" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.18.12.tgz#fa58daa303757bd6f5e4bbca91b342040463d9f4" - integrity sha512-dfQ8ebCN98SvyL7IxNMCUtZQSq5R7kxgN+r8qYTGDmmSion1hX2C0zq2yo1bsCDhXixokv1SAWTZUMYbO/V5zg== +"@babel/generator@^7.11.6", "@babel/generator@^7.12.1", "@babel/generator@^7.14.0", "@babel/generator@^7.18.13", "@babel/generator@^7.20.5": + version "7.20.5" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.20.5.tgz#cb25abee3178adf58d6814b68517c62bdbfdda95" + integrity sha512-jl7JY2Ykn9S0yj4DQP82sYvPU+T3g0HFcWTqDLqiuA9tGRNIj9VfbtXGAYTTkyNEnQk1jkMGOdYka8aG/lulCA== dependencies: - "@babel/types" "^7.18.10" + "@babel/types" "^7.20.5" "@jridgewell/gen-mapping" "^0.3.2" jsesc "^2.5.1" -"@babel/helper-annotate-as-pure@^7.0.0", "@babel/helper-annotate-as-pure@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.16.7.tgz#bb2339a7534a9c128e3102024c60760a3a7f3862" - integrity sha512-s6t2w/IPQVTAET1HitoowRGXooX8mCgtuP5195wD/QJPV6wYjpujCGF7JuMODVX2ZAJOf1GT6DT9MHEZvLOFSw== +"@babel/helper-annotate-as-pure@^7.0.0", "@babel/helper-annotate-as-pure@^7.16.7", "@babel/helper-annotate-as-pure@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.18.6.tgz#eaa49f6f80d5a33f9a5dd2276e6d6e451be0a6bb" + integrity sha512-duORpUiYrEpzKIop6iNbjnwKLAKnJ47csTyRACyEmWj0QdUrm5aqNJGHSSEQSUAvNW0ojX0dOmK9dZduvkfeXA== dependencies: - "@babel/types" "^7.16.7" + "@babel/types" "^7.18.6" "@babel/helper-builder-binary-assignment-operator-visitor@^7.16.7": version "7.16.7" @@ -184,28 +233,28 @@ "@babel/helper-explode-assignable-expression" "^7.16.7" "@babel/types" "^7.16.7" -"@babel/helper-compilation-targets@^7.12.1", "@babel/helper-compilation-targets@^7.16.7", "@babel/helper-compilation-targets@^7.18.9": - version "7.18.9" - resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.18.9.tgz#69e64f57b524cde3e5ff6cc5a9f4a387ee5563bf" - integrity sha512-tzLCyVmqUiFlcFoAPLA/gL9TeYrF61VLNtb+hvkuVaB5SUjW7jcfrglBIX1vUIoT7CLP3bBlIMeyEsIl2eFQNg== +"@babel/helper-compilation-targets@^7.12.1", "@babel/helper-compilation-targets@^7.18.9", "@babel/helper-compilation-targets@^7.20.0": + version "7.20.0" + resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.20.0.tgz#6bf5374d424e1b3922822f1d9bdaa43b1a139d0a" + integrity sha512-0jp//vDGp9e8hZzBc6N/KwA5ZK3Wsm/pfm4CrY7vzegkVxc65SgSn6wYOnwHe9Js9HRQ1YTCKLGPzDtaS3RoLQ== dependencies: - "@babel/compat-data" "^7.18.8" + "@babel/compat-data" "^7.20.0" "@babel/helper-validator-option" "^7.18.6" - browserslist "^4.20.2" + browserslist "^4.21.3" semver "^6.3.0" -"@babel/helper-create-class-features-plugin@^7.12.1", "@babel/helper-create-class-features-plugin@^7.16.10", "@babel/helper-create-class-features-plugin@^7.16.7": - version "7.17.1" - resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.17.1.tgz#9699f14a88833a7e055ce57dcd3ffdcd25186b21" - integrity sha512-JBdSr/LtyYIno/pNnJ75lBcqc3Z1XXujzPanHqjvvrhOA+DTceTFuJi8XjmWTZh4r3fsdfqaCMN0iZemdkxZHQ== +"@babel/helper-create-class-features-plugin@^7.12.1", "@babel/helper-create-class-features-plugin@^7.16.10", "@babel/helper-create-class-features-plugin@^7.16.7", "@babel/helper-create-class-features-plugin@^7.18.6": + version "7.20.5" + resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.20.5.tgz#327154eedfb12e977baa4ecc72e5806720a85a06" + integrity sha512-3RCdA/EmEaikrhayahwToF0fpweU/8o2p8vhc1c/1kftHOdTKuC65kik/TLc+qfbS8JKw4qqJbne4ovICDhmww== dependencies: - "@babel/helper-annotate-as-pure" "^7.16.7" - "@babel/helper-environment-visitor" "^7.16.7" - "@babel/helper-function-name" "^7.16.7" - "@babel/helper-member-expression-to-functions" "^7.16.7" - "@babel/helper-optimise-call-expression" "^7.16.7" - "@babel/helper-replace-supers" "^7.16.7" - "@babel/helper-split-export-declaration" "^7.16.7" + "@babel/helper-annotate-as-pure" "^7.18.6" + "@babel/helper-environment-visitor" "^7.18.9" + "@babel/helper-function-name" "^7.19.0" + "@babel/helper-member-expression-to-functions" "^7.18.9" + "@babel/helper-optimise-call-expression" "^7.18.6" + "@babel/helper-replace-supers" "^7.19.1" + "@babel/helper-split-export-declaration" "^7.18.6" "@babel/helper-create-regexp-features-plugin@^7.16.7": version "7.16.7" @@ -215,7 +264,7 @@ "@babel/helper-annotate-as-pure" "^7.16.7" regexpu-core "^4.7.1" -"@babel/helper-environment-visitor@^7.16.7", "@babel/helper-environment-visitor@^7.18.9": +"@babel/helper-environment-visitor@^7.18.9": version "7.18.9" resolved "https://registry.yarnpkg.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.9.tgz#0c0cee9b35d2ca190478756865bb3528422f51be" integrity sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg== @@ -227,13 +276,13 @@ dependencies: "@babel/types" "^7.16.7" -"@babel/helper-function-name@^7.16.7", "@babel/helper-function-name@^7.18.9": - version "7.18.9" - resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.18.9.tgz#940e6084a55dee867d33b4e487da2676365e86b0" - integrity sha512-fJgWlZt7nxGksJS9a0XdSaI4XvpExnNIgRP+rVefWh5U7BL8pPuir6SJUmFKRfjWQ51OtWSzwOxhaH/EBWWc0A== +"@babel/helper-function-name@^7.16.7", "@babel/helper-function-name@^7.18.9", "@babel/helper-function-name@^7.19.0": + version "7.19.0" + resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.19.0.tgz#941574ed5390682e872e52d3f38ce9d1bef4648c" + integrity sha512-WAwHBINyrpqywkUH0nTnNgI5ina5TFn85HKS0pbPDfxFfhyR/aNQEn4hGi1P1JyT//I0t4OgXUlofzWILRvS5w== dependencies: - "@babel/template" "^7.18.6" - "@babel/types" "^7.18.9" + "@babel/template" "^7.18.10" + "@babel/types" "^7.19.0" "@babel/helper-hoist-variables@^7.16.7", "@babel/helper-hoist-variables@^7.18.6": version "7.18.6" @@ -242,12 +291,12 @@ dependencies: "@babel/types" "^7.18.6" -"@babel/helper-member-expression-to-functions@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.16.7.tgz#42b9ca4b2b200123c3b7e726b0ae5153924905b0" - integrity sha512-VtJ/65tYiU/6AbMTDwyoXGPKHgTsfRarivm+YbB5uAzKUyuPjgZSgAFeG87FCigc7KNHu2Pegh1XIT3lXjvz3Q== +"@babel/helper-member-expression-to-functions@^7.18.9": + version "7.18.9" + resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.18.9.tgz#1531661e8375af843ad37ac692c132841e2fd815" + integrity sha512-RxifAh2ZoVU67PyKIO4AMi1wTenGfMR/O/ae0CCRqwgBAt5v7xjdtRw7UoSbsreKrQn5t7r89eruK/9JjYHuDg== dependencies: - "@babel/types" "^7.16.7" + "@babel/types" "^7.18.9" "@babel/helper-module-imports@^7.0.0", "@babel/helper-module-imports@^7.12.1", "@babel/helper-module-imports@^7.16.7", "@babel/helper-module-imports@^7.18.6": version "7.18.6" @@ -256,31 +305,31 @@ dependencies: "@babel/types" "^7.18.6" -"@babel/helper-module-transforms@^7.12.1", "@babel/helper-module-transforms@^7.16.7", "@babel/helper-module-transforms@^7.18.9": - version "7.18.9" - resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.18.9.tgz#5a1079c005135ed627442df31a42887e80fcb712" - integrity sha512-KYNqY0ICwfv19b31XzvmI/mfcylOzbLtowkw+mfvGPAQ3kfCnMLYbED3YecL5tPd8nAYFQFAd6JHp2LxZk/J1g== +"@babel/helper-module-transforms@^7.12.1", "@babel/helper-module-transforms@^7.16.7", "@babel/helper-module-transforms@^7.19.6", "@babel/helper-module-transforms@^7.20.2": + version "7.20.2" + resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.20.2.tgz#ac53da669501edd37e658602a21ba14c08748712" + integrity sha512-zvBKyJXRbmK07XhMuujYoJ48B5yvvmM6+wcpv6Ivj4Yg6qO7NOZOSnvZN9CRl1zz1Z4cKf8YejmCMh8clOoOeA== dependencies: "@babel/helper-environment-visitor" "^7.18.9" "@babel/helper-module-imports" "^7.18.6" - "@babel/helper-simple-access" "^7.18.6" + "@babel/helper-simple-access" "^7.20.2" "@babel/helper-split-export-declaration" "^7.18.6" - "@babel/helper-validator-identifier" "^7.18.6" - "@babel/template" "^7.18.6" - "@babel/traverse" "^7.18.9" - "@babel/types" "^7.18.9" + "@babel/helper-validator-identifier" "^7.19.1" + "@babel/template" "^7.18.10" + "@babel/traverse" "^7.20.1" + "@babel/types" "^7.20.2" -"@babel/helper-optimise-call-expression@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.16.7.tgz#a34e3560605abbd31a18546bd2aad3e6d9a174f2" - integrity sha512-EtgBhg7rd/JcnpZFXpBy0ze1YRfdm7BnBX4uKMBd3ixa3RGAE002JZB66FJyNH7g0F38U05pXmA5P8cBh7z+1w== +"@babel/helper-optimise-call-expression@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.18.6.tgz#9369aa943ee7da47edab2cb4e838acf09d290ffe" + integrity sha512-HP59oD9/fEHQkdcbgFCnbmgH5vIQTJbxh2yf+CdM89/glUNnuzr87Q8GIjGEnOktTROemO0Pe0iPAYbqZuOUiA== dependencies: - "@babel/types" "^7.16.7" + "@babel/types" "^7.18.6" -"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.12.13", "@babel/helper-plugin-utils@^7.14.5", "@babel/helper-plugin-utils@^7.16.7", "@babel/helper-plugin-utils@^7.8.0", "@babel/helper-plugin-utils@^7.8.3": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.16.7.tgz#aa3a8ab4c3cceff8e65eb9e73d87dc4ff320b2f5" - integrity sha512-Qg3Nk7ZxpgMrsox6HreY1ZNKdBq7K72tDSliA6dCl5f007jR4ne8iD5UzuNnCJH2xBf2BEEVGr+/OL6Gdp7RxA== +"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.12.13", "@babel/helper-plugin-utils@^7.14.5", "@babel/helper-plugin-utils@^7.16.7", "@babel/helper-plugin-utils@^7.18.6", "@babel/helper-plugin-utils@^7.18.9", "@babel/helper-plugin-utils@^7.19.0", "@babel/helper-plugin-utils@^7.20.2", "@babel/helper-plugin-utils@^7.8.0", "@babel/helper-plugin-utils@^7.8.3": + version "7.20.2" + resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.20.2.tgz#d1b9000752b18d0877cff85a5c376ce5c3121629" + integrity sha512-8RvlJG2mj4huQ4pZ+rU9lqKi9ZKiRmuvGuM2HlWmkmgOhbs6zEAw6IEiJ5cQqGbDzGZOhwuOQNtZMi/ENLjZoQ== "@babel/helper-remap-async-to-generator@^7.16.8": version "7.16.8" @@ -291,47 +340,47 @@ "@babel/helper-wrap-function" "^7.16.8" "@babel/types" "^7.16.8" -"@babel/helper-replace-supers@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.16.7.tgz#e9f5f5f32ac90429c1a4bdec0f231ef0c2838ab1" - integrity sha512-y9vsWilTNaVnVh6xiJfABzsNpgDPKev9HnAgz6Gb1p6UUwf9NepdlsV7VXGCftJM+jqD5f7JIEubcpLjZj5dBw== +"@babel/helper-replace-supers@^7.18.6", "@babel/helper-replace-supers@^7.19.1": + version "7.19.1" + resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.19.1.tgz#e1592a9b4b368aa6bdb8784a711e0bcbf0612b78" + integrity sha512-T7ahH7wV0Hfs46SFh5Jz3s0B6+o8g3c+7TMxu7xKfmHikg7EAZ3I2Qk9LFhjxXq8sL7UkP5JflezNwoZa8WvWw== dependencies: - "@babel/helper-environment-visitor" "^7.16.7" - "@babel/helper-member-expression-to-functions" "^7.16.7" - "@babel/helper-optimise-call-expression" "^7.16.7" - "@babel/traverse" "^7.16.7" - "@babel/types" "^7.16.7" + "@babel/helper-environment-visitor" "^7.18.9" + "@babel/helper-member-expression-to-functions" "^7.18.9" + "@babel/helper-optimise-call-expression" "^7.18.6" + "@babel/traverse" "^7.19.1" + "@babel/types" "^7.19.0" -"@babel/helper-simple-access@^7.16.7", "@babel/helper-simple-access@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.18.6.tgz#d6d8f51f4ac2978068df934b569f08f29788c7ea" - integrity sha512-iNpIgTgyAvDQpDj76POqg+YEt8fPxx3yaNBg3S30dxNKm2SWfYhD0TGrK/Eu9wHpUW63VQU894TsTg+GLbUa1g== +"@babel/helper-simple-access@^7.19.4", "@babel/helper-simple-access@^7.20.2": + version "7.20.2" + resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.20.2.tgz#0ab452687fe0c2cfb1e2b9e0015de07fc2d62dd9" + integrity sha512-+0woI/WPq59IrqDYbVGfshjT5Dmk/nnbdpcF8SnMhhXObpTq2KNBdLFRFrkVdbDOyUmHBCxzm5FHV1rACIkIbA== dependencies: - "@babel/types" "^7.18.6" + "@babel/types" "^7.20.2" -"@babel/helper-skip-transparent-expression-wrappers@^7.12.1", "@babel/helper-skip-transparent-expression-wrappers@^7.16.0": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.16.0.tgz#0ee3388070147c3ae051e487eca3ebb0e2e8bb09" - integrity sha512-+il1gTy0oHwUsBQZyJvukbB4vPMdcYBrFHa0Uc4AizLxbq6BOYC51Rv4tWocX9BLBDLZ4kc6qUFpQ6HRgL+3zw== +"@babel/helper-skip-transparent-expression-wrappers@^7.12.1", "@babel/helper-skip-transparent-expression-wrappers@^7.18.9": + version "7.20.0" + resolved "https://registry.yarnpkg.com/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.20.0.tgz#fbe4c52f60518cab8140d77101f0e63a8a230684" + integrity sha512-5y1JYeNKfvnT8sZcK9DVRtpTbGiomYIHviSP3OQWmDPU3DeH4a1ZlT/N2lyQ5P8egjcRaT/Y9aNqUxK0WsnIIg== dependencies: - "@babel/types" "^7.16.0" + "@babel/types" "^7.20.0" -"@babel/helper-split-export-declaration@^7.16.7", "@babel/helper-split-export-declaration@^7.18.6": +"@babel/helper-split-export-declaration@^7.18.6": version "7.18.6" resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz#7367949bc75b20c6d5a5d4a97bba2824ae8ef075" integrity sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA== dependencies: "@babel/types" "^7.18.6" -"@babel/helper-string-parser@^7.18.10": - version "7.18.10" - resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.18.10.tgz#181f22d28ebe1b3857fa575f5c290b1aaf659b56" - integrity sha512-XtIfWmeNY3i4t7t4D2t02q50HvqHybPqW2ki1kosnvWCwuCMeo81Jf0gwr85jy/neUdg5XDdeFE/80DXiO+njw== +"@babel/helper-string-parser@^7.19.4": + version "7.19.4" + resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.19.4.tgz#38d3acb654b4701a9b77fb0615a96f775c3a9e63" + integrity sha512-nHtDoQcuqFmwYNYPz3Rah5ph2p8PFeFCsZk9A/48dPc/rGocJ5J3hAAZ7pb76VWX3fZKu+uEr/FhH5jLx7umrw== -"@babel/helper-validator-identifier@^7.16.7", "@babel/helper-validator-identifier@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.18.6.tgz#9c97e30d31b2b8c72a1d08984f2ca9b574d7a076" - integrity sha512-MmetCkz9ej86nJQV+sFCxoGGrUbU3q02kgLciwkrt9QqEB7cP39oKEY0PakknEO0Gu20SskMRi+AYZ3b1TpN9g== +"@babel/helper-validator-identifier@^7.16.7", "@babel/helper-validator-identifier@^7.18.6", "@babel/helper-validator-identifier@^7.19.1": + version "7.19.1" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz#7eea834cf32901ffdc1a7ee555e2f9c27e249ca2" + integrity sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w== "@babel/helper-validator-option@^7.12.1", "@babel/helper-validator-option@^7.16.7", "@babel/helper-validator-option@^7.18.6": version "7.18.6" @@ -348,14 +397,14 @@ "@babel/traverse" "^7.16.8" "@babel/types" "^7.16.8" -"@babel/helpers@^7.12.1", "@babel/helpers@^7.18.9": - version "7.18.9" - resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.18.9.tgz#4bef3b893f253a1eced04516824ede94dcfe7ff9" - integrity sha512-Jf5a+rbrLoR4eNdUmnFu8cN5eNJT6qdTdOg5IHIzq87WwyRw9PwguLFOWYgktN/60IP4fgDUawJvs7PjQIzELQ== +"@babel/helpers@^7.12.1", "@babel/helpers@^7.20.5": + version "7.20.6" + resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.20.6.tgz#e64778046b70e04779dfbdf924e7ebb45992c763" + integrity sha512-Pf/OjgfgFRW5bApskEz5pvidpim7tEDPlFtKcNRXWmfHGn9IEI2W2flqRQXTFb7gIPTyK++N6rVHuwKut4XK6w== dependencies: - "@babel/template" "^7.18.6" - "@babel/traverse" "^7.18.9" - "@babel/types" "^7.18.9" + "@babel/template" "^7.18.10" + "@babel/traverse" "^7.20.5" + "@babel/types" "^7.20.5" "@babel/highlight@^7.10.4", "@babel/highlight@^7.18.6": version "7.18.6" @@ -366,10 +415,10 @@ chalk "^2.0.0" js-tokens "^4.0.0" -"@babel/parser@^7.1.0", "@babel/parser@^7.11.5", "@babel/parser@^7.12.3", "@babel/parser@^7.18.10", "@babel/parser@^7.18.11", "@babel/parser@^7.7.0": - version "7.18.11" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.18.11.tgz#68bb07ab3d380affa9a3f96728df07969645d2d9" - integrity sha512-9JKn5vN+hDt0Hdqn1PiJ2guflwP+B6Ga8qbDuoF0PzzVhrzsKIJo8yGqVk6CmMHiMei9w1C1Bp9IMJSIK+HPIQ== +"@babel/parser@^7.1.0", "@babel/parser@^7.11.5", "@babel/parser@^7.12.3", "@babel/parser@^7.14.0", "@babel/parser@^7.16.8", "@babel/parser@^7.18.10", "@babel/parser@^7.20.5", "@babel/parser@^7.7.0": + version "7.20.5" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.20.5.tgz#7f3c7335fe417665d929f34ae5dceae4c04015e8" + integrity sha512-r27t/cy/m9uKLXQNWWebeCUHgnAZq0CpG1OwKRxzJMP1vpSU4bSIK2hq+/cp0bQxetkXx38n09rNu8jVkcK/zA== "@babel/plugin-proposal-async-generator-functions@^7.12.1": version "7.16.8" @@ -380,7 +429,7 @@ "@babel/helper-remap-async-to-generator" "^7.16.8" "@babel/plugin-syntax-async-generators" "^7.8.4" -"@babel/plugin-proposal-class-properties@7.12.1", "@babel/plugin-proposal-class-properties@^7.12.1": +"@babel/plugin-proposal-class-properties@7.12.1": version "7.12.1" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.12.1.tgz#a082ff541f2a29a4821065b8add9346c0c16e5de" integrity sha512-cKp3dlQsFsEs5CWKnN7BnSHOd0EOW8EKpEjkoz1pO2E5KzIDNV9Ros1b0CnmbVgAGXJubOYVBOGCT1OmJwOI7w== @@ -388,6 +437,14 @@ "@babel/helper-create-class-features-plugin" "^7.12.1" "@babel/helper-plugin-utils" "^7.10.4" +"@babel/plugin-proposal-class-properties@^7.0.0", "@babel/plugin-proposal-class-properties@^7.12.1": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.18.6.tgz#b110f59741895f7ec21a6fff696ec46265c446a3" + integrity sha512-cumfXOF0+nzZrrN8Rf0t7M+tF6sZc7vhQwYQck9q1/5w2OExlD+b4v4RpMJFaV1Z7WcDRgO6FqvxqxGlwo+RHQ== + dependencies: + "@babel/helper-create-class-features-plugin" "^7.18.6" + "@babel/helper-plugin-utils" "^7.18.6" + "@babel/plugin-proposal-decorators@7.12.1": version "7.12.1" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.12.1.tgz#59271439fed4145456c41067450543aee332d15f" @@ -445,16 +502,16 @@ "@babel/helper-plugin-utils" "^7.10.4" "@babel/plugin-syntax-numeric-separator" "^7.10.4" -"@babel/plugin-proposal-object-rest-spread@^7.12.1": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.16.7.tgz#94593ef1ddf37021a25bdcb5754c4a8d534b01d8" - integrity sha512-3O0Y4+dw94HA86qSg9IHfyPktgR7q3gpNVAeiKQd+8jBKFaU5NQS1Yatgo4wY+UFNuLjvxcSmzcsHqrhgTyBUA== +"@babel/plugin-proposal-object-rest-spread@^7.0.0", "@babel/plugin-proposal-object-rest-spread@^7.12.1": + version "7.20.2" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.20.2.tgz#a556f59d555f06961df1e572bb5eca864c84022d" + integrity sha512-Ks6uej9WFK+fvIMesSqbAto5dD8Dz4VuuFvGJFKgIGSkJuRGcrwGECPA1fDgQK3/DbExBJpEkTeYeB8geIFCSQ== dependencies: - "@babel/compat-data" "^7.16.4" - "@babel/helper-compilation-targets" "^7.16.7" - "@babel/helper-plugin-utils" "^7.16.7" + "@babel/compat-data" "^7.20.1" + "@babel/helper-compilation-targets" "^7.20.0" + "@babel/helper-plugin-utils" "^7.20.2" "@babel/plugin-syntax-object-rest-spread" "^7.8.3" - "@babel/plugin-transform-parameters" "^7.16.7" + "@babel/plugin-transform-parameters" "^7.20.1" "@babel/plugin-proposal-optional-catch-binding@^7.12.1": version "7.16.7" @@ -503,7 +560,7 @@ dependencies: "@babel/helper-plugin-utils" "^7.8.0" -"@babel/plugin-syntax-class-properties@^7.12.1", "@babel/plugin-syntax-class-properties@^7.8.3": +"@babel/plugin-syntax-class-properties@^7.0.0", "@babel/plugin-syntax-class-properties@^7.12.1", "@babel/plugin-syntax-class-properties@^7.8.3": 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== @@ -531,12 +588,19 @@ dependencies: "@babel/helper-plugin-utils" "^7.8.3" -"@babel/plugin-syntax-flow@^7.12.1": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.14.5.tgz#2ff654999497d7d7d142493260005263731da180" - integrity sha512-9WK5ZwKCdWHxVuU13XNT6X73FGmutAXeor5lGFq6qhOFtMFUF4jkbijuyUdZZlpYq6E2hZeZf/u3959X9wsv0Q== +"@babel/plugin-syntax-flow@^7.0.0", "@babel/plugin-syntax-flow@^7.12.1", "@babel/plugin-syntax-flow@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.18.6.tgz#774d825256f2379d06139be0c723c4dd444f3ca1" + integrity sha512-LUbR+KNTBWCUAqRG9ex5Gnzu2IOkt8jRJbHHXFT9q+L9zm7M/QQbEqXyw1n1pohYvOyWC8CjeyjrSaIwiYjK7A== dependencies: - "@babel/helper-plugin-utils" "^7.14.5" + "@babel/helper-plugin-utils" "^7.18.6" + +"@babel/plugin-syntax-import-assertions@7.20.0": + version "7.20.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.20.0.tgz#bb50e0d4bea0957235390641209394e87bdb9cc4" + integrity sha512-IUh1vakzNoWalR8ch/areW7qFopR2AEw03JlG7BbrDqmQ4X3q9uuipQwSGrUn7oGiemKjtSLDhNtQHzMHr1JdQ== + dependencies: + "@babel/helper-plugin-utils" "^7.19.0" "@babel/plugin-syntax-import-meta@^7.8.3": version "7.10.4" @@ -552,12 +616,12 @@ dependencies: "@babel/helper-plugin-utils" "^7.8.0" -"@babel/plugin-syntax-jsx@^7.10.4", "@babel/plugin-syntax-jsx@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.16.7.tgz#50b6571d13f764266a113d77c82b4a6508bbe665" - integrity sha512-Esxmk7YjA8QysKeT3VhTXvF6y77f/a91SIs4pWb4H2eWGQkCKFgQaG6hdoEVZtGsrAcb2K5BW66XsOErD4WU3Q== +"@babel/plugin-syntax-jsx@^7.0.0", "@babel/plugin-syntax-jsx@^7.10.4", "@babel/plugin-syntax-jsx@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.18.6.tgz#a8feef63b010150abd97f1649ec296e849943ca0" + integrity sha512-6mmljtAedFGTWu2p/8WIORGwy+61PLgOMPOdazc7YoJ9ZCWUyFy3A6CpPkRKLKD1ToAesxX8KGEViAiLo9N+7Q== dependencies: - "@babel/helper-plugin-utils" "^7.16.7" + "@babel/helper-plugin-utils" "^7.18.6" "@babel/plugin-syntax-logical-assignment-operators@^7.10.4", "@babel/plugin-syntax-logical-assignment-operators@^7.8.3": version "7.10.4" @@ -580,7 +644,7 @@ dependencies: "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-syntax-object-rest-spread@^7.8.0", "@babel/plugin-syntax-object-rest-spread@^7.8.3": +"@babel/plugin-syntax-object-rest-spread@^7.0.0", "@babel/plugin-syntax-object-rest-spread@^7.8.0", "@babel/plugin-syntax-object-rest-spread@^7.8.3": 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== @@ -615,12 +679,12 @@ dependencies: "@babel/helper-plugin-utils" "^7.16.7" -"@babel/plugin-transform-arrow-functions@^7.12.1": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.16.7.tgz#44125e653d94b98db76369de9c396dc14bef4154" - integrity sha512-9ffkFFMbvzTvv+7dTp/66xvZAWASuPD5Tl9LK3Z9vhOmANo6j94rik+5YMBt4CwHVMWLWpMsriIc2zsa3WW3xQ== +"@babel/plugin-transform-arrow-functions@^7.0.0", "@babel/plugin-transform-arrow-functions@^7.12.1": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.18.6.tgz#19063fcf8771ec7b31d742339dac62433d0611fe" + integrity sha512-9S9X9RUefzrsHZmKMbDXxweEH+YlE8JJEuat9FdvW9Qh1cw7W64jELCtWNkPBPX5En45uy28KGvA/AySqUh8CQ== dependencies: - "@babel/helper-plugin-utils" "^7.16.7" + "@babel/helper-plugin-utils" "^7.18.6" "@babel/plugin-transform-async-to-generator@^7.12.1": version "7.16.8" @@ -631,47 +695,48 @@ "@babel/helper-plugin-utils" "^7.16.7" "@babel/helper-remap-async-to-generator" "^7.16.8" -"@babel/plugin-transform-block-scoped-functions@^7.12.1": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.16.7.tgz#4d0d57d9632ef6062cdf354bb717102ee042a620" - integrity sha512-JUuzlzmF40Z9cXyytcbZEZKckgrQzChbQJw/5PuEHYeqzCsvebDx0K0jWnIIVcmmDOAVctCgnYs0pMcrYj2zJg== +"@babel/plugin-transform-block-scoped-functions@^7.0.0", "@babel/plugin-transform-block-scoped-functions@^7.12.1": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.18.6.tgz#9187bf4ba302635b9d70d986ad70f038726216a8" + integrity sha512-ExUcOqpPWnliRcPqves5HJcJOvHvIIWfuS4sroBUenPuMdmW+SMHDakmtS7qOo13sVppmUijqeTv7qqGsvURpQ== dependencies: - "@babel/helper-plugin-utils" "^7.16.7" + "@babel/helper-plugin-utils" "^7.18.6" -"@babel/plugin-transform-block-scoping@^7.12.1": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.16.7.tgz#f50664ab99ddeaee5bc681b8f3a6ea9d72ab4f87" - integrity sha512-ObZev2nxVAYA4bhyusELdo9hb3H+A56bxH3FZMbEImZFiEDYVHXQSJ1hQKFlDnlt8G9bBrCZ5ZpURZUrV4G5qQ== +"@babel/plugin-transform-block-scoping@^7.0.0", "@babel/plugin-transform-block-scoping@^7.12.1": + version "7.20.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.20.5.tgz#401215f9dc13dc5262940e2e527c9536b3d7f237" + integrity sha512-WvpEIW9Cbj9ApF3yJCjIEEf1EiNJLtXagOrL5LNWEZOo3jv8pmPoYTSNJQvqej8OavVlgOoOPw6/htGZro6IkA== dependencies: - "@babel/helper-plugin-utils" "^7.16.7" + "@babel/helper-plugin-utils" "^7.20.2" -"@babel/plugin-transform-classes@^7.12.1": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.16.7.tgz#8f4b9562850cd973de3b498f1218796eb181ce00" - integrity sha512-WY7og38SFAGYRe64BrjKf8OrE6ulEHtr5jEYaZMwox9KebgqPi67Zqz8K53EKk1fFEJgm96r32rkKZ3qA2nCWQ== +"@babel/plugin-transform-classes@^7.0.0", "@babel/plugin-transform-classes@^7.12.1": + version "7.20.2" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.20.2.tgz#c0033cf1916ccf78202d04be4281d161f6709bb2" + integrity sha512-9rbPp0lCVVoagvtEyQKSo5L8oo0nQS/iif+lwlAz29MccX2642vWDlSZK+2T2buxbopotId2ld7zZAzRfz9j1g== dependencies: - "@babel/helper-annotate-as-pure" "^7.16.7" - "@babel/helper-environment-visitor" "^7.16.7" - "@babel/helper-function-name" "^7.16.7" - "@babel/helper-optimise-call-expression" "^7.16.7" - "@babel/helper-plugin-utils" "^7.16.7" - "@babel/helper-replace-supers" "^7.16.7" - "@babel/helper-split-export-declaration" "^7.16.7" + "@babel/helper-annotate-as-pure" "^7.18.6" + "@babel/helper-compilation-targets" "^7.20.0" + "@babel/helper-environment-visitor" "^7.18.9" + "@babel/helper-function-name" "^7.19.0" + "@babel/helper-optimise-call-expression" "^7.18.6" + "@babel/helper-plugin-utils" "^7.20.2" + "@babel/helper-replace-supers" "^7.19.1" + "@babel/helper-split-export-declaration" "^7.18.6" globals "^11.1.0" -"@babel/plugin-transform-computed-properties@^7.12.1": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.16.7.tgz#66dee12e46f61d2aae7a73710f591eb3df616470" - integrity sha512-gN72G9bcmenVILj//sv1zLNaPyYcOzUho2lIJBMh/iakJ9ygCo/hEF9cpGb61SCMEDxbbyBoVQxrt+bWKu5KGw== +"@babel/plugin-transform-computed-properties@^7.0.0", "@babel/plugin-transform-computed-properties@^7.12.1": + version "7.18.9" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.18.9.tgz#2357a8224d402dad623caf6259b611e56aec746e" + integrity sha512-+i0ZU1bCDymKakLxn5srGHrsAPRELC2WIbzwjLhHW9SIE1cPYkLCL0NlnXMZaM1vhfgA2+M7hySk42VBvrkBRw== dependencies: - "@babel/helper-plugin-utils" "^7.16.7" + "@babel/helper-plugin-utils" "^7.18.9" -"@babel/plugin-transform-destructuring@^7.12.1": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.16.7.tgz#ca9588ae2d63978a4c29d3f33282d8603f618e23" - integrity sha512-VqAwhTHBnu5xBVDCvrvqJbtLUa++qZaWC0Fgr2mqokBlulZARGyIvZDoqbPlPaKImQ9dKAcCzbv+ul//uqu70A== +"@babel/plugin-transform-destructuring@^7.0.0", "@babel/plugin-transform-destructuring@^7.12.1": + version "7.20.2" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.20.2.tgz#c23741cfa44ddd35f5e53896e88c75331b8b2792" + integrity sha512-mENM+ZHrvEgxLTBXUiQ621rRXZes3KWUv6NdQlrnr1TkWVw+hUjQBZuP2X32qKlrlG2BzgR95gkuCRSkJl8vIw== dependencies: - "@babel/helper-plugin-utils" "^7.16.7" + "@babel/helper-plugin-utils" "^7.20.2" "@babel/plugin-transform-dotall-regex@^7.12.1", "@babel/plugin-transform-dotall-regex@^7.4.4": version "7.16.7" @@ -704,35 +769,43 @@ "@babel/helper-plugin-utils" "^7.10.4" "@babel/plugin-syntax-flow" "^7.12.1" -"@babel/plugin-transform-for-of@^7.12.1": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.16.7.tgz#649d639d4617dff502a9a158c479b3b556728d8c" - integrity sha512-/QZm9W92Ptpw7sjI9Nx1mbcsWz33+l8kuMIQnDwgQBG5s3fAfQvkRjQ7NqXhtNcKOnPkdICmUHyCaWW06HCsqg== +"@babel/plugin-transform-flow-strip-types@^7.0.0": + version "7.19.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.19.0.tgz#e9e8606633287488216028719638cbbb2f2dde8f" + integrity sha512-sgeMlNaQVbCSpgLSKP4ZZKfsJVnFnNQlUSk6gPYzR/q7tzCgQF2t8RBKAP6cKJeZdveei7Q7Jm527xepI8lNLg== dependencies: - "@babel/helper-plugin-utils" "^7.16.7" + "@babel/helper-plugin-utils" "^7.19.0" + "@babel/plugin-syntax-flow" "^7.18.6" -"@babel/plugin-transform-function-name@^7.12.1": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.16.7.tgz#5ab34375c64d61d083d7d2f05c38d90b97ec65cf" - integrity sha512-SU/C68YVwTRxqWj5kgsbKINakGag0KTgq9f2iZEXdStoAbOzLHEBRYzImmA6yFo8YZhJVflvXmIHUO7GWHmxxA== +"@babel/plugin-transform-for-of@^7.0.0", "@babel/plugin-transform-for-of@^7.12.1": + version "7.18.8" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.18.8.tgz#6ef8a50b244eb6a0bdbad0c7c61877e4e30097c1" + integrity sha512-yEfTRnjuskWYo0k1mHUqrVWaZwrdq8AYbfrpqULOJOaucGSp4mNMVps+YtA8byoevxS/urwU75vyhQIxcCgiBQ== dependencies: - "@babel/helper-compilation-targets" "^7.16.7" - "@babel/helper-function-name" "^7.16.7" - "@babel/helper-plugin-utils" "^7.16.7" + "@babel/helper-plugin-utils" "^7.18.6" -"@babel/plugin-transform-literals@^7.12.1": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.16.7.tgz#254c9618c5ff749e87cb0c0cef1a0a050c0bdab1" - integrity sha512-6tH8RTpTWI0s2sV6uq3e/C9wPo4PTqqZps4uF0kzQ9/xPLFQtipynvmT1g/dOfEJ+0EQsHhkQ/zyRId8J2b8zQ== +"@babel/plugin-transform-function-name@^7.0.0", "@babel/plugin-transform-function-name@^7.12.1": + version "7.18.9" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.18.9.tgz#cc354f8234e62968946c61a46d6365440fc764e0" + integrity sha512-WvIBoRPaJQ5yVHzcnJFor7oS5Ls0PYixlTYE63lCj2RtdQEl15M68FXQlxnG6wdraJIXRdR7KI+hQ7q/9QjrCQ== dependencies: - "@babel/helper-plugin-utils" "^7.16.7" + "@babel/helper-compilation-targets" "^7.18.9" + "@babel/helper-function-name" "^7.18.9" + "@babel/helper-plugin-utils" "^7.18.9" -"@babel/plugin-transform-member-expression-literals@^7.12.1": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.16.7.tgz#6e5dcf906ef8a098e630149d14c867dd28f92384" - integrity sha512-mBruRMbktKQwbxaJof32LT9KLy2f3gH+27a5XSuXo6h7R3vqltl0PgZ80C8ZMKw98Bf8bqt6BEVi3svOh2PzMw== +"@babel/plugin-transform-literals@^7.0.0", "@babel/plugin-transform-literals@^7.12.1": + version "7.18.9" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.18.9.tgz#72796fdbef80e56fba3c6a699d54f0de557444bc" + integrity sha512-IFQDSRoTPnrAIrI5zoZv73IFeZu2dhu6irxQjY9rNjTT53VmKg9fenjvoiOWOkJ6mm4jKVPtdMzBY98Fp4Z4cg== dependencies: - "@babel/helper-plugin-utils" "^7.16.7" + "@babel/helper-plugin-utils" "^7.18.9" + +"@babel/plugin-transform-member-expression-literals@^7.0.0", "@babel/plugin-transform-member-expression-literals@^7.12.1": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.18.6.tgz#ac9fdc1a118620ac49b7e7a5d2dc177a1bfee88e" + integrity sha512-qSF1ihLGO3q+/g48k85tUjD033C29TNTVB2paCwZPVmOsjn9pClvYYrM2VeJpBY2bcNkuny0YUyTNRyRxJ54KA== + dependencies: + "@babel/helper-plugin-utils" "^7.18.6" "@babel/plugin-transform-modules-amd@^7.12.1": version "7.16.7" @@ -743,15 +816,14 @@ "@babel/helper-plugin-utils" "^7.16.7" babel-plugin-dynamic-import-node "^2.3.3" -"@babel/plugin-transform-modules-commonjs@^7.12.1": - version "7.16.8" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.16.8.tgz#cdee19aae887b16b9d331009aa9a219af7c86afe" - integrity sha512-oflKPvsLT2+uKQopesJt3ApiaIS2HW+hzHFcwRNtyDGieAeC/dIHZX8buJQ2J2X1rxGPy4eRcUijm3qcSPjYcA== +"@babel/plugin-transform-modules-commonjs@^7.0.0", "@babel/plugin-transform-modules-commonjs@^7.12.1": + version "7.19.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.19.6.tgz#25b32feef24df8038fc1ec56038917eacb0b730c" + integrity sha512-8PIa1ym4XRTKuSsOUXqDG0YaOlEuTVvHMe5JCfgBMOtHvJKw/4NGovEGN33viISshG/rZNVrACiBmPQLvWN8xQ== dependencies: - "@babel/helper-module-transforms" "^7.16.7" - "@babel/helper-plugin-utils" "^7.16.7" - "@babel/helper-simple-access" "^7.16.7" - babel-plugin-dynamic-import-node "^2.3.3" + "@babel/helper-module-transforms" "^7.19.6" + "@babel/helper-plugin-utils" "^7.19.0" + "@babel/helper-simple-access" "^7.19.4" "@babel/plugin-transform-modules-systemjs@^7.12.1": version "7.16.7" @@ -786,27 +858,27 @@ dependencies: "@babel/helper-plugin-utils" "^7.16.7" -"@babel/plugin-transform-object-super@^7.12.1": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.16.7.tgz#ac359cf8d32cf4354d27a46867999490b6c32a94" - integrity sha512-14J1feiQVWaGvRxj2WjyMuXS2jsBkgB3MdSN5HuC2G5nRspa5RK9COcs82Pwy5BuGcjb+fYaUj94mYcOj7rCvw== +"@babel/plugin-transform-object-super@^7.0.0", "@babel/plugin-transform-object-super@^7.12.1": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.18.6.tgz#fb3c6ccdd15939b6ff7939944b51971ddc35912c" + integrity sha512-uvGz6zk+pZoS1aTZrOvrbj6Pp/kK2mp45t2B+bTDre2UgsZZ8EZLSJtUg7m/no0zOJUWgFONpB7Zv9W2tSaFlA== dependencies: - "@babel/helper-plugin-utils" "^7.16.7" - "@babel/helper-replace-supers" "^7.16.7" + "@babel/helper-plugin-utils" "^7.18.6" + "@babel/helper-replace-supers" "^7.18.6" -"@babel/plugin-transform-parameters@^7.12.1", "@babel/plugin-transform-parameters@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.16.7.tgz#a1721f55b99b736511cb7e0152f61f17688f331f" - integrity sha512-AT3MufQ7zZEhU2hwOA11axBnExW0Lszu4RL/tAlUJBuNoRak+wehQW8h6KcXOcgjY42fHtDxswuMhMjFEuv/aw== +"@babel/plugin-transform-parameters@^7.0.0", "@babel/plugin-transform-parameters@^7.12.1", "@babel/plugin-transform-parameters@^7.20.1": + version "7.20.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.20.5.tgz#f8f9186c681d10c3de7620c916156d893c8a019e" + integrity sha512-h7plkOmcndIUWXZFLgpbrh2+fXAi47zcUX7IrOQuZdLD0I0KvjJ6cvo3BEcAOsDOcZhVKGJqv07mkSqK0y2isQ== dependencies: - "@babel/helper-plugin-utils" "^7.16.7" + "@babel/helper-plugin-utils" "^7.20.2" -"@babel/plugin-transform-property-literals@^7.12.1": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.16.7.tgz#2dadac85155436f22c696c4827730e0fe1057a55" - integrity sha512-z4FGr9NMGdoIl1RqavCqGG+ZuYjfZ/hkCIeuH6Do7tXmSm0ls11nYVSJqFEUOSJbDab5wC6lRE/w6YjVcr6Hqw== +"@babel/plugin-transform-property-literals@^7.0.0", "@babel/plugin-transform-property-literals@^7.12.1": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.18.6.tgz#e22498903a483448e94e032e9bbb9c5ccbfc93a3" + integrity sha512-cYcs6qlgafTud3PAzrrRNbQtfpQ8+y/+M5tKmksS9+M1ckbH6kzY8MrexEM9mcA6JDsukE19iIRvAyYl463sMg== dependencies: - "@babel/helper-plugin-utils" "^7.16.7" + "@babel/helper-plugin-utils" "^7.18.6" "@babel/plugin-transform-react-constant-elements@^7.12.1": version "7.16.7" @@ -822,12 +894,12 @@ dependencies: "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-transform-react-display-name@^7.12.1", "@babel/plugin-transform-react-display-name@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.16.7.tgz#7b6d40d232f4c0f550ea348593db3b21e2404340" - integrity sha512-qgIg8BcZgd0G/Cz916D5+9kqX0c7nPZyXaP8R2tLNN5tkyIZdG5fEwBrxwplzSnjC1jvQmyMNVwUCZPcbGY7Pg== +"@babel/plugin-transform-react-display-name@^7.0.0", "@babel/plugin-transform-react-display-name@^7.12.1", "@babel/plugin-transform-react-display-name@^7.16.7": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.18.6.tgz#8b1125f919ef36ebdfff061d664e266c666b9415" + integrity sha512-TV4sQ+T013n61uMoygyMRm+xf04Bd5oqFpv2jAEQwSZ8NwQA7zeRPg1LMVg2PWi3zWBz+CLKD+v5bcpZ/BS0aA== dependencies: - "@babel/helper-plugin-utils" "^7.16.7" + "@babel/helper-plugin-utils" "^7.18.6" "@babel/plugin-transform-react-jsx-development@^7.12.1", "@babel/plugin-transform-react-jsx-development@^7.16.7": version "7.16.7" @@ -850,16 +922,16 @@ dependencies: "@babel/helper-plugin-utils" "^7.14.5" -"@babel/plugin-transform-react-jsx@^7.12.1", "@babel/plugin-transform-react-jsx@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.16.7.tgz#86a6a220552afd0e4e1f0388a68a372be7add0d4" - integrity sha512-8D16ye66fxiE8m890w0BpPpngG9o9OVBBy0gH2E+2AR7qMR2ZpTYJEqLxAsoroenMId0p/wMW+Blc0meDgu0Ag== +"@babel/plugin-transform-react-jsx@^7.0.0", "@babel/plugin-transform-react-jsx@^7.12.1", "@babel/plugin-transform-react-jsx@^7.16.7": + version "7.19.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.19.0.tgz#b3cbb7c3a00b92ec8ae1027910e331ba5c500eb9" + integrity sha512-UVEvX3tXie3Szm3emi1+G63jyw1w5IcMY0FSKM+CRnKRI5Mr1YbCNgsSTwoTwKphQEG9P+QqmuRFneJPZuHNhg== dependencies: - "@babel/helper-annotate-as-pure" "^7.16.7" - "@babel/helper-module-imports" "^7.16.7" - "@babel/helper-plugin-utils" "^7.16.7" - "@babel/plugin-syntax-jsx" "^7.16.7" - "@babel/types" "^7.16.7" + "@babel/helper-annotate-as-pure" "^7.18.6" + "@babel/helper-module-imports" "^7.18.6" + "@babel/helper-plugin-utils" "^7.19.0" + "@babel/plugin-syntax-jsx" "^7.18.6" + "@babel/types" "^7.19.0" "@babel/plugin-transform-react-pure-annotations@^7.12.1", "@babel/plugin-transform-react-pure-annotations@^7.16.7": version "7.16.7" @@ -893,20 +965,20 @@ resolve "^1.8.1" semver "^5.5.1" -"@babel/plugin-transform-shorthand-properties@^7.12.1": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.16.7.tgz#e8549ae4afcf8382f711794c0c7b6b934c5fbd2a" - integrity sha512-hah2+FEnoRoATdIb05IOXf+4GzXYTq75TVhIn1PewihbpyrNWUt2JbudKQOETWw6QpLe+AIUpJ5MVLYTQbeeUg== +"@babel/plugin-transform-shorthand-properties@^7.0.0", "@babel/plugin-transform-shorthand-properties@^7.12.1": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.18.6.tgz#6d6df7983d67b195289be24909e3f12a8f664dc9" + integrity sha512-eCLXXJqv8okzg86ywZJbRn19YJHU4XUa55oz2wbHhaQVn/MM+XhukiT7SYqp/7o00dg52Rj51Ny+Ecw4oyoygw== dependencies: - "@babel/helper-plugin-utils" "^7.16.7" + "@babel/helper-plugin-utils" "^7.18.6" -"@babel/plugin-transform-spread@^7.12.1": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.16.7.tgz#a303e2122f9f12e0105daeedd0f30fb197d8ff44" - integrity sha512-+pjJpgAngb53L0iaA5gU/1MLXJIfXcYepLgXB3esVRf4fqmj8f2cxM3/FKaHsZms08hFQJkFccEWuIpm429TXg== +"@babel/plugin-transform-spread@^7.0.0", "@babel/plugin-transform-spread@^7.12.1": + version "7.19.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.19.0.tgz#dd60b4620c2fec806d60cfaae364ec2188d593b6" + integrity sha512-RsuMk7j6n+r752EtzyScnWkQyuJdli6LdO5Klv8Yx0OfPVTcQkIUfS8clx5e9yHXzlnhOZF3CbQ8C2uP5j074w== dependencies: - "@babel/helper-plugin-utils" "^7.16.7" - "@babel/helper-skip-transparent-expression-wrappers" "^7.16.0" + "@babel/helper-plugin-utils" "^7.19.0" + "@babel/helper-skip-transparent-expression-wrappers" "^7.18.9" "@babel/plugin-transform-sticky-regex@^7.12.1": version "7.16.7" @@ -915,12 +987,12 @@ dependencies: "@babel/helper-plugin-utils" "^7.16.7" -"@babel/plugin-transform-template-literals@^7.12.1": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.16.7.tgz#f3d1c45d28967c8e80f53666fc9c3e50618217ab" - integrity sha512-VwbkDDUeenlIjmfNeDX/V0aWrQH2QiVyJtwymVQSzItFDTpxfyJh3EVaQiS0rIN/CqbLGr0VcGmuwyTdZtdIsA== +"@babel/plugin-transform-template-literals@^7.0.0", "@babel/plugin-transform-template-literals@^7.12.1": + version "7.18.9" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.18.9.tgz#04ec6f10acdaa81846689d63fae117dd9c243a5e" + integrity sha512-S8cOWfT82gTezpYOiVaGHrCbhlHgKhQt8XH5ES46P2XWmX92yisoZywf5km75wv5sYcXDUCLMmMxOLCtthDgMA== dependencies: - "@babel/helper-plugin-utils" "^7.16.7" + "@babel/helper-plugin-utils" "^7.18.9" "@babel/plugin-transform-typeof-symbol@^7.12.1": version "7.16.7" @@ -1091,7 +1163,7 @@ dependencies: regenerator-runtime "^0.13.4" -"@babel/template@^7.10.4", "@babel/template@^7.12.13", "@babel/template@^7.16.7", "@babel/template@^7.18.10", "@babel/template@^7.18.6", "@babel/template@^7.3.3": +"@babel/template@^7.10.4", "@babel/template@^7.12.13", "@babel/template@^7.15.4", "@babel/template@^7.16.7", "@babel/template@^7.18.10", "@babel/template@^7.3.3": version "7.18.10" resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.18.10.tgz#6f9134835970d1dbf0835c0d100c9f38de0c5e71" integrity sha512-TI+rCtooWHr3QJ27kJxfjutghu44DLnasDMwpDqCXVTal9RLp3RSYNh4NdBrRP2cQAoG9A8juOQl6P6oZG4JxA== @@ -1100,29 +1172,29 @@ "@babel/parser" "^7.18.10" "@babel/types" "^7.18.10" -"@babel/traverse@^7.1.0", "@babel/traverse@^7.12.1", "@babel/traverse@^7.16.7", "@babel/traverse@^7.16.8", "@babel/traverse@^7.18.10", "@babel/traverse@^7.18.9", "@babel/traverse@^7.4.5", "@babel/traverse@^7.7.0": - version "7.18.11" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.18.11.tgz#3d51f2afbd83ecf9912bcbb5c4d94e3d2ddaa16f" - integrity sha512-TG9PiM2R/cWCAy6BPJKeHzNbu4lPzOSZpeMfeNErskGpTJx6trEvFaVCbDvpcxwy49BKWmEPwiW8mrysNiDvIQ== +"@babel/traverse@^7.1.0", "@babel/traverse@^7.12.1", "@babel/traverse@^7.14.0", "@babel/traverse@^7.16.8", "@babel/traverse@^7.19.1", "@babel/traverse@^7.20.1", "@babel/traverse@^7.20.5", "@babel/traverse@^7.4.5", "@babel/traverse@^7.7.0": + version "7.20.5" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.20.5.tgz#78eb244bea8270fdda1ef9af22a5d5e5b7e57133" + integrity sha512-WM5ZNN3JITQIq9tFZaw1ojLU3WgWdtkxnhM1AegMS+PvHjkM5IXjmYEGY7yukz5XS4sJyEf2VzWjI8uAavhxBQ== dependencies: "@babel/code-frame" "^7.18.6" - "@babel/generator" "^7.18.10" + "@babel/generator" "^7.20.5" "@babel/helper-environment-visitor" "^7.18.9" - "@babel/helper-function-name" "^7.18.9" + "@babel/helper-function-name" "^7.19.0" "@babel/helper-hoist-variables" "^7.18.6" "@babel/helper-split-export-declaration" "^7.18.6" - "@babel/parser" "^7.18.11" - "@babel/types" "^7.18.10" + "@babel/parser" "^7.20.5" + "@babel/types" "^7.20.5" debug "^4.1.0" globals "^11.1.0" -"@babel/types@^7.0.0", "@babel/types@^7.11.5", "@babel/types@^7.12.1", "@babel/types@^7.12.6", "@babel/types@^7.16.0", "@babel/types@^7.16.7", "@babel/types@^7.16.8", "@babel/types@^7.18.10", "@babel/types@^7.18.6", "@babel/types@^7.18.9", "@babel/types@^7.3.0", "@babel/types@^7.3.3", "@babel/types@^7.4.4", "@babel/types@^7.7.0": - version "7.18.10" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.18.10.tgz#4908e81b6b339ca7c6b7a555a5fc29446f26dde6" - integrity sha512-MJvnbEiiNkpjo+LknnmRrqbY1GPUUggjv+wQVjetM/AONoupqRALB7I6jGqNUAZsKcRIEu2J6FRFvsczljjsaQ== +"@babel/types@^7.0.0", "@babel/types@^7.11.5", "@babel/types@^7.12.1", "@babel/types@^7.12.6", "@babel/types@^7.16.7", "@babel/types@^7.16.8", "@babel/types@^7.18.10", "@babel/types@^7.18.13", "@babel/types@^7.18.6", "@babel/types@^7.18.9", "@babel/types@^7.19.0", "@babel/types@^7.20.0", "@babel/types@^7.20.2", "@babel/types@^7.20.5", "@babel/types@^7.3.0", "@babel/types@^7.3.3", "@babel/types@^7.4.4", "@babel/types@^7.7.0": + version "7.20.5" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.20.5.tgz#e206ae370b5393d94dfd1d04cd687cace53efa84" + integrity sha512-c9fst/h2/dcF7H+MJKZ2T0KjEQ8hY/BNnDk/H3XY8C4Aw/eWQXWn/lWntHF9ooUBnGmEvbfGrTgLWc+um0YDUg== dependencies: - "@babel/helper-string-parser" "^7.18.10" - "@babel/helper-validator-identifier" "^7.18.6" + "@babel/helper-string-parser" "^7.19.4" + "@babel/helper-validator-identifier" "^7.19.1" to-fast-properties "^2.0.0" "@bcoe/v8-coverage@^0.2.3": @@ -2103,6 +2175,514 @@ dependencies: cross-fetch "^3.1.5" +"@graphql-codegen/add@^3.2.1": + version "3.2.1" + resolved "https://registry.yarnpkg.com/@graphql-codegen/add/-/add-3.2.1.tgz#f1109f36f194f88a6abcc51703abee43ebbb50a2" + integrity sha512-w82H/evh8SSGoD3K6K/Oh3kqSdbuU+TgHqMYmmHFxtH692v2xhN/cu1s/TotBQ7r4mO7OQutze7dde2tZEXGEQ== + dependencies: + "@graphql-codegen/plugin-helpers" "^2.6.2" + tslib "~2.4.0" + +"@graphql-codegen/cli@^2.15.0": + version "2.15.0" + resolved "https://registry.yarnpkg.com/@graphql-codegen/cli/-/cli-2.15.0.tgz#e36dd8cdb32ce58aeeebd546266cd435732e796f" + integrity sha512-o4Wh99VJDX/z0fG3pkdOf0t0fu7SlYn6qlLnqzNhVpZByGPe548gu11GKiOPKVaQ76kkB3dzqzfINRl+v7EA4A== + dependencies: + "@babel/generator" "^7.18.13" + "@babel/template" "^7.18.10" + "@babel/types" "^7.18.13" + "@graphql-codegen/core" "2.6.6" + "@graphql-codegen/plugin-helpers" "^2.7.2" + "@graphql-tools/apollo-engine-loader" "^7.3.6" + "@graphql-tools/code-file-loader" "^7.3.13" + "@graphql-tools/git-loader" "^7.2.13" + "@graphql-tools/github-loader" "^7.3.20" + "@graphql-tools/graphql-file-loader" "^7.5.0" + "@graphql-tools/json-file-loader" "^7.4.1" + "@graphql-tools/load" "7.8.0" + "@graphql-tools/prisma-loader" "^7.2.7" + "@graphql-tools/url-loader" "^7.13.2" + "@graphql-tools/utils" "^8.9.0" + "@whatwg-node/fetch" "^0.3.0" + ansi-escapes "^4.3.1" + chalk "^4.1.0" + chokidar "^3.5.2" + cosmiconfig "^7.0.0" + cosmiconfig-typescript-loader "4.1.1" + debounce "^1.2.0" + detect-indent "^6.0.0" + graphql-config "4.3.6" + inquirer "^8.0.0" + is-glob "^4.0.1" + json-to-pretty-yaml "^1.2.2" + listr2 "^4.0.5" + log-symbols "^4.0.0" + shell-quote "^1.7.3" + string-env-interpolation "^1.0.1" + ts-log "^2.2.3" + tslib "^2.4.0" + yaml "^1.10.0" + yargs "^17.0.0" + +"@graphql-codegen/client-preset@^1.2.1": + version "1.2.1" + resolved "https://registry.yarnpkg.com/@graphql-codegen/client-preset/-/client-preset-1.2.1.tgz#98123a1bef97e498512a484eaa5f59776de76ec5" + integrity sha512-HUnb5zThUPvDRyve9+YCwU5OXz/KiUZo+jwdFZaWQdoCKVSuJkwwDKiiHNskcrsxssCX2k9Lkw+zRAL5zniCyw== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/template" "^7.15.4" + "@graphql-codegen/add" "^3.2.1" + "@graphql-codegen/gql-tag-operations" "1.5.9" + "@graphql-codegen/plugin-helpers" "^2.7.2" + "@graphql-codegen/typed-document-node" "^2.3.8" + "@graphql-codegen/typescript" "^2.8.3" + "@graphql-codegen/typescript-operations" "^2.5.8" + "@graphql-codegen/visitor-plugin-common" "^2.13.3" + "@graphql-tools/utils" "^8.8.0" + "@graphql-typed-document-node/core" "3.1.1" + tslib "~2.4.0" + +"@graphql-codegen/core@2.6.6": + version "2.6.6" + resolved "https://registry.yarnpkg.com/@graphql-codegen/core/-/core-2.6.6.tgz#e6ea99682230c5bbcf28cb247672da7f17e78578" + integrity sha512-gU2FUxoLGw2GfcPWfBVXuiN3aDODbZ6Z9I+IGxa2u1Rzxlacw4TMmcwr4/IjC6mkiYJEKTvdVspHaby+brhuAg== + dependencies: + "@graphql-codegen/plugin-helpers" "^2.7.2" + "@graphql-tools/schema" "^9.0.0" + "@graphql-tools/utils" "^9.1.1" + tslib "~2.4.0" + +"@graphql-codegen/gql-tag-operations@1.5.9": + version "1.5.9" + resolved "https://registry.yarnpkg.com/@graphql-codegen/gql-tag-operations/-/gql-tag-operations-1.5.9.tgz#62d0946f636d5d5065d31eecceb8dbab0c8a40d1" + integrity sha512-Ovg+8EWiE4IxCsCnLN2j3SyAUZxdK/OLzQMNQurPfkj+I7l7sFPu1PJsuqqvF+o26a+lRixZmhh+AHh6kSMK0g== + dependencies: + "@graphql-codegen/plugin-helpers" "^2.7.2" + "@graphql-codegen/visitor-plugin-common" "2.13.3" + "@graphql-tools/utils" "^8.8.0" + auto-bind "~4.0.0" + tslib "~2.4.0" + +"@graphql-codegen/plugin-helpers@^2.6.2", "@graphql-codegen/plugin-helpers@^2.7.2": + version "2.7.2" + resolved "https://registry.yarnpkg.com/@graphql-codegen/plugin-helpers/-/plugin-helpers-2.7.2.tgz#6544f739d725441c826a8af6a49519f588ff9bed" + integrity sha512-kln2AZ12uii6U59OQXdjLk5nOlh1pHis1R98cDZGFnfaiAbX9V3fxcZ1MMJkB7qFUymTALzyjZoXXdyVmPMfRg== + dependencies: + "@graphql-tools/utils" "^8.8.0" + change-case-all "1.0.14" + common-tags "1.8.2" + import-from "4.0.0" + lodash "~4.17.0" + tslib "~2.4.0" + +"@graphql-codegen/schema-ast@^2.5.1": + version "2.5.1" + resolved "https://registry.yarnpkg.com/@graphql-codegen/schema-ast/-/schema-ast-2.5.1.tgz#ce030ae6de5dacd745848009ba0ca18c9c30910c" + integrity sha512-tewa5DEKbglWn7kYyVBkh3J8YQ5ALqAMVmZwiVFIGOao5u66nd+e4HuFqp0u+Jpz4SJGGi0ap/oFrEvlqLjd2A== + dependencies: + "@graphql-codegen/plugin-helpers" "^2.6.2" + "@graphql-tools/utils" "^8.8.0" + tslib "~2.4.0" + +"@graphql-codegen/typed-document-node@^2.3.8": + version "2.3.8" + resolved "https://registry.yarnpkg.com/@graphql-codegen/typed-document-node/-/typed-document-node-2.3.8.tgz#0bff4f6dc99f0a3ab4135ed2cb0298b42d173db3" + integrity sha512-yY30XJ0Jf5DJyii6k1+uKKJonHn8Tqy7ZUk65w3p2zrL22exlwqHb3rpsKnHKv9iLQT7309tMYAa4F65VSJHfw== + dependencies: + "@graphql-codegen/plugin-helpers" "^2.7.2" + "@graphql-codegen/visitor-plugin-common" "2.13.3" + auto-bind "~4.0.0" + change-case-all "1.0.14" + tslib "~2.4.0" + +"@graphql-codegen/typescript-operations@^2.5.8": + version "2.5.8" + resolved "https://registry.yarnpkg.com/@graphql-codegen/typescript-operations/-/typescript-operations-2.5.8.tgz#e9e2022de9f67b0d855d370f20c48c7b2ed24f21" + integrity sha512-Zp27jZjOLkoH0qy5INqrTsut5PI40OEVcKmcQ+TDHr9wDYa3M06/k907z6CuW3PjOgJBtrSTcgAEnrye8jhkJw== + dependencies: + "@graphql-codegen/plugin-helpers" "^2.7.2" + "@graphql-codegen/typescript" "^2.8.3" + "@graphql-codegen/visitor-plugin-common" "2.13.3" + auto-bind "~4.0.0" + tslib "~2.4.0" + +"@graphql-codegen/typescript-react-apollo@^3.3.7": + version "3.3.7" + resolved "https://registry.yarnpkg.com/@graphql-codegen/typescript-react-apollo/-/typescript-react-apollo-3.3.7.tgz#e856caa22c5f7bc9a546c44f54e5f3bd5801ab67" + integrity sha512-9DUiGE8rcwwEkf/S1kpBT/Py/UUs9Qak14bOnTT1JHWs1MWhiDA7vml+A8opU7YFI1EVbSSaE5jjRv11WHoikQ== + dependencies: + "@graphql-codegen/plugin-helpers" "^2.7.2" + "@graphql-codegen/visitor-plugin-common" "2.13.1" + auto-bind "~4.0.0" + change-case-all "1.0.14" + tslib "~2.4.0" + +"@graphql-codegen/typescript-resolvers@^2.7.8": + version "2.7.8" + resolved "https://registry.yarnpkg.com/@graphql-codegen/typescript-resolvers/-/typescript-resolvers-2.7.8.tgz#1202b7985e4e3ca065fb41deef25d362d944e40a" + integrity sha512-O/eAX7AfFxy9tcZ9tZrxlJ8EkKF8S10RlMQU8HasVsP13znk/SZOmO8vCoci2Bxj7tL9ZCSfZVZpc+a6REn30Q== + dependencies: + "@graphql-codegen/plugin-helpers" "^2.7.2" + "@graphql-codegen/typescript" "^2.8.3" + "@graphql-codegen/visitor-plugin-common" "2.13.3" + "@graphql-tools/utils" "^8.8.0" + auto-bind "~4.0.0" + tslib "~2.4.0" + +"@graphql-codegen/typescript@^2.8.3": + version "2.8.3" + resolved "https://registry.yarnpkg.com/@graphql-codegen/typescript/-/typescript-2.8.3.tgz#83a87586b550b7c5b543d11b8a2da706cca67bda" + integrity sha512-ch8Lzjp8XnN8P70uYBmsjv7FWJQ47qletlShPHk7n4RRsnLkah3J9iSEUIALqM25Wl6EjEmHlxoAgSBILz+sjg== + dependencies: + "@graphql-codegen/plugin-helpers" "^2.7.2" + "@graphql-codegen/schema-ast" "^2.5.1" + "@graphql-codegen/visitor-plugin-common" "2.13.3" + auto-bind "~4.0.0" + tslib "~2.4.0" + +"@graphql-codegen/visitor-plugin-common@2.13.1": + version "2.13.1" + resolved "https://registry.yarnpkg.com/@graphql-codegen/visitor-plugin-common/-/visitor-plugin-common-2.13.1.tgz#2228660f6692bcdb96b1f6d91a0661624266b76b" + integrity sha512-mD9ufZhDGhyrSaWQGrU1Q1c5f01TeWtSWy/cDwXYjJcHIj1Y/DG2x0tOflEfCvh5WcnmHNIw4lzDsg1W7iFJEg== + dependencies: + "@graphql-codegen/plugin-helpers" "^2.7.2" + "@graphql-tools/optimize" "^1.3.0" + "@graphql-tools/relay-operation-optimizer" "^6.5.0" + "@graphql-tools/utils" "^8.8.0" + auto-bind "~4.0.0" + change-case-all "1.0.14" + dependency-graph "^0.11.0" + graphql-tag "^2.11.0" + parse-filepath "^1.0.2" + tslib "~2.4.0" + +"@graphql-codegen/visitor-plugin-common@2.13.3", "@graphql-codegen/visitor-plugin-common@^2.13.3": + version "2.13.3" + resolved "https://registry.yarnpkg.com/@graphql-codegen/visitor-plugin-common/-/visitor-plugin-common-2.13.3.tgz#4a2eceee00b4cfdf1eff31a006710a30417ec497" + integrity sha512-5gFDQGuCE5tIBo9KtDPZ8kL6cf1VJwDGj6nO9ERa0HJNk5osT50NhSf6H61LEnM3Gclbo96Ib1GCp3KdLwHoGg== + dependencies: + "@graphql-codegen/plugin-helpers" "^2.7.2" + "@graphql-tools/optimize" "^1.3.0" + "@graphql-tools/relay-operation-optimizer" "^6.5.0" + "@graphql-tools/utils" "^8.8.0" + auto-bind "~4.0.0" + change-case-all "1.0.14" + dependency-graph "^0.11.0" + graphql-tag "^2.11.0" + parse-filepath "^1.0.2" + tslib "~2.4.0" + +"@graphql-tools/apollo-engine-loader@^7.3.6": + version "7.3.21" + resolved "https://registry.yarnpkg.com/@graphql-tools/apollo-engine-loader/-/apollo-engine-loader-7.3.21.tgz#416e548f6343342c1e8ef6c83139264589802172" + integrity sha512-mCf5CRZ64Cj4pmXpcgSJDkHj93owntvAmyHpY651yAmQKYJ5Kltrw6rreo2VJr1Eu4BWdHqcMS++NLq5GPGewg== + dependencies: + "@ardatan/sync-fetch" "0.0.1" + "@graphql-tools/utils" "9.1.3" + "@whatwg-node/fetch" "^0.5.0" + tslib "^2.4.0" + +"@graphql-tools/batch-execute@8.5.14": + version "8.5.14" + resolved "https://registry.yarnpkg.com/@graphql-tools/batch-execute/-/batch-execute-8.5.14.tgz#d241adedc53df534263bfaed9c6fc15c3890bb90" + integrity sha512-m6yXqqmFAH2V5JuSIC/geiGLBQA1Y6RddOJfUtkc9Z7ttkULRCd1W39TpYS6IlrCwYyTj+klO1/kdWiny38f5g== + dependencies: + "@graphql-tools/utils" "9.1.3" + dataloader "2.1.0" + tslib "^2.4.0" + value-or-promise "1.0.11" + +"@graphql-tools/code-file-loader@^7.3.13": + version "7.3.15" + resolved "https://registry.yarnpkg.com/@graphql-tools/code-file-loader/-/code-file-loader-7.3.15.tgz#3834033e1f58876d6c95248d8eb451d84d600eab" + integrity sha512-cF8VNc/NANTyVSIK8BkD/KSXRF64DvvomuJ0evia7tJu4uGTXgDjimTMWsTjKRGOOBSTEbL6TA8e4DdIYq6Udw== + dependencies: + "@graphql-tools/graphql-tag-pluck" "7.4.2" + "@graphql-tools/utils" "9.1.3" + globby "^11.0.3" + tslib "^2.4.0" + unixify "^1.0.0" + +"@graphql-tools/delegate@9.0.19": + version "9.0.19" + resolved "https://registry.yarnpkg.com/@graphql-tools/delegate/-/delegate-9.0.19.tgz#2e07d395eee34a8f8810be8cdc9841f0fce14071" + integrity sha512-9GvzZ04LtGlXWW89yf6nct5ehr6/irGfzOhuaPVJlnCkRsS3zKk5qkBlY2rEu3NS/OpJYYeHvzE3/T/lBNBiPQ== + dependencies: + "@graphql-tools/batch-execute" "8.5.14" + "@graphql-tools/executor" "0.0.11" + "@graphql-tools/schema" "9.0.12" + "@graphql-tools/utils" "9.1.3" + dataloader "2.1.0" + tslib "~2.4.0" + value-or-promise "1.0.11" + +"@graphql-tools/executor-graphql-ws@0.0.5": + version "0.0.5" + resolved "https://registry.yarnpkg.com/@graphql-tools/executor-graphql-ws/-/executor-graphql-ws-0.0.5.tgz#eb81fb72ef1eb095be1b2d377b846bff6bf6d102" + integrity sha512-1bJfZdSBPCJWz1pJ5g/YHMtGt6YkNRDdmqNQZ8v+VlQTNVfuBpY2vzj15uvf5uDrZLg2MSQThrKlL8av4yFpsA== + dependencies: + "@graphql-tools/utils" "9.1.3" + "@repeaterjs/repeater" "3.0.4" + "@types/ws" "^8.0.0" + graphql-ws "5.11.2" + isomorphic-ws "5.0.0" + tslib "^2.4.0" + ws "8.11.0" + +"@graphql-tools/executor-http@0.0.6": + version "0.0.6" + resolved "https://registry.yarnpkg.com/@graphql-tools/executor-http/-/executor-http-0.0.6.tgz#66c45b3ab3b1ff8d4ed0205207ce741ba087b315" + integrity sha512-EF7eZ7GeXP6YSEgXJqFzfQtN80BUCbMrMeZxGnnOggWOJ1lKvYfSGQZ7+HcJRNUXQCZn/SV4lTJSVZW80GITWA== + dependencies: + "@graphql-tools/utils" "9.1.3" + "@repeaterjs/repeater" "3.0.4" + "@whatwg-node/fetch" "0.5.3" + dset "3.1.2" + extract-files "^11.0.0" + meros "1.2.1" + tslib "^2.4.0" + value-or-promise "1.0.11" + +"@graphql-tools/executor-legacy-ws@0.0.5": + version "0.0.5" + resolved "https://registry.yarnpkg.com/@graphql-tools/executor-legacy-ws/-/executor-legacy-ws-0.0.5.tgz#0246d930ed53bc185093bee78fb614473f465d51" + integrity sha512-j2ZQVTI4rKIT41STzLPK206naYDhHxmGHot0siJKBKX1vMqvxtWBqvL66v7xYEOaX79wJrFc8l6oeURQP2LE6g== + dependencies: + "@graphql-tools/utils" "9.1.3" + "@types/ws" "^8.0.0" + isomorphic-ws "5.0.0" + tslib "^2.4.0" + ws "8.11.0" + +"@graphql-tools/executor@0.0.11": + version "0.0.11" + resolved "https://registry.yarnpkg.com/@graphql-tools/executor/-/executor-0.0.11.tgz#a95823478e8edba05e55fd8ed43aceff7bd04022" + integrity sha512-GjtXW0ZMGZGKad6A1HXFPArkfxE0AIpznusZuQdy4laQx+8Ut3Zx8SAFJNnDfZJ2V5kU29B5Xv3Fr0/DiMBHOQ== + dependencies: + "@graphql-tools/utils" "9.1.3" + "@graphql-typed-document-node/core" "3.1.1" + "@repeaterjs/repeater" "3.0.4" + tslib "^2.4.0" + value-or-promise "1.0.11" + +"@graphql-tools/git-loader@^7.2.13": + version "7.2.15" + resolved "https://registry.yarnpkg.com/@graphql-tools/git-loader/-/git-loader-7.2.15.tgz#875968e5c4680247211e55523988b05a12bc1a46" + integrity sha512-1d5HmeuxhSNjQ2+k2rfKgcKcnZEC6H5FM2pY5lSXHMv8VdBELZd7pYDs5/JxoZarDVYfYOJ5xTeVzxf+Du3VNg== + dependencies: + "@graphql-tools/graphql-tag-pluck" "7.4.2" + "@graphql-tools/utils" "9.1.3" + is-glob "4.0.3" + micromatch "^4.0.4" + tslib "^2.4.0" + unixify "^1.0.0" + +"@graphql-tools/github-loader@^7.3.20": + version "7.3.22" + resolved "https://registry.yarnpkg.com/@graphql-tools/github-loader/-/github-loader-7.3.22.tgz#28aff4f33ffcd4e2d6b0836115fb41df8addd755" + integrity sha512-JE5F/ObbwknO7+gDfeuKAZtLS831WV8/SsLzQLMGY0hdgTbsAg2/xziAGprNToK4GMSD7ygCer9ZryvxBKMwbQ== + dependencies: + "@ardatan/sync-fetch" "0.0.1" + "@graphql-tools/graphql-tag-pluck" "7.4.2" + "@graphql-tools/utils" "9.1.3" + "@whatwg-node/fetch" "^0.5.0" + tslib "^2.4.0" + +"@graphql-tools/graphql-file-loader@^7.3.7", "@graphql-tools/graphql-file-loader@^7.5.0": + version "7.5.13" + resolved "https://registry.yarnpkg.com/@graphql-tools/graphql-file-loader/-/graphql-file-loader-7.5.13.tgz#2e60b7e9752334ee030276c9493d411da8a30e43" + integrity sha512-VWFVnw3aB6sykGfpb/Dn3sxQswqvp2FsVwDy8ubH1pgLuxlDuurhHjRHvMG2+p7IaHC7q8T3Vk/rLtZftrwOBQ== + dependencies: + "@graphql-tools/import" "6.7.14" + "@graphql-tools/utils" "9.1.3" + globby "^11.0.3" + tslib "^2.4.0" + unixify "^1.0.0" + +"@graphql-tools/graphql-tag-pluck@7.4.2": + version "7.4.2" + resolved "https://registry.yarnpkg.com/@graphql-tools/graphql-tag-pluck/-/graphql-tag-pluck-7.4.2.tgz#0e72a142e2fb7e0cb6a86b910e44682772e5d7f1" + integrity sha512-SXM1wR5TExrxocQTxZK5r74jTbg8GxSYLY3mOPCREGz6Fu7PNxMxfguUzGUAB43Mf44Dn8oVztzd2eitv2Qgww== + dependencies: + "@babel/parser" "^7.16.8" + "@babel/plugin-syntax-import-assertions" "7.20.0" + "@babel/traverse" "^7.16.8" + "@babel/types" "^7.16.8" + "@graphql-tools/utils" "9.1.3" + tslib "^2.4.0" + +"@graphql-tools/import@6.7.14": + version "6.7.14" + resolved "https://registry.yarnpkg.com/@graphql-tools/import/-/import-6.7.14.tgz#4f3278841217686eed8950db0aa5040bc35f6970" + integrity sha512-lRX/MHM0Km497kg4VXMvtV1DeG/AfPJFO2ovaL0kDujWEdyCsWxsB4whY7nPeiNaPA/nT3mQ8MU7yFzVjogF/Q== + dependencies: + "@graphql-tools/utils" "9.1.3" + resolve-from "5.0.0" + tslib "^2.4.0" + +"@graphql-tools/json-file-loader@^7.3.7", "@graphql-tools/json-file-loader@^7.4.1": + version "7.4.14" + resolved "https://registry.yarnpkg.com/@graphql-tools/json-file-loader/-/json-file-loader-7.4.14.tgz#a174fc488f35340dcbbcdb0f2b82a57d19b723d0" + integrity sha512-AD9v3rN08wvVqgbrUSiHa8Ztrlk3EgwctcxuNE5qm47zPNL4gLaJ7Tw/KlGOR7Cm+pjlQylJHMUKNfaRLPZ0og== + dependencies: + "@graphql-tools/utils" "9.1.3" + globby "^11.0.3" + tslib "^2.4.0" + unixify "^1.0.0" + +"@graphql-tools/load@7.8.0": + version "7.8.0" + resolved "https://registry.yarnpkg.com/@graphql-tools/load/-/load-7.8.0.tgz#bd4d2e2a5117de9a60f9691a218217e96afc2ea7" + integrity sha512-l4FGgqMW0VOqo+NMYizwV8Zh+KtvVqOf93uaLo9wJ3sS3y/egPCgxPMDJJ/ufQZG3oZ/0oWeKt68qop3jY0yZg== + dependencies: + "@graphql-tools/schema" "9.0.4" + "@graphql-tools/utils" "8.12.0" + p-limit "3.1.0" + tslib "^2.4.0" + +"@graphql-tools/load@^7.5.5": + version "7.8.8" + resolved "https://registry.yarnpkg.com/@graphql-tools/load/-/load-7.8.8.tgz#e55aaca84a9e6348a730d92ba4cb3ec17cee45df" + integrity sha512-gMuQdO2jXmI0BNUc1MafxRQTWVMUtuH500pZAQtOdDdNJppV7lJdY6mMhITQ2qnhYDuMrcZPHhIkcftyQfkgUg== + dependencies: + "@graphql-tools/schema" "9.0.12" + "@graphql-tools/utils" "9.1.3" + p-limit "3.1.0" + tslib "^2.4.0" + +"@graphql-tools/merge@8.3.14", "@graphql-tools/merge@^8.2.6": + version "8.3.14" + resolved "https://registry.yarnpkg.com/@graphql-tools/merge/-/merge-8.3.14.tgz#d4d0a645656691d35e90e0686a6fa3d4091a34da" + integrity sha512-zV0MU1DnxJLIB0wpL4N3u21agEiYFsjm6DI130jqHpwF0pR9HkF+Ni65BNfts4zQelP0GjkHltG+opaozAJ1NA== + dependencies: + "@graphql-tools/utils" "9.1.3" + tslib "^2.4.0" + +"@graphql-tools/merge@8.3.6": + version "8.3.6" + resolved "https://registry.yarnpkg.com/@graphql-tools/merge/-/merge-8.3.6.tgz#97a936d4c8e8f935e58a514bb516c476437b5b2c" + integrity sha512-uUBokxXi89bj08P+iCvQk3Vew4vcfL5ZM6NTylWi8PIpoq4r5nJ625bRuN8h2uubEdRiH8ntN9M4xkd/j7AybQ== + dependencies: + "@graphql-tools/utils" "8.12.0" + tslib "^2.4.0" + +"@graphql-tools/optimize@^1.3.0": + version "1.3.1" + resolved "https://registry.yarnpkg.com/@graphql-tools/optimize/-/optimize-1.3.1.tgz#29407991478dbbedc3e7deb8c44f46acb4e9278b" + integrity sha512-5j5CZSRGWVobt4bgRRg7zhjPiSimk+/zIuColih8E8DxuFOaJ+t0qu7eZS5KXWBkjcd4BPNuhUPpNlEmHPqVRQ== + dependencies: + tslib "^2.4.0" + +"@graphql-tools/prisma-loader@^7.2.7": + version "7.2.44" + resolved "https://registry.yarnpkg.com/@graphql-tools/prisma-loader/-/prisma-loader-7.2.44.tgz#1ceb4f51d18ee5bf959535a4474b5ee2a0ec3004" + integrity sha512-uvOuXXdGed7f/PRafICfKte+yW6756/8A4EwT6NsbYtXV02MmSGRR88pAcWSLismfSBOQA2KC0VFD8s8QVMMSA== + dependencies: + "@graphql-tools/url-loader" "7.16.24" + "@graphql-tools/utils" "9.1.3" + "@types/js-yaml" "^4.0.0" + "@types/json-stable-stringify" "^1.0.32" + "@types/jsonwebtoken" "^8.5.0" + chalk "^4.1.0" + debug "^4.3.1" + dotenv "^16.0.0" + graphql-request "^5.0.0" + http-proxy-agent "^5.0.0" + https-proxy-agent "^5.0.0" + isomorphic-fetch "^3.0.0" + js-yaml "^4.0.0" + json-stable-stringify "^1.0.1" + jsonwebtoken "^8.5.1" + lodash "^4.17.20" + scuid "^1.1.0" + tslib "^2.4.0" + yaml-ast-parser "^0.0.43" + +"@graphql-tools/relay-operation-optimizer@^6.5.0": + version "6.5.14" + resolved "https://registry.yarnpkg.com/@graphql-tools/relay-operation-optimizer/-/relay-operation-optimizer-6.5.14.tgz#e3d61892910c982c13ea8c2d9780a0cf95e7dd12" + integrity sha512-RAy1fMfXig9X3gIkYnfEmv0mh20vZuAgWDq+zf1MrrsCAP364B+DKrBjLwn3D+4e0PMTlqwmqR0JB5t1VtZn2w== + dependencies: + "@ardatan/relay-compiler" "12.0.0" + "@graphql-tools/utils" "9.1.3" + tslib "^2.4.0" + +"@graphql-tools/schema@9.0.12", "@graphql-tools/schema@^9.0.0": + version "9.0.12" + resolved "https://registry.yarnpkg.com/@graphql-tools/schema/-/schema-9.0.12.tgz#73910fab315bd16098b989db22f967a1dc7f93dd" + integrity sha512-DmezcEltQai0V1y96nwm0Kg11FDS/INEFekD4nnVgzBqawvznWqK6D6bujn+cw6kivoIr3Uq//QmU/hBlBzUlQ== + dependencies: + "@graphql-tools/merge" "8.3.14" + "@graphql-tools/utils" "9.1.3" + tslib "^2.4.0" + value-or-promise "1.0.11" + +"@graphql-tools/schema@9.0.4": + version "9.0.4" + resolved "https://registry.yarnpkg.com/@graphql-tools/schema/-/schema-9.0.4.tgz#1a74608b57abf90fae6fd929d25e5482c57bc05d" + integrity sha512-B/b8ukjs18fq+/s7p97P8L1VMrwapYc3N2KvdG/uNThSazRRn8GsBK0Nr+FH+mVKiUfb4Dno79e3SumZVoHuOQ== + dependencies: + "@graphql-tools/merge" "8.3.6" + "@graphql-tools/utils" "8.12.0" + tslib "^2.4.0" + value-or-promise "1.0.11" + +"@graphql-tools/url-loader@7.16.24", "@graphql-tools/url-loader@^7.13.2", "@graphql-tools/url-loader@^7.9.7": + version "7.16.24" + resolved "https://registry.yarnpkg.com/@graphql-tools/url-loader/-/url-loader-7.16.24.tgz#25e4cb6bae73daab215b972c7f8efbcee2115779" + integrity sha512-i0nvRvxhv6BIO0lDxIHjQRYaVrS7v5BRfCm0cCHcU4T9vVfqgYvWfriptZD6L7OwhZKbqfeHRexYGN+a8FlrqQ== + dependencies: + "@ardatan/sync-fetch" "0.0.1" + "@graphql-tools/delegate" "9.0.19" + "@graphql-tools/executor-graphql-ws" "0.0.5" + "@graphql-tools/executor-http" "0.0.6" + "@graphql-tools/executor-legacy-ws" "0.0.5" + "@graphql-tools/utils" "9.1.3" + "@graphql-tools/wrap" "9.2.20" + "@types/ws" "^8.0.0" + "@whatwg-node/fetch" "^0.5.0" + isomorphic-ws "5.0.0" + tslib "^2.4.0" + value-or-promise "^1.0.11" + ws "8.11.0" + +"@graphql-tools/utils@8.12.0": + version "8.12.0" + resolved "https://registry.yarnpkg.com/@graphql-tools/utils/-/utils-8.12.0.tgz#243bc4f5fc2edbc9e8fd1038189e57d837cbe31f" + integrity sha512-TeO+MJWGXjUTS52qfK4R8HiPoF/R7X+qmgtOYd8DTH0l6b+5Y/tlg5aGeUJefqImRq7nvi93Ms40k/Uz4D5CWw== + dependencies: + tslib "^2.4.0" + +"@graphql-tools/utils@9.1.3", "@graphql-tools/utils@^9.1.1": + version "9.1.3" + resolved "https://registry.yarnpkg.com/@graphql-tools/utils/-/utils-9.1.3.tgz#861f87057b313726136fa6ddfbd2380eae906599" + integrity sha512-bbJyKhs6awp1/OmP+WKA1GOyu9UbgZGkhIj5srmiMGLHohEOKMjW784Sk0BZil1w2x95UPu0WHw6/d/HVCACCg== + dependencies: + tslib "^2.4.0" + +"@graphql-tools/utils@^8.6.5", "@graphql-tools/utils@^8.8.0", "@graphql-tools/utils@^8.9.0": + version "8.13.1" + resolved "https://registry.yarnpkg.com/@graphql-tools/utils/-/utils-8.13.1.tgz#b247607e400365c2cd87ff54654d4ad25a7ac491" + integrity sha512-qIh9yYpdUFmctVqovwMdheVNJqFh+DQNWIhX87FJStfXYnmweBUDATok9fWPleKeFwxnW8IapKmY8m8toJEkAw== + dependencies: + tslib "^2.4.0" + +"@graphql-tools/wrap@9.2.20": + version "9.2.20" + resolved "https://registry.yarnpkg.com/@graphql-tools/wrap/-/wrap-9.2.20.tgz#a17ef632b9e67370f12e9fe73883a761e6575eb7" + integrity sha512-I7YN3LRIf5eHPF5PWrjuymwBIKjgLvtTBw+o+UNfpUJwELUjm2wVFOgNw9q334iIWHhcqYBBtIPUCC1zMaVQCQ== + dependencies: + "@graphql-tools/delegate" "9.0.19" + "@graphql-tools/schema" "9.0.12" + "@graphql-tools/utils" "9.1.3" + tslib "^2.4.0" + value-or-promise "1.0.11" + +"@graphql-typed-document-node/core@3.1.1", "@graphql-typed-document-node/core@^3.1.1": + version "3.1.1" + resolved "https://registry.yarnpkg.com/@graphql-typed-document-node/core/-/core-3.1.1.tgz#076d78ce99822258cf813ecc1e7fa460fa74d052" + integrity sha512-NQ17ii0rK1b34VZonlmT2QMJFI70m0TRwbknO/ihlbatXyaktDhN/98vBiUU6kNBPljqGqyIrl2T4nY2RpFANg== + "@grpc/grpc-js@^1.3.2": version "1.4.1" resolved "https://registry.yarnpkg.com/@grpc/grpc-js/-/grpc-js-1.4.1.tgz#799063a4ff7395987d4fceb2aab133629b003840" @@ -2168,6 +2748,11 @@ resolved "https://registry.yarnpkg.com/@humanwhocodes/object-schema/-/object-schema-1.2.0.tgz#87de7af9c231826fdd68ac7258f77c429e0e5fcf" integrity sha512-wdppn25U8z/2yiaT6YGquE6X8sSv7hNMWSXYSSU1jGv/yd6XqjXgTDJ8KP4NgjTXfJ3GbRjeeb8RTV7a/VpM+w== +"@iarna/toml@^2.2.5": + version "2.2.5" + resolved "https://registry.yarnpkg.com/@iarna/toml/-/toml-2.2.5.tgz#b32366c89b43c6f8cefbdefac778b9c828e3ba8c" + integrity sha512-trnsAYxU3xnS1gPHPyU961coFyLkh4gAD/0zQ5mymY4yOZ+CYvsPqUbOFSw0aDM4y0tV7tiFxL/1XfXPNC6IPg== + "@istanbuljs/load-nyc-config@^1.0.0": version "1.1.0" resolved "https://registry.yarnpkg.com/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz#fd3db1d59ecf7cf121e80650bb86712f9b55eced" @@ -2719,6 +3304,33 @@ resolved "https://registry.yarnpkg.com/@openzeppelin/contracts/-/contracts-4.7.0.tgz#3092d70ea60e3d1835466266b1d68ad47035a2d5" integrity sha512-52Qb+A1DdOss8QvJrijYYPSf32GUg2pGaG/yCxtaA3cu4jduouTdg4XZSMLW9op54m1jH7J8hoajhHKOPsoJFw== +"@peculiar/asn1-schema@^2.1.6", "@peculiar/asn1-schema@^2.3.0": + version "2.3.3" + resolved "https://registry.yarnpkg.com/@peculiar/asn1-schema/-/asn1-schema-2.3.3.tgz#21418e1f3819e0b353ceff0c2dad8ccb61acd777" + integrity sha512-6GptMYDMyWBHTUKndHaDsRZUO/XMSgIns2krxcm2L7SEExRHwawFvSwNBhqNPR9HJwv3MruAiF1bhN0we6j6GQ== + dependencies: + asn1js "^3.0.5" + pvtsutils "^1.3.2" + tslib "^2.4.0" + +"@peculiar/json-schema@^1.1.12": + version "1.1.12" + resolved "https://registry.yarnpkg.com/@peculiar/json-schema/-/json-schema-1.1.12.tgz#fe61e85259e3b5ba5ad566cb62ca75b3d3cd5339" + integrity sha512-coUfuoMeIB7B8/NMekxaDzLhaYmp0HZNPEjYRm9goRou8UZIC3z21s0sL9AWoCw4EG876QyO3kYrc61WNF9B/w== + dependencies: + tslib "^2.0.0" + +"@peculiar/webcrypto@^1.4.0": + version "1.4.1" + resolved "https://registry.yarnpkg.com/@peculiar/webcrypto/-/webcrypto-1.4.1.tgz#821493bd5ad0f05939bd5f53b28536f68158360a" + integrity sha512-eK4C6WTNYxoI7JOabMoZICiyqRRtJB220bh0Mbj5RwRycleZf9BPyZoxsTvpP0FpmVS2aS13NKOuh5/tN3sIRw== + dependencies: + "@peculiar/asn1-schema" "^2.3.0" + "@peculiar/json-schema" "^1.1.12" + pvtsutils "^1.3.2" + tslib "^2.4.1" + webcrypto-core "^1.7.4" + "@pedrouid/environment@^1.0.1": version "1.0.1" resolved "https://registry.yarnpkg.com/@pedrouid/environment/-/environment-1.0.1.tgz#858f0f8a057340e0b250398b75ead77d6f4342ec" @@ -2963,6 +3575,11 @@ redux-thunk "^2.4.1" reselect "^4.1.5" +"@repeaterjs/repeater@3.0.4": + version "3.0.4" + resolved "https://registry.yarnpkg.com/@repeaterjs/repeater/-/repeater-3.0.4.tgz#a04d63f4d1bf5540a41b01a921c9a7fddc3bd1ca" + integrity sha512-AW8PKd6iX3vAZ0vA43nOUOnbq/X5ihgU+mSXXqunMkeQADGiqw/PY0JNeYtD5sr0PAy51YPgAPbDoeapv9r8WA== + "@rollup/plugin-node-resolve@^7.1.1": version "7.1.3" resolved "https://registry.yarnpkg.com/@rollup/plugin-node-resolve/-/plugin-node-resolve-7.1.3.tgz#80de384edfbd7bfc9101164910f86078151a3eca" @@ -3315,6 +3932,11 @@ resolved "https://registry.yarnpkg.com/@tootallnate/once/-/once-1.1.2.tgz#ccb91445360179a04e7fe6aff78c00ffc1eeaf82" integrity sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw== +"@tootallnate/once@2": + version "2.0.0" + resolved "https://registry.yarnpkg.com/@tootallnate/once/-/once-2.0.0.tgz#f544a148d3ab35801c1f633a7441fd87c2e484bf" + integrity sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A== + "@tsconfig/node10@^1.0.7": version "1.0.9" resolved "https://registry.yarnpkg.com/@tsconfig/node10/-/node10-1.0.9.tgz#df4907fc07a886922637b15e02d4cebc4c0021b2" @@ -3722,16 +4344,33 @@ jest-diff "^25.2.1" pretty-format "^25.2.1" +"@types/js-yaml@^4.0.0": + version "4.0.5" + resolved "https://registry.yarnpkg.com/@types/js-yaml/-/js-yaml-4.0.5.tgz#738dd390a6ecc5442f35e7f03fa1431353f7e138" + integrity sha512-FhpRzf927MNQdRZP0J5DLIdTXhjLYzeUTmLAu69mnVksLH9CJY3IuSeEgbKUki7GQZm0WqDkGzyxju2EZGD2wA== + "@types/json-schema@*", "@types/json-schema@^7.0.3", "@types/json-schema@^7.0.5", "@types/json-schema@^7.0.7": version "7.0.9" resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.9.tgz#97edc9037ea0c38585320b28964dde3b39e4660d" integrity sha512-qcUXuemtEu+E5wZSJHNxUXeCZhAfXKQ41D+duX+VYPde7xyEVZci+/oXKJL13tnRs9lR2pr4fod59GT6/X1/yQ== +"@types/json-stable-stringify@^1.0.32": + version "1.0.34" + resolved "https://registry.yarnpkg.com/@types/json-stable-stringify/-/json-stable-stringify-1.0.34.tgz#c0fb25e4d957e0ee2e497c1f553d7f8bb668fd75" + integrity sha512-s2cfwagOQAS8o06TcwKfr9Wx11dNGbH2E9vJz1cqV+a/LOyhWNLUNd6JSRYNzvB4d29UuJX2M0Dj9vE1T8fRXw== + "@types/json5@^0.0.29": version "0.0.29" resolved "https://registry.yarnpkg.com/@types/json5/-/json5-0.0.29.tgz#ee28707ae94e11d2b827bcbe5270bcea7f3e71ee" integrity sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ== +"@types/jsonwebtoken@^8.5.0": + version "8.5.9" + resolved "https://registry.yarnpkg.com/@types/jsonwebtoken/-/jsonwebtoken-8.5.9.tgz#2c064ecb0b3128d837d2764aa0b117b0ff6e4586" + integrity sha512-272FMnFGzAVMGtu9tkr29hRL6bZj4Zs1KZNeHLnKqAvp06tAIcarTMwOh8/8bz4FmKRcMxZhZNeUAQsNLoiPhg== + dependencies: + "@types/node" "*" + "@types/lingui__core@*", "@types/lingui__core@^2.7.1": version "2.7.1" resolved "https://registry.npmjs.org/@types/lingui__core/-/lingui__core-2.7.1.tgz" @@ -3849,14 +4488,6 @@ hoist-non-react-statics "^3.3.0" redux "^4.0.0" -"@types/react-relay@^13.0.2": - version "13.0.2" - resolved "https://registry.yarnpkg.com/@types/react-relay/-/react-relay-13.0.2.tgz#85ac65b13b7a67f8c75fc32dd175160c28d3cc9b" - integrity sha512-QyPV/BVKyv5/3bZKILIJYa2dM1r2HOMYNe6vuFbs/4G1uWj9RCbJiTcWFK2OxH3y70p1k9/A5gPS3lFDm0CvHQ== - dependencies: - "@types/react" "*" - "@types/relay-runtime" "*" - "@types/react-router-dom@^5.3.3": version "5.3.3" resolved "https://registry.yarnpkg.com/@types/react-router-dom/-/react-router-dom-5.3.3.tgz#e9d6b4a66fcdbd651a5f106c2656a30088cc1e83" @@ -3922,11 +4553,6 @@ "@types/styled-system" "*" "@types/styled-system__css" "*" -"@types/relay-runtime@*": - version "13.0.3" - resolved "https://registry.yarnpkg.com/@types/relay-runtime/-/relay-runtime-13.0.3.tgz#0139a02d24fd527c844af3063e943692fd181854" - integrity sha512-LZr9fiWspAtiFIMDcj/6LarYFqxd3jh3ASXULtWL5Tl5CHoDe48Il2nIAF66XKLLCG3QvDgHR8yLX6ZVWKjkkw== - "@types/resolve@0.0.8": version "0.0.8" resolved "https://registry.yarnpkg.com/@types/resolve/-/resolve-0.0.8.tgz#f26074d238e02659e323ce1a13d041eee280e194" @@ -4062,6 +4688,13 @@ anymatch "^3.0.0" source-map "^0.6.0" +"@types/ws@^8.0.0": + version "8.5.3" + resolved "https://registry.yarnpkg.com/@types/ws/-/ws-8.5.3.tgz#7d25a1ffbecd3c4f2d35068d0b283c037003274d" + integrity sha512-6YOoWjruKj1uLf3INHH7D3qTXwFfEsg1kf3c0uDdSBJwfa/llkwIjrAGV7j7mVgGNbzTQ3HiHKKDXl6bJPD97w== + dependencies: + "@types/node" "*" + "@types/yargs-parser@*": version "20.2.1" resolved "https://registry.yarnpkg.com/@types/yargs-parser/-/yargs-parser-20.2.1.tgz#3b9ce2489919d9e4fea439b76916abc34b2df129" @@ -5219,6 +5852,56 @@ "@webassemblyjs/wast-parser" "1.9.0" "@xtuc/long" "4.2.2" +"@whatwg-node/fetch@0.5.3", "@whatwg-node/fetch@^0.5.0": + version "0.5.3" + resolved "https://registry.yarnpkg.com/@whatwg-node/fetch/-/fetch-0.5.3.tgz#afbd38a2e5392d91318845b967529076ca654b9e" + integrity sha512-cuAKL3Z7lrJJuUrfF1wxkQTb24Qd1QO/lsjJpM5ZSZZzUMms5TPnbGeGUKWA3hVKNHh30lVfr2MyRCT5Jfkucw== + dependencies: + "@peculiar/webcrypto" "^1.4.0" + abort-controller "^3.0.0" + busboy "^1.6.0" + form-data-encoder "^1.7.1" + formdata-node "^4.3.1" + node-fetch "^2.6.7" + undici "^5.12.0" + web-streams-polyfill "^3.2.0" + +"@whatwg-node/fetch@^0.3.0": + version "0.3.2" + resolved "https://registry.yarnpkg.com/@whatwg-node/fetch/-/fetch-0.3.2.tgz#da4323795c26c135563ba01d49dc16037bec4287" + integrity sha512-Bs5zAWQs0tXsLa4mRmLw7Psps1EN78vPtgcLpw3qPY8s6UYPUM67zFZ9cy+7tZ64PXhfwzxJn+m7RH2Lq48RNQ== + dependencies: + "@peculiar/webcrypto" "^1.4.0" + abort-controller "^3.0.0" + busboy "^1.6.0" + event-target-polyfill "^0.0.3" + form-data-encoder "^1.7.1" + formdata-node "^4.3.1" + node-fetch "^2.6.7" + undici "^5.8.0" + web-streams-polyfill "^3.2.0" + +"@wry/context@^0.7.0": + version "0.7.0" + resolved "https://registry.yarnpkg.com/@wry/context/-/context-0.7.0.tgz#be88e22c0ddf62aeb0ae9f95c3d90932c619a5c8" + integrity sha512-LcDAiYWRtwAoSOArfk7cuYvFXytxfVrdX7yxoUmK7pPITLk5jYh2F8knCwS7LjgYL8u1eidPlKKV6Ikqq0ODqQ== + dependencies: + tslib "^2.3.0" + +"@wry/equality@^0.5.0": + version "0.5.3" + resolved "https://registry.yarnpkg.com/@wry/equality/-/equality-0.5.3.tgz#fafebc69561aa2d40340da89fa7dc4b1f6fb7831" + integrity sha512-avR+UXdSrsF2v8vIqIgmeTY0UR91UT+IyablCyKe/uk22uOJ8fusKZnH9JH9e1/EtLeNJBtagNmL3eJdnOV53g== + dependencies: + tslib "^2.3.0" + +"@wry/trie@^0.3.0": + version "0.3.2" + resolved "https://registry.yarnpkg.com/@wry/trie/-/trie-0.3.2.tgz#a06f235dc184bd26396ba456711f69f8c35097e6" + integrity sha512-yRTyhWSls2OY/pYLfwff867r8ekooZ4UI+/gxot5Wj8EFwSf2rG+n+Mo/6LoLQm1TKA4GRj2+LCpbfS937dClQ== + dependencies: + tslib "^2.3.0" + "@xtuc/ieee754@^1.2.0": version "1.2.0" resolved "https://registry.yarnpkg.com/@xtuc/ieee754/-/ieee754-1.2.0.tgz#eef014a3145ae477a1cbc00cd1e552336dceb790" @@ -5244,6 +5927,13 @@ abab@^2.0.3, abab@^2.0.5: resolved "https://registry.yarnpkg.com/abab/-/abab-2.0.5.tgz#c0b678fb32d60fc1219c784d6a826fe385aeb79a" integrity sha512-9IK9EadsbHo6jLWIpxpR6pL0sazTXV6+SQv25ZB+F7Bj9mJNaOc4nCRabwd5M/JwmUa8idz6Eci6eKfJryPs6Q== +abort-controller@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/abort-controller/-/abort-controller-3.0.0.tgz#eaf54d53b62bae4138e809ca225c8439a6efb392" + integrity sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg== + dependencies: + event-target-shim "^5.0.0" + accepts@~1.3.4, accepts@~1.3.5, accepts@~1.3.7: version "1.3.7" resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.7.tgz#531bc726517a3b2b41f850021c6cc15eaab507cd" @@ -5424,10 +6114,10 @@ ansi-regex@^4.1.0: resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-4.1.0.tgz#8b9f8f08cf1acb843756a839ca8c7e3168c51997" integrity sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg== -ansi-regex@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.0.tgz#388539f55179bf39339c81af30a654d69f87cb75" - integrity sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg== +ansi-regex@^5.0.0, ansi-regex@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304" + integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== ansi-styles@^3.2.0, ansi-styles@^3.2.1: version "3.2.1" @@ -5496,6 +6186,11 @@ argparse@^1.0.7: dependencies: sprintf-js "~1.0.2" +argparse@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38" + integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q== + aria-query@^4.2.2: version "4.2.2" resolved "https://registry.yarnpkg.com/aria-query/-/aria-query-4.2.2.tgz#0d2ca6c9aceb56b8977e9fed6aed7e15bbd2f83b" @@ -5633,6 +6328,15 @@ asn1@~0.2.3: dependencies: safer-buffer "~2.1.0" +asn1js@^3.0.1, asn1js@^3.0.5: + version "3.0.5" + resolved "https://registry.yarnpkg.com/asn1js/-/asn1js-3.0.5.tgz#5ea36820443dbefb51cc7f88a2ebb5b462114f38" + integrity sha512-FVnvrKJwpt9LP2lAMl8qZswRNm3T4q9CON+bxldk2iwk3FFpuwhx2FfinyitizWHsVYyaY+y5JzDR0rCMV5yTQ== + dependencies: + pvtsutils "^1.3.2" + pvutils "^1.1.3" + tslib "^2.4.0" + assert-plus@1.0.0, assert-plus@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525" @@ -5712,6 +6416,11 @@ atob@^2.1.2: resolved "https://registry.yarnpkg.com/atob/-/atob-2.1.2.tgz#6d9517eb9e030d2436666651e86bd9f6f13533c9" integrity sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg== +auto-bind@~4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/auto-bind/-/auto-bind-4.0.0.tgz#e3589fc6c2da8f7ca43ba9f84fa52a744fc997fb" + integrity sha512-Hdw8qdNiqdJ8LqT0iK0sVzkFbzg6fhnQqqfWhBDxcHZvU75+B+ayzTy8x+k5Ix0Y92XOhOUlx74ps+bA6BeYMQ== + autoprefixer@^9.6.1: version "9.8.6" resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-9.8.6.tgz#3b73594ca1bf9266320c5acf1588d74dea74210f" @@ -5873,15 +6582,6 @@ babel-plugin-named-asset-import@^0.3.7: resolved "https://registry.yarnpkg.com/babel-plugin-named-asset-import/-/babel-plugin-named-asset-import-0.3.7.tgz#156cd55d3f1228a5765774340937afc8398067dd" integrity sha512-squySRkf+6JGnvjoUtDEjSREJEBirnXi9NqP6rjSYsylxQxqBTz+pkmf395i9E2zsvmYUaI40BHo6SqZUdydlw== -babel-plugin-relay@^14.1.0: - version "14.1.0" - resolved "https://registry.yarnpkg.com/babel-plugin-relay/-/babel-plugin-relay-14.1.0.tgz#97128dd5f53f115c7d377d732c199a53eb48a1a7" - integrity sha512-1FTe0s07fGH/urhuVDWf9IPQd1UYcdvjCPPf5ixJJkK8+3cLAtseJ6dcyk1UnBSEDodRYwWLPhVOaGQIVvj3pw== - dependencies: - babel-plugin-macros "^2.0.0" - cosmiconfig "^5.0.5" - graphql "15.3.0" - "babel-plugin-styled-components@>= 1.12.0": version "1.13.1" resolved "https://registry.yarnpkg.com/babel-plugin-styled-components/-/babel-plugin-styled-components-1.13.1.tgz#5ecd28b207627c2a26ef8d5da401e9644065095a" @@ -5902,6 +6602,11 @@ babel-plugin-syntax-object-rest-spread@^6.8.0: resolved "https://registry.yarnpkg.com/babel-plugin-syntax-object-rest-spread/-/babel-plugin-syntax-object-rest-spread-6.13.0.tgz#fd6536f2bce13836ffa3a5458c4903a597bb3bf5" integrity sha1-/WU28rzhODb/o6VFjEkDpZe7O/U= +babel-plugin-syntax-trailing-function-commas@^7.0.0-beta.0: + version "7.0.0-beta.0" + resolved "https://registry.yarnpkg.com/babel-plugin-syntax-trailing-function-commas/-/babel-plugin-syntax-trailing-function-commas-7.0.0-beta.0.tgz#aa213c1435e2bffeb6fca842287ef534ad05d5cf" + integrity sha512-Xj9XuRuz3nTSbaTXWv3itLOcxyF4oPD8douBBmj7U9BBC6nEBYfyOJYQMf/8PJAFotC62UY5dFfIGEPr7WswzQ== + babel-plugin-transform-object-rest-spread@^6.26.0: version "6.26.0" resolved "https://registry.yarnpkg.com/babel-plugin-transform-object-rest-spread/-/babel-plugin-transform-object-rest-spread-6.26.0.tgz#0f36692d50fef6b7e2d4b3ac1478137a963b7b06" @@ -5933,6 +6638,39 @@ babel-preset-current-node-syntax@^1.0.0: "@babel/plugin-syntax-optional-chaining" "^7.8.3" "@babel/plugin-syntax-top-level-await" "^7.8.3" +babel-preset-fbjs@^3.4.0: + version "3.4.0" + resolved "https://registry.yarnpkg.com/babel-preset-fbjs/-/babel-preset-fbjs-3.4.0.tgz#38a14e5a7a3b285a3f3a86552d650dca5cf6111c" + integrity sha512-9ywCsCvo1ojrw0b+XYk7aFvTH6D9064t0RIL1rtMf3nsa02Xw41MS7sZw216Im35xj/UY0PDBQsa1brUDDF1Ow== + dependencies: + "@babel/plugin-proposal-class-properties" "^7.0.0" + "@babel/plugin-proposal-object-rest-spread" "^7.0.0" + "@babel/plugin-syntax-class-properties" "^7.0.0" + "@babel/plugin-syntax-flow" "^7.0.0" + "@babel/plugin-syntax-jsx" "^7.0.0" + "@babel/plugin-syntax-object-rest-spread" "^7.0.0" + "@babel/plugin-transform-arrow-functions" "^7.0.0" + "@babel/plugin-transform-block-scoped-functions" "^7.0.0" + "@babel/plugin-transform-block-scoping" "^7.0.0" + "@babel/plugin-transform-classes" "^7.0.0" + "@babel/plugin-transform-computed-properties" "^7.0.0" + "@babel/plugin-transform-destructuring" "^7.0.0" + "@babel/plugin-transform-flow-strip-types" "^7.0.0" + "@babel/plugin-transform-for-of" "^7.0.0" + "@babel/plugin-transform-function-name" "^7.0.0" + "@babel/plugin-transform-literals" "^7.0.0" + "@babel/plugin-transform-member-expression-literals" "^7.0.0" + "@babel/plugin-transform-modules-commonjs" "^7.0.0" + "@babel/plugin-transform-object-super" "^7.0.0" + "@babel/plugin-transform-parameters" "^7.0.0" + "@babel/plugin-transform-property-literals" "^7.0.0" + "@babel/plugin-transform-react-display-name" "^7.0.0" + "@babel/plugin-transform-react-jsx" "^7.0.0" + "@babel/plugin-transform-shorthand-properties" "^7.0.0" + "@babel/plugin-transform-spread" "^7.0.0" + "@babel/plugin-transform-template-literals" "^7.0.0" + babel-plugin-syntax-trailing-function-commas "^7.0.0-beta.0" + babel-preset-jest@^26.6.2: version "26.6.2" resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-26.6.2.tgz#747872b1171df032252426586881d62d31798fee" @@ -6319,15 +7057,15 @@ browserslist@4.14.2: escalade "^3.0.2" node-releases "^1.1.61" -browserslist@^4.0.0, browserslist@^4.12.0, browserslist@^4.19.1, browserslist@^4.20.2, browserslist@^4.6.2, browserslist@^4.6.4: - version "4.21.3" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.21.3.tgz#5df277694eb3c48bc5c4b05af3e8b7e09c5a6d1a" - integrity sha512-898rgRXLAyRkM1GryrrBHGkqA5hlpkV5MhtZwg9QXeiyLUYs2k00Un05aX5l2/yJIOObYKOpS2JNo8nJDE7fWQ== +browserslist@^4.0.0, browserslist@^4.12.0, browserslist@^4.19.1, browserslist@^4.21.3, browserslist@^4.6.2, browserslist@^4.6.4: + version "4.21.4" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.21.4.tgz#e7496bbc67b9e39dd0f98565feccdcb0d4ff6987" + integrity sha512-CBHJJdDmgjl3daYjN5Cp5kbTf1mUhZoS+beLklHIvkOWscs83YAhLlF3Wsh/lciQYAcbBJgTOD44VtG31ZM4Hw== dependencies: - caniuse-lite "^1.0.30001370" - electron-to-chromium "^1.4.202" + caniuse-lite "^1.0.30001400" + electron-to-chromium "^1.4.251" node-releases "^2.0.6" - update-browserslist-db "^1.0.5" + update-browserslist-db "^1.0.9" bs58@^4.0.0: version "4.0.1" @@ -6375,6 +7113,11 @@ buffer-crc32@~0.2.3: resolved "https://registry.yarnpkg.com/buffer-crc32/-/buffer-crc32-0.2.13.tgz#0d333e3f00eac50aa1454abd30ef8c2a5d9a7242" integrity sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI= +buffer-equal-constant-time@1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz#f8e71132f7ffe6e01a5c9697a4c6f3e48d5cc819" + integrity sha512-zRpUiDwd/xk6ADqPMATG8vc9VPrkck7T07OIx0gnjmJAnHnTVXNQG3vfvWNuiZIkwu9KrKdA1iJKfsfTVxE6NA== + buffer-equal@0.0.1: version "0.0.1" resolved "https://registry.npmjs.org/buffer-equal/-/buffer-equal-0.0.1.tgz" @@ -6464,6 +7207,13 @@ bunyan@^1.8.15: mv "~2" safe-json-stringify "~1" +busboy@^1.6.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/busboy/-/busboy-1.6.0.tgz#966ea36a9502e43cdb9146962523b92f531f6893" + integrity sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA== + dependencies: + streamsearch "^1.1.0" + bytes@3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.0.0.tgz#d32815404d689699f85a4ea4fa8755dd13a96048" @@ -6570,7 +7320,7 @@ callsites@^3.0.0: resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== -camel-case@^4.1.1: +camel-case@^4.1.1, camel-case@^4.1.2: version "4.1.2" resolved "https://registry.npmjs.org/camel-case/-/camel-case-4.1.2.tgz" integrity sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw== @@ -6608,10 +7358,19 @@ caniuse-api@^3.0.0: lodash.memoize "^4.1.2" lodash.uniq "^4.5.0" -caniuse-lite@^1.0.0, caniuse-lite@^1.0.30000981, caniuse-lite@^1.0.30001109, caniuse-lite@^1.0.30001125, caniuse-lite@^1.0.30001370: - version "1.0.30001375" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001375.tgz#8e73bc3d1a4c800beb39f3163bf0190d7e5d7672" - integrity sha512-kWIMkNzLYxSvnjy0hL8w1NOaWNr2rn39RTAVyIwcw8juu60bZDWiF1/loOYANzjtJmy6qPgNmn38ro5Pygagdw== +caniuse-lite@^1.0.0, caniuse-lite@^1.0.30000981, caniuse-lite@^1.0.30001109, caniuse-lite@^1.0.30001125, caniuse-lite@^1.0.30001400: + version "1.0.30001436" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001436.tgz#22d7cbdbbbb60cdc4ca1030ccd6dea9f5de4848b" + integrity sha512-ZmWkKsnC2ifEPoWUvSAIGyOYwT+keAaaWPHiQ9DfMqS1t6tfuyFYoWR78TeZtznkEQ64+vGXH9cZrElwR2Mrxg== + +capital-case@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/capital-case/-/capital-case-1.0.4.tgz#9d130292353c9249f6b00fa5852bee38a717e669" + integrity sha512-ds37W8CytHgwnhGGTi88pcPyR15qoNkOpYwmMMfnWqqWgESapLqvDx6huFjQ5vqWSn2Z06173XNA7LtMOeUh1A== + dependencies: + no-case "^3.0.4" + tslib "^2.0.3" + upper-case-first "^2.0.2" capture-exit@^2.0.0: version "2.0.0" @@ -6664,6 +7423,40 @@ chalk@^4.0.0, chalk@^4.1.0, chalk@^4.1.1: ansi-styles "^4.1.0" supports-color "^7.1.0" +change-case-all@1.0.14: + version "1.0.14" + resolved "https://registry.yarnpkg.com/change-case-all/-/change-case-all-1.0.14.tgz#bac04da08ad143278d0ac3dda7eccd39280bfba1" + integrity sha512-CWVm2uT7dmSHdO/z1CXT/n47mWonyypzBbuCy5tN7uMg22BsfkhwT6oHmFCAk+gL1LOOxhdbB9SZz3J1KTY3gA== + dependencies: + change-case "^4.1.2" + is-lower-case "^2.0.2" + is-upper-case "^2.0.2" + lower-case "^2.0.2" + lower-case-first "^2.0.2" + sponge-case "^1.0.1" + swap-case "^2.0.2" + title-case "^3.0.3" + upper-case "^2.0.2" + upper-case-first "^2.0.2" + +change-case@^4.1.2: + version "4.1.2" + resolved "https://registry.yarnpkg.com/change-case/-/change-case-4.1.2.tgz#fedfc5f136045e2398c0410ee441f95704641e12" + integrity sha512-bSxY2ws9OtviILG1EiY5K7NNxkqg/JnRnFxLtKQ96JaviiIxi7djMrSd0ECT9AC+lttClmYwKw53BWpOMblo7A== + dependencies: + camel-case "^4.1.2" + capital-case "^1.0.4" + constant-case "^3.0.4" + dot-case "^3.0.4" + header-case "^2.0.4" + no-case "^3.0.4" + param-case "^3.0.4" + pascal-case "^3.1.2" + path-case "^3.0.4" + sentence-case "^3.0.4" + snake-case "^3.0.4" + tslib "^2.0.3" + char-regex@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/char-regex/-/char-regex-1.0.2.tgz#d744358226217f981ed58f479b1d6bcc29545dcf" @@ -6733,7 +7526,7 @@ chokidar@^2.1.8: optionalDependencies: fsevents "^1.2.7" -chokidar@^3.4.1, chokidar@^3.4.3: +chokidar@^3.4.1, chokidar@^3.4.3, chokidar@^3.5.2: version "3.5.3" resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.3.tgz#1cf37c8707b932bd1af1ae22c0432e2acd1903bd" integrity sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw== @@ -6904,6 +7697,15 @@ cliui@^7.0.2: strip-ansi "^6.0.0" wrap-ansi "^7.0.0" +cliui@^8.0.1: + version "8.0.1" + resolved "https://registry.yarnpkg.com/cliui/-/cliui-8.0.1.tgz#0c04b075db02cbfe60dc8e6cf2f5486b1a3608aa" + integrity sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ== + dependencies: + string-width "^4.2.0" + strip-ansi "^6.0.1" + wrap-ansi "^7.0.0" + clone@2.x, clone@^2.1.1: version "2.1.2" resolved "https://registry.yarnpkg.com/clone/-/clone-2.1.2.tgz#1b7f4b9f591f1e8f83670401600345a02887435f" @@ -7012,6 +7814,11 @@ colorette@^1.2.1, colorette@^1.2.2: resolved "https://registry.yarnpkg.com/colorette/-/colorette-1.4.0.tgz#5190fbb87276259a86ad700bff2c6d6faa3fca40" integrity sha512-Y2oEozpomLn7Q3HFP7dpww7AtMJplbM9lGZP6RDfHqmbeRjiwRg4n6VM6j4KLmRke85uWEI7JqF17f3pqdRA0g== +colorette@^2.0.16: + version "2.0.19" + resolved "https://registry.yarnpkg.com/colorette/-/colorette-2.0.19.tgz#cdf044f47ad41a0f4b56b3a0d5b4e6e1a2d5a798" + integrity sha512-3tlv/dIP7FWvj3BsbHrGLJ6l/oKh1O3TcgBqMn+yyCagOxc23fyzDS6HypQbgxWbkpDnf52p1LuR4eWDQ/K9WQ== + colors@1.0.3: version "1.0.3" resolved "https://registry.npmjs.org/colors/-/colors-1.0.3.tgz" @@ -7063,7 +7870,7 @@ commander@^6.1.0: resolved "https://registry.npmjs.org/commander/-/commander-6.2.1.tgz" integrity sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA== -common-tags@^1.8.0: +common-tags@1.8.2, common-tags@^1.8.0: version "1.8.2" resolved "https://registry.yarnpkg.com/common-tags/-/common-tags-1.8.2.tgz#94ebb3c076d26032745fd54face7f688ef5ac9c6" integrity sha512-gk/Z852D2Wtb//0I+kRFNKKE9dIIVirjoqPoA1wJU+XePVXZfGeBpk45+A1rKO4Q43prqWBNY/MiIeRLbPWUaA== @@ -7148,6 +7955,15 @@ console-browserify@^1.1.0: resolved "https://registry.yarnpkg.com/console-browserify/-/console-browserify-1.2.0.tgz#67063cef57ceb6cf4993a2ab3a55840ae8c49336" integrity sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA== +constant-case@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/constant-case/-/constant-case-3.0.4.tgz#3b84a9aeaf4cf31ec45e6bf5de91bdfb0589faf1" + integrity sha512-I2hSBi7Vvs7BEuJDr5dDHfzb/Ruj3FyvFyh7KLilAjNQw3Be+xgqUBA2W6scVEcL0hL1dwPRtIqEPVUCKkSsyQ== + dependencies: + no-case "^3.0.4" + tslib "^2.0.3" + upper-case "^2.0.2" + constants-browserify@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/constants-browserify/-/constants-browserify-1.0.0.tgz#c20b96d8c617748aaf1c16021760cd27fcb8cb75" @@ -7239,7 +8055,7 @@ core-js@^2.4.0: resolved "https://registry.npmjs.org/core-js/-/core-js-2.6.12.tgz" integrity sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ== -core-js@^3.0.0, core-js@^3.6.5: +core-js@^3.6.5: version "3.26.1" resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.26.1.tgz#7a9816dabd9ee846c1c0fe0e8fcad68f3709134e" integrity sha512-21491RRQVzUn0GGM9Z1Jrpr6PNPxPi+Za8OM9q4tksTSnlbXXGKK1nXNg/QvwFYettXvSX6zWKCtHHfjN4puyA== @@ -7249,6 +8065,18 @@ core-util-is@1.0.2, core-util-is@~1.0.0: resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" integrity sha1-tf1UIgqivFq1eqtxQMlAdUUDwac= +cosmiconfig-toml-loader@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/cosmiconfig-toml-loader/-/cosmiconfig-toml-loader-1.0.0.tgz#0681383651cceff918177debe9084c0d3769509b" + integrity sha512-H/2gurFWVi7xXvCyvsWRLCMekl4tITJcX0QEsDMpzxtuxDyM59xLatYNg4s/k9AA/HdtCYfj2su8mgA0GSDLDA== + dependencies: + "@iarna/toml" "^2.2.5" + +cosmiconfig-typescript-loader@4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/cosmiconfig-typescript-loader/-/cosmiconfig-typescript-loader-4.1.1.tgz#38dd3578344038dae40fdf09792bc2e9df529f78" + integrity sha512-9DHpa379Gp0o0Zefii35fcmuuin6q92FnLDffzdZ0l9tVd3nEobG3O+MZ06+kuBvFTSVScvNb/oHA13Nd4iipg== + cosmiconfig-typescript-loader@^1.0.0: version "1.0.9" resolved "https://registry.yarnpkg.com/cosmiconfig-typescript-loader/-/cosmiconfig-typescript-loader-1.0.9.tgz#69c523f7e8c3d9f27f563d02bbeadaf2f27212d3" @@ -7257,7 +8085,23 @@ cosmiconfig-typescript-loader@^1.0.0: cosmiconfig "^7" ts-node "^10.7.0" -cosmiconfig@^5.0.0, cosmiconfig@^5.0.5: +cosmiconfig-typescript-loader@^4.0.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/cosmiconfig-typescript-loader/-/cosmiconfig-typescript-loader-4.2.0.tgz#a3cfd0dd9dac86be7dbe5f53eb46ad03abdf417b" + integrity sha512-NkANeMnaHrlaSSlpKGyvn2R4rqUDeE/9E5YHx+b4nwo0R8dZyAqcih8/gxpCZvqWP9Vf6xuLpMSzSgdVEIM78g== + +cosmiconfig@7.0.1, cosmiconfig@^7, cosmiconfig@^7.0.0, cosmiconfig@^7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-7.0.1.tgz#714d756522cace867867ccb4474c5d01bbae5d6d" + integrity sha512-a1YWNUV2HwGimB7dU2s1wUMurNKjpx60HxBB6xUM8Re+2s1g1IIfJvFR0/iCF+XHdE0GMTKTuLR32UQff4TEyQ== + dependencies: + "@types/parse-json" "^4.0.0" + import-fresh "^3.2.1" + parse-json "^5.0.0" + path-type "^4.0.0" + yaml "^1.10.0" + +cosmiconfig@^5.0.0: version "5.2.1" resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-5.2.1.tgz#040f726809c591e77a17c0a3626ca45b4f168b1a" integrity sha512-H65gsXo1SKjf8zmrJ67eJk8aIRKV5ff2D4uKZIBZShbhGSpEmsQOPW/SKMKYhSTrqR7ufy6RP69rPogdaPh/kA== @@ -7278,17 +8122,6 @@ cosmiconfig@^6.0.0: path-type "^4.0.0" yaml "^1.7.2" -cosmiconfig@^7, cosmiconfig@^7.0.0, cosmiconfig@^7.0.1: - version "7.0.1" - resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-7.0.1.tgz#714d756522cace867867ccb4474c5d01bbae5d6d" - integrity sha512-a1YWNUV2HwGimB7dU2s1wUMurNKjpx60HxBB6xUM8Re+2s1g1IIfJvFR0/iCF+XHdE0GMTKTuLR32UQff4TEyQ== - dependencies: - "@types/parse-json" "^4.0.0" - import-fresh "^3.2.1" - parse-json "^5.0.0" - path-type "^4.0.0" - yaml "^1.10.0" - create-ecdh@^4.0.0: version "4.0.4" resolved "https://registry.yarnpkg.com/create-ecdh/-/create-ecdh-4.0.4.tgz#d6e7f4bffa66736085a0762fd3a632684dabcc4e" @@ -8047,6 +8880,11 @@ data-urls@^2.0.0: whatwg-mimetype "^2.3.0" whatwg-url "^8.0.0" +dataloader@2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/dataloader/-/dataloader-2.1.0.tgz#c69c538235e85e7ac6c6c444bae8ecabf5de9df7" + integrity sha512-qTcEYLen3r7ojZNgVUaRggOI+KM7jrKxXeSHhogh/TWxYMeONEMqY+hmkobiYQozsGIyg9OYVzO4ZIfoB4I0pQ== + date-fns@^2.16.1: version "2.21.3" resolved "https://registry.npmjs.org/date-fns/-/date-fns-2.21.3.tgz" @@ -8057,6 +8895,11 @@ dayjs@^1.10.4: resolved "https://registry.yarnpkg.com/dayjs/-/dayjs-1.10.6.tgz#288b2aa82f2d8418a6c9d4df5898c0737ad02a63" integrity sha512-AztC/IOW4L1Q41A86phW5Thhcrco3xuAA+YX/BLpLWWjRcTj5TOt/QImBLmCKlrF7u7k47arTnOyL6GnbG8Hvw== +debounce@^1.2.0: + version "1.2.1" + resolved "https://registry.yarnpkg.com/debounce/-/debounce-1.2.1.tgz#38881d8f4166a5c5848020c11827b834bcb3e0a5" + integrity sha512-XRRe6Glud4rd/ZGQfiV1ruXSfbvfJedlV9Y6zOlP+2K04vBYiJEte6stfFkCP03aMnY5tsipamumUjL14fofug== + debug@2.6.9, debug@^2.2.0, debug@^2.3.3, debug@^2.6.0, debug@^2.6.9: version "2.6.9" resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" @@ -8215,6 +9058,11 @@ depd@~1.1.2: resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9" integrity sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak= +dependency-graph@^0.11.0: + version "0.11.0" + resolved "https://registry.yarnpkg.com/dependency-graph/-/dependency-graph-0.11.0.tgz#ac0ce7ed68a54da22165a85e97a01d53f5eb2e27" + integrity sha512-JeMq7fEshyepOWDfcfHK06N3MhyPhz++vtqWhMT5O9A3K42rdsEDpfdVqjaqaAhsw6a+ZqeDvQVtD0hFHQWrzg== + des.js@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/des.js/-/des.js-1.0.1.tgz#5382142e1bdc53f85d86d53e5f4aa7deb91e0843" @@ -8233,6 +9081,11 @@ detect-browser@5.2.0: resolved "https://registry.npmjs.org/detect-browser/-/detect-browser-5.2.0.tgz" integrity sha512-tr7XntDAu50BVENgQfajMLzacmSe34D+qZc4zjnniz0ZVuw/TZcLcyxHQjYpJTM36sGEkZZlYLnIM1hH7alTMA== +detect-indent@^6.0.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/detect-indent/-/detect-indent-6.1.0.tgz#592485ebbbf6b3b1ab2be175c8393d04ca0d57e6" + integrity sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA== + detect-newline@^3.0.0: version "3.1.0" resolved "https://registry.yarnpkg.com/detect-newline/-/detect-newline-3.1.0.tgz#576f5dfc63ae1a192ff192d8ad3af6308991b651" @@ -8443,6 +9296,16 @@ dotenv@^14.2.0: resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-14.3.2.tgz#7c30b3a5f777c79a3429cb2db358eef6751e8369" integrity sha512-vwEppIphpFdvaMCaHfCEv9IgwcxMljMw2TnAQBB4VWPvzXQLTb82jwmdOKzlEVUL3gNFT4l4TPKO+Bn+sqcrVQ== +dotenv@^16.0.0: + version "16.0.3" + resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-16.0.3.tgz#115aec42bac5053db3c456db30cc243a5a836a07" + integrity sha512-7GO6HghkA5fYG9TYnNxi14/7K9f5occMlp3zXAuSxn7CKCxt9xbNWG7yF8hTCSUchlfWSe3uLmlPfigevRItzQ== + +dset@3.1.2: + version "3.1.2" + resolved "https://registry.yarnpkg.com/dset/-/dset-3.1.2.tgz#89c436ca6450398396dc6538ea00abc0c54cd45a" + integrity sha512-g/M9sqy3oHe477Ar4voQxWtaPIFw1jTdKZuomOjhCcBx9nHUNn0pu6NopuFFrTh/TRZIKEj+76vLWFu9BNKk+Q== + dtrace-provider@~0.8: version "0.8.8" resolved "https://registry.yarnpkg.com/dtrace-provider/-/dtrace-provider-0.8.8.tgz#2996d5490c37e1347be263b423ed7b297fb0d97e" @@ -8473,6 +9336,13 @@ ecc-jsbn@~0.1.1: jsbn "~0.1.0" safer-buffer "^2.1.0" +ecdsa-sig-formatter@1.0.11: + version "1.0.11" + resolved "https://registry.yarnpkg.com/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz#ae0f0fa2d85045ef14a817daa3ce9acd0489e5bf" + integrity sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ== + dependencies: + safe-buffer "^5.0.1" + ee-first@1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" @@ -8490,10 +9360,10 @@ ejs@^2.6.1: resolved "https://registry.yarnpkg.com/ejs/-/ejs-2.7.4.tgz#48661287573dcc53e366c7a1ae52c3a120eec9ba" integrity sha512-7vmuyh5+kuUyJKePhQfRQBhXV5Ce+RnaeeQArKu1EAMpL3WbgMt5WG6uQZpEVvYSSsxMXRKOewtDk9RaTKXRlA== -electron-to-chromium@^1.3.564, electron-to-chromium@^1.4.202: - version "1.4.213" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.213.tgz#a0d0f535e4fbddc25196c91ff2964b5660932297" - integrity sha512-+3DbGHGOCHTVB/Ms63bGqbyC1b8y7Fk86+7ltssB8NQrZtSCvZG6eooSl9U2Q0yw++fL2DpHKOdTU0NVEkFObg== +electron-to-chromium@^1.3.564, electron-to-chromium@^1.4.251: + version "1.4.284" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.284.tgz#61046d1e4cab3a25238f6bf7413795270f125592" + integrity sha512-M8WEXFuKXMYMVr45fo8mq0wUrrJHheiKZf6BArTKk9ZBYCKJEOU5H8cdWgDT+qCVZf7Na4lVUaZsA+h6uA9+PA== elliptic@6.5.4, elliptic@^6.5.2, elliptic@^6.5.3: version "6.5.4" @@ -9252,6 +10122,16 @@ eval@0.1.6: dependencies: require-like ">= 0.1.1" +event-target-polyfill@^0.0.3: + version "0.0.3" + resolved "https://registry.yarnpkg.com/event-target-polyfill/-/event-target-polyfill-0.0.3.tgz#ed373295f3b257774b5d75afb2599331d9f3406c" + integrity sha512-ZMc6UuvmbinrCk4RzGyVmRyIsAyxMRlp4CqSrcQRO8Dy0A9ldbiRy5kdtBj4OtP7EClGdqGfIqo9JmOClMsGLQ== + +event-target-shim@^5.0.0: + version "5.0.1" + resolved "https://registry.yarnpkg.com/event-target-shim/-/event-target-shim-5.0.1.tgz#5d4d3ebdf9583d63a5333ce2deb7480ab2b05789" + integrity sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ== + eventemitter2@^6.4.3: version "6.4.4" resolved "https://registry.yarnpkg.com/eventemitter2/-/eventemitter2-6.4.4.tgz#aa96e8275c4dbeb017a5d0e03780c65612a1202b" @@ -9469,6 +10349,11 @@ extglob@^2.0.4: snapdragon "^0.8.1" to-regex "^3.0.1" +extract-files@^11.0.0: + version "11.0.0" + resolved "https://registry.yarnpkg.com/extract-files/-/extract-files-11.0.0.tgz#b72d428712f787eef1f5193aff8ab5351ca8469a" + integrity sha512-FuoE1qtbJ4bBVvv94CC7s0oTnKUGvQs+Rjf1L2SJFfS+HTVVjhPFtehPdQ0JiGPqVNfSSZvL5yzHHQq2Z4WNhQ== + extract-files@^9.0.0: version "9.0.0" resolved "https://registry.yarnpkg.com/extract-files/-/extract-files-9.0.0.tgz#8a7744f2437f81f5ed3250ed9f1550de902fe54a" @@ -9564,7 +10449,7 @@ fbjs-css-vars@^1.0.0: resolved "https://registry.yarnpkg.com/fbjs-css-vars/-/fbjs-css-vars-1.0.2.tgz#216551136ae02fe255932c3ec8775f18e2c078b8" integrity sha512-b2XGFAFdWZWg0phtAWLHCk836A1Xann+I+Dgd3Gk64MHKZO44FfoD1KxyvbSh0qZsIoXQGGlVztIY+oitJPpRQ== -fbjs@^3.0.2: +fbjs@^3.0.0: version "3.0.4" resolved "https://registry.yarnpkg.com/fbjs/-/fbjs-3.0.4.tgz#e1871c6bd3083bac71ff2da868ad5067d37716c6" integrity sha512-ucV0tDODnGV3JCnnkmoszb5lf4bNpzjv80K41wd4k798Etq+UYD0y0TIfalLjZoKgjive6/adkRnszwapiDgBQ== @@ -9822,6 +10707,11 @@ fork-ts-checker-webpack-plugin@4.1.6: tapable "^1.0.0" worker-rpc "^0.1.0" +form-data-encoder@^1.7.1: + version "1.7.2" + resolved "https://registry.yarnpkg.com/form-data-encoder/-/form-data-encoder-1.7.2.tgz#1f1ae3dccf58ed4690b86d87e4f57c654fbab040" + integrity sha512-qfqtYan3rxrnCk1VYaA4H+Ms9xdpPqvLZa6xmMgFvhO32x7/3J/ExcTd6qpxM0vH2GdMI+poehyBZvqfMTto8A== + form-data@^3.0.0: version "3.0.1" resolved "https://registry.yarnpkg.com/form-data/-/form-data-3.0.1.tgz#ebd53791b78356a99af9a300d4282c4d5eb9755f" @@ -9840,6 +10730,14 @@ form-data@~2.3.2: combined-stream "^1.0.6" mime-types "^2.1.12" +formdata-node@^4.3.1: + version "4.4.1" + resolved "https://registry.yarnpkg.com/formdata-node/-/formdata-node-4.4.1.tgz#23f6a5cb9cb55315912cbec4ff7b0f59bbd191e2" + integrity sha512-0iirZp3uVDjVGt9p49aTaqjk84TrglENEDuqfdlZQ1roC9CWlPk6Avf8EEnZNcAqPonwkG35x4n3ww/1THYAeQ== + dependencies: + node-domexception "1.0.0" + web-streams-polyfill "4.0.0-beta.3" + forwarded@0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.2.0.tgz#2269936428aad4c15c7ebe9779a84bf0b2a81811" @@ -10208,6 +11106,25 @@ graceful-fs@^4.1.11, graceful-fs@^4.1.15, graceful-fs@^4.1.2, graceful-fs@^4.1.6 resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.10.tgz#147d3a006da4ca3ce14728c7aefc287c367d7a6c" integrity sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA== +graphql-config@4.3.6: + version "4.3.6" + resolved "https://registry.yarnpkg.com/graphql-config/-/graphql-config-4.3.6.tgz#908ef03d6670c3068e51fe2e84e10e3e0af220b6" + integrity sha512-i7mAPwc0LAZPnYu2bI8B6yXU5820Wy/ArvmOseDLZIu0OU1UTULEuexHo6ZcHXeT9NvGGaUPQZm8NV3z79YydA== + dependencies: + "@graphql-tools/graphql-file-loader" "^7.3.7" + "@graphql-tools/json-file-loader" "^7.3.7" + "@graphql-tools/load" "^7.5.5" + "@graphql-tools/merge" "^8.2.6" + "@graphql-tools/url-loader" "^7.9.7" + "@graphql-tools/utils" "^8.6.5" + cosmiconfig "7.0.1" + cosmiconfig-toml-loader "1.0.0" + cosmiconfig-typescript-loader "^4.0.0" + minimatch "4.2.1" + string-env-interpolation "1.0.1" + ts-node "^10.8.1" + tslib "^2.4.0" + graphql-request@^3.4.0: version "3.4.0" resolved "https://registry.yarnpkg.com/graphql-request/-/graphql-request-3.4.0.tgz#3a400cd5511eb3c064b1873afb059196bbea9c2b" @@ -10217,10 +11134,27 @@ graphql-request@^3.4.0: extract-files "^9.0.0" form-data "^3.0.0" -graphql@15.3.0: - version "15.3.0" - resolved "https://registry.yarnpkg.com/graphql/-/graphql-15.3.0.tgz#3ad2b0caab0d110e3be4a5a9b2aa281e362b5278" - integrity sha512-GTCJtzJmkFLWRfFJuoo9RWWa/FfamUHgiFosxi/X1Ani4AVWbeyBenZTNX6dM+7WSbbFfTo/25eh0LLkwHMw2w== +graphql-request@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/graphql-request/-/graphql-request-5.0.0.tgz#7504a807d0e11be11a3c448e900f0cc316aa18ef" + integrity sha512-SpVEnIo2J5k2+Zf76cUkdvIRaq5FMZvGQYnA4lUWYbc99m+fHh4CZYRRO/Ff4tCLQ613fzCm3SiDT64ubW5Gyw== + dependencies: + "@graphql-typed-document-node/core" "^3.1.1" + cross-fetch "^3.1.5" + extract-files "^9.0.0" + form-data "^3.0.0" + +graphql-tag@^2.11.0, graphql-tag@^2.12.6: + version "2.12.6" + resolved "https://registry.yarnpkg.com/graphql-tag/-/graphql-tag-2.12.6.tgz#d441a569c1d2537ef10ca3d1633b48725329b5f1" + integrity sha512-FdSNcu2QQcWnM2VNvSCCDCVS5PpPqpzgFT8+GXzqJuoDd0CBncxCY278u4mhRO7tMgo2JjgJA5aZ+nWSQ/Z+xg== + dependencies: + tslib "^2.1.0" + +graphql-ws@5.11.2: + version "5.11.2" + resolved "https://registry.yarnpkg.com/graphql-ws/-/graphql-ws-5.11.2.tgz#d5e0acae8b4d4a4cf7be410a24135cfcefd7ddc0" + integrity sha512-4EiZ3/UXYcjm+xFGP544/yW1+DVI8ZpKASFbzrV5EDTFWJp0ZvLl4Dy2fSZAzz9imKp5pZMIcjB0x/H69Pv/6w== graphql@^14.0.2: version "14.7.0" @@ -10363,6 +11297,14 @@ he@^1.2.0: resolved "https://registry.yarnpkg.com/he/-/he-1.2.0.tgz#84ae65fa7eafb165fddb61566ae14baf05664f0f" integrity sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw== +header-case@^2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/header-case/-/header-case-2.0.4.tgz#5a42e63b55177349cf405beb8d775acabb92c063" + integrity sha512-H/vuk5TEEVZwrR0lp2zed9OCo1uAILMlx0JEMgC26rzyJJ3N1v6XkwHHXJQdR2doSjcGPM6OKPYoJgf0plJ11Q== + dependencies: + capital-case "^1.0.4" + tslib "^2.0.3" + hex-color-regex@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/hex-color-regex/-/hex-color-regex-1.1.0.tgz#4c06fccb4602fe2602b3c93df82d7e7dbf1a8a8e" @@ -10536,6 +11478,15 @@ http-proxy-agent@^4.0.1: agent-base "6" debug "4" +http-proxy-agent@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz#5129800203520d434f142bc78ff3c170800f2b43" + integrity sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w== + dependencies: + "@tootallnate/once" "2" + agent-base "6" + debug "4" + http-proxy-middleware@0.19.1: version "0.19.1" resolved "https://registry.yarnpkg.com/http-proxy-middleware/-/http-proxy-middleware-0.19.1.tgz#183c7dc4aa1479150306498c210cdaf96080a43a" @@ -10655,6 +11606,11 @@ immer@^9.0.6, immer@^9.0.7: resolved "https://registry.yarnpkg.com/immer/-/immer-9.0.12.tgz#2d33ddf3ee1d247deab9d707ca472c8c942a0f20" integrity sha512-lk7UNmSbAukB5B6dh9fnh5D0bJTOFKxVg2cyJWTYrWRfhLrLMBquONcUs3aFq507hNoIZEDDh8lb8UtOizSMhA== +immutable@~3.7.6: + version "3.7.6" + resolved "https://registry.yarnpkg.com/immutable/-/immutable-3.7.6.tgz#13b4d3cb12befa15482a26fe1b2ebae640071e4b" + integrity sha512-AizQPcaofEtO11RZhPPHBOJRdo/20MKQF9mBLnVkBoyHi1/zXK8fzVdnEpSV9gxqtnh6Qomfp3F0xT5qP/vThw== + import-cwd@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/import-cwd/-/import-cwd-2.1.0.tgz#aa6cf36e722761285cb371ec6519f53e2435b0a9" @@ -10678,6 +11634,11 @@ import-fresh@^3.0.0, import-fresh@^3.1.0, import-fresh@^3.2.1: parent-module "^1.0.0" resolve-from "^4.0.0" +import-from@4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/import-from/-/import-from-4.0.0.tgz#2710b8d66817d232e16f4166e319248d3d5492e2" + integrity sha512-P9J71vT5nLlDeV8FHs5nNxaLbrpfAV5cF5srvbZfpwpcJoM/xZR3hiv+q+SAnuSmuGbXMWud063iIMx/V/EWZQ== + import-from@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/import-from/-/import-from-2.1.0.tgz#335db7f2a7affd53aaa471d4b8021dee36b7f3b1" @@ -10773,6 +11734,27 @@ inquirer@^7.3.3: strip-ansi "^6.0.0" through "^2.3.6" +inquirer@^8.0.0: + version "8.2.5" + resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-8.2.5.tgz#d8654a7542c35a9b9e069d27e2df4858784d54f8" + integrity sha512-QAgPDQMEgrDssk1XiwwHoOGYF9BAbUcc1+j+FhEvaOt8/cKRqyLn0U5qA6F74fGhTMGxf92pOvPBeh29jQJDTQ== + dependencies: + ansi-escapes "^4.2.1" + chalk "^4.1.1" + cli-cursor "^3.1.0" + cli-width "^3.0.0" + external-editor "^3.0.3" + figures "^3.0.0" + lodash "^4.17.21" + mute-stream "0.0.8" + ora "^5.4.1" + run-async "^2.4.0" + rxjs "^7.5.5" + string-width "^4.1.0" + strip-ansi "^6.0.0" + through "^2.3.6" + wrap-ansi "^7.0.0" + inter-ui@^3.13.1: version "3.18.1" resolved "https://registry.npmjs.org/inter-ui/-/inter-ui-3.18.1.tgz" @@ -10837,6 +11819,14 @@ is-absolute-url@^3.0.3: resolved "https://registry.yarnpkg.com/is-absolute-url/-/is-absolute-url-3.0.3.tgz#96c6a22b6a23929b11ea0afb1836c36ad4a5d698" integrity sha512-opmNIX7uFnS96NtPmhWQgQx6/NYFgsUXYMllcfzwWKUMwfo8kku1TvE6hkNcH+Q1ts5cMVrsY7j0bxXQDciu9Q== +is-absolute@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-absolute/-/is-absolute-1.0.0.tgz#395e1ae84b11f26ad1795e73c17378e48a301576" + integrity sha512-dOWoqflvcydARa360Gvv18DZ/gRuHKi2NU/wU5X1ZFzdYfH29nkiNZsF3mp4OJ3H4yo9Mx8A/uAGNzpzPN3yBA== + dependencies: + is-relative "^1.0.0" + is-windows "^1.0.1" + is-accessor-descriptor@^0.1.6: version "0.1.6" resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz#a9e12cb3ae8d876727eeef3843f8a0897b5c98d6" @@ -11051,6 +12041,13 @@ is-generator-function@^1.0.7: dependencies: has-tostringtag "^1.0.0" +is-glob@4.0.3, is-glob@^4.0.0, is-glob@^4.0.1, is-glob@^4.0.3, is-glob@~4.0.1: + version "4.0.3" + resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084" + integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg== + dependencies: + is-extglob "^2.1.1" + is-glob@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-3.1.0.tgz#7ba5ae24217804ac70707b96922567486cc3e84a" @@ -11058,13 +12055,6 @@ is-glob@^3.1.0: dependencies: is-extglob "^2.1.0" -is-glob@^4.0.0, is-glob@^4.0.1, is-glob@^4.0.3, is-glob@~4.0.1: - version "4.0.3" - resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084" - integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg== - dependencies: - is-extglob "^2.1.1" - is-hex-prefixed@1.0.0: version "1.0.0" resolved "https://registry.npmjs.org/is-hex-prefixed/-/is-hex-prefixed-1.0.0.tgz" @@ -11088,6 +12078,13 @@ is-interactive@^1.0.0: resolved "https://registry.npmjs.org/is-interactive/-/is-interactive-1.0.0.tgz" integrity sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w== +is-lower-case@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/is-lower-case/-/is-lower-case-2.0.2.tgz#1c0884d3012c841556243483aa5d522f47396d2a" + integrity sha512-bVcMJy4X5Og6VZfdOZstSexlEy20Sr0k/p/b2IlQJlfdKAQuMpiv5w2Ccxb8sKdRUNAG1PnHVHjFSdRDVS6NlQ== + dependencies: + tslib "^2.0.3" + is-module@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/is-module/-/is-module-1.0.0.tgz#3258fb69f78c14d5b815d664336b4cffb6441591" @@ -11181,6 +12178,13 @@ is-regexp@^1.0.0: resolved "https://registry.yarnpkg.com/is-regexp/-/is-regexp-1.0.0.tgz#fd2d883545c46bac5a633e7b9a09e87fa2cb5069" integrity sha1-/S2INUXEa6xaYz57mgnof6LLUGk= +is-relative@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-relative/-/is-relative-1.0.0.tgz#a1bb6935ce8c5dba1e8b9754b9b2dcc020e2260d" + integrity sha512-Kw/ReK0iqwKeu0MITLFuj0jbPAmEiOsIwyIXvvbfa6QfmN9pkD1M+8pdk7Rl/dTKbH34/XBFMbgD4iMJhLQbGA== + dependencies: + is-unc-path "^1.0.0" + is-resolvable@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/is-resolvable/-/is-resolvable-1.1.0.tgz#fb18f87ce1feb925169c9a407c19318a3206ed88" @@ -11238,11 +12242,25 @@ is-typedarray@1.0.0, is-typedarray@^1.0.0, is-typedarray@~1.0.0: resolved "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz" integrity sha1-5HnICFjfDBsR3dppQPlgEfzaSpo= +is-unc-path@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-unc-path/-/is-unc-path-1.0.0.tgz#d731e8898ed090a12c352ad2eaed5095ad322c9d" + integrity sha512-mrGpVd0fs7WWLfVsStvgF6iEJnbjDFZh9/emhRDcGWTduTfNHd9CHeUwH3gYIjdbwo4On6hunkztwOaAw0yllQ== + dependencies: + unc-path-regex "^0.1.2" + is-unicode-supported@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz#3f26c76a809593b52bfa2ecb5710ed2779b522a7" integrity sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw== +is-upper-case@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/is-upper-case/-/is-upper-case-2.0.2.tgz#f1105ced1fe4de906a5f39553e7d3803fd804649" + integrity sha512-44pxmxAvnnAOwBg4tHPnkfvgjPwbc5QIsSstNU+YcJ1ovxVzCWpSGosPJOZh/a1tdl81fbgnLc9LLv+x2ywbPQ== + dependencies: + tslib "^2.0.3" + is-weakref@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/is-weakref/-/is-weakref-1.0.2.tgz#9529f383a9338205e89765e0392efc2f100f06f2" @@ -11255,7 +12273,7 @@ is-whitespace-character@^1.0.0: resolved "https://registry.npmjs.org/is-whitespace-character/-/is-whitespace-character-1.0.4.tgz" integrity sha512-SDweEzfIZM0SJV0EUga669UTKlmL0Pq8Lno0QDQsPnvECB3IM2aP0gdx5TrU0A01MAPfViaZiI2V1QMZLaKK5w== -is-windows@^1.0.2: +is-windows@^1.0.1, is-windows@^1.0.2: version "1.0.2" resolved "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz" integrity sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA== @@ -11309,6 +12327,19 @@ isobject@^3.0.0, isobject@^3.0.1: resolved "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df" integrity sha1-TkMekrEalzFjaqH5yNHMvP2reN8= +isomorphic-fetch@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/isomorphic-fetch/-/isomorphic-fetch-3.0.0.tgz#0267b005049046d2421207215d45d6a262b8b8b4" + integrity sha512-qvUtwJ3j6qwsF3jLxkZ72qCgjMysPzDfeV240JHiGZsANBYd+EEuu35v7dfrJ9Up0Ak07D7GGSkGhCHTqg/5wA== + dependencies: + node-fetch "^2.6.1" + whatwg-fetch "^3.4.1" + +isomorphic-ws@5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/isomorphic-ws/-/isomorphic-ws-5.0.0.tgz#e5529148912ecb9b451b46ed44d53dae1ce04bbf" + integrity sha512-muId7Zzn9ywDsyXgTIafTry2sV3nySZeUDe6YedVd1Hvuuep5AsIlqK+XefWpYTyJG5e503F2xIuT2lcU6rCSw== + isstream@~0.1.2: version "0.1.2" resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a" @@ -11860,6 +12891,13 @@ js-yaml@^3.13.1: argparse "^1.0.7" esprima "^4.0.0" +js-yaml@^4.0.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.1.0.tgz#c1fb65f8f5017901cdd2c951864ba18458a10602" + integrity sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA== + dependencies: + argparse "^2.0.1" + jsbi@^3.1.4: version "3.1.4" resolved "https://registry.npmjs.org/jsbi/-/jsbi-3.1.4.tgz" @@ -11976,6 +13014,14 @@ json-stringify-safe@~5.0.1: resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" integrity sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus= +json-to-pretty-yaml@^1.2.2: + version "1.2.2" + resolved "https://registry.yarnpkg.com/json-to-pretty-yaml/-/json-to-pretty-yaml-1.2.2.tgz#f4cd0bd0a5e8fe1df25aaf5ba118b099fd992d5b" + integrity sha512-rvm6hunfCcqegwYaG5T4yKJWxc9FXFgBVrcTZ4XfSVRwa5HA/Xs+vB/Eo9treYYHCeNM0nrSUr82V/M31Urc7A== + dependencies: + remedial "^1.0.7" + remove-trailing-spaces "^1.0.6" + json3@^3.3.3: version "3.3.3" resolved "https://registry.yarnpkg.com/json3/-/json3-3.3.3.tgz#7fc10e375fc5ae42c4705a5cc0aa6f62be305b81" @@ -12014,6 +13060,22 @@ jsonify@~0.0.0: resolved "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz" integrity sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM= +jsonwebtoken@^8.5.1: + version "8.5.1" + resolved "https://registry.yarnpkg.com/jsonwebtoken/-/jsonwebtoken-8.5.1.tgz#00e71e0b8df54c2121a1f26137df2280673bcc0d" + integrity sha512-XjwVfRS6jTMsqYs0EsuJ4LGxXV14zQybNd4L2r0UvbVnSF9Af8x7p5MzbJ90Ioz/9TI41/hTCvznF/loiSzn8w== + dependencies: + jws "^3.2.2" + lodash.includes "^4.3.0" + lodash.isboolean "^3.0.3" + lodash.isinteger "^4.0.4" + lodash.isnumber "^3.0.3" + lodash.isplainobject "^4.0.6" + lodash.isstring "^4.0.1" + lodash.once "^4.0.0" + ms "^2.1.1" + semver "^5.6.0" + jsprim@^2.0.2: version "2.0.2" resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-2.0.2.tgz#77ca23dbcd4135cd364800d22ff82c2185803d4d" @@ -12042,6 +13104,23 @@ jszip@^3.6.0: readable-stream "~2.3.6" set-immediate-shim "~1.0.1" +jwa@^1.4.1: + version "1.4.1" + resolved "https://registry.yarnpkg.com/jwa/-/jwa-1.4.1.tgz#743c32985cb9e98655530d53641b66c8645b039a" + integrity sha512-qiLX/xhEEFKUAJ6FiBMbes3w9ATzyk5W7Hvzpa/SLYdxNtng+gcurvrI7TbACjIXlsJyr05/S1oUhZrc63evQA== + dependencies: + buffer-equal-constant-time "1.0.1" + ecdsa-sig-formatter "1.0.11" + safe-buffer "^5.0.1" + +jws@^3.2.2: + version "3.2.2" + resolved "https://registry.yarnpkg.com/jws/-/jws-3.2.2.tgz#001099f3639468c9414000e99995fa52fb478304" + integrity sha512-YHlZCB6lMTllWDtSPHz/ZXTsi8S00usEV6v1tjq8tOUZzw7DpSDWVXjXDre6ed1w/pd495ODpHZYSdkRTsa0HA== + dependencies: + jwa "^1.4.1" + safe-buffer "^5.0.1" + keccak@^3.0.0, keccak@^3.0.1: version "3.0.2" resolved "https://registry.yarnpkg.com/keccak/-/keccak-3.0.2.tgz#4c2c6e8c54e04f2670ee49fa734eb9da152206e0" @@ -12173,6 +13252,20 @@ listr2@^3.8.3: through "^2.3.8" wrap-ansi "^7.0.0" +listr2@^4.0.5: + version "4.0.5" + resolved "https://registry.yarnpkg.com/listr2/-/listr2-4.0.5.tgz#9dcc50221583e8b4c71c43f9c7dfd0ef546b75d5" + integrity sha512-juGHV1doQdpNT3GSTs9IUN43QJb7KHdF9uqg7Vufs/tG9VTzpFphqF4pm/ICdAABGQxsyNn9CiYA3StkI6jpwA== + dependencies: + cli-truncate "^2.1.0" + colorette "^2.0.16" + log-update "^4.0.0" + p-map "^4.0.0" + rfdc "^1.3.0" + rxjs "^7.5.5" + through "^2.3.8" + wrap-ansi "^7.0.0" + load-bmfont@^1.3.1: version "1.4.1" resolved "https://registry.npmjs.org/load-bmfont/-/load-bmfont-1.4.1.tgz" @@ -12261,6 +13354,36 @@ lodash.get@^4, lodash.get@^4.4.2: resolved "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz" integrity sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk= +lodash.includes@^4.3.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/lodash.includes/-/lodash.includes-4.3.0.tgz#60bb98a87cb923c68ca1e51325483314849f553f" + integrity sha512-W3Bx6mdkRTGtlJISOvVD/lbqjTlPPUDTMnlXZFnVwi9NKJ6tiAk6LVdlhZMm17VZisqhKcgzpO5Wz91PCt5b0w== + +lodash.isboolean@^3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/lodash.isboolean/-/lodash.isboolean-3.0.3.tgz#6c2e171db2a257cd96802fd43b01b20d5f5870f6" + integrity sha512-Bz5mupy2SVbPHURB98VAcw+aHh4vRV5IPNhILUCsOzRmsTmSQ17jIuqopAentWoehktxGd9e/hbIXq980/1QJg== + +lodash.isinteger@^4.0.4: + version "4.0.4" + resolved "https://registry.yarnpkg.com/lodash.isinteger/-/lodash.isinteger-4.0.4.tgz#619c0af3d03f8b04c31f5882840b77b11cd68343" + integrity sha512-DBwtEWN2caHQ9/imiNeEA5ys1JoRtRfY3d7V9wkqtbycnAmTvRRmbHKDV4a0EYc678/dia0jrte4tjYwVBaZUA== + +lodash.isnumber@^3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/lodash.isnumber/-/lodash.isnumber-3.0.3.tgz#3ce76810c5928d03352301ac287317f11c0b1ffc" + integrity sha512-QYqzpfwO3/CWf3XP+Z+tkQsfaLL/EnUlXWVkIk5FUPc4sBdTehEqZONuyRt2P67PXAk+NXmTBcc97zw9t1FQrw== + +lodash.isplainobject@^4.0.6: + version "4.0.6" + resolved "https://registry.yarnpkg.com/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz#7c526a52d89b45c45cc690b88163be0497f550cb" + integrity sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA== + +lodash.isstring@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/lodash.isstring/-/lodash.isstring-4.0.1.tgz#d527dfb5456eca7cc9bb95d5daeaf88ba54a5451" + integrity sha512-0wJxfxH1wgO3GrbuP+dTTk7op+6L41QCXbGINEmD+ny/G/eCqGzxyCsh7159S+mgDDcoarnBw6PC1PS5+wUGgw== + lodash.memoize@^4.1.2: version "4.1.2" resolved "https://registry.yarnpkg.com/lodash.memoize/-/lodash.memoize-4.1.2.tgz#bcc6c49a42a2840ed997f323eada5ecd182e0bfe" @@ -12271,7 +13394,7 @@ lodash.merge@^4.6.2: resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a" integrity sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ== -lodash.once@^4.1.1: +lodash.once@^4.0.0, lodash.once@^4.1.1: version "4.1.1" resolved "https://registry.npmjs.org/lodash.once/-/lodash.once-4.1.1.tgz" integrity sha1-DdOXEhPHxW34gJd9UEyI+0cal6w= @@ -12301,7 +13424,7 @@ lodash.uniq@^4.5.0: resolved "https://registry.yarnpkg.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773" integrity sha1-0CJTc662Uq3BvILklFM5qEJ1R3M= -"lodash@>=3.5 <5", lodash@^4.17.11, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.19, lodash@^4.17.20, lodash@^4.17.21, lodash@^4.17.5, lodash@^4.7.0: +"lodash@>=3.5 <5", lodash@^4.17.11, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.19, lodash@^4.17.20, lodash@^4.17.21, lodash@^4.17.5, lodash@^4.7.0, lodash@~4.17.0: version "4.17.21" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== @@ -12341,6 +13464,13 @@ loose-envify@^1.0.0, loose-envify@^1.1.0, loose-envify@^1.4.0: dependencies: js-tokens "^3.0.0 || ^4.0.0" +lower-case-first@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/lower-case-first/-/lower-case-first-2.0.2.tgz#64c2324a2250bf7c37c5901e76a5b5309301160b" + integrity sha512-EVm/rR94FJTZi3zefZ82fLWab+GX14LJN4HrWBcuo6Evmsl9hEfnqxgcHCKb9q+mNf6EVdsjx/qucYFIIB84pg== + dependencies: + tslib "^2.0.3" + lower-case@^2.0.2: version "2.0.2" resolved "https://registry.yarnpkg.com/lower-case/-/lower-case-2.0.2.tgz#6fa237c63dbdc4a82ca0fd882e4722dc5e634e28" @@ -12419,7 +13549,7 @@ makeerror@1.0.x: dependencies: tmpl "1.0.x" -map-cache@^0.2.2: +map-cache@^0.2.0, map-cache@^0.2.2: version "0.2.2" resolved "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz" integrity sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8= @@ -12539,6 +13669,11 @@ merkletreejs@^0.2.31: treeify "^1.1.0" web3-utils "^1.3.4" +meros@1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/meros/-/meros-1.2.1.tgz#056f7a76e8571d0aaf3c7afcbe7eb6407ff7329e" + integrity sha512-R2f/jxYqCAGI19KhAvaxSOxALBMkaXWH2a7rOyqQw+ZmizX5bKkEYWLzdhC+U82ZVVPVp6MCXe3EkVligh+12g== + mersenne-twister@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/mersenne-twister/-/mersenne-twister-1.1.0.tgz#f916618ee43d7179efcf641bec4531eb9670978a" @@ -12692,6 +13827,13 @@ minimatch@3.0.4: dependencies: brace-expansion "^1.1.7" +minimatch@4.2.1: + version "4.2.1" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-4.2.1.tgz#40d9d511a46bdc4e563c22c3080cde9c0d8299b4" + integrity sha512-9Uq1ChtSZO+Mxa/CL1eGizn2vRn3MlLgzhT0Iz8zaY8NdvxvB0d5QdPFmCKf7JKA9Lerx5vRrnwO03jsSfGG9g== + dependencies: + brace-expansion "^1.1.7" + minimist@^1.1.1, minimist@^1.2.0, minimist@^1.2.5, minimist@^1.2.6: version "1.2.6" resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.6.tgz#8637a5b759ea0d6e98702cfb3a9283323c93af44" @@ -12968,6 +14110,11 @@ node-cache@^5.1.2: dependencies: clone "2.x" +node-domexception@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/node-domexception/-/node-domexception-1.0.0.tgz#6888db46a1f71c0b76b3f7555016b63fe64766e5" + integrity sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ== + node-fetch@2.6.5: version "2.6.5" resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.5.tgz#42735537d7f080a7e5f78b6c549b7146be1742fd" @@ -12975,7 +14122,7 @@ node-fetch@2.6.5: dependencies: whatwg-url "^5.0.0" -node-fetch@2.6.7, node-fetch@^2.2.0, node-fetch@^2.6.1: +node-fetch@2.6.7, node-fetch@^2.2.0, node-fetch@^2.6.1, node-fetch@^2.6.7: version "2.6.7" resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.7.tgz#24de9fba827e3b4ae44dc8b20256a379160052ad" integrity sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ== @@ -13341,6 +14488,14 @@ opn@^5.5.0: dependencies: is-wsl "^1.1.0" +optimism@^0.16.1: + version "0.16.2" + resolved "https://registry.yarnpkg.com/optimism/-/optimism-0.16.2.tgz#519b0c78b3b30954baed0defe5143de7776bf081" + integrity sha512-zWNbgWj+3vLEjZNIh/okkY2EUfX+vB9TJopzIZwT1xxaMqC5hRLLraePod4c5n4He08xuXNH+zhKFFCu390wiQ== + dependencies: + "@wry/context" "^0.7.0" + "@wry/trie" "^0.3.0" + optimize-css-assets-webpack-plugin@5.0.4: version "5.0.4" resolved "https://registry.yarnpkg.com/optimize-css-assets-webpack-plugin/-/optimize-css-assets-webpack-plugin-5.0.4.tgz#85883c6528aaa02e30bbad9908c92926bb52dc90" @@ -13373,10 +14528,10 @@ optionator@^0.9.1: type-check "^0.4.0" word-wrap "^1.2.3" -ora@^5.1.0: - version "5.4.0" - resolved "https://registry.npmjs.org/ora/-/ora-5.4.0.tgz" - integrity sha512-1StwyXQGoU6gdjYkyVcqOLnVlbKj+6yPNNOxJVgpt9t4eksKjiriiHuxktLYkgllwk+D6MbC4ihH84L1udRXPg== +ora@^5.1.0, ora@^5.4.1: + version "5.4.1" + resolved "https://registry.yarnpkg.com/ora/-/ora-5.4.1.tgz#1b2678426af4ac4a509008e5e4ac9e9959db9e18" + integrity sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ== dependencies: bl "^4.1.0" chalk "^4.1.0" @@ -13425,6 +14580,13 @@ p-finally@^1.0.0: resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae" integrity sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4= +p-limit@3.1.0, p-limit@^3.0.2: + version "3.1.0" + resolved "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz" + integrity sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ== + dependencies: + yocto-queue "^0.1.0" + p-limit@^2.0.0, p-limit@^2.2.0: version "2.3.0" resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.3.0.tgz#3dd33c647a214fdfffd835933eb086da0dc21db1" @@ -13432,13 +14594,6 @@ p-limit@^2.0.0, p-limit@^2.2.0: dependencies: p-try "^2.0.0" -p-limit@^3.0.2: - version "3.1.0" - resolved "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz" - integrity sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ== - dependencies: - yocto-queue "^0.1.0" - p-locate@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-3.0.0.tgz#322d69a05c0264b25997d9f40cd8a891ab0064a4" @@ -13503,7 +14658,7 @@ parallel-transform@^1.1.0: inherits "^2.0.3" readable-stream "^2.1.5" -param-case@^3.0.3: +param-case@^3.0.3, param-case@^3.0.4: version "3.0.4" resolved "https://registry.npmjs.org/param-case/-/param-case-3.0.4.tgz" integrity sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A== @@ -13559,6 +14714,15 @@ parse-entities@^1.1.0: is-decimal "^1.0.0" is-hexadecimal "^1.0.0" +parse-filepath@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/parse-filepath/-/parse-filepath-1.0.2.tgz#a632127f53aaf3d15876f5872f3ffac763d6c891" + integrity sha512-FwdRXKCohSVeXqwtYonZTXtbGJKrn+HNyWDYVcp5yuJlesTwNH4rsmRZ+GrKAPJ5bLpRxESMeS+Rl0VCHRvB2Q== + dependencies: + is-absolute "^1.0.0" + map-cache "^0.2.0" + path-root "^0.1.1" + parse-headers@^2.0.0: version "2.0.3" resolved "https://registry.npmjs.org/parse-headers/-/parse-headers-2.0.3.tgz" @@ -13629,6 +14793,14 @@ path-browserify@0.0.1: resolved "https://registry.yarnpkg.com/path-browserify/-/path-browserify-0.0.1.tgz#e6c4ddd7ed3aa27c68a20cc4e50e1a4ee83bbc4a" integrity sha512-BapA40NHICOS+USX9SN4tyhq+A2RrN/Ws5F0Z5aMHDp98Fl86lX8Oti8B7uN93L4Ifv4fHOEA+pQw87gmMO/lQ== +path-case@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/path-case/-/path-case-3.0.4.tgz#9168645334eb942658375c56f80b4c0cb5f82c6f" + integrity sha512-qO4qCFjXqVTrcbPt/hQfhTQ+VhFsqNKOPtytgNKkKxSoEp3XPUQ8ObFuePylOIok5gjn69ry8XiULxCwot3Wfg== + dependencies: + dot-case "^3.0.4" + tslib "^2.0.3" + path-dirname@^1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/path-dirname/-/path-dirname-1.0.2.tgz#cc33d24d525e099a5388c0336c6e32b9160609e0" @@ -13669,6 +14841,18 @@ path-parse@^1.0.6, path-parse@^1.0.7: resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== +path-root-regex@^0.1.0: + version "0.1.2" + resolved "https://registry.yarnpkg.com/path-root-regex/-/path-root-regex-0.1.2.tgz#bfccdc8df5b12dc52c8b43ec38d18d72c04ba96d" + integrity sha512-4GlJ6rZDhQZFE0DPVKh0e9jmZ5egZfxTkp7bcRDuPlJXbAwhxcl2dINPUAsjLdejqaLsCeg8axcLjIbvBjN4pQ== + +path-root@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/path-root/-/path-root-0.1.1.tgz#9a4a6814cac1c0cd73360a95f32083c8ea4745b7" + integrity sha512-QLcPegTHF11axjfojBIoDygmS2E3Lf+8+jI6wOVmNVenrKSo3mFdSGiIgdSHenczw3wPtlVMQaFVwGmM7BJdtg== + dependencies: + path-root-regex "^0.1.0" + path-to-regexp@0.1.7: version "0.1.7" resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c" @@ -14745,6 +15929,18 @@ punycode@^2.1.0, punycode@^2.1.1: resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== +pvtsutils@^1.3.2: + version "1.3.2" + resolved "https://registry.yarnpkg.com/pvtsutils/-/pvtsutils-1.3.2.tgz#9f8570d132cdd3c27ab7d51a2799239bf8d8d5de" + integrity sha512-+Ipe2iNUyrZz+8K/2IOo+kKikdtfhRKzNpQbruF2URmqPtoqAs8g3xS7TJvFF2GcPXjh7DkqMnpVveRFq4PgEQ== + dependencies: + tslib "^2.4.0" + +pvutils@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/pvutils/-/pvutils-1.1.3.tgz#f35fc1d27e7cd3dfbd39c0826d173e806a03f5a3" + integrity sha512-pMpnA0qRdFp32b1sJl1wOJNxZLQ2cbQx+k6tjNtZ8CpvVhNqEPRgivZ2WOUev2YMajecdH7ctUPDvEe87nariQ== + q@^1.1.2: version "1.5.1" resolved "https://registry.yarnpkg.com/q/-/q-1.5.1.tgz#7e32f75b41381291d04611f1bf14109ac00651d7" @@ -15064,25 +16260,6 @@ react-refresh@^0.8.3: resolved "https://registry.yarnpkg.com/react-refresh/-/react-refresh-0.8.3.tgz#721d4657672d400c5e3c75d063c4a85fb2d5d68f" integrity sha512-X8jZHc7nCMjaCqoU+V2I0cOhNW+QMBwSUkeXnTi8IPe6zaRWfn60ZzvFDZqWPfmSJfjub7dDW1SP0jaHWLu/hg== -react-relay-network-modern@^6.2.1: - version "6.2.1" - resolved "https://registry.yarnpkg.com/react-relay-network-modern/-/react-relay-network-modern-6.2.1.tgz#34e93110cf1bb0e666bffb00b513335c37950bc9" - integrity sha512-O1kP9GkNrm4d+ibfuTY9yNbkXV6vAByJ4jYTZIXn8nh7jLWoe6PneF1VcBYvYvzWYsebpCLDQHDPoXI05S+rhQ== - dependencies: - core-js "^3.0.0" - extract-files "^9.0.0" - -react-relay@^14.1.0: - version "14.1.0" - resolved "https://registry.yarnpkg.com/react-relay/-/react-relay-14.1.0.tgz#2a2349d33ca6558543340a12b363ee2de3db06a6" - integrity sha512-U4oHb5wn1LEi17x3AcZOy66MXs83tnYbsK7/YE1/3cQKCPrXhyVUQbEOC9L7jMX659jtS1NACae+7b03bryMCQ== - dependencies: - "@babel/runtime" "^7.0.0" - fbjs "^3.0.2" - invariant "^2.2.4" - nullthrows "^1.1.1" - relay-runtime "14.1.0" - react-remove-scroll-bar@^2.1.0: version "2.2.0" resolved "https://registry.npmjs.org/react-remove-scroll-bar/-/react-remove-scroll-bar-2.2.0.tgz" @@ -15478,18 +16655,13 @@ relative-luminance@^2.0.0: dependencies: esm "^3.0.84" -relay-compiler@^14.1.0: - version "14.1.0" - resolved "https://registry.yarnpkg.com/relay-compiler/-/relay-compiler-14.1.0.tgz#88e9c531eb14a6a31e6f14663982124d780bd1b6" - integrity sha512-P8+CXm+Hq96z5NNwYl7hyGo5GgvMZDs9mXBRv7txUbJO4Ql9mXio3+D9EX3VfevRWTuE4ahM37i3Ssx1H604vA== - -relay-runtime@14.1.0: - version "14.1.0" - resolved "https://registry.yarnpkg.com/relay-runtime/-/relay-runtime-14.1.0.tgz#44b317101f560a16caea2eef8a52e254b03908fa" - integrity sha512-t2DR2hZviHrdEQrOvFqwmvRWvZ0SjI/r4bS5f3qvMyXt4g1kw3RTb2RNVmbKGg6zEQhf7Na/brdqE4roApmclQ== +relay-runtime@12.0.0: + version "12.0.0" + resolved "https://registry.yarnpkg.com/relay-runtime/-/relay-runtime-12.0.0.tgz#1e039282bdb5e0c1b9a7dc7f6b9a09d4f4ff8237" + integrity sha512-QU6JKr1tMsry22DXNy9Whsq5rmvwr3LSZiiWV/9+DFpuTWvp+WFhobWMc8TC4OjKFfNhEZy7mOiqUAn5atQtug== dependencies: "@babel/runtime" "^7.0.0" - fbjs "^3.0.2" + fbjs "^3.0.0" invariant "^2.2.4" remark-parse@^5.0.0: @@ -15513,6 +16685,11 @@ remark-parse@^5.0.0: vfile-location "^2.0.0" xtend "^4.0.1" +remedial@^1.0.7: + version "1.0.8" + resolved "https://registry.yarnpkg.com/remedial/-/remedial-1.0.8.tgz#a5e4fd52a0e4956adbaf62da63a5a46a78c578a0" + integrity sha512-/62tYiOe6DzS5BqVsNpH/nkGlX45C/Sp6V+NtiN6JQNS1Viay7cWkazmRkrQrdFj2eshDe96SIQNIoMxqhzBOg== + remove-accents@0.4.2: version "0.4.2" resolved "https://registry.yarnpkg.com/remove-accents/-/remove-accents-0.4.2.tgz#0a43d3aaae1e80db919e07ae254b285d9e1c7bb5" @@ -15523,6 +16700,11 @@ remove-trailing-separator@^1.0.1: resolved "https://registry.yarnpkg.com/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz#c24bce2a283adad5bc3f58e0d48249b92379d8ef" integrity sha1-wkvOKig62tW8P1jg1IJJuSN52O8= +remove-trailing-spaces@^1.0.6: + version "1.0.8" + resolved "https://registry.yarnpkg.com/remove-trailing-spaces/-/remove-trailing-spaces-1.0.8.tgz#4354d22f3236374702f58ee373168f6d6887ada7" + integrity sha512-O3vsMYfWighyFbTd8hk8VaSj9UAGENxAtX+//ugIst2RMk5e03h6RoIS+0ylsFxY1gvmPuAY/PO4It+gPEeySA== + renderkid@^2.0.4: version "2.0.7" resolved "https://registry.yarnpkg.com/renderkid/-/renderkid-2.0.7.tgz#464f276a6bdcee606f4a15993f9b29fc74ca8609" @@ -15605,6 +16787,11 @@ resolve-cwd@^3.0.0: dependencies: resolve-from "^5.0.0" +resolve-from@5.0.0, resolve-from@^5.0.0: + version "5.0.0" + resolved "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz" + integrity sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw== + resolve-from@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-3.0.0.tgz#b22c7af7d9d6881bc8b6e653335eebcb0a188748" @@ -15615,11 +16802,6 @@ resolve-from@^4.0.0: resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6" integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g== -resolve-from@^5.0.0: - version "5.0.0" - resolved "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz" - integrity sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw== - resolve-url-loader@^3.1.2: version "3.1.4" resolved "https://registry.yarnpkg.com/resolve-url-loader/-/resolve-url-loader-3.1.4.tgz#3c16caebe0b9faea9c7cc252fa49d2353c412320" @@ -15666,6 +16848,11 @@ resolve@^2.0.0-next.3: is-core-module "^2.2.0" path-parse "^1.0.6" +response-iterator@^0.2.6: + version "0.2.6" + resolved "https://registry.yarnpkg.com/response-iterator/-/response-iterator-0.2.6.tgz#249005fb14d2e4eeb478a3f735a28fd8b4c9f3da" + integrity sha512-pVzEEzrsg23Sh053rmDUvLSkGXluZio0qu8VT6ukrYuvtjVfCbDZH9d6PGXb8HZfzdNZt8feXv/jvUzlhRgLnw== + restore-cursor@^3.1.0: version "3.1.0" resolved "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz" @@ -15707,6 +16894,11 @@ rework@1.0.1: convert-source-map "^0.3.3" css "^2.0.0" +rfdc@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/rfdc/-/rfdc-1.3.0.tgz#d0b7c441ab2720d05dc4cf26e01c89631d9da08b" + integrity sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA== + rgb-regex@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/rgb-regex/-/rgb-regex-1.0.1.tgz#c0e0d6882df0e23be254a475e8edd41915feaeb1" @@ -15829,6 +17021,13 @@ rxjs@^6.6.0, rxjs@^6.6.3, rxjs@^6.6.7: dependencies: tslib "^1.9.0" +rxjs@^7.5.5: + version "7.6.0" + resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-7.6.0.tgz#361da5362b6ddaa691a2de0b4f2d32028f1eb5a2" + integrity sha512-DDa7d8TFNUalGC9VqXvQ1euWNN7sc63TrUCuM9J998+ViviahMIjKSOU7rfcgFOF+FCD71BhDRv4hrFz+ImDLQ== + dependencies: + tslib "^2.1.0" + safe-buffer@5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1: version "5.1.2" resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" @@ -15959,6 +17158,11 @@ scrypt-js@3.0.1, scrypt-js@^3.0.0: resolved "https://registry.yarnpkg.com/scrypt-js/-/scrypt-js-3.0.1.tgz#d314a57c2aef69d1ad98a138a21fe9eafa9ee312" integrity sha512-cdwTTnqPu0Hyvf5in5asVdZocVDTNRmR7XEcJuIzMjJeSHybHl7vpB66AzwTaIg6CLSbtjcxc8fqcySfnTkccA== +scuid@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/scuid/-/scuid-1.1.0.tgz#d3f9f920956e737a60f72d0e4ad280bf324d5dab" + integrity sha512-MuCAyrGZcTLfQoH2XoBlQ8C6bzwN88XT/0slOGz0pn8+gIP85BOAfYa44ZXQUTOwRwPU0QvgU+V+OSajl/59Xg== + secp256k1@^4.0.1: version "4.0.2" resolved "https://registry.npmjs.org/secp256k1/-/secp256k1-4.0.2.tgz" @@ -16036,6 +17240,15 @@ send@0.17.1: range-parser "~1.2.1" statuses "~1.5.0" +sentence-case@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/sentence-case/-/sentence-case-3.0.4.tgz#3645a7b8c117c787fde8702056225bb62a45131f" + integrity sha512-8LS0JInaQMCRoQ7YUytAo/xUu5W2XnQxV2HI/6uM6U7CITS1RqPElr30V6uIqyMKM9lJGRVFy5/4CuzcixNYSg== + dependencies: + no-case "^3.0.4" + tslib "^2.0.3" + upper-case-first "^2.0.2" + serialize-javascript@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-4.0.0.tgz#b525e1238489a5ecfc42afacc3fe99e666f4b1aa" @@ -16179,6 +17392,11 @@ shell-quote@1.7.2: resolved "https://registry.yarnpkg.com/shell-quote/-/shell-quote-1.7.2.tgz#67a7d02c76c9da24f99d20808fcaded0e0e04be2" integrity sha512-mRz/m/JVscCrkMyPqHc/bczi3OQHkLTqXHEFu0zDhK/qfv3UcOA4SVmRCLmos4bhjr9ekVQubj/R7waKapmiQg== +shell-quote@^1.7.3: + version "1.7.4" + resolved "https://registry.yarnpkg.com/shell-quote/-/shell-quote-1.7.4.tgz#33fe15dee71ab2a81fcbd3a52106c5cfb9fb75d8" + integrity sha512-8o/QEhSSRb1a5i7TFR0iM4G16Z0vYB2OQVs4G3aAFXjn3T6yEx8AZxy1PgDF7I00LZHYA3WxaSYIf5e5sAX8Rw== + shellwords@^0.1.1: version "0.1.1" resolved "https://registry.yarnpkg.com/shellwords/-/shellwords-0.1.1.tgz#d6b9181c1a48d397324c84871efbcfc73fc0654b" @@ -16198,6 +17416,11 @@ signal-exit@^3.0.0, signal-exit@^3.0.2: resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.3.tgz#a1410c2edd8f077b08b4e253c8eacfcaf057461c" integrity sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA== +signedsource@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/signedsource/-/signedsource-1.0.0.tgz#1ddace4981798f93bd833973803d80d52e93ad6a" + integrity sha512-6+eerH9fEnNmi/hyM1DXcRK3pWdoMQtlkQ+ns0ntzunjKqp5i3sKCc80ym8Fib3iaYhdJUOPdhlJWj1tvge2Ww== + simple-swizzle@^0.2.2: version "0.2.2" resolved "https://registry.yarnpkg.com/simple-swizzle/-/simple-swizzle-0.2.2.tgz#a4da6b635ffcccca33f70d17cb92592de95e557a" @@ -16243,6 +17466,14 @@ slice-ansi@^4.0.0: astral-regex "^2.0.0" is-fullwidth-code-point "^3.0.0" +snake-case@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/snake-case/-/snake-case-3.0.4.tgz#4f2bbd568e9935abdfd593f34c691dadb49c452c" + integrity sha512-LAOh4z89bGQvl9pFfNF8V146i7o7/CqFPbqzYgP+yYzDIDeS9HaNFtXABamRW+AQzEVODcvE79ljJ+8a9YSdMg== + dependencies: + dot-case "^3.0.4" + tslib "^2.0.3" + snapdragon-node@^2.0.1: version "2.1.1" resolved "https://registry.yarnpkg.com/snapdragon-node/-/snapdragon-node-2.1.1.tgz#6c175f86ff14bdb0724563e8f3c1b021a286853b" @@ -16424,6 +17655,13 @@ split-string@^3.0.1, split-string@^3.0.2: dependencies: extend-shallow "^3.0.0" +sponge-case@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/sponge-case/-/sponge-case-1.0.1.tgz#260833b86453883d974f84854cdb63aecc5aef4c" + integrity sha512-dblb9Et4DAtiZ5YSUZHLl4XhH4uK80GhAZrVXdN4O2P4gQ40Wa5UIOPUHlA/nFd2PLblBZWUioLMMAVrgpoYcA== + dependencies: + tslib "^2.0.3" + sprintf-js@~1.0.2: version "1.0.3" resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" @@ -16545,6 +17783,11 @@ stream-shift@^1.0.0: resolved "https://registry.yarnpkg.com/stream-shift/-/stream-shift-1.0.1.tgz#d7088281559ab2778424279b0877da3c392d5a3d" integrity sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ== +streamsearch@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/streamsearch/-/streamsearch-1.1.0.tgz#404dd1e2247ca94af554e841a8ef0eaa238da764" + integrity sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg== + strict-uri-encode@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz#279b225df1d582b1f54e65addd4352e18faa0713" @@ -16555,6 +17798,11 @@ strict-uri-encode@^2.0.0: resolved "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-2.0.0.tgz" integrity sha1-ucczDHBChi9rFC3CdLvMWGbONUY= +string-env-interpolation@1.0.1, string-env-interpolation@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/string-env-interpolation/-/string-env-interpolation-1.0.1.tgz#ad4397ae4ac53fe6c91d1402ad6f6a52862c7152" + integrity sha512-78lwMoCcn0nNu8LszbP1UA7g55OeE4v7rCeWnM5B453rnNr4aq+5it3FEYtZrSEiMvHZOZ9Jlqb0OD0M2VInqg== + string-length@^4.0.1: version "4.0.2" resolved "https://registry.yarnpkg.com/string-length/-/string-length-4.0.2.tgz#a8a8dc7bd5c1a82b9b3c8b87e125f66871b6e57a" @@ -16585,14 +17833,14 @@ string-width@^3.0.0, string-width@^3.1.0: is-fullwidth-code-point "^2.0.0" strip-ansi "^5.1.0" -string-width@^4.1.0, string-width@^4.2.0: - version "4.2.2" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.2.tgz#dafd4f9559a7585cfba529c6a0a4f73488ebd4c5" - integrity sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA== +string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3: + version "4.2.3" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" + integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== dependencies: emoji-regex "^8.0.0" is-fullwidth-code-point "^3.0.0" - strip-ansi "^6.0.0" + strip-ansi "^6.0.1" string.prototype.matchall@^4.0.5: version "4.0.5" @@ -16642,7 +17890,7 @@ stringify-object@^3.3.0: is-obj "^1.0.1" is-regexp "^1.0.0" -strip-ansi@6.0.0, strip-ansi@^6.0.0: +strip-ansi@6.0.0: version "6.0.0" resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.0.tgz#0b1571dd7669ccd4f3e06e14ef1eed26225ae532" integrity sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w== @@ -16670,6 +17918,13 @@ strip-ansi@^5.0.0, strip-ansi@^5.1.0, strip-ansi@^5.2.0: dependencies: ansi-regex "^4.1.0" +strip-ansi@^6.0.0, strip-ansi@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" + integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== + dependencies: + ansi-regex "^5.0.1" + strip-bom@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3" @@ -16839,6 +18094,18 @@ svgo@^1.0.0, svgo@^1.2.2: unquote "~1.1.1" util.promisify "~1.0.0" +swap-case@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/swap-case/-/swap-case-2.0.2.tgz#671aedb3c9c137e2985ef51c51f9e98445bf70d9" + integrity sha512-kc6S2YS/2yXbtkSMunBtKdah4VFETZ8Oh6ONSmSd9bRxhqTrtARUCBUiWXH3xVPpvR7tz2CSnkuXVE42EcGnMw== + dependencies: + tslib "^2.0.3" + +symbol-observable@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/symbol-observable/-/symbol-observable-4.0.0.tgz#5b425f192279e87f2f9b937ac8540d1984b39205" + integrity sha512-b19dMThMV4HVFynSAM1++gBHAbk2Tc/osgLIBZMKsyqh34jb2e8Os7T6ZW/Bt3pJFdBTd2JwAnAAEQV7rSNvcQ== + symbol-tree@^3.2.4: version "3.2.4" resolved "https://registry.yarnpkg.com/symbol-tree/-/symbol-tree-3.2.4.tgz#430637d248ba77e078883951fb9aa0eed7c63fa2" @@ -17058,6 +18325,13 @@ tinycolor2@^1.4.1: resolved "https://registry.npmjs.org/tinycolor2/-/tinycolor2-1.4.2.tgz" integrity sha512-vJhccZPs965sV/L2sU4oRQVAos0pQXwsvTLkWYdqJ+a8Q5kPFzJTuOFwy7UniPli44NKQGAglksjvOcpo95aZA== +title-case@^3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/title-case/-/title-case-3.0.3.tgz#bc689b46f02e411f1d1e1d081f7c3deca0489982" + integrity sha512-e1zGYRvbffpcHIrnuqT0Dh+gEJtDaxDSoG4JAIpq4oDFyooziLBIiYQv0GBT4FUAnUop5uZ1hiIAj7oAF6sOCA== + dependencies: + tslib "^2.0.3" + tmp@^0.0.33: version "0.0.33" resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.33.tgz#6d34335889768d21b2bcda0aa277ced3b1bfadf9" @@ -17193,7 +18467,19 @@ ts-essentials@^7.0.1: resolved "https://registry.yarnpkg.com/ts-essentials/-/ts-essentials-7.0.3.tgz#686fd155a02133eedcc5362dc8b5056cde3e5a38" integrity sha512-8+gr5+lqO3G84KdiTSMRLtuyJ+nTBVRKuCrK4lidMPdVeEp0uqC875uE5NMcaA7YYMN7XsNiFQuMvasF8HT/xQ== -ts-node@^10.7.0: +ts-invariant@^0.10.3: + version "0.10.3" + resolved "https://registry.yarnpkg.com/ts-invariant/-/ts-invariant-0.10.3.tgz#3e048ff96e91459ffca01304dbc7f61c1f642f6c" + integrity sha512-uivwYcQaxAucv1CzRp2n/QdYPo4ILf9VXgH19zEIjFx2EJufV16P0JtJVpYHy89DItG6Kwj2oIUjrcK5au+4tQ== + dependencies: + tslib "^2.1.0" + +ts-log@^2.2.3: + version "2.2.5" + resolved "https://registry.yarnpkg.com/ts-log/-/ts-log-2.2.5.tgz#aef3252f1143d11047e2cb6f7cfaac7408d96623" + integrity sha512-PGcnJoTBnVGy6yYNFxWVNkdcAuAMstvutN9MgDJIV6L0oG8fB+ZNNy1T+wJzah8RPGor1mZuPQkVfXNDpy9eHA== + +ts-node@^10.7.0, ts-node@^10.8.1: version "10.9.1" resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-10.9.1.tgz#e73de9102958af9e1f0b168a6ff320e25adcff4b" integrity sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw== @@ -17229,6 +18515,11 @@ ts-pnp@1.2.0, ts-pnp@^1.1.6: resolved "https://registry.yarnpkg.com/ts-pnp/-/ts-pnp-1.2.0.tgz#a500ad084b0798f1c3071af391e65912c86bca92" integrity sha512-csd+vJOb/gkzvcCHgTGSChYpy5f1/XKNsmvBGO4JXS+z1v2HobugDz4s1IeFXM3wZB44uczs+eazB5Q/ccdhQw== +ts-transform-graphql-tag@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/ts-transform-graphql-tag/-/ts-transform-graphql-tag-0.2.1.tgz#f596c491196b6a6a65b65a8b99bf6e2314c78017" + integrity sha512-gciNzCpVafccayI/VQKU2ROaol4gMpz0t5sAW/jzG/J/wnjPYCn06yKzlM4mkQ5tjCvPmFuZnLYF4i0tUiIiMQ== + tsconfig-paths@^3.14.1: version "3.14.1" resolved "https://registry.yarnpkg.com/tsconfig-paths/-/tsconfig-paths-3.14.1.tgz#ba0734599e8ea36c862798e920bcf163277b137a" @@ -17244,7 +18535,7 @@ tslib@^1.0.0, tslib@^1.8.1, tslib@^1.9.0, tslib@^1.9.3: resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== -tslib@^2, tslib@^2.0.0, tslib@^2.0.3, tslib@^2.1.0, tslib@^2.3.1, tslib@^2.4.0: +tslib@^2, tslib@^2.0.0, tslib@^2.0.3, tslib@^2.1.0, tslib@^2.3.0, tslib@^2.3.1, tslib@^2.4.0, tslib@^2.4.1, tslib@~2.4.0: version "2.4.1" resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.4.1.tgz#0d0bfbaac2880b91e22df0768e55be9753a5b17e" integrity sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA== @@ -17395,6 +18686,18 @@ unbox-primitive@^1.0.2: has-symbols "^1.0.3" which-boxed-primitive "^1.0.2" +unc-path-regex@^0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/unc-path-regex/-/unc-path-regex-0.1.2.tgz#e73dd3d7b0d7c5ed86fbac6b0ae7d8c6a69d50fa" + integrity sha512-eXL4nmJT7oCpkZsHZUOJo8hcX3GbsiDOa0Qu9F646fi8dT3XuSVopVqAcEiVzSKKH7UoDti23wNX3qGFxcW5Qg== + +undici@^5.12.0, undici@^5.8.0: + version "5.13.0" + resolved "https://registry.yarnpkg.com/undici/-/undici-5.13.0.tgz#56772fba89d8b25e39bddc8c26a438bd73ea69bb" + integrity sha512-UDZKtwb2k7KRsK4SdXWG7ErXiL7yTGgLWvk2AXO1JMjgjh404nFo6tWSCM2xMpJwMPx3J8i/vfqEh1zOqvj82Q== + dependencies: + busboy "^1.6.0" + unherit@^1.0.4: version "1.1.3" resolved "https://registry.npmjs.org/unherit/-/unherit-1.1.3.tgz" @@ -17525,6 +18828,13 @@ universalify@^2.0.0: resolved "https://registry.yarnpkg.com/universalify/-/universalify-2.0.0.tgz#75a4984efedc4b08975c5aeb73f530d02df25717" integrity sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ== +unixify@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/unixify/-/unixify-1.0.0.tgz#3a641c8c2ffbce4da683a5c70f03a462940c2090" + integrity sha512-6bc58dPYhCMHHuwxldQxO3RRNZ4eCogZ/st++0+fcC1nr0jiGUtAdBJ2qzmLQWSxbtz42pWt4QQMiZ9HvZf5cg== + dependencies: + normalize-path "^2.1.1" + unload@2.2.0: version "2.2.0" resolved "https://registry.yarnpkg.com/unload/-/unload-2.2.0.tgz#ccc88fdcad345faa06a92039ec0f80b488880ef7" @@ -17561,10 +18871,10 @@ upath@^1.1.1, upath@^1.1.2, upath@^1.2.0: resolved "https://registry.yarnpkg.com/upath/-/upath-1.2.0.tgz#8f66dbcd55a883acdae4408af8b035a5044c1894" integrity sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg== -update-browserslist-db@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.0.5.tgz#be06a5eedd62f107b7c19eb5bcefb194411abf38" - integrity sha512-dteFFpCyvuDdr9S/ff1ISkKt/9YZxKjI9WlRR99c180GaztJtRa/fn18FdxGVKVsnPY7/a/FDN68mcvUmP4U7Q== +update-browserslist-db@^1.0.9: + version "1.0.10" + resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.0.10.tgz#0f54b876545726f17d00cd9a2561e6dade943ff3" + integrity sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ== dependencies: escalade "^3.1.1" picocolors "^1.0.0" @@ -17577,6 +18887,20 @@ update-check@1.5.2: registry-auth-token "3.3.2" registry-url "3.1.0" +upper-case-first@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/upper-case-first/-/upper-case-first-2.0.2.tgz#992c3273f882abd19d1e02894cc147117f844324" + integrity sha512-514ppYHBaKwfJRK/pNC6c/OxfGa0obSnAl106u97Ed0I625Nin96KAjttZF6ZL3e1XLtphxnqrOi9iWgm+u+bg== + dependencies: + tslib "^2.0.3" + +upper-case@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/upper-case/-/upper-case-2.0.2.tgz#d89810823faab1df1549b7d97a76f8662bae6f7a" + integrity sha512-KgdgDGJt2TpuwBUIjgG6lzw2GWFRCW9Qkfkiv0DxqHHLYJHmtmdUIKcZd8rHgFSjopVTlw6ggzCm1b8MFQwikg== + dependencies: + tslib "^2.0.3" + uri-js@^4.2.2: version "4.4.1" resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e" @@ -17761,6 +19085,11 @@ validate-npm-package-license@^3.0.1: spdx-correct "^3.0.0" spdx-expression-parse "^3.0.0" +value-or-promise@1.0.11, value-or-promise@^1.0.11: + version "1.0.11" + resolved "https://registry.yarnpkg.com/value-or-promise/-/value-or-promise-1.0.11.tgz#3e90299af31dd014fe843fe309cefa7c1d94b140" + integrity sha512-41BrgH+dIbCFXClcSapVs5M6GkENd3gQOJpEfPDNa71LsUGMXDL0jMWpI/Rh7WhX+Aalfz2TTS3Zt5pUsbnhLg== + varint@^5.0.2: version "5.0.2" resolved "https://registry.npmjs.org/varint/-/varint-5.0.2.tgz" @@ -17884,6 +19213,16 @@ wcwidth@^1.0.1: dependencies: defaults "^1.0.3" +web-streams-polyfill@4.0.0-beta.3: + version "4.0.0-beta.3" + resolved "https://registry.yarnpkg.com/web-streams-polyfill/-/web-streams-polyfill-4.0.0-beta.3.tgz#2898486b74f5156095e473efe989dcf185047a38" + integrity sha512-QW95TCTaHmsYfHDybGMwO5IJIM93I/6vTRk+daHTWFPhwh+C8Cg7j7XyKrwrj8Ib6vYXe0ocYNrmzY4xAAN6ug== + +web-streams-polyfill@^3.2.0: + version "3.2.1" + resolved "https://registry.yarnpkg.com/web-streams-polyfill/-/web-streams-polyfill-3.2.1.tgz#71c2718c52b45fd49dbeee88634b3a60ceab42a6" + integrity sha512-e0MO3wdXWKrLbL0DgGnUV7WHVuw9OUvL4hjgnPkIeEvESk74gAITi5G606JtZPp39cd8HA9VQzCIvA49LpPN5Q== + web-vitals@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/web-vitals/-/web-vitals-2.1.0.tgz#ebf5428875ab5bfc1056c2e80cd177001287de7b" @@ -17902,6 +19241,17 @@ web3-utils@^1.3.4: randombytes "^2.1.0" utf8 "3.0.0" +webcrypto-core@^1.7.4: + version "1.7.5" + resolved "https://registry.yarnpkg.com/webcrypto-core/-/webcrypto-core-1.7.5.tgz#c02104c953ca7107557f9c165d194c6316587ca4" + integrity sha512-gaExY2/3EHQlRNNNVSrbG2Cg94Rutl7fAaKILS1w8ZDhGxdFOaw6EbCfHIxPy9vt/xwp5o0VQAx9aySPF6hU1A== + dependencies: + "@peculiar/asn1-schema" "^2.1.6" + "@peculiar/json-schema" "^1.1.12" + asn1js "^3.0.1" + pvtsutils "^1.3.2" + tslib "^2.4.0" + webidl-conversions@^3.0.0: version "3.0.1" resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-3.0.1.tgz#24534275e2a7bc6be7bc86611cc16ae0a5654871" @@ -18395,10 +19745,10 @@ ws@7.5.3: resolved "https://registry.yarnpkg.com/ws/-/ws-7.5.3.tgz#160835b63c7d97bfab418fc1b8a9fced2ac01a74" integrity sha512-kQ/dHIzuLrS6Je9+uv81ueZomEwH0qVYstcAQ4/Z93K8zeko9gtAbttJWzoC5ukqXY1PpoouV3+VSOqEAFt5wg== -ws@>=7.4.6, ws@^7.4.0, ws@^7.4.5: - version "7.5.9" - resolved "https://registry.yarnpkg.com/ws/-/ws-7.5.9.tgz#54fa7db29f4c7cec68b1ddd3a89de099942bb591" - integrity sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q== +ws@8.11.0, ws@>=7.4.6: + version "8.11.0" + resolved "https://registry.yarnpkg.com/ws/-/ws-8.11.0.tgz#6a0d36b8edfd9f96d8b25683db2f8d7de6e8e143" + integrity sha512-HPG3wQd9sNQoT9xHyNCXoDUa+Xw/VevmY9FoHyQ+g+rrMn4j6FB4np7Z0OhdTgjx6MgQLK7jwSy1YecU1+4Asg== ws@^6.2.1: version "6.2.2" @@ -18407,6 +19757,11 @@ ws@^6.2.1: dependencies: async-limiter "~1.0.0" +ws@^7.4.0, ws@^7.4.5: + version "7.5.9" + resolved "https://registry.yarnpkg.com/ws/-/ws-7.5.9.tgz#54fa7db29f4c7cec68b1ddd3a89de099942bb591" + integrity sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q== + x-is-string@^0.1.0: version "0.1.0" resolved "https://registry.npmjs.org/x-is-string/-/x-is-string-0.1.0.tgz" @@ -18480,6 +19835,11 @@ yallist@^4.0.0: resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== +yaml-ast-parser@^0.0.43: + version "0.0.43" + resolved "https://registry.yarnpkg.com/yaml-ast-parser/-/yaml-ast-parser-0.0.43.tgz#e8a23e6fb4c38076ab92995c5dca33f3d3d7c9bb" + integrity sha512-2PTINUwsRqSd+s8XxKaJWQlUuEMHJQyEuh2edBbW8KNJz0SJPwUSD2zRWqezFEdN7IzAgeuYHFUCF7o8zRdZ0A== + yaml@^1.10.0, yaml@^1.7.2: version "1.10.2" resolved "https://registry.yarnpkg.com/yaml/-/yaml-1.10.2.tgz#2301c5ffbf12b467de8da2333a459e29e7920e4b" @@ -18506,6 +19866,11 @@ yargs-parser@^20.2.2: resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.9.tgz#2eb7dc3b0289718fc295f362753845c41a0c94ee" integrity sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w== +yargs-parser@^21.1.1: + version "21.1.1" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-21.1.1.tgz#9096bceebf990d21bb31fa9516e0ede294a77d35" + integrity sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw== + yargs@^13.2.4, yargs@^13.3.2: version "13.3.2" resolved "https://registry.npmjs.org/yargs/-/yargs-13.3.2.tgz" @@ -18552,6 +19917,19 @@ yargs@^16.1.1: y18n "^5.0.5" yargs-parser "^20.2.2" +yargs@^17.0.0: + version "17.6.2" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-17.6.2.tgz#2e23f2944e976339a1ee00f18c77fedee8332541" + integrity sha512-1/9UrdHjDZc0eOU0HxOHoS78C69UD3JRMvzlJ7S79S2nTaWRA/whGCTV8o9e/N/1Va9YIV7Q4sOxD8VV4pCWOw== + dependencies: + cliui "^8.0.1" + escalade "^3.1.1" + get-caller-file "^2.0.5" + require-directory "^2.1.1" + string-width "^4.2.3" + y18n "^5.0.5" + yargs-parser "^21.1.1" + yarn-deduplicate@^6.0.0: version "6.0.0" resolved "https://registry.yarnpkg.com/yarn-deduplicate/-/yarn-deduplicate-6.0.0.tgz#91bc0b7b374efe24796606df2c6b00eabb5aab62" @@ -18580,6 +19958,18 @@ yocto-queue@^0.1.0: resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b" integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q== +zen-observable-ts@^1.2.5: + version "1.2.5" + resolved "https://registry.yarnpkg.com/zen-observable-ts/-/zen-observable-ts-1.2.5.tgz#6c6d9ea3d3a842812c6e9519209365a122ba8b58" + integrity sha512-QZWQekv6iB72Naeake9hS1KxHlotfRpe+WGNbNx5/ta+R3DNjVO2bswf63gXlWDcs+EMd7XY8HfVQyP1X6T4Zg== + dependencies: + zen-observable "0.8.15" + +zen-observable@0.8.15: + version "0.8.15" + resolved "https://registry.yarnpkg.com/zen-observable/-/zen-observable-0.8.15.tgz#96415c512d8e3ffd920afd3889604e30b9eaac15" + integrity sha512-PQ2PC7R9rslx84ndNBZB/Dkv8V8fZEpk83RLgXtYd0fwUgEjseMn1Dgajh2x6S8QbZAFa9p2qVCEuYZNgve0dQ== + zustand@^4.0.0-rc.0, zustand@^4.0.0-rc.1: version "4.0.0" resolved "https://registry.yarnpkg.com/zustand/-/zustand-4.0.0.tgz#739cba69209ffe67b31e7d6741c25b51496114a7"