diff --git a/examples/composition/.graphclientrc.yml b/examples/composition/.graphclientrc.yml deleted file mode 100644 index f2022d93..00000000 --- a/examples/composition/.graphclientrc.yml +++ /dev/null @@ -1,20 +0,0 @@ -sources: - - name: nft - handler: - graphql: - endpoint: https://api.thegraph.com/subgraphs/name/amxx/eip721-subgraph - transforms: - # Rename Account to User to apply Type Merging - - rename: - - from: - type: Account - to: - type: User - - autoTypeMerging: true - - - name: uniswap - handler: - graphql: - endpoint: https://api.thegraph.com/subgraphs/name/uniswap/uniswap-v2 - transforms: - - autoTypeMerging: true diff --git a/examples/composition/fusiongraph.ts b/examples/composition/fusiongraph.ts new file mode 100644 index 00000000..0e6fbe2d --- /dev/null +++ b/examples/composition/fusiongraph.ts @@ -0,0 +1 @@ +export default 'schema @transport(kind: "http", subgraph: "nft", location: "https://api.thegraph.com/subgraphs/name/amxx/eip721-subgraph", options: {}) @transport(kind: "http", subgraph: "uniswap", location: "https://api.thegraph.com/subgraphs/name/uniswap/uniswap-v2", options: {}) {\n query: Query\n subscription: Subscription\n}\n\n"""\nMarks the GraphQL type as indexable entity. Each type that should be an entity is required to be annotated with this directive.\n"""\ndirective @entity on OBJECT\n\n"""Defined a Subgraph ID for an object type"""\ndirective @subgraphId(id: String!) on OBJECT\n\n"""\ncreates a virtual field on the entity that may be queried but cannot be set manually through the mappings API.\n"""\ndirective @derivedFrom(field: String!) on FIELD_DEFINITION\n\ntype User @source(subgraph: "nft", name: "Account") @source(subgraph: "uniswap", name: "User") @resolver(subgraph: "nft", operation: "query GetAccountById($Account_id: Bytes!) { accounts(where: { id: $Account_id) } }", kind: "FETCH") @resolver(subgraph: "nft", operation: "query GetAccountsByIds($Account_id: [Bytes!]!) { accounts(where: { id_in: $Account_id }) }", kind: "BATCH") @resolver(subgraph: "uniswap", operation: "query UserById($User_id: ID!) { user(id: $User_id) }", kind: "FETCH") @resolver(subgraph: "uniswap", operation: "query GetUserById($User_id: ID!) { users(where: { id: $User_id) } }", kind: "FETCH") @resolver(subgraph: "uniswap", operation: "query GetUsersByIds($User_id: [ID!]!) { users(where: { id_in: $User_id }) }", kind: "BATCH") @variable(subgraph: "nft", name: "Account_id", select: "id") @variable(subgraph: "nft", name: "User_id", select: "id") @variable(subgraph: "uniswap", name: "User_id", select: "id") {\n id: ID! @source(subgraph: "nft", name: "id", type: "Bytes!") @source(subgraph: "uniswap", name: "id", type: "ID!")\n asERC721: ERC721Contract @source(subgraph: "nft", name: "asERC721", type: "ERC721Contract")\n ERC721tokens(skip: Int = 0, first: Int = 100, orderBy: ERC721Token_orderBy, orderDirection: OrderDirection, where: ERC721Token_filter): [ERC721Token!]! @source(subgraph: "nft", name: "ERC721tokens", type: "[ERC721Token!]!")\n ERC721operatorOwner(skip: Int = 0, first: Int = 100, orderBy: ERC721Operator_orderBy, orderDirection: OrderDirection, where: ERC721Operator_filter): [ERC721Operator!]! @source(subgraph: "nft", name: "ERC721operatorOwner", type: "[ERC721Operator!]!")\n ERC721operatorOperator(skip: Int = 0, first: Int = 100, orderBy: ERC721Operator_orderBy, orderDirection: OrderDirection, where: ERC721Operator_filter): [ERC721Operator!]! @source(subgraph: "nft", name: "ERC721operatorOperator", type: "[ERC721Operator!]!")\n ERC721transferFromEvent(skip: Int = 0, first: Int = 100, orderBy: ERC721Transfer_orderBy, orderDirection: OrderDirection, where: ERC721Transfer_filter): [ERC721Transfer!]! @source(subgraph: "nft", name: "ERC721transferFromEvent", type: "[ERC721Transfer!]!")\n ERC721transferToEvent(skip: Int = 0, first: Int = 100, orderBy: ERC721Transfer_orderBy, orderDirection: OrderDirection, where: ERC721Transfer_filter): [ERC721Transfer!]! @source(subgraph: "nft", name: "ERC721transferToEvent", type: "[ERC721Transfer!]!")\n events(skip: Int = 0, first: Int = 100, orderBy: Event_orderBy, orderDirection: OrderDirection, where: Event_filter): [Event!]! @source(subgraph: "nft", name: "events", type: "[Event!]!")\n liquidityPositions(skip: Int = 0, first: Int = 100, orderBy: LiquidityPosition_orderBy, orderDirection: OrderDirection, where: LiquidityPosition_filter): [LiquidityPosition!] @source(subgraph: "uniswap", name: "liquidityPositions", type: "[LiquidityPosition!]")\n usdSwapped: BigDecimal! @source(subgraph: "uniswap", name: "usdSwapped", type: "BigDecimal!")\n}\n\ninput Account_filter @source(subgraph: "nft", name: "Account_filter") {\n id: Bytes @source(subgraph: "nft", name: "id", type: "Bytes")\n id_not: Bytes @source(subgraph: "nft", name: "id_not", type: "Bytes")\n id_gt: Bytes @source(subgraph: "nft", name: "id_gt", type: "Bytes")\n id_lt: Bytes @source(subgraph: "nft", name: "id_lt", type: "Bytes")\n id_gte: Bytes @source(subgraph: "nft", name: "id_gte", type: "Bytes")\n id_lte: Bytes @source(subgraph: "nft", name: "id_lte", type: "Bytes")\n id_in: [Bytes!] @source(subgraph: "nft", name: "id_in", type: "[Bytes!]")\n id_not_in: [Bytes!] @source(subgraph: "nft", name: "id_not_in", type: "[Bytes!]")\n id_contains: Bytes @source(subgraph: "nft", name: "id_contains", type: "Bytes")\n id_not_contains: Bytes @source(subgraph: "nft", name: "id_not_contains", type: "Bytes")\n asERC721: String @source(subgraph: "nft", name: "asERC721", type: "String")\n asERC721_not: String @source(subgraph: "nft", name: "asERC721_not", type: "String")\n asERC721_gt: String @source(subgraph: "nft", name: "asERC721_gt", type: "String")\n asERC721_lt: String @source(subgraph: "nft", name: "asERC721_lt", type: "String")\n asERC721_gte: String @source(subgraph: "nft", name: "asERC721_gte", type: "String")\n asERC721_lte: String @source(subgraph: "nft", name: "asERC721_lte", type: "String")\n asERC721_in: [String!] @source(subgraph: "nft", name: "asERC721_in", type: "[String!]")\n asERC721_not_in: [String!] @source(subgraph: "nft", name: "asERC721_not_in", type: "[String!]")\n asERC721_contains: String @source(subgraph: "nft", name: "asERC721_contains", type: "String")\n asERC721_contains_nocase: String @source(subgraph: "nft", name: "asERC721_contains_nocase", type: "String")\n asERC721_not_contains: String @source(subgraph: "nft", name: "asERC721_not_contains", type: "String")\n asERC721_not_contains_nocase: String @source(subgraph: "nft", name: "asERC721_not_contains_nocase", type: "String")\n asERC721_starts_with: String @source(subgraph: "nft", name: "asERC721_starts_with", type: "String")\n asERC721_starts_with_nocase: String @source(subgraph: "nft", name: "asERC721_starts_with_nocase", type: "String")\n asERC721_not_starts_with: String @source(subgraph: "nft", name: "asERC721_not_starts_with", type: "String")\n asERC721_not_starts_with_nocase: String @source(subgraph: "nft", name: "asERC721_not_starts_with_nocase", type: "String")\n asERC721_ends_with: String @source(subgraph: "nft", name: "asERC721_ends_with", type: "String")\n asERC721_ends_with_nocase: String @source(subgraph: "nft", name: "asERC721_ends_with_nocase", type: "String")\n asERC721_not_ends_with: String @source(subgraph: "nft", name: "asERC721_not_ends_with", type: "String")\n asERC721_not_ends_with_nocase: String @source(subgraph: "nft", name: "asERC721_not_ends_with_nocase", type: "String")\n asERC721_: ERC721Contract_filter @source(subgraph: "nft", name: "asERC721_", type: "ERC721Contract_filter")\n ERC721tokens_: ERC721Token_filter @source(subgraph: "nft", name: "ERC721tokens_", type: "ERC721Token_filter")\n ERC721operatorOwner_: ERC721Operator_filter @source(subgraph: "nft", name: "ERC721operatorOwner_", type: "ERC721Operator_filter")\n ERC721operatorOperator_: ERC721Operator_filter @source(subgraph: "nft", name: "ERC721operatorOperator_", type: "ERC721Operator_filter")\n ERC721transferFromEvent_: ERC721Transfer_filter @source(subgraph: "nft", name: "ERC721transferFromEvent_", type: "ERC721Transfer_filter")\n ERC721transferToEvent_: ERC721Transfer_filter @source(subgraph: "nft", name: "ERC721transferToEvent_", type: "ERC721Transfer_filter")\n events_: Event_filter @source(subgraph: "nft", name: "events_", type: "Event_filter")\n """Filter for the block changed event."""\n _change_block: BlockChangedFilter @source(subgraph: "nft", name: "_change_block", type: "BlockChangedFilter")\n and: [Account_filter] @source(subgraph: "nft", name: "and", type: "[Account_filter]")\n or: [Account_filter] @source(subgraph: "nft", name: "or", type: "[Account_filter]")\n}\n\nenum Account_orderBy @source(subgraph: "nft", name: "Account_orderBy") {\n id @source(subgraph: "nft", name: "id")\n asERC721 @source(subgraph: "nft", name: "asERC721")\n asERC721__id @source(subgraph: "nft", name: "asERC721__id")\n asERC721__supportsMetadata @source(subgraph: "nft", name: "asERC721__supportsMetadata")\n asERC721__name @source(subgraph: "nft", name: "asERC721__name")\n asERC721__symbol @source(subgraph: "nft", name: "asERC721__symbol")\n ERC721tokens @source(subgraph: "nft", name: "ERC721tokens")\n ERC721operatorOwner @source(subgraph: "nft", name: "ERC721operatorOwner")\n ERC721operatorOperator @source(subgraph: "nft", name: "ERC721operatorOperator")\n ERC721transferFromEvent @source(subgraph: "nft", name: "ERC721transferFromEvent")\n ERC721transferToEvent @source(subgraph: "nft", name: "ERC721transferToEvent")\n events @source(subgraph: "nft", name: "events")\n}\n\nenum Aggregation_interval @source(subgraph: "nft", name: "Aggregation_interval") @source(subgraph: "uniswap", name: "Aggregation_interval") {\n hour @source(subgraph: "nft", name: "hour") @source(subgraph: "uniswap", name: "hour")\n day @source(subgraph: "nft", name: "day") @source(subgraph: "uniswap", name: "day")\n}\n\nscalar BigDecimal @source(subgraph: "uniswap", name: "BigDecimal") @source(subgraph: "nft", name: "BigDecimal") @source(subgraph: "uniswap", name: "BigDecimal")\n\nscalar BigInt @source(subgraph: "uniswap", name: "BigInt") @source(subgraph: "nft", name: "BigInt") @source(subgraph: "uniswap", name: "BigInt")\n\ninput BlockChangedFilter @source(subgraph: "nft", name: "BlockChangedFilter") @source(subgraph: "uniswap", name: "BlockChangedFilter") {\n number_gte: Int! @source(subgraph: "nft", name: "number_gte", type: "Int!") @source(subgraph: "uniswap", name: "number_gte", type: "Int!")\n}\n\ninput Block_height @source(subgraph: "nft", name: "Block_height") @source(subgraph: "uniswap", name: "Block_height") {\n hash: Bytes @source(subgraph: "nft", name: "hash", type: "Bytes") @source(subgraph: "uniswap", name: "hash", type: "Bytes")\n number: Int @source(subgraph: "nft", name: "number", type: "Int") @source(subgraph: "uniswap", name: "number", type: "Int")\n number_gte: Int @source(subgraph: "nft", name: "number_gte", type: "Int") @source(subgraph: "uniswap", name: "number_gte", type: "Int")\n}\n\nscalar Bytes @source(subgraph: "uniswap", name: "Bytes") @source(subgraph: "nft", name: "Bytes") @source(subgraph: "uniswap", name: "Bytes")\n\ntype ERC721Contract @source(subgraph: "nft", name: "ERC721Contract") @resolver(subgraph: "nft", operation: "query GetErc721ContractById($ERC721Contract_id: Bytes!) { erc721Contracts(where: { id: $ERC721Contract_id) } }", kind: "FETCH") @resolver(subgraph: "nft", operation: "query GetErc721ContractsByIds($ERC721Contract_id: [Bytes!]!) { erc721Contracts(where: { id_in: $ERC721Contract_id }) }", kind: "BATCH") @resolver(subgraph: "nft", operation: "query GetErc721ContractById($ERC721Contract_id: Bytes!) { erc721Contracts(where: { id: $ERC721Contract_id) } }", kind: "FETCH") @resolver(subgraph: "nft", operation: "query GetErc721ContractsByIds($ERC721Contract_id: [Bytes!]!) { erc721Contracts(where: { id_in: $ERC721Contract_id }) }", kind: "BATCH") @variable(subgraph: "nft", name: "ERC721Contract_id", select: "id") {\n id: Bytes! @source(subgraph: "nft", name: "id", type: "Bytes!")\n asAccount: User! @source(subgraph: "nft", name: "asAccount", type: "Account!")\n supportsMetadata: Boolean @source(subgraph: "nft", name: "supportsMetadata", type: "Boolean")\n name: String @source(subgraph: "nft", name: "name", type: "String")\n symbol: String @source(subgraph: "nft", name: "symbol", type: "String")\n tokens(skip: Int = 0, first: Int = 100, orderBy: ERC721Token_orderBy, orderDirection: OrderDirection, where: ERC721Token_filter): [ERC721Token!]! @source(subgraph: "nft", name: "tokens", type: "[ERC721Token!]!")\n operators(skip: Int = 0, first: Int = 100, orderBy: ERC721Operator_orderBy, orderDirection: OrderDirection, where: ERC721Operator_filter): [ERC721Operator!]! @source(subgraph: "nft", name: "operators", type: "[ERC721Operator!]!")\n transfers(skip: Int = 0, first: Int = 100, orderBy: ERC721Transfer_orderBy, orderDirection: OrderDirection, where: ERC721Transfer_filter): [ERC721Transfer!]! @source(subgraph: "nft", name: "transfers", type: "[ERC721Transfer!]!")\n}\n\ninput ERC721Contract_filter @source(subgraph: "nft", name: "ERC721Contract_filter") {\n id: Bytes @source(subgraph: "nft", name: "id", type: "Bytes")\n id_not: Bytes @source(subgraph: "nft", name: "id_not", type: "Bytes")\n id_gt: Bytes @source(subgraph: "nft", name: "id_gt", type: "Bytes")\n id_lt: Bytes @source(subgraph: "nft", name: "id_lt", type: "Bytes")\n id_gte: Bytes @source(subgraph: "nft", name: "id_gte", type: "Bytes")\n id_lte: Bytes @source(subgraph: "nft", name: "id_lte", type: "Bytes")\n id_in: [Bytes!] @source(subgraph: "nft", name: "id_in", type: "[Bytes!]")\n id_not_in: [Bytes!] @source(subgraph: "nft", name: "id_not_in", type: "[Bytes!]")\n id_contains: Bytes @source(subgraph: "nft", name: "id_contains", type: "Bytes")\n id_not_contains: Bytes @source(subgraph: "nft", name: "id_not_contains", type: "Bytes")\n asAccount: String @source(subgraph: "nft", name: "asAccount", type: "String")\n asAccount_not: String @source(subgraph: "nft", name: "asAccount_not", type: "String")\n asAccount_gt: String @source(subgraph: "nft", name: "asAccount_gt", type: "String")\n asAccount_lt: String @source(subgraph: "nft", name: "asAccount_lt", type: "String")\n asAccount_gte: String @source(subgraph: "nft", name: "asAccount_gte", type: "String")\n asAccount_lte: String @source(subgraph: "nft", name: "asAccount_lte", type: "String")\n asAccount_in: [String!] @source(subgraph: "nft", name: "asAccount_in", type: "[String!]")\n asAccount_not_in: [String!] @source(subgraph: "nft", name: "asAccount_not_in", type: "[String!]")\n asAccount_contains: String @source(subgraph: "nft", name: "asAccount_contains", type: "String")\n asAccount_contains_nocase: String @source(subgraph: "nft", name: "asAccount_contains_nocase", type: "String")\n asAccount_not_contains: String @source(subgraph: "nft", name: "asAccount_not_contains", type: "String")\n asAccount_not_contains_nocase: String @source(subgraph: "nft", name: "asAccount_not_contains_nocase", type: "String")\n asAccount_starts_with: String @source(subgraph: "nft", name: "asAccount_starts_with", type: "String")\n asAccount_starts_with_nocase: String @source(subgraph: "nft", name: "asAccount_starts_with_nocase", type: "String")\n asAccount_not_starts_with: String @source(subgraph: "nft", name: "asAccount_not_starts_with", type: "String")\n asAccount_not_starts_with_nocase: String @source(subgraph: "nft", name: "asAccount_not_starts_with_nocase", type: "String")\n asAccount_ends_with: String @source(subgraph: "nft", name: "asAccount_ends_with", type: "String")\n asAccount_ends_with_nocase: String @source(subgraph: "nft", name: "asAccount_ends_with_nocase", type: "String")\n asAccount_not_ends_with: String @source(subgraph: "nft", name: "asAccount_not_ends_with", type: "String")\n asAccount_not_ends_with_nocase: String @source(subgraph: "nft", name: "asAccount_not_ends_with_nocase", type: "String")\n asAccount_: Account_filter @source(subgraph: "nft", name: "asAccount_", type: "Account_filter")\n supportsMetadata: Boolean @source(subgraph: "nft", name: "supportsMetadata", type: "Boolean")\n supportsMetadata_not: Boolean @source(subgraph: "nft", name: "supportsMetadata_not", type: "Boolean")\n supportsMetadata_in: [Boolean!] @source(subgraph: "nft", name: "supportsMetadata_in", type: "[Boolean!]")\n supportsMetadata_not_in: [Boolean!] @source(subgraph: "nft", name: "supportsMetadata_not_in", type: "[Boolean!]")\n name: String @source(subgraph: "nft", name: "name", type: "String")\n name_not: String @source(subgraph: "nft", name: "name_not", type: "String")\n name_gt: String @source(subgraph: "nft", name: "name_gt", type: "String")\n name_lt: String @source(subgraph: "nft", name: "name_lt", type: "String")\n name_gte: String @source(subgraph: "nft", name: "name_gte", type: "String")\n name_lte: String @source(subgraph: "nft", name: "name_lte", type: "String")\n name_in: [String!] @source(subgraph: "nft", name: "name_in", type: "[String!]")\n name_not_in: [String!] @source(subgraph: "nft", name: "name_not_in", type: "[String!]")\n name_contains: String @source(subgraph: "nft", name: "name_contains", type: "String")\n name_contains_nocase: String @source(subgraph: "nft", name: "name_contains_nocase", type: "String")\n name_not_contains: String @source(subgraph: "nft", name: "name_not_contains", type: "String")\n name_not_contains_nocase: String @source(subgraph: "nft", name: "name_not_contains_nocase", type: "String")\n name_starts_with: String @source(subgraph: "nft", name: "name_starts_with", type: "String")\n name_starts_with_nocase: String @source(subgraph: "nft", name: "name_starts_with_nocase", type: "String")\n name_not_starts_with: String @source(subgraph: "nft", name: "name_not_starts_with", type: "String")\n name_not_starts_with_nocase: String @source(subgraph: "nft", name: "name_not_starts_with_nocase", type: "String")\n name_ends_with: String @source(subgraph: "nft", name: "name_ends_with", type: "String")\n name_ends_with_nocase: String @source(subgraph: "nft", name: "name_ends_with_nocase", type: "String")\n name_not_ends_with: String @source(subgraph: "nft", name: "name_not_ends_with", type: "String")\n name_not_ends_with_nocase: String @source(subgraph: "nft", name: "name_not_ends_with_nocase", type: "String")\n symbol: String @source(subgraph: "nft", name: "symbol", type: "String")\n symbol_not: String @source(subgraph: "nft", name: "symbol_not", type: "String")\n symbol_gt: String @source(subgraph: "nft", name: "symbol_gt", type: "String")\n symbol_lt: String @source(subgraph: "nft", name: "symbol_lt", type: "String")\n symbol_gte: String @source(subgraph: "nft", name: "symbol_gte", type: "String")\n symbol_lte: String @source(subgraph: "nft", name: "symbol_lte", type: "String")\n symbol_in: [String!] @source(subgraph: "nft", name: "symbol_in", type: "[String!]")\n symbol_not_in: [String!] @source(subgraph: "nft", name: "symbol_not_in", type: "[String!]")\n symbol_contains: String @source(subgraph: "nft", name: "symbol_contains", type: "String")\n symbol_contains_nocase: String @source(subgraph: "nft", name: "symbol_contains_nocase", type: "String")\n symbol_not_contains: String @source(subgraph: "nft", name: "symbol_not_contains", type: "String")\n symbol_not_contains_nocase: String @source(subgraph: "nft", name: "symbol_not_contains_nocase", type: "String")\n symbol_starts_with: String @source(subgraph: "nft", name: "symbol_starts_with", type: "String")\n symbol_starts_with_nocase: String @source(subgraph: "nft", name: "symbol_starts_with_nocase", type: "String")\n symbol_not_starts_with: String @source(subgraph: "nft", name: "symbol_not_starts_with", type: "String")\n symbol_not_starts_with_nocase: String @source(subgraph: "nft", name: "symbol_not_starts_with_nocase", type: "String")\n symbol_ends_with: String @source(subgraph: "nft", name: "symbol_ends_with", type: "String")\n symbol_ends_with_nocase: String @source(subgraph: "nft", name: "symbol_ends_with_nocase", type: "String")\n symbol_not_ends_with: String @source(subgraph: "nft", name: "symbol_not_ends_with", type: "String")\n symbol_not_ends_with_nocase: String @source(subgraph: "nft", name: "symbol_not_ends_with_nocase", type: "String")\n tokens_: ERC721Token_filter @source(subgraph: "nft", name: "tokens_", type: "ERC721Token_filter")\n operators_: ERC721Operator_filter @source(subgraph: "nft", name: "operators_", type: "ERC721Operator_filter")\n transfers_: ERC721Transfer_filter @source(subgraph: "nft", name: "transfers_", type: "ERC721Transfer_filter")\n """Filter for the block changed event."""\n _change_block: BlockChangedFilter @source(subgraph: "nft", name: "_change_block", type: "BlockChangedFilter")\n and: [ERC721Contract_filter] @source(subgraph: "nft", name: "and", type: "[ERC721Contract_filter]")\n or: [ERC721Contract_filter] @source(subgraph: "nft", name: "or", type: "[ERC721Contract_filter]")\n}\n\nenum ERC721Contract_orderBy @source(subgraph: "nft", name: "ERC721Contract_orderBy") {\n id @source(subgraph: "nft", name: "id")\n asAccount @source(subgraph: "nft", name: "asAccount")\n asAccount__id @source(subgraph: "nft", name: "asAccount__id")\n supportsMetadata @source(subgraph: "nft", name: "supportsMetadata")\n name @source(subgraph: "nft", name: "name")\n symbol @source(subgraph: "nft", name: "symbol")\n tokens @source(subgraph: "nft", name: "tokens")\n operators @source(subgraph: "nft", name: "operators")\n transfers @source(subgraph: "nft", name: "transfers")\n}\n\ntype ERC721Operator @source(subgraph: "nft", name: "ERC721Operator") @resolver(subgraph: "nft", operation: "query Erc721OperatorById($ERC721Operator_id: ID!) { erc721Operator(id: $ERC721Operator_id) }", kind: "FETCH") @resolver(subgraph: "nft", operation: "query GetErc721OperatorById($ERC721Operator_id: ID!) { erc721Operators(where: { id: $ERC721Operator_id) } }", kind: "FETCH") @resolver(subgraph: "nft", operation: "query GetErc721OperatorsByIds($ERC721Operator_id: [ID!]!) { erc721Operators(where: { id_in: $ERC721Operator_id }) }", kind: "BATCH") @resolver(subgraph: "nft", operation: "query Erc721OperatorById($ERC721Operator_id: ID!) { erc721Operator(id: $ERC721Operator_id) }", kind: "FETCH") @resolver(subgraph: "nft", operation: "query GetErc721OperatorById($ERC721Operator_id: ID!) { erc721Operators(where: { id: $ERC721Operator_id) } }", kind: "FETCH") @resolver(subgraph: "nft", operation: "query GetErc721OperatorsByIds($ERC721Operator_id: [ID!]!) { erc721Operators(where: { id_in: $ERC721Operator_id }) }", kind: "BATCH") @variable(subgraph: "nft", name: "ERC721Operator_id", select: "id") {\n id: ID! @source(subgraph: "nft", name: "id", type: "ID!")\n contract: ERC721Contract! @source(subgraph: "nft", name: "contract", type: "ERC721Contract!")\n owner: User! @source(subgraph: "nft", name: "owner", type: "Account!")\n operator: User! @source(subgraph: "nft", name: "operator", type: "Account!")\n approved: Boolean! @source(subgraph: "nft", name: "approved", type: "Boolean!")\n}\n\ninput ERC721Operator_filter @source(subgraph: "nft", name: "ERC721Operator_filter") {\n id: ID @source(subgraph: "nft", name: "id", type: "ID")\n id_not: ID @source(subgraph: "nft", name: "id_not", type: "ID")\n id_gt: ID @source(subgraph: "nft", name: "id_gt", type: "ID")\n id_lt: ID @source(subgraph: "nft", name: "id_lt", type: "ID")\n id_gte: ID @source(subgraph: "nft", name: "id_gte", type: "ID")\n id_lte: ID @source(subgraph: "nft", name: "id_lte", type: "ID")\n id_in: [ID!] @source(subgraph: "nft", name: "id_in", type: "[ID!]")\n id_not_in: [ID!] @source(subgraph: "nft", name: "id_not_in", type: "[ID!]")\n contract: String @source(subgraph: "nft", name: "contract", type: "String")\n contract_not: String @source(subgraph: "nft", name: "contract_not", type: "String")\n contract_gt: String @source(subgraph: "nft", name: "contract_gt", type: "String")\n contract_lt: String @source(subgraph: "nft", name: "contract_lt", type: "String")\n contract_gte: String @source(subgraph: "nft", name: "contract_gte", type: "String")\n contract_lte: String @source(subgraph: "nft", name: "contract_lte", type: "String")\n contract_in: [String!] @source(subgraph: "nft", name: "contract_in", type: "[String!]")\n contract_not_in: [String!] @source(subgraph: "nft", name: "contract_not_in", type: "[String!]")\n contract_contains: String @source(subgraph: "nft", name: "contract_contains", type: "String")\n contract_contains_nocase: String @source(subgraph: "nft", name: "contract_contains_nocase", type: "String")\n contract_not_contains: String @source(subgraph: "nft", name: "contract_not_contains", type: "String")\n contract_not_contains_nocase: String @source(subgraph: "nft", name: "contract_not_contains_nocase", type: "String")\n contract_starts_with: String @source(subgraph: "nft", name: "contract_starts_with", type: "String")\n contract_starts_with_nocase: String @source(subgraph: "nft", name: "contract_starts_with_nocase", type: "String")\n contract_not_starts_with: String @source(subgraph: "nft", name: "contract_not_starts_with", type: "String")\n contract_not_starts_with_nocase: String @source(subgraph: "nft", name: "contract_not_starts_with_nocase", type: "String")\n contract_ends_with: String @source(subgraph: "nft", name: "contract_ends_with", type: "String")\n contract_ends_with_nocase: String @source(subgraph: "nft", name: "contract_ends_with_nocase", type: "String")\n contract_not_ends_with: String @source(subgraph: "nft", name: "contract_not_ends_with", type: "String")\n contract_not_ends_with_nocase: String @source(subgraph: "nft", name: "contract_not_ends_with_nocase", type: "String")\n contract_: ERC721Contract_filter @source(subgraph: "nft", name: "contract_", type: "ERC721Contract_filter")\n owner: String @source(subgraph: "nft", name: "owner", type: "String")\n owner_not: String @source(subgraph: "nft", name: "owner_not", type: "String")\n owner_gt: String @source(subgraph: "nft", name: "owner_gt", type: "String")\n owner_lt: String @source(subgraph: "nft", name: "owner_lt", type: "String")\n owner_gte: String @source(subgraph: "nft", name: "owner_gte", type: "String")\n owner_lte: String @source(subgraph: "nft", name: "owner_lte", type: "String")\n owner_in: [String!] @source(subgraph: "nft", name: "owner_in", type: "[String!]")\n owner_not_in: [String!] @source(subgraph: "nft", name: "owner_not_in", type: "[String!]")\n owner_contains: String @source(subgraph: "nft", name: "owner_contains", type: "String")\n owner_contains_nocase: String @source(subgraph: "nft", name: "owner_contains_nocase", type: "String")\n owner_not_contains: String @source(subgraph: "nft", name: "owner_not_contains", type: "String")\n owner_not_contains_nocase: String @source(subgraph: "nft", name: "owner_not_contains_nocase", type: "String")\n owner_starts_with: String @source(subgraph: "nft", name: "owner_starts_with", type: "String")\n owner_starts_with_nocase: String @source(subgraph: "nft", name: "owner_starts_with_nocase", type: "String")\n owner_not_starts_with: String @source(subgraph: "nft", name: "owner_not_starts_with", type: "String")\n owner_not_starts_with_nocase: String @source(subgraph: "nft", name: "owner_not_starts_with_nocase", type: "String")\n owner_ends_with: String @source(subgraph: "nft", name: "owner_ends_with", type: "String")\n owner_ends_with_nocase: String @source(subgraph: "nft", name: "owner_ends_with_nocase", type: "String")\n owner_not_ends_with: String @source(subgraph: "nft", name: "owner_not_ends_with", type: "String")\n owner_not_ends_with_nocase: String @source(subgraph: "nft", name: "owner_not_ends_with_nocase", type: "String")\n owner_: Account_filter @source(subgraph: "nft", name: "owner_", type: "Account_filter")\n operator: String @source(subgraph: "nft", name: "operator", type: "String")\n operator_not: String @source(subgraph: "nft", name: "operator_not", type: "String")\n operator_gt: String @source(subgraph: "nft", name: "operator_gt", type: "String")\n operator_lt: String @source(subgraph: "nft", name: "operator_lt", type: "String")\n operator_gte: String @source(subgraph: "nft", name: "operator_gte", type: "String")\n operator_lte: String @source(subgraph: "nft", name: "operator_lte", type: "String")\n operator_in: [String!] @source(subgraph: "nft", name: "operator_in", type: "[String!]")\n operator_not_in: [String!] @source(subgraph: "nft", name: "operator_not_in", type: "[String!]")\n operator_contains: String @source(subgraph: "nft", name: "operator_contains", type: "String")\n operator_contains_nocase: String @source(subgraph: "nft", name: "operator_contains_nocase", type: "String")\n operator_not_contains: String @source(subgraph: "nft", name: "operator_not_contains", type: "String")\n operator_not_contains_nocase: String @source(subgraph: "nft", name: "operator_not_contains_nocase", type: "String")\n operator_starts_with: String @source(subgraph: "nft", name: "operator_starts_with", type: "String")\n operator_starts_with_nocase: String @source(subgraph: "nft", name: "operator_starts_with_nocase", type: "String")\n operator_not_starts_with: String @source(subgraph: "nft", name: "operator_not_starts_with", type: "String")\n operator_not_starts_with_nocase: String @source(subgraph: "nft", name: "operator_not_starts_with_nocase", type: "String")\n operator_ends_with: String @source(subgraph: "nft", name: "operator_ends_with", type: "String")\n operator_ends_with_nocase: String @source(subgraph: "nft", name: "operator_ends_with_nocase", type: "String")\n operator_not_ends_with: String @source(subgraph: "nft", name: "operator_not_ends_with", type: "String")\n operator_not_ends_with_nocase: String @source(subgraph: "nft", name: "operator_not_ends_with_nocase", type: "String")\n operator_: Account_filter @source(subgraph: "nft", name: "operator_", type: "Account_filter")\n approved: Boolean @source(subgraph: "nft", name: "approved", type: "Boolean")\n approved_not: Boolean @source(subgraph: "nft", name: "approved_not", type: "Boolean")\n approved_in: [Boolean!] @source(subgraph: "nft", name: "approved_in", type: "[Boolean!]")\n approved_not_in: [Boolean!] @source(subgraph: "nft", name: "approved_not_in", type: "[Boolean!]")\n """Filter for the block changed event."""\n _change_block: BlockChangedFilter @source(subgraph: "nft", name: "_change_block", type: "BlockChangedFilter")\n and: [ERC721Operator_filter] @source(subgraph: "nft", name: "and", type: "[ERC721Operator_filter]")\n or: [ERC721Operator_filter] @source(subgraph: "nft", name: "or", type: "[ERC721Operator_filter]")\n}\n\nenum ERC721Operator_orderBy @source(subgraph: "nft", name: "ERC721Operator_orderBy") {\n id @source(subgraph: "nft", name: "id")\n contract @source(subgraph: "nft", name: "contract")\n contract__id @source(subgraph: "nft", name: "contract__id")\n contract__supportsMetadata @source(subgraph: "nft", name: "contract__supportsMetadata")\n contract__name @source(subgraph: "nft", name: "contract__name")\n contract__symbol @source(subgraph: "nft", name: "contract__symbol")\n owner @source(subgraph: "nft", name: "owner")\n owner__id @source(subgraph: "nft", name: "owner__id")\n operator @source(subgraph: "nft", name: "operator")\n operator__id @source(subgraph: "nft", name: "operator__id")\n approved @source(subgraph: "nft", name: "approved")\n}\n\ntype ERC721Token @source(subgraph: "nft", name: "ERC721Token") @resolver(subgraph: "nft", operation: "query Erc721TokenById($ERC721Token_id: ID!) { erc721Token(id: $ERC721Token_id) }", kind: "FETCH") @resolver(subgraph: "nft", operation: "query GetErc721TokenById($ERC721Token_id: ID!) { erc721Tokens(where: { id: $ERC721Token_id) } }", kind: "FETCH") @resolver(subgraph: "nft", operation: "query GetErc721TokensByIds($ERC721Token_id: [ID!]!) { erc721Tokens(where: { id_in: $ERC721Token_id }) }", kind: "BATCH") @resolver(subgraph: "nft", operation: "query Erc721TokenById($ERC721Token_id: ID!) { erc721Token(id: $ERC721Token_id) }", kind: "FETCH") @resolver(subgraph: "nft", operation: "query GetErc721TokenById($ERC721Token_id: ID!) { erc721Tokens(where: { id: $ERC721Token_id) } }", kind: "FETCH") @resolver(subgraph: "nft", operation: "query GetErc721TokensByIds($ERC721Token_id: [ID!]!) { erc721Tokens(where: { id_in: $ERC721Token_id }) }", kind: "BATCH") @variable(subgraph: "nft", name: "ERC721Token_id", select: "id") {\n id: ID! @source(subgraph: "nft", name: "id", type: "ID!")\n contract: ERC721Contract! @source(subgraph: "nft", name: "contract", type: "ERC721Contract!")\n identifier: BigInt! @source(subgraph: "nft", name: "identifier", type: "BigInt!")\n owner: User! @source(subgraph: "nft", name: "owner", type: "Account!")\n approval: User! @source(subgraph: "nft", name: "approval", type: "Account!")\n uri: String @source(subgraph: "nft", name: "uri", type: "String")\n transfers(skip: Int = 0, first: Int = 100, orderBy: ERC721Transfer_orderBy, orderDirection: OrderDirection, where: ERC721Transfer_filter): [ERC721Transfer!]! @source(subgraph: "nft", name: "transfers", type: "[ERC721Transfer!]!")\n}\n\ninput ERC721Token_filter @source(subgraph: "nft", name: "ERC721Token_filter") {\n id: ID @source(subgraph: "nft", name: "id", type: "ID")\n id_not: ID @source(subgraph: "nft", name: "id_not", type: "ID")\n id_gt: ID @source(subgraph: "nft", name: "id_gt", type: "ID")\n id_lt: ID @source(subgraph: "nft", name: "id_lt", type: "ID")\n id_gte: ID @source(subgraph: "nft", name: "id_gte", type: "ID")\n id_lte: ID @source(subgraph: "nft", name: "id_lte", type: "ID")\n id_in: [ID!] @source(subgraph: "nft", name: "id_in", type: "[ID!]")\n id_not_in: [ID!] @source(subgraph: "nft", name: "id_not_in", type: "[ID!]")\n contract: String @source(subgraph: "nft", name: "contract", type: "String")\n contract_not: String @source(subgraph: "nft", name: "contract_not", type: "String")\n contract_gt: String @source(subgraph: "nft", name: "contract_gt", type: "String")\n contract_lt: String @source(subgraph: "nft", name: "contract_lt", type: "String")\n contract_gte: String @source(subgraph: "nft", name: "contract_gte", type: "String")\n contract_lte: String @source(subgraph: "nft", name: "contract_lte", type: "String")\n contract_in: [String!] @source(subgraph: "nft", name: "contract_in", type: "[String!]")\n contract_not_in: [String!] @source(subgraph: "nft", name: "contract_not_in", type: "[String!]")\n contract_contains: String @source(subgraph: "nft", name: "contract_contains", type: "String")\n contract_contains_nocase: String @source(subgraph: "nft", name: "contract_contains_nocase", type: "String")\n contract_not_contains: String @source(subgraph: "nft", name: "contract_not_contains", type: "String")\n contract_not_contains_nocase: String @source(subgraph: "nft", name: "contract_not_contains_nocase", type: "String")\n contract_starts_with: String @source(subgraph: "nft", name: "contract_starts_with", type: "String")\n contract_starts_with_nocase: String @source(subgraph: "nft", name: "contract_starts_with_nocase", type: "String")\n contract_not_starts_with: String @source(subgraph: "nft", name: "contract_not_starts_with", type: "String")\n contract_not_starts_with_nocase: String @source(subgraph: "nft", name: "contract_not_starts_with_nocase", type: "String")\n contract_ends_with: String @source(subgraph: "nft", name: "contract_ends_with", type: "String")\n contract_ends_with_nocase: String @source(subgraph: "nft", name: "contract_ends_with_nocase", type: "String")\n contract_not_ends_with: String @source(subgraph: "nft", name: "contract_not_ends_with", type: "String")\n contract_not_ends_with_nocase: String @source(subgraph: "nft", name: "contract_not_ends_with_nocase", type: "String")\n contract_: ERC721Contract_filter @source(subgraph: "nft", name: "contract_", type: "ERC721Contract_filter")\n identifier: BigInt @source(subgraph: "nft", name: "identifier", type: "BigInt")\n identifier_not: BigInt @source(subgraph: "nft", name: "identifier_not", type: "BigInt")\n identifier_gt: BigInt @source(subgraph: "nft", name: "identifier_gt", type: "BigInt")\n identifier_lt: BigInt @source(subgraph: "nft", name: "identifier_lt", type: "BigInt")\n identifier_gte: BigInt @source(subgraph: "nft", name: "identifier_gte", type: "BigInt")\n identifier_lte: BigInt @source(subgraph: "nft", name: "identifier_lte", type: "BigInt")\n identifier_in: [BigInt!] @source(subgraph: "nft", name: "identifier_in", type: "[BigInt!]")\n identifier_not_in: [BigInt!] @source(subgraph: "nft", name: "identifier_not_in", type: "[BigInt!]")\n owner: String @source(subgraph: "nft", name: "owner", type: "String")\n owner_not: String @source(subgraph: "nft", name: "owner_not", type: "String")\n owner_gt: String @source(subgraph: "nft", name: "owner_gt", type: "String")\n owner_lt: String @source(subgraph: "nft", name: "owner_lt", type: "String")\n owner_gte: String @source(subgraph: "nft", name: "owner_gte", type: "String")\n owner_lte: String @source(subgraph: "nft", name: "owner_lte", type: "String")\n owner_in: [String!] @source(subgraph: "nft", name: "owner_in", type: "[String!]")\n owner_not_in: [String!] @source(subgraph: "nft", name: "owner_not_in", type: "[String!]")\n owner_contains: String @source(subgraph: "nft", name: "owner_contains", type: "String")\n owner_contains_nocase: String @source(subgraph: "nft", name: "owner_contains_nocase", type: "String")\n owner_not_contains: String @source(subgraph: "nft", name: "owner_not_contains", type: "String")\n owner_not_contains_nocase: String @source(subgraph: "nft", name: "owner_not_contains_nocase", type: "String")\n owner_starts_with: String @source(subgraph: "nft", name: "owner_starts_with", type: "String")\n owner_starts_with_nocase: String @source(subgraph: "nft", name: "owner_starts_with_nocase", type: "String")\n owner_not_starts_with: String @source(subgraph: "nft", name: "owner_not_starts_with", type: "String")\n owner_not_starts_with_nocase: String @source(subgraph: "nft", name: "owner_not_starts_with_nocase", type: "String")\n owner_ends_with: String @source(subgraph: "nft", name: "owner_ends_with", type: "String")\n owner_ends_with_nocase: String @source(subgraph: "nft", name: "owner_ends_with_nocase", type: "String")\n owner_not_ends_with: String @source(subgraph: "nft", name: "owner_not_ends_with", type: "String")\n owner_not_ends_with_nocase: String @source(subgraph: "nft", name: "owner_not_ends_with_nocase", type: "String")\n owner_: Account_filter @source(subgraph: "nft", name: "owner_", type: "Account_filter")\n approval: String @source(subgraph: "nft", name: "approval", type: "String")\n approval_not: String @source(subgraph: "nft", name: "approval_not", type: "String")\n approval_gt: String @source(subgraph: "nft", name: "approval_gt", type: "String")\n approval_lt: String @source(subgraph: "nft", name: "approval_lt", type: "String")\n approval_gte: String @source(subgraph: "nft", name: "approval_gte", type: "String")\n approval_lte: String @source(subgraph: "nft", name: "approval_lte", type: "String")\n approval_in: [String!] @source(subgraph: "nft", name: "approval_in", type: "[String!]")\n approval_not_in: [String!] @source(subgraph: "nft", name: "approval_not_in", type: "[String!]")\n approval_contains: String @source(subgraph: "nft", name: "approval_contains", type: "String")\n approval_contains_nocase: String @source(subgraph: "nft", name: "approval_contains_nocase", type: "String")\n approval_not_contains: String @source(subgraph: "nft", name: "approval_not_contains", type: "String")\n approval_not_contains_nocase: String @source(subgraph: "nft", name: "approval_not_contains_nocase", type: "String")\n approval_starts_with: String @source(subgraph: "nft", name: "approval_starts_with", type: "String")\n approval_starts_with_nocase: String @source(subgraph: "nft", name: "approval_starts_with_nocase", type: "String")\n approval_not_starts_with: String @source(subgraph: "nft", name: "approval_not_starts_with", type: "String")\n approval_not_starts_with_nocase: String @source(subgraph: "nft", name: "approval_not_starts_with_nocase", type: "String")\n approval_ends_with: String @source(subgraph: "nft", name: "approval_ends_with", type: "String")\n approval_ends_with_nocase: String @source(subgraph: "nft", name: "approval_ends_with_nocase", type: "String")\n approval_not_ends_with: String @source(subgraph: "nft", name: "approval_not_ends_with", type: "String")\n approval_not_ends_with_nocase: String @source(subgraph: "nft", name: "approval_not_ends_with_nocase", type: "String")\n approval_: Account_filter @source(subgraph: "nft", name: "approval_", type: "Account_filter")\n uri: String @source(subgraph: "nft", name: "uri", type: "String")\n uri_not: String @source(subgraph: "nft", name: "uri_not", type: "String")\n uri_gt: String @source(subgraph: "nft", name: "uri_gt", type: "String")\n uri_lt: String @source(subgraph: "nft", name: "uri_lt", type: "String")\n uri_gte: String @source(subgraph: "nft", name: "uri_gte", type: "String")\n uri_lte: String @source(subgraph: "nft", name: "uri_lte", type: "String")\n uri_in: [String!] @source(subgraph: "nft", name: "uri_in", type: "[String!]")\n uri_not_in: [String!] @source(subgraph: "nft", name: "uri_not_in", type: "[String!]")\n uri_contains: String @source(subgraph: "nft", name: "uri_contains", type: "String")\n uri_contains_nocase: String @source(subgraph: "nft", name: "uri_contains_nocase", type: "String")\n uri_not_contains: String @source(subgraph: "nft", name: "uri_not_contains", type: "String")\n uri_not_contains_nocase: String @source(subgraph: "nft", name: "uri_not_contains_nocase", type: "String")\n uri_starts_with: String @source(subgraph: "nft", name: "uri_starts_with", type: "String")\n uri_starts_with_nocase: String @source(subgraph: "nft", name: "uri_starts_with_nocase", type: "String")\n uri_not_starts_with: String @source(subgraph: "nft", name: "uri_not_starts_with", type: "String")\n uri_not_starts_with_nocase: String @source(subgraph: "nft", name: "uri_not_starts_with_nocase", type: "String")\n uri_ends_with: String @source(subgraph: "nft", name: "uri_ends_with", type: "String")\n uri_ends_with_nocase: String @source(subgraph: "nft", name: "uri_ends_with_nocase", type: "String")\n uri_not_ends_with: String @source(subgraph: "nft", name: "uri_not_ends_with", type: "String")\n uri_not_ends_with_nocase: String @source(subgraph: "nft", name: "uri_not_ends_with_nocase", type: "String")\n transfers_: ERC721Transfer_filter @source(subgraph: "nft", name: "transfers_", type: "ERC721Transfer_filter")\n """Filter for the block changed event."""\n _change_block: BlockChangedFilter @source(subgraph: "nft", name: "_change_block", type: "BlockChangedFilter")\n and: [ERC721Token_filter] @source(subgraph: "nft", name: "and", type: "[ERC721Token_filter]")\n or: [ERC721Token_filter] @source(subgraph: "nft", name: "or", type: "[ERC721Token_filter]")\n}\n\nenum ERC721Token_orderBy @source(subgraph: "nft", name: "ERC721Token_orderBy") {\n id @source(subgraph: "nft", name: "id")\n contract @source(subgraph: "nft", name: "contract")\n contract__id @source(subgraph: "nft", name: "contract__id")\n contract__supportsMetadata @source(subgraph: "nft", name: "contract__supportsMetadata")\n contract__name @source(subgraph: "nft", name: "contract__name")\n contract__symbol @source(subgraph: "nft", name: "contract__symbol")\n identifier @source(subgraph: "nft", name: "identifier")\n owner @source(subgraph: "nft", name: "owner")\n owner__id @source(subgraph: "nft", name: "owner__id")\n approval @source(subgraph: "nft", name: "approval")\n approval__id @source(subgraph: "nft", name: "approval__id")\n uri @source(subgraph: "nft", name: "uri")\n transfers @source(subgraph: "nft", name: "transfers")\n}\n\ntype ERC721Transfer implements Event @source(subgraph: "nft", name: "ERC721Transfer") @resolver(subgraph: "nft", operation: "query Erc721TransferById($ERC721Transfer_id: ID!) { erc721Transfer(id: $ERC721Transfer_id) }", kind: "FETCH") @resolver(subgraph: "nft", operation: "query GetErc721TransferById($ERC721Transfer_id: ID!) { erc721Transfers(where: { id: $ERC721Transfer_id) } }", kind: "FETCH") @resolver(subgraph: "nft", operation: "query GetErc721TransfersByIds($ERC721Transfer_id: [ID!]!) { erc721Transfers(where: { id_in: $ERC721Transfer_id }) }", kind: "BATCH") @resolver(subgraph: "nft", operation: "query Erc721TransferById($ERC721Transfer_id: ID!) { erc721Transfer(id: $ERC721Transfer_id) }", kind: "FETCH") @resolver(subgraph: "nft", operation: "query GetErc721TransferById($ERC721Transfer_id: ID!) { erc721Transfers(where: { id: $ERC721Transfer_id) } }", kind: "FETCH") @resolver(subgraph: "nft", operation: "query GetErc721TransfersByIds($ERC721Transfer_id: [ID!]!) { erc721Transfers(where: { id_in: $ERC721Transfer_id }) }", kind: "BATCH") @variable(subgraph: "nft", name: "ERC721Transfer_id", select: "id") {\n id: ID! @source(subgraph: "nft", name: "id", type: "ID!")\n emitter: User! @source(subgraph: "nft", name: "emitter", type: "Account!")\n transaction: Transaction! @source(subgraph: "nft", name: "transaction", type: "Transaction!")\n timestamp: BigInt! @source(subgraph: "nft", name: "timestamp", type: "BigInt!")\n contract: ERC721Contract! @source(subgraph: "nft", name: "contract", type: "ERC721Contract!")\n token: ERC721Token! @source(subgraph: "nft", name: "token", type: "ERC721Token!")\n from: User! @source(subgraph: "nft", name: "from", type: "Account!")\n to: User! @source(subgraph: "nft", name: "to", type: "Account!")\n}\n\ninput ERC721Transfer_filter @source(subgraph: "nft", name: "ERC721Transfer_filter") {\n id: ID @source(subgraph: "nft", name: "id", type: "ID")\n id_not: ID @source(subgraph: "nft", name: "id_not", type: "ID")\n id_gt: ID @source(subgraph: "nft", name: "id_gt", type: "ID")\n id_lt: ID @source(subgraph: "nft", name: "id_lt", type: "ID")\n id_gte: ID @source(subgraph: "nft", name: "id_gte", type: "ID")\n id_lte: ID @source(subgraph: "nft", name: "id_lte", type: "ID")\n id_in: [ID!] @source(subgraph: "nft", name: "id_in", type: "[ID!]")\n id_not_in: [ID!] @source(subgraph: "nft", name: "id_not_in", type: "[ID!]")\n emitter: String @source(subgraph: "nft", name: "emitter", type: "String")\n emitter_not: String @source(subgraph: "nft", name: "emitter_not", type: "String")\n emitter_gt: String @source(subgraph: "nft", name: "emitter_gt", type: "String")\n emitter_lt: String @source(subgraph: "nft", name: "emitter_lt", type: "String")\n emitter_gte: String @source(subgraph: "nft", name: "emitter_gte", type: "String")\n emitter_lte: String @source(subgraph: "nft", name: "emitter_lte", type: "String")\n emitter_in: [String!] @source(subgraph: "nft", name: "emitter_in", type: "[String!]")\n emitter_not_in: [String!] @source(subgraph: "nft", name: "emitter_not_in", type: "[String!]")\n emitter_contains: String @source(subgraph: "nft", name: "emitter_contains", type: "String")\n emitter_contains_nocase: String @source(subgraph: "nft", name: "emitter_contains_nocase", type: "String")\n emitter_not_contains: String @source(subgraph: "nft", name: "emitter_not_contains", type: "String")\n emitter_not_contains_nocase: String @source(subgraph: "nft", name: "emitter_not_contains_nocase", type: "String")\n emitter_starts_with: String @source(subgraph: "nft", name: "emitter_starts_with", type: "String")\n emitter_starts_with_nocase: String @source(subgraph: "nft", name: "emitter_starts_with_nocase", type: "String")\n emitter_not_starts_with: String @source(subgraph: "nft", name: "emitter_not_starts_with", type: "String")\n emitter_not_starts_with_nocase: String @source(subgraph: "nft", name: "emitter_not_starts_with_nocase", type: "String")\n emitter_ends_with: String @source(subgraph: "nft", name: "emitter_ends_with", type: "String")\n emitter_ends_with_nocase: String @source(subgraph: "nft", name: "emitter_ends_with_nocase", type: "String")\n emitter_not_ends_with: String @source(subgraph: "nft", name: "emitter_not_ends_with", type: "String")\n emitter_not_ends_with_nocase: String @source(subgraph: "nft", name: "emitter_not_ends_with_nocase", type: "String")\n emitter_: Account_filter @source(subgraph: "nft", name: "emitter_", type: "Account_filter")\n transaction: String @source(subgraph: "nft", name: "transaction", type: "String")\n transaction_not: String @source(subgraph: "nft", name: "transaction_not", type: "String")\n transaction_gt: String @source(subgraph: "nft", name: "transaction_gt", type: "String")\n transaction_lt: String @source(subgraph: "nft", name: "transaction_lt", type: "String")\n transaction_gte: String @source(subgraph: "nft", name: "transaction_gte", type: "String")\n transaction_lte: String @source(subgraph: "nft", name: "transaction_lte", type: "String")\n transaction_in: [String!] @source(subgraph: "nft", name: "transaction_in", type: "[String!]")\n transaction_not_in: [String!] @source(subgraph: "nft", name: "transaction_not_in", type: "[String!]")\n transaction_contains: String @source(subgraph: "nft", name: "transaction_contains", type: "String")\n transaction_contains_nocase: String @source(subgraph: "nft", name: "transaction_contains_nocase", type: "String")\n transaction_not_contains: String @source(subgraph: "nft", name: "transaction_not_contains", type: "String")\n transaction_not_contains_nocase: String @source(subgraph: "nft", name: "transaction_not_contains_nocase", type: "String")\n transaction_starts_with: String @source(subgraph: "nft", name: "transaction_starts_with", type: "String")\n transaction_starts_with_nocase: String @source(subgraph: "nft", name: "transaction_starts_with_nocase", type: "String")\n transaction_not_starts_with: String @source(subgraph: "nft", name: "transaction_not_starts_with", type: "String")\n transaction_not_starts_with_nocase: String @source(subgraph: "nft", name: "transaction_not_starts_with_nocase", type: "String")\n transaction_ends_with: String @source(subgraph: "nft", name: "transaction_ends_with", type: "String")\n transaction_ends_with_nocase: String @source(subgraph: "nft", name: "transaction_ends_with_nocase", type: "String")\n transaction_not_ends_with: String @source(subgraph: "nft", name: "transaction_not_ends_with", type: "String")\n transaction_not_ends_with_nocase: String @source(subgraph: "nft", name: "transaction_not_ends_with_nocase", type: "String")\n transaction_: Transaction_filter @source(subgraph: "nft", name: "transaction_", type: "Transaction_filter")\n timestamp: BigInt @source(subgraph: "nft", name: "timestamp", type: "BigInt")\n timestamp_not: BigInt @source(subgraph: "nft", name: "timestamp_not", type: "BigInt")\n timestamp_gt: BigInt @source(subgraph: "nft", name: "timestamp_gt", type: "BigInt")\n timestamp_lt: BigInt @source(subgraph: "nft", name: "timestamp_lt", type: "BigInt")\n timestamp_gte: BigInt @source(subgraph: "nft", name: "timestamp_gte", type: "BigInt")\n timestamp_lte: BigInt @source(subgraph: "nft", name: "timestamp_lte", type: "BigInt")\n timestamp_in: [BigInt!] @source(subgraph: "nft", name: "timestamp_in", type: "[BigInt!]")\n timestamp_not_in: [BigInt!] @source(subgraph: "nft", name: "timestamp_not_in", type: "[BigInt!]")\n contract: String @source(subgraph: "nft", name: "contract", type: "String")\n contract_not: String @source(subgraph: "nft", name: "contract_not", type: "String")\n contract_gt: String @source(subgraph: "nft", name: "contract_gt", type: "String")\n contract_lt: String @source(subgraph: "nft", name: "contract_lt", type: "String")\n contract_gte: String @source(subgraph: "nft", name: "contract_gte", type: "String")\n contract_lte: String @source(subgraph: "nft", name: "contract_lte", type: "String")\n contract_in: [String!] @source(subgraph: "nft", name: "contract_in", type: "[String!]")\n contract_not_in: [String!] @source(subgraph: "nft", name: "contract_not_in", type: "[String!]")\n contract_contains: String @source(subgraph: "nft", name: "contract_contains", type: "String")\n contract_contains_nocase: String @source(subgraph: "nft", name: "contract_contains_nocase", type: "String")\n contract_not_contains: String @source(subgraph: "nft", name: "contract_not_contains", type: "String")\n contract_not_contains_nocase: String @source(subgraph: "nft", name: "contract_not_contains_nocase", type: "String")\n contract_starts_with: String @source(subgraph: "nft", name: "contract_starts_with", type: "String")\n contract_starts_with_nocase: String @source(subgraph: "nft", name: "contract_starts_with_nocase", type: "String")\n contract_not_starts_with: String @source(subgraph: "nft", name: "contract_not_starts_with", type: "String")\n contract_not_starts_with_nocase: String @source(subgraph: "nft", name: "contract_not_starts_with_nocase", type: "String")\n contract_ends_with: String @source(subgraph: "nft", name: "contract_ends_with", type: "String")\n contract_ends_with_nocase: String @source(subgraph: "nft", name: "contract_ends_with_nocase", type: "String")\n contract_not_ends_with: String @source(subgraph: "nft", name: "contract_not_ends_with", type: "String")\n contract_not_ends_with_nocase: String @source(subgraph: "nft", name: "contract_not_ends_with_nocase", type: "String")\n contract_: ERC721Contract_filter @source(subgraph: "nft", name: "contract_", type: "ERC721Contract_filter")\n token: String @source(subgraph: "nft", name: "token", type: "String")\n token_not: String @source(subgraph: "nft", name: "token_not", type: "String")\n token_gt: String @source(subgraph: "nft", name: "token_gt", type: "String")\n token_lt: String @source(subgraph: "nft", name: "token_lt", type: "String")\n token_gte: String @source(subgraph: "nft", name: "token_gte", type: "String")\n token_lte: String @source(subgraph: "nft", name: "token_lte", type: "String")\n token_in: [String!] @source(subgraph: "nft", name: "token_in", type: "[String!]")\n token_not_in: [String!] @source(subgraph: "nft", name: "token_not_in", type: "[String!]")\n token_contains: String @source(subgraph: "nft", name: "token_contains", type: "String")\n token_contains_nocase: String @source(subgraph: "nft", name: "token_contains_nocase", type: "String")\n token_not_contains: String @source(subgraph: "nft", name: "token_not_contains", type: "String")\n token_not_contains_nocase: String @source(subgraph: "nft", name: "token_not_contains_nocase", type: "String")\n token_starts_with: String @source(subgraph: "nft", name: "token_starts_with", type: "String")\n token_starts_with_nocase: String @source(subgraph: "nft", name: "token_starts_with_nocase", type: "String")\n token_not_starts_with: String @source(subgraph: "nft", name: "token_not_starts_with", type: "String")\n token_not_starts_with_nocase: String @source(subgraph: "nft", name: "token_not_starts_with_nocase", type: "String")\n token_ends_with: String @source(subgraph: "nft", name: "token_ends_with", type: "String")\n token_ends_with_nocase: String @source(subgraph: "nft", name: "token_ends_with_nocase", type: "String")\n token_not_ends_with: String @source(subgraph: "nft", name: "token_not_ends_with", type: "String")\n token_not_ends_with_nocase: String @source(subgraph: "nft", name: "token_not_ends_with_nocase", type: "String")\n token_: ERC721Token_filter @source(subgraph: "nft", name: "token_", type: "ERC721Token_filter")\n from: String @source(subgraph: "nft", name: "from", type: "String")\n from_not: String @source(subgraph: "nft", name: "from_not", type: "String")\n from_gt: String @source(subgraph: "nft", name: "from_gt", type: "String")\n from_lt: String @source(subgraph: "nft", name: "from_lt", type: "String")\n from_gte: String @source(subgraph: "nft", name: "from_gte", type: "String")\n from_lte: String @source(subgraph: "nft", name: "from_lte", type: "String")\n from_in: [String!] @source(subgraph: "nft", name: "from_in", type: "[String!]")\n from_not_in: [String!] @source(subgraph: "nft", name: "from_not_in", type: "[String!]")\n from_contains: String @source(subgraph: "nft", name: "from_contains", type: "String")\n from_contains_nocase: String @source(subgraph: "nft", name: "from_contains_nocase", type: "String")\n from_not_contains: String @source(subgraph: "nft", name: "from_not_contains", type: "String")\n from_not_contains_nocase: String @source(subgraph: "nft", name: "from_not_contains_nocase", type: "String")\n from_starts_with: String @source(subgraph: "nft", name: "from_starts_with", type: "String")\n from_starts_with_nocase: String @source(subgraph: "nft", name: "from_starts_with_nocase", type: "String")\n from_not_starts_with: String @source(subgraph: "nft", name: "from_not_starts_with", type: "String")\n from_not_starts_with_nocase: String @source(subgraph: "nft", name: "from_not_starts_with_nocase", type: "String")\n from_ends_with: String @source(subgraph: "nft", name: "from_ends_with", type: "String")\n from_ends_with_nocase: String @source(subgraph: "nft", name: "from_ends_with_nocase", type: "String")\n from_not_ends_with: String @source(subgraph: "nft", name: "from_not_ends_with", type: "String")\n from_not_ends_with_nocase: String @source(subgraph: "nft", name: "from_not_ends_with_nocase", type: "String")\n from_: Account_filter @source(subgraph: "nft", name: "from_", type: "Account_filter")\n to: String @source(subgraph: "nft", name: "to", type: "String")\n to_not: String @source(subgraph: "nft", name: "to_not", type: "String")\n to_gt: String @source(subgraph: "nft", name: "to_gt", type: "String")\n to_lt: String @source(subgraph: "nft", name: "to_lt", type: "String")\n to_gte: String @source(subgraph: "nft", name: "to_gte", type: "String")\n to_lte: String @source(subgraph: "nft", name: "to_lte", type: "String")\n to_in: [String!] @source(subgraph: "nft", name: "to_in", type: "[String!]")\n to_not_in: [String!] @source(subgraph: "nft", name: "to_not_in", type: "[String!]")\n to_contains: String @source(subgraph: "nft", name: "to_contains", type: "String")\n to_contains_nocase: String @source(subgraph: "nft", name: "to_contains_nocase", type: "String")\n to_not_contains: String @source(subgraph: "nft", name: "to_not_contains", type: "String")\n to_not_contains_nocase: String @source(subgraph: "nft", name: "to_not_contains_nocase", type: "String")\n to_starts_with: String @source(subgraph: "nft", name: "to_starts_with", type: "String")\n to_starts_with_nocase: String @source(subgraph: "nft", name: "to_starts_with_nocase", type: "String")\n to_not_starts_with: String @source(subgraph: "nft", name: "to_not_starts_with", type: "String")\n to_not_starts_with_nocase: String @source(subgraph: "nft", name: "to_not_starts_with_nocase", type: "String")\n to_ends_with: String @source(subgraph: "nft", name: "to_ends_with", type: "String")\n to_ends_with_nocase: String @source(subgraph: "nft", name: "to_ends_with_nocase", type: "String")\n to_not_ends_with: String @source(subgraph: "nft", name: "to_not_ends_with", type: "String")\n to_not_ends_with_nocase: String @source(subgraph: "nft", name: "to_not_ends_with_nocase", type: "String")\n to_: Account_filter @source(subgraph: "nft", name: "to_", type: "Account_filter")\n """Filter for the block changed event."""\n _change_block: BlockChangedFilter @source(subgraph: "nft", name: "_change_block", type: "BlockChangedFilter")\n and: [ERC721Transfer_filter] @source(subgraph: "nft", name: "and", type: "[ERC721Transfer_filter]")\n or: [ERC721Transfer_filter] @source(subgraph: "nft", name: "or", type: "[ERC721Transfer_filter]")\n}\n\nenum ERC721Transfer_orderBy @source(subgraph: "nft", name: "ERC721Transfer_orderBy") {\n id @source(subgraph: "nft", name: "id")\n emitter @source(subgraph: "nft", name: "emitter")\n emitter__id @source(subgraph: "nft", name: "emitter__id")\n transaction @source(subgraph: "nft", name: "transaction")\n transaction__id @source(subgraph: "nft", name: "transaction__id")\n transaction__timestamp @source(subgraph: "nft", name: "transaction__timestamp")\n transaction__blockNumber @source(subgraph: "nft", name: "transaction__blockNumber")\n timestamp @source(subgraph: "nft", name: "timestamp")\n contract @source(subgraph: "nft", name: "contract")\n contract__id @source(subgraph: "nft", name: "contract__id")\n contract__supportsMetadata @source(subgraph: "nft", name: "contract__supportsMetadata")\n contract__name @source(subgraph: "nft", name: "contract__name")\n contract__symbol @source(subgraph: "nft", name: "contract__symbol")\n token @source(subgraph: "nft", name: "token")\n token__id @source(subgraph: "nft", name: "token__id")\n token__identifier @source(subgraph: "nft", name: "token__identifier")\n token__uri @source(subgraph: "nft", name: "token__uri")\n from @source(subgraph: "nft", name: "from")\n from__id @source(subgraph: "nft", name: "from__id")\n to @source(subgraph: "nft", name: "to")\n to__id @source(subgraph: "nft", name: "to__id")\n}\n\ninterface Event @source(subgraph: "nft", name: "Event") {\n id: ID! @source(subgraph: "nft", name: "id", type: "ID!")\n transaction: Transaction! @source(subgraph: "nft", name: "transaction", type: "Transaction!")\n emitter: User! @source(subgraph: "nft", name: "emitter", type: "Account!")\n timestamp: BigInt! @source(subgraph: "nft", name: "timestamp", type: "BigInt!")\n}\n\ninput Event_filter @source(subgraph: "nft", name: "Event_filter") {\n id: ID @source(subgraph: "nft", name: "id", type: "ID")\n id_not: ID @source(subgraph: "nft", name: "id_not", type: "ID")\n id_gt: ID @source(subgraph: "nft", name: "id_gt", type: "ID")\n id_lt: ID @source(subgraph: "nft", name: "id_lt", type: "ID")\n id_gte: ID @source(subgraph: "nft", name: "id_gte", type: "ID")\n id_lte: ID @source(subgraph: "nft", name: "id_lte", type: "ID")\n id_in: [ID!] @source(subgraph: "nft", name: "id_in", type: "[ID!]")\n id_not_in: [ID!] @source(subgraph: "nft", name: "id_not_in", type: "[ID!]")\n transaction: String @source(subgraph: "nft", name: "transaction", type: "String")\n transaction_not: String @source(subgraph: "nft", name: "transaction_not", type: "String")\n transaction_gt: String @source(subgraph: "nft", name: "transaction_gt", type: "String")\n transaction_lt: String @source(subgraph: "nft", name: "transaction_lt", type: "String")\n transaction_gte: String @source(subgraph: "nft", name: "transaction_gte", type: "String")\n transaction_lte: String @source(subgraph: "nft", name: "transaction_lte", type: "String")\n transaction_in: [String!] @source(subgraph: "nft", name: "transaction_in", type: "[String!]")\n transaction_not_in: [String!] @source(subgraph: "nft", name: "transaction_not_in", type: "[String!]")\n transaction_contains: String @source(subgraph: "nft", name: "transaction_contains", type: "String")\n transaction_contains_nocase: String @source(subgraph: "nft", name: "transaction_contains_nocase", type: "String")\n transaction_not_contains: String @source(subgraph: "nft", name: "transaction_not_contains", type: "String")\n transaction_not_contains_nocase: String @source(subgraph: "nft", name: "transaction_not_contains_nocase", type: "String")\n transaction_starts_with: String @source(subgraph: "nft", name: "transaction_starts_with", type: "String")\n transaction_starts_with_nocase: String @source(subgraph: "nft", name: "transaction_starts_with_nocase", type: "String")\n transaction_not_starts_with: String @source(subgraph: "nft", name: "transaction_not_starts_with", type: "String")\n transaction_not_starts_with_nocase: String @source(subgraph: "nft", name: "transaction_not_starts_with_nocase", type: "String")\n transaction_ends_with: String @source(subgraph: "nft", name: "transaction_ends_with", type: "String")\n transaction_ends_with_nocase: String @source(subgraph: "nft", name: "transaction_ends_with_nocase", type: "String")\n transaction_not_ends_with: String @source(subgraph: "nft", name: "transaction_not_ends_with", type: "String")\n transaction_not_ends_with_nocase: String @source(subgraph: "nft", name: "transaction_not_ends_with_nocase", type: "String")\n transaction_: Transaction_filter @source(subgraph: "nft", name: "transaction_", type: "Transaction_filter")\n emitter: String @source(subgraph: "nft", name: "emitter", type: "String")\n emitter_not: String @source(subgraph: "nft", name: "emitter_not", type: "String")\n emitter_gt: String @source(subgraph: "nft", name: "emitter_gt", type: "String")\n emitter_lt: String @source(subgraph: "nft", name: "emitter_lt", type: "String")\n emitter_gte: String @source(subgraph: "nft", name: "emitter_gte", type: "String")\n emitter_lte: String @source(subgraph: "nft", name: "emitter_lte", type: "String")\n emitter_in: [String!] @source(subgraph: "nft", name: "emitter_in", type: "[String!]")\n emitter_not_in: [String!] @source(subgraph: "nft", name: "emitter_not_in", type: "[String!]")\n emitter_contains: String @source(subgraph: "nft", name: "emitter_contains", type: "String")\n emitter_contains_nocase: String @source(subgraph: "nft", name: "emitter_contains_nocase", type: "String")\n emitter_not_contains: String @source(subgraph: "nft", name: "emitter_not_contains", type: "String")\n emitter_not_contains_nocase: String @source(subgraph: "nft", name: "emitter_not_contains_nocase", type: "String")\n emitter_starts_with: String @source(subgraph: "nft", name: "emitter_starts_with", type: "String")\n emitter_starts_with_nocase: String @source(subgraph: "nft", name: "emitter_starts_with_nocase", type: "String")\n emitter_not_starts_with: String @source(subgraph: "nft", name: "emitter_not_starts_with", type: "String")\n emitter_not_starts_with_nocase: String @source(subgraph: "nft", name: "emitter_not_starts_with_nocase", type: "String")\n emitter_ends_with: String @source(subgraph: "nft", name: "emitter_ends_with", type: "String")\n emitter_ends_with_nocase: String @source(subgraph: "nft", name: "emitter_ends_with_nocase", type: "String")\n emitter_not_ends_with: String @source(subgraph: "nft", name: "emitter_not_ends_with", type: "String")\n emitter_not_ends_with_nocase: String @source(subgraph: "nft", name: "emitter_not_ends_with_nocase", type: "String")\n emitter_: Account_filter @source(subgraph: "nft", name: "emitter_", type: "Account_filter")\n timestamp: BigInt @source(subgraph: "nft", name: "timestamp", type: "BigInt")\n timestamp_not: BigInt @source(subgraph: "nft", name: "timestamp_not", type: "BigInt")\n timestamp_gt: BigInt @source(subgraph: "nft", name: "timestamp_gt", type: "BigInt")\n timestamp_lt: BigInt @source(subgraph: "nft", name: "timestamp_lt", type: "BigInt")\n timestamp_gte: BigInt @source(subgraph: "nft", name: "timestamp_gte", type: "BigInt")\n timestamp_lte: BigInt @source(subgraph: "nft", name: "timestamp_lte", type: "BigInt")\n timestamp_in: [BigInt!] @source(subgraph: "nft", name: "timestamp_in", type: "[BigInt!]")\n timestamp_not_in: [BigInt!] @source(subgraph: "nft", name: "timestamp_not_in", type: "[BigInt!]")\n """Filter for the block changed event."""\n _change_block: BlockChangedFilter @source(subgraph: "nft", name: "_change_block", type: "BlockChangedFilter")\n and: [Event_filter] @source(subgraph: "nft", name: "and", type: "[Event_filter]")\n or: [Event_filter] @source(subgraph: "nft", name: "or", type: "[Event_filter]")\n}\n\nenum Event_orderBy @source(subgraph: "nft", name: "Event_orderBy") {\n id @source(subgraph: "nft", name: "id")\n transaction @source(subgraph: "nft", name: "transaction")\n transaction__id @source(subgraph: "nft", name: "transaction__id")\n transaction__timestamp @source(subgraph: "nft", name: "transaction__timestamp")\n transaction__blockNumber @source(subgraph: "nft", name: "transaction__blockNumber")\n emitter @source(subgraph: "nft", name: "emitter")\n emitter__id @source(subgraph: "nft", name: "emitter__id")\n timestamp @source(subgraph: "nft", name: "timestamp")\n}\n\n"""\n8 bytes signed integer\n\n"""\nscalar Int8 @source(subgraph: "uniswap", name: "Int8") @source(subgraph: "nft", name: "Int8") @source(subgraph: "uniswap", name: "Int8")\n\n"""Defines the order direction, either ascending or descending"""\nenum OrderDirection @source(subgraph: "nft", name: "OrderDirection") @source(subgraph: "uniswap", name: "OrderDirection") {\n asc @source(subgraph: "nft", name: "asc") @source(subgraph: "uniswap", name: "asc")\n desc @source(subgraph: "nft", name: "desc") @source(subgraph: "uniswap", name: "desc")\n}\n\ntype Query {\n account(\n id: ID!\n """\n The block at which the query should be executed. Can either be a `{ hash: Bytes }` value containing a block hash, a `{ number: Int }` containing the block number, or a `{ number_gte: Int }` containing the minimum block number. In the case of `number_gte`, the query will be executed on the latest block only if the subgraph has progressed to or past the minimum block number. Defaults to the latest block when omitted.\n """\n block: Block_height\n """\n Set to `allow` to receive data even if the subgraph has skipped over errors while syncing.\n """\n subgraphError: _SubgraphErrorPolicy_! = deny\n ): User @resolver(subgraph: "nft", operation: "query account($id: ID!, $block: Block_height, $subgraphError: _SubgraphErrorPolicy_! = \\"deny\\") { account(id: $id, block: $block, subgraphError: $subgraphError) }") @source(subgraph: "nft", name: "account", type: "Account")\n accounts(\n skip: Int = 0\n first: Int = 100\n orderBy: Account_orderBy\n orderDirection: OrderDirection\n where: Account_filter\n """\n The block at which the query should be executed. Can either be a `{ hash: Bytes }` value containing a block hash, a `{ number: Int }` containing the block number, or a `{ number_gte: Int }` containing the minimum block number. In the case of `number_gte`, the query will be executed on the latest block only if the subgraph has progressed to or past the minimum block number. Defaults to the latest block when omitted.\n """\n block: Block_height\n """\n Set to `allow` to receive data even if the subgraph has skipped over errors while syncing.\n """\n subgraphError: _SubgraphErrorPolicy_! = deny\n ): [User!]! @resolver(subgraph: "nft", operation: "query accounts($skip: Int, $first: Int = 100, $orderBy: Account_orderBy, $orderDirection: OrderDirection, $where: Account_filter, $block: Block_height, $subgraphError: _SubgraphErrorPolicy_! = \\"deny\\") { accounts(skip: $skip, first: $first, orderBy: $orderBy, orderDirection: $orderDirection, where: $where, block: $block, subgraphError: $subgraphError) }") @source(subgraph: "nft", name: "accounts", type: "[Account!]!")\n erc721Contract(\n id: ID!\n """\n The block at which the query should be executed. Can either be a `{ hash: Bytes }` value containing a block hash, a `{ number: Int }` containing the block number, or a `{ number_gte: Int }` containing the minimum block number. In the case of `number_gte`, the query will be executed on the latest block only if the subgraph has progressed to or past the minimum block number. Defaults to the latest block when omitted.\n """\n block: Block_height\n """\n Set to `allow` to receive data even if the subgraph has skipped over errors while syncing.\n """\n subgraphError: _SubgraphErrorPolicy_! = deny\n ): ERC721Contract @resolver(subgraph: "nft", operation: "query erc721Contract($id: ID!, $block: Block_height, $subgraphError: _SubgraphErrorPolicy_! = \\"deny\\") { erc721Contract(id: $id, block: $block, subgraphError: $subgraphError) }") @source(subgraph: "nft", name: "erc721Contract", type: "ERC721Contract")\n erc721Contracts(\n skip: Int = 0\n first: Int = 100\n orderBy: ERC721Contract_orderBy\n orderDirection: OrderDirection\n where: ERC721Contract_filter\n """\n The block at which the query should be executed. Can either be a `{ hash: Bytes }` value containing a block hash, a `{ number: Int }` containing the block number, or a `{ number_gte: Int }` containing the minimum block number. In the case of `number_gte`, the query will be executed on the latest block only if the subgraph has progressed to or past the minimum block number. Defaults to the latest block when omitted.\n """\n block: Block_height\n """\n Set to `allow` to receive data even if the subgraph has skipped over errors while syncing.\n """\n subgraphError: _SubgraphErrorPolicy_! = deny\n ): [ERC721Contract!]! @resolver(subgraph: "nft", operation: "query erc721Contracts($skip: Int, $first: Int = 100, $orderBy: ERC721Contract_orderBy, $orderDirection: OrderDirection, $where: ERC721Contract_filter, $block: Block_height, $subgraphError: _SubgraphErrorPolicy_! = \\"deny\\") { erc721Contracts(skip: $skip, first: $first, orderBy: $orderBy, orderDirection: $orderDirection, where: $where, block: $block, subgraphError: $subgraphError) }") @source(subgraph: "nft", name: "erc721Contracts", type: "[ERC721Contract!]!")\n erc721Token(\n id: ID!\n """\n The block at which the query should be executed. Can either be a `{ hash: Bytes }` value containing a block hash, a `{ number: Int }` containing the block number, or a `{ number_gte: Int }` containing the minimum block number. In the case of `number_gte`, the query will be executed on the latest block only if the subgraph has progressed to or past the minimum block number. Defaults to the latest block when omitted.\n """\n block: Block_height\n """\n Set to `allow` to receive data even if the subgraph has skipped over errors while syncing.\n """\n subgraphError: _SubgraphErrorPolicy_! = deny\n ): ERC721Token @resolver(subgraph: "nft", operation: "query erc721Token($id: ID!, $block: Block_height, $subgraphError: _SubgraphErrorPolicy_! = \\"deny\\") { erc721Token(id: $id, block: $block, subgraphError: $subgraphError) }") @source(subgraph: "nft", name: "erc721Token", type: "ERC721Token")\n erc721Tokens(\n skip: Int = 0\n first: Int = 100\n orderBy: ERC721Token_orderBy\n orderDirection: OrderDirection\n where: ERC721Token_filter\n """\n The block at which the query should be executed. Can either be a `{ hash: Bytes }` value containing a block hash, a `{ number: Int }` containing the block number, or a `{ number_gte: Int }` containing the minimum block number. In the case of `number_gte`, the query will be executed on the latest block only if the subgraph has progressed to or past the minimum block number. Defaults to the latest block when omitted.\n """\n block: Block_height\n """\n Set to `allow` to receive data even if the subgraph has skipped over errors while syncing.\n """\n subgraphError: _SubgraphErrorPolicy_! = deny\n ): [ERC721Token!]! @resolver(subgraph: "nft", operation: "query erc721Tokens($skip: Int, $first: Int = 100, $orderBy: ERC721Token_orderBy, $orderDirection: OrderDirection, $where: ERC721Token_filter, $block: Block_height, $subgraphError: _SubgraphErrorPolicy_! = \\"deny\\") { erc721Tokens(skip: $skip, first: $first, orderBy: $orderBy, orderDirection: $orderDirection, where: $where, block: $block, subgraphError: $subgraphError) }") @source(subgraph: "nft", name: "erc721Tokens", type: "[ERC721Token!]!")\n erc721Operator(\n id: ID!\n """\n The block at which the query should be executed. Can either be a `{ hash: Bytes }` value containing a block hash, a `{ number: Int }` containing the block number, or a `{ number_gte: Int }` containing the minimum block number. In the case of `number_gte`, the query will be executed on the latest block only if the subgraph has progressed to or past the minimum block number. Defaults to the latest block when omitted.\n """\n block: Block_height\n """\n Set to `allow` to receive data even if the subgraph has skipped over errors while syncing.\n """\n subgraphError: _SubgraphErrorPolicy_! = deny\n ): ERC721Operator @resolver(subgraph: "nft", operation: "query erc721Operator($id: ID!, $block: Block_height, $subgraphError: _SubgraphErrorPolicy_! = \\"deny\\") { erc721Operator(id: $id, block: $block, subgraphError: $subgraphError) }") @source(subgraph: "nft", name: "erc721Operator", type: "ERC721Operator")\n erc721Operators(\n skip: Int = 0\n first: Int = 100\n orderBy: ERC721Operator_orderBy\n orderDirection: OrderDirection\n where: ERC721Operator_filter\n """\n The block at which the query should be executed. Can either be a `{ hash: Bytes }` value containing a block hash, a `{ number: Int }` containing the block number, or a `{ number_gte: Int }` containing the minimum block number. In the case of `number_gte`, the query will be executed on the latest block only if the subgraph has progressed to or past the minimum block number. Defaults to the latest block when omitted.\n """\n block: Block_height\n """\n Set to `allow` to receive data even if the subgraph has skipped over errors while syncing.\n """\n subgraphError: _SubgraphErrorPolicy_! = deny\n ): [ERC721Operator!]! @resolver(subgraph: "nft", operation: "query erc721Operators($skip: Int, $first: Int = 100, $orderBy: ERC721Operator_orderBy, $orderDirection: OrderDirection, $where: ERC721Operator_filter, $block: Block_height, $subgraphError: _SubgraphErrorPolicy_! = \\"deny\\") { erc721Operators(skip: $skip, first: $first, orderBy: $orderBy, orderDirection: $orderDirection, where: $where, block: $block, subgraphError: $subgraphError) }") @source(subgraph: "nft", name: "erc721Operators", type: "[ERC721Operator!]!")\n erc721Transfer(\n id: ID!\n """\n The block at which the query should be executed. Can either be a `{ hash: Bytes }` value containing a block hash, a `{ number: Int }` containing the block number, or a `{ number_gte: Int }` containing the minimum block number. In the case of `number_gte`, the query will be executed on the latest block only if the subgraph has progressed to or past the minimum block number. Defaults to the latest block when omitted.\n """\n block: Block_height\n """\n Set to `allow` to receive data even if the subgraph has skipped over errors while syncing.\n """\n subgraphError: _SubgraphErrorPolicy_! = deny\n ): ERC721Transfer @resolver(subgraph: "nft", operation: "query erc721Transfer($id: ID!, $block: Block_height, $subgraphError: _SubgraphErrorPolicy_! = \\"deny\\") { erc721Transfer(id: $id, block: $block, subgraphError: $subgraphError) }") @source(subgraph: "nft", name: "erc721Transfer", type: "ERC721Transfer")\n erc721Transfers(\n skip: Int = 0\n first: Int = 100\n orderBy: ERC721Transfer_orderBy\n orderDirection: OrderDirection\n where: ERC721Transfer_filter\n """\n The block at which the query should be executed. Can either be a `{ hash: Bytes }` value containing a block hash, a `{ number: Int }` containing the block number, or a `{ number_gte: Int }` containing the minimum block number. In the case of `number_gte`, the query will be executed on the latest block only if the subgraph has progressed to or past the minimum block number. Defaults to the latest block when omitted.\n """\n block: Block_height\n """\n Set to `allow` to receive data even if the subgraph has skipped over errors while syncing.\n """\n subgraphError: _SubgraphErrorPolicy_! = deny\n ): [ERC721Transfer!]! @resolver(subgraph: "nft", operation: "query erc721Transfers($skip: Int, $first: Int = 100, $orderBy: ERC721Transfer_orderBy, $orderDirection: OrderDirection, $where: ERC721Transfer_filter, $block: Block_height, $subgraphError: _SubgraphErrorPolicy_! = \\"deny\\") { erc721Transfers(skip: $skip, first: $first, orderBy: $orderBy, orderDirection: $orderDirection, where: $where, block: $block, subgraphError: $subgraphError) }") @source(subgraph: "nft", name: "erc721Transfers", type: "[ERC721Transfer!]!")\n transaction(\n id: ID!\n """\n The block at which the query should be executed. Can either be a `{ hash: Bytes }` value containing a block hash, a `{ number: Int }` containing the block number, or a `{ number_gte: Int }` containing the minimum block number. In the case of `number_gte`, the query will be executed on the latest block only if the subgraph has progressed to or past the minimum block number. Defaults to the latest block when omitted.\n """\n block: Block_height\n """\n Set to `allow` to receive data even if the subgraph has skipped over errors while syncing.\n """\n subgraphError: _SubgraphErrorPolicy_! = deny\n ): Transaction @resolver(subgraph: "nft", operation: "query transaction($id: ID!, $block: Block_height, $subgraphError: _SubgraphErrorPolicy_! = \\"deny\\") { transaction(id: $id, block: $block, subgraphError: $subgraphError) }") @resolver(subgraph: "uniswap", operation: "query transaction($id: ID!, $block: Block_height, $subgraphError: _SubgraphErrorPolicy_! = \\"deny\\") { transaction(id: $id, block: $block, subgraphError: $subgraphError) }") @source(subgraph: "nft", name: "transaction", type: "Transaction") @source(subgraph: "uniswap", name: "transaction", type: "Transaction")\n transactions(\n skip: Int = 0\n first: Int = 100\n orderBy: Transaction_orderBy\n orderDirection: OrderDirection\n where: Transaction_filter\n """\n The block at which the query should be executed. Can either be a `{ hash: Bytes }` value containing a block hash, a `{ number: Int }` containing the block number, or a `{ number_gte: Int }` containing the minimum block number. In the case of `number_gte`, the query will be executed on the latest block only if the subgraph has progressed to or past the minimum block number. Defaults to the latest block when omitted.\n """\n block: Block_height\n """\n Set to `allow` to receive data even if the subgraph has skipped over errors while syncing.\n """\n subgraphError: _SubgraphErrorPolicy_! = deny\n ): [Transaction!]! @resolver(subgraph: "nft", operation: "query transactions($skip: Int, $first: Int = 100, $orderBy: Transaction_orderBy, $orderDirection: OrderDirection, $where: Transaction_filter, $block: Block_height, $subgraphError: _SubgraphErrorPolicy_! = \\"deny\\") { transactions(skip: $skip, first: $first, orderBy: $orderBy, orderDirection: $orderDirection, where: $where, block: $block, subgraphError: $subgraphError) }") @resolver(subgraph: "uniswap", operation: "query transactions($skip: Int, $first: Int = 100, $orderBy: Transaction_orderBy, $orderDirection: OrderDirection, $where: Transaction_filter, $block: Block_height, $subgraphError: _SubgraphErrorPolicy_! = \\"deny\\") { transactions(skip: $skip, first: $first, orderBy: $orderBy, orderDirection: $orderDirection, where: $where, block: $block, subgraphError: $subgraphError) }") @source(subgraph: "nft", name: "transactions", type: "[Transaction!]!") @source(subgraph: "uniswap", name: "transactions", type: "[Transaction!]!")\n event(\n id: ID!\n """\n The block at which the query should be executed. Can either be a `{ hash: Bytes }` value containing a block hash, a `{ number: Int }` containing the block number, or a `{ number_gte: Int }` containing the minimum block number. In the case of `number_gte`, the query will be executed on the latest block only if the subgraph has progressed to or past the minimum block number. Defaults to the latest block when omitted.\n """\n block: Block_height\n """\n Set to `allow` to receive data even if the subgraph has skipped over errors while syncing.\n """\n subgraphError: _SubgraphErrorPolicy_! = deny\n ): Event @resolver(subgraph: "nft", operation: "query event($id: ID!, $block: Block_height, $subgraphError: _SubgraphErrorPolicy_! = \\"deny\\") { event(id: $id, block: $block, subgraphError: $subgraphError) }") @source(subgraph: "nft", name: "event", type: "Event")\n events(\n skip: Int = 0\n first: Int = 100\n orderBy: Event_orderBy\n orderDirection: OrderDirection\n where: Event_filter\n """\n The block at which the query should be executed. Can either be a `{ hash: Bytes }` value containing a block hash, a `{ number: Int }` containing the block number, or a `{ number_gte: Int }` containing the minimum block number. In the case of `number_gte`, the query will be executed on the latest block only if the subgraph has progressed to or past the minimum block number. Defaults to the latest block when omitted.\n """\n block: Block_height\n """\n Set to `allow` to receive data even if the subgraph has skipped over errors while syncing.\n """\n subgraphError: _SubgraphErrorPolicy_! = deny\n ): [Event!]! @resolver(subgraph: "nft", operation: "query events($skip: Int, $first: Int = 100, $orderBy: Event_orderBy, $orderDirection: OrderDirection, $where: Event_filter, $block: Block_height, $subgraphError: _SubgraphErrorPolicy_! = \\"deny\\") { events(skip: $skip, first: $first, orderBy: $orderBy, orderDirection: $orderDirection, where: $where, block: $block, subgraphError: $subgraphError) }") @source(subgraph: "nft", name: "events", type: "[Event!]!")\n """Access to subgraph metadata"""\n _meta(block: Block_height): _Meta_ @resolver(subgraph: "nft", operation: "query _meta($block: Block_height) { _meta(block: $block) }") @resolver(subgraph: "uniswap", operation: "query _meta($block: Block_height) { _meta(block: $block) }") @source(subgraph: "nft", name: "_meta", type: "_Meta_") @source(subgraph: "uniswap", name: "_meta", type: "_Meta_")\n uniswapFactory(\n id: ID!\n """\n The block at which the query should be executed. Can either be a `{ hash: Bytes }` value containing a block hash, a `{ number: Int }` containing the block number, or a `{ number_gte: Int }` containing the minimum block number. In the case of `number_gte`, the query will be executed on the latest block only if the subgraph has progressed to or past the minimum block number. Defaults to the latest block when omitted.\n """\n block: Block_height\n """\n Set to `allow` to receive data even if the subgraph has skipped over errors while syncing.\n """\n subgraphError: _SubgraphErrorPolicy_! = deny\n ): UniswapFactory @resolver(subgraph: "uniswap", operation: "query uniswapFactory($id: ID!, $block: Block_height, $subgraphError: _SubgraphErrorPolicy_! = \\"deny\\") { uniswapFactory(id: $id, block: $block, subgraphError: $subgraphError) }") @source(subgraph: "uniswap", name: "uniswapFactory", type: "UniswapFactory")\n uniswapFactories(\n skip: Int = 0\n first: Int = 100\n orderBy: UniswapFactory_orderBy\n orderDirection: OrderDirection\n where: UniswapFactory_filter\n """\n The block at which the query should be executed. Can either be a `{ hash: Bytes }` value containing a block hash, a `{ number: Int }` containing the block number, or a `{ number_gte: Int }` containing the minimum block number. In the case of `number_gte`, the query will be executed on the latest block only if the subgraph has progressed to or past the minimum block number. Defaults to the latest block when omitted.\n """\n block: Block_height\n """\n Set to `allow` to receive data even if the subgraph has skipped over errors while syncing.\n """\n subgraphError: _SubgraphErrorPolicy_! = deny\n ): [UniswapFactory!]! @resolver(subgraph: "uniswap", operation: "query uniswapFactories($skip: Int, $first: Int = 100, $orderBy: UniswapFactory_orderBy, $orderDirection: OrderDirection, $where: UniswapFactory_filter, $block: Block_height, $subgraphError: _SubgraphErrorPolicy_! = \\"deny\\") { uniswapFactories(skip: $skip, first: $first, orderBy: $orderBy, orderDirection: $orderDirection, where: $where, block: $block, subgraphError: $subgraphError) }") @source(subgraph: "uniswap", name: "uniswapFactories", type: "[UniswapFactory!]!")\n token(\n id: ID!\n """\n The block at which the query should be executed. Can either be a `{ hash: Bytes }` value containing a block hash, a `{ number: Int }` containing the block number, or a `{ number_gte: Int }` containing the minimum block number. In the case of `number_gte`, the query will be executed on the latest block only if the subgraph has progressed to or past the minimum block number. Defaults to the latest block when omitted.\n """\n block: Block_height\n """\n Set to `allow` to receive data even if the subgraph has skipped over errors while syncing.\n """\n subgraphError: _SubgraphErrorPolicy_! = deny\n ): Token @resolver(subgraph: "uniswap", operation: "query token($id: ID!, $block: Block_height, $subgraphError: _SubgraphErrorPolicy_! = \\"deny\\") { token(id: $id, block: $block, subgraphError: $subgraphError) }") @source(subgraph: "uniswap", name: "token", type: "Token")\n tokens(\n skip: Int = 0\n first: Int = 100\n orderBy: Token_orderBy\n orderDirection: OrderDirection\n where: Token_filter\n """\n The block at which the query should be executed. Can either be a `{ hash: Bytes }` value containing a block hash, a `{ number: Int }` containing the block number, or a `{ number_gte: Int }` containing the minimum block number. In the case of `number_gte`, the query will be executed on the latest block only if the subgraph has progressed to or past the minimum block number. Defaults to the latest block when omitted.\n """\n block: Block_height\n """\n Set to `allow` to receive data even if the subgraph has skipped over errors while syncing.\n """\n subgraphError: _SubgraphErrorPolicy_! = deny\n ): [Token!]! @resolver(subgraph: "uniswap", operation: "query tokens($skip: Int, $first: Int = 100, $orderBy: Token_orderBy, $orderDirection: OrderDirection, $where: Token_filter, $block: Block_height, $subgraphError: _SubgraphErrorPolicy_! = \\"deny\\") { tokens(skip: $skip, first: $first, orderBy: $orderBy, orderDirection: $orderDirection, where: $where, block: $block, subgraphError: $subgraphError) }") @source(subgraph: "uniswap", name: "tokens", type: "[Token!]!")\n pair(\n id: ID!\n """\n The block at which the query should be executed. Can either be a `{ hash: Bytes }` value containing a block hash, a `{ number: Int }` containing the block number, or a `{ number_gte: Int }` containing the minimum block number. In the case of `number_gte`, the query will be executed on the latest block only if the subgraph has progressed to or past the minimum block number. Defaults to the latest block when omitted.\n """\n block: Block_height\n """\n Set to `allow` to receive data even if the subgraph has skipped over errors while syncing.\n """\n subgraphError: _SubgraphErrorPolicy_! = deny\n ): Pair @resolver(subgraph: "uniswap", operation: "query pair($id: ID!, $block: Block_height, $subgraphError: _SubgraphErrorPolicy_! = \\"deny\\") { pair(id: $id, block: $block, subgraphError: $subgraphError) }") @source(subgraph: "uniswap", name: "pair", type: "Pair")\n pairs(\n skip: Int = 0\n first: Int = 100\n orderBy: Pair_orderBy\n orderDirection: OrderDirection\n where: Pair_filter\n """\n The block at which the query should be executed. Can either be a `{ hash: Bytes }` value containing a block hash, a `{ number: Int }` containing the block number, or a `{ number_gte: Int }` containing the minimum block number. In the case of `number_gte`, the query will be executed on the latest block only if the subgraph has progressed to or past the minimum block number. Defaults to the latest block when omitted.\n """\n block: Block_height\n """\n Set to `allow` to receive data even if the subgraph has skipped over errors while syncing.\n """\n subgraphError: _SubgraphErrorPolicy_! = deny\n ): [Pair!]! @resolver(subgraph: "uniswap", operation: "query pairs($skip: Int, $first: Int = 100, $orderBy: Pair_orderBy, $orderDirection: OrderDirection, $where: Pair_filter, $block: Block_height, $subgraphError: _SubgraphErrorPolicy_! = \\"deny\\") { pairs(skip: $skip, first: $first, orderBy: $orderBy, orderDirection: $orderDirection, where: $where, block: $block, subgraphError: $subgraphError) }") @source(subgraph: "uniswap", name: "pairs", type: "[Pair!]!")\n user(\n id: ID!\n """\n The block at which the query should be executed. Can either be a `{ hash: Bytes }` value containing a block hash, a `{ number: Int }` containing the block number, or a `{ number_gte: Int }` containing the minimum block number. In the case of `number_gte`, the query will be executed on the latest block only if the subgraph has progressed to or past the minimum block number. Defaults to the latest block when omitted.\n """\n block: Block_height\n """\n Set to `allow` to receive data even if the subgraph has skipped over errors while syncing.\n """\n subgraphError: _SubgraphErrorPolicy_! = deny\n ): User @resolver(subgraph: "uniswap", operation: "query user($id: ID!, $block: Block_height, $subgraphError: _SubgraphErrorPolicy_! = \\"deny\\") { user(id: $id, block: $block, subgraphError: $subgraphError) }") @source(subgraph: "uniswap", name: "user", type: "User")\n users(\n skip: Int = 0\n first: Int = 100\n orderBy: User_orderBy\n orderDirection: OrderDirection\n where: User_filter\n """\n The block at which the query should be executed. Can either be a `{ hash: Bytes }` value containing a block hash, a `{ number: Int }` containing the block number, or a `{ number_gte: Int }` containing the minimum block number. In the case of `number_gte`, the query will be executed on the latest block only if the subgraph has progressed to or past the minimum block number. Defaults to the latest block when omitted.\n """\n block: Block_height\n """\n Set to `allow` to receive data even if the subgraph has skipped over errors while syncing.\n """\n subgraphError: _SubgraphErrorPolicy_! = deny\n ): [User!]! @resolver(subgraph: "uniswap", operation: "query users($skip: Int, $first: Int = 100, $orderBy: User_orderBy, $orderDirection: OrderDirection, $where: User_filter, $block: Block_height, $subgraphError: _SubgraphErrorPolicy_! = \\"deny\\") { users(skip: $skip, first: $first, orderBy: $orderBy, orderDirection: $orderDirection, where: $where, block: $block, subgraphError: $subgraphError) }") @source(subgraph: "uniswap", name: "users", type: "[User!]!")\n liquidityPosition(\n id: ID!\n """\n The block at which the query should be executed. Can either be a `{ hash: Bytes }` value containing a block hash, a `{ number: Int }` containing the block number, or a `{ number_gte: Int }` containing the minimum block number. In the case of `number_gte`, the query will be executed on the latest block only if the subgraph has progressed to or past the minimum block number. Defaults to the latest block when omitted.\n """\n block: Block_height\n """\n Set to `allow` to receive data even if the subgraph has skipped over errors while syncing.\n """\n subgraphError: _SubgraphErrorPolicy_! = deny\n ): LiquidityPosition @resolver(subgraph: "uniswap", operation: "query liquidityPosition($id: ID!, $block: Block_height, $subgraphError: _SubgraphErrorPolicy_! = \\"deny\\") { liquidityPosition(id: $id, block: $block, subgraphError: $subgraphError) }") @source(subgraph: "uniswap", name: "liquidityPosition", type: "LiquidityPosition")\n liquidityPositions(\n skip: Int = 0\n first: Int = 100\n orderBy: LiquidityPosition_orderBy\n orderDirection: OrderDirection\n where: LiquidityPosition_filter\n """\n The block at which the query should be executed. Can either be a `{ hash: Bytes }` value containing a block hash, a `{ number: Int }` containing the block number, or a `{ number_gte: Int }` containing the minimum block number. In the case of `number_gte`, the query will be executed on the latest block only if the subgraph has progressed to or past the minimum block number. Defaults to the latest block when omitted.\n """\n block: Block_height\n """\n Set to `allow` to receive data even if the subgraph has skipped over errors while syncing.\n """\n subgraphError: _SubgraphErrorPolicy_! = deny\n ): [LiquidityPosition!]! @resolver(subgraph: "uniswap", operation: "query liquidityPositions($skip: Int, $first: Int = 100, $orderBy: LiquidityPosition_orderBy, $orderDirection: OrderDirection, $where: LiquidityPosition_filter, $block: Block_height, $subgraphError: _SubgraphErrorPolicy_! = \\"deny\\") { liquidityPositions(skip: $skip, first: $first, orderBy: $orderBy, orderDirection: $orderDirection, where: $where, block: $block, subgraphError: $subgraphError) }") @source(subgraph: "uniswap", name: "liquidityPositions", type: "[LiquidityPosition!]!")\n liquidityPositionSnapshot(\n id: ID!\n """\n The block at which the query should be executed. Can either be a `{ hash: Bytes }` value containing a block hash, a `{ number: Int }` containing the block number, or a `{ number_gte: Int }` containing the minimum block number. In the case of `number_gte`, the query will be executed on the latest block only if the subgraph has progressed to or past the minimum block number. Defaults to the latest block when omitted.\n """\n block: Block_height\n """\n Set to `allow` to receive data even if the subgraph has skipped over errors while syncing.\n """\n subgraphError: _SubgraphErrorPolicy_! = deny\n ): LiquidityPositionSnapshot @resolver(subgraph: "uniswap", operation: "query liquidityPositionSnapshot($id: ID!, $block: Block_height, $subgraphError: _SubgraphErrorPolicy_! = \\"deny\\") { liquidityPositionSnapshot(id: $id, block: $block, subgraphError: $subgraphError) }") @source(subgraph: "uniswap", name: "liquidityPositionSnapshot", type: "LiquidityPositionSnapshot")\n liquidityPositionSnapshots(\n skip: Int = 0\n first: Int = 100\n orderBy: LiquidityPositionSnapshot_orderBy\n orderDirection: OrderDirection\n where: LiquidityPositionSnapshot_filter\n """\n The block at which the query should be executed. Can either be a `{ hash: Bytes }` value containing a block hash, a `{ number: Int }` containing the block number, or a `{ number_gte: Int }` containing the minimum block number. In the case of `number_gte`, the query will be executed on the latest block only if the subgraph has progressed to or past the minimum block number. Defaults to the latest block when omitted.\n """\n block: Block_height\n """\n Set to `allow` to receive data even if the subgraph has skipped over errors while syncing.\n """\n subgraphError: _SubgraphErrorPolicy_! = deny\n ): [LiquidityPositionSnapshot!]! @resolver(subgraph: "uniswap", operation: "query liquidityPositionSnapshots($skip: Int, $first: Int = 100, $orderBy: LiquidityPositionSnapshot_orderBy, $orderDirection: OrderDirection, $where: LiquidityPositionSnapshot_filter, $block: Block_height, $subgraphError: _SubgraphErrorPolicy_! = \\"deny\\") { liquidityPositionSnapshots(skip: $skip, first: $first, orderBy: $orderBy, orderDirection: $orderDirection, where: $where, block: $block, subgraphError: $subgraphError) }") @source(subgraph: "uniswap", name: "liquidityPositionSnapshots", type: "[LiquidityPositionSnapshot!]!")\n mint(\n id: ID!\n """\n The block at which the query should be executed. Can either be a `{ hash: Bytes }` value containing a block hash, a `{ number: Int }` containing the block number, or a `{ number_gte: Int }` containing the minimum block number. In the case of `number_gte`, the query will be executed on the latest block only if the subgraph has progressed to or past the minimum block number. Defaults to the latest block when omitted.\n """\n block: Block_height\n """\n Set to `allow` to receive data even if the subgraph has skipped over errors while syncing.\n """\n subgraphError: _SubgraphErrorPolicy_! = deny\n ): Mint @resolver(subgraph: "uniswap", operation: "query mint($id: ID!, $block: Block_height, $subgraphError: _SubgraphErrorPolicy_! = \\"deny\\") { mint(id: $id, block: $block, subgraphError: $subgraphError) }") @source(subgraph: "uniswap", name: "mint", type: "Mint")\n mints(\n skip: Int = 0\n first: Int = 100\n orderBy: Mint_orderBy\n orderDirection: OrderDirection\n where: Mint_filter\n """\n The block at which the query should be executed. Can either be a `{ hash: Bytes }` value containing a block hash, a `{ number: Int }` containing the block number, or a `{ number_gte: Int }` containing the minimum block number. In the case of `number_gte`, the query will be executed on the latest block only if the subgraph has progressed to or past the minimum block number. Defaults to the latest block when omitted.\n """\n block: Block_height\n """\n Set to `allow` to receive data even if the subgraph has skipped over errors while syncing.\n """\n subgraphError: _SubgraphErrorPolicy_! = deny\n ): [Mint!]! @resolver(subgraph: "uniswap", operation: "query mints($skip: Int, $first: Int = 100, $orderBy: Mint_orderBy, $orderDirection: OrderDirection, $where: Mint_filter, $block: Block_height, $subgraphError: _SubgraphErrorPolicy_! = \\"deny\\") { mints(skip: $skip, first: $first, orderBy: $orderBy, orderDirection: $orderDirection, where: $where, block: $block, subgraphError: $subgraphError) }") @source(subgraph: "uniswap", name: "mints", type: "[Mint!]!")\n burn(\n id: ID!\n """\n The block at which the query should be executed. Can either be a `{ hash: Bytes }` value containing a block hash, a `{ number: Int }` containing the block number, or a `{ number_gte: Int }` containing the minimum block number. In the case of `number_gte`, the query will be executed on the latest block only if the subgraph has progressed to or past the minimum block number. Defaults to the latest block when omitted.\n """\n block: Block_height\n """\n Set to `allow` to receive data even if the subgraph has skipped over errors while syncing.\n """\n subgraphError: _SubgraphErrorPolicy_! = deny\n ): Burn @resolver(subgraph: "uniswap", operation: "query burn($id: ID!, $block: Block_height, $subgraphError: _SubgraphErrorPolicy_! = \\"deny\\") { burn(id: $id, block: $block, subgraphError: $subgraphError) }") @source(subgraph: "uniswap", name: "burn", type: "Burn")\n burns(\n skip: Int = 0\n first: Int = 100\n orderBy: Burn_orderBy\n orderDirection: OrderDirection\n where: Burn_filter\n """\n The block at which the query should be executed. Can either be a `{ hash: Bytes }` value containing a block hash, a `{ number: Int }` containing the block number, or a `{ number_gte: Int }` containing the minimum block number. In the case of `number_gte`, the query will be executed on the latest block only if the subgraph has progressed to or past the minimum block number. Defaults to the latest block when omitted.\n """\n block: Block_height\n """\n Set to `allow` to receive data even if the subgraph has skipped over errors while syncing.\n """\n subgraphError: _SubgraphErrorPolicy_! = deny\n ): [Burn!]! @resolver(subgraph: "uniswap", operation: "query burns($skip: Int, $first: Int = 100, $orderBy: Burn_orderBy, $orderDirection: OrderDirection, $where: Burn_filter, $block: Block_height, $subgraphError: _SubgraphErrorPolicy_! = \\"deny\\") { burns(skip: $skip, first: $first, orderBy: $orderBy, orderDirection: $orderDirection, where: $where, block: $block, subgraphError: $subgraphError) }") @source(subgraph: "uniswap", name: "burns", type: "[Burn!]!")\n swap(\n id: ID!\n """\n The block at which the query should be executed. Can either be a `{ hash: Bytes }` value containing a block hash, a `{ number: Int }` containing the block number, or a `{ number_gte: Int }` containing the minimum block number. In the case of `number_gte`, the query will be executed on the latest block only if the subgraph has progressed to or past the minimum block number. Defaults to the latest block when omitted.\n """\n block: Block_height\n """\n Set to `allow` to receive data even if the subgraph has skipped over errors while syncing.\n """\n subgraphError: _SubgraphErrorPolicy_! = deny\n ): Swap @resolver(subgraph: "uniswap", operation: "query swap($id: ID!, $block: Block_height, $subgraphError: _SubgraphErrorPolicy_! = \\"deny\\") { swap(id: $id, block: $block, subgraphError: $subgraphError) }") @source(subgraph: "uniswap", name: "swap", type: "Swap")\n swaps(\n skip: Int = 0\n first: Int = 100\n orderBy: Swap_orderBy\n orderDirection: OrderDirection\n where: Swap_filter\n """\n The block at which the query should be executed. Can either be a `{ hash: Bytes }` value containing a block hash, a `{ number: Int }` containing the block number, or a `{ number_gte: Int }` containing the minimum block number. In the case of `number_gte`, the query will be executed on the latest block only if the subgraph has progressed to or past the minimum block number. Defaults to the latest block when omitted.\n """\n block: Block_height\n """\n Set to `allow` to receive data even if the subgraph has skipped over errors while syncing.\n """\n subgraphError: _SubgraphErrorPolicy_! = deny\n ): [Swap!]! @resolver(subgraph: "uniswap", operation: "query swaps($skip: Int, $first: Int = 100, $orderBy: Swap_orderBy, $orderDirection: OrderDirection, $where: Swap_filter, $block: Block_height, $subgraphError: _SubgraphErrorPolicy_! = \\"deny\\") { swaps(skip: $skip, first: $first, orderBy: $orderBy, orderDirection: $orderDirection, where: $where, block: $block, subgraphError: $subgraphError) }") @source(subgraph: "uniswap", name: "swaps", type: "[Swap!]!")\n bundle(\n id: ID!\n """\n The block at which the query should be executed. Can either be a `{ hash: Bytes }` value containing a block hash, a `{ number: Int }` containing the block number, or a `{ number_gte: Int }` containing the minimum block number. In the case of `number_gte`, the query will be executed on the latest block only if the subgraph has progressed to or past the minimum block number. Defaults to the latest block when omitted.\n """\n block: Block_height\n """\n Set to `allow` to receive data even if the subgraph has skipped over errors while syncing.\n """\n subgraphError: _SubgraphErrorPolicy_! = deny\n ): Bundle @resolver(subgraph: "uniswap", operation: "query bundle($id: ID!, $block: Block_height, $subgraphError: _SubgraphErrorPolicy_! = \\"deny\\") { bundle(id: $id, block: $block, subgraphError: $subgraphError) }") @source(subgraph: "uniswap", name: "bundle", type: "Bundle")\n bundles(\n skip: Int = 0\n first: Int = 100\n orderBy: Bundle_orderBy\n orderDirection: OrderDirection\n where: Bundle_filter\n """\n The block at which the query should be executed. Can either be a `{ hash: Bytes }` value containing a block hash, a `{ number: Int }` containing the block number, or a `{ number_gte: Int }` containing the minimum block number. In the case of `number_gte`, the query will be executed on the latest block only if the subgraph has progressed to or past the minimum block number. Defaults to the latest block when omitted.\n """\n block: Block_height\n """\n Set to `allow` to receive data even if the subgraph has skipped over errors while syncing.\n """\n subgraphError: _SubgraphErrorPolicy_! = deny\n ): [Bundle!]! @resolver(subgraph: "uniswap", operation: "query bundles($skip: Int, $first: Int = 100, $orderBy: Bundle_orderBy, $orderDirection: OrderDirection, $where: Bundle_filter, $block: Block_height, $subgraphError: _SubgraphErrorPolicy_! = \\"deny\\") { bundles(skip: $skip, first: $first, orderBy: $orderBy, orderDirection: $orderDirection, where: $where, block: $block, subgraphError: $subgraphError) }") @source(subgraph: "uniswap", name: "bundles", type: "[Bundle!]!")\n uniswapDayData(\n id: ID!\n """\n The block at which the query should be executed. Can either be a `{ hash: Bytes }` value containing a block hash, a `{ number: Int }` containing the block number, or a `{ number_gte: Int }` containing the minimum block number. In the case of `number_gte`, the query will be executed on the latest block only if the subgraph has progressed to or past the minimum block number. Defaults to the latest block when omitted.\n """\n block: Block_height\n """\n Set to `allow` to receive data even if the subgraph has skipped over errors while syncing.\n """\n subgraphError: _SubgraphErrorPolicy_! = deny\n ): UniswapDayData @resolver(subgraph: "uniswap", operation: "query uniswapDayData($id: ID!, $block: Block_height, $subgraphError: _SubgraphErrorPolicy_! = \\"deny\\") { uniswapDayData(id: $id, block: $block, subgraphError: $subgraphError) }") @source(subgraph: "uniswap", name: "uniswapDayData", type: "UniswapDayData")\n uniswapDayDatas(\n skip: Int = 0\n first: Int = 100\n orderBy: UniswapDayData_orderBy\n orderDirection: OrderDirection\n where: UniswapDayData_filter\n """\n The block at which the query should be executed. Can either be a `{ hash: Bytes }` value containing a block hash, a `{ number: Int }` containing the block number, or a `{ number_gte: Int }` containing the minimum block number. In the case of `number_gte`, the query will be executed on the latest block only if the subgraph has progressed to or past the minimum block number. Defaults to the latest block when omitted.\n """\n block: Block_height\n """\n Set to `allow` to receive data even if the subgraph has skipped over errors while syncing.\n """\n subgraphError: _SubgraphErrorPolicy_! = deny\n ): [UniswapDayData!]! @resolver(subgraph: "uniswap", operation: "query uniswapDayDatas($skip: Int, $first: Int = 100, $orderBy: UniswapDayData_orderBy, $orderDirection: OrderDirection, $where: UniswapDayData_filter, $block: Block_height, $subgraphError: _SubgraphErrorPolicy_! = \\"deny\\") { uniswapDayDatas(skip: $skip, first: $first, orderBy: $orderBy, orderDirection: $orderDirection, where: $where, block: $block, subgraphError: $subgraphError) }") @source(subgraph: "uniswap", name: "uniswapDayDatas", type: "[UniswapDayData!]!")\n pairHourData(\n id: ID!\n """\n The block at which the query should be executed. Can either be a `{ hash: Bytes }` value containing a block hash, a `{ number: Int }` containing the block number, or a `{ number_gte: Int }` containing the minimum block number. In the case of `number_gte`, the query will be executed on the latest block only if the subgraph has progressed to or past the minimum block number. Defaults to the latest block when omitted.\n """\n block: Block_height\n """\n Set to `allow` to receive data even if the subgraph has skipped over errors while syncing.\n """\n subgraphError: _SubgraphErrorPolicy_! = deny\n ): PairHourData @resolver(subgraph: "uniswap", operation: "query pairHourData($id: ID!, $block: Block_height, $subgraphError: _SubgraphErrorPolicy_! = \\"deny\\") { pairHourData(id: $id, block: $block, subgraphError: $subgraphError) }") @source(subgraph: "uniswap", name: "pairHourData", type: "PairHourData")\n pairHourDatas(\n skip: Int = 0\n first: Int = 100\n orderBy: PairHourData_orderBy\n orderDirection: OrderDirection\n where: PairHourData_filter\n """\n The block at which the query should be executed. Can either be a `{ hash: Bytes }` value containing a block hash, a `{ number: Int }` containing the block number, or a `{ number_gte: Int }` containing the minimum block number. In the case of `number_gte`, the query will be executed on the latest block only if the subgraph has progressed to or past the minimum block number. Defaults to the latest block when omitted.\n """\n block: Block_height\n """\n Set to `allow` to receive data even if the subgraph has skipped over errors while syncing.\n """\n subgraphError: _SubgraphErrorPolicy_! = deny\n ): [PairHourData!]! @resolver(subgraph: "uniswap", operation: "query pairHourDatas($skip: Int, $first: Int = 100, $orderBy: PairHourData_orderBy, $orderDirection: OrderDirection, $where: PairHourData_filter, $block: Block_height, $subgraphError: _SubgraphErrorPolicy_! = \\"deny\\") { pairHourDatas(skip: $skip, first: $first, orderBy: $orderBy, orderDirection: $orderDirection, where: $where, block: $block, subgraphError: $subgraphError) }") @source(subgraph: "uniswap", name: "pairHourDatas", type: "[PairHourData!]!")\n pairDayData(\n id: ID!\n """\n The block at which the query should be executed. Can either be a `{ hash: Bytes }` value containing a block hash, a `{ number: Int }` containing the block number, or a `{ number_gte: Int }` containing the minimum block number. In the case of `number_gte`, the query will be executed on the latest block only if the subgraph has progressed to or past the minimum block number. Defaults to the latest block when omitted.\n """\n block: Block_height\n """\n Set to `allow` to receive data even if the subgraph has skipped over errors while syncing.\n """\n subgraphError: _SubgraphErrorPolicy_! = deny\n ): PairDayData @resolver(subgraph: "uniswap", operation: "query pairDayData($id: ID!, $block: Block_height, $subgraphError: _SubgraphErrorPolicy_! = \\"deny\\") { pairDayData(id: $id, block: $block, subgraphError: $subgraphError) }") @source(subgraph: "uniswap", name: "pairDayData", type: "PairDayData")\n pairDayDatas(\n skip: Int = 0\n first: Int = 100\n orderBy: PairDayData_orderBy\n orderDirection: OrderDirection\n where: PairDayData_filter\n """\n The block at which the query should be executed. Can either be a `{ hash: Bytes }` value containing a block hash, a `{ number: Int }` containing the block number, or a `{ number_gte: Int }` containing the minimum block number. In the case of `number_gte`, the query will be executed on the latest block only if the subgraph has progressed to or past the minimum block number. Defaults to the latest block when omitted.\n """\n block: Block_height\n """\n Set to `allow` to receive data even if the subgraph has skipped over errors while syncing.\n """\n subgraphError: _SubgraphErrorPolicy_! = deny\n ): [PairDayData!]! @resolver(subgraph: "uniswap", operation: "query pairDayDatas($skip: Int, $first: Int = 100, $orderBy: PairDayData_orderBy, $orderDirection: OrderDirection, $where: PairDayData_filter, $block: Block_height, $subgraphError: _SubgraphErrorPolicy_! = \\"deny\\") { pairDayDatas(skip: $skip, first: $first, orderBy: $orderBy, orderDirection: $orderDirection, where: $where, block: $block, subgraphError: $subgraphError) }") @source(subgraph: "uniswap", name: "pairDayDatas", type: "[PairDayData!]!")\n tokenDayData(\n id: ID!\n """\n The block at which the query should be executed. Can either be a `{ hash: Bytes }` value containing a block hash, a `{ number: Int }` containing the block number, or a `{ number_gte: Int }` containing the minimum block number. In the case of `number_gte`, the query will be executed on the latest block only if the subgraph has progressed to or past the minimum block number. Defaults to the latest block when omitted.\n """\n block: Block_height\n """\n Set to `allow` to receive data even if the subgraph has skipped over errors while syncing.\n """\n subgraphError: _SubgraphErrorPolicy_! = deny\n ): TokenDayData @resolver(subgraph: "uniswap", operation: "query tokenDayData($id: ID!, $block: Block_height, $subgraphError: _SubgraphErrorPolicy_! = \\"deny\\") { tokenDayData(id: $id, block: $block, subgraphError: $subgraphError) }") @source(subgraph: "uniswap", name: "tokenDayData", type: "TokenDayData")\n tokenDayDatas(\n skip: Int = 0\n first: Int = 100\n orderBy: TokenDayData_orderBy\n orderDirection: OrderDirection\n where: TokenDayData_filter\n """\n The block at which the query should be executed. Can either be a `{ hash: Bytes }` value containing a block hash, a `{ number: Int }` containing the block number, or a `{ number_gte: Int }` containing the minimum block number. In the case of `number_gte`, the query will be executed on the latest block only if the subgraph has progressed to or past the minimum block number. Defaults to the latest block when omitted.\n """\n block: Block_height\n """\n Set to `allow` to receive data even if the subgraph has skipped over errors while syncing.\n """\n subgraphError: _SubgraphErrorPolicy_! = deny\n ): [TokenDayData!]! @resolver(subgraph: "uniswap", operation: "query tokenDayDatas($skip: Int, $first: Int = 100, $orderBy: TokenDayData_orderBy, $orderDirection: OrderDirection, $where: TokenDayData_filter, $block: Block_height, $subgraphError: _SubgraphErrorPolicy_! = \\"deny\\") { tokenDayDatas(skip: $skip, first: $first, orderBy: $orderBy, orderDirection: $orderDirection, where: $where, block: $block, subgraphError: $subgraphError) }") @source(subgraph: "uniswap", name: "tokenDayDatas", type: "[TokenDayData!]!")\n}\n\ntype Subscription {\n account(\n id: ID!\n """\n The block at which the query should be executed. Can either be a `{ hash: Bytes }` value containing a block hash, a `{ number: Int }` containing the block number, or a `{ number_gte: Int }` containing the minimum block number. In the case of `number_gte`, the query will be executed on the latest block only if the subgraph has progressed to or past the minimum block number. Defaults to the latest block when omitted.\n """\n block: Block_height\n """\n Set to `allow` to receive data even if the subgraph has skipped over errors while syncing.\n """\n subgraphError: _SubgraphErrorPolicy_! = deny\n ): User @resolver(subgraph: "nft", operation: "subscription subscriptionaccount($id: ID!, $block: Block_height, $subgraphError: _SubgraphErrorPolicy_! = \\"deny\\") { account(id: $id, block: $block, subgraphError: $subgraphError) }") @source(subgraph: "nft", name: "account", type: "Account")\n accounts(\n skip: Int = 0\n first: Int = 100\n orderBy: Account_orderBy\n orderDirection: OrderDirection\n where: Account_filter\n """\n The block at which the query should be executed. Can either be a `{ hash: Bytes }` value containing a block hash, a `{ number: Int }` containing the block number, or a `{ number_gte: Int }` containing the minimum block number. In the case of `number_gte`, the query will be executed on the latest block only if the subgraph has progressed to or past the minimum block number. Defaults to the latest block when omitted.\n """\n block: Block_height\n """\n Set to `allow` to receive data even if the subgraph has skipped over errors while syncing.\n """\n subgraphError: _SubgraphErrorPolicy_! = deny\n ): [User!]! @resolver(subgraph: "nft", operation: "subscription subscriptionaccounts($skip: Int, $first: Int = 100, $orderBy: Account_orderBy, $orderDirection: OrderDirection, $where: Account_filter, $block: Block_height, $subgraphError: _SubgraphErrorPolicy_! = \\"deny\\") { accounts(skip: $skip, first: $first, orderBy: $orderBy, orderDirection: $orderDirection, where: $where, block: $block, subgraphError: $subgraphError) }") @source(subgraph: "nft", name: "accounts", type: "[Account!]!")\n erc721Contract(\n id: ID!\n """\n The block at which the query should be executed. Can either be a `{ hash: Bytes }` value containing a block hash, a `{ number: Int }` containing the block number, or a `{ number_gte: Int }` containing the minimum block number. In the case of `number_gte`, the query will be executed on the latest block only if the subgraph has progressed to or past the minimum block number. Defaults to the latest block when omitted.\n """\n block: Block_height\n """\n Set to `allow` to receive data even if the subgraph has skipped over errors while syncing.\n """\n subgraphError: _SubgraphErrorPolicy_! = deny\n ): ERC721Contract @resolver(subgraph: "nft", operation: "subscription subscriptionerc721Contract($id: ID!, $block: Block_height, $subgraphError: _SubgraphErrorPolicy_! = \\"deny\\") { erc721Contract(id: $id, block: $block, subgraphError: $subgraphError) }") @source(subgraph: "nft", name: "erc721Contract", type: "ERC721Contract")\n erc721Contracts(\n skip: Int = 0\n first: Int = 100\n orderBy: ERC721Contract_orderBy\n orderDirection: OrderDirection\n where: ERC721Contract_filter\n """\n The block at which the query should be executed. Can either be a `{ hash: Bytes }` value containing a block hash, a `{ number: Int }` containing the block number, or a `{ number_gte: Int }` containing the minimum block number. In the case of `number_gte`, the query will be executed on the latest block only if the subgraph has progressed to or past the minimum block number. Defaults to the latest block when omitted.\n """\n block: Block_height\n """\n Set to `allow` to receive data even if the subgraph has skipped over errors while syncing.\n """\n subgraphError: _SubgraphErrorPolicy_! = deny\n ): [ERC721Contract!]! @resolver(subgraph: "nft", operation: "subscription subscriptionerc721Contracts($skip: Int, $first: Int = 100, $orderBy: ERC721Contract_orderBy, $orderDirection: OrderDirection, $where: ERC721Contract_filter, $block: Block_height, $subgraphError: _SubgraphErrorPolicy_! = \\"deny\\") { erc721Contracts(skip: $skip, first: $first, orderBy: $orderBy, orderDirection: $orderDirection, where: $where, block: $block, subgraphError: $subgraphError) }") @source(subgraph: "nft", name: "erc721Contracts", type: "[ERC721Contract!]!")\n erc721Token(\n id: ID!\n """\n The block at which the query should be executed. Can either be a `{ hash: Bytes }` value containing a block hash, a `{ number: Int }` containing the block number, or a `{ number_gte: Int }` containing the minimum block number. In the case of `number_gte`, the query will be executed on the latest block only if the subgraph has progressed to or past the minimum block number. Defaults to the latest block when omitted.\n """\n block: Block_height\n """\n Set to `allow` to receive data even if the subgraph has skipped over errors while syncing.\n """\n subgraphError: _SubgraphErrorPolicy_! = deny\n ): ERC721Token @resolver(subgraph: "nft", operation: "subscription subscriptionerc721Token($id: ID!, $block: Block_height, $subgraphError: _SubgraphErrorPolicy_! = \\"deny\\") { erc721Token(id: $id, block: $block, subgraphError: $subgraphError) }") @source(subgraph: "nft", name: "erc721Token", type: "ERC721Token")\n erc721Tokens(\n skip: Int = 0\n first: Int = 100\n orderBy: ERC721Token_orderBy\n orderDirection: OrderDirection\n where: ERC721Token_filter\n """\n The block at which the query should be executed. Can either be a `{ hash: Bytes }` value containing a block hash, a `{ number: Int }` containing the block number, or a `{ number_gte: Int }` containing the minimum block number. In the case of `number_gte`, the query will be executed on the latest block only if the subgraph has progressed to or past the minimum block number. Defaults to the latest block when omitted.\n """\n block: Block_height\n """\n Set to `allow` to receive data even if the subgraph has skipped over errors while syncing.\n """\n subgraphError: _SubgraphErrorPolicy_! = deny\n ): [ERC721Token!]! @resolver(subgraph: "nft", operation: "subscription subscriptionerc721Tokens($skip: Int, $first: Int = 100, $orderBy: ERC721Token_orderBy, $orderDirection: OrderDirection, $where: ERC721Token_filter, $block: Block_height, $subgraphError: _SubgraphErrorPolicy_! = \\"deny\\") { erc721Tokens(skip: $skip, first: $first, orderBy: $orderBy, orderDirection: $orderDirection, where: $where, block: $block, subgraphError: $subgraphError) }") @source(subgraph: "nft", name: "erc721Tokens", type: "[ERC721Token!]!")\n erc721Operator(\n id: ID!\n """\n The block at which the query should be executed. Can either be a `{ hash: Bytes }` value containing a block hash, a `{ number: Int }` containing the block number, or a `{ number_gte: Int }` containing the minimum block number. In the case of `number_gte`, the query will be executed on the latest block only if the subgraph has progressed to or past the minimum block number. Defaults to the latest block when omitted.\n """\n block: Block_height\n """\n Set to `allow` to receive data even if the subgraph has skipped over errors while syncing.\n """\n subgraphError: _SubgraphErrorPolicy_! = deny\n ): ERC721Operator @resolver(subgraph: "nft", operation: "subscription subscriptionerc721Operator($id: ID!, $block: Block_height, $subgraphError: _SubgraphErrorPolicy_! = \\"deny\\") { erc721Operator(id: $id, block: $block, subgraphError: $subgraphError) }") @source(subgraph: "nft", name: "erc721Operator", type: "ERC721Operator")\n erc721Operators(\n skip: Int = 0\n first: Int = 100\n orderBy: ERC721Operator_orderBy\n orderDirection: OrderDirection\n where: ERC721Operator_filter\n """\n The block at which the query should be executed. Can either be a `{ hash: Bytes }` value containing a block hash, a `{ number: Int }` containing the block number, or a `{ number_gte: Int }` containing the minimum block number. In the case of `number_gte`, the query will be executed on the latest block only if the subgraph has progressed to or past the minimum block number. Defaults to the latest block when omitted.\n """\n block: Block_height\n """\n Set to `allow` to receive data even if the subgraph has skipped over errors while syncing.\n """\n subgraphError: _SubgraphErrorPolicy_! = deny\n ): [ERC721Operator!]! @resolver(subgraph: "nft", operation: "subscription subscriptionerc721Operators($skip: Int, $first: Int = 100, $orderBy: ERC721Operator_orderBy, $orderDirection: OrderDirection, $where: ERC721Operator_filter, $block: Block_height, $subgraphError: _SubgraphErrorPolicy_! = \\"deny\\") { erc721Operators(skip: $skip, first: $first, orderBy: $orderBy, orderDirection: $orderDirection, where: $where, block: $block, subgraphError: $subgraphError) }") @source(subgraph: "nft", name: "erc721Operators", type: "[ERC721Operator!]!")\n erc721Transfer(\n id: ID!\n """\n The block at which the query should be executed. Can either be a `{ hash: Bytes }` value containing a block hash, a `{ number: Int }` containing the block number, or a `{ number_gte: Int }` containing the minimum block number. In the case of `number_gte`, the query will be executed on the latest block only if the subgraph has progressed to or past the minimum block number. Defaults to the latest block when omitted.\n """\n block: Block_height\n """\n Set to `allow` to receive data even if the subgraph has skipped over errors while syncing.\n """\n subgraphError: _SubgraphErrorPolicy_! = deny\n ): ERC721Transfer @resolver(subgraph: "nft", operation: "subscription subscriptionerc721Transfer($id: ID!, $block: Block_height, $subgraphError: _SubgraphErrorPolicy_! = \\"deny\\") { erc721Transfer(id: $id, block: $block, subgraphError: $subgraphError) }") @source(subgraph: "nft", name: "erc721Transfer", type: "ERC721Transfer")\n erc721Transfers(\n skip: Int = 0\n first: Int = 100\n orderBy: ERC721Transfer_orderBy\n orderDirection: OrderDirection\n where: ERC721Transfer_filter\n """\n The block at which the query should be executed. Can either be a `{ hash: Bytes }` value containing a block hash, a `{ number: Int }` containing the block number, or a `{ number_gte: Int }` containing the minimum block number. In the case of `number_gte`, the query will be executed on the latest block only if the subgraph has progressed to or past the minimum block number. Defaults to the latest block when omitted.\n """\n block: Block_height\n """\n Set to `allow` to receive data even if the subgraph has skipped over errors while syncing.\n """\n subgraphError: _SubgraphErrorPolicy_! = deny\n ): [ERC721Transfer!]! @resolver(subgraph: "nft", operation: "subscription subscriptionerc721Transfers($skip: Int, $first: Int = 100, $orderBy: ERC721Transfer_orderBy, $orderDirection: OrderDirection, $where: ERC721Transfer_filter, $block: Block_height, $subgraphError: _SubgraphErrorPolicy_! = \\"deny\\") { erc721Transfers(skip: $skip, first: $first, orderBy: $orderBy, orderDirection: $orderDirection, where: $where, block: $block, subgraphError: $subgraphError) }") @source(subgraph: "nft", name: "erc721Transfers", type: "[ERC721Transfer!]!")\n transaction(\n id: ID!\n """\n The block at which the query should be executed. Can either be a `{ hash: Bytes }` value containing a block hash, a `{ number: Int }` containing the block number, or a `{ number_gte: Int }` containing the minimum block number. In the case of `number_gte`, the query will be executed on the latest block only if the subgraph has progressed to or past the minimum block number. Defaults to the latest block when omitted.\n """\n block: Block_height\n """\n Set to `allow` to receive data even if the subgraph has skipped over errors while syncing.\n """\n subgraphError: _SubgraphErrorPolicy_! = deny\n ): Transaction @resolver(subgraph: "nft", operation: "subscription subscriptiontransaction($id: ID!, $block: Block_height, $subgraphError: _SubgraphErrorPolicy_! = \\"deny\\") { transaction(id: $id, block: $block, subgraphError: $subgraphError) }") @resolver(subgraph: "uniswap", operation: "subscription subscriptiontransaction($id: ID!, $block: Block_height, $subgraphError: _SubgraphErrorPolicy_! = \\"deny\\") { transaction(id: $id, block: $block, subgraphError: $subgraphError) }") @source(subgraph: "nft", name: "transaction", type: "Transaction") @source(subgraph: "uniswap", name: "transaction", type: "Transaction")\n transactions(\n skip: Int = 0\n first: Int = 100\n orderBy: Transaction_orderBy\n orderDirection: OrderDirection\n where: Transaction_filter\n """\n The block at which the query should be executed. Can either be a `{ hash: Bytes }` value containing a block hash, a `{ number: Int }` containing the block number, or a `{ number_gte: Int }` containing the minimum block number. In the case of `number_gte`, the query will be executed on the latest block only if the subgraph has progressed to or past the minimum block number. Defaults to the latest block when omitted.\n """\n block: Block_height\n """\n Set to `allow` to receive data even if the subgraph has skipped over errors while syncing.\n """\n subgraphError: _SubgraphErrorPolicy_! = deny\n ): [Transaction!]! @resolver(subgraph: "nft", operation: "subscription subscriptiontransactions($skip: Int, $first: Int = 100, $orderBy: Transaction_orderBy, $orderDirection: OrderDirection, $where: Transaction_filter, $block: Block_height, $subgraphError: _SubgraphErrorPolicy_! = \\"deny\\") { transactions(skip: $skip, first: $first, orderBy: $orderBy, orderDirection: $orderDirection, where: $where, block: $block, subgraphError: $subgraphError) }") @resolver(subgraph: "uniswap", operation: "subscription subscriptiontransactions($skip: Int, $first: Int = 100, $orderBy: Transaction_orderBy, $orderDirection: OrderDirection, $where: Transaction_filter, $block: Block_height, $subgraphError: _SubgraphErrorPolicy_! = \\"deny\\") { transactions(skip: $skip, first: $first, orderBy: $orderBy, orderDirection: $orderDirection, where: $where, block: $block, subgraphError: $subgraphError) }") @source(subgraph: "nft", name: "transactions", type: "[Transaction!]!") @source(subgraph: "uniswap", name: "transactions", type: "[Transaction!]!")\n event(\n id: ID!\n """\n The block at which the query should be executed. Can either be a `{ hash: Bytes }` value containing a block hash, a `{ number: Int }` containing the block number, or a `{ number_gte: Int }` containing the minimum block number. In the case of `number_gte`, the query will be executed on the latest block only if the subgraph has progressed to or past the minimum block number. Defaults to the latest block when omitted.\n """\n block: Block_height\n """\n Set to `allow` to receive data even if the subgraph has skipped over errors while syncing.\n """\n subgraphError: _SubgraphErrorPolicy_! = deny\n ): Event @resolver(subgraph: "nft", operation: "subscription subscriptionevent($id: ID!, $block: Block_height, $subgraphError: _SubgraphErrorPolicy_! = \\"deny\\") { event(id: $id, block: $block, subgraphError: $subgraphError) }") @source(subgraph: "nft", name: "event", type: "Event")\n events(\n skip: Int = 0\n first: Int = 100\n orderBy: Event_orderBy\n orderDirection: OrderDirection\n where: Event_filter\n """\n The block at which the query should be executed. Can either be a `{ hash: Bytes }` value containing a block hash, a `{ number: Int }` containing the block number, or a `{ number_gte: Int }` containing the minimum block number. In the case of `number_gte`, the query will be executed on the latest block only if the subgraph has progressed to or past the minimum block number. Defaults to the latest block when omitted.\n """\n block: Block_height\n """\n Set to `allow` to receive data even if the subgraph has skipped over errors while syncing.\n """\n subgraphError: _SubgraphErrorPolicy_! = deny\n ): [Event!]! @resolver(subgraph: "nft", operation: "subscription subscriptionevents($skip: Int, $first: Int = 100, $orderBy: Event_orderBy, $orderDirection: OrderDirection, $where: Event_filter, $block: Block_height, $subgraphError: _SubgraphErrorPolicy_! = \\"deny\\") { events(skip: $skip, first: $first, orderBy: $orderBy, orderDirection: $orderDirection, where: $where, block: $block, subgraphError: $subgraphError) }") @source(subgraph: "nft", name: "events", type: "[Event!]!")\n """Access to subgraph metadata"""\n _meta(block: Block_height): _Meta_ @resolver(subgraph: "nft", operation: "subscription subscription_meta($block: Block_height) { _meta(block: $block) }") @resolver(subgraph: "uniswap", operation: "subscription subscription_meta($block: Block_height) { _meta(block: $block) }") @source(subgraph: "nft", name: "_meta", type: "_Meta_") @source(subgraph: "uniswap", name: "_meta", type: "_Meta_")\n uniswapFactory(\n id: ID!\n """\n The block at which the query should be executed. Can either be a `{ hash: Bytes }` value containing a block hash, a `{ number: Int }` containing the block number, or a `{ number_gte: Int }` containing the minimum block number. In the case of `number_gte`, the query will be executed on the latest block only if the subgraph has progressed to or past the minimum block number. Defaults to the latest block when omitted.\n """\n block: Block_height\n """\n Set to `allow` to receive data even if the subgraph has skipped over errors while syncing.\n """\n subgraphError: _SubgraphErrorPolicy_! = deny\n ): UniswapFactory @resolver(subgraph: "uniswap", operation: "subscription subscriptionuniswapFactory($id: ID!, $block: Block_height, $subgraphError: _SubgraphErrorPolicy_! = \\"deny\\") { uniswapFactory(id: $id, block: $block, subgraphError: $subgraphError) }") @source(subgraph: "uniswap", name: "uniswapFactory", type: "UniswapFactory")\n uniswapFactories(\n skip: Int = 0\n first: Int = 100\n orderBy: UniswapFactory_orderBy\n orderDirection: OrderDirection\n where: UniswapFactory_filter\n """\n The block at which the query should be executed. Can either be a `{ hash: Bytes }` value containing a block hash, a `{ number: Int }` containing the block number, or a `{ number_gte: Int }` containing the minimum block number. In the case of `number_gte`, the query will be executed on the latest block only if the subgraph has progressed to or past the minimum block number. Defaults to the latest block when omitted.\n """\n block: Block_height\n """\n Set to `allow` to receive data even if the subgraph has skipped over errors while syncing.\n """\n subgraphError: _SubgraphErrorPolicy_! = deny\n ): [UniswapFactory!]! @resolver(subgraph: "uniswap", operation: "subscription subscriptionuniswapFactories($skip: Int, $first: Int = 100, $orderBy: UniswapFactory_orderBy, $orderDirection: OrderDirection, $where: UniswapFactory_filter, $block: Block_height, $subgraphError: _SubgraphErrorPolicy_! = \\"deny\\") { uniswapFactories(skip: $skip, first: $first, orderBy: $orderBy, orderDirection: $orderDirection, where: $where, block: $block, subgraphError: $subgraphError) }") @source(subgraph: "uniswap", name: "uniswapFactories", type: "[UniswapFactory!]!")\n token(\n id: ID!\n """\n The block at which the query should be executed. Can either be a `{ hash: Bytes }` value containing a block hash, a `{ number: Int }` containing the block number, or a `{ number_gte: Int }` containing the minimum block number. In the case of `number_gte`, the query will be executed on the latest block only if the subgraph has progressed to or past the minimum block number. Defaults to the latest block when omitted.\n """\n block: Block_height\n """\n Set to `allow` to receive data even if the subgraph has skipped over errors while syncing.\n """\n subgraphError: _SubgraphErrorPolicy_! = deny\n ): Token @resolver(subgraph: "uniswap", operation: "subscription subscriptiontoken($id: ID!, $block: Block_height, $subgraphError: _SubgraphErrorPolicy_! = \\"deny\\") { token(id: $id, block: $block, subgraphError: $subgraphError) }") @source(subgraph: "uniswap", name: "token", type: "Token")\n tokens(\n skip: Int = 0\n first: Int = 100\n orderBy: Token_orderBy\n orderDirection: OrderDirection\n where: Token_filter\n """\n The block at which the query should be executed. Can either be a `{ hash: Bytes }` value containing a block hash, a `{ number: Int }` containing the block number, or a `{ number_gte: Int }` containing the minimum block number. In the case of `number_gte`, the query will be executed on the latest block only if the subgraph has progressed to or past the minimum block number. Defaults to the latest block when omitted.\n """\n block: Block_height\n """\n Set to `allow` to receive data even if the subgraph has skipped over errors while syncing.\n """\n subgraphError: _SubgraphErrorPolicy_! = deny\n ): [Token!]! @resolver(subgraph: "uniswap", operation: "subscription subscriptiontokens($skip: Int, $first: Int = 100, $orderBy: Token_orderBy, $orderDirection: OrderDirection, $where: Token_filter, $block: Block_height, $subgraphError: _SubgraphErrorPolicy_! = \\"deny\\") { tokens(skip: $skip, first: $first, orderBy: $orderBy, orderDirection: $orderDirection, where: $where, block: $block, subgraphError: $subgraphError) }") @source(subgraph: "uniswap", name: "tokens", type: "[Token!]!")\n pair(\n id: ID!\n """\n The block at which the query should be executed. Can either be a `{ hash: Bytes }` value containing a block hash, a `{ number: Int }` containing the block number, or a `{ number_gte: Int }` containing the minimum block number. In the case of `number_gte`, the query will be executed on the latest block only if the subgraph has progressed to or past the minimum block number. Defaults to the latest block when omitted.\n """\n block: Block_height\n """\n Set to `allow` to receive data even if the subgraph has skipped over errors while syncing.\n """\n subgraphError: _SubgraphErrorPolicy_! = deny\n ): Pair @resolver(subgraph: "uniswap", operation: "subscription subscriptionpair($id: ID!, $block: Block_height, $subgraphError: _SubgraphErrorPolicy_! = \\"deny\\") { pair(id: $id, block: $block, subgraphError: $subgraphError) }") @source(subgraph: "uniswap", name: "pair", type: "Pair")\n pairs(\n skip: Int = 0\n first: Int = 100\n orderBy: Pair_orderBy\n orderDirection: OrderDirection\n where: Pair_filter\n """\n The block at which the query should be executed. Can either be a `{ hash: Bytes }` value containing a block hash, a `{ number: Int }` containing the block number, or a `{ number_gte: Int }` containing the minimum block number. In the case of `number_gte`, the query will be executed on the latest block only if the subgraph has progressed to or past the minimum block number. Defaults to the latest block when omitted.\n """\n block: Block_height\n """\n Set to `allow` to receive data even if the subgraph has skipped over errors while syncing.\n """\n subgraphError: _SubgraphErrorPolicy_! = deny\n ): [Pair!]! @resolver(subgraph: "uniswap", operation: "subscription subscriptionpairs($skip: Int, $first: Int = 100, $orderBy: Pair_orderBy, $orderDirection: OrderDirection, $where: Pair_filter, $block: Block_height, $subgraphError: _SubgraphErrorPolicy_! = \\"deny\\") { pairs(skip: $skip, first: $first, orderBy: $orderBy, orderDirection: $orderDirection, where: $where, block: $block, subgraphError: $subgraphError) }") @source(subgraph: "uniswap", name: "pairs", type: "[Pair!]!")\n user(\n id: ID!\n """\n The block at which the query should be executed. Can either be a `{ hash: Bytes }` value containing a block hash, a `{ number: Int }` containing the block number, or a `{ number_gte: Int }` containing the minimum block number. In the case of `number_gte`, the query will be executed on the latest block only if the subgraph has progressed to or past the minimum block number. Defaults to the latest block when omitted.\n """\n block: Block_height\n """\n Set to `allow` to receive data even if the subgraph has skipped over errors while syncing.\n """\n subgraphError: _SubgraphErrorPolicy_! = deny\n ): User @resolver(subgraph: "uniswap", operation: "subscription subscriptionuser($id: ID!, $block: Block_height, $subgraphError: _SubgraphErrorPolicy_! = \\"deny\\") { user(id: $id, block: $block, subgraphError: $subgraphError) }") @source(subgraph: "uniswap", name: "user", type: "User")\n users(\n skip: Int = 0\n first: Int = 100\n orderBy: User_orderBy\n orderDirection: OrderDirection\n where: User_filter\n """\n The block at which the query should be executed. Can either be a `{ hash: Bytes }` value containing a block hash, a `{ number: Int }` containing the block number, or a `{ number_gte: Int }` containing the minimum block number. In the case of `number_gte`, the query will be executed on the latest block only if the subgraph has progressed to or past the minimum block number. Defaults to the latest block when omitted.\n """\n block: Block_height\n """\n Set to `allow` to receive data even if the subgraph has skipped over errors while syncing.\n """\n subgraphError: _SubgraphErrorPolicy_! = deny\n ): [User!]! @resolver(subgraph: "uniswap", operation: "subscription subscriptionusers($skip: Int, $first: Int = 100, $orderBy: User_orderBy, $orderDirection: OrderDirection, $where: User_filter, $block: Block_height, $subgraphError: _SubgraphErrorPolicy_! = \\"deny\\") { users(skip: $skip, first: $first, orderBy: $orderBy, orderDirection: $orderDirection, where: $where, block: $block, subgraphError: $subgraphError) }") @source(subgraph: "uniswap", name: "users", type: "[User!]!")\n liquidityPosition(\n id: ID!\n """\n The block at which the query should be executed. Can either be a `{ hash: Bytes }` value containing a block hash, a `{ number: Int }` containing the block number, or a `{ number_gte: Int }` containing the minimum block number. In the case of `number_gte`, the query will be executed on the latest block only if the subgraph has progressed to or past the minimum block number. Defaults to the latest block when omitted.\n """\n block: Block_height\n """\n Set to `allow` to receive data even if the subgraph has skipped over errors while syncing.\n """\n subgraphError: _SubgraphErrorPolicy_! = deny\n ): LiquidityPosition @resolver(subgraph: "uniswap", operation: "subscription subscriptionliquidityPosition($id: ID!, $block: Block_height, $subgraphError: _SubgraphErrorPolicy_! = \\"deny\\") { liquidityPosition(id: $id, block: $block, subgraphError: $subgraphError) }") @source(subgraph: "uniswap", name: "liquidityPosition", type: "LiquidityPosition")\n liquidityPositions(\n skip: Int = 0\n first: Int = 100\n orderBy: LiquidityPosition_orderBy\n orderDirection: OrderDirection\n where: LiquidityPosition_filter\n """\n The block at which the query should be executed. Can either be a `{ hash: Bytes }` value containing a block hash, a `{ number: Int }` containing the block number, or a `{ number_gte: Int }` containing the minimum block number. In the case of `number_gte`, the query will be executed on the latest block only if the subgraph has progressed to or past the minimum block number. Defaults to the latest block when omitted.\n """\n block: Block_height\n """\n Set to `allow` to receive data even if the subgraph has skipped over errors while syncing.\n """\n subgraphError: _SubgraphErrorPolicy_! = deny\n ): [LiquidityPosition!]! @resolver(subgraph: "uniswap", operation: "subscription subscriptionliquidityPositions($skip: Int, $first: Int = 100, $orderBy: LiquidityPosition_orderBy, $orderDirection: OrderDirection, $where: LiquidityPosition_filter, $block: Block_height, $subgraphError: _SubgraphErrorPolicy_! = \\"deny\\") { liquidityPositions(skip: $skip, first: $first, orderBy: $orderBy, orderDirection: $orderDirection, where: $where, block: $block, subgraphError: $subgraphError) }") @source(subgraph: "uniswap", name: "liquidityPositions", type: "[LiquidityPosition!]!")\n liquidityPositionSnapshot(\n id: ID!\n """\n The block at which the query should be executed. Can either be a `{ hash: Bytes }` value containing a block hash, a `{ number: Int }` containing the block number, or a `{ number_gte: Int }` containing the minimum block number. In the case of `number_gte`, the query will be executed on the latest block only if the subgraph has progressed to or past the minimum block number. Defaults to the latest block when omitted.\n """\n block: Block_height\n """\n Set to `allow` to receive data even if the subgraph has skipped over errors while syncing.\n """\n subgraphError: _SubgraphErrorPolicy_! = deny\n ): LiquidityPositionSnapshot @resolver(subgraph: "uniswap", operation: "subscription subscriptionliquidityPositionSnapshot($id: ID!, $block: Block_height, $subgraphError: _SubgraphErrorPolicy_! = \\"deny\\") { liquidityPositionSnapshot(id: $id, block: $block, subgraphError: $subgraphError) }") @source(subgraph: "uniswap", name: "liquidityPositionSnapshot", type: "LiquidityPositionSnapshot")\n liquidityPositionSnapshots(\n skip: Int = 0\n first: Int = 100\n orderBy: LiquidityPositionSnapshot_orderBy\n orderDirection: OrderDirection\n where: LiquidityPositionSnapshot_filter\n """\n The block at which the query should be executed. Can either be a `{ hash: Bytes }` value containing a block hash, a `{ number: Int }` containing the block number, or a `{ number_gte: Int }` containing the minimum block number. In the case of `number_gte`, the query will be executed on the latest block only if the subgraph has progressed to or past the minimum block number. Defaults to the latest block when omitted.\n """\n block: Block_height\n """\n Set to `allow` to receive data even if the subgraph has skipped over errors while syncing.\n """\n subgraphError: _SubgraphErrorPolicy_! = deny\n ): [LiquidityPositionSnapshot!]! @resolver(subgraph: "uniswap", operation: "subscription subscriptionliquidityPositionSnapshots($skip: Int, $first: Int = 100, $orderBy: LiquidityPositionSnapshot_orderBy, $orderDirection: OrderDirection, $where: LiquidityPositionSnapshot_filter, $block: Block_height, $subgraphError: _SubgraphErrorPolicy_! = \\"deny\\") { liquidityPositionSnapshots(skip: $skip, first: $first, orderBy: $orderBy, orderDirection: $orderDirection, where: $where, block: $block, subgraphError: $subgraphError) }") @source(subgraph: "uniswap", name: "liquidityPositionSnapshots", type: "[LiquidityPositionSnapshot!]!")\n mint(\n id: ID!\n """\n The block at which the query should be executed. Can either be a `{ hash: Bytes }` value containing a block hash, a `{ number: Int }` containing the block number, or a `{ number_gte: Int }` containing the minimum block number. In the case of `number_gte`, the query will be executed on the latest block only if the subgraph has progressed to or past the minimum block number. Defaults to the latest block when omitted.\n """\n block: Block_height\n """\n Set to `allow` to receive data even if the subgraph has skipped over errors while syncing.\n """\n subgraphError: _SubgraphErrorPolicy_! = deny\n ): Mint @resolver(subgraph: "uniswap", operation: "subscription subscriptionmint($id: ID!, $block: Block_height, $subgraphError: _SubgraphErrorPolicy_! = \\"deny\\") { mint(id: $id, block: $block, subgraphError: $subgraphError) }") @source(subgraph: "uniswap", name: "mint", type: "Mint")\n mints(\n skip: Int = 0\n first: Int = 100\n orderBy: Mint_orderBy\n orderDirection: OrderDirection\n where: Mint_filter\n """\n The block at which the query should be executed. Can either be a `{ hash: Bytes }` value containing a block hash, a `{ number: Int }` containing the block number, or a `{ number_gte: Int }` containing the minimum block number. In the case of `number_gte`, the query will be executed on the latest block only if the subgraph has progressed to or past the minimum block number. Defaults to the latest block when omitted.\n """\n block: Block_height\n """\n Set to `allow` to receive data even if the subgraph has skipped over errors while syncing.\n """\n subgraphError: _SubgraphErrorPolicy_! = deny\n ): [Mint!]! @resolver(subgraph: "uniswap", operation: "subscription subscriptionmints($skip: Int, $first: Int = 100, $orderBy: Mint_orderBy, $orderDirection: OrderDirection, $where: Mint_filter, $block: Block_height, $subgraphError: _SubgraphErrorPolicy_! = \\"deny\\") { mints(skip: $skip, first: $first, orderBy: $orderBy, orderDirection: $orderDirection, where: $where, block: $block, subgraphError: $subgraphError) }") @source(subgraph: "uniswap", name: "mints", type: "[Mint!]!")\n burn(\n id: ID!\n """\n The block at which the query should be executed. Can either be a `{ hash: Bytes }` value containing a block hash, a `{ number: Int }` containing the block number, or a `{ number_gte: Int }` containing the minimum block number. In the case of `number_gte`, the query will be executed on the latest block only if the subgraph has progressed to or past the minimum block number. Defaults to the latest block when omitted.\n """\n block: Block_height\n """\n Set to `allow` to receive data even if the subgraph has skipped over errors while syncing.\n """\n subgraphError: _SubgraphErrorPolicy_! = deny\n ): Burn @resolver(subgraph: "uniswap", operation: "subscription subscriptionburn($id: ID!, $block: Block_height, $subgraphError: _SubgraphErrorPolicy_! = \\"deny\\") { burn(id: $id, block: $block, subgraphError: $subgraphError) }") @source(subgraph: "uniswap", name: "burn", type: "Burn")\n burns(\n skip: Int = 0\n first: Int = 100\n orderBy: Burn_orderBy\n orderDirection: OrderDirection\n where: Burn_filter\n """\n The block at which the query should be executed. Can either be a `{ hash: Bytes }` value containing a block hash, a `{ number: Int }` containing the block number, or a `{ number_gte: Int }` containing the minimum block number. In the case of `number_gte`, the query will be executed on the latest block only if the subgraph has progressed to or past the minimum block number. Defaults to the latest block when omitted.\n """\n block: Block_height\n """\n Set to `allow` to receive data even if the subgraph has skipped over errors while syncing.\n """\n subgraphError: _SubgraphErrorPolicy_! = deny\n ): [Burn!]! @resolver(subgraph: "uniswap", operation: "subscription subscriptionburns($skip: Int, $first: Int = 100, $orderBy: Burn_orderBy, $orderDirection: OrderDirection, $where: Burn_filter, $block: Block_height, $subgraphError: _SubgraphErrorPolicy_! = \\"deny\\") { burns(skip: $skip, first: $first, orderBy: $orderBy, orderDirection: $orderDirection, where: $where, block: $block, subgraphError: $subgraphError) }") @source(subgraph: "uniswap", name: "burns", type: "[Burn!]!")\n swap(\n id: ID!\n """\n The block at which the query should be executed. Can either be a `{ hash: Bytes }` value containing a block hash, a `{ number: Int }` containing the block number, or a `{ number_gte: Int }` containing the minimum block number. In the case of `number_gte`, the query will be executed on the latest block only if the subgraph has progressed to or past the minimum block number. Defaults to the latest block when omitted.\n """\n block: Block_height\n """\n Set to `allow` to receive data even if the subgraph has skipped over errors while syncing.\n """\n subgraphError: _SubgraphErrorPolicy_! = deny\n ): Swap @resolver(subgraph: "uniswap", operation: "subscription subscriptionswap($id: ID!, $block: Block_height, $subgraphError: _SubgraphErrorPolicy_! = \\"deny\\") { swap(id: $id, block: $block, subgraphError: $subgraphError) }") @source(subgraph: "uniswap", name: "swap", type: "Swap")\n swaps(\n skip: Int = 0\n first: Int = 100\n orderBy: Swap_orderBy\n orderDirection: OrderDirection\n where: Swap_filter\n """\n The block at which the query should be executed. Can either be a `{ hash: Bytes }` value containing a block hash, a `{ number: Int }` containing the block number, or a `{ number_gte: Int }` containing the minimum block number. In the case of `number_gte`, the query will be executed on the latest block only if the subgraph has progressed to or past the minimum block number. Defaults to the latest block when omitted.\n """\n block: Block_height\n """\n Set to `allow` to receive data even if the subgraph has skipped over errors while syncing.\n """\n subgraphError: _SubgraphErrorPolicy_! = deny\n ): [Swap!]! @resolver(subgraph: "uniswap", operation: "subscription subscriptionswaps($skip: Int, $first: Int = 100, $orderBy: Swap_orderBy, $orderDirection: OrderDirection, $where: Swap_filter, $block: Block_height, $subgraphError: _SubgraphErrorPolicy_! = \\"deny\\") { swaps(skip: $skip, first: $first, orderBy: $orderBy, orderDirection: $orderDirection, where: $where, block: $block, subgraphError: $subgraphError) }") @source(subgraph: "uniswap", name: "swaps", type: "[Swap!]!")\n bundle(\n id: ID!\n """\n The block at which the query should be executed. Can either be a `{ hash: Bytes }` value containing a block hash, a `{ number: Int }` containing the block number, or a `{ number_gte: Int }` containing the minimum block number. In the case of `number_gte`, the query will be executed on the latest block only if the subgraph has progressed to or past the minimum block number. Defaults to the latest block when omitted.\n """\n block: Block_height\n """\n Set to `allow` to receive data even if the subgraph has skipped over errors while syncing.\n """\n subgraphError: _SubgraphErrorPolicy_! = deny\n ): Bundle @resolver(subgraph: "uniswap", operation: "subscription subscriptionbundle($id: ID!, $block: Block_height, $subgraphError: _SubgraphErrorPolicy_! = \\"deny\\") { bundle(id: $id, block: $block, subgraphError: $subgraphError) }") @source(subgraph: "uniswap", name: "bundle", type: "Bundle")\n bundles(\n skip: Int = 0\n first: Int = 100\n orderBy: Bundle_orderBy\n orderDirection: OrderDirection\n where: Bundle_filter\n """\n The block at which the query should be executed. Can either be a `{ hash: Bytes }` value containing a block hash, a `{ number: Int }` containing the block number, or a `{ number_gte: Int }` containing the minimum block number. In the case of `number_gte`, the query will be executed on the latest block only if the subgraph has progressed to or past the minimum block number. Defaults to the latest block when omitted.\n """\n block: Block_height\n """\n Set to `allow` to receive data even if the subgraph has skipped over errors while syncing.\n """\n subgraphError: _SubgraphErrorPolicy_! = deny\n ): [Bundle!]! @resolver(subgraph: "uniswap", operation: "subscription subscriptionbundles($skip: Int, $first: Int = 100, $orderBy: Bundle_orderBy, $orderDirection: OrderDirection, $where: Bundle_filter, $block: Block_height, $subgraphError: _SubgraphErrorPolicy_! = \\"deny\\") { bundles(skip: $skip, first: $first, orderBy: $orderBy, orderDirection: $orderDirection, where: $where, block: $block, subgraphError: $subgraphError) }") @source(subgraph: "uniswap", name: "bundles", type: "[Bundle!]!")\n uniswapDayData(\n id: ID!\n """\n The block at which the query should be executed. Can either be a `{ hash: Bytes }` value containing a block hash, a `{ number: Int }` containing the block number, or a `{ number_gte: Int }` containing the minimum block number. In the case of `number_gte`, the query will be executed on the latest block only if the subgraph has progressed to or past the minimum block number. Defaults to the latest block when omitted.\n """\n block: Block_height\n """\n Set to `allow` to receive data even if the subgraph has skipped over errors while syncing.\n """\n subgraphError: _SubgraphErrorPolicy_! = deny\n ): UniswapDayData @resolver(subgraph: "uniswap", operation: "subscription subscriptionuniswapDayData($id: ID!, $block: Block_height, $subgraphError: _SubgraphErrorPolicy_! = \\"deny\\") { uniswapDayData(id: $id, block: $block, subgraphError: $subgraphError) }") @source(subgraph: "uniswap", name: "uniswapDayData", type: "UniswapDayData")\n uniswapDayDatas(\n skip: Int = 0\n first: Int = 100\n orderBy: UniswapDayData_orderBy\n orderDirection: OrderDirection\n where: UniswapDayData_filter\n """\n The block at which the query should be executed. Can either be a `{ hash: Bytes }` value containing a block hash, a `{ number: Int }` containing the block number, or a `{ number_gte: Int }` containing the minimum block number. In the case of `number_gte`, the query will be executed on the latest block only if the subgraph has progressed to or past the minimum block number. Defaults to the latest block when omitted.\n """\n block: Block_height\n """\n Set to `allow` to receive data even if the subgraph has skipped over errors while syncing.\n """\n subgraphError: _SubgraphErrorPolicy_! = deny\n ): [UniswapDayData!]! @resolver(subgraph: "uniswap", operation: "subscription subscriptionuniswapDayDatas($skip: Int, $first: Int = 100, $orderBy: UniswapDayData_orderBy, $orderDirection: OrderDirection, $where: UniswapDayData_filter, $block: Block_height, $subgraphError: _SubgraphErrorPolicy_! = \\"deny\\") { uniswapDayDatas(skip: $skip, first: $first, orderBy: $orderBy, orderDirection: $orderDirection, where: $where, block: $block, subgraphError: $subgraphError) }") @source(subgraph: "uniswap", name: "uniswapDayDatas", type: "[UniswapDayData!]!")\n pairHourData(\n id: ID!\n """\n The block at which the query should be executed. Can either be a `{ hash: Bytes }` value containing a block hash, a `{ number: Int }` containing the block number, or a `{ number_gte: Int }` containing the minimum block number. In the case of `number_gte`, the query will be executed on the latest block only if the subgraph has progressed to or past the minimum block number. Defaults to the latest block when omitted.\n """\n block: Block_height\n """\n Set to `allow` to receive data even if the subgraph has skipped over errors while syncing.\n """\n subgraphError: _SubgraphErrorPolicy_! = deny\n ): PairHourData @resolver(subgraph: "uniswap", operation: "subscription subscriptionpairHourData($id: ID!, $block: Block_height, $subgraphError: _SubgraphErrorPolicy_! = \\"deny\\") { pairHourData(id: $id, block: $block, subgraphError: $subgraphError) }") @source(subgraph: "uniswap", name: "pairHourData", type: "PairHourData")\n pairHourDatas(\n skip: Int = 0\n first: Int = 100\n orderBy: PairHourData_orderBy\n orderDirection: OrderDirection\n where: PairHourData_filter\n """\n The block at which the query should be executed. Can either be a `{ hash: Bytes }` value containing a block hash, a `{ number: Int }` containing the block number, or a `{ number_gte: Int }` containing the minimum block number. In the case of `number_gte`, the query will be executed on the latest block only if the subgraph has progressed to or past the minimum block number. Defaults to the latest block when omitted.\n """\n block: Block_height\n """\n Set to `allow` to receive data even if the subgraph has skipped over errors while syncing.\n """\n subgraphError: _SubgraphErrorPolicy_! = deny\n ): [PairHourData!]! @resolver(subgraph: "uniswap", operation: "subscription subscriptionpairHourDatas($skip: Int, $first: Int = 100, $orderBy: PairHourData_orderBy, $orderDirection: OrderDirection, $where: PairHourData_filter, $block: Block_height, $subgraphError: _SubgraphErrorPolicy_! = \\"deny\\") { pairHourDatas(skip: $skip, first: $first, orderBy: $orderBy, orderDirection: $orderDirection, where: $where, block: $block, subgraphError: $subgraphError) }") @source(subgraph: "uniswap", name: "pairHourDatas", type: "[PairHourData!]!")\n pairDayData(\n id: ID!\n """\n The block at which the query should be executed. Can either be a `{ hash: Bytes }` value containing a block hash, a `{ number: Int }` containing the block number, or a `{ number_gte: Int }` containing the minimum block number. In the case of `number_gte`, the query will be executed on the latest block only if the subgraph has progressed to or past the minimum block number. Defaults to the latest block when omitted.\n """\n block: Block_height\n """\n Set to `allow` to receive data even if the subgraph has skipped over errors while syncing.\n """\n subgraphError: _SubgraphErrorPolicy_! = deny\n ): PairDayData @resolver(subgraph: "uniswap", operation: "subscription subscriptionpairDayData($id: ID!, $block: Block_height, $subgraphError: _SubgraphErrorPolicy_! = \\"deny\\") { pairDayData(id: $id, block: $block, subgraphError: $subgraphError) }") @source(subgraph: "uniswap", name: "pairDayData", type: "PairDayData")\n pairDayDatas(\n skip: Int = 0\n first: Int = 100\n orderBy: PairDayData_orderBy\n orderDirection: OrderDirection\n where: PairDayData_filter\n """\n The block at which the query should be executed. Can either be a `{ hash: Bytes }` value containing a block hash, a `{ number: Int }` containing the block number, or a `{ number_gte: Int }` containing the minimum block number. In the case of `number_gte`, the query will be executed on the latest block only if the subgraph has progressed to or past the minimum block number. Defaults to the latest block when omitted.\n """\n block: Block_height\n """\n Set to `allow` to receive data even if the subgraph has skipped over errors while syncing.\n """\n subgraphError: _SubgraphErrorPolicy_! = deny\n ): [PairDayData!]! @resolver(subgraph: "uniswap", operation: "subscription subscriptionpairDayDatas($skip: Int, $first: Int = 100, $orderBy: PairDayData_orderBy, $orderDirection: OrderDirection, $where: PairDayData_filter, $block: Block_height, $subgraphError: _SubgraphErrorPolicy_! = \\"deny\\") { pairDayDatas(skip: $skip, first: $first, orderBy: $orderBy, orderDirection: $orderDirection, where: $where, block: $block, subgraphError: $subgraphError) }") @source(subgraph: "uniswap", name: "pairDayDatas", type: "[PairDayData!]!")\n tokenDayData(\n id: ID!\n """\n The block at which the query should be executed. Can either be a `{ hash: Bytes }` value containing a block hash, a `{ number: Int }` containing the block number, or a `{ number_gte: Int }` containing the minimum block number. In the case of `number_gte`, the query will be executed on the latest block only if the subgraph has progressed to or past the minimum block number. Defaults to the latest block when omitted.\n """\n block: Block_height\n """\n Set to `allow` to receive data even if the subgraph has skipped over errors while syncing.\n """\n subgraphError: _SubgraphErrorPolicy_! = deny\n ): TokenDayData @resolver(subgraph: "uniswap", operation: "subscription subscriptiontokenDayData($id: ID!, $block: Block_height, $subgraphError: _SubgraphErrorPolicy_! = \\"deny\\") { tokenDayData(id: $id, block: $block, subgraphError: $subgraphError) }") @source(subgraph: "uniswap", name: "tokenDayData", type: "TokenDayData")\n tokenDayDatas(\n skip: Int = 0\n first: Int = 100\n orderBy: TokenDayData_orderBy\n orderDirection: OrderDirection\n where: TokenDayData_filter\n """\n The block at which the query should be executed. Can either be a `{ hash: Bytes }` value containing a block hash, a `{ number: Int }` containing the block number, or a `{ number_gte: Int }` containing the minimum block number. In the case of `number_gte`, the query will be executed on the latest block only if the subgraph has progressed to or past the minimum block number. Defaults to the latest block when omitted.\n """\n block: Block_height\n """\n Set to `allow` to receive data even if the subgraph has skipped over errors while syncing.\n """\n subgraphError: _SubgraphErrorPolicy_! = deny\n ): [TokenDayData!]! @resolver(subgraph: "uniswap", operation: "subscription subscriptiontokenDayDatas($skip: Int, $first: Int = 100, $orderBy: TokenDayData_orderBy, $orderDirection: OrderDirection, $where: TokenDayData_filter, $block: Block_height, $subgraphError: _SubgraphErrorPolicy_! = \\"deny\\") { tokenDayDatas(skip: $skip, first: $first, orderBy: $orderBy, orderDirection: $orderDirection, where: $where, block: $block, subgraphError: $subgraphError) }") @source(subgraph: "uniswap", name: "tokenDayDatas", type: "[TokenDayData!]!")\n}\n\ntype Transaction @source(subgraph: "nft", name: "Transaction") @source(subgraph: "uniswap", name: "Transaction") @resolver(subgraph: "nft", operation: "query TransactionById($Transaction_id: ID!) { transaction(id: $Transaction_id) }", kind: "FETCH") @resolver(subgraph: "nft", operation: "query GetTransactionById($Transaction_id: ID!) { transactions(where: { id: $Transaction_id) } }", kind: "FETCH") @resolver(subgraph: "nft", operation: "query GetTransactionsByIds($Transaction_id: [ID!]!) { transactions(where: { id_in: $Transaction_id }) }", kind: "BATCH") @resolver(subgraph: "nft", operation: "query TransactionById($Transaction_id: ID!) { transaction(id: $Transaction_id) }", kind: "FETCH") @resolver(subgraph: "nft", operation: "query GetTransactionById($Transaction_id: ID!) { transactions(where: { id: $Transaction_id) } }", kind: "FETCH") @resolver(subgraph: "nft", operation: "query GetTransactionsByIds($Transaction_id: [ID!]!) { transactions(where: { id_in: $Transaction_id }) }", kind: "BATCH") @resolver(subgraph: "uniswap", operation: "query TransactionById($Transaction_id: ID!) { transaction(id: $Transaction_id) }", kind: "FETCH") @resolver(subgraph: "uniswap", operation: "query GetTransactionById($Transaction_id: ID!) { transactions(where: { id: $Transaction_id) } }", kind: "FETCH") @resolver(subgraph: "uniswap", operation: "query GetTransactionsByIds($Transaction_id: [ID!]!) { transactions(where: { id_in: $Transaction_id }) }", kind: "BATCH") @variable(subgraph: "nft", name: "Transaction_id", select: "id") @variable(subgraph: "uniswap", name: "Transaction_id", select: "id") @variable(subgraph: "nft", name: "Transaction_id", select: "id") @variable(subgraph: "uniswap", name: "Transaction_id", select: "id") {\n id: ID! @source(subgraph: "nft", name: "id", type: "ID!") @source(subgraph: "uniswap", name: "id", type: "ID!")\n timestamp: BigInt! @source(subgraph: "nft", name: "timestamp", type: "BigInt!") @source(subgraph: "uniswap", name: "timestamp", type: "BigInt!")\n blockNumber: BigInt! @source(subgraph: "nft", name: "blockNumber", type: "BigInt!") @source(subgraph: "uniswap", name: "blockNumber", type: "BigInt!")\n events(skip: Int = 0, first: Int = 100, orderBy: Event_orderBy, orderDirection: OrderDirection, where: Event_filter): [Event!]! @source(subgraph: "nft", name: "events", type: "[Event!]!")\n mints(skip: Int = 0, first: Int = 100, orderBy: Mint_orderBy, orderDirection: OrderDirection, where: Mint_filter): [Mint]! @source(subgraph: "uniswap", name: "mints", type: "[Mint]!")\n burns(skip: Int = 0, first: Int = 100, orderBy: Burn_orderBy, orderDirection: OrderDirection, where: Burn_filter): [Burn]! @source(subgraph: "uniswap", name: "burns", type: "[Burn]!")\n swaps(skip: Int = 0, first: Int = 100, orderBy: Swap_orderBy, orderDirection: OrderDirection, where: Swap_filter): [Swap]! @source(subgraph: "uniswap", name: "swaps", type: "[Swap]!")\n}\n\ninput Transaction_filter @source(subgraph: "nft", name: "Transaction_filter") @source(subgraph: "uniswap", name: "Transaction_filter") {\n id: ID @source(subgraph: "nft", name: "id", type: "ID") @source(subgraph: "uniswap", name: "id", type: "ID")\n id_not: ID @source(subgraph: "nft", name: "id_not", type: "ID") @source(subgraph: "uniswap", name: "id_not", type: "ID")\n id_gt: ID @source(subgraph: "nft", name: "id_gt", type: "ID") @source(subgraph: "uniswap", name: "id_gt", type: "ID")\n id_lt: ID @source(subgraph: "nft", name: "id_lt", type: "ID") @source(subgraph: "uniswap", name: "id_lt", type: "ID")\n id_gte: ID @source(subgraph: "nft", name: "id_gte", type: "ID") @source(subgraph: "uniswap", name: "id_gte", type: "ID")\n id_lte: ID @source(subgraph: "nft", name: "id_lte", type: "ID") @source(subgraph: "uniswap", name: "id_lte", type: "ID")\n id_in: [ID!] @source(subgraph: "nft", name: "id_in", type: "[ID!]") @source(subgraph: "uniswap", name: "id_in", type: "[ID!]")\n id_not_in: [ID!] @source(subgraph: "nft", name: "id_not_in", type: "[ID!]") @source(subgraph: "uniswap", name: "id_not_in", type: "[ID!]")\n timestamp: BigInt @source(subgraph: "nft", name: "timestamp", type: "BigInt") @source(subgraph: "uniswap", name: "timestamp", type: "BigInt")\n timestamp_not: BigInt @source(subgraph: "nft", name: "timestamp_not", type: "BigInt") @source(subgraph: "uniswap", name: "timestamp_not", type: "BigInt")\n timestamp_gt: BigInt @source(subgraph: "nft", name: "timestamp_gt", type: "BigInt") @source(subgraph: "uniswap", name: "timestamp_gt", type: "BigInt")\n timestamp_lt: BigInt @source(subgraph: "nft", name: "timestamp_lt", type: "BigInt") @source(subgraph: "uniswap", name: "timestamp_lt", type: "BigInt")\n timestamp_gte: BigInt @source(subgraph: "nft", name: "timestamp_gte", type: "BigInt") @source(subgraph: "uniswap", name: "timestamp_gte", type: "BigInt")\n timestamp_lte: BigInt @source(subgraph: "nft", name: "timestamp_lte", type: "BigInt") @source(subgraph: "uniswap", name: "timestamp_lte", type: "BigInt")\n timestamp_in: [BigInt!] @source(subgraph: "nft", name: "timestamp_in", type: "[BigInt!]") @source(subgraph: "uniswap", name: "timestamp_in", type: "[BigInt!]")\n timestamp_not_in: [BigInt!] @source(subgraph: "nft", name: "timestamp_not_in", type: "[BigInt!]") @source(subgraph: "uniswap", name: "timestamp_not_in", type: "[BigInt!]")\n blockNumber: BigInt @source(subgraph: "nft", name: "blockNumber", type: "BigInt") @source(subgraph: "uniswap", name: "blockNumber", type: "BigInt")\n blockNumber_not: BigInt @source(subgraph: "nft", name: "blockNumber_not", type: "BigInt") @source(subgraph: "uniswap", name: "blockNumber_not", type: "BigInt")\n blockNumber_gt: BigInt @source(subgraph: "nft", name: "blockNumber_gt", type: "BigInt") @source(subgraph: "uniswap", name: "blockNumber_gt", type: "BigInt")\n blockNumber_lt: BigInt @source(subgraph: "nft", name: "blockNumber_lt", type: "BigInt") @source(subgraph: "uniswap", name: "blockNumber_lt", type: "BigInt")\n blockNumber_gte: BigInt @source(subgraph: "nft", name: "blockNumber_gte", type: "BigInt") @source(subgraph: "uniswap", name: "blockNumber_gte", type: "BigInt")\n blockNumber_lte: BigInt @source(subgraph: "nft", name: "blockNumber_lte", type: "BigInt") @source(subgraph: "uniswap", name: "blockNumber_lte", type: "BigInt")\n blockNumber_in: [BigInt!] @source(subgraph: "nft", name: "blockNumber_in", type: "[BigInt!]") @source(subgraph: "uniswap", name: "blockNumber_in", type: "[BigInt!]")\n blockNumber_not_in: [BigInt!] @source(subgraph: "nft", name: "blockNumber_not_in", type: "[BigInt!]") @source(subgraph: "uniswap", name: "blockNumber_not_in", type: "[BigInt!]")\n events_: Event_filter @source(subgraph: "nft", name: "events_", type: "Event_filter")\n """Filter for the block changed event."""\n _change_block: BlockChangedFilter @source(subgraph: "nft", name: "_change_block", type: "BlockChangedFilter") @source(subgraph: "uniswap", name: "_change_block", type: "BlockChangedFilter")\n and: [Transaction_filter] @source(subgraph: "nft", name: "and", type: "[Transaction_filter]") @source(subgraph: "uniswap", name: "and", type: "[Transaction_filter]")\n or: [Transaction_filter] @source(subgraph: "nft", name: "or", type: "[Transaction_filter]") @source(subgraph: "uniswap", name: "or", type: "[Transaction_filter]")\n mints: [String!] @source(subgraph: "uniswap", name: "mints", type: "[String!]")\n mints_not: [String!] @source(subgraph: "uniswap", name: "mints_not", type: "[String!]")\n mints_contains: [String!] @source(subgraph: "uniswap", name: "mints_contains", type: "[String!]")\n mints_contains_nocase: [String!] @source(subgraph: "uniswap", name: "mints_contains_nocase", type: "[String!]")\n mints_not_contains: [String!] @source(subgraph: "uniswap", name: "mints_not_contains", type: "[String!]")\n mints_not_contains_nocase: [String!] @source(subgraph: "uniswap", name: "mints_not_contains_nocase", type: "[String!]")\n mints_: Mint_filter @source(subgraph: "uniswap", name: "mints_", type: "Mint_filter")\n burns: [String!] @source(subgraph: "uniswap", name: "burns", type: "[String!]")\n burns_not: [String!] @source(subgraph: "uniswap", name: "burns_not", type: "[String!]")\n burns_contains: [String!] @source(subgraph: "uniswap", name: "burns_contains", type: "[String!]")\n burns_contains_nocase: [String!] @source(subgraph: "uniswap", name: "burns_contains_nocase", type: "[String!]")\n burns_not_contains: [String!] @source(subgraph: "uniswap", name: "burns_not_contains", type: "[String!]")\n burns_not_contains_nocase: [String!] @source(subgraph: "uniswap", name: "burns_not_contains_nocase", type: "[String!]")\n burns_: Burn_filter @source(subgraph: "uniswap", name: "burns_", type: "Burn_filter")\n swaps: [String!] @source(subgraph: "uniswap", name: "swaps", type: "[String!]")\n swaps_not: [String!] @source(subgraph: "uniswap", name: "swaps_not", type: "[String!]")\n swaps_contains: [String!] @source(subgraph: "uniswap", name: "swaps_contains", type: "[String!]")\n swaps_contains_nocase: [String!] @source(subgraph: "uniswap", name: "swaps_contains_nocase", type: "[String!]")\n swaps_not_contains: [String!] @source(subgraph: "uniswap", name: "swaps_not_contains", type: "[String!]")\n swaps_not_contains_nocase: [String!] @source(subgraph: "uniswap", name: "swaps_not_contains_nocase", type: "[String!]")\n swaps_: Swap_filter @source(subgraph: "uniswap", name: "swaps_", type: "Swap_filter")\n}\n\nenum Transaction_orderBy @source(subgraph: "nft", name: "Transaction_orderBy") @source(subgraph: "uniswap", name: "Transaction_orderBy") {\n id @source(subgraph: "nft", name: "id") @source(subgraph: "uniswap", name: "id")\n blockNumber @source(subgraph: "nft", name: "blockNumber") @source(subgraph: "uniswap", name: "blockNumber")\n timestamp @source(subgraph: "nft", name: "timestamp") @source(subgraph: "uniswap", name: "timestamp")\n mints @source(subgraph: "uniswap", name: "mints")\n burns @source(subgraph: "uniswap", name: "burns")\n swaps @source(subgraph: "uniswap", name: "swaps")\n events @source(subgraph: "nft", name: "events")\n}\n\ntype _Block_ @source(subgraph: "nft", name: "_Block_") @source(subgraph: "uniswap", name: "_Block_") {\n """The hash of the block"""\n hash: Bytes @source(subgraph: "nft", name: "hash", type: "Bytes") @source(subgraph: "uniswap", name: "hash", type: "Bytes")\n """The block number"""\n number: Int! @source(subgraph: "nft", name: "number", type: "Int!") @source(subgraph: "uniswap", name: "number", type: "Int!")\n """Integer representation of the timestamp stored in blocks for the chain"""\n timestamp: Int @source(subgraph: "nft", name: "timestamp", type: "Int") @source(subgraph: "uniswap", name: "timestamp", type: "Int")\n """The hash of the parent block"""\n parentHash: Bytes @source(subgraph: "nft", name: "parentHash", type: "Bytes") @source(subgraph: "uniswap", name: "parentHash", type: "Bytes")\n}\n\n"""The type for the top-level _meta field"""\ntype _Meta_ @source(subgraph: "nft", name: "_Meta_") @source(subgraph: "uniswap", name: "_Meta_") {\n """\n Information about a specific subgraph block. The hash of the block\n will be null if the _meta field has a block constraint that asks for\n a block number. It will be filled if the _meta field has no block constraint\n and therefore asks for the latest block\n \n """\n block: _Block_! @source(subgraph: "nft", name: "block", type: "_Block_!") @source(subgraph: "uniswap", name: "block", type: "_Block_!")\n """The deployment ID"""\n deployment: String! @source(subgraph: "nft", name: "deployment", type: "String!") @source(subgraph: "uniswap", name: "deployment", type: "String!")\n """If `true`, the subgraph encountered indexing errors at some past block"""\n hasIndexingErrors: Boolean! @source(subgraph: "nft", name: "hasIndexingErrors", type: "Boolean!") @source(subgraph: "uniswap", name: "hasIndexingErrors", type: "Boolean!")\n}\n\nenum _SubgraphErrorPolicy_ @source(subgraph: "nft", name: "_SubgraphErrorPolicy_") @source(subgraph: "uniswap", name: "_SubgraphErrorPolicy_") {\n """Data will be returned even if the subgraph has indexing errors"""\n allow @source(subgraph: "nft", name: "allow") @source(subgraph: "uniswap", name: "allow")\n """\n If the subgraph has indexing errors, data will be omitted. The default.\n """\n deny @source(subgraph: "nft", name: "deny") @source(subgraph: "uniswap", name: "deny")\n}\n\ntype Bundle @source(subgraph: "uniswap", name: "Bundle") @resolver(subgraph: "uniswap", operation: "query BundleById($Bundle_id: ID!) { bundle(id: $Bundle_id) }", kind: "FETCH") @resolver(subgraph: "uniswap", operation: "query GetBundleById($Bundle_id: ID!) { bundles(where: { id: $Bundle_id) } }", kind: "FETCH") @resolver(subgraph: "uniswap", operation: "query GetBundlesByIds($Bundle_id: [ID!]!) { bundles(where: { id_in: $Bundle_id }) }", kind: "BATCH") @variable(subgraph: "uniswap", name: "Bundle_id", select: "id") {\n id: ID! @source(subgraph: "uniswap", name: "id", type: "ID!")\n ethPrice: BigDecimal! @source(subgraph: "uniswap", name: "ethPrice", type: "BigDecimal!")\n}\n\ninput Bundle_filter @source(subgraph: "uniswap", name: "Bundle_filter") {\n id: ID @source(subgraph: "uniswap", name: "id", type: "ID")\n id_not: ID @source(subgraph: "uniswap", name: "id_not", type: "ID")\n id_gt: ID @source(subgraph: "uniswap", name: "id_gt", type: "ID")\n id_lt: ID @source(subgraph: "uniswap", name: "id_lt", type: "ID")\n id_gte: ID @source(subgraph: "uniswap", name: "id_gte", type: "ID")\n id_lte: ID @source(subgraph: "uniswap", name: "id_lte", type: "ID")\n id_in: [ID!] @source(subgraph: "uniswap", name: "id_in", type: "[ID!]")\n id_not_in: [ID!] @source(subgraph: "uniswap", name: "id_not_in", type: "[ID!]")\n ethPrice: BigDecimal @source(subgraph: "uniswap", name: "ethPrice", type: "BigDecimal")\n ethPrice_not: BigDecimal @source(subgraph: "uniswap", name: "ethPrice_not", type: "BigDecimal")\n ethPrice_gt: BigDecimal @source(subgraph: "uniswap", name: "ethPrice_gt", type: "BigDecimal")\n ethPrice_lt: BigDecimal @source(subgraph: "uniswap", name: "ethPrice_lt", type: "BigDecimal")\n ethPrice_gte: BigDecimal @source(subgraph: "uniswap", name: "ethPrice_gte", type: "BigDecimal")\n ethPrice_lte: BigDecimal @source(subgraph: "uniswap", name: "ethPrice_lte", type: "BigDecimal")\n ethPrice_in: [BigDecimal!] @source(subgraph: "uniswap", name: "ethPrice_in", type: "[BigDecimal!]")\n ethPrice_not_in: [BigDecimal!] @source(subgraph: "uniswap", name: "ethPrice_not_in", type: "[BigDecimal!]")\n """Filter for the block changed event."""\n _change_block: BlockChangedFilter @source(subgraph: "uniswap", name: "_change_block", type: "BlockChangedFilter")\n and: [Bundle_filter] @source(subgraph: "uniswap", name: "and", type: "[Bundle_filter]")\n or: [Bundle_filter] @source(subgraph: "uniswap", name: "or", type: "[Bundle_filter]")\n}\n\nenum Bundle_orderBy @source(subgraph: "uniswap", name: "Bundle_orderBy") {\n id @source(subgraph: "uniswap", name: "id")\n ethPrice @source(subgraph: "uniswap", name: "ethPrice")\n}\n\ntype Burn @source(subgraph: "uniswap", name: "Burn") @resolver(subgraph: "uniswap", operation: "query BurnById($Burn_id: ID!) { burn(id: $Burn_id) }", kind: "FETCH") @resolver(subgraph: "uniswap", operation: "query GetBurnById($Burn_id: ID!) { burns(where: { id: $Burn_id) } }", kind: "FETCH") @resolver(subgraph: "uniswap", operation: "query GetBurnsByIds($Burn_id: [ID!]!) { burns(where: { id_in: $Burn_id }) }", kind: "BATCH") @variable(subgraph: "uniswap", name: "Burn_id", select: "id") {\n id: ID! @source(subgraph: "uniswap", name: "id", type: "ID!")\n transaction: Transaction! @source(subgraph: "uniswap", name: "transaction", type: "Transaction!")\n timestamp: BigInt! @source(subgraph: "uniswap", name: "timestamp", type: "BigInt!")\n pair: Pair! @source(subgraph: "uniswap", name: "pair", type: "Pair!")\n liquidity: BigDecimal! @source(subgraph: "uniswap", name: "liquidity", type: "BigDecimal!")\n sender: Bytes @source(subgraph: "uniswap", name: "sender", type: "Bytes")\n amount0: BigDecimal @source(subgraph: "uniswap", name: "amount0", type: "BigDecimal")\n amount1: BigDecimal @source(subgraph: "uniswap", name: "amount1", type: "BigDecimal")\n to: Bytes @source(subgraph: "uniswap", name: "to", type: "Bytes")\n logIndex: BigInt @source(subgraph: "uniswap", name: "logIndex", type: "BigInt")\n amountUSD: BigDecimal @source(subgraph: "uniswap", name: "amountUSD", type: "BigDecimal")\n needsComplete: Boolean! @source(subgraph: "uniswap", name: "needsComplete", type: "Boolean!")\n feeTo: Bytes @source(subgraph: "uniswap", name: "feeTo", type: "Bytes")\n feeLiquidity: BigDecimal @source(subgraph: "uniswap", name: "feeLiquidity", type: "BigDecimal")\n}\n\ninput Burn_filter @source(subgraph: "uniswap", name: "Burn_filter") {\n id: ID @source(subgraph: "uniswap", name: "id", type: "ID")\n id_not: ID @source(subgraph: "uniswap", name: "id_not", type: "ID")\n id_gt: ID @source(subgraph: "uniswap", name: "id_gt", type: "ID")\n id_lt: ID @source(subgraph: "uniswap", name: "id_lt", type: "ID")\n id_gte: ID @source(subgraph: "uniswap", name: "id_gte", type: "ID")\n id_lte: ID @source(subgraph: "uniswap", name: "id_lte", type: "ID")\n id_in: [ID!] @source(subgraph: "uniswap", name: "id_in", type: "[ID!]")\n id_not_in: [ID!] @source(subgraph: "uniswap", name: "id_not_in", type: "[ID!]")\n transaction: String @source(subgraph: "uniswap", name: "transaction", type: "String")\n transaction_not: String @source(subgraph: "uniswap", name: "transaction_not", type: "String")\n transaction_gt: String @source(subgraph: "uniswap", name: "transaction_gt", type: "String")\n transaction_lt: String @source(subgraph: "uniswap", name: "transaction_lt", type: "String")\n transaction_gte: String @source(subgraph: "uniswap", name: "transaction_gte", type: "String")\n transaction_lte: String @source(subgraph: "uniswap", name: "transaction_lte", type: "String")\n transaction_in: [String!] @source(subgraph: "uniswap", name: "transaction_in", type: "[String!]")\n transaction_not_in: [String!] @source(subgraph: "uniswap", name: "transaction_not_in", type: "[String!]")\n transaction_contains: String @source(subgraph: "uniswap", name: "transaction_contains", type: "String")\n transaction_contains_nocase: String @source(subgraph: "uniswap", name: "transaction_contains_nocase", type: "String")\n transaction_not_contains: String @source(subgraph: "uniswap", name: "transaction_not_contains", type: "String")\n transaction_not_contains_nocase: String @source(subgraph: "uniswap", name: "transaction_not_contains_nocase", type: "String")\n transaction_starts_with: String @source(subgraph: "uniswap", name: "transaction_starts_with", type: "String")\n transaction_starts_with_nocase: String @source(subgraph: "uniswap", name: "transaction_starts_with_nocase", type: "String")\n transaction_not_starts_with: String @source(subgraph: "uniswap", name: "transaction_not_starts_with", type: "String")\n transaction_not_starts_with_nocase: String @source(subgraph: "uniswap", name: "transaction_not_starts_with_nocase", type: "String")\n transaction_ends_with: String @source(subgraph: "uniswap", name: "transaction_ends_with", type: "String")\n transaction_ends_with_nocase: String @source(subgraph: "uniswap", name: "transaction_ends_with_nocase", type: "String")\n transaction_not_ends_with: String @source(subgraph: "uniswap", name: "transaction_not_ends_with", type: "String")\n transaction_not_ends_with_nocase: String @source(subgraph: "uniswap", name: "transaction_not_ends_with_nocase", type: "String")\n transaction_: Transaction_filter @source(subgraph: "uniswap", name: "transaction_", type: "Transaction_filter")\n timestamp: BigInt @source(subgraph: "uniswap", name: "timestamp", type: "BigInt")\n timestamp_not: BigInt @source(subgraph: "uniswap", name: "timestamp_not", type: "BigInt")\n timestamp_gt: BigInt @source(subgraph: "uniswap", name: "timestamp_gt", type: "BigInt")\n timestamp_lt: BigInt @source(subgraph: "uniswap", name: "timestamp_lt", type: "BigInt")\n timestamp_gte: BigInt @source(subgraph: "uniswap", name: "timestamp_gte", type: "BigInt")\n timestamp_lte: BigInt @source(subgraph: "uniswap", name: "timestamp_lte", type: "BigInt")\n timestamp_in: [BigInt!] @source(subgraph: "uniswap", name: "timestamp_in", type: "[BigInt!]")\n timestamp_not_in: [BigInt!] @source(subgraph: "uniswap", name: "timestamp_not_in", type: "[BigInt!]")\n pair: String @source(subgraph: "uniswap", name: "pair", type: "String")\n pair_not: String @source(subgraph: "uniswap", name: "pair_not", type: "String")\n pair_gt: String @source(subgraph: "uniswap", name: "pair_gt", type: "String")\n pair_lt: String @source(subgraph: "uniswap", name: "pair_lt", type: "String")\n pair_gte: String @source(subgraph: "uniswap", name: "pair_gte", type: "String")\n pair_lte: String @source(subgraph: "uniswap", name: "pair_lte", type: "String")\n pair_in: [String!] @source(subgraph: "uniswap", name: "pair_in", type: "[String!]")\n pair_not_in: [String!] @source(subgraph: "uniswap", name: "pair_not_in", type: "[String!]")\n pair_contains: String @source(subgraph: "uniswap", name: "pair_contains", type: "String")\n pair_contains_nocase: String @source(subgraph: "uniswap", name: "pair_contains_nocase", type: "String")\n pair_not_contains: String @source(subgraph: "uniswap", name: "pair_not_contains", type: "String")\n pair_not_contains_nocase: String @source(subgraph: "uniswap", name: "pair_not_contains_nocase", type: "String")\n pair_starts_with: String @source(subgraph: "uniswap", name: "pair_starts_with", type: "String")\n pair_starts_with_nocase: String @source(subgraph: "uniswap", name: "pair_starts_with_nocase", type: "String")\n pair_not_starts_with: String @source(subgraph: "uniswap", name: "pair_not_starts_with", type: "String")\n pair_not_starts_with_nocase: String @source(subgraph: "uniswap", name: "pair_not_starts_with_nocase", type: "String")\n pair_ends_with: String @source(subgraph: "uniswap", name: "pair_ends_with", type: "String")\n pair_ends_with_nocase: String @source(subgraph: "uniswap", name: "pair_ends_with_nocase", type: "String")\n pair_not_ends_with: String @source(subgraph: "uniswap", name: "pair_not_ends_with", type: "String")\n pair_not_ends_with_nocase: String @source(subgraph: "uniswap", name: "pair_not_ends_with_nocase", type: "String")\n pair_: Pair_filter @source(subgraph: "uniswap", name: "pair_", type: "Pair_filter")\n liquidity: BigDecimal @source(subgraph: "uniswap", name: "liquidity", type: "BigDecimal")\n liquidity_not: BigDecimal @source(subgraph: "uniswap", name: "liquidity_not", type: "BigDecimal")\n liquidity_gt: BigDecimal @source(subgraph: "uniswap", name: "liquidity_gt", type: "BigDecimal")\n liquidity_lt: BigDecimal @source(subgraph: "uniswap", name: "liquidity_lt", type: "BigDecimal")\n liquidity_gte: BigDecimal @source(subgraph: "uniswap", name: "liquidity_gte", type: "BigDecimal")\n liquidity_lte: BigDecimal @source(subgraph: "uniswap", name: "liquidity_lte", type: "BigDecimal")\n liquidity_in: [BigDecimal!] @source(subgraph: "uniswap", name: "liquidity_in", type: "[BigDecimal!]")\n liquidity_not_in: [BigDecimal!] @source(subgraph: "uniswap", name: "liquidity_not_in", type: "[BigDecimal!]")\n sender: Bytes @source(subgraph: "uniswap", name: "sender", type: "Bytes")\n sender_not: Bytes @source(subgraph: "uniswap", name: "sender_not", type: "Bytes")\n sender_gt: Bytes @source(subgraph: "uniswap", name: "sender_gt", type: "Bytes")\n sender_lt: Bytes @source(subgraph: "uniswap", name: "sender_lt", type: "Bytes")\n sender_gte: Bytes @source(subgraph: "uniswap", name: "sender_gte", type: "Bytes")\n sender_lte: Bytes @source(subgraph: "uniswap", name: "sender_lte", type: "Bytes")\n sender_in: [Bytes!] @source(subgraph: "uniswap", name: "sender_in", type: "[Bytes!]")\n sender_not_in: [Bytes!] @source(subgraph: "uniswap", name: "sender_not_in", type: "[Bytes!]")\n sender_contains: Bytes @source(subgraph: "uniswap", name: "sender_contains", type: "Bytes")\n sender_not_contains: Bytes @source(subgraph: "uniswap", name: "sender_not_contains", type: "Bytes")\n amount0: BigDecimal @source(subgraph: "uniswap", name: "amount0", type: "BigDecimal")\n amount0_not: BigDecimal @source(subgraph: "uniswap", name: "amount0_not", type: "BigDecimal")\n amount0_gt: BigDecimal @source(subgraph: "uniswap", name: "amount0_gt", type: "BigDecimal")\n amount0_lt: BigDecimal @source(subgraph: "uniswap", name: "amount0_lt", type: "BigDecimal")\n amount0_gte: BigDecimal @source(subgraph: "uniswap", name: "amount0_gte", type: "BigDecimal")\n amount0_lte: BigDecimal @source(subgraph: "uniswap", name: "amount0_lte", type: "BigDecimal")\n amount0_in: [BigDecimal!] @source(subgraph: "uniswap", name: "amount0_in", type: "[BigDecimal!]")\n amount0_not_in: [BigDecimal!] @source(subgraph: "uniswap", name: "amount0_not_in", type: "[BigDecimal!]")\n amount1: BigDecimal @source(subgraph: "uniswap", name: "amount1", type: "BigDecimal")\n amount1_not: BigDecimal @source(subgraph: "uniswap", name: "amount1_not", type: "BigDecimal")\n amount1_gt: BigDecimal @source(subgraph: "uniswap", name: "amount1_gt", type: "BigDecimal")\n amount1_lt: BigDecimal @source(subgraph: "uniswap", name: "amount1_lt", type: "BigDecimal")\n amount1_gte: BigDecimal @source(subgraph: "uniswap", name: "amount1_gte", type: "BigDecimal")\n amount1_lte: BigDecimal @source(subgraph: "uniswap", name: "amount1_lte", type: "BigDecimal")\n amount1_in: [BigDecimal!] @source(subgraph: "uniswap", name: "amount1_in", type: "[BigDecimal!]")\n amount1_not_in: [BigDecimal!] @source(subgraph: "uniswap", name: "amount1_not_in", type: "[BigDecimal!]")\n to: Bytes @source(subgraph: "uniswap", name: "to", type: "Bytes")\n to_not: Bytes @source(subgraph: "uniswap", name: "to_not", type: "Bytes")\n to_gt: Bytes @source(subgraph: "uniswap", name: "to_gt", type: "Bytes")\n to_lt: Bytes @source(subgraph: "uniswap", name: "to_lt", type: "Bytes")\n to_gte: Bytes @source(subgraph: "uniswap", name: "to_gte", type: "Bytes")\n to_lte: Bytes @source(subgraph: "uniswap", name: "to_lte", type: "Bytes")\n to_in: [Bytes!] @source(subgraph: "uniswap", name: "to_in", type: "[Bytes!]")\n to_not_in: [Bytes!] @source(subgraph: "uniswap", name: "to_not_in", type: "[Bytes!]")\n to_contains: Bytes @source(subgraph: "uniswap", name: "to_contains", type: "Bytes")\n to_not_contains: Bytes @source(subgraph: "uniswap", name: "to_not_contains", type: "Bytes")\n logIndex: BigInt @source(subgraph: "uniswap", name: "logIndex", type: "BigInt")\n logIndex_not: BigInt @source(subgraph: "uniswap", name: "logIndex_not", type: "BigInt")\n logIndex_gt: BigInt @source(subgraph: "uniswap", name: "logIndex_gt", type: "BigInt")\n logIndex_lt: BigInt @source(subgraph: "uniswap", name: "logIndex_lt", type: "BigInt")\n logIndex_gte: BigInt @source(subgraph: "uniswap", name: "logIndex_gte", type: "BigInt")\n logIndex_lte: BigInt @source(subgraph: "uniswap", name: "logIndex_lte", type: "BigInt")\n logIndex_in: [BigInt!] @source(subgraph: "uniswap", name: "logIndex_in", type: "[BigInt!]")\n logIndex_not_in: [BigInt!] @source(subgraph: "uniswap", name: "logIndex_not_in", type: "[BigInt!]")\n amountUSD: BigDecimal @source(subgraph: "uniswap", name: "amountUSD", type: "BigDecimal")\n amountUSD_not: BigDecimal @source(subgraph: "uniswap", name: "amountUSD_not", type: "BigDecimal")\n amountUSD_gt: BigDecimal @source(subgraph: "uniswap", name: "amountUSD_gt", type: "BigDecimal")\n amountUSD_lt: BigDecimal @source(subgraph: "uniswap", name: "amountUSD_lt", type: "BigDecimal")\n amountUSD_gte: BigDecimal @source(subgraph: "uniswap", name: "amountUSD_gte", type: "BigDecimal")\n amountUSD_lte: BigDecimal @source(subgraph: "uniswap", name: "amountUSD_lte", type: "BigDecimal")\n amountUSD_in: [BigDecimal!] @source(subgraph: "uniswap", name: "amountUSD_in", type: "[BigDecimal!]")\n amountUSD_not_in: [BigDecimal!] @source(subgraph: "uniswap", name: "amountUSD_not_in", type: "[BigDecimal!]")\n needsComplete: Boolean @source(subgraph: "uniswap", name: "needsComplete", type: "Boolean")\n needsComplete_not: Boolean @source(subgraph: "uniswap", name: "needsComplete_not", type: "Boolean")\n needsComplete_in: [Boolean!] @source(subgraph: "uniswap", name: "needsComplete_in", type: "[Boolean!]")\n needsComplete_not_in: [Boolean!] @source(subgraph: "uniswap", name: "needsComplete_not_in", type: "[Boolean!]")\n feeTo: Bytes @source(subgraph: "uniswap", name: "feeTo", type: "Bytes")\n feeTo_not: Bytes @source(subgraph: "uniswap", name: "feeTo_not", type: "Bytes")\n feeTo_gt: Bytes @source(subgraph: "uniswap", name: "feeTo_gt", type: "Bytes")\n feeTo_lt: Bytes @source(subgraph: "uniswap", name: "feeTo_lt", type: "Bytes")\n feeTo_gte: Bytes @source(subgraph: "uniswap", name: "feeTo_gte", type: "Bytes")\n feeTo_lte: Bytes @source(subgraph: "uniswap", name: "feeTo_lte", type: "Bytes")\n feeTo_in: [Bytes!] @source(subgraph: "uniswap", name: "feeTo_in", type: "[Bytes!]")\n feeTo_not_in: [Bytes!] @source(subgraph: "uniswap", name: "feeTo_not_in", type: "[Bytes!]")\n feeTo_contains: Bytes @source(subgraph: "uniswap", name: "feeTo_contains", type: "Bytes")\n feeTo_not_contains: Bytes @source(subgraph: "uniswap", name: "feeTo_not_contains", type: "Bytes")\n feeLiquidity: BigDecimal @source(subgraph: "uniswap", name: "feeLiquidity", type: "BigDecimal")\n feeLiquidity_not: BigDecimal @source(subgraph: "uniswap", name: "feeLiquidity_not", type: "BigDecimal")\n feeLiquidity_gt: BigDecimal @source(subgraph: "uniswap", name: "feeLiquidity_gt", type: "BigDecimal")\n feeLiquidity_lt: BigDecimal @source(subgraph: "uniswap", name: "feeLiquidity_lt", type: "BigDecimal")\n feeLiquidity_gte: BigDecimal @source(subgraph: "uniswap", name: "feeLiquidity_gte", type: "BigDecimal")\n feeLiquidity_lte: BigDecimal @source(subgraph: "uniswap", name: "feeLiquidity_lte", type: "BigDecimal")\n feeLiquidity_in: [BigDecimal!] @source(subgraph: "uniswap", name: "feeLiquidity_in", type: "[BigDecimal!]")\n feeLiquidity_not_in: [BigDecimal!] @source(subgraph: "uniswap", name: "feeLiquidity_not_in", type: "[BigDecimal!]")\n """Filter for the block changed event."""\n _change_block: BlockChangedFilter @source(subgraph: "uniswap", name: "_change_block", type: "BlockChangedFilter")\n and: [Burn_filter] @source(subgraph: "uniswap", name: "and", type: "[Burn_filter]")\n or: [Burn_filter] @source(subgraph: "uniswap", name: "or", type: "[Burn_filter]")\n}\n\nenum Burn_orderBy @source(subgraph: "uniswap", name: "Burn_orderBy") {\n id @source(subgraph: "uniswap", name: "id")\n transaction @source(subgraph: "uniswap", name: "transaction")\n transaction__id @source(subgraph: "uniswap", name: "transaction__id")\n transaction__blockNumber @source(subgraph: "uniswap", name: "transaction__blockNumber")\n transaction__timestamp @source(subgraph: "uniswap", name: "transaction__timestamp")\n timestamp @source(subgraph: "uniswap", name: "timestamp")\n pair @source(subgraph: "uniswap", name: "pair")\n pair__id @source(subgraph: "uniswap", name: "pair__id")\n pair__reserve0 @source(subgraph: "uniswap", name: "pair__reserve0")\n pair__reserve1 @source(subgraph: "uniswap", name: "pair__reserve1")\n pair__totalSupply @source(subgraph: "uniswap", name: "pair__totalSupply")\n pair__reserveETH @source(subgraph: "uniswap", name: "pair__reserveETH")\n pair__reserveUSD @source(subgraph: "uniswap", name: "pair__reserveUSD")\n pair__trackedReserveETH @source(subgraph: "uniswap", name: "pair__trackedReserveETH")\n pair__token0Price @source(subgraph: "uniswap", name: "pair__token0Price")\n pair__token1Price @source(subgraph: "uniswap", name: "pair__token1Price")\n pair__volumeToken0 @source(subgraph: "uniswap", name: "pair__volumeToken0")\n pair__volumeToken1 @source(subgraph: "uniswap", name: "pair__volumeToken1")\n pair__volumeUSD @source(subgraph: "uniswap", name: "pair__volumeUSD")\n pair__untrackedVolumeUSD @source(subgraph: "uniswap", name: "pair__untrackedVolumeUSD")\n pair__txCount @source(subgraph: "uniswap", name: "pair__txCount")\n pair__createdAtTimestamp @source(subgraph: "uniswap", name: "pair__createdAtTimestamp")\n pair__createdAtBlockNumber @source(subgraph: "uniswap", name: "pair__createdAtBlockNumber")\n pair__liquidityProviderCount @source(subgraph: "uniswap", name: "pair__liquidityProviderCount")\n liquidity @source(subgraph: "uniswap", name: "liquidity")\n sender @source(subgraph: "uniswap", name: "sender")\n amount0 @source(subgraph: "uniswap", name: "amount0")\n amount1 @source(subgraph: "uniswap", name: "amount1")\n to @source(subgraph: "uniswap", name: "to")\n logIndex @source(subgraph: "uniswap", name: "logIndex")\n amountUSD @source(subgraph: "uniswap", name: "amountUSD")\n needsComplete @source(subgraph: "uniswap", name: "needsComplete")\n feeTo @source(subgraph: "uniswap", name: "feeTo")\n feeLiquidity @source(subgraph: "uniswap", name: "feeLiquidity")\n}\n\ntype LiquidityPosition @source(subgraph: "uniswap", name: "LiquidityPosition") @resolver(subgraph: "uniswap", operation: "query LiquidityPositionById($LiquidityPosition_id: ID!) { liquidityPosition(id: $LiquidityPosition_id) }", kind: "FETCH") @resolver(subgraph: "uniswap", operation: "query GetLiquidityPositionById($LiquidityPosition_id: ID!) { liquidityPositions(where: { id: $LiquidityPosition_id) } }", kind: "FETCH") @resolver(subgraph: "uniswap", operation: "query GetLiquidityPositionsByIds($LiquidityPosition_id: [ID!]!) { liquidityPositions(where: { id_in: $LiquidityPosition_id }) }", kind: "BATCH") @variable(subgraph: "uniswap", name: "LiquidityPosition_id", select: "id") {\n id: ID! @source(subgraph: "uniswap", name: "id", type: "ID!")\n user: User! @source(subgraph: "uniswap", name: "user", type: "User!")\n pair: Pair! @source(subgraph: "uniswap", name: "pair", type: "Pair!")\n liquidityTokenBalance: BigDecimal! @source(subgraph: "uniswap", name: "liquidityTokenBalance", type: "BigDecimal!")\n}\n\ntype LiquidityPositionSnapshot @source(subgraph: "uniswap", name: "LiquidityPositionSnapshot") @resolver(subgraph: "uniswap", operation: "query LiquidityPositionSnapshotById($LiquidityPositionSnapshot_id: ID!) { liquidityPositionSnapshot(id: $LiquidityPositionSnapshot_id) }", kind: "FETCH") @resolver(subgraph: "uniswap", operation: "query GetLiquidityPositionSnapshotById($LiquidityPositionSnapshot_id: ID!) { liquidityPositionSnapshots(where: { id: $LiquidityPositionSnapshot_id) } }", kind: "FETCH") @resolver(subgraph: "uniswap", operation: "query GetLiquidityPositionSnapshotsByIds($LiquidityPositionSnapshot_id: [ID!]!) { liquidityPositionSnapshots(where: { id_in: $LiquidityPositionSnapshot_id }) }", kind: "BATCH") @resolver(subgraph: "uniswap", operation: "query LiquidityPositionSnapshotsByTimestamps($LiquidityPositionSnapshot_timestamp: Int) { liquidityPositionSnapshots(skip: $LiquidityPositionSnapshot_timestamp) }", kind: "BATCH") @resolver(subgraph: "uniswap", operation: "query LiquidityPositionSnapshotsByBlocks($LiquidityPositionSnapshot_block: Int) { liquidityPositionSnapshots(skip: $LiquidityPositionSnapshot_block) }", kind: "BATCH") @variable(subgraph: "uniswap", name: "LiquidityPositionSnapshot_id", select: "id") @variable(subgraph: "uniswap", name: "LiquidityPositionSnapshot_timestamp", select: "timestamp") @variable(subgraph: "uniswap", name: "LiquidityPositionSnapshot_block", select: "block") {\n id: ID! @source(subgraph: "uniswap", name: "id", type: "ID!")\n liquidityPosition: LiquidityPosition! @source(subgraph: "uniswap", name: "liquidityPosition", type: "LiquidityPosition!")\n timestamp: Int! @source(subgraph: "uniswap", name: "timestamp", type: "Int!")\n block: Int! @source(subgraph: "uniswap", name: "block", type: "Int!")\n user: User! @source(subgraph: "uniswap", name: "user", type: "User!")\n pair: Pair! @source(subgraph: "uniswap", name: "pair", type: "Pair!")\n token0PriceUSD: BigDecimal! @source(subgraph: "uniswap", name: "token0PriceUSD", type: "BigDecimal!")\n token1PriceUSD: BigDecimal! @source(subgraph: "uniswap", name: "token1PriceUSD", type: "BigDecimal!")\n reserve0: BigDecimal! @source(subgraph: "uniswap", name: "reserve0", type: "BigDecimal!")\n reserve1: BigDecimal! @source(subgraph: "uniswap", name: "reserve1", type: "BigDecimal!")\n reserveUSD: BigDecimal! @source(subgraph: "uniswap", name: "reserveUSD", type: "BigDecimal!")\n liquidityTokenTotalSupply: BigDecimal! @source(subgraph: "uniswap", name: "liquidityTokenTotalSupply", type: "BigDecimal!")\n liquidityTokenBalance: BigDecimal! @source(subgraph: "uniswap", name: "liquidityTokenBalance", type: "BigDecimal!")\n}\n\ninput LiquidityPositionSnapshot_filter @source(subgraph: "uniswap", name: "LiquidityPositionSnapshot_filter") {\n id: ID @source(subgraph: "uniswap", name: "id", type: "ID")\n id_not: ID @source(subgraph: "uniswap", name: "id_not", type: "ID")\n id_gt: ID @source(subgraph: "uniswap", name: "id_gt", type: "ID")\n id_lt: ID @source(subgraph: "uniswap", name: "id_lt", type: "ID")\n id_gte: ID @source(subgraph: "uniswap", name: "id_gte", type: "ID")\n id_lte: ID @source(subgraph: "uniswap", name: "id_lte", type: "ID")\n id_in: [ID!] @source(subgraph: "uniswap", name: "id_in", type: "[ID!]")\n id_not_in: [ID!] @source(subgraph: "uniswap", name: "id_not_in", type: "[ID!]")\n liquidityPosition: String @source(subgraph: "uniswap", name: "liquidityPosition", type: "String")\n liquidityPosition_not: String @source(subgraph: "uniswap", name: "liquidityPosition_not", type: "String")\n liquidityPosition_gt: String @source(subgraph: "uniswap", name: "liquidityPosition_gt", type: "String")\n liquidityPosition_lt: String @source(subgraph: "uniswap", name: "liquidityPosition_lt", type: "String")\n liquidityPosition_gte: String @source(subgraph: "uniswap", name: "liquidityPosition_gte", type: "String")\n liquidityPosition_lte: String @source(subgraph: "uniswap", name: "liquidityPosition_lte", type: "String")\n liquidityPosition_in: [String!] @source(subgraph: "uniswap", name: "liquidityPosition_in", type: "[String!]")\n liquidityPosition_not_in: [String!] @source(subgraph: "uniswap", name: "liquidityPosition_not_in", type: "[String!]")\n liquidityPosition_contains: String @source(subgraph: "uniswap", name: "liquidityPosition_contains", type: "String")\n liquidityPosition_contains_nocase: String @source(subgraph: "uniswap", name: "liquidityPosition_contains_nocase", type: "String")\n liquidityPosition_not_contains: String @source(subgraph: "uniswap", name: "liquidityPosition_not_contains", type: "String")\n liquidityPosition_not_contains_nocase: String @source(subgraph: "uniswap", name: "liquidityPosition_not_contains_nocase", type: "String")\n liquidityPosition_starts_with: String @source(subgraph: "uniswap", name: "liquidityPosition_starts_with", type: "String")\n liquidityPosition_starts_with_nocase: String @source(subgraph: "uniswap", name: "liquidityPosition_starts_with_nocase", type: "String")\n liquidityPosition_not_starts_with: String @source(subgraph: "uniswap", name: "liquidityPosition_not_starts_with", type: "String")\n liquidityPosition_not_starts_with_nocase: String @source(subgraph: "uniswap", name: "liquidityPosition_not_starts_with_nocase", type: "String")\n liquidityPosition_ends_with: String @source(subgraph: "uniswap", name: "liquidityPosition_ends_with", type: "String")\n liquidityPosition_ends_with_nocase: String @source(subgraph: "uniswap", name: "liquidityPosition_ends_with_nocase", type: "String")\n liquidityPosition_not_ends_with: String @source(subgraph: "uniswap", name: "liquidityPosition_not_ends_with", type: "String")\n liquidityPosition_not_ends_with_nocase: String @source(subgraph: "uniswap", name: "liquidityPosition_not_ends_with_nocase", type: "String")\n liquidityPosition_: LiquidityPosition_filter @source(subgraph: "uniswap", name: "liquidityPosition_", type: "LiquidityPosition_filter")\n timestamp: Int @source(subgraph: "uniswap", name: "timestamp", type: "Int")\n timestamp_not: Int @source(subgraph: "uniswap", name: "timestamp_not", type: "Int")\n timestamp_gt: Int @source(subgraph: "uniswap", name: "timestamp_gt", type: "Int")\n timestamp_lt: Int @source(subgraph: "uniswap", name: "timestamp_lt", type: "Int")\n timestamp_gte: Int @source(subgraph: "uniswap", name: "timestamp_gte", type: "Int")\n timestamp_lte: Int @source(subgraph: "uniswap", name: "timestamp_lte", type: "Int")\n timestamp_in: [Int!] @source(subgraph: "uniswap", name: "timestamp_in", type: "[Int!]")\n timestamp_not_in: [Int!] @source(subgraph: "uniswap", name: "timestamp_not_in", type: "[Int!]")\n block: Int @source(subgraph: "uniswap", name: "block", type: "Int")\n block_not: Int @source(subgraph: "uniswap", name: "block_not", type: "Int")\n block_gt: Int @source(subgraph: "uniswap", name: "block_gt", type: "Int")\n block_lt: Int @source(subgraph: "uniswap", name: "block_lt", type: "Int")\n block_gte: Int @source(subgraph: "uniswap", name: "block_gte", type: "Int")\n block_lte: Int @source(subgraph: "uniswap", name: "block_lte", type: "Int")\n block_in: [Int!] @source(subgraph: "uniswap", name: "block_in", type: "[Int!]")\n block_not_in: [Int!] @source(subgraph: "uniswap", name: "block_not_in", type: "[Int!]")\n user: String @source(subgraph: "uniswap", name: "user", type: "String")\n user_not: String @source(subgraph: "uniswap", name: "user_not", type: "String")\n user_gt: String @source(subgraph: "uniswap", name: "user_gt", type: "String")\n user_lt: String @source(subgraph: "uniswap", name: "user_lt", type: "String")\n user_gte: String @source(subgraph: "uniswap", name: "user_gte", type: "String")\n user_lte: String @source(subgraph: "uniswap", name: "user_lte", type: "String")\n user_in: [String!] @source(subgraph: "uniswap", name: "user_in", type: "[String!]")\n user_not_in: [String!] @source(subgraph: "uniswap", name: "user_not_in", type: "[String!]")\n user_contains: String @source(subgraph: "uniswap", name: "user_contains", type: "String")\n user_contains_nocase: String @source(subgraph: "uniswap", name: "user_contains_nocase", type: "String")\n user_not_contains: String @source(subgraph: "uniswap", name: "user_not_contains", type: "String")\n user_not_contains_nocase: String @source(subgraph: "uniswap", name: "user_not_contains_nocase", type: "String")\n user_starts_with: String @source(subgraph: "uniswap", name: "user_starts_with", type: "String")\n user_starts_with_nocase: String @source(subgraph: "uniswap", name: "user_starts_with_nocase", type: "String")\n user_not_starts_with: String @source(subgraph: "uniswap", name: "user_not_starts_with", type: "String")\n user_not_starts_with_nocase: String @source(subgraph: "uniswap", name: "user_not_starts_with_nocase", type: "String")\n user_ends_with: String @source(subgraph: "uniswap", name: "user_ends_with", type: "String")\n user_ends_with_nocase: String @source(subgraph: "uniswap", name: "user_ends_with_nocase", type: "String")\n user_not_ends_with: String @source(subgraph: "uniswap", name: "user_not_ends_with", type: "String")\n user_not_ends_with_nocase: String @source(subgraph: "uniswap", name: "user_not_ends_with_nocase", type: "String")\n user_: User_filter @source(subgraph: "uniswap", name: "user_", type: "User_filter")\n pair: String @source(subgraph: "uniswap", name: "pair", type: "String")\n pair_not: String @source(subgraph: "uniswap", name: "pair_not", type: "String")\n pair_gt: String @source(subgraph: "uniswap", name: "pair_gt", type: "String")\n pair_lt: String @source(subgraph: "uniswap", name: "pair_lt", type: "String")\n pair_gte: String @source(subgraph: "uniswap", name: "pair_gte", type: "String")\n pair_lte: String @source(subgraph: "uniswap", name: "pair_lte", type: "String")\n pair_in: [String!] @source(subgraph: "uniswap", name: "pair_in", type: "[String!]")\n pair_not_in: [String!] @source(subgraph: "uniswap", name: "pair_not_in", type: "[String!]")\n pair_contains: String @source(subgraph: "uniswap", name: "pair_contains", type: "String")\n pair_contains_nocase: String @source(subgraph: "uniswap", name: "pair_contains_nocase", type: "String")\n pair_not_contains: String @source(subgraph: "uniswap", name: "pair_not_contains", type: "String")\n pair_not_contains_nocase: String @source(subgraph: "uniswap", name: "pair_not_contains_nocase", type: "String")\n pair_starts_with: String @source(subgraph: "uniswap", name: "pair_starts_with", type: "String")\n pair_starts_with_nocase: String @source(subgraph: "uniswap", name: "pair_starts_with_nocase", type: "String")\n pair_not_starts_with: String @source(subgraph: "uniswap", name: "pair_not_starts_with", type: "String")\n pair_not_starts_with_nocase: String @source(subgraph: "uniswap", name: "pair_not_starts_with_nocase", type: "String")\n pair_ends_with: String @source(subgraph: "uniswap", name: "pair_ends_with", type: "String")\n pair_ends_with_nocase: String @source(subgraph: "uniswap", name: "pair_ends_with_nocase", type: "String")\n pair_not_ends_with: String @source(subgraph: "uniswap", name: "pair_not_ends_with", type: "String")\n pair_not_ends_with_nocase: String @source(subgraph: "uniswap", name: "pair_not_ends_with_nocase", type: "String")\n pair_: Pair_filter @source(subgraph: "uniswap", name: "pair_", type: "Pair_filter")\n token0PriceUSD: BigDecimal @source(subgraph: "uniswap", name: "token0PriceUSD", type: "BigDecimal")\n token0PriceUSD_not: BigDecimal @source(subgraph: "uniswap", name: "token0PriceUSD_not", type: "BigDecimal")\n token0PriceUSD_gt: BigDecimal @source(subgraph: "uniswap", name: "token0PriceUSD_gt", type: "BigDecimal")\n token0PriceUSD_lt: BigDecimal @source(subgraph: "uniswap", name: "token0PriceUSD_lt", type: "BigDecimal")\n token0PriceUSD_gte: BigDecimal @source(subgraph: "uniswap", name: "token0PriceUSD_gte", type: "BigDecimal")\n token0PriceUSD_lte: BigDecimal @source(subgraph: "uniswap", name: "token0PriceUSD_lte", type: "BigDecimal")\n token0PriceUSD_in: [BigDecimal!] @source(subgraph: "uniswap", name: "token0PriceUSD_in", type: "[BigDecimal!]")\n token0PriceUSD_not_in: [BigDecimal!] @source(subgraph: "uniswap", name: "token0PriceUSD_not_in", type: "[BigDecimal!]")\n token1PriceUSD: BigDecimal @source(subgraph: "uniswap", name: "token1PriceUSD", type: "BigDecimal")\n token1PriceUSD_not: BigDecimal @source(subgraph: "uniswap", name: "token1PriceUSD_not", type: "BigDecimal")\n token1PriceUSD_gt: BigDecimal @source(subgraph: "uniswap", name: "token1PriceUSD_gt", type: "BigDecimal")\n token1PriceUSD_lt: BigDecimal @source(subgraph: "uniswap", name: "token1PriceUSD_lt", type: "BigDecimal")\n token1PriceUSD_gte: BigDecimal @source(subgraph: "uniswap", name: "token1PriceUSD_gte", type: "BigDecimal")\n token1PriceUSD_lte: BigDecimal @source(subgraph: "uniswap", name: "token1PriceUSD_lte", type: "BigDecimal")\n token1PriceUSD_in: [BigDecimal!] @source(subgraph: "uniswap", name: "token1PriceUSD_in", type: "[BigDecimal!]")\n token1PriceUSD_not_in: [BigDecimal!] @source(subgraph: "uniswap", name: "token1PriceUSD_not_in", type: "[BigDecimal!]")\n reserve0: BigDecimal @source(subgraph: "uniswap", name: "reserve0", type: "BigDecimal")\n reserve0_not: BigDecimal @source(subgraph: "uniswap", name: "reserve0_not", type: "BigDecimal")\n reserve0_gt: BigDecimal @source(subgraph: "uniswap", name: "reserve0_gt", type: "BigDecimal")\n reserve0_lt: BigDecimal @source(subgraph: "uniswap", name: "reserve0_lt", type: "BigDecimal")\n reserve0_gte: BigDecimal @source(subgraph: "uniswap", name: "reserve0_gte", type: "BigDecimal")\n reserve0_lte: BigDecimal @source(subgraph: "uniswap", name: "reserve0_lte", type: "BigDecimal")\n reserve0_in: [BigDecimal!] @source(subgraph: "uniswap", name: "reserve0_in", type: "[BigDecimal!]")\n reserve0_not_in: [BigDecimal!] @source(subgraph: "uniswap", name: "reserve0_not_in", type: "[BigDecimal!]")\n reserve1: BigDecimal @source(subgraph: "uniswap", name: "reserve1", type: "BigDecimal")\n reserve1_not: BigDecimal @source(subgraph: "uniswap", name: "reserve1_not", type: "BigDecimal")\n reserve1_gt: BigDecimal @source(subgraph: "uniswap", name: "reserve1_gt", type: "BigDecimal")\n reserve1_lt: BigDecimal @source(subgraph: "uniswap", name: "reserve1_lt", type: "BigDecimal")\n reserve1_gte: BigDecimal @source(subgraph: "uniswap", name: "reserve1_gte", type: "BigDecimal")\n reserve1_lte: BigDecimal @source(subgraph: "uniswap", name: "reserve1_lte", type: "BigDecimal")\n reserve1_in: [BigDecimal!] @source(subgraph: "uniswap", name: "reserve1_in", type: "[BigDecimal!]")\n reserve1_not_in: [BigDecimal!] @source(subgraph: "uniswap", name: "reserve1_not_in", type: "[BigDecimal!]")\n reserveUSD: BigDecimal @source(subgraph: "uniswap", name: "reserveUSD", type: "BigDecimal")\n reserveUSD_not: BigDecimal @source(subgraph: "uniswap", name: "reserveUSD_not", type: "BigDecimal")\n reserveUSD_gt: BigDecimal @source(subgraph: "uniswap", name: "reserveUSD_gt", type: "BigDecimal")\n reserveUSD_lt: BigDecimal @source(subgraph: "uniswap", name: "reserveUSD_lt", type: "BigDecimal")\n reserveUSD_gte: BigDecimal @source(subgraph: "uniswap", name: "reserveUSD_gte", type: "BigDecimal")\n reserveUSD_lte: BigDecimal @source(subgraph: "uniswap", name: "reserveUSD_lte", type: "BigDecimal")\n reserveUSD_in: [BigDecimal!] @source(subgraph: "uniswap", name: "reserveUSD_in", type: "[BigDecimal!]")\n reserveUSD_not_in: [BigDecimal!] @source(subgraph: "uniswap", name: "reserveUSD_not_in", type: "[BigDecimal!]")\n liquidityTokenTotalSupply: BigDecimal @source(subgraph: "uniswap", name: "liquidityTokenTotalSupply", type: "BigDecimal")\n liquidityTokenTotalSupply_not: BigDecimal @source(subgraph: "uniswap", name: "liquidityTokenTotalSupply_not", type: "BigDecimal")\n liquidityTokenTotalSupply_gt: BigDecimal @source(subgraph: "uniswap", name: "liquidityTokenTotalSupply_gt", type: "BigDecimal")\n liquidityTokenTotalSupply_lt: BigDecimal @source(subgraph: "uniswap", name: "liquidityTokenTotalSupply_lt", type: "BigDecimal")\n liquidityTokenTotalSupply_gte: BigDecimal @source(subgraph: "uniswap", name: "liquidityTokenTotalSupply_gte", type: "BigDecimal")\n liquidityTokenTotalSupply_lte: BigDecimal @source(subgraph: "uniswap", name: "liquidityTokenTotalSupply_lte", type: "BigDecimal")\n liquidityTokenTotalSupply_in: [BigDecimal!] @source(subgraph: "uniswap", name: "liquidityTokenTotalSupply_in", type: "[BigDecimal!]")\n liquidityTokenTotalSupply_not_in: [BigDecimal!] @source(subgraph: "uniswap", name: "liquidityTokenTotalSupply_not_in", type: "[BigDecimal!]")\n liquidityTokenBalance: BigDecimal @source(subgraph: "uniswap", name: "liquidityTokenBalance", type: "BigDecimal")\n liquidityTokenBalance_not: BigDecimal @source(subgraph: "uniswap", name: "liquidityTokenBalance_not", type: "BigDecimal")\n liquidityTokenBalance_gt: BigDecimal @source(subgraph: "uniswap", name: "liquidityTokenBalance_gt", type: "BigDecimal")\n liquidityTokenBalance_lt: BigDecimal @source(subgraph: "uniswap", name: "liquidityTokenBalance_lt", type: "BigDecimal")\n liquidityTokenBalance_gte: BigDecimal @source(subgraph: "uniswap", name: "liquidityTokenBalance_gte", type: "BigDecimal")\n liquidityTokenBalance_lte: BigDecimal @source(subgraph: "uniswap", name: "liquidityTokenBalance_lte", type: "BigDecimal")\n liquidityTokenBalance_in: [BigDecimal!] @source(subgraph: "uniswap", name: "liquidityTokenBalance_in", type: "[BigDecimal!]")\n liquidityTokenBalance_not_in: [BigDecimal!] @source(subgraph: "uniswap", name: "liquidityTokenBalance_not_in", type: "[BigDecimal!]")\n """Filter for the block changed event."""\n _change_block: BlockChangedFilter @source(subgraph: "uniswap", name: "_change_block", type: "BlockChangedFilter")\n and: [LiquidityPositionSnapshot_filter] @source(subgraph: "uniswap", name: "and", type: "[LiquidityPositionSnapshot_filter]")\n or: [LiquidityPositionSnapshot_filter] @source(subgraph: "uniswap", name: "or", type: "[LiquidityPositionSnapshot_filter]")\n}\n\nenum LiquidityPositionSnapshot_orderBy @source(subgraph: "uniswap", name: "LiquidityPositionSnapshot_orderBy") {\n id @source(subgraph: "uniswap", name: "id")\n liquidityPosition @source(subgraph: "uniswap", name: "liquidityPosition")\n liquidityPosition__id @source(subgraph: "uniswap", name: "liquidityPosition__id")\n liquidityPosition__liquidityTokenBalance @source(subgraph: "uniswap", name: "liquidityPosition__liquidityTokenBalance")\n timestamp @source(subgraph: "uniswap", name: "timestamp")\n block @source(subgraph: "uniswap", name: "block")\n user @source(subgraph: "uniswap", name: "user")\n user__id @source(subgraph: "uniswap", name: "user__id")\n user__usdSwapped @source(subgraph: "uniswap", name: "user__usdSwapped")\n pair @source(subgraph: "uniswap", name: "pair")\n pair__id @source(subgraph: "uniswap", name: "pair__id")\n pair__reserve0 @source(subgraph: "uniswap", name: "pair__reserve0")\n pair__reserve1 @source(subgraph: "uniswap", name: "pair__reserve1")\n pair__totalSupply @source(subgraph: "uniswap", name: "pair__totalSupply")\n pair__reserveETH @source(subgraph: "uniswap", name: "pair__reserveETH")\n pair__reserveUSD @source(subgraph: "uniswap", name: "pair__reserveUSD")\n pair__trackedReserveETH @source(subgraph: "uniswap", name: "pair__trackedReserveETH")\n pair__token0Price @source(subgraph: "uniswap", name: "pair__token0Price")\n pair__token1Price @source(subgraph: "uniswap", name: "pair__token1Price")\n pair__volumeToken0 @source(subgraph: "uniswap", name: "pair__volumeToken0")\n pair__volumeToken1 @source(subgraph: "uniswap", name: "pair__volumeToken1")\n pair__volumeUSD @source(subgraph: "uniswap", name: "pair__volumeUSD")\n pair__untrackedVolumeUSD @source(subgraph: "uniswap", name: "pair__untrackedVolumeUSD")\n pair__txCount @source(subgraph: "uniswap", name: "pair__txCount")\n pair__createdAtTimestamp @source(subgraph: "uniswap", name: "pair__createdAtTimestamp")\n pair__createdAtBlockNumber @source(subgraph: "uniswap", name: "pair__createdAtBlockNumber")\n pair__liquidityProviderCount @source(subgraph: "uniswap", name: "pair__liquidityProviderCount")\n token0PriceUSD @source(subgraph: "uniswap", name: "token0PriceUSD")\n token1PriceUSD @source(subgraph: "uniswap", name: "token1PriceUSD")\n reserve0 @source(subgraph: "uniswap", name: "reserve0")\n reserve1 @source(subgraph: "uniswap", name: "reserve1")\n reserveUSD @source(subgraph: "uniswap", name: "reserveUSD")\n liquidityTokenTotalSupply @source(subgraph: "uniswap", name: "liquidityTokenTotalSupply")\n liquidityTokenBalance @source(subgraph: "uniswap", name: "liquidityTokenBalance")\n}\n\ninput LiquidityPosition_filter @source(subgraph: "uniswap", name: "LiquidityPosition_filter") {\n id: ID @source(subgraph: "uniswap", name: "id", type: "ID")\n id_not: ID @source(subgraph: "uniswap", name: "id_not", type: "ID")\n id_gt: ID @source(subgraph: "uniswap", name: "id_gt", type: "ID")\n id_lt: ID @source(subgraph: "uniswap", name: "id_lt", type: "ID")\n id_gte: ID @source(subgraph: "uniswap", name: "id_gte", type: "ID")\n id_lte: ID @source(subgraph: "uniswap", name: "id_lte", type: "ID")\n id_in: [ID!] @source(subgraph: "uniswap", name: "id_in", type: "[ID!]")\n id_not_in: [ID!] @source(subgraph: "uniswap", name: "id_not_in", type: "[ID!]")\n user: String @source(subgraph: "uniswap", name: "user", type: "String")\n user_not: String @source(subgraph: "uniswap", name: "user_not", type: "String")\n user_gt: String @source(subgraph: "uniswap", name: "user_gt", type: "String")\n user_lt: String @source(subgraph: "uniswap", name: "user_lt", type: "String")\n user_gte: String @source(subgraph: "uniswap", name: "user_gte", type: "String")\n user_lte: String @source(subgraph: "uniswap", name: "user_lte", type: "String")\n user_in: [String!] @source(subgraph: "uniswap", name: "user_in", type: "[String!]")\n user_not_in: [String!] @source(subgraph: "uniswap", name: "user_not_in", type: "[String!]")\n user_contains: String @source(subgraph: "uniswap", name: "user_contains", type: "String")\n user_contains_nocase: String @source(subgraph: "uniswap", name: "user_contains_nocase", type: "String")\n user_not_contains: String @source(subgraph: "uniswap", name: "user_not_contains", type: "String")\n user_not_contains_nocase: String @source(subgraph: "uniswap", name: "user_not_contains_nocase", type: "String")\n user_starts_with: String @source(subgraph: "uniswap", name: "user_starts_with", type: "String")\n user_starts_with_nocase: String @source(subgraph: "uniswap", name: "user_starts_with_nocase", type: "String")\n user_not_starts_with: String @source(subgraph: "uniswap", name: "user_not_starts_with", type: "String")\n user_not_starts_with_nocase: String @source(subgraph: "uniswap", name: "user_not_starts_with_nocase", type: "String")\n user_ends_with: String @source(subgraph: "uniswap", name: "user_ends_with", type: "String")\n user_ends_with_nocase: String @source(subgraph: "uniswap", name: "user_ends_with_nocase", type: "String")\n user_not_ends_with: String @source(subgraph: "uniswap", name: "user_not_ends_with", type: "String")\n user_not_ends_with_nocase: String @source(subgraph: "uniswap", name: "user_not_ends_with_nocase", type: "String")\n user_: User_filter @source(subgraph: "uniswap", name: "user_", type: "User_filter")\n pair: String @source(subgraph: "uniswap", name: "pair", type: "String")\n pair_not: String @source(subgraph: "uniswap", name: "pair_not", type: "String")\n pair_gt: String @source(subgraph: "uniswap", name: "pair_gt", type: "String")\n pair_lt: String @source(subgraph: "uniswap", name: "pair_lt", type: "String")\n pair_gte: String @source(subgraph: "uniswap", name: "pair_gte", type: "String")\n pair_lte: String @source(subgraph: "uniswap", name: "pair_lte", type: "String")\n pair_in: [String!] @source(subgraph: "uniswap", name: "pair_in", type: "[String!]")\n pair_not_in: [String!] @source(subgraph: "uniswap", name: "pair_not_in", type: "[String!]")\n pair_contains: String @source(subgraph: "uniswap", name: "pair_contains", type: "String")\n pair_contains_nocase: String @source(subgraph: "uniswap", name: "pair_contains_nocase", type: "String")\n pair_not_contains: String @source(subgraph: "uniswap", name: "pair_not_contains", type: "String")\n pair_not_contains_nocase: String @source(subgraph: "uniswap", name: "pair_not_contains_nocase", type: "String")\n pair_starts_with: String @source(subgraph: "uniswap", name: "pair_starts_with", type: "String")\n pair_starts_with_nocase: String @source(subgraph: "uniswap", name: "pair_starts_with_nocase", type: "String")\n pair_not_starts_with: String @source(subgraph: "uniswap", name: "pair_not_starts_with", type: "String")\n pair_not_starts_with_nocase: String @source(subgraph: "uniswap", name: "pair_not_starts_with_nocase", type: "String")\n pair_ends_with: String @source(subgraph: "uniswap", name: "pair_ends_with", type: "String")\n pair_ends_with_nocase: String @source(subgraph: "uniswap", name: "pair_ends_with_nocase", type: "String")\n pair_not_ends_with: String @source(subgraph: "uniswap", name: "pair_not_ends_with", type: "String")\n pair_not_ends_with_nocase: String @source(subgraph: "uniswap", name: "pair_not_ends_with_nocase", type: "String")\n pair_: Pair_filter @source(subgraph: "uniswap", name: "pair_", type: "Pair_filter")\n liquidityTokenBalance: BigDecimal @source(subgraph: "uniswap", name: "liquidityTokenBalance", type: "BigDecimal")\n liquidityTokenBalance_not: BigDecimal @source(subgraph: "uniswap", name: "liquidityTokenBalance_not", type: "BigDecimal")\n liquidityTokenBalance_gt: BigDecimal @source(subgraph: "uniswap", name: "liquidityTokenBalance_gt", type: "BigDecimal")\n liquidityTokenBalance_lt: BigDecimal @source(subgraph: "uniswap", name: "liquidityTokenBalance_lt", type: "BigDecimal")\n liquidityTokenBalance_gte: BigDecimal @source(subgraph: "uniswap", name: "liquidityTokenBalance_gte", type: "BigDecimal")\n liquidityTokenBalance_lte: BigDecimal @source(subgraph: "uniswap", name: "liquidityTokenBalance_lte", type: "BigDecimal")\n liquidityTokenBalance_in: [BigDecimal!] @source(subgraph: "uniswap", name: "liquidityTokenBalance_in", type: "[BigDecimal!]")\n liquidityTokenBalance_not_in: [BigDecimal!] @source(subgraph: "uniswap", name: "liquidityTokenBalance_not_in", type: "[BigDecimal!]")\n """Filter for the block changed event."""\n _change_block: BlockChangedFilter @source(subgraph: "uniswap", name: "_change_block", type: "BlockChangedFilter")\n and: [LiquidityPosition_filter] @source(subgraph: "uniswap", name: "and", type: "[LiquidityPosition_filter]")\n or: [LiquidityPosition_filter] @source(subgraph: "uniswap", name: "or", type: "[LiquidityPosition_filter]")\n}\n\nenum LiquidityPosition_orderBy @source(subgraph: "uniswap", name: "LiquidityPosition_orderBy") {\n id @source(subgraph: "uniswap", name: "id")\n user @source(subgraph: "uniswap", name: "user")\n user__id @source(subgraph: "uniswap", name: "user__id")\n user__usdSwapped @source(subgraph: "uniswap", name: "user__usdSwapped")\n pair @source(subgraph: "uniswap", name: "pair")\n pair__id @source(subgraph: "uniswap", name: "pair__id")\n pair__reserve0 @source(subgraph: "uniswap", name: "pair__reserve0")\n pair__reserve1 @source(subgraph: "uniswap", name: "pair__reserve1")\n pair__totalSupply @source(subgraph: "uniswap", name: "pair__totalSupply")\n pair__reserveETH @source(subgraph: "uniswap", name: "pair__reserveETH")\n pair__reserveUSD @source(subgraph: "uniswap", name: "pair__reserveUSD")\n pair__trackedReserveETH @source(subgraph: "uniswap", name: "pair__trackedReserveETH")\n pair__token0Price @source(subgraph: "uniswap", name: "pair__token0Price")\n pair__token1Price @source(subgraph: "uniswap", name: "pair__token1Price")\n pair__volumeToken0 @source(subgraph: "uniswap", name: "pair__volumeToken0")\n pair__volumeToken1 @source(subgraph: "uniswap", name: "pair__volumeToken1")\n pair__volumeUSD @source(subgraph: "uniswap", name: "pair__volumeUSD")\n pair__untrackedVolumeUSD @source(subgraph: "uniswap", name: "pair__untrackedVolumeUSD")\n pair__txCount @source(subgraph: "uniswap", name: "pair__txCount")\n pair__createdAtTimestamp @source(subgraph: "uniswap", name: "pair__createdAtTimestamp")\n pair__createdAtBlockNumber @source(subgraph: "uniswap", name: "pair__createdAtBlockNumber")\n pair__liquidityProviderCount @source(subgraph: "uniswap", name: "pair__liquidityProviderCount")\n liquidityTokenBalance @source(subgraph: "uniswap", name: "liquidityTokenBalance")\n}\n\ntype Mint @source(subgraph: "uniswap", name: "Mint") @resolver(subgraph: "uniswap", operation: "query MintById($Mint_id: ID!) { mint(id: $Mint_id) }", kind: "FETCH") @resolver(subgraph: "uniswap", operation: "query GetMintById($Mint_id: ID!) { mints(where: { id: $Mint_id) } }", kind: "FETCH") @resolver(subgraph: "uniswap", operation: "query GetMintsByIds($Mint_id: [ID!]!) { mints(where: { id_in: $Mint_id }) }", kind: "BATCH") @variable(subgraph: "uniswap", name: "Mint_id", select: "id") {\n id: ID! @source(subgraph: "uniswap", name: "id", type: "ID!")\n transaction: Transaction! @source(subgraph: "uniswap", name: "transaction", type: "Transaction!")\n timestamp: BigInt! @source(subgraph: "uniswap", name: "timestamp", type: "BigInt!")\n pair: Pair! @source(subgraph: "uniswap", name: "pair", type: "Pair!")\n to: Bytes! @source(subgraph: "uniswap", name: "to", type: "Bytes!")\n liquidity: BigDecimal! @source(subgraph: "uniswap", name: "liquidity", type: "BigDecimal!")\n sender: Bytes @source(subgraph: "uniswap", name: "sender", type: "Bytes")\n amount0: BigDecimal @source(subgraph: "uniswap", name: "amount0", type: "BigDecimal")\n amount1: BigDecimal @source(subgraph: "uniswap", name: "amount1", type: "BigDecimal")\n logIndex: BigInt @source(subgraph: "uniswap", name: "logIndex", type: "BigInt")\n amountUSD: BigDecimal @source(subgraph: "uniswap", name: "amountUSD", type: "BigDecimal")\n feeTo: Bytes @source(subgraph: "uniswap", name: "feeTo", type: "Bytes")\n feeLiquidity: BigDecimal @source(subgraph: "uniswap", name: "feeLiquidity", type: "BigDecimal")\n}\n\ninput Mint_filter @source(subgraph: "uniswap", name: "Mint_filter") {\n id: ID @source(subgraph: "uniswap", name: "id", type: "ID")\n id_not: ID @source(subgraph: "uniswap", name: "id_not", type: "ID")\n id_gt: ID @source(subgraph: "uniswap", name: "id_gt", type: "ID")\n id_lt: ID @source(subgraph: "uniswap", name: "id_lt", type: "ID")\n id_gte: ID @source(subgraph: "uniswap", name: "id_gte", type: "ID")\n id_lte: ID @source(subgraph: "uniswap", name: "id_lte", type: "ID")\n id_in: [ID!] @source(subgraph: "uniswap", name: "id_in", type: "[ID!]")\n id_not_in: [ID!] @source(subgraph: "uniswap", name: "id_not_in", type: "[ID!]")\n transaction: String @source(subgraph: "uniswap", name: "transaction", type: "String")\n transaction_not: String @source(subgraph: "uniswap", name: "transaction_not", type: "String")\n transaction_gt: String @source(subgraph: "uniswap", name: "transaction_gt", type: "String")\n transaction_lt: String @source(subgraph: "uniswap", name: "transaction_lt", type: "String")\n transaction_gte: String @source(subgraph: "uniswap", name: "transaction_gte", type: "String")\n transaction_lte: String @source(subgraph: "uniswap", name: "transaction_lte", type: "String")\n transaction_in: [String!] @source(subgraph: "uniswap", name: "transaction_in", type: "[String!]")\n transaction_not_in: [String!] @source(subgraph: "uniswap", name: "transaction_not_in", type: "[String!]")\n transaction_contains: String @source(subgraph: "uniswap", name: "transaction_contains", type: "String")\n transaction_contains_nocase: String @source(subgraph: "uniswap", name: "transaction_contains_nocase", type: "String")\n transaction_not_contains: String @source(subgraph: "uniswap", name: "transaction_not_contains", type: "String")\n transaction_not_contains_nocase: String @source(subgraph: "uniswap", name: "transaction_not_contains_nocase", type: "String")\n transaction_starts_with: String @source(subgraph: "uniswap", name: "transaction_starts_with", type: "String")\n transaction_starts_with_nocase: String @source(subgraph: "uniswap", name: "transaction_starts_with_nocase", type: "String")\n transaction_not_starts_with: String @source(subgraph: "uniswap", name: "transaction_not_starts_with", type: "String")\n transaction_not_starts_with_nocase: String @source(subgraph: "uniswap", name: "transaction_not_starts_with_nocase", type: "String")\n transaction_ends_with: String @source(subgraph: "uniswap", name: "transaction_ends_with", type: "String")\n transaction_ends_with_nocase: String @source(subgraph: "uniswap", name: "transaction_ends_with_nocase", type: "String")\n transaction_not_ends_with: String @source(subgraph: "uniswap", name: "transaction_not_ends_with", type: "String")\n transaction_not_ends_with_nocase: String @source(subgraph: "uniswap", name: "transaction_not_ends_with_nocase", type: "String")\n transaction_: Transaction_filter @source(subgraph: "uniswap", name: "transaction_", type: "Transaction_filter")\n timestamp: BigInt @source(subgraph: "uniswap", name: "timestamp", type: "BigInt")\n timestamp_not: BigInt @source(subgraph: "uniswap", name: "timestamp_not", type: "BigInt")\n timestamp_gt: BigInt @source(subgraph: "uniswap", name: "timestamp_gt", type: "BigInt")\n timestamp_lt: BigInt @source(subgraph: "uniswap", name: "timestamp_lt", type: "BigInt")\n timestamp_gte: BigInt @source(subgraph: "uniswap", name: "timestamp_gte", type: "BigInt")\n timestamp_lte: BigInt @source(subgraph: "uniswap", name: "timestamp_lte", type: "BigInt")\n timestamp_in: [BigInt!] @source(subgraph: "uniswap", name: "timestamp_in", type: "[BigInt!]")\n timestamp_not_in: [BigInt!] @source(subgraph: "uniswap", name: "timestamp_not_in", type: "[BigInt!]")\n pair: String @source(subgraph: "uniswap", name: "pair", type: "String")\n pair_not: String @source(subgraph: "uniswap", name: "pair_not", type: "String")\n pair_gt: String @source(subgraph: "uniswap", name: "pair_gt", type: "String")\n pair_lt: String @source(subgraph: "uniswap", name: "pair_lt", type: "String")\n pair_gte: String @source(subgraph: "uniswap", name: "pair_gte", type: "String")\n pair_lte: String @source(subgraph: "uniswap", name: "pair_lte", type: "String")\n pair_in: [String!] @source(subgraph: "uniswap", name: "pair_in", type: "[String!]")\n pair_not_in: [String!] @source(subgraph: "uniswap", name: "pair_not_in", type: "[String!]")\n pair_contains: String @source(subgraph: "uniswap", name: "pair_contains", type: "String")\n pair_contains_nocase: String @source(subgraph: "uniswap", name: "pair_contains_nocase", type: "String")\n pair_not_contains: String @source(subgraph: "uniswap", name: "pair_not_contains", type: "String")\n pair_not_contains_nocase: String @source(subgraph: "uniswap", name: "pair_not_contains_nocase", type: "String")\n pair_starts_with: String @source(subgraph: "uniswap", name: "pair_starts_with", type: "String")\n pair_starts_with_nocase: String @source(subgraph: "uniswap", name: "pair_starts_with_nocase", type: "String")\n pair_not_starts_with: String @source(subgraph: "uniswap", name: "pair_not_starts_with", type: "String")\n pair_not_starts_with_nocase: String @source(subgraph: "uniswap", name: "pair_not_starts_with_nocase", type: "String")\n pair_ends_with: String @source(subgraph: "uniswap", name: "pair_ends_with", type: "String")\n pair_ends_with_nocase: String @source(subgraph: "uniswap", name: "pair_ends_with_nocase", type: "String")\n pair_not_ends_with: String @source(subgraph: "uniswap", name: "pair_not_ends_with", type: "String")\n pair_not_ends_with_nocase: String @source(subgraph: "uniswap", name: "pair_not_ends_with_nocase", type: "String")\n pair_: Pair_filter @source(subgraph: "uniswap", name: "pair_", type: "Pair_filter")\n to: Bytes @source(subgraph: "uniswap", name: "to", type: "Bytes")\n to_not: Bytes @source(subgraph: "uniswap", name: "to_not", type: "Bytes")\n to_gt: Bytes @source(subgraph: "uniswap", name: "to_gt", type: "Bytes")\n to_lt: Bytes @source(subgraph: "uniswap", name: "to_lt", type: "Bytes")\n to_gte: Bytes @source(subgraph: "uniswap", name: "to_gte", type: "Bytes")\n to_lte: Bytes @source(subgraph: "uniswap", name: "to_lte", type: "Bytes")\n to_in: [Bytes!] @source(subgraph: "uniswap", name: "to_in", type: "[Bytes!]")\n to_not_in: [Bytes!] @source(subgraph: "uniswap", name: "to_not_in", type: "[Bytes!]")\n to_contains: Bytes @source(subgraph: "uniswap", name: "to_contains", type: "Bytes")\n to_not_contains: Bytes @source(subgraph: "uniswap", name: "to_not_contains", type: "Bytes")\n liquidity: BigDecimal @source(subgraph: "uniswap", name: "liquidity", type: "BigDecimal")\n liquidity_not: BigDecimal @source(subgraph: "uniswap", name: "liquidity_not", type: "BigDecimal")\n liquidity_gt: BigDecimal @source(subgraph: "uniswap", name: "liquidity_gt", type: "BigDecimal")\n liquidity_lt: BigDecimal @source(subgraph: "uniswap", name: "liquidity_lt", type: "BigDecimal")\n liquidity_gte: BigDecimal @source(subgraph: "uniswap", name: "liquidity_gte", type: "BigDecimal")\n liquidity_lte: BigDecimal @source(subgraph: "uniswap", name: "liquidity_lte", type: "BigDecimal")\n liquidity_in: [BigDecimal!] @source(subgraph: "uniswap", name: "liquidity_in", type: "[BigDecimal!]")\n liquidity_not_in: [BigDecimal!] @source(subgraph: "uniswap", name: "liquidity_not_in", type: "[BigDecimal!]")\n sender: Bytes @source(subgraph: "uniswap", name: "sender", type: "Bytes")\n sender_not: Bytes @source(subgraph: "uniswap", name: "sender_not", type: "Bytes")\n sender_gt: Bytes @source(subgraph: "uniswap", name: "sender_gt", type: "Bytes")\n sender_lt: Bytes @source(subgraph: "uniswap", name: "sender_lt", type: "Bytes")\n sender_gte: Bytes @source(subgraph: "uniswap", name: "sender_gte", type: "Bytes")\n sender_lte: Bytes @source(subgraph: "uniswap", name: "sender_lte", type: "Bytes")\n sender_in: [Bytes!] @source(subgraph: "uniswap", name: "sender_in", type: "[Bytes!]")\n sender_not_in: [Bytes!] @source(subgraph: "uniswap", name: "sender_not_in", type: "[Bytes!]")\n sender_contains: Bytes @source(subgraph: "uniswap", name: "sender_contains", type: "Bytes")\n sender_not_contains: Bytes @source(subgraph: "uniswap", name: "sender_not_contains", type: "Bytes")\n amount0: BigDecimal @source(subgraph: "uniswap", name: "amount0", type: "BigDecimal")\n amount0_not: BigDecimal @source(subgraph: "uniswap", name: "amount0_not", type: "BigDecimal")\n amount0_gt: BigDecimal @source(subgraph: "uniswap", name: "amount0_gt", type: "BigDecimal")\n amount0_lt: BigDecimal @source(subgraph: "uniswap", name: "amount0_lt", type: "BigDecimal")\n amount0_gte: BigDecimal @source(subgraph: "uniswap", name: "amount0_gte", type: "BigDecimal")\n amount0_lte: BigDecimal @source(subgraph: "uniswap", name: "amount0_lte", type: "BigDecimal")\n amount0_in: [BigDecimal!] @source(subgraph: "uniswap", name: "amount0_in", type: "[BigDecimal!]")\n amount0_not_in: [BigDecimal!] @source(subgraph: "uniswap", name: "amount0_not_in", type: "[BigDecimal!]")\n amount1: BigDecimal @source(subgraph: "uniswap", name: "amount1", type: "BigDecimal")\n amount1_not: BigDecimal @source(subgraph: "uniswap", name: "amount1_not", type: "BigDecimal")\n amount1_gt: BigDecimal @source(subgraph: "uniswap", name: "amount1_gt", type: "BigDecimal")\n amount1_lt: BigDecimal @source(subgraph: "uniswap", name: "amount1_lt", type: "BigDecimal")\n amount1_gte: BigDecimal @source(subgraph: "uniswap", name: "amount1_gte", type: "BigDecimal")\n amount1_lte: BigDecimal @source(subgraph: "uniswap", name: "amount1_lte", type: "BigDecimal")\n amount1_in: [BigDecimal!] @source(subgraph: "uniswap", name: "amount1_in", type: "[BigDecimal!]")\n amount1_not_in: [BigDecimal!] @source(subgraph: "uniswap", name: "amount1_not_in", type: "[BigDecimal!]")\n logIndex: BigInt @source(subgraph: "uniswap", name: "logIndex", type: "BigInt")\n logIndex_not: BigInt @source(subgraph: "uniswap", name: "logIndex_not", type: "BigInt")\n logIndex_gt: BigInt @source(subgraph: "uniswap", name: "logIndex_gt", type: "BigInt")\n logIndex_lt: BigInt @source(subgraph: "uniswap", name: "logIndex_lt", type: "BigInt")\n logIndex_gte: BigInt @source(subgraph: "uniswap", name: "logIndex_gte", type: "BigInt")\n logIndex_lte: BigInt @source(subgraph: "uniswap", name: "logIndex_lte", type: "BigInt")\n logIndex_in: [BigInt!] @source(subgraph: "uniswap", name: "logIndex_in", type: "[BigInt!]")\n logIndex_not_in: [BigInt!] @source(subgraph: "uniswap", name: "logIndex_not_in", type: "[BigInt!]")\n amountUSD: BigDecimal @source(subgraph: "uniswap", name: "amountUSD", type: "BigDecimal")\n amountUSD_not: BigDecimal @source(subgraph: "uniswap", name: "amountUSD_not", type: "BigDecimal")\n amountUSD_gt: BigDecimal @source(subgraph: "uniswap", name: "amountUSD_gt", type: "BigDecimal")\n amountUSD_lt: BigDecimal @source(subgraph: "uniswap", name: "amountUSD_lt", type: "BigDecimal")\n amountUSD_gte: BigDecimal @source(subgraph: "uniswap", name: "amountUSD_gte", type: "BigDecimal")\n amountUSD_lte: BigDecimal @source(subgraph: "uniswap", name: "amountUSD_lte", type: "BigDecimal")\n amountUSD_in: [BigDecimal!] @source(subgraph: "uniswap", name: "amountUSD_in", type: "[BigDecimal!]")\n amountUSD_not_in: [BigDecimal!] @source(subgraph: "uniswap", name: "amountUSD_not_in", type: "[BigDecimal!]")\n feeTo: Bytes @source(subgraph: "uniswap", name: "feeTo", type: "Bytes")\n feeTo_not: Bytes @source(subgraph: "uniswap", name: "feeTo_not", type: "Bytes")\n feeTo_gt: Bytes @source(subgraph: "uniswap", name: "feeTo_gt", type: "Bytes")\n feeTo_lt: Bytes @source(subgraph: "uniswap", name: "feeTo_lt", type: "Bytes")\n feeTo_gte: Bytes @source(subgraph: "uniswap", name: "feeTo_gte", type: "Bytes")\n feeTo_lte: Bytes @source(subgraph: "uniswap", name: "feeTo_lte", type: "Bytes")\n feeTo_in: [Bytes!] @source(subgraph: "uniswap", name: "feeTo_in", type: "[Bytes!]")\n feeTo_not_in: [Bytes!] @source(subgraph: "uniswap", name: "feeTo_not_in", type: "[Bytes!]")\n feeTo_contains: Bytes @source(subgraph: "uniswap", name: "feeTo_contains", type: "Bytes")\n feeTo_not_contains: Bytes @source(subgraph: "uniswap", name: "feeTo_not_contains", type: "Bytes")\n feeLiquidity: BigDecimal @source(subgraph: "uniswap", name: "feeLiquidity", type: "BigDecimal")\n feeLiquidity_not: BigDecimal @source(subgraph: "uniswap", name: "feeLiquidity_not", type: "BigDecimal")\n feeLiquidity_gt: BigDecimal @source(subgraph: "uniswap", name: "feeLiquidity_gt", type: "BigDecimal")\n feeLiquidity_lt: BigDecimal @source(subgraph: "uniswap", name: "feeLiquidity_lt", type: "BigDecimal")\n feeLiquidity_gte: BigDecimal @source(subgraph: "uniswap", name: "feeLiquidity_gte", type: "BigDecimal")\n feeLiquidity_lte: BigDecimal @source(subgraph: "uniswap", name: "feeLiquidity_lte", type: "BigDecimal")\n feeLiquidity_in: [BigDecimal!] @source(subgraph: "uniswap", name: "feeLiquidity_in", type: "[BigDecimal!]")\n feeLiquidity_not_in: [BigDecimal!] @source(subgraph: "uniswap", name: "feeLiquidity_not_in", type: "[BigDecimal!]")\n """Filter for the block changed event."""\n _change_block: BlockChangedFilter @source(subgraph: "uniswap", name: "_change_block", type: "BlockChangedFilter")\n and: [Mint_filter] @source(subgraph: "uniswap", name: "and", type: "[Mint_filter]")\n or: [Mint_filter] @source(subgraph: "uniswap", name: "or", type: "[Mint_filter]")\n}\n\nenum Mint_orderBy @source(subgraph: "uniswap", name: "Mint_orderBy") {\n id @source(subgraph: "uniswap", name: "id")\n transaction @source(subgraph: "uniswap", name: "transaction")\n transaction__id @source(subgraph: "uniswap", name: "transaction__id")\n transaction__blockNumber @source(subgraph: "uniswap", name: "transaction__blockNumber")\n transaction__timestamp @source(subgraph: "uniswap", name: "transaction__timestamp")\n timestamp @source(subgraph: "uniswap", name: "timestamp")\n pair @source(subgraph: "uniswap", name: "pair")\n pair__id @source(subgraph: "uniswap", name: "pair__id")\n pair__reserve0 @source(subgraph: "uniswap", name: "pair__reserve0")\n pair__reserve1 @source(subgraph: "uniswap", name: "pair__reserve1")\n pair__totalSupply @source(subgraph: "uniswap", name: "pair__totalSupply")\n pair__reserveETH @source(subgraph: "uniswap", name: "pair__reserveETH")\n pair__reserveUSD @source(subgraph: "uniswap", name: "pair__reserveUSD")\n pair__trackedReserveETH @source(subgraph: "uniswap", name: "pair__trackedReserveETH")\n pair__token0Price @source(subgraph: "uniswap", name: "pair__token0Price")\n pair__token1Price @source(subgraph: "uniswap", name: "pair__token1Price")\n pair__volumeToken0 @source(subgraph: "uniswap", name: "pair__volumeToken0")\n pair__volumeToken1 @source(subgraph: "uniswap", name: "pair__volumeToken1")\n pair__volumeUSD @source(subgraph: "uniswap", name: "pair__volumeUSD")\n pair__untrackedVolumeUSD @source(subgraph: "uniswap", name: "pair__untrackedVolumeUSD")\n pair__txCount @source(subgraph: "uniswap", name: "pair__txCount")\n pair__createdAtTimestamp @source(subgraph: "uniswap", name: "pair__createdAtTimestamp")\n pair__createdAtBlockNumber @source(subgraph: "uniswap", name: "pair__createdAtBlockNumber")\n pair__liquidityProviderCount @source(subgraph: "uniswap", name: "pair__liquidityProviderCount")\n to @source(subgraph: "uniswap", name: "to")\n liquidity @source(subgraph: "uniswap", name: "liquidity")\n sender @source(subgraph: "uniswap", name: "sender")\n amount0 @source(subgraph: "uniswap", name: "amount0")\n amount1 @source(subgraph: "uniswap", name: "amount1")\n logIndex @source(subgraph: "uniswap", name: "logIndex")\n amountUSD @source(subgraph: "uniswap", name: "amountUSD")\n feeTo @source(subgraph: "uniswap", name: "feeTo")\n feeLiquidity @source(subgraph: "uniswap", name: "feeLiquidity")\n}\n\ntype Pair @source(subgraph: "uniswap", name: "Pair") @resolver(subgraph: "uniswap", operation: "query PairById($Pair_id: ID!) { pair(id: $Pair_id) }", kind: "FETCH") @resolver(subgraph: "uniswap", operation: "query GetPairById($Pair_id: ID!) { pairs(where: { id: $Pair_id) } }", kind: "FETCH") @resolver(subgraph: "uniswap", operation: "query GetPairsByIds($Pair_id: [ID!]!) { pairs(where: { id_in: $Pair_id }) }", kind: "BATCH") @variable(subgraph: "uniswap", name: "Pair_id", select: "id") {\n id: ID! @source(subgraph: "uniswap", name: "id", type: "ID!")\n token0: Token! @source(subgraph: "uniswap", name: "token0", type: "Token!")\n token1: Token! @source(subgraph: "uniswap", name: "token1", type: "Token!")\n reserve0: BigDecimal! @source(subgraph: "uniswap", name: "reserve0", type: "BigDecimal!")\n reserve1: BigDecimal! @source(subgraph: "uniswap", name: "reserve1", type: "BigDecimal!")\n totalSupply: BigDecimal! @source(subgraph: "uniswap", name: "totalSupply", type: "BigDecimal!")\n reserveETH: BigDecimal! @source(subgraph: "uniswap", name: "reserveETH", type: "BigDecimal!")\n reserveUSD: BigDecimal! @source(subgraph: "uniswap", name: "reserveUSD", type: "BigDecimal!")\n trackedReserveETH: BigDecimal! @source(subgraph: "uniswap", name: "trackedReserveETH", type: "BigDecimal!")\n token0Price: BigDecimal! @source(subgraph: "uniswap", name: "token0Price", type: "BigDecimal!")\n token1Price: BigDecimal! @source(subgraph: "uniswap", name: "token1Price", type: "BigDecimal!")\n volumeToken0: BigDecimal! @source(subgraph: "uniswap", name: "volumeToken0", type: "BigDecimal!")\n volumeToken1: BigDecimal! @source(subgraph: "uniswap", name: "volumeToken1", type: "BigDecimal!")\n volumeUSD: BigDecimal! @source(subgraph: "uniswap", name: "volumeUSD", type: "BigDecimal!")\n untrackedVolumeUSD: BigDecimal! @source(subgraph: "uniswap", name: "untrackedVolumeUSD", type: "BigDecimal!")\n txCount: BigInt! @source(subgraph: "uniswap", name: "txCount", type: "BigInt!")\n createdAtTimestamp: BigInt! @source(subgraph: "uniswap", name: "createdAtTimestamp", type: "BigInt!")\n createdAtBlockNumber: BigInt! @source(subgraph: "uniswap", name: "createdAtBlockNumber", type: "BigInt!")\n liquidityProviderCount: BigInt! @source(subgraph: "uniswap", name: "liquidityProviderCount", type: "BigInt!")\n pairHourData(skip: Int = 0, first: Int = 100, orderBy: PairHourData_orderBy, orderDirection: OrderDirection, where: PairHourData_filter): [PairHourData!]! @source(subgraph: "uniswap", name: "pairHourData", type: "[PairHourData!]!")\n liquidityPositions(skip: Int = 0, first: Int = 100, orderBy: LiquidityPosition_orderBy, orderDirection: OrderDirection, where: LiquidityPosition_filter): [LiquidityPosition!]! @source(subgraph: "uniswap", name: "liquidityPositions", type: "[LiquidityPosition!]!")\n liquidityPositionSnapshots(skip: Int = 0, first: Int = 100, orderBy: LiquidityPositionSnapshot_orderBy, orderDirection: OrderDirection, where: LiquidityPositionSnapshot_filter): [LiquidityPositionSnapshot!]! @source(subgraph: "uniswap", name: "liquidityPositionSnapshots", type: "[LiquidityPositionSnapshot!]!")\n mints(skip: Int = 0, first: Int = 100, orderBy: Mint_orderBy, orderDirection: OrderDirection, where: Mint_filter): [Mint!]! @source(subgraph: "uniswap", name: "mints", type: "[Mint!]!")\n burns(skip: Int = 0, first: Int = 100, orderBy: Burn_orderBy, orderDirection: OrderDirection, where: Burn_filter): [Burn!]! @source(subgraph: "uniswap", name: "burns", type: "[Burn!]!")\n swaps(skip: Int = 0, first: Int = 100, orderBy: Swap_orderBy, orderDirection: OrderDirection, where: Swap_filter): [Swap!]! @source(subgraph: "uniswap", name: "swaps", type: "[Swap!]!")\n}\n\ntype PairDayData @source(subgraph: "uniswap", name: "PairDayData") @resolver(subgraph: "uniswap", operation: "query PairDayDataById($PairDayData_id: ID!) { pairDayData(id: $PairDayData_id) }", kind: "FETCH") @resolver(subgraph: "uniswap", operation: "query GetPairDayDataById($PairDayData_id: ID!) { pairDayDatas(where: { id: $PairDayData_id) } }", kind: "FETCH") @resolver(subgraph: "uniswap", operation: "query GetPairDayDataByIds($PairDayData_id: [ID!]!) { pairDayDatas(where: { id_in: $PairDayData_id }) }", kind: "BATCH") @variable(subgraph: "uniswap", name: "PairDayData_id", select: "id") {\n id: ID! @source(subgraph: "uniswap", name: "id", type: "ID!")\n date: Int! @source(subgraph: "uniswap", name: "date", type: "Int!")\n pairAddress: Bytes! @source(subgraph: "uniswap", name: "pairAddress", type: "Bytes!")\n token0: Token! @source(subgraph: "uniswap", name: "token0", type: "Token!")\n token1: Token! @source(subgraph: "uniswap", name: "token1", type: "Token!")\n reserve0: BigDecimal! @source(subgraph: "uniswap", name: "reserve0", type: "BigDecimal!")\n reserve1: BigDecimal! @source(subgraph: "uniswap", name: "reserve1", type: "BigDecimal!")\n totalSupply: BigDecimal @source(subgraph: "uniswap", name: "totalSupply", type: "BigDecimal")\n reserveUSD: BigDecimal! @source(subgraph: "uniswap", name: "reserveUSD", type: "BigDecimal!")\n dailyVolumeToken0: BigDecimal! @source(subgraph: "uniswap", name: "dailyVolumeToken0", type: "BigDecimal!")\n dailyVolumeToken1: BigDecimal! @source(subgraph: "uniswap", name: "dailyVolumeToken1", type: "BigDecimal!")\n dailyVolumeUSD: BigDecimal! @source(subgraph: "uniswap", name: "dailyVolumeUSD", type: "BigDecimal!")\n dailyTxns: BigInt! @source(subgraph: "uniswap", name: "dailyTxns", type: "BigInt!")\n}\n\ninput PairDayData_filter @source(subgraph: "uniswap", name: "PairDayData_filter") {\n id: ID @source(subgraph: "uniswap", name: "id", type: "ID")\n id_not: ID @source(subgraph: "uniswap", name: "id_not", type: "ID")\n id_gt: ID @source(subgraph: "uniswap", name: "id_gt", type: "ID")\n id_lt: ID @source(subgraph: "uniswap", name: "id_lt", type: "ID")\n id_gte: ID @source(subgraph: "uniswap", name: "id_gte", type: "ID")\n id_lte: ID @source(subgraph: "uniswap", name: "id_lte", type: "ID")\n id_in: [ID!] @source(subgraph: "uniswap", name: "id_in", type: "[ID!]")\n id_not_in: [ID!] @source(subgraph: "uniswap", name: "id_not_in", type: "[ID!]")\n date: Int @source(subgraph: "uniswap", name: "date", type: "Int")\n date_not: Int @source(subgraph: "uniswap", name: "date_not", type: "Int")\n date_gt: Int @source(subgraph: "uniswap", name: "date_gt", type: "Int")\n date_lt: Int @source(subgraph: "uniswap", name: "date_lt", type: "Int")\n date_gte: Int @source(subgraph: "uniswap", name: "date_gte", type: "Int")\n date_lte: Int @source(subgraph: "uniswap", name: "date_lte", type: "Int")\n date_in: [Int!] @source(subgraph: "uniswap", name: "date_in", type: "[Int!]")\n date_not_in: [Int!] @source(subgraph: "uniswap", name: "date_not_in", type: "[Int!]")\n pairAddress: Bytes @source(subgraph: "uniswap", name: "pairAddress", type: "Bytes")\n pairAddress_not: Bytes @source(subgraph: "uniswap", name: "pairAddress_not", type: "Bytes")\n pairAddress_gt: Bytes @source(subgraph: "uniswap", name: "pairAddress_gt", type: "Bytes")\n pairAddress_lt: Bytes @source(subgraph: "uniswap", name: "pairAddress_lt", type: "Bytes")\n pairAddress_gte: Bytes @source(subgraph: "uniswap", name: "pairAddress_gte", type: "Bytes")\n pairAddress_lte: Bytes @source(subgraph: "uniswap", name: "pairAddress_lte", type: "Bytes")\n pairAddress_in: [Bytes!] @source(subgraph: "uniswap", name: "pairAddress_in", type: "[Bytes!]")\n pairAddress_not_in: [Bytes!] @source(subgraph: "uniswap", name: "pairAddress_not_in", type: "[Bytes!]")\n pairAddress_contains: Bytes @source(subgraph: "uniswap", name: "pairAddress_contains", type: "Bytes")\n pairAddress_not_contains: Bytes @source(subgraph: "uniswap", name: "pairAddress_not_contains", type: "Bytes")\n token0: String @source(subgraph: "uniswap", name: "token0", type: "String")\n token0_not: String @source(subgraph: "uniswap", name: "token0_not", type: "String")\n token0_gt: String @source(subgraph: "uniswap", name: "token0_gt", type: "String")\n token0_lt: String @source(subgraph: "uniswap", name: "token0_lt", type: "String")\n token0_gte: String @source(subgraph: "uniswap", name: "token0_gte", type: "String")\n token0_lte: String @source(subgraph: "uniswap", name: "token0_lte", type: "String")\n token0_in: [String!] @source(subgraph: "uniswap", name: "token0_in", type: "[String!]")\n token0_not_in: [String!] @source(subgraph: "uniswap", name: "token0_not_in", type: "[String!]")\n token0_contains: String @source(subgraph: "uniswap", name: "token0_contains", type: "String")\n token0_contains_nocase: String @source(subgraph: "uniswap", name: "token0_contains_nocase", type: "String")\n token0_not_contains: String @source(subgraph: "uniswap", name: "token0_not_contains", type: "String")\n token0_not_contains_nocase: String @source(subgraph: "uniswap", name: "token0_not_contains_nocase", type: "String")\n token0_starts_with: String @source(subgraph: "uniswap", name: "token0_starts_with", type: "String")\n token0_starts_with_nocase: String @source(subgraph: "uniswap", name: "token0_starts_with_nocase", type: "String")\n token0_not_starts_with: String @source(subgraph: "uniswap", name: "token0_not_starts_with", type: "String")\n token0_not_starts_with_nocase: String @source(subgraph: "uniswap", name: "token0_not_starts_with_nocase", type: "String")\n token0_ends_with: String @source(subgraph: "uniswap", name: "token0_ends_with", type: "String")\n token0_ends_with_nocase: String @source(subgraph: "uniswap", name: "token0_ends_with_nocase", type: "String")\n token0_not_ends_with: String @source(subgraph: "uniswap", name: "token0_not_ends_with", type: "String")\n token0_not_ends_with_nocase: String @source(subgraph: "uniswap", name: "token0_not_ends_with_nocase", type: "String")\n token0_: Token_filter @source(subgraph: "uniswap", name: "token0_", type: "Token_filter")\n token1: String @source(subgraph: "uniswap", name: "token1", type: "String")\n token1_not: String @source(subgraph: "uniswap", name: "token1_not", type: "String")\n token1_gt: String @source(subgraph: "uniswap", name: "token1_gt", type: "String")\n token1_lt: String @source(subgraph: "uniswap", name: "token1_lt", type: "String")\n token1_gte: String @source(subgraph: "uniswap", name: "token1_gte", type: "String")\n token1_lte: String @source(subgraph: "uniswap", name: "token1_lte", type: "String")\n token1_in: [String!] @source(subgraph: "uniswap", name: "token1_in", type: "[String!]")\n token1_not_in: [String!] @source(subgraph: "uniswap", name: "token1_not_in", type: "[String!]")\n token1_contains: String @source(subgraph: "uniswap", name: "token1_contains", type: "String")\n token1_contains_nocase: String @source(subgraph: "uniswap", name: "token1_contains_nocase", type: "String")\n token1_not_contains: String @source(subgraph: "uniswap", name: "token1_not_contains", type: "String")\n token1_not_contains_nocase: String @source(subgraph: "uniswap", name: "token1_not_contains_nocase", type: "String")\n token1_starts_with: String @source(subgraph: "uniswap", name: "token1_starts_with", type: "String")\n token1_starts_with_nocase: String @source(subgraph: "uniswap", name: "token1_starts_with_nocase", type: "String")\n token1_not_starts_with: String @source(subgraph: "uniswap", name: "token1_not_starts_with", type: "String")\n token1_not_starts_with_nocase: String @source(subgraph: "uniswap", name: "token1_not_starts_with_nocase", type: "String")\n token1_ends_with: String @source(subgraph: "uniswap", name: "token1_ends_with", type: "String")\n token1_ends_with_nocase: String @source(subgraph: "uniswap", name: "token1_ends_with_nocase", type: "String")\n token1_not_ends_with: String @source(subgraph: "uniswap", name: "token1_not_ends_with", type: "String")\n token1_not_ends_with_nocase: String @source(subgraph: "uniswap", name: "token1_not_ends_with_nocase", type: "String")\n token1_: Token_filter @source(subgraph: "uniswap", name: "token1_", type: "Token_filter")\n reserve0: BigDecimal @source(subgraph: "uniswap", name: "reserve0", type: "BigDecimal")\n reserve0_not: BigDecimal @source(subgraph: "uniswap", name: "reserve0_not", type: "BigDecimal")\n reserve0_gt: BigDecimal @source(subgraph: "uniswap", name: "reserve0_gt", type: "BigDecimal")\n reserve0_lt: BigDecimal @source(subgraph: "uniswap", name: "reserve0_lt", type: "BigDecimal")\n reserve0_gte: BigDecimal @source(subgraph: "uniswap", name: "reserve0_gte", type: "BigDecimal")\n reserve0_lte: BigDecimal @source(subgraph: "uniswap", name: "reserve0_lte", type: "BigDecimal")\n reserve0_in: [BigDecimal!] @source(subgraph: "uniswap", name: "reserve0_in", type: "[BigDecimal!]")\n reserve0_not_in: [BigDecimal!] @source(subgraph: "uniswap", name: "reserve0_not_in", type: "[BigDecimal!]")\n reserve1: BigDecimal @source(subgraph: "uniswap", name: "reserve1", type: "BigDecimal")\n reserve1_not: BigDecimal @source(subgraph: "uniswap", name: "reserve1_not", type: "BigDecimal")\n reserve1_gt: BigDecimal @source(subgraph: "uniswap", name: "reserve1_gt", type: "BigDecimal")\n reserve1_lt: BigDecimal @source(subgraph: "uniswap", name: "reserve1_lt", type: "BigDecimal")\n reserve1_gte: BigDecimal @source(subgraph: "uniswap", name: "reserve1_gte", type: "BigDecimal")\n reserve1_lte: BigDecimal @source(subgraph: "uniswap", name: "reserve1_lte", type: "BigDecimal")\n reserve1_in: [BigDecimal!] @source(subgraph: "uniswap", name: "reserve1_in", type: "[BigDecimal!]")\n reserve1_not_in: [BigDecimal!] @source(subgraph: "uniswap", name: "reserve1_not_in", type: "[BigDecimal!]")\n totalSupply: BigDecimal @source(subgraph: "uniswap", name: "totalSupply", type: "BigDecimal")\n totalSupply_not: BigDecimal @source(subgraph: "uniswap", name: "totalSupply_not", type: "BigDecimal")\n totalSupply_gt: BigDecimal @source(subgraph: "uniswap", name: "totalSupply_gt", type: "BigDecimal")\n totalSupply_lt: BigDecimal @source(subgraph: "uniswap", name: "totalSupply_lt", type: "BigDecimal")\n totalSupply_gte: BigDecimal @source(subgraph: "uniswap", name: "totalSupply_gte", type: "BigDecimal")\n totalSupply_lte: BigDecimal @source(subgraph: "uniswap", name: "totalSupply_lte", type: "BigDecimal")\n totalSupply_in: [BigDecimal!] @source(subgraph: "uniswap", name: "totalSupply_in", type: "[BigDecimal!]")\n totalSupply_not_in: [BigDecimal!] @source(subgraph: "uniswap", name: "totalSupply_not_in", type: "[BigDecimal!]")\n reserveUSD: BigDecimal @source(subgraph: "uniswap", name: "reserveUSD", type: "BigDecimal")\n reserveUSD_not: BigDecimal @source(subgraph: "uniswap", name: "reserveUSD_not", type: "BigDecimal")\n reserveUSD_gt: BigDecimal @source(subgraph: "uniswap", name: "reserveUSD_gt", type: "BigDecimal")\n reserveUSD_lt: BigDecimal @source(subgraph: "uniswap", name: "reserveUSD_lt", type: "BigDecimal")\n reserveUSD_gte: BigDecimal @source(subgraph: "uniswap", name: "reserveUSD_gte", type: "BigDecimal")\n reserveUSD_lte: BigDecimal @source(subgraph: "uniswap", name: "reserveUSD_lte", type: "BigDecimal")\n reserveUSD_in: [BigDecimal!] @source(subgraph: "uniswap", name: "reserveUSD_in", type: "[BigDecimal!]")\n reserveUSD_not_in: [BigDecimal!] @source(subgraph: "uniswap", name: "reserveUSD_not_in", type: "[BigDecimal!]")\n dailyVolumeToken0: BigDecimal @source(subgraph: "uniswap", name: "dailyVolumeToken0", type: "BigDecimal")\n dailyVolumeToken0_not: BigDecimal @source(subgraph: "uniswap", name: "dailyVolumeToken0_not", type: "BigDecimal")\n dailyVolumeToken0_gt: BigDecimal @source(subgraph: "uniswap", name: "dailyVolumeToken0_gt", type: "BigDecimal")\n dailyVolumeToken0_lt: BigDecimal @source(subgraph: "uniswap", name: "dailyVolumeToken0_lt", type: "BigDecimal")\n dailyVolumeToken0_gte: BigDecimal @source(subgraph: "uniswap", name: "dailyVolumeToken0_gte", type: "BigDecimal")\n dailyVolumeToken0_lte: BigDecimal @source(subgraph: "uniswap", name: "dailyVolumeToken0_lte", type: "BigDecimal")\n dailyVolumeToken0_in: [BigDecimal!] @source(subgraph: "uniswap", name: "dailyVolumeToken0_in", type: "[BigDecimal!]")\n dailyVolumeToken0_not_in: [BigDecimal!] @source(subgraph: "uniswap", name: "dailyVolumeToken0_not_in", type: "[BigDecimal!]")\n dailyVolumeToken1: BigDecimal @source(subgraph: "uniswap", name: "dailyVolumeToken1", type: "BigDecimal")\n dailyVolumeToken1_not: BigDecimal @source(subgraph: "uniswap", name: "dailyVolumeToken1_not", type: "BigDecimal")\n dailyVolumeToken1_gt: BigDecimal @source(subgraph: "uniswap", name: "dailyVolumeToken1_gt", type: "BigDecimal")\n dailyVolumeToken1_lt: BigDecimal @source(subgraph: "uniswap", name: "dailyVolumeToken1_lt", type: "BigDecimal")\n dailyVolumeToken1_gte: BigDecimal @source(subgraph: "uniswap", name: "dailyVolumeToken1_gte", type: "BigDecimal")\n dailyVolumeToken1_lte: BigDecimal @source(subgraph: "uniswap", name: "dailyVolumeToken1_lte", type: "BigDecimal")\n dailyVolumeToken1_in: [BigDecimal!] @source(subgraph: "uniswap", name: "dailyVolumeToken1_in", type: "[BigDecimal!]")\n dailyVolumeToken1_not_in: [BigDecimal!] @source(subgraph: "uniswap", name: "dailyVolumeToken1_not_in", type: "[BigDecimal!]")\n dailyVolumeUSD: BigDecimal @source(subgraph: "uniswap", name: "dailyVolumeUSD", type: "BigDecimal")\n dailyVolumeUSD_not: BigDecimal @source(subgraph: "uniswap", name: "dailyVolumeUSD_not", type: "BigDecimal")\n dailyVolumeUSD_gt: BigDecimal @source(subgraph: "uniswap", name: "dailyVolumeUSD_gt", type: "BigDecimal")\n dailyVolumeUSD_lt: BigDecimal @source(subgraph: "uniswap", name: "dailyVolumeUSD_lt", type: "BigDecimal")\n dailyVolumeUSD_gte: BigDecimal @source(subgraph: "uniswap", name: "dailyVolumeUSD_gte", type: "BigDecimal")\n dailyVolumeUSD_lte: BigDecimal @source(subgraph: "uniswap", name: "dailyVolumeUSD_lte", type: "BigDecimal")\n dailyVolumeUSD_in: [BigDecimal!] @source(subgraph: "uniswap", name: "dailyVolumeUSD_in", type: "[BigDecimal!]")\n dailyVolumeUSD_not_in: [BigDecimal!] @source(subgraph: "uniswap", name: "dailyVolumeUSD_not_in", type: "[BigDecimal!]")\n dailyTxns: BigInt @source(subgraph: "uniswap", name: "dailyTxns", type: "BigInt")\n dailyTxns_not: BigInt @source(subgraph: "uniswap", name: "dailyTxns_not", type: "BigInt")\n dailyTxns_gt: BigInt @source(subgraph: "uniswap", name: "dailyTxns_gt", type: "BigInt")\n dailyTxns_lt: BigInt @source(subgraph: "uniswap", name: "dailyTxns_lt", type: "BigInt")\n dailyTxns_gte: BigInt @source(subgraph: "uniswap", name: "dailyTxns_gte", type: "BigInt")\n dailyTxns_lte: BigInt @source(subgraph: "uniswap", name: "dailyTxns_lte", type: "BigInt")\n dailyTxns_in: [BigInt!] @source(subgraph: "uniswap", name: "dailyTxns_in", type: "[BigInt!]")\n dailyTxns_not_in: [BigInt!] @source(subgraph: "uniswap", name: "dailyTxns_not_in", type: "[BigInt!]")\n """Filter for the block changed event."""\n _change_block: BlockChangedFilter @source(subgraph: "uniswap", name: "_change_block", type: "BlockChangedFilter")\n and: [PairDayData_filter] @source(subgraph: "uniswap", name: "and", type: "[PairDayData_filter]")\n or: [PairDayData_filter] @source(subgraph: "uniswap", name: "or", type: "[PairDayData_filter]")\n}\n\nenum PairDayData_orderBy @source(subgraph: "uniswap", name: "PairDayData_orderBy") {\n id @source(subgraph: "uniswap", name: "id")\n date @source(subgraph: "uniswap", name: "date")\n pairAddress @source(subgraph: "uniswap", name: "pairAddress")\n token0 @source(subgraph: "uniswap", name: "token0")\n token0__id @source(subgraph: "uniswap", name: "token0__id")\n token0__symbol @source(subgraph: "uniswap", name: "token0__symbol")\n token0__name @source(subgraph: "uniswap", name: "token0__name")\n token0__decimals @source(subgraph: "uniswap", name: "token0__decimals")\n token0__totalSupply @source(subgraph: "uniswap", name: "token0__totalSupply")\n token0__tradeVolume @source(subgraph: "uniswap", name: "token0__tradeVolume")\n token0__tradeVolumeUSD @source(subgraph: "uniswap", name: "token0__tradeVolumeUSD")\n token0__untrackedVolumeUSD @source(subgraph: "uniswap", name: "token0__untrackedVolumeUSD")\n token0__txCount @source(subgraph: "uniswap", name: "token0__txCount")\n token0__totalLiquidity @source(subgraph: "uniswap", name: "token0__totalLiquidity")\n token0__derivedETH @source(subgraph: "uniswap", name: "token0__derivedETH")\n token1 @source(subgraph: "uniswap", name: "token1")\n token1__id @source(subgraph: "uniswap", name: "token1__id")\n token1__symbol @source(subgraph: "uniswap", name: "token1__symbol")\n token1__name @source(subgraph: "uniswap", name: "token1__name")\n token1__decimals @source(subgraph: "uniswap", name: "token1__decimals")\n token1__totalSupply @source(subgraph: "uniswap", name: "token1__totalSupply")\n token1__tradeVolume @source(subgraph: "uniswap", name: "token1__tradeVolume")\n token1__tradeVolumeUSD @source(subgraph: "uniswap", name: "token1__tradeVolumeUSD")\n token1__untrackedVolumeUSD @source(subgraph: "uniswap", name: "token1__untrackedVolumeUSD")\n token1__txCount @source(subgraph: "uniswap", name: "token1__txCount")\n token1__totalLiquidity @source(subgraph: "uniswap", name: "token1__totalLiquidity")\n token1__derivedETH @source(subgraph: "uniswap", name: "token1__derivedETH")\n reserve0 @source(subgraph: "uniswap", name: "reserve0")\n reserve1 @source(subgraph: "uniswap", name: "reserve1")\n totalSupply @source(subgraph: "uniswap", name: "totalSupply")\n reserveUSD @source(subgraph: "uniswap", name: "reserveUSD")\n dailyVolumeToken0 @source(subgraph: "uniswap", name: "dailyVolumeToken0")\n dailyVolumeToken1 @source(subgraph: "uniswap", name: "dailyVolumeToken1")\n dailyVolumeUSD @source(subgraph: "uniswap", name: "dailyVolumeUSD")\n dailyTxns @source(subgraph: "uniswap", name: "dailyTxns")\n}\n\ntype PairHourData @source(subgraph: "uniswap", name: "PairHourData") @resolver(subgraph: "uniswap", operation: "query PairHourDataById($PairHourData_id: ID!) { pairHourData(id: $PairHourData_id) }", kind: "FETCH") @resolver(subgraph: "uniswap", operation: "query GetPairHourDataById($PairHourData_id: ID!) { pairHourDatas(where: { id: $PairHourData_id) } }", kind: "FETCH") @resolver(subgraph: "uniswap", operation: "query GetPairHourDataByIds($PairHourData_id: [ID!]!) { pairHourDatas(where: { id_in: $PairHourData_id }) }", kind: "BATCH") @variable(subgraph: "uniswap", name: "PairHourData_id", select: "id") {\n id: ID! @source(subgraph: "uniswap", name: "id", type: "ID!")\n hourStartUnix: Int! @source(subgraph: "uniswap", name: "hourStartUnix", type: "Int!")\n pair: Pair! @source(subgraph: "uniswap", name: "pair", type: "Pair!")\n reserve0: BigDecimal! @source(subgraph: "uniswap", name: "reserve0", type: "BigDecimal!")\n reserve1: BigDecimal! @source(subgraph: "uniswap", name: "reserve1", type: "BigDecimal!")\n totalSupply: BigDecimal @source(subgraph: "uniswap", name: "totalSupply", type: "BigDecimal")\n reserveUSD: BigDecimal! @source(subgraph: "uniswap", name: "reserveUSD", type: "BigDecimal!")\n hourlyVolumeToken0: BigDecimal! @source(subgraph: "uniswap", name: "hourlyVolumeToken0", type: "BigDecimal!")\n hourlyVolumeToken1: BigDecimal! @source(subgraph: "uniswap", name: "hourlyVolumeToken1", type: "BigDecimal!")\n hourlyVolumeUSD: BigDecimal! @source(subgraph: "uniswap", name: "hourlyVolumeUSD", type: "BigDecimal!")\n hourlyTxns: BigInt! @source(subgraph: "uniswap", name: "hourlyTxns", type: "BigInt!")\n}\n\ninput PairHourData_filter @source(subgraph: "uniswap", name: "PairHourData_filter") {\n id: ID @source(subgraph: "uniswap", name: "id", type: "ID")\n id_not: ID @source(subgraph: "uniswap", name: "id_not", type: "ID")\n id_gt: ID @source(subgraph: "uniswap", name: "id_gt", type: "ID")\n id_lt: ID @source(subgraph: "uniswap", name: "id_lt", type: "ID")\n id_gte: ID @source(subgraph: "uniswap", name: "id_gte", type: "ID")\n id_lte: ID @source(subgraph: "uniswap", name: "id_lte", type: "ID")\n id_in: [ID!] @source(subgraph: "uniswap", name: "id_in", type: "[ID!]")\n id_not_in: [ID!] @source(subgraph: "uniswap", name: "id_not_in", type: "[ID!]")\n hourStartUnix: Int @source(subgraph: "uniswap", name: "hourStartUnix", type: "Int")\n hourStartUnix_not: Int @source(subgraph: "uniswap", name: "hourStartUnix_not", type: "Int")\n hourStartUnix_gt: Int @source(subgraph: "uniswap", name: "hourStartUnix_gt", type: "Int")\n hourStartUnix_lt: Int @source(subgraph: "uniswap", name: "hourStartUnix_lt", type: "Int")\n hourStartUnix_gte: Int @source(subgraph: "uniswap", name: "hourStartUnix_gte", type: "Int")\n hourStartUnix_lte: Int @source(subgraph: "uniswap", name: "hourStartUnix_lte", type: "Int")\n hourStartUnix_in: [Int!] @source(subgraph: "uniswap", name: "hourStartUnix_in", type: "[Int!]")\n hourStartUnix_not_in: [Int!] @source(subgraph: "uniswap", name: "hourStartUnix_not_in", type: "[Int!]")\n pair: String @source(subgraph: "uniswap", name: "pair", type: "String")\n pair_not: String @source(subgraph: "uniswap", name: "pair_not", type: "String")\n pair_gt: String @source(subgraph: "uniswap", name: "pair_gt", type: "String")\n pair_lt: String @source(subgraph: "uniswap", name: "pair_lt", type: "String")\n pair_gte: String @source(subgraph: "uniswap", name: "pair_gte", type: "String")\n pair_lte: String @source(subgraph: "uniswap", name: "pair_lte", type: "String")\n pair_in: [String!] @source(subgraph: "uniswap", name: "pair_in", type: "[String!]")\n pair_not_in: [String!] @source(subgraph: "uniswap", name: "pair_not_in", type: "[String!]")\n pair_contains: String @source(subgraph: "uniswap", name: "pair_contains", type: "String")\n pair_contains_nocase: String @source(subgraph: "uniswap", name: "pair_contains_nocase", type: "String")\n pair_not_contains: String @source(subgraph: "uniswap", name: "pair_not_contains", type: "String")\n pair_not_contains_nocase: String @source(subgraph: "uniswap", name: "pair_not_contains_nocase", type: "String")\n pair_starts_with: String @source(subgraph: "uniswap", name: "pair_starts_with", type: "String")\n pair_starts_with_nocase: String @source(subgraph: "uniswap", name: "pair_starts_with_nocase", type: "String")\n pair_not_starts_with: String @source(subgraph: "uniswap", name: "pair_not_starts_with", type: "String")\n pair_not_starts_with_nocase: String @source(subgraph: "uniswap", name: "pair_not_starts_with_nocase", type: "String")\n pair_ends_with: String @source(subgraph: "uniswap", name: "pair_ends_with", type: "String")\n pair_ends_with_nocase: String @source(subgraph: "uniswap", name: "pair_ends_with_nocase", type: "String")\n pair_not_ends_with: String @source(subgraph: "uniswap", name: "pair_not_ends_with", type: "String")\n pair_not_ends_with_nocase: String @source(subgraph: "uniswap", name: "pair_not_ends_with_nocase", type: "String")\n pair_: Pair_filter @source(subgraph: "uniswap", name: "pair_", type: "Pair_filter")\n reserve0: BigDecimal @source(subgraph: "uniswap", name: "reserve0", type: "BigDecimal")\n reserve0_not: BigDecimal @source(subgraph: "uniswap", name: "reserve0_not", type: "BigDecimal")\n reserve0_gt: BigDecimal @source(subgraph: "uniswap", name: "reserve0_gt", type: "BigDecimal")\n reserve0_lt: BigDecimal @source(subgraph: "uniswap", name: "reserve0_lt", type: "BigDecimal")\n reserve0_gte: BigDecimal @source(subgraph: "uniswap", name: "reserve0_gte", type: "BigDecimal")\n reserve0_lte: BigDecimal @source(subgraph: "uniswap", name: "reserve0_lte", type: "BigDecimal")\n reserve0_in: [BigDecimal!] @source(subgraph: "uniswap", name: "reserve0_in", type: "[BigDecimal!]")\n reserve0_not_in: [BigDecimal!] @source(subgraph: "uniswap", name: "reserve0_not_in", type: "[BigDecimal!]")\n reserve1: BigDecimal @source(subgraph: "uniswap", name: "reserve1", type: "BigDecimal")\n reserve1_not: BigDecimal @source(subgraph: "uniswap", name: "reserve1_not", type: "BigDecimal")\n reserve1_gt: BigDecimal @source(subgraph: "uniswap", name: "reserve1_gt", type: "BigDecimal")\n reserve1_lt: BigDecimal @source(subgraph: "uniswap", name: "reserve1_lt", type: "BigDecimal")\n reserve1_gte: BigDecimal @source(subgraph: "uniswap", name: "reserve1_gte", type: "BigDecimal")\n reserve1_lte: BigDecimal @source(subgraph: "uniswap", name: "reserve1_lte", type: "BigDecimal")\n reserve1_in: [BigDecimal!] @source(subgraph: "uniswap", name: "reserve1_in", type: "[BigDecimal!]")\n reserve1_not_in: [BigDecimal!] @source(subgraph: "uniswap", name: "reserve1_not_in", type: "[BigDecimal!]")\n totalSupply: BigDecimal @source(subgraph: "uniswap", name: "totalSupply", type: "BigDecimal")\n totalSupply_not: BigDecimal @source(subgraph: "uniswap", name: "totalSupply_not", type: "BigDecimal")\n totalSupply_gt: BigDecimal @source(subgraph: "uniswap", name: "totalSupply_gt", type: "BigDecimal")\n totalSupply_lt: BigDecimal @source(subgraph: "uniswap", name: "totalSupply_lt", type: "BigDecimal")\n totalSupply_gte: BigDecimal @source(subgraph: "uniswap", name: "totalSupply_gte", type: "BigDecimal")\n totalSupply_lte: BigDecimal @source(subgraph: "uniswap", name: "totalSupply_lte", type: "BigDecimal")\n totalSupply_in: [BigDecimal!] @source(subgraph: "uniswap", name: "totalSupply_in", type: "[BigDecimal!]")\n totalSupply_not_in: [BigDecimal!] @source(subgraph: "uniswap", name: "totalSupply_not_in", type: "[BigDecimal!]")\n reserveUSD: BigDecimal @source(subgraph: "uniswap", name: "reserveUSD", type: "BigDecimal")\n reserveUSD_not: BigDecimal @source(subgraph: "uniswap", name: "reserveUSD_not", type: "BigDecimal")\n reserveUSD_gt: BigDecimal @source(subgraph: "uniswap", name: "reserveUSD_gt", type: "BigDecimal")\n reserveUSD_lt: BigDecimal @source(subgraph: "uniswap", name: "reserveUSD_lt", type: "BigDecimal")\n reserveUSD_gte: BigDecimal @source(subgraph: "uniswap", name: "reserveUSD_gte", type: "BigDecimal")\n reserveUSD_lte: BigDecimal @source(subgraph: "uniswap", name: "reserveUSD_lte", type: "BigDecimal")\n reserveUSD_in: [BigDecimal!] @source(subgraph: "uniswap", name: "reserveUSD_in", type: "[BigDecimal!]")\n reserveUSD_not_in: [BigDecimal!] @source(subgraph: "uniswap", name: "reserveUSD_not_in", type: "[BigDecimal!]")\n hourlyVolumeToken0: BigDecimal @source(subgraph: "uniswap", name: "hourlyVolumeToken0", type: "BigDecimal")\n hourlyVolumeToken0_not: BigDecimal @source(subgraph: "uniswap", name: "hourlyVolumeToken0_not", type: "BigDecimal")\n hourlyVolumeToken0_gt: BigDecimal @source(subgraph: "uniswap", name: "hourlyVolumeToken0_gt", type: "BigDecimal")\n hourlyVolumeToken0_lt: BigDecimal @source(subgraph: "uniswap", name: "hourlyVolumeToken0_lt", type: "BigDecimal")\n hourlyVolumeToken0_gte: BigDecimal @source(subgraph: "uniswap", name: "hourlyVolumeToken0_gte", type: "BigDecimal")\n hourlyVolumeToken0_lte: BigDecimal @source(subgraph: "uniswap", name: "hourlyVolumeToken0_lte", type: "BigDecimal")\n hourlyVolumeToken0_in: [BigDecimal!] @source(subgraph: "uniswap", name: "hourlyVolumeToken0_in", type: "[BigDecimal!]")\n hourlyVolumeToken0_not_in: [BigDecimal!] @source(subgraph: "uniswap", name: "hourlyVolumeToken0_not_in", type: "[BigDecimal!]")\n hourlyVolumeToken1: BigDecimal @source(subgraph: "uniswap", name: "hourlyVolumeToken1", type: "BigDecimal")\n hourlyVolumeToken1_not: BigDecimal @source(subgraph: "uniswap", name: "hourlyVolumeToken1_not", type: "BigDecimal")\n hourlyVolumeToken1_gt: BigDecimal @source(subgraph: "uniswap", name: "hourlyVolumeToken1_gt", type: "BigDecimal")\n hourlyVolumeToken1_lt: BigDecimal @source(subgraph: "uniswap", name: "hourlyVolumeToken1_lt", type: "BigDecimal")\n hourlyVolumeToken1_gte: BigDecimal @source(subgraph: "uniswap", name: "hourlyVolumeToken1_gte", type: "BigDecimal")\n hourlyVolumeToken1_lte: BigDecimal @source(subgraph: "uniswap", name: "hourlyVolumeToken1_lte", type: "BigDecimal")\n hourlyVolumeToken1_in: [BigDecimal!] @source(subgraph: "uniswap", name: "hourlyVolumeToken1_in", type: "[BigDecimal!]")\n hourlyVolumeToken1_not_in: [BigDecimal!] @source(subgraph: "uniswap", name: "hourlyVolumeToken1_not_in", type: "[BigDecimal!]")\n hourlyVolumeUSD: BigDecimal @source(subgraph: "uniswap", name: "hourlyVolumeUSD", type: "BigDecimal")\n hourlyVolumeUSD_not: BigDecimal @source(subgraph: "uniswap", name: "hourlyVolumeUSD_not", type: "BigDecimal")\n hourlyVolumeUSD_gt: BigDecimal @source(subgraph: "uniswap", name: "hourlyVolumeUSD_gt", type: "BigDecimal")\n hourlyVolumeUSD_lt: BigDecimal @source(subgraph: "uniswap", name: "hourlyVolumeUSD_lt", type: "BigDecimal")\n hourlyVolumeUSD_gte: BigDecimal @source(subgraph: "uniswap", name: "hourlyVolumeUSD_gte", type: "BigDecimal")\n hourlyVolumeUSD_lte: BigDecimal @source(subgraph: "uniswap", name: "hourlyVolumeUSD_lte", type: "BigDecimal")\n hourlyVolumeUSD_in: [BigDecimal!] @source(subgraph: "uniswap", name: "hourlyVolumeUSD_in", type: "[BigDecimal!]")\n hourlyVolumeUSD_not_in: [BigDecimal!] @source(subgraph: "uniswap", name: "hourlyVolumeUSD_not_in", type: "[BigDecimal!]")\n hourlyTxns: BigInt @source(subgraph: "uniswap", name: "hourlyTxns", type: "BigInt")\n hourlyTxns_not: BigInt @source(subgraph: "uniswap", name: "hourlyTxns_not", type: "BigInt")\n hourlyTxns_gt: BigInt @source(subgraph: "uniswap", name: "hourlyTxns_gt", type: "BigInt")\n hourlyTxns_lt: BigInt @source(subgraph: "uniswap", name: "hourlyTxns_lt", type: "BigInt")\n hourlyTxns_gte: BigInt @source(subgraph: "uniswap", name: "hourlyTxns_gte", type: "BigInt")\n hourlyTxns_lte: BigInt @source(subgraph: "uniswap", name: "hourlyTxns_lte", type: "BigInt")\n hourlyTxns_in: [BigInt!] @source(subgraph: "uniswap", name: "hourlyTxns_in", type: "[BigInt!]")\n hourlyTxns_not_in: [BigInt!] @source(subgraph: "uniswap", name: "hourlyTxns_not_in", type: "[BigInt!]")\n """Filter for the block changed event."""\n _change_block: BlockChangedFilter @source(subgraph: "uniswap", name: "_change_block", type: "BlockChangedFilter")\n and: [PairHourData_filter] @source(subgraph: "uniswap", name: "and", type: "[PairHourData_filter]")\n or: [PairHourData_filter] @source(subgraph: "uniswap", name: "or", type: "[PairHourData_filter]")\n}\n\nenum PairHourData_orderBy @source(subgraph: "uniswap", name: "PairHourData_orderBy") {\n id @source(subgraph: "uniswap", name: "id")\n hourStartUnix @source(subgraph: "uniswap", name: "hourStartUnix")\n pair @source(subgraph: "uniswap", name: "pair")\n pair__id @source(subgraph: "uniswap", name: "pair__id")\n pair__reserve0 @source(subgraph: "uniswap", name: "pair__reserve0")\n pair__reserve1 @source(subgraph: "uniswap", name: "pair__reserve1")\n pair__totalSupply @source(subgraph: "uniswap", name: "pair__totalSupply")\n pair__reserveETH @source(subgraph: "uniswap", name: "pair__reserveETH")\n pair__reserveUSD @source(subgraph: "uniswap", name: "pair__reserveUSD")\n pair__trackedReserveETH @source(subgraph: "uniswap", name: "pair__trackedReserveETH")\n pair__token0Price @source(subgraph: "uniswap", name: "pair__token0Price")\n pair__token1Price @source(subgraph: "uniswap", name: "pair__token1Price")\n pair__volumeToken0 @source(subgraph: "uniswap", name: "pair__volumeToken0")\n pair__volumeToken1 @source(subgraph: "uniswap", name: "pair__volumeToken1")\n pair__volumeUSD @source(subgraph: "uniswap", name: "pair__volumeUSD")\n pair__untrackedVolumeUSD @source(subgraph: "uniswap", name: "pair__untrackedVolumeUSD")\n pair__txCount @source(subgraph: "uniswap", name: "pair__txCount")\n pair__createdAtTimestamp @source(subgraph: "uniswap", name: "pair__createdAtTimestamp")\n pair__createdAtBlockNumber @source(subgraph: "uniswap", name: "pair__createdAtBlockNumber")\n pair__liquidityProviderCount @source(subgraph: "uniswap", name: "pair__liquidityProviderCount")\n reserve0 @source(subgraph: "uniswap", name: "reserve0")\n reserve1 @source(subgraph: "uniswap", name: "reserve1")\n totalSupply @source(subgraph: "uniswap", name: "totalSupply")\n reserveUSD @source(subgraph: "uniswap", name: "reserveUSD")\n hourlyVolumeToken0 @source(subgraph: "uniswap", name: "hourlyVolumeToken0")\n hourlyVolumeToken1 @source(subgraph: "uniswap", name: "hourlyVolumeToken1")\n hourlyVolumeUSD @source(subgraph: "uniswap", name: "hourlyVolumeUSD")\n hourlyTxns @source(subgraph: "uniswap", name: "hourlyTxns")\n}\n\ninput Pair_filter @source(subgraph: "uniswap", name: "Pair_filter") {\n id: ID @source(subgraph: "uniswap", name: "id", type: "ID")\n id_not: ID @source(subgraph: "uniswap", name: "id_not", type: "ID")\n id_gt: ID @source(subgraph: "uniswap", name: "id_gt", type: "ID")\n id_lt: ID @source(subgraph: "uniswap", name: "id_lt", type: "ID")\n id_gte: ID @source(subgraph: "uniswap", name: "id_gte", type: "ID")\n id_lte: ID @source(subgraph: "uniswap", name: "id_lte", type: "ID")\n id_in: [ID!] @source(subgraph: "uniswap", name: "id_in", type: "[ID!]")\n id_not_in: [ID!] @source(subgraph: "uniswap", name: "id_not_in", type: "[ID!]")\n token0: String @source(subgraph: "uniswap", name: "token0", type: "String")\n token0_not: String @source(subgraph: "uniswap", name: "token0_not", type: "String")\n token0_gt: String @source(subgraph: "uniswap", name: "token0_gt", type: "String")\n token0_lt: String @source(subgraph: "uniswap", name: "token0_lt", type: "String")\n token0_gte: String @source(subgraph: "uniswap", name: "token0_gte", type: "String")\n token0_lte: String @source(subgraph: "uniswap", name: "token0_lte", type: "String")\n token0_in: [String!] @source(subgraph: "uniswap", name: "token0_in", type: "[String!]")\n token0_not_in: [String!] @source(subgraph: "uniswap", name: "token0_not_in", type: "[String!]")\n token0_contains: String @source(subgraph: "uniswap", name: "token0_contains", type: "String")\n token0_contains_nocase: String @source(subgraph: "uniswap", name: "token0_contains_nocase", type: "String")\n token0_not_contains: String @source(subgraph: "uniswap", name: "token0_not_contains", type: "String")\n token0_not_contains_nocase: String @source(subgraph: "uniswap", name: "token0_not_contains_nocase", type: "String")\n token0_starts_with: String @source(subgraph: "uniswap", name: "token0_starts_with", type: "String")\n token0_starts_with_nocase: String @source(subgraph: "uniswap", name: "token0_starts_with_nocase", type: "String")\n token0_not_starts_with: String @source(subgraph: "uniswap", name: "token0_not_starts_with", type: "String")\n token0_not_starts_with_nocase: String @source(subgraph: "uniswap", name: "token0_not_starts_with_nocase", type: "String")\n token0_ends_with: String @source(subgraph: "uniswap", name: "token0_ends_with", type: "String")\n token0_ends_with_nocase: String @source(subgraph: "uniswap", name: "token0_ends_with_nocase", type: "String")\n token0_not_ends_with: String @source(subgraph: "uniswap", name: "token0_not_ends_with", type: "String")\n token0_not_ends_with_nocase: String @source(subgraph: "uniswap", name: "token0_not_ends_with_nocase", type: "String")\n token0_: Token_filter @source(subgraph: "uniswap", name: "token0_", type: "Token_filter")\n token1: String @source(subgraph: "uniswap", name: "token1", type: "String")\n token1_not: String @source(subgraph: "uniswap", name: "token1_not", type: "String")\n token1_gt: String @source(subgraph: "uniswap", name: "token1_gt", type: "String")\n token1_lt: String @source(subgraph: "uniswap", name: "token1_lt", type: "String")\n token1_gte: String @source(subgraph: "uniswap", name: "token1_gte", type: "String")\n token1_lte: String @source(subgraph: "uniswap", name: "token1_lte", type: "String")\n token1_in: [String!] @source(subgraph: "uniswap", name: "token1_in", type: "[String!]")\n token1_not_in: [String!] @source(subgraph: "uniswap", name: "token1_not_in", type: "[String!]")\n token1_contains: String @source(subgraph: "uniswap", name: "token1_contains", type: "String")\n token1_contains_nocase: String @source(subgraph: "uniswap", name: "token1_contains_nocase", type: "String")\n token1_not_contains: String @source(subgraph: "uniswap", name: "token1_not_contains", type: "String")\n token1_not_contains_nocase: String @source(subgraph: "uniswap", name: "token1_not_contains_nocase", type: "String")\n token1_starts_with: String @source(subgraph: "uniswap", name: "token1_starts_with", type: "String")\n token1_starts_with_nocase: String @source(subgraph: "uniswap", name: "token1_starts_with_nocase", type: "String")\n token1_not_starts_with: String @source(subgraph: "uniswap", name: "token1_not_starts_with", type: "String")\n token1_not_starts_with_nocase: String @source(subgraph: "uniswap", name: "token1_not_starts_with_nocase", type: "String")\n token1_ends_with: String @source(subgraph: "uniswap", name: "token1_ends_with", type: "String")\n token1_ends_with_nocase: String @source(subgraph: "uniswap", name: "token1_ends_with_nocase", type: "String")\n token1_not_ends_with: String @source(subgraph: "uniswap", name: "token1_not_ends_with", type: "String")\n token1_not_ends_with_nocase: String @source(subgraph: "uniswap", name: "token1_not_ends_with_nocase", type: "String")\n token1_: Token_filter @source(subgraph: "uniswap", name: "token1_", type: "Token_filter")\n reserve0: BigDecimal @source(subgraph: "uniswap", name: "reserve0", type: "BigDecimal")\n reserve0_not: BigDecimal @source(subgraph: "uniswap", name: "reserve0_not", type: "BigDecimal")\n reserve0_gt: BigDecimal @source(subgraph: "uniswap", name: "reserve0_gt", type: "BigDecimal")\n reserve0_lt: BigDecimal @source(subgraph: "uniswap", name: "reserve0_lt", type: "BigDecimal")\n reserve0_gte: BigDecimal @source(subgraph: "uniswap", name: "reserve0_gte", type: "BigDecimal")\n reserve0_lte: BigDecimal @source(subgraph: "uniswap", name: "reserve0_lte", type: "BigDecimal")\n reserve0_in: [BigDecimal!] @source(subgraph: "uniswap", name: "reserve0_in", type: "[BigDecimal!]")\n reserve0_not_in: [BigDecimal!] @source(subgraph: "uniswap", name: "reserve0_not_in", type: "[BigDecimal!]")\n reserve1: BigDecimal @source(subgraph: "uniswap", name: "reserve1", type: "BigDecimal")\n reserve1_not: BigDecimal @source(subgraph: "uniswap", name: "reserve1_not", type: "BigDecimal")\n reserve1_gt: BigDecimal @source(subgraph: "uniswap", name: "reserve1_gt", type: "BigDecimal")\n reserve1_lt: BigDecimal @source(subgraph: "uniswap", name: "reserve1_lt", type: "BigDecimal")\n reserve1_gte: BigDecimal @source(subgraph: "uniswap", name: "reserve1_gte", type: "BigDecimal")\n reserve1_lte: BigDecimal @source(subgraph: "uniswap", name: "reserve1_lte", type: "BigDecimal")\n reserve1_in: [BigDecimal!] @source(subgraph: "uniswap", name: "reserve1_in", type: "[BigDecimal!]")\n reserve1_not_in: [BigDecimal!] @source(subgraph: "uniswap", name: "reserve1_not_in", type: "[BigDecimal!]")\n totalSupply: BigDecimal @source(subgraph: "uniswap", name: "totalSupply", type: "BigDecimal")\n totalSupply_not: BigDecimal @source(subgraph: "uniswap", name: "totalSupply_not", type: "BigDecimal")\n totalSupply_gt: BigDecimal @source(subgraph: "uniswap", name: "totalSupply_gt", type: "BigDecimal")\n totalSupply_lt: BigDecimal @source(subgraph: "uniswap", name: "totalSupply_lt", type: "BigDecimal")\n totalSupply_gte: BigDecimal @source(subgraph: "uniswap", name: "totalSupply_gte", type: "BigDecimal")\n totalSupply_lte: BigDecimal @source(subgraph: "uniswap", name: "totalSupply_lte", type: "BigDecimal")\n totalSupply_in: [BigDecimal!] @source(subgraph: "uniswap", name: "totalSupply_in", type: "[BigDecimal!]")\n totalSupply_not_in: [BigDecimal!] @source(subgraph: "uniswap", name: "totalSupply_not_in", type: "[BigDecimal!]")\n reserveETH: BigDecimal @source(subgraph: "uniswap", name: "reserveETH", type: "BigDecimal")\n reserveETH_not: BigDecimal @source(subgraph: "uniswap", name: "reserveETH_not", type: "BigDecimal")\n reserveETH_gt: BigDecimal @source(subgraph: "uniswap", name: "reserveETH_gt", type: "BigDecimal")\n reserveETH_lt: BigDecimal @source(subgraph: "uniswap", name: "reserveETH_lt", type: "BigDecimal")\n reserveETH_gte: BigDecimal @source(subgraph: "uniswap", name: "reserveETH_gte", type: "BigDecimal")\n reserveETH_lte: BigDecimal @source(subgraph: "uniswap", name: "reserveETH_lte", type: "BigDecimal")\n reserveETH_in: [BigDecimal!] @source(subgraph: "uniswap", name: "reserveETH_in", type: "[BigDecimal!]")\n reserveETH_not_in: [BigDecimal!] @source(subgraph: "uniswap", name: "reserveETH_not_in", type: "[BigDecimal!]")\n reserveUSD: BigDecimal @source(subgraph: "uniswap", name: "reserveUSD", type: "BigDecimal")\n reserveUSD_not: BigDecimal @source(subgraph: "uniswap", name: "reserveUSD_not", type: "BigDecimal")\n reserveUSD_gt: BigDecimal @source(subgraph: "uniswap", name: "reserveUSD_gt", type: "BigDecimal")\n reserveUSD_lt: BigDecimal @source(subgraph: "uniswap", name: "reserveUSD_lt", type: "BigDecimal")\n reserveUSD_gte: BigDecimal @source(subgraph: "uniswap", name: "reserveUSD_gte", type: "BigDecimal")\n reserveUSD_lte: BigDecimal @source(subgraph: "uniswap", name: "reserveUSD_lte", type: "BigDecimal")\n reserveUSD_in: [BigDecimal!] @source(subgraph: "uniswap", name: "reserveUSD_in", type: "[BigDecimal!]")\n reserveUSD_not_in: [BigDecimal!] @source(subgraph: "uniswap", name: "reserveUSD_not_in", type: "[BigDecimal!]")\n trackedReserveETH: BigDecimal @source(subgraph: "uniswap", name: "trackedReserveETH", type: "BigDecimal")\n trackedReserveETH_not: BigDecimal @source(subgraph: "uniswap", name: "trackedReserveETH_not", type: "BigDecimal")\n trackedReserveETH_gt: BigDecimal @source(subgraph: "uniswap", name: "trackedReserveETH_gt", type: "BigDecimal")\n trackedReserveETH_lt: BigDecimal @source(subgraph: "uniswap", name: "trackedReserveETH_lt", type: "BigDecimal")\n trackedReserveETH_gte: BigDecimal @source(subgraph: "uniswap", name: "trackedReserveETH_gte", type: "BigDecimal")\n trackedReserveETH_lte: BigDecimal @source(subgraph: "uniswap", name: "trackedReserveETH_lte", type: "BigDecimal")\n trackedReserveETH_in: [BigDecimal!] @source(subgraph: "uniswap", name: "trackedReserveETH_in", type: "[BigDecimal!]")\n trackedReserveETH_not_in: [BigDecimal!] @source(subgraph: "uniswap", name: "trackedReserveETH_not_in", type: "[BigDecimal!]")\n token0Price: BigDecimal @source(subgraph: "uniswap", name: "token0Price", type: "BigDecimal")\n token0Price_not: BigDecimal @source(subgraph: "uniswap", name: "token0Price_not", type: "BigDecimal")\n token0Price_gt: BigDecimal @source(subgraph: "uniswap", name: "token0Price_gt", type: "BigDecimal")\n token0Price_lt: BigDecimal @source(subgraph: "uniswap", name: "token0Price_lt", type: "BigDecimal")\n token0Price_gte: BigDecimal @source(subgraph: "uniswap", name: "token0Price_gte", type: "BigDecimal")\n token0Price_lte: BigDecimal @source(subgraph: "uniswap", name: "token0Price_lte", type: "BigDecimal")\n token0Price_in: [BigDecimal!] @source(subgraph: "uniswap", name: "token0Price_in", type: "[BigDecimal!]")\n token0Price_not_in: [BigDecimal!] @source(subgraph: "uniswap", name: "token0Price_not_in", type: "[BigDecimal!]")\n token1Price: BigDecimal @source(subgraph: "uniswap", name: "token1Price", type: "BigDecimal")\n token1Price_not: BigDecimal @source(subgraph: "uniswap", name: "token1Price_not", type: "BigDecimal")\n token1Price_gt: BigDecimal @source(subgraph: "uniswap", name: "token1Price_gt", type: "BigDecimal")\n token1Price_lt: BigDecimal @source(subgraph: "uniswap", name: "token1Price_lt", type: "BigDecimal")\n token1Price_gte: BigDecimal @source(subgraph: "uniswap", name: "token1Price_gte", type: "BigDecimal")\n token1Price_lte: BigDecimal @source(subgraph: "uniswap", name: "token1Price_lte", type: "BigDecimal")\n token1Price_in: [BigDecimal!] @source(subgraph: "uniswap", name: "token1Price_in", type: "[BigDecimal!]")\n token1Price_not_in: [BigDecimal!] @source(subgraph: "uniswap", name: "token1Price_not_in", type: "[BigDecimal!]")\n volumeToken0: BigDecimal @source(subgraph: "uniswap", name: "volumeToken0", type: "BigDecimal")\n volumeToken0_not: BigDecimal @source(subgraph: "uniswap", name: "volumeToken0_not", type: "BigDecimal")\n volumeToken0_gt: BigDecimal @source(subgraph: "uniswap", name: "volumeToken0_gt", type: "BigDecimal")\n volumeToken0_lt: BigDecimal @source(subgraph: "uniswap", name: "volumeToken0_lt", type: "BigDecimal")\n volumeToken0_gte: BigDecimal @source(subgraph: "uniswap", name: "volumeToken0_gte", type: "BigDecimal")\n volumeToken0_lte: BigDecimal @source(subgraph: "uniswap", name: "volumeToken0_lte", type: "BigDecimal")\n volumeToken0_in: [BigDecimal!] @source(subgraph: "uniswap", name: "volumeToken0_in", type: "[BigDecimal!]")\n volumeToken0_not_in: [BigDecimal!] @source(subgraph: "uniswap", name: "volumeToken0_not_in", type: "[BigDecimal!]")\n volumeToken1: BigDecimal @source(subgraph: "uniswap", name: "volumeToken1", type: "BigDecimal")\n volumeToken1_not: BigDecimal @source(subgraph: "uniswap", name: "volumeToken1_not", type: "BigDecimal")\n volumeToken1_gt: BigDecimal @source(subgraph: "uniswap", name: "volumeToken1_gt", type: "BigDecimal")\n volumeToken1_lt: BigDecimal @source(subgraph: "uniswap", name: "volumeToken1_lt", type: "BigDecimal")\n volumeToken1_gte: BigDecimal @source(subgraph: "uniswap", name: "volumeToken1_gte", type: "BigDecimal")\n volumeToken1_lte: BigDecimal @source(subgraph: "uniswap", name: "volumeToken1_lte", type: "BigDecimal")\n volumeToken1_in: [BigDecimal!] @source(subgraph: "uniswap", name: "volumeToken1_in", type: "[BigDecimal!]")\n volumeToken1_not_in: [BigDecimal!] @source(subgraph: "uniswap", name: "volumeToken1_not_in", type: "[BigDecimal!]")\n volumeUSD: BigDecimal @source(subgraph: "uniswap", name: "volumeUSD", type: "BigDecimal")\n volumeUSD_not: BigDecimal @source(subgraph: "uniswap", name: "volumeUSD_not", type: "BigDecimal")\n volumeUSD_gt: BigDecimal @source(subgraph: "uniswap", name: "volumeUSD_gt", type: "BigDecimal")\n volumeUSD_lt: BigDecimal @source(subgraph: "uniswap", name: "volumeUSD_lt", type: "BigDecimal")\n volumeUSD_gte: BigDecimal @source(subgraph: "uniswap", name: "volumeUSD_gte", type: "BigDecimal")\n volumeUSD_lte: BigDecimal @source(subgraph: "uniswap", name: "volumeUSD_lte", type: "BigDecimal")\n volumeUSD_in: [BigDecimal!] @source(subgraph: "uniswap", name: "volumeUSD_in", type: "[BigDecimal!]")\n volumeUSD_not_in: [BigDecimal!] @source(subgraph: "uniswap", name: "volumeUSD_not_in", type: "[BigDecimal!]")\n untrackedVolumeUSD: BigDecimal @source(subgraph: "uniswap", name: "untrackedVolumeUSD", type: "BigDecimal")\n untrackedVolumeUSD_not: BigDecimal @source(subgraph: "uniswap", name: "untrackedVolumeUSD_not", type: "BigDecimal")\n untrackedVolumeUSD_gt: BigDecimal @source(subgraph: "uniswap", name: "untrackedVolumeUSD_gt", type: "BigDecimal")\n untrackedVolumeUSD_lt: BigDecimal @source(subgraph: "uniswap", name: "untrackedVolumeUSD_lt", type: "BigDecimal")\n untrackedVolumeUSD_gte: BigDecimal @source(subgraph: "uniswap", name: "untrackedVolumeUSD_gte", type: "BigDecimal")\n untrackedVolumeUSD_lte: BigDecimal @source(subgraph: "uniswap", name: "untrackedVolumeUSD_lte", type: "BigDecimal")\n untrackedVolumeUSD_in: [BigDecimal!] @source(subgraph: "uniswap", name: "untrackedVolumeUSD_in", type: "[BigDecimal!]")\n untrackedVolumeUSD_not_in: [BigDecimal!] @source(subgraph: "uniswap", name: "untrackedVolumeUSD_not_in", type: "[BigDecimal!]")\n txCount: BigInt @source(subgraph: "uniswap", name: "txCount", type: "BigInt")\n txCount_not: BigInt @source(subgraph: "uniswap", name: "txCount_not", type: "BigInt")\n txCount_gt: BigInt @source(subgraph: "uniswap", name: "txCount_gt", type: "BigInt")\n txCount_lt: BigInt @source(subgraph: "uniswap", name: "txCount_lt", type: "BigInt")\n txCount_gte: BigInt @source(subgraph: "uniswap", name: "txCount_gte", type: "BigInt")\n txCount_lte: BigInt @source(subgraph: "uniswap", name: "txCount_lte", type: "BigInt")\n txCount_in: [BigInt!] @source(subgraph: "uniswap", name: "txCount_in", type: "[BigInt!]")\n txCount_not_in: [BigInt!] @source(subgraph: "uniswap", name: "txCount_not_in", type: "[BigInt!]")\n createdAtTimestamp: BigInt @source(subgraph: "uniswap", name: "createdAtTimestamp", type: "BigInt")\n createdAtTimestamp_not: BigInt @source(subgraph: "uniswap", name: "createdAtTimestamp_not", type: "BigInt")\n createdAtTimestamp_gt: BigInt @source(subgraph: "uniswap", name: "createdAtTimestamp_gt", type: "BigInt")\n createdAtTimestamp_lt: BigInt @source(subgraph: "uniswap", name: "createdAtTimestamp_lt", type: "BigInt")\n createdAtTimestamp_gte: BigInt @source(subgraph: "uniswap", name: "createdAtTimestamp_gte", type: "BigInt")\n createdAtTimestamp_lte: BigInt @source(subgraph: "uniswap", name: "createdAtTimestamp_lte", type: "BigInt")\n createdAtTimestamp_in: [BigInt!] @source(subgraph: "uniswap", name: "createdAtTimestamp_in", type: "[BigInt!]")\n createdAtTimestamp_not_in: [BigInt!] @source(subgraph: "uniswap", name: "createdAtTimestamp_not_in", type: "[BigInt!]")\n createdAtBlockNumber: BigInt @source(subgraph: "uniswap", name: "createdAtBlockNumber", type: "BigInt")\n createdAtBlockNumber_not: BigInt @source(subgraph: "uniswap", name: "createdAtBlockNumber_not", type: "BigInt")\n createdAtBlockNumber_gt: BigInt @source(subgraph: "uniswap", name: "createdAtBlockNumber_gt", type: "BigInt")\n createdAtBlockNumber_lt: BigInt @source(subgraph: "uniswap", name: "createdAtBlockNumber_lt", type: "BigInt")\n createdAtBlockNumber_gte: BigInt @source(subgraph: "uniswap", name: "createdAtBlockNumber_gte", type: "BigInt")\n createdAtBlockNumber_lte: BigInt @source(subgraph: "uniswap", name: "createdAtBlockNumber_lte", type: "BigInt")\n createdAtBlockNumber_in: [BigInt!] @source(subgraph: "uniswap", name: "createdAtBlockNumber_in", type: "[BigInt!]")\n createdAtBlockNumber_not_in: [BigInt!] @source(subgraph: "uniswap", name: "createdAtBlockNumber_not_in", type: "[BigInt!]")\n liquidityProviderCount: BigInt @source(subgraph: "uniswap", name: "liquidityProviderCount", type: "BigInt")\n liquidityProviderCount_not: BigInt @source(subgraph: "uniswap", name: "liquidityProviderCount_not", type: "BigInt")\n liquidityProviderCount_gt: BigInt @source(subgraph: "uniswap", name: "liquidityProviderCount_gt", type: "BigInt")\n liquidityProviderCount_lt: BigInt @source(subgraph: "uniswap", name: "liquidityProviderCount_lt", type: "BigInt")\n liquidityProviderCount_gte: BigInt @source(subgraph: "uniswap", name: "liquidityProviderCount_gte", type: "BigInt")\n liquidityProviderCount_lte: BigInt @source(subgraph: "uniswap", name: "liquidityProviderCount_lte", type: "BigInt")\n liquidityProviderCount_in: [BigInt!] @source(subgraph: "uniswap", name: "liquidityProviderCount_in", type: "[BigInt!]")\n liquidityProviderCount_not_in: [BigInt!] @source(subgraph: "uniswap", name: "liquidityProviderCount_not_in", type: "[BigInt!]")\n pairHourData_: PairHourData_filter @source(subgraph: "uniswap", name: "pairHourData_", type: "PairHourData_filter")\n liquidityPositions_: LiquidityPosition_filter @source(subgraph: "uniswap", name: "liquidityPositions_", type: "LiquidityPosition_filter")\n liquidityPositionSnapshots_: LiquidityPositionSnapshot_filter @source(subgraph: "uniswap", name: "liquidityPositionSnapshots_", type: "LiquidityPositionSnapshot_filter")\n mints_: Mint_filter @source(subgraph: "uniswap", name: "mints_", type: "Mint_filter")\n burns_: Burn_filter @source(subgraph: "uniswap", name: "burns_", type: "Burn_filter")\n swaps_: Swap_filter @source(subgraph: "uniswap", name: "swaps_", type: "Swap_filter")\n """Filter for the block changed event."""\n _change_block: BlockChangedFilter @source(subgraph: "uniswap", name: "_change_block", type: "BlockChangedFilter")\n and: [Pair_filter] @source(subgraph: "uniswap", name: "and", type: "[Pair_filter]")\n or: [Pair_filter] @source(subgraph: "uniswap", name: "or", type: "[Pair_filter]")\n}\n\nenum Pair_orderBy @source(subgraph: "uniswap", name: "Pair_orderBy") {\n id @source(subgraph: "uniswap", name: "id")\n token0 @source(subgraph: "uniswap", name: "token0")\n token0__id @source(subgraph: "uniswap", name: "token0__id")\n token0__symbol @source(subgraph: "uniswap", name: "token0__symbol")\n token0__name @source(subgraph: "uniswap", name: "token0__name")\n token0__decimals @source(subgraph: "uniswap", name: "token0__decimals")\n token0__totalSupply @source(subgraph: "uniswap", name: "token0__totalSupply")\n token0__tradeVolume @source(subgraph: "uniswap", name: "token0__tradeVolume")\n token0__tradeVolumeUSD @source(subgraph: "uniswap", name: "token0__tradeVolumeUSD")\n token0__untrackedVolumeUSD @source(subgraph: "uniswap", name: "token0__untrackedVolumeUSD")\n token0__txCount @source(subgraph: "uniswap", name: "token0__txCount")\n token0__totalLiquidity @source(subgraph: "uniswap", name: "token0__totalLiquidity")\n token0__derivedETH @source(subgraph: "uniswap", name: "token0__derivedETH")\n token1 @source(subgraph: "uniswap", name: "token1")\n token1__id @source(subgraph: "uniswap", name: "token1__id")\n token1__symbol @source(subgraph: "uniswap", name: "token1__symbol")\n token1__name @source(subgraph: "uniswap", name: "token1__name")\n token1__decimals @source(subgraph: "uniswap", name: "token1__decimals")\n token1__totalSupply @source(subgraph: "uniswap", name: "token1__totalSupply")\n token1__tradeVolume @source(subgraph: "uniswap", name: "token1__tradeVolume")\n token1__tradeVolumeUSD @source(subgraph: "uniswap", name: "token1__tradeVolumeUSD")\n token1__untrackedVolumeUSD @source(subgraph: "uniswap", name: "token1__untrackedVolumeUSD")\n token1__txCount @source(subgraph: "uniswap", name: "token1__txCount")\n token1__totalLiquidity @source(subgraph: "uniswap", name: "token1__totalLiquidity")\n token1__derivedETH @source(subgraph: "uniswap", name: "token1__derivedETH")\n reserve0 @source(subgraph: "uniswap", name: "reserve0")\n reserve1 @source(subgraph: "uniswap", name: "reserve1")\n totalSupply @source(subgraph: "uniswap", name: "totalSupply")\n reserveETH @source(subgraph: "uniswap", name: "reserveETH")\n reserveUSD @source(subgraph: "uniswap", name: "reserveUSD")\n trackedReserveETH @source(subgraph: "uniswap", name: "trackedReserveETH")\n token0Price @source(subgraph: "uniswap", name: "token0Price")\n token1Price @source(subgraph: "uniswap", name: "token1Price")\n volumeToken0 @source(subgraph: "uniswap", name: "volumeToken0")\n volumeToken1 @source(subgraph: "uniswap", name: "volumeToken1")\n volumeUSD @source(subgraph: "uniswap", name: "volumeUSD")\n untrackedVolumeUSD @source(subgraph: "uniswap", name: "untrackedVolumeUSD")\n txCount @source(subgraph: "uniswap", name: "txCount")\n createdAtTimestamp @source(subgraph: "uniswap", name: "createdAtTimestamp")\n createdAtBlockNumber @source(subgraph: "uniswap", name: "createdAtBlockNumber")\n liquidityProviderCount @source(subgraph: "uniswap", name: "liquidityProviderCount")\n pairHourData @source(subgraph: "uniswap", name: "pairHourData")\n liquidityPositions @source(subgraph: "uniswap", name: "liquidityPositions")\n liquidityPositionSnapshots @source(subgraph: "uniswap", name: "liquidityPositionSnapshots")\n mints @source(subgraph: "uniswap", name: "mints")\n burns @source(subgraph: "uniswap", name: "burns")\n swaps @source(subgraph: "uniswap", name: "swaps")\n}\n\ntype Swap @source(subgraph: "uniswap", name: "Swap") @resolver(subgraph: "uniswap", operation: "query SwapById($Swap_id: ID!) { swap(id: $Swap_id) }", kind: "FETCH") @resolver(subgraph: "uniswap", operation: "query GetSwapById($Swap_id: ID!) { swaps(where: { id: $Swap_id) } }", kind: "FETCH") @resolver(subgraph: "uniswap", operation: "query GetSwapsByIds($Swap_id: [ID!]!) { swaps(where: { id_in: $Swap_id }) }", kind: "BATCH") @variable(subgraph: "uniswap", name: "Swap_id", select: "id") {\n id: ID! @source(subgraph: "uniswap", name: "id", type: "ID!")\n transaction: Transaction! @source(subgraph: "uniswap", name: "transaction", type: "Transaction!")\n timestamp: BigInt! @source(subgraph: "uniswap", name: "timestamp", type: "BigInt!")\n pair: Pair! @source(subgraph: "uniswap", name: "pair", type: "Pair!")\n sender: Bytes! @source(subgraph: "uniswap", name: "sender", type: "Bytes!")\n from: Bytes! @source(subgraph: "uniswap", name: "from", type: "Bytes!")\n amount0In: BigDecimal! @source(subgraph: "uniswap", name: "amount0In", type: "BigDecimal!")\n amount1In: BigDecimal! @source(subgraph: "uniswap", name: "amount1In", type: "BigDecimal!")\n amount0Out: BigDecimal! @source(subgraph: "uniswap", name: "amount0Out", type: "BigDecimal!")\n amount1Out: BigDecimal! @source(subgraph: "uniswap", name: "amount1Out", type: "BigDecimal!")\n to: Bytes! @source(subgraph: "uniswap", name: "to", type: "Bytes!")\n logIndex: BigInt @source(subgraph: "uniswap", name: "logIndex", type: "BigInt")\n amountUSD: BigDecimal! @source(subgraph: "uniswap", name: "amountUSD", type: "BigDecimal!")\n}\n\ninput Swap_filter @source(subgraph: "uniswap", name: "Swap_filter") {\n id: ID @source(subgraph: "uniswap", name: "id", type: "ID")\n id_not: ID @source(subgraph: "uniswap", name: "id_not", type: "ID")\n id_gt: ID @source(subgraph: "uniswap", name: "id_gt", type: "ID")\n id_lt: ID @source(subgraph: "uniswap", name: "id_lt", type: "ID")\n id_gte: ID @source(subgraph: "uniswap", name: "id_gte", type: "ID")\n id_lte: ID @source(subgraph: "uniswap", name: "id_lte", type: "ID")\n id_in: [ID!] @source(subgraph: "uniswap", name: "id_in", type: "[ID!]")\n id_not_in: [ID!] @source(subgraph: "uniswap", name: "id_not_in", type: "[ID!]")\n transaction: String @source(subgraph: "uniswap", name: "transaction", type: "String")\n transaction_not: String @source(subgraph: "uniswap", name: "transaction_not", type: "String")\n transaction_gt: String @source(subgraph: "uniswap", name: "transaction_gt", type: "String")\n transaction_lt: String @source(subgraph: "uniswap", name: "transaction_lt", type: "String")\n transaction_gte: String @source(subgraph: "uniswap", name: "transaction_gte", type: "String")\n transaction_lte: String @source(subgraph: "uniswap", name: "transaction_lte", type: "String")\n transaction_in: [String!] @source(subgraph: "uniswap", name: "transaction_in", type: "[String!]")\n transaction_not_in: [String!] @source(subgraph: "uniswap", name: "transaction_not_in", type: "[String!]")\n transaction_contains: String @source(subgraph: "uniswap", name: "transaction_contains", type: "String")\n transaction_contains_nocase: String @source(subgraph: "uniswap", name: "transaction_contains_nocase", type: "String")\n transaction_not_contains: String @source(subgraph: "uniswap", name: "transaction_not_contains", type: "String")\n transaction_not_contains_nocase: String @source(subgraph: "uniswap", name: "transaction_not_contains_nocase", type: "String")\n transaction_starts_with: String @source(subgraph: "uniswap", name: "transaction_starts_with", type: "String")\n transaction_starts_with_nocase: String @source(subgraph: "uniswap", name: "transaction_starts_with_nocase", type: "String")\n transaction_not_starts_with: String @source(subgraph: "uniswap", name: "transaction_not_starts_with", type: "String")\n transaction_not_starts_with_nocase: String @source(subgraph: "uniswap", name: "transaction_not_starts_with_nocase", type: "String")\n transaction_ends_with: String @source(subgraph: "uniswap", name: "transaction_ends_with", type: "String")\n transaction_ends_with_nocase: String @source(subgraph: "uniswap", name: "transaction_ends_with_nocase", type: "String")\n transaction_not_ends_with: String @source(subgraph: "uniswap", name: "transaction_not_ends_with", type: "String")\n transaction_not_ends_with_nocase: String @source(subgraph: "uniswap", name: "transaction_not_ends_with_nocase", type: "String")\n transaction_: Transaction_filter @source(subgraph: "uniswap", name: "transaction_", type: "Transaction_filter")\n timestamp: BigInt @source(subgraph: "uniswap", name: "timestamp", type: "BigInt")\n timestamp_not: BigInt @source(subgraph: "uniswap", name: "timestamp_not", type: "BigInt")\n timestamp_gt: BigInt @source(subgraph: "uniswap", name: "timestamp_gt", type: "BigInt")\n timestamp_lt: BigInt @source(subgraph: "uniswap", name: "timestamp_lt", type: "BigInt")\n timestamp_gte: BigInt @source(subgraph: "uniswap", name: "timestamp_gte", type: "BigInt")\n timestamp_lte: BigInt @source(subgraph: "uniswap", name: "timestamp_lte", type: "BigInt")\n timestamp_in: [BigInt!] @source(subgraph: "uniswap", name: "timestamp_in", type: "[BigInt!]")\n timestamp_not_in: [BigInt!] @source(subgraph: "uniswap", name: "timestamp_not_in", type: "[BigInt!]")\n pair: String @source(subgraph: "uniswap", name: "pair", type: "String")\n pair_not: String @source(subgraph: "uniswap", name: "pair_not", type: "String")\n pair_gt: String @source(subgraph: "uniswap", name: "pair_gt", type: "String")\n pair_lt: String @source(subgraph: "uniswap", name: "pair_lt", type: "String")\n pair_gte: String @source(subgraph: "uniswap", name: "pair_gte", type: "String")\n pair_lte: String @source(subgraph: "uniswap", name: "pair_lte", type: "String")\n pair_in: [String!] @source(subgraph: "uniswap", name: "pair_in", type: "[String!]")\n pair_not_in: [String!] @source(subgraph: "uniswap", name: "pair_not_in", type: "[String!]")\n pair_contains: String @source(subgraph: "uniswap", name: "pair_contains", type: "String")\n pair_contains_nocase: String @source(subgraph: "uniswap", name: "pair_contains_nocase", type: "String")\n pair_not_contains: String @source(subgraph: "uniswap", name: "pair_not_contains", type: "String")\n pair_not_contains_nocase: String @source(subgraph: "uniswap", name: "pair_not_contains_nocase", type: "String")\n pair_starts_with: String @source(subgraph: "uniswap", name: "pair_starts_with", type: "String")\n pair_starts_with_nocase: String @source(subgraph: "uniswap", name: "pair_starts_with_nocase", type: "String")\n pair_not_starts_with: String @source(subgraph: "uniswap", name: "pair_not_starts_with", type: "String")\n pair_not_starts_with_nocase: String @source(subgraph: "uniswap", name: "pair_not_starts_with_nocase", type: "String")\n pair_ends_with: String @source(subgraph: "uniswap", name: "pair_ends_with", type: "String")\n pair_ends_with_nocase: String @source(subgraph: "uniswap", name: "pair_ends_with_nocase", type: "String")\n pair_not_ends_with: String @source(subgraph: "uniswap", name: "pair_not_ends_with", type: "String")\n pair_not_ends_with_nocase: String @source(subgraph: "uniswap", name: "pair_not_ends_with_nocase", type: "String")\n pair_: Pair_filter @source(subgraph: "uniswap", name: "pair_", type: "Pair_filter")\n sender: Bytes @source(subgraph: "uniswap", name: "sender", type: "Bytes")\n sender_not: Bytes @source(subgraph: "uniswap", name: "sender_not", type: "Bytes")\n sender_gt: Bytes @source(subgraph: "uniswap", name: "sender_gt", type: "Bytes")\n sender_lt: Bytes @source(subgraph: "uniswap", name: "sender_lt", type: "Bytes")\n sender_gte: Bytes @source(subgraph: "uniswap", name: "sender_gte", type: "Bytes")\n sender_lte: Bytes @source(subgraph: "uniswap", name: "sender_lte", type: "Bytes")\n sender_in: [Bytes!] @source(subgraph: "uniswap", name: "sender_in", type: "[Bytes!]")\n sender_not_in: [Bytes!] @source(subgraph: "uniswap", name: "sender_not_in", type: "[Bytes!]")\n sender_contains: Bytes @source(subgraph: "uniswap", name: "sender_contains", type: "Bytes")\n sender_not_contains: Bytes @source(subgraph: "uniswap", name: "sender_not_contains", type: "Bytes")\n from: Bytes @source(subgraph: "uniswap", name: "from", type: "Bytes")\n from_not: Bytes @source(subgraph: "uniswap", name: "from_not", type: "Bytes")\n from_gt: Bytes @source(subgraph: "uniswap", name: "from_gt", type: "Bytes")\n from_lt: Bytes @source(subgraph: "uniswap", name: "from_lt", type: "Bytes")\n from_gte: Bytes @source(subgraph: "uniswap", name: "from_gte", type: "Bytes")\n from_lte: Bytes @source(subgraph: "uniswap", name: "from_lte", type: "Bytes")\n from_in: [Bytes!] @source(subgraph: "uniswap", name: "from_in", type: "[Bytes!]")\n from_not_in: [Bytes!] @source(subgraph: "uniswap", name: "from_not_in", type: "[Bytes!]")\n from_contains: Bytes @source(subgraph: "uniswap", name: "from_contains", type: "Bytes")\n from_not_contains: Bytes @source(subgraph: "uniswap", name: "from_not_contains", type: "Bytes")\n amount0In: BigDecimal @source(subgraph: "uniswap", name: "amount0In", type: "BigDecimal")\n amount0In_not: BigDecimal @source(subgraph: "uniswap", name: "amount0In_not", type: "BigDecimal")\n amount0In_gt: BigDecimal @source(subgraph: "uniswap", name: "amount0In_gt", type: "BigDecimal")\n amount0In_lt: BigDecimal @source(subgraph: "uniswap", name: "amount0In_lt", type: "BigDecimal")\n amount0In_gte: BigDecimal @source(subgraph: "uniswap", name: "amount0In_gte", type: "BigDecimal")\n amount0In_lte: BigDecimal @source(subgraph: "uniswap", name: "amount0In_lte", type: "BigDecimal")\n amount0In_in: [BigDecimal!] @source(subgraph: "uniswap", name: "amount0In_in", type: "[BigDecimal!]")\n amount0In_not_in: [BigDecimal!] @source(subgraph: "uniswap", name: "amount0In_not_in", type: "[BigDecimal!]")\n amount1In: BigDecimal @source(subgraph: "uniswap", name: "amount1In", type: "BigDecimal")\n amount1In_not: BigDecimal @source(subgraph: "uniswap", name: "amount1In_not", type: "BigDecimal")\n amount1In_gt: BigDecimal @source(subgraph: "uniswap", name: "amount1In_gt", type: "BigDecimal")\n amount1In_lt: BigDecimal @source(subgraph: "uniswap", name: "amount1In_lt", type: "BigDecimal")\n amount1In_gte: BigDecimal @source(subgraph: "uniswap", name: "amount1In_gte", type: "BigDecimal")\n amount1In_lte: BigDecimal @source(subgraph: "uniswap", name: "amount1In_lte", type: "BigDecimal")\n amount1In_in: [BigDecimal!] @source(subgraph: "uniswap", name: "amount1In_in", type: "[BigDecimal!]")\n amount1In_not_in: [BigDecimal!] @source(subgraph: "uniswap", name: "amount1In_not_in", type: "[BigDecimal!]")\n amount0Out: BigDecimal @source(subgraph: "uniswap", name: "amount0Out", type: "BigDecimal")\n amount0Out_not: BigDecimal @source(subgraph: "uniswap", name: "amount0Out_not", type: "BigDecimal")\n amount0Out_gt: BigDecimal @source(subgraph: "uniswap", name: "amount0Out_gt", type: "BigDecimal")\n amount0Out_lt: BigDecimal @source(subgraph: "uniswap", name: "amount0Out_lt", type: "BigDecimal")\n amount0Out_gte: BigDecimal @source(subgraph: "uniswap", name: "amount0Out_gte", type: "BigDecimal")\n amount0Out_lte: BigDecimal @source(subgraph: "uniswap", name: "amount0Out_lte", type: "BigDecimal")\n amount0Out_in: [BigDecimal!] @source(subgraph: "uniswap", name: "amount0Out_in", type: "[BigDecimal!]")\n amount0Out_not_in: [BigDecimal!] @source(subgraph: "uniswap", name: "amount0Out_not_in", type: "[BigDecimal!]")\n amount1Out: BigDecimal @source(subgraph: "uniswap", name: "amount1Out", type: "BigDecimal")\n amount1Out_not: BigDecimal @source(subgraph: "uniswap", name: "amount1Out_not", type: "BigDecimal")\n amount1Out_gt: BigDecimal @source(subgraph: "uniswap", name: "amount1Out_gt", type: "BigDecimal")\n amount1Out_lt: BigDecimal @source(subgraph: "uniswap", name: "amount1Out_lt", type: "BigDecimal")\n amount1Out_gte: BigDecimal @source(subgraph: "uniswap", name: "amount1Out_gte", type: "BigDecimal")\n amount1Out_lte: BigDecimal @source(subgraph: "uniswap", name: "amount1Out_lte", type: "BigDecimal")\n amount1Out_in: [BigDecimal!] @source(subgraph: "uniswap", name: "amount1Out_in", type: "[BigDecimal!]")\n amount1Out_not_in: [BigDecimal!] @source(subgraph: "uniswap", name: "amount1Out_not_in", type: "[BigDecimal!]")\n to: Bytes @source(subgraph: "uniswap", name: "to", type: "Bytes")\n to_not: Bytes @source(subgraph: "uniswap", name: "to_not", type: "Bytes")\n to_gt: Bytes @source(subgraph: "uniswap", name: "to_gt", type: "Bytes")\n to_lt: Bytes @source(subgraph: "uniswap", name: "to_lt", type: "Bytes")\n to_gte: Bytes @source(subgraph: "uniswap", name: "to_gte", type: "Bytes")\n to_lte: Bytes @source(subgraph: "uniswap", name: "to_lte", type: "Bytes")\n to_in: [Bytes!] @source(subgraph: "uniswap", name: "to_in", type: "[Bytes!]")\n to_not_in: [Bytes!] @source(subgraph: "uniswap", name: "to_not_in", type: "[Bytes!]")\n to_contains: Bytes @source(subgraph: "uniswap", name: "to_contains", type: "Bytes")\n to_not_contains: Bytes @source(subgraph: "uniswap", name: "to_not_contains", type: "Bytes")\n logIndex: BigInt @source(subgraph: "uniswap", name: "logIndex", type: "BigInt")\n logIndex_not: BigInt @source(subgraph: "uniswap", name: "logIndex_not", type: "BigInt")\n logIndex_gt: BigInt @source(subgraph: "uniswap", name: "logIndex_gt", type: "BigInt")\n logIndex_lt: BigInt @source(subgraph: "uniswap", name: "logIndex_lt", type: "BigInt")\n logIndex_gte: BigInt @source(subgraph: "uniswap", name: "logIndex_gte", type: "BigInt")\n logIndex_lte: BigInt @source(subgraph: "uniswap", name: "logIndex_lte", type: "BigInt")\n logIndex_in: [BigInt!] @source(subgraph: "uniswap", name: "logIndex_in", type: "[BigInt!]")\n logIndex_not_in: [BigInt!] @source(subgraph: "uniswap", name: "logIndex_not_in", type: "[BigInt!]")\n amountUSD: BigDecimal @source(subgraph: "uniswap", name: "amountUSD", type: "BigDecimal")\n amountUSD_not: BigDecimal @source(subgraph: "uniswap", name: "amountUSD_not", type: "BigDecimal")\n amountUSD_gt: BigDecimal @source(subgraph: "uniswap", name: "amountUSD_gt", type: "BigDecimal")\n amountUSD_lt: BigDecimal @source(subgraph: "uniswap", name: "amountUSD_lt", type: "BigDecimal")\n amountUSD_gte: BigDecimal @source(subgraph: "uniswap", name: "amountUSD_gte", type: "BigDecimal")\n amountUSD_lte: BigDecimal @source(subgraph: "uniswap", name: "amountUSD_lte", type: "BigDecimal")\n amountUSD_in: [BigDecimal!] @source(subgraph: "uniswap", name: "amountUSD_in", type: "[BigDecimal!]")\n amountUSD_not_in: [BigDecimal!] @source(subgraph: "uniswap", name: "amountUSD_not_in", type: "[BigDecimal!]")\n """Filter for the block changed event."""\n _change_block: BlockChangedFilter @source(subgraph: "uniswap", name: "_change_block", type: "BlockChangedFilter")\n and: [Swap_filter] @source(subgraph: "uniswap", name: "and", type: "[Swap_filter]")\n or: [Swap_filter] @source(subgraph: "uniswap", name: "or", type: "[Swap_filter]")\n}\n\nenum Swap_orderBy @source(subgraph: "uniswap", name: "Swap_orderBy") {\n id @source(subgraph: "uniswap", name: "id")\n transaction @source(subgraph: "uniswap", name: "transaction")\n transaction__id @source(subgraph: "uniswap", name: "transaction__id")\n transaction__blockNumber @source(subgraph: "uniswap", name: "transaction__blockNumber")\n transaction__timestamp @source(subgraph: "uniswap", name: "transaction__timestamp")\n timestamp @source(subgraph: "uniswap", name: "timestamp")\n pair @source(subgraph: "uniswap", name: "pair")\n pair__id @source(subgraph: "uniswap", name: "pair__id")\n pair__reserve0 @source(subgraph: "uniswap", name: "pair__reserve0")\n pair__reserve1 @source(subgraph: "uniswap", name: "pair__reserve1")\n pair__totalSupply @source(subgraph: "uniswap", name: "pair__totalSupply")\n pair__reserveETH @source(subgraph: "uniswap", name: "pair__reserveETH")\n pair__reserveUSD @source(subgraph: "uniswap", name: "pair__reserveUSD")\n pair__trackedReserveETH @source(subgraph: "uniswap", name: "pair__trackedReserveETH")\n pair__token0Price @source(subgraph: "uniswap", name: "pair__token0Price")\n pair__token1Price @source(subgraph: "uniswap", name: "pair__token1Price")\n pair__volumeToken0 @source(subgraph: "uniswap", name: "pair__volumeToken0")\n pair__volumeToken1 @source(subgraph: "uniswap", name: "pair__volumeToken1")\n pair__volumeUSD @source(subgraph: "uniswap", name: "pair__volumeUSD")\n pair__untrackedVolumeUSD @source(subgraph: "uniswap", name: "pair__untrackedVolumeUSD")\n pair__txCount @source(subgraph: "uniswap", name: "pair__txCount")\n pair__createdAtTimestamp @source(subgraph: "uniswap", name: "pair__createdAtTimestamp")\n pair__createdAtBlockNumber @source(subgraph: "uniswap", name: "pair__createdAtBlockNumber")\n pair__liquidityProviderCount @source(subgraph: "uniswap", name: "pair__liquidityProviderCount")\n sender @source(subgraph: "uniswap", name: "sender")\n from @source(subgraph: "uniswap", name: "from")\n amount0In @source(subgraph: "uniswap", name: "amount0In")\n amount1In @source(subgraph: "uniswap", name: "amount1In")\n amount0Out @source(subgraph: "uniswap", name: "amount0Out")\n amount1Out @source(subgraph: "uniswap", name: "amount1Out")\n to @source(subgraph: "uniswap", name: "to")\n logIndex @source(subgraph: "uniswap", name: "logIndex")\n amountUSD @source(subgraph: "uniswap", name: "amountUSD")\n}\n\ntype Token @source(subgraph: "uniswap", name: "Token") @resolver(subgraph: "uniswap", operation: "query TokenById($Token_id: ID!) { token(id: $Token_id) }", kind: "FETCH") @resolver(subgraph: "uniswap", operation: "query GetTokenById($Token_id: ID!) { tokens(where: { id: $Token_id) } }", kind: "FETCH") @resolver(subgraph: "uniswap", operation: "query GetTokensByIds($Token_id: [ID!]!) { tokens(where: { id_in: $Token_id }) }", kind: "BATCH") @variable(subgraph: "uniswap", name: "Token_id", select: "id") {\n id: ID! @source(subgraph: "uniswap", name: "id", type: "ID!")\n symbol: String! @source(subgraph: "uniswap", name: "symbol", type: "String!")\n name: String! @source(subgraph: "uniswap", name: "name", type: "String!")\n decimals: BigInt! @source(subgraph: "uniswap", name: "decimals", type: "BigInt!")\n totalSupply: BigInt! @source(subgraph: "uniswap", name: "totalSupply", type: "BigInt!")\n tradeVolume: BigDecimal! @source(subgraph: "uniswap", name: "tradeVolume", type: "BigDecimal!")\n tradeVolumeUSD: BigDecimal! @source(subgraph: "uniswap", name: "tradeVolumeUSD", type: "BigDecimal!")\n untrackedVolumeUSD: BigDecimal! @source(subgraph: "uniswap", name: "untrackedVolumeUSD", type: "BigDecimal!")\n txCount: BigInt! @source(subgraph: "uniswap", name: "txCount", type: "BigInt!")\n totalLiquidity: BigDecimal! @source(subgraph: "uniswap", name: "totalLiquidity", type: "BigDecimal!")\n derivedETH: BigDecimal @source(subgraph: "uniswap", name: "derivedETH", type: "BigDecimal")\n tokenDayData(skip: Int = 0, first: Int = 100, orderBy: TokenDayData_orderBy, orderDirection: OrderDirection, where: TokenDayData_filter): [TokenDayData!]! @source(subgraph: "uniswap", name: "tokenDayData", type: "[TokenDayData!]!")\n pairDayDataBase(skip: Int = 0, first: Int = 100, orderBy: PairDayData_orderBy, orderDirection: OrderDirection, where: PairDayData_filter): [PairDayData!]! @source(subgraph: "uniswap", name: "pairDayDataBase", type: "[PairDayData!]!")\n pairDayDataQuote(skip: Int = 0, first: Int = 100, orderBy: PairDayData_orderBy, orderDirection: OrderDirection, where: PairDayData_filter): [PairDayData!]! @source(subgraph: "uniswap", name: "pairDayDataQuote", type: "[PairDayData!]!")\n pairBase(skip: Int = 0, first: Int = 100, orderBy: Pair_orderBy, orderDirection: OrderDirection, where: Pair_filter): [Pair!]! @source(subgraph: "uniswap", name: "pairBase", type: "[Pair!]!")\n pairQuote(skip: Int = 0, first: Int = 100, orderBy: Pair_orderBy, orderDirection: OrderDirection, where: Pair_filter): [Pair!]! @source(subgraph: "uniswap", name: "pairQuote", type: "[Pair!]!")\n}\n\ntype TokenDayData @source(subgraph: "uniswap", name: "TokenDayData") @resolver(subgraph: "uniswap", operation: "query TokenDayDataById($TokenDayData_id: ID!) { tokenDayData(id: $TokenDayData_id) }", kind: "FETCH") @resolver(subgraph: "uniswap", operation: "query GetTokenDayDataById($TokenDayData_id: ID!) { tokenDayDatas(where: { id: $TokenDayData_id) } }", kind: "FETCH") @resolver(subgraph: "uniswap", operation: "query GetTokenDayDataByIds($TokenDayData_id: [ID!]!) { tokenDayDatas(where: { id_in: $TokenDayData_id }) }", kind: "BATCH") @variable(subgraph: "uniswap", name: "TokenDayData_id", select: "id") {\n id: ID! @source(subgraph: "uniswap", name: "id", type: "ID!")\n date: Int! @source(subgraph: "uniswap", name: "date", type: "Int!")\n token: Token! @source(subgraph: "uniswap", name: "token", type: "Token!")\n dailyVolumeToken: BigDecimal! @source(subgraph: "uniswap", name: "dailyVolumeToken", type: "BigDecimal!")\n dailyVolumeETH: BigDecimal! @source(subgraph: "uniswap", name: "dailyVolumeETH", type: "BigDecimal!")\n dailyVolumeUSD: BigDecimal! @source(subgraph: "uniswap", name: "dailyVolumeUSD", type: "BigDecimal!")\n dailyTxns: BigInt! @source(subgraph: "uniswap", name: "dailyTxns", type: "BigInt!")\n totalLiquidityToken: BigDecimal! @source(subgraph: "uniswap", name: "totalLiquidityToken", type: "BigDecimal!")\n totalLiquidityETH: BigDecimal! @source(subgraph: "uniswap", name: "totalLiquidityETH", type: "BigDecimal!")\n totalLiquidityUSD: BigDecimal! @source(subgraph: "uniswap", name: "totalLiquidityUSD", type: "BigDecimal!")\n priceUSD: BigDecimal! @source(subgraph: "uniswap", name: "priceUSD", type: "BigDecimal!")\n}\n\ninput TokenDayData_filter @source(subgraph: "uniswap", name: "TokenDayData_filter") {\n id: ID @source(subgraph: "uniswap", name: "id", type: "ID")\n id_not: ID @source(subgraph: "uniswap", name: "id_not", type: "ID")\n id_gt: ID @source(subgraph: "uniswap", name: "id_gt", type: "ID")\n id_lt: ID @source(subgraph: "uniswap", name: "id_lt", type: "ID")\n id_gte: ID @source(subgraph: "uniswap", name: "id_gte", type: "ID")\n id_lte: ID @source(subgraph: "uniswap", name: "id_lte", type: "ID")\n id_in: [ID!] @source(subgraph: "uniswap", name: "id_in", type: "[ID!]")\n id_not_in: [ID!] @source(subgraph: "uniswap", name: "id_not_in", type: "[ID!]")\n date: Int @source(subgraph: "uniswap", name: "date", type: "Int")\n date_not: Int @source(subgraph: "uniswap", name: "date_not", type: "Int")\n date_gt: Int @source(subgraph: "uniswap", name: "date_gt", type: "Int")\n date_lt: Int @source(subgraph: "uniswap", name: "date_lt", type: "Int")\n date_gte: Int @source(subgraph: "uniswap", name: "date_gte", type: "Int")\n date_lte: Int @source(subgraph: "uniswap", name: "date_lte", type: "Int")\n date_in: [Int!] @source(subgraph: "uniswap", name: "date_in", type: "[Int!]")\n date_not_in: [Int!] @source(subgraph: "uniswap", name: "date_not_in", type: "[Int!]")\n token: String @source(subgraph: "uniswap", name: "token", type: "String")\n token_not: String @source(subgraph: "uniswap", name: "token_not", type: "String")\n token_gt: String @source(subgraph: "uniswap", name: "token_gt", type: "String")\n token_lt: String @source(subgraph: "uniswap", name: "token_lt", type: "String")\n token_gte: String @source(subgraph: "uniswap", name: "token_gte", type: "String")\n token_lte: String @source(subgraph: "uniswap", name: "token_lte", type: "String")\n token_in: [String!] @source(subgraph: "uniswap", name: "token_in", type: "[String!]")\n token_not_in: [String!] @source(subgraph: "uniswap", name: "token_not_in", type: "[String!]")\n token_contains: String @source(subgraph: "uniswap", name: "token_contains", type: "String")\n token_contains_nocase: String @source(subgraph: "uniswap", name: "token_contains_nocase", type: "String")\n token_not_contains: String @source(subgraph: "uniswap", name: "token_not_contains", type: "String")\n token_not_contains_nocase: String @source(subgraph: "uniswap", name: "token_not_contains_nocase", type: "String")\n token_starts_with: String @source(subgraph: "uniswap", name: "token_starts_with", type: "String")\n token_starts_with_nocase: String @source(subgraph: "uniswap", name: "token_starts_with_nocase", type: "String")\n token_not_starts_with: String @source(subgraph: "uniswap", name: "token_not_starts_with", type: "String")\n token_not_starts_with_nocase: String @source(subgraph: "uniswap", name: "token_not_starts_with_nocase", type: "String")\n token_ends_with: String @source(subgraph: "uniswap", name: "token_ends_with", type: "String")\n token_ends_with_nocase: String @source(subgraph: "uniswap", name: "token_ends_with_nocase", type: "String")\n token_not_ends_with: String @source(subgraph: "uniswap", name: "token_not_ends_with", type: "String")\n token_not_ends_with_nocase: String @source(subgraph: "uniswap", name: "token_not_ends_with_nocase", type: "String")\n token_: Token_filter @source(subgraph: "uniswap", name: "token_", type: "Token_filter")\n dailyVolumeToken: BigDecimal @source(subgraph: "uniswap", name: "dailyVolumeToken", type: "BigDecimal")\n dailyVolumeToken_not: BigDecimal @source(subgraph: "uniswap", name: "dailyVolumeToken_not", type: "BigDecimal")\n dailyVolumeToken_gt: BigDecimal @source(subgraph: "uniswap", name: "dailyVolumeToken_gt", type: "BigDecimal")\n dailyVolumeToken_lt: BigDecimal @source(subgraph: "uniswap", name: "dailyVolumeToken_lt", type: "BigDecimal")\n dailyVolumeToken_gte: BigDecimal @source(subgraph: "uniswap", name: "dailyVolumeToken_gte", type: "BigDecimal")\n dailyVolumeToken_lte: BigDecimal @source(subgraph: "uniswap", name: "dailyVolumeToken_lte", type: "BigDecimal")\n dailyVolumeToken_in: [BigDecimal!] @source(subgraph: "uniswap", name: "dailyVolumeToken_in", type: "[BigDecimal!]")\n dailyVolumeToken_not_in: [BigDecimal!] @source(subgraph: "uniswap", name: "dailyVolumeToken_not_in", type: "[BigDecimal!]")\n dailyVolumeETH: BigDecimal @source(subgraph: "uniswap", name: "dailyVolumeETH", type: "BigDecimal")\n dailyVolumeETH_not: BigDecimal @source(subgraph: "uniswap", name: "dailyVolumeETH_not", type: "BigDecimal")\n dailyVolumeETH_gt: BigDecimal @source(subgraph: "uniswap", name: "dailyVolumeETH_gt", type: "BigDecimal")\n dailyVolumeETH_lt: BigDecimal @source(subgraph: "uniswap", name: "dailyVolumeETH_lt", type: "BigDecimal")\n dailyVolumeETH_gte: BigDecimal @source(subgraph: "uniswap", name: "dailyVolumeETH_gte", type: "BigDecimal")\n dailyVolumeETH_lte: BigDecimal @source(subgraph: "uniswap", name: "dailyVolumeETH_lte", type: "BigDecimal")\n dailyVolumeETH_in: [BigDecimal!] @source(subgraph: "uniswap", name: "dailyVolumeETH_in", type: "[BigDecimal!]")\n dailyVolumeETH_not_in: [BigDecimal!] @source(subgraph: "uniswap", name: "dailyVolumeETH_not_in", type: "[BigDecimal!]")\n dailyVolumeUSD: BigDecimal @source(subgraph: "uniswap", name: "dailyVolumeUSD", type: "BigDecimal")\n dailyVolumeUSD_not: BigDecimal @source(subgraph: "uniswap", name: "dailyVolumeUSD_not", type: "BigDecimal")\n dailyVolumeUSD_gt: BigDecimal @source(subgraph: "uniswap", name: "dailyVolumeUSD_gt", type: "BigDecimal")\n dailyVolumeUSD_lt: BigDecimal @source(subgraph: "uniswap", name: "dailyVolumeUSD_lt", type: "BigDecimal")\n dailyVolumeUSD_gte: BigDecimal @source(subgraph: "uniswap", name: "dailyVolumeUSD_gte", type: "BigDecimal")\n dailyVolumeUSD_lte: BigDecimal @source(subgraph: "uniswap", name: "dailyVolumeUSD_lte", type: "BigDecimal")\n dailyVolumeUSD_in: [BigDecimal!] @source(subgraph: "uniswap", name: "dailyVolumeUSD_in", type: "[BigDecimal!]")\n dailyVolumeUSD_not_in: [BigDecimal!] @source(subgraph: "uniswap", name: "dailyVolumeUSD_not_in", type: "[BigDecimal!]")\n dailyTxns: BigInt @source(subgraph: "uniswap", name: "dailyTxns", type: "BigInt")\n dailyTxns_not: BigInt @source(subgraph: "uniswap", name: "dailyTxns_not", type: "BigInt")\n dailyTxns_gt: BigInt @source(subgraph: "uniswap", name: "dailyTxns_gt", type: "BigInt")\n dailyTxns_lt: BigInt @source(subgraph: "uniswap", name: "dailyTxns_lt", type: "BigInt")\n dailyTxns_gte: BigInt @source(subgraph: "uniswap", name: "dailyTxns_gte", type: "BigInt")\n dailyTxns_lte: BigInt @source(subgraph: "uniswap", name: "dailyTxns_lte", type: "BigInt")\n dailyTxns_in: [BigInt!] @source(subgraph: "uniswap", name: "dailyTxns_in", type: "[BigInt!]")\n dailyTxns_not_in: [BigInt!] @source(subgraph: "uniswap", name: "dailyTxns_not_in", type: "[BigInt!]")\n totalLiquidityToken: BigDecimal @source(subgraph: "uniswap", name: "totalLiquidityToken", type: "BigDecimal")\n totalLiquidityToken_not: BigDecimal @source(subgraph: "uniswap", name: "totalLiquidityToken_not", type: "BigDecimal")\n totalLiquidityToken_gt: BigDecimal @source(subgraph: "uniswap", name: "totalLiquidityToken_gt", type: "BigDecimal")\n totalLiquidityToken_lt: BigDecimal @source(subgraph: "uniswap", name: "totalLiquidityToken_lt", type: "BigDecimal")\n totalLiquidityToken_gte: BigDecimal @source(subgraph: "uniswap", name: "totalLiquidityToken_gte", type: "BigDecimal")\n totalLiquidityToken_lte: BigDecimal @source(subgraph: "uniswap", name: "totalLiquidityToken_lte", type: "BigDecimal")\n totalLiquidityToken_in: [BigDecimal!] @source(subgraph: "uniswap", name: "totalLiquidityToken_in", type: "[BigDecimal!]")\n totalLiquidityToken_not_in: [BigDecimal!] @source(subgraph: "uniswap", name: "totalLiquidityToken_not_in", type: "[BigDecimal!]")\n totalLiquidityETH: BigDecimal @source(subgraph: "uniswap", name: "totalLiquidityETH", type: "BigDecimal")\n totalLiquidityETH_not: BigDecimal @source(subgraph: "uniswap", name: "totalLiquidityETH_not", type: "BigDecimal")\n totalLiquidityETH_gt: BigDecimal @source(subgraph: "uniswap", name: "totalLiquidityETH_gt", type: "BigDecimal")\n totalLiquidityETH_lt: BigDecimal @source(subgraph: "uniswap", name: "totalLiquidityETH_lt", type: "BigDecimal")\n totalLiquidityETH_gte: BigDecimal @source(subgraph: "uniswap", name: "totalLiquidityETH_gte", type: "BigDecimal")\n totalLiquidityETH_lte: BigDecimal @source(subgraph: "uniswap", name: "totalLiquidityETH_lte", type: "BigDecimal")\n totalLiquidityETH_in: [BigDecimal!] @source(subgraph: "uniswap", name: "totalLiquidityETH_in", type: "[BigDecimal!]")\n totalLiquidityETH_not_in: [BigDecimal!] @source(subgraph: "uniswap", name: "totalLiquidityETH_not_in", type: "[BigDecimal!]")\n totalLiquidityUSD: BigDecimal @source(subgraph: "uniswap", name: "totalLiquidityUSD", type: "BigDecimal")\n totalLiquidityUSD_not: BigDecimal @source(subgraph: "uniswap", name: "totalLiquidityUSD_not", type: "BigDecimal")\n totalLiquidityUSD_gt: BigDecimal @source(subgraph: "uniswap", name: "totalLiquidityUSD_gt", type: "BigDecimal")\n totalLiquidityUSD_lt: BigDecimal @source(subgraph: "uniswap", name: "totalLiquidityUSD_lt", type: "BigDecimal")\n totalLiquidityUSD_gte: BigDecimal @source(subgraph: "uniswap", name: "totalLiquidityUSD_gte", type: "BigDecimal")\n totalLiquidityUSD_lte: BigDecimal @source(subgraph: "uniswap", name: "totalLiquidityUSD_lte", type: "BigDecimal")\n totalLiquidityUSD_in: [BigDecimal!] @source(subgraph: "uniswap", name: "totalLiquidityUSD_in", type: "[BigDecimal!]")\n totalLiquidityUSD_not_in: [BigDecimal!] @source(subgraph: "uniswap", name: "totalLiquidityUSD_not_in", type: "[BigDecimal!]")\n priceUSD: BigDecimal @source(subgraph: "uniswap", name: "priceUSD", type: "BigDecimal")\n priceUSD_not: BigDecimal @source(subgraph: "uniswap", name: "priceUSD_not", type: "BigDecimal")\n priceUSD_gt: BigDecimal @source(subgraph: "uniswap", name: "priceUSD_gt", type: "BigDecimal")\n priceUSD_lt: BigDecimal @source(subgraph: "uniswap", name: "priceUSD_lt", type: "BigDecimal")\n priceUSD_gte: BigDecimal @source(subgraph: "uniswap", name: "priceUSD_gte", type: "BigDecimal")\n priceUSD_lte: BigDecimal @source(subgraph: "uniswap", name: "priceUSD_lte", type: "BigDecimal")\n priceUSD_in: [BigDecimal!] @source(subgraph: "uniswap", name: "priceUSD_in", type: "[BigDecimal!]")\n priceUSD_not_in: [BigDecimal!] @source(subgraph: "uniswap", name: "priceUSD_not_in", type: "[BigDecimal!]")\n """Filter for the block changed event."""\n _change_block: BlockChangedFilter @source(subgraph: "uniswap", name: "_change_block", type: "BlockChangedFilter")\n and: [TokenDayData_filter] @source(subgraph: "uniswap", name: "and", type: "[TokenDayData_filter]")\n or: [TokenDayData_filter] @source(subgraph: "uniswap", name: "or", type: "[TokenDayData_filter]")\n}\n\nenum TokenDayData_orderBy @source(subgraph: "uniswap", name: "TokenDayData_orderBy") {\n id @source(subgraph: "uniswap", name: "id")\n date @source(subgraph: "uniswap", name: "date")\n token @source(subgraph: "uniswap", name: "token")\n token__id @source(subgraph: "uniswap", name: "token__id")\n token__symbol @source(subgraph: "uniswap", name: "token__symbol")\n token__name @source(subgraph: "uniswap", name: "token__name")\n token__decimals @source(subgraph: "uniswap", name: "token__decimals")\n token__totalSupply @source(subgraph: "uniswap", name: "token__totalSupply")\n token__tradeVolume @source(subgraph: "uniswap", name: "token__tradeVolume")\n token__tradeVolumeUSD @source(subgraph: "uniswap", name: "token__tradeVolumeUSD")\n token__untrackedVolumeUSD @source(subgraph: "uniswap", name: "token__untrackedVolumeUSD")\n token__txCount @source(subgraph: "uniswap", name: "token__txCount")\n token__totalLiquidity @source(subgraph: "uniswap", name: "token__totalLiquidity")\n token__derivedETH @source(subgraph: "uniswap", name: "token__derivedETH")\n dailyVolumeToken @source(subgraph: "uniswap", name: "dailyVolumeToken")\n dailyVolumeETH @source(subgraph: "uniswap", name: "dailyVolumeETH")\n dailyVolumeUSD @source(subgraph: "uniswap", name: "dailyVolumeUSD")\n dailyTxns @source(subgraph: "uniswap", name: "dailyTxns")\n totalLiquidityToken @source(subgraph: "uniswap", name: "totalLiquidityToken")\n totalLiquidityETH @source(subgraph: "uniswap", name: "totalLiquidityETH")\n totalLiquidityUSD @source(subgraph: "uniswap", name: "totalLiquidityUSD")\n priceUSD @source(subgraph: "uniswap", name: "priceUSD")\n}\n\ninput Token_filter @source(subgraph: "uniswap", name: "Token_filter") {\n id: ID @source(subgraph: "uniswap", name: "id", type: "ID")\n id_not: ID @source(subgraph: "uniswap", name: "id_not", type: "ID")\n id_gt: ID @source(subgraph: "uniswap", name: "id_gt", type: "ID")\n id_lt: ID @source(subgraph: "uniswap", name: "id_lt", type: "ID")\n id_gte: ID @source(subgraph: "uniswap", name: "id_gte", type: "ID")\n id_lte: ID @source(subgraph: "uniswap", name: "id_lte", type: "ID")\n id_in: [ID!] @source(subgraph: "uniswap", name: "id_in", type: "[ID!]")\n id_not_in: [ID!] @source(subgraph: "uniswap", name: "id_not_in", type: "[ID!]")\n symbol: String @source(subgraph: "uniswap", name: "symbol", type: "String")\n symbol_not: String @source(subgraph: "uniswap", name: "symbol_not", type: "String")\n symbol_gt: String @source(subgraph: "uniswap", name: "symbol_gt", type: "String")\n symbol_lt: String @source(subgraph: "uniswap", name: "symbol_lt", type: "String")\n symbol_gte: String @source(subgraph: "uniswap", name: "symbol_gte", type: "String")\n symbol_lte: String @source(subgraph: "uniswap", name: "symbol_lte", type: "String")\n symbol_in: [String!] @source(subgraph: "uniswap", name: "symbol_in", type: "[String!]")\n symbol_not_in: [String!] @source(subgraph: "uniswap", name: "symbol_not_in", type: "[String!]")\n symbol_contains: String @source(subgraph: "uniswap", name: "symbol_contains", type: "String")\n symbol_contains_nocase: String @source(subgraph: "uniswap", name: "symbol_contains_nocase", type: "String")\n symbol_not_contains: String @source(subgraph: "uniswap", name: "symbol_not_contains", type: "String")\n symbol_not_contains_nocase: String @source(subgraph: "uniswap", name: "symbol_not_contains_nocase", type: "String")\n symbol_starts_with: String @source(subgraph: "uniswap", name: "symbol_starts_with", type: "String")\n symbol_starts_with_nocase: String @source(subgraph: "uniswap", name: "symbol_starts_with_nocase", type: "String")\n symbol_not_starts_with: String @source(subgraph: "uniswap", name: "symbol_not_starts_with", type: "String")\n symbol_not_starts_with_nocase: String @source(subgraph: "uniswap", name: "symbol_not_starts_with_nocase", type: "String")\n symbol_ends_with: String @source(subgraph: "uniswap", name: "symbol_ends_with", type: "String")\n symbol_ends_with_nocase: String @source(subgraph: "uniswap", name: "symbol_ends_with_nocase", type: "String")\n symbol_not_ends_with: String @source(subgraph: "uniswap", name: "symbol_not_ends_with", type: "String")\n symbol_not_ends_with_nocase: String @source(subgraph: "uniswap", name: "symbol_not_ends_with_nocase", type: "String")\n name: String @source(subgraph: "uniswap", name: "name", type: "String")\n name_not: String @source(subgraph: "uniswap", name: "name_not", type: "String")\n name_gt: String @source(subgraph: "uniswap", name: "name_gt", type: "String")\n name_lt: String @source(subgraph: "uniswap", name: "name_lt", type: "String")\n name_gte: String @source(subgraph: "uniswap", name: "name_gte", type: "String")\n name_lte: String @source(subgraph: "uniswap", name: "name_lte", type: "String")\n name_in: [String!] @source(subgraph: "uniswap", name: "name_in", type: "[String!]")\n name_not_in: [String!] @source(subgraph: "uniswap", name: "name_not_in", type: "[String!]")\n name_contains: String @source(subgraph: "uniswap", name: "name_contains", type: "String")\n name_contains_nocase: String @source(subgraph: "uniswap", name: "name_contains_nocase", type: "String")\n name_not_contains: String @source(subgraph: "uniswap", name: "name_not_contains", type: "String")\n name_not_contains_nocase: String @source(subgraph: "uniswap", name: "name_not_contains_nocase", type: "String")\n name_starts_with: String @source(subgraph: "uniswap", name: "name_starts_with", type: "String")\n name_starts_with_nocase: String @source(subgraph: "uniswap", name: "name_starts_with_nocase", type: "String")\n name_not_starts_with: String @source(subgraph: "uniswap", name: "name_not_starts_with", type: "String")\n name_not_starts_with_nocase: String @source(subgraph: "uniswap", name: "name_not_starts_with_nocase", type: "String")\n name_ends_with: String @source(subgraph: "uniswap", name: "name_ends_with", type: "String")\n name_ends_with_nocase: String @source(subgraph: "uniswap", name: "name_ends_with_nocase", type: "String")\n name_not_ends_with: String @source(subgraph: "uniswap", name: "name_not_ends_with", type: "String")\n name_not_ends_with_nocase: String @source(subgraph: "uniswap", name: "name_not_ends_with_nocase", type: "String")\n decimals: BigInt @source(subgraph: "uniswap", name: "decimals", type: "BigInt")\n decimals_not: BigInt @source(subgraph: "uniswap", name: "decimals_not", type: "BigInt")\n decimals_gt: BigInt @source(subgraph: "uniswap", name: "decimals_gt", type: "BigInt")\n decimals_lt: BigInt @source(subgraph: "uniswap", name: "decimals_lt", type: "BigInt")\n decimals_gte: BigInt @source(subgraph: "uniswap", name: "decimals_gte", type: "BigInt")\n decimals_lte: BigInt @source(subgraph: "uniswap", name: "decimals_lte", type: "BigInt")\n decimals_in: [BigInt!] @source(subgraph: "uniswap", name: "decimals_in", type: "[BigInt!]")\n decimals_not_in: [BigInt!] @source(subgraph: "uniswap", name: "decimals_not_in", type: "[BigInt!]")\n totalSupply: BigInt @source(subgraph: "uniswap", name: "totalSupply", type: "BigInt")\n totalSupply_not: BigInt @source(subgraph: "uniswap", name: "totalSupply_not", type: "BigInt")\n totalSupply_gt: BigInt @source(subgraph: "uniswap", name: "totalSupply_gt", type: "BigInt")\n totalSupply_lt: BigInt @source(subgraph: "uniswap", name: "totalSupply_lt", type: "BigInt")\n totalSupply_gte: BigInt @source(subgraph: "uniswap", name: "totalSupply_gte", type: "BigInt")\n totalSupply_lte: BigInt @source(subgraph: "uniswap", name: "totalSupply_lte", type: "BigInt")\n totalSupply_in: [BigInt!] @source(subgraph: "uniswap", name: "totalSupply_in", type: "[BigInt!]")\n totalSupply_not_in: [BigInt!] @source(subgraph: "uniswap", name: "totalSupply_not_in", type: "[BigInt!]")\n tradeVolume: BigDecimal @source(subgraph: "uniswap", name: "tradeVolume", type: "BigDecimal")\n tradeVolume_not: BigDecimal @source(subgraph: "uniswap", name: "tradeVolume_not", type: "BigDecimal")\n tradeVolume_gt: BigDecimal @source(subgraph: "uniswap", name: "tradeVolume_gt", type: "BigDecimal")\n tradeVolume_lt: BigDecimal @source(subgraph: "uniswap", name: "tradeVolume_lt", type: "BigDecimal")\n tradeVolume_gte: BigDecimal @source(subgraph: "uniswap", name: "tradeVolume_gte", type: "BigDecimal")\n tradeVolume_lte: BigDecimal @source(subgraph: "uniswap", name: "tradeVolume_lte", type: "BigDecimal")\n tradeVolume_in: [BigDecimal!] @source(subgraph: "uniswap", name: "tradeVolume_in", type: "[BigDecimal!]")\n tradeVolume_not_in: [BigDecimal!] @source(subgraph: "uniswap", name: "tradeVolume_not_in", type: "[BigDecimal!]")\n tradeVolumeUSD: BigDecimal @source(subgraph: "uniswap", name: "tradeVolumeUSD", type: "BigDecimal")\n tradeVolumeUSD_not: BigDecimal @source(subgraph: "uniswap", name: "tradeVolumeUSD_not", type: "BigDecimal")\n tradeVolumeUSD_gt: BigDecimal @source(subgraph: "uniswap", name: "tradeVolumeUSD_gt", type: "BigDecimal")\n tradeVolumeUSD_lt: BigDecimal @source(subgraph: "uniswap", name: "tradeVolumeUSD_lt", type: "BigDecimal")\n tradeVolumeUSD_gte: BigDecimal @source(subgraph: "uniswap", name: "tradeVolumeUSD_gte", type: "BigDecimal")\n tradeVolumeUSD_lte: BigDecimal @source(subgraph: "uniswap", name: "tradeVolumeUSD_lte", type: "BigDecimal")\n tradeVolumeUSD_in: [BigDecimal!] @source(subgraph: "uniswap", name: "tradeVolumeUSD_in", type: "[BigDecimal!]")\n tradeVolumeUSD_not_in: [BigDecimal!] @source(subgraph: "uniswap", name: "tradeVolumeUSD_not_in", type: "[BigDecimal!]")\n untrackedVolumeUSD: BigDecimal @source(subgraph: "uniswap", name: "untrackedVolumeUSD", type: "BigDecimal")\n untrackedVolumeUSD_not: BigDecimal @source(subgraph: "uniswap", name: "untrackedVolumeUSD_not", type: "BigDecimal")\n untrackedVolumeUSD_gt: BigDecimal @source(subgraph: "uniswap", name: "untrackedVolumeUSD_gt", type: "BigDecimal")\n untrackedVolumeUSD_lt: BigDecimal @source(subgraph: "uniswap", name: "untrackedVolumeUSD_lt", type: "BigDecimal")\n untrackedVolumeUSD_gte: BigDecimal @source(subgraph: "uniswap", name: "untrackedVolumeUSD_gte", type: "BigDecimal")\n untrackedVolumeUSD_lte: BigDecimal @source(subgraph: "uniswap", name: "untrackedVolumeUSD_lte", type: "BigDecimal")\n untrackedVolumeUSD_in: [BigDecimal!] @source(subgraph: "uniswap", name: "untrackedVolumeUSD_in", type: "[BigDecimal!]")\n untrackedVolumeUSD_not_in: [BigDecimal!] @source(subgraph: "uniswap", name: "untrackedVolumeUSD_not_in", type: "[BigDecimal!]")\n txCount: BigInt @source(subgraph: "uniswap", name: "txCount", type: "BigInt")\n txCount_not: BigInt @source(subgraph: "uniswap", name: "txCount_not", type: "BigInt")\n txCount_gt: BigInt @source(subgraph: "uniswap", name: "txCount_gt", type: "BigInt")\n txCount_lt: BigInt @source(subgraph: "uniswap", name: "txCount_lt", type: "BigInt")\n txCount_gte: BigInt @source(subgraph: "uniswap", name: "txCount_gte", type: "BigInt")\n txCount_lte: BigInt @source(subgraph: "uniswap", name: "txCount_lte", type: "BigInt")\n txCount_in: [BigInt!] @source(subgraph: "uniswap", name: "txCount_in", type: "[BigInt!]")\n txCount_not_in: [BigInt!] @source(subgraph: "uniswap", name: "txCount_not_in", type: "[BigInt!]")\n totalLiquidity: BigDecimal @source(subgraph: "uniswap", name: "totalLiquidity", type: "BigDecimal")\n totalLiquidity_not: BigDecimal @source(subgraph: "uniswap", name: "totalLiquidity_not", type: "BigDecimal")\n totalLiquidity_gt: BigDecimal @source(subgraph: "uniswap", name: "totalLiquidity_gt", type: "BigDecimal")\n totalLiquidity_lt: BigDecimal @source(subgraph: "uniswap", name: "totalLiquidity_lt", type: "BigDecimal")\n totalLiquidity_gte: BigDecimal @source(subgraph: "uniswap", name: "totalLiquidity_gte", type: "BigDecimal")\n totalLiquidity_lte: BigDecimal @source(subgraph: "uniswap", name: "totalLiquidity_lte", type: "BigDecimal")\n totalLiquidity_in: [BigDecimal!] @source(subgraph: "uniswap", name: "totalLiquidity_in", type: "[BigDecimal!]")\n totalLiquidity_not_in: [BigDecimal!] @source(subgraph: "uniswap", name: "totalLiquidity_not_in", type: "[BigDecimal!]")\n derivedETH: BigDecimal @source(subgraph: "uniswap", name: "derivedETH", type: "BigDecimal")\n derivedETH_not: BigDecimal @source(subgraph: "uniswap", name: "derivedETH_not", type: "BigDecimal")\n derivedETH_gt: BigDecimal @source(subgraph: "uniswap", name: "derivedETH_gt", type: "BigDecimal")\n derivedETH_lt: BigDecimal @source(subgraph: "uniswap", name: "derivedETH_lt", type: "BigDecimal")\n derivedETH_gte: BigDecimal @source(subgraph: "uniswap", name: "derivedETH_gte", type: "BigDecimal")\n derivedETH_lte: BigDecimal @source(subgraph: "uniswap", name: "derivedETH_lte", type: "BigDecimal")\n derivedETH_in: [BigDecimal!] @source(subgraph: "uniswap", name: "derivedETH_in", type: "[BigDecimal!]")\n derivedETH_not_in: [BigDecimal!] @source(subgraph: "uniswap", name: "derivedETH_not_in", type: "[BigDecimal!]")\n tokenDayData_: TokenDayData_filter @source(subgraph: "uniswap", name: "tokenDayData_", type: "TokenDayData_filter")\n pairDayDataBase_: PairDayData_filter @source(subgraph: "uniswap", name: "pairDayDataBase_", type: "PairDayData_filter")\n pairDayDataQuote_: PairDayData_filter @source(subgraph: "uniswap", name: "pairDayDataQuote_", type: "PairDayData_filter")\n pairBase_: Pair_filter @source(subgraph: "uniswap", name: "pairBase_", type: "Pair_filter")\n pairQuote_: Pair_filter @source(subgraph: "uniswap", name: "pairQuote_", type: "Pair_filter")\n """Filter for the block changed event."""\n _change_block: BlockChangedFilter @source(subgraph: "uniswap", name: "_change_block", type: "BlockChangedFilter")\n and: [Token_filter] @source(subgraph: "uniswap", name: "and", type: "[Token_filter]")\n or: [Token_filter] @source(subgraph: "uniswap", name: "or", type: "[Token_filter]")\n}\n\nenum Token_orderBy @source(subgraph: "uniswap", name: "Token_orderBy") {\n id @source(subgraph: "uniswap", name: "id")\n symbol @source(subgraph: "uniswap", name: "symbol")\n name @source(subgraph: "uniswap", name: "name")\n decimals @source(subgraph: "uniswap", name: "decimals")\n totalSupply @source(subgraph: "uniswap", name: "totalSupply")\n tradeVolume @source(subgraph: "uniswap", name: "tradeVolume")\n tradeVolumeUSD @source(subgraph: "uniswap", name: "tradeVolumeUSD")\n untrackedVolumeUSD @source(subgraph: "uniswap", name: "untrackedVolumeUSD")\n txCount @source(subgraph: "uniswap", name: "txCount")\n totalLiquidity @source(subgraph: "uniswap", name: "totalLiquidity")\n derivedETH @source(subgraph: "uniswap", name: "derivedETH")\n tokenDayData @source(subgraph: "uniswap", name: "tokenDayData")\n pairDayDataBase @source(subgraph: "uniswap", name: "pairDayDataBase")\n pairDayDataQuote @source(subgraph: "uniswap", name: "pairDayDataQuote")\n pairBase @source(subgraph: "uniswap", name: "pairBase")\n pairQuote @source(subgraph: "uniswap", name: "pairQuote")\n}\n\ntype UniswapDayData @source(subgraph: "uniswap", name: "UniswapDayData") @resolver(subgraph: "uniswap", operation: "query UniswapDayDataById($UniswapDayData_id: ID!) { uniswapDayData(id: $UniswapDayData_id) }", kind: "FETCH") @resolver(subgraph: "uniswap", operation: "query GetUniswapDayDataById($UniswapDayData_id: ID!) { uniswapDayDatas(where: { id: $UniswapDayData_id) } }", kind: "FETCH") @resolver(subgraph: "uniswap", operation: "query GetUniswapDayDataByIds($UniswapDayData_id: [ID!]!) { uniswapDayDatas(where: { id_in: $UniswapDayData_id }) }", kind: "BATCH") @variable(subgraph: "uniswap", name: "UniswapDayData_id", select: "id") {\n id: ID! @source(subgraph: "uniswap", name: "id", type: "ID!")\n date: Int! @source(subgraph: "uniswap", name: "date", type: "Int!")\n dailyVolumeETH: BigDecimal! @source(subgraph: "uniswap", name: "dailyVolumeETH", type: "BigDecimal!")\n dailyVolumeUSD: BigDecimal! @source(subgraph: "uniswap", name: "dailyVolumeUSD", type: "BigDecimal!")\n dailyVolumeUntracked: BigDecimal! @source(subgraph: "uniswap", name: "dailyVolumeUntracked", type: "BigDecimal!")\n totalVolumeETH: BigDecimal! @source(subgraph: "uniswap", name: "totalVolumeETH", type: "BigDecimal!")\n totalLiquidityETH: BigDecimal! @source(subgraph: "uniswap", name: "totalLiquidityETH", type: "BigDecimal!")\n totalVolumeUSD: BigDecimal! @source(subgraph: "uniswap", name: "totalVolumeUSD", type: "BigDecimal!")\n totalLiquidityUSD: BigDecimal! @source(subgraph: "uniswap", name: "totalLiquidityUSD", type: "BigDecimal!")\n txCount: BigInt! @source(subgraph: "uniswap", name: "txCount", type: "BigInt!")\n}\n\ninput UniswapDayData_filter @source(subgraph: "uniswap", name: "UniswapDayData_filter") {\n id: ID @source(subgraph: "uniswap", name: "id", type: "ID")\n id_not: ID @source(subgraph: "uniswap", name: "id_not", type: "ID")\n id_gt: ID @source(subgraph: "uniswap", name: "id_gt", type: "ID")\n id_lt: ID @source(subgraph: "uniswap", name: "id_lt", type: "ID")\n id_gte: ID @source(subgraph: "uniswap", name: "id_gte", type: "ID")\n id_lte: ID @source(subgraph: "uniswap", name: "id_lte", type: "ID")\n id_in: [ID!] @source(subgraph: "uniswap", name: "id_in", type: "[ID!]")\n id_not_in: [ID!] @source(subgraph: "uniswap", name: "id_not_in", type: "[ID!]")\n date: Int @source(subgraph: "uniswap", name: "date", type: "Int")\n date_not: Int @source(subgraph: "uniswap", name: "date_not", type: "Int")\n date_gt: Int @source(subgraph: "uniswap", name: "date_gt", type: "Int")\n date_lt: Int @source(subgraph: "uniswap", name: "date_lt", type: "Int")\n date_gte: Int @source(subgraph: "uniswap", name: "date_gte", type: "Int")\n date_lte: Int @source(subgraph: "uniswap", name: "date_lte", type: "Int")\n date_in: [Int!] @source(subgraph: "uniswap", name: "date_in", type: "[Int!]")\n date_not_in: [Int!] @source(subgraph: "uniswap", name: "date_not_in", type: "[Int!]")\n dailyVolumeETH: BigDecimal @source(subgraph: "uniswap", name: "dailyVolumeETH", type: "BigDecimal")\n dailyVolumeETH_not: BigDecimal @source(subgraph: "uniswap", name: "dailyVolumeETH_not", type: "BigDecimal")\n dailyVolumeETH_gt: BigDecimal @source(subgraph: "uniswap", name: "dailyVolumeETH_gt", type: "BigDecimal")\n dailyVolumeETH_lt: BigDecimal @source(subgraph: "uniswap", name: "dailyVolumeETH_lt", type: "BigDecimal")\n dailyVolumeETH_gte: BigDecimal @source(subgraph: "uniswap", name: "dailyVolumeETH_gte", type: "BigDecimal")\n dailyVolumeETH_lte: BigDecimal @source(subgraph: "uniswap", name: "dailyVolumeETH_lte", type: "BigDecimal")\n dailyVolumeETH_in: [BigDecimal!] @source(subgraph: "uniswap", name: "dailyVolumeETH_in", type: "[BigDecimal!]")\n dailyVolumeETH_not_in: [BigDecimal!] @source(subgraph: "uniswap", name: "dailyVolumeETH_not_in", type: "[BigDecimal!]")\n dailyVolumeUSD: BigDecimal @source(subgraph: "uniswap", name: "dailyVolumeUSD", type: "BigDecimal")\n dailyVolumeUSD_not: BigDecimal @source(subgraph: "uniswap", name: "dailyVolumeUSD_not", type: "BigDecimal")\n dailyVolumeUSD_gt: BigDecimal @source(subgraph: "uniswap", name: "dailyVolumeUSD_gt", type: "BigDecimal")\n dailyVolumeUSD_lt: BigDecimal @source(subgraph: "uniswap", name: "dailyVolumeUSD_lt", type: "BigDecimal")\n dailyVolumeUSD_gte: BigDecimal @source(subgraph: "uniswap", name: "dailyVolumeUSD_gte", type: "BigDecimal")\n dailyVolumeUSD_lte: BigDecimal @source(subgraph: "uniswap", name: "dailyVolumeUSD_lte", type: "BigDecimal")\n dailyVolumeUSD_in: [BigDecimal!] @source(subgraph: "uniswap", name: "dailyVolumeUSD_in", type: "[BigDecimal!]")\n dailyVolumeUSD_not_in: [BigDecimal!] @source(subgraph: "uniswap", name: "dailyVolumeUSD_not_in", type: "[BigDecimal!]")\n dailyVolumeUntracked: BigDecimal @source(subgraph: "uniswap", name: "dailyVolumeUntracked", type: "BigDecimal")\n dailyVolumeUntracked_not: BigDecimal @source(subgraph: "uniswap", name: "dailyVolumeUntracked_not", type: "BigDecimal")\n dailyVolumeUntracked_gt: BigDecimal @source(subgraph: "uniswap", name: "dailyVolumeUntracked_gt", type: "BigDecimal")\n dailyVolumeUntracked_lt: BigDecimal @source(subgraph: "uniswap", name: "dailyVolumeUntracked_lt", type: "BigDecimal")\n dailyVolumeUntracked_gte: BigDecimal @source(subgraph: "uniswap", name: "dailyVolumeUntracked_gte", type: "BigDecimal")\n dailyVolumeUntracked_lte: BigDecimal @source(subgraph: "uniswap", name: "dailyVolumeUntracked_lte", type: "BigDecimal")\n dailyVolumeUntracked_in: [BigDecimal!] @source(subgraph: "uniswap", name: "dailyVolumeUntracked_in", type: "[BigDecimal!]")\n dailyVolumeUntracked_not_in: [BigDecimal!] @source(subgraph: "uniswap", name: "dailyVolumeUntracked_not_in", type: "[BigDecimal!]")\n totalVolumeETH: BigDecimal @source(subgraph: "uniswap", name: "totalVolumeETH", type: "BigDecimal")\n totalVolumeETH_not: BigDecimal @source(subgraph: "uniswap", name: "totalVolumeETH_not", type: "BigDecimal")\n totalVolumeETH_gt: BigDecimal @source(subgraph: "uniswap", name: "totalVolumeETH_gt", type: "BigDecimal")\n totalVolumeETH_lt: BigDecimal @source(subgraph: "uniswap", name: "totalVolumeETH_lt", type: "BigDecimal")\n totalVolumeETH_gte: BigDecimal @source(subgraph: "uniswap", name: "totalVolumeETH_gte", type: "BigDecimal")\n totalVolumeETH_lte: BigDecimal @source(subgraph: "uniswap", name: "totalVolumeETH_lte", type: "BigDecimal")\n totalVolumeETH_in: [BigDecimal!] @source(subgraph: "uniswap", name: "totalVolumeETH_in", type: "[BigDecimal!]")\n totalVolumeETH_not_in: [BigDecimal!] @source(subgraph: "uniswap", name: "totalVolumeETH_not_in", type: "[BigDecimal!]")\n totalLiquidityETH: BigDecimal @source(subgraph: "uniswap", name: "totalLiquidityETH", type: "BigDecimal")\n totalLiquidityETH_not: BigDecimal @source(subgraph: "uniswap", name: "totalLiquidityETH_not", type: "BigDecimal")\n totalLiquidityETH_gt: BigDecimal @source(subgraph: "uniswap", name: "totalLiquidityETH_gt", type: "BigDecimal")\n totalLiquidityETH_lt: BigDecimal @source(subgraph: "uniswap", name: "totalLiquidityETH_lt", type: "BigDecimal")\n totalLiquidityETH_gte: BigDecimal @source(subgraph: "uniswap", name: "totalLiquidityETH_gte", type: "BigDecimal")\n totalLiquidityETH_lte: BigDecimal @source(subgraph: "uniswap", name: "totalLiquidityETH_lte", type: "BigDecimal")\n totalLiquidityETH_in: [BigDecimal!] @source(subgraph: "uniswap", name: "totalLiquidityETH_in", type: "[BigDecimal!]")\n totalLiquidityETH_not_in: [BigDecimal!] @source(subgraph: "uniswap", name: "totalLiquidityETH_not_in", type: "[BigDecimal!]")\n totalVolumeUSD: BigDecimal @source(subgraph: "uniswap", name: "totalVolumeUSD", type: "BigDecimal")\n totalVolumeUSD_not: BigDecimal @source(subgraph: "uniswap", name: "totalVolumeUSD_not", type: "BigDecimal")\n totalVolumeUSD_gt: BigDecimal @source(subgraph: "uniswap", name: "totalVolumeUSD_gt", type: "BigDecimal")\n totalVolumeUSD_lt: BigDecimal @source(subgraph: "uniswap", name: "totalVolumeUSD_lt", type: "BigDecimal")\n totalVolumeUSD_gte: BigDecimal @source(subgraph: "uniswap", name: "totalVolumeUSD_gte", type: "BigDecimal")\n totalVolumeUSD_lte: BigDecimal @source(subgraph: "uniswap", name: "totalVolumeUSD_lte", type: "BigDecimal")\n totalVolumeUSD_in: [BigDecimal!] @source(subgraph: "uniswap", name: "totalVolumeUSD_in", type: "[BigDecimal!]")\n totalVolumeUSD_not_in: [BigDecimal!] @source(subgraph: "uniswap", name: "totalVolumeUSD_not_in", type: "[BigDecimal!]")\n totalLiquidityUSD: BigDecimal @source(subgraph: "uniswap", name: "totalLiquidityUSD", type: "BigDecimal")\n totalLiquidityUSD_not: BigDecimal @source(subgraph: "uniswap", name: "totalLiquidityUSD_not", type: "BigDecimal")\n totalLiquidityUSD_gt: BigDecimal @source(subgraph: "uniswap", name: "totalLiquidityUSD_gt", type: "BigDecimal")\n totalLiquidityUSD_lt: BigDecimal @source(subgraph: "uniswap", name: "totalLiquidityUSD_lt", type: "BigDecimal")\n totalLiquidityUSD_gte: BigDecimal @source(subgraph: "uniswap", name: "totalLiquidityUSD_gte", type: "BigDecimal")\n totalLiquidityUSD_lte: BigDecimal @source(subgraph: "uniswap", name: "totalLiquidityUSD_lte", type: "BigDecimal")\n totalLiquidityUSD_in: [BigDecimal!] @source(subgraph: "uniswap", name: "totalLiquidityUSD_in", type: "[BigDecimal!]")\n totalLiquidityUSD_not_in: [BigDecimal!] @source(subgraph: "uniswap", name: "totalLiquidityUSD_not_in", type: "[BigDecimal!]")\n txCount: BigInt @source(subgraph: "uniswap", name: "txCount", type: "BigInt")\n txCount_not: BigInt @source(subgraph: "uniswap", name: "txCount_not", type: "BigInt")\n txCount_gt: BigInt @source(subgraph: "uniswap", name: "txCount_gt", type: "BigInt")\n txCount_lt: BigInt @source(subgraph: "uniswap", name: "txCount_lt", type: "BigInt")\n txCount_gte: BigInt @source(subgraph: "uniswap", name: "txCount_gte", type: "BigInt")\n txCount_lte: BigInt @source(subgraph: "uniswap", name: "txCount_lte", type: "BigInt")\n txCount_in: [BigInt!] @source(subgraph: "uniswap", name: "txCount_in", type: "[BigInt!]")\n txCount_not_in: [BigInt!] @source(subgraph: "uniswap", name: "txCount_not_in", type: "[BigInt!]")\n """Filter for the block changed event."""\n _change_block: BlockChangedFilter @source(subgraph: "uniswap", name: "_change_block", type: "BlockChangedFilter")\n and: [UniswapDayData_filter] @source(subgraph: "uniswap", name: "and", type: "[UniswapDayData_filter]")\n or: [UniswapDayData_filter] @source(subgraph: "uniswap", name: "or", type: "[UniswapDayData_filter]")\n}\n\nenum UniswapDayData_orderBy @source(subgraph: "uniswap", name: "UniswapDayData_orderBy") {\n id @source(subgraph: "uniswap", name: "id")\n date @source(subgraph: "uniswap", name: "date")\n dailyVolumeETH @source(subgraph: "uniswap", name: "dailyVolumeETH")\n dailyVolumeUSD @source(subgraph: "uniswap", name: "dailyVolumeUSD")\n dailyVolumeUntracked @source(subgraph: "uniswap", name: "dailyVolumeUntracked")\n totalVolumeETH @source(subgraph: "uniswap", name: "totalVolumeETH")\n totalLiquidityETH @source(subgraph: "uniswap", name: "totalLiquidityETH")\n totalVolumeUSD @source(subgraph: "uniswap", name: "totalVolumeUSD")\n totalLiquidityUSD @source(subgraph: "uniswap", name: "totalLiquidityUSD")\n txCount @source(subgraph: "uniswap", name: "txCount")\n}\n\ntype UniswapFactory @source(subgraph: "uniswap", name: "UniswapFactory") @resolver(subgraph: "uniswap", operation: "query UniswapFactoryById($UniswapFactory_id: ID!) { uniswapFactory(id: $UniswapFactory_id) }", kind: "FETCH") @resolver(subgraph: "uniswap", operation: "query GetUniswapFactoryById($UniswapFactory_id: ID!) { uniswapFactories(where: { id: $UniswapFactory_id) } }", kind: "FETCH") @resolver(subgraph: "uniswap", operation: "query GetUniswapFactoriesByIds($UniswapFactory_id: [ID!]!) { uniswapFactories(where: { id_in: $UniswapFactory_id }) }", kind: "BATCH") @resolver(subgraph: "uniswap", operation: "query UniswapFactoriesByPairCounts($UniswapFactory_pairCount: Int) { uniswapFactories(skip: $UniswapFactory_pairCount) }", kind: "BATCH") @variable(subgraph: "uniswap", name: "UniswapFactory_id", select: "id") @variable(subgraph: "uniswap", name: "UniswapFactory_pairCount", select: "pairCount") {\n id: ID! @source(subgraph: "uniswap", name: "id", type: "ID!")\n pairCount: Int! @source(subgraph: "uniswap", name: "pairCount", type: "Int!")\n totalVolumeUSD: BigDecimal! @source(subgraph: "uniswap", name: "totalVolumeUSD", type: "BigDecimal!")\n totalVolumeETH: BigDecimal! @source(subgraph: "uniswap", name: "totalVolumeETH", type: "BigDecimal!")\n untrackedVolumeUSD: BigDecimal! @source(subgraph: "uniswap", name: "untrackedVolumeUSD", type: "BigDecimal!")\n totalLiquidityUSD: BigDecimal! @source(subgraph: "uniswap", name: "totalLiquidityUSD", type: "BigDecimal!")\n totalLiquidityETH: BigDecimal! @source(subgraph: "uniswap", name: "totalLiquidityETH", type: "BigDecimal!")\n txCount: BigInt! @source(subgraph: "uniswap", name: "txCount", type: "BigInt!")\n}\n\ninput UniswapFactory_filter @source(subgraph: "uniswap", name: "UniswapFactory_filter") {\n id: ID @source(subgraph: "uniswap", name: "id", type: "ID")\n id_not: ID @source(subgraph: "uniswap", name: "id_not", type: "ID")\n id_gt: ID @source(subgraph: "uniswap", name: "id_gt", type: "ID")\n id_lt: ID @source(subgraph: "uniswap", name: "id_lt", type: "ID")\n id_gte: ID @source(subgraph: "uniswap", name: "id_gte", type: "ID")\n id_lte: ID @source(subgraph: "uniswap", name: "id_lte", type: "ID")\n id_in: [ID!] @source(subgraph: "uniswap", name: "id_in", type: "[ID!]")\n id_not_in: [ID!] @source(subgraph: "uniswap", name: "id_not_in", type: "[ID!]")\n pairCount: Int @source(subgraph: "uniswap", name: "pairCount", type: "Int")\n pairCount_not: Int @source(subgraph: "uniswap", name: "pairCount_not", type: "Int")\n pairCount_gt: Int @source(subgraph: "uniswap", name: "pairCount_gt", type: "Int")\n pairCount_lt: Int @source(subgraph: "uniswap", name: "pairCount_lt", type: "Int")\n pairCount_gte: Int @source(subgraph: "uniswap", name: "pairCount_gte", type: "Int")\n pairCount_lte: Int @source(subgraph: "uniswap", name: "pairCount_lte", type: "Int")\n pairCount_in: [Int!] @source(subgraph: "uniswap", name: "pairCount_in", type: "[Int!]")\n pairCount_not_in: [Int!] @source(subgraph: "uniswap", name: "pairCount_not_in", type: "[Int!]")\n totalVolumeUSD: BigDecimal @source(subgraph: "uniswap", name: "totalVolumeUSD", type: "BigDecimal")\n totalVolumeUSD_not: BigDecimal @source(subgraph: "uniswap", name: "totalVolumeUSD_not", type: "BigDecimal")\n totalVolumeUSD_gt: BigDecimal @source(subgraph: "uniswap", name: "totalVolumeUSD_gt", type: "BigDecimal")\n totalVolumeUSD_lt: BigDecimal @source(subgraph: "uniswap", name: "totalVolumeUSD_lt", type: "BigDecimal")\n totalVolumeUSD_gte: BigDecimal @source(subgraph: "uniswap", name: "totalVolumeUSD_gte", type: "BigDecimal")\n totalVolumeUSD_lte: BigDecimal @source(subgraph: "uniswap", name: "totalVolumeUSD_lte", type: "BigDecimal")\n totalVolumeUSD_in: [BigDecimal!] @source(subgraph: "uniswap", name: "totalVolumeUSD_in", type: "[BigDecimal!]")\n totalVolumeUSD_not_in: [BigDecimal!] @source(subgraph: "uniswap", name: "totalVolumeUSD_not_in", type: "[BigDecimal!]")\n totalVolumeETH: BigDecimal @source(subgraph: "uniswap", name: "totalVolumeETH", type: "BigDecimal")\n totalVolumeETH_not: BigDecimal @source(subgraph: "uniswap", name: "totalVolumeETH_not", type: "BigDecimal")\n totalVolumeETH_gt: BigDecimal @source(subgraph: "uniswap", name: "totalVolumeETH_gt", type: "BigDecimal")\n totalVolumeETH_lt: BigDecimal @source(subgraph: "uniswap", name: "totalVolumeETH_lt", type: "BigDecimal")\n totalVolumeETH_gte: BigDecimal @source(subgraph: "uniswap", name: "totalVolumeETH_gte", type: "BigDecimal")\n totalVolumeETH_lte: BigDecimal @source(subgraph: "uniswap", name: "totalVolumeETH_lte", type: "BigDecimal")\n totalVolumeETH_in: [BigDecimal!] @source(subgraph: "uniswap", name: "totalVolumeETH_in", type: "[BigDecimal!]")\n totalVolumeETH_not_in: [BigDecimal!] @source(subgraph: "uniswap", name: "totalVolumeETH_not_in", type: "[BigDecimal!]")\n untrackedVolumeUSD: BigDecimal @source(subgraph: "uniswap", name: "untrackedVolumeUSD", type: "BigDecimal")\n untrackedVolumeUSD_not: BigDecimal @source(subgraph: "uniswap", name: "untrackedVolumeUSD_not", type: "BigDecimal")\n untrackedVolumeUSD_gt: BigDecimal @source(subgraph: "uniswap", name: "untrackedVolumeUSD_gt", type: "BigDecimal")\n untrackedVolumeUSD_lt: BigDecimal @source(subgraph: "uniswap", name: "untrackedVolumeUSD_lt", type: "BigDecimal")\n untrackedVolumeUSD_gte: BigDecimal @source(subgraph: "uniswap", name: "untrackedVolumeUSD_gte", type: "BigDecimal")\n untrackedVolumeUSD_lte: BigDecimal @source(subgraph: "uniswap", name: "untrackedVolumeUSD_lte", type: "BigDecimal")\n untrackedVolumeUSD_in: [BigDecimal!] @source(subgraph: "uniswap", name: "untrackedVolumeUSD_in", type: "[BigDecimal!]")\n untrackedVolumeUSD_not_in: [BigDecimal!] @source(subgraph: "uniswap", name: "untrackedVolumeUSD_not_in", type: "[BigDecimal!]")\n totalLiquidityUSD: BigDecimal @source(subgraph: "uniswap", name: "totalLiquidityUSD", type: "BigDecimal")\n totalLiquidityUSD_not: BigDecimal @source(subgraph: "uniswap", name: "totalLiquidityUSD_not", type: "BigDecimal")\n totalLiquidityUSD_gt: BigDecimal @source(subgraph: "uniswap", name: "totalLiquidityUSD_gt", type: "BigDecimal")\n totalLiquidityUSD_lt: BigDecimal @source(subgraph: "uniswap", name: "totalLiquidityUSD_lt", type: "BigDecimal")\n totalLiquidityUSD_gte: BigDecimal @source(subgraph: "uniswap", name: "totalLiquidityUSD_gte", type: "BigDecimal")\n totalLiquidityUSD_lte: BigDecimal @source(subgraph: "uniswap", name: "totalLiquidityUSD_lte", type: "BigDecimal")\n totalLiquidityUSD_in: [BigDecimal!] @source(subgraph: "uniswap", name: "totalLiquidityUSD_in", type: "[BigDecimal!]")\n totalLiquidityUSD_not_in: [BigDecimal!] @source(subgraph: "uniswap", name: "totalLiquidityUSD_not_in", type: "[BigDecimal!]")\n totalLiquidityETH: BigDecimal @source(subgraph: "uniswap", name: "totalLiquidityETH", type: "BigDecimal")\n totalLiquidityETH_not: BigDecimal @source(subgraph: "uniswap", name: "totalLiquidityETH_not", type: "BigDecimal")\n totalLiquidityETH_gt: BigDecimal @source(subgraph: "uniswap", name: "totalLiquidityETH_gt", type: "BigDecimal")\n totalLiquidityETH_lt: BigDecimal @source(subgraph: "uniswap", name: "totalLiquidityETH_lt", type: "BigDecimal")\n totalLiquidityETH_gte: BigDecimal @source(subgraph: "uniswap", name: "totalLiquidityETH_gte", type: "BigDecimal")\n totalLiquidityETH_lte: BigDecimal @source(subgraph: "uniswap", name: "totalLiquidityETH_lte", type: "BigDecimal")\n totalLiquidityETH_in: [BigDecimal!] @source(subgraph: "uniswap", name: "totalLiquidityETH_in", type: "[BigDecimal!]")\n totalLiquidityETH_not_in: [BigDecimal!] @source(subgraph: "uniswap", name: "totalLiquidityETH_not_in", type: "[BigDecimal!]")\n txCount: BigInt @source(subgraph: "uniswap", name: "txCount", type: "BigInt")\n txCount_not: BigInt @source(subgraph: "uniswap", name: "txCount_not", type: "BigInt")\n txCount_gt: BigInt @source(subgraph: "uniswap", name: "txCount_gt", type: "BigInt")\n txCount_lt: BigInt @source(subgraph: "uniswap", name: "txCount_lt", type: "BigInt")\n txCount_gte: BigInt @source(subgraph: "uniswap", name: "txCount_gte", type: "BigInt")\n txCount_lte: BigInt @source(subgraph: "uniswap", name: "txCount_lte", type: "BigInt")\n txCount_in: [BigInt!] @source(subgraph: "uniswap", name: "txCount_in", type: "[BigInt!]")\n txCount_not_in: [BigInt!] @source(subgraph: "uniswap", name: "txCount_not_in", type: "[BigInt!]")\n """Filter for the block changed event."""\n _change_block: BlockChangedFilter @source(subgraph: "uniswap", name: "_change_block", type: "BlockChangedFilter")\n and: [UniswapFactory_filter] @source(subgraph: "uniswap", name: "and", type: "[UniswapFactory_filter]")\n or: [UniswapFactory_filter] @source(subgraph: "uniswap", name: "or", type: "[UniswapFactory_filter]")\n}\n\nenum UniswapFactory_orderBy @source(subgraph: "uniswap", name: "UniswapFactory_orderBy") {\n id @source(subgraph: "uniswap", name: "id")\n pairCount @source(subgraph: "uniswap", name: "pairCount")\n totalVolumeUSD @source(subgraph: "uniswap", name: "totalVolumeUSD")\n totalVolumeETH @source(subgraph: "uniswap", name: "totalVolumeETH")\n untrackedVolumeUSD @source(subgraph: "uniswap", name: "untrackedVolumeUSD")\n totalLiquidityUSD @source(subgraph: "uniswap", name: "totalLiquidityUSD")\n totalLiquidityETH @source(subgraph: "uniswap", name: "totalLiquidityETH")\n txCount @source(subgraph: "uniswap", name: "txCount")\n}\n\ninput User_filter @source(subgraph: "uniswap", name: "User_filter") {\n id: ID @source(subgraph: "uniswap", name: "id", type: "ID")\n id_not: ID @source(subgraph: "uniswap", name: "id_not", type: "ID")\n id_gt: ID @source(subgraph: "uniswap", name: "id_gt", type: "ID")\n id_lt: ID @source(subgraph: "uniswap", name: "id_lt", type: "ID")\n id_gte: ID @source(subgraph: "uniswap", name: "id_gte", type: "ID")\n id_lte: ID @source(subgraph: "uniswap", name: "id_lte", type: "ID")\n id_in: [ID!] @source(subgraph: "uniswap", name: "id_in", type: "[ID!]")\n id_not_in: [ID!] @source(subgraph: "uniswap", name: "id_not_in", type: "[ID!]")\n liquidityPositions_: LiquidityPosition_filter @source(subgraph: "uniswap", name: "liquidityPositions_", type: "LiquidityPosition_filter")\n usdSwapped: BigDecimal @source(subgraph: "uniswap", name: "usdSwapped", type: "BigDecimal")\n usdSwapped_not: BigDecimal @source(subgraph: "uniswap", name: "usdSwapped_not", type: "BigDecimal")\n usdSwapped_gt: BigDecimal @source(subgraph: "uniswap", name: "usdSwapped_gt", type: "BigDecimal")\n usdSwapped_lt: BigDecimal @source(subgraph: "uniswap", name: "usdSwapped_lt", type: "BigDecimal")\n usdSwapped_gte: BigDecimal @source(subgraph: "uniswap", name: "usdSwapped_gte", type: "BigDecimal")\n usdSwapped_lte: BigDecimal @source(subgraph: "uniswap", name: "usdSwapped_lte", type: "BigDecimal")\n usdSwapped_in: [BigDecimal!] @source(subgraph: "uniswap", name: "usdSwapped_in", type: "[BigDecimal!]")\n usdSwapped_not_in: [BigDecimal!] @source(subgraph: "uniswap", name: "usdSwapped_not_in", type: "[BigDecimal!]")\n """Filter for the block changed event."""\n _change_block: BlockChangedFilter @source(subgraph: "uniswap", name: "_change_block", type: "BlockChangedFilter")\n and: [User_filter] @source(subgraph: "uniswap", name: "and", type: "[User_filter]")\n or: [User_filter] @source(subgraph: "uniswap", name: "or", type: "[User_filter]")\n}\n\nenum User_orderBy @source(subgraph: "uniswap", name: "User_orderBy") {\n id @source(subgraph: "uniswap", name: "id")\n liquidityPositions @source(subgraph: "uniswap", name: "liquidityPositions")\n usdSwapped @source(subgraph: "uniswap", name: "usdSwapped")\n}' diff --git a/examples/composition/graphclient.config.ts b/examples/composition/graphclient.config.ts new file mode 100644 index 00000000..b2ae83a4 --- /dev/null +++ b/examples/composition/graphclient.config.ts @@ -0,0 +1,37 @@ +import { + createRenameFieldTransform, + createRenameTypeTransform, + defineConfig as defineComposeConfig, + loadGraphQLHTTPSubgraph, +} from '@graphprotocol/client-compose-cli' +import { GraphQLID } from 'graphql' + +export const composeConfig = defineComposeConfig({ + subgraphs: [ + { + sourceHandler: loadGraphQLHTTPSubgraph('nft', { + endpoint: 'https://api.thegraph.com/subgraphs/name/amxx/eip721-subgraph', + }), + transforms: [ + // Resolve conflicts between subgraphs + createRenameFieldTransform((field, fieldName, typeName) => { + if (typeName === 'Account' && fieldName === 'id') { + field.type = GraphQLID + } + return fieldName + }), + createRenameTypeTransform((type) => { + if (type.name === 'Account') { + return 'User' + } + return type.name + }), + ], + }, + { + sourceHandler: loadGraphQLHTTPSubgraph('uniswap', { + endpoint: 'https://api.thegraph.com/subgraphs/name/uniswap/uniswap-v2', + }), + }, + ], +}) diff --git a/examples/composition/package.json b/examples/composition/package.json index fb4a901f..8c99feb3 100644 --- a/examples/composition/package.json +++ b/examples/composition/package.json @@ -4,13 +4,14 @@ "version": "0.0.0", "scripts": { "start": "ts-node --transpileOnly src/index.ts", - "build-client": "graphclient build", "check": "tsc --pretty --noEmit", - "graphiql": "graphclient serve-dev" + "graphiql": "node ../../packages/serve-cli/dist/cjs/bin.js", + "build": "node ../../packages/compose-cli/dist/cjs/bin.js" }, "dependencies": { - "@graphprotocol/client-cli": "^3.0.0", - "@graphql-mesh/transform-rename": "^0.94.0", + "@graphprotocol/client-compose-cli": "^0.0.0", + "@graphprotocol/client-runtime": "^0.0.0", + "@graphql-mesh/transport-http": "^0.1.4", "concurrently": "^8.0.1", "graphql": "^16.6.0", "nodemon": "^3.0.0", diff --git a/examples/composition/src/index.ts b/examples/composition/src/index.ts index c551f0c0..bec67bf3 100644 --- a/examples/composition/src/index.ts +++ b/examples/composition/src/index.ts @@ -1,18 +1,22 @@ -import { execute } from '../.graphclient' +import { getExecutor } from '@graphprotocol/client-runtime' +import fusiongraph from '../fusiongraph' +import { parse } from 'graphql' + +const executor = getExecutor({ + fusiongraph, +}) async function main() { - const response = await execute( - /* GraphQL */ ` + const response = await executor({ + document: parse(/* GraphQL */ ` fragment UserFields on User { # Shared unique identifier field id # Field from uniswap source - tokens(first: 1) { + ERC721tokens(first: 1001) { + # Testing auto pagination by exceeding the limit of 1000 id uri - registry { - id - } } # Field from nft source liquidityPositions(first: 1) { @@ -26,15 +30,28 @@ async function main() { ...UserFields } # Get base entity from uniswap source - user(id: "0x72ba1965320ab5352fd6d68235cc3c5306a6ffa2") { - ...UserFields - } + # user(id: "0x72ba1965320ab5352fd6d68235cc3c5306a6ffa2") { + # ...UserFields + #} } - `, - {}, - ) + `), + }) + + if (Symbol.asyncIterator in response) { + throw new Error('Unexpected async iterator response') + } - console.log(response) + if ('errors' in response && response.errors?.length) { + for (const error of response.errors) { + console.error(error.message) + } + } else { + console.log(` + Account: ${response.data?.account.id} has + ${response.data?.account.ERC721tokens.length} ERC721 tokens and + ${response.data?.account.liquidityPositions.length} liquidity positions + `) + } } main().catch((e) => console.error(`Failed to run example:`, e)) diff --git a/examples/composition/tsconfig.json b/examples/composition/tsconfig.json index 5a4a79c8..067ebfed 100644 --- a/examples/composition/tsconfig.json +++ b/examples/composition/tsconfig.json @@ -8,5 +8,5 @@ "lib": ["esnext", "DOM", "DOM.Iterable"], "allowSyntheticDefaultImports": true }, - "files": ["src/index.ts"] + "files": ["src/index.ts", "graphclient.config.ts"] } diff --git a/examples/transforms/package.json b/examples/transforms/package.json index 415d3ad9..efd49016 100644 --- a/examples/transforms/package.json +++ b/examples/transforms/package.json @@ -8,7 +8,7 @@ }, "dependencies": { "@graphprotocol/client-cli": "^3.0.0", - "@graphql-mesh/transform-prefix": "^0.94.0", + "@graphql-mesh/transform-prefix": "^0.97.4", "graphql": "^16.6.0" } } diff --git a/packages/auto-pagination/__tests__/auto-pagination.test.ts b/packages/auto-pagination/__tests__/auto-pagination.test.ts index 5847c376..5e1cb9b8 100644 --- a/packages/auto-pagination/__tests__/auto-pagination.test.ts +++ b/packages/auto-pagination/__tests__/auto-pagination.test.ts @@ -1,12 +1,16 @@ import { makeExecutableSchema } from '@graphql-tools/schema' import { wrapSchema } from '@graphql-tools/wrap' -import { execute, ExecutionResult, GraphQLFieldResolver, parse } from 'graphql' -import AutoPaginationTransform from '../src/index.js' +import { DocumentNode, execute, ExecutionResult, GraphQLFieldResolver, parse, print, validate } from 'graphql' +import AutoPaginationTransform, { useAutoPagination } from '../src/index.js' import PrefixTransform from '@graphql-mesh/transform-prefix' import LocalforageCache from '@graphql-mesh/cache-localforage' import { DefaultLogger } from '@graphql-mesh/utils' import { PubSub } from '@graphql-mesh/utils' import { stitchSchemas } from '@graphql-tools/stitch' +import { getProxyExecutor } from '@graphql-mesh/serve-runtime' +import { createDefaultExecutor } from '@graphql-tools/delegate' +import { composeSubgraphs, createRenameFieldTransform } from '@graphql-mesh/fusion-composition' +import { getExecutorForFusiongraph } from '@graphql-mesh/fusion-runtime' const logger = new DefaultLogger('test') @@ -100,198 +104,256 @@ describe('Auto Pagination', () => { skipLimit: USERS_SKIP_LIMIT, entityName: 'User', }) + const config = { + limitOfRecords: USERS_FIRST_LIMIT, + skipArgumentLimit: USERS_SKIP_LIMIT, + } + const plugin = useAutoPagination(config) const wrappedUsersSchema = wrapSchema({ schema: usersSchema, transforms: [ new AutoPaginationTransform({ - config: { - limitOfRecords: USERS_FIRST_LIMIT, - skipArgumentLimit: USERS_SKIP_LIMIT, - }, + config, }), ], }) - it('should give correct numbers of results if first arg are higher than given limit', async () => { - const query = /* GraphQL */ ` - query { - users(first: 20) { - id - name - } - } - ` - const result = await execute({ - schema: wrappedUsersSchema, - document: parse(query), - }) - expect(result.data?.users).toHaveLength(20) - expect(result.data?.users).toEqual(users.slice(0, 20)) - }) - it('should respect skip argument', async () => { - const query = /* GraphQL */ ` - query { - users(first: 20, skip: 1) { - id - name - } - } - ` - const result = await execute({ - schema: wrappedUsersSchema, - document: parse(query), - }) - expect(result.data?.users).toHaveLength(20) - expect(result.data?.users).toEqual(users.slice(1, 21)) - }) - it('should work with the values under the limit', async () => { - const query = /* GraphQL */ ` - query { - users(first: 2, skip: 2) { - id - name + const supergraphExecutor = getProxyExecutor( + { + proxy: { + endpoint: 'http://localhost:4000/graphql', + }, + transport() { + return { + getSubgraphExecutor() { + return createDefaultExecutor(usersSchema) + }, } - } - ` - const result = await execute({ - schema: wrappedUsersSchema, - document: parse(query), - }) - expect(result.data?.users).toHaveLength(2) - expect(result.data?.users).toEqual(users.slice(2, 4)) - }) - it('should ignore non entity fields added by other transforms', async () => { - const query = /* GraphQL */ ` - query { - _meta { - block { - number + }, + plugins: () => [plugin], + }, + {}, + ) + const scenarios = { + Plugin: (document: DocumentNode, variables?: any) => + supergraphExecutor({ + document, + variables, + }), + Transform: (document: DocumentNode, variables?: any) => + execute({ + schema: wrappedUsersSchema, + document, + variableValues: variables, + }), + } + Object.entries(scenarios).forEach(([name, executor]) => { + describe(name, () => { + it('should give correct numbers of results if first arg are higher than given limit', async () => { + const query = /* GraphQL */ ` + query { + users(first: 20) { + id + name + } } + ` + const result = (await executor(parse(query))) as ExecutionResult + expect(result.data?.users).toHaveLength(20) + expect(result.data?.users).toEqual(users.slice(0, 20)) + }) + it('should respect skip argument', async () => { + const query = /* GraphQL */ ` + query { + users(first: 20, skip: 1) { + id + name + } + } + ` + const result = (await executor(parse(query))) as ExecutionResult + expect(result.data?.users).toHaveLength(20) + expect(result.data?.users).toEqual(users.slice(1, 21)) + }) + it('should work with the values under the limit', async () => { + const query = /* GraphQL */ ` + query { + users(first: 2, skip: 2) { + id + name + } + } + ` + const result = (await executor(parse(query))) as ExecutionResult + expect(result.data?.users).toHaveLength(2) + expect(result.data?.users).toEqual(users.slice(2, 4)) + }) + it('should ignore non entity fields added by other transforms', async () => { + const query = /* GraphQL */ ` + query { + _meta { + block { + number + } + } + users(first: 20) { + id + name + } + } + ` + const result: ExecutionResult = (await executor(parse(query))) as ExecutionResult + expect(result.data?._meta?.block?.number).toBeDefined() + expect(result.data?.users).toHaveLength(20) + expect(result.data?.users).toEqual(users.slice(0, 20)) + }) + it('should respect other arguments', async () => { + const query = /* GraphQL */ ` + query { + users(first: 20, odd: true) { + id + name + } + } + ` + const result: ExecutionResult = (await executor(parse(query))) as ExecutionResult + expect(result.data?.users).toHaveLength(20) + expect(result.data?.users).toEqual(usersOdd.slice(0, 20)) + }) + it('should make queries serially if skip limit reaches the limit', async () => { + const query = /* GraphQL */ ` + query { + users(first: 150) { + id + name + } + } + ` + const result: ExecutionResult = (await executor(parse(query))) as ExecutionResult + expect(result.data?.users).toHaveLength(150) + expect(result.data?.users).toEqual(users.slice(0, 150)) + }) + it('should work with prefix transform properly', async () => { + let executor + if (name === 'Transform') { + const wrappedSchema = wrapSchema({ + schema: usersSchema, + transforms: [ + new PrefixTransform({ + baseDir: process.cwd(), + cache: new LocalforageCache(), + pubsub: new PubSub(), + logger, + apiName: 'test', + config: { + value: 'my_', + includeRootOperations: true, + }, + importFn: (m) => import(m), + }), + new AutoPaginationTransform({ + config: { + limitOfRecords: USERS_FIRST_LIMIT, + skipArgumentLimit: USERS_SKIP_LIMIT, + }, + }), + ], + }) + executor = () => + execute({ + schema: wrappedSchema, + document: parse(query), + }) + } else if (name === 'Plugin') { + const composedSchema = composeSubgraphs([ + { + name: 'Users', + schema: usersSchema, + transforms: [ + createRenameFieldTransform((_field, fieldName, typeName) => + typeName === 'Query' && fieldName === 'users' ? 'my_users' : fieldName, + ), + ], + }, + ]) + const { fusiongraphExecutor } = getExecutorForFusiongraph({ + fusiongraph: composedSchema, + transports() { + return { + getSubgraphExecutor() { + const executor = createDefaultExecutor(usersSchema) + return function (executionRequest) { + const validationErrors = validate(composedSchema, executionRequest.document) + if (validationErrors.length) { + return { errors: validationErrors } + } + return executor(executionRequest) + } + }, + } + }, + plugins: [plugin], + }) + + executor = () => + fusiongraphExecutor({ + document: parse(query), + }) + } else { + throw new Error('Unknown executor') } - users(first: 20) { - id - name - } - } - ` - const result: ExecutionResult = await execute({ - schema: wrappedUsersSchema, - document: parse(query), - }) - expect(result.data?._meta?.block?.number).toBeDefined() - expect(result.data?.users).toHaveLength(20) - expect(result.data?.users).toEqual(users.slice(0, 20)) - }) - it('should respect other arguments', async () => { - const query = /* GraphQL */ ` - query { - users(first: 20, odd: true) { - id - name - } - } - ` - const result: ExecutionResult = await execute({ - schema: wrappedUsersSchema, - document: parse(query), - }) - expect(result.data?.users).toHaveLength(20) - expect(result.data?.users).toEqual(usersOdd.slice(0, 20)) - }) - it('should make queries serially if skip limit reaches the limit', async () => { - const query = /* GraphQL */ ` - query { - users(first: 150) { - id - name - } - } - ` - const result: ExecutionResult = await execute({ - schema: wrappedUsersSchema, - document: parse(query), - }) - expect(result.data?.users).toHaveLength(150) - expect(result.data?.users).toEqual(users.slice(0, 150)) - }) - it('should work with prefix transform properly', async () => { - const wrappedSchema = wrapSchema({ - schema: usersSchema, - transforms: [ - new PrefixTransform({ - baseDir: process.cwd(), - cache: new LocalforageCache(), - pubsub: new PubSub(), - logger, - apiName: 'test', - config: { - value: 'my_', - includeRootOperations: true, - }, - importFn: (m) => import(m), - }), - new AutoPaginationTransform({ - config: { - limitOfRecords: USERS_FIRST_LIMIT, - skipArgumentLimit: USERS_SKIP_LIMIT, - }, - }), - ], - }) - const query = /* GraphQL */ ` - query { - my_users(first: 150) { - id - name - } - } - ` - const result: ExecutionResult = await execute({ - schema: wrappedSchema, - document: parse(query), - }) - expect(result.data?.my_users).toHaveLength(150) - expect(result.data?.my_users).toEqual(users.slice(0, 150)) - }) - it('should work with nested fields', async () => { - const query = /* GraphQL */ ` - query { - users(first: 20) { - id - name - subusers(first: 25) { - id - name + const query = /* GraphQL */ ` + query { + my_users(first: 150) { + id + name + } } + ` + const result: ExecutionResult = (await executor()) as ExecutionResult + if (result.errors?.length) { + throw result.errors[0] } - } - ` - const result: any = await execute({ - schema: wrappedUsersSchema, - document: parse(query), - }) - expect(result.data?.users).toHaveLength(20) - expect(result.data?.users[0].subusers).toHaveLength(25) - expect(result.data?.users[0].subusers).toEqual(users.slice(0, 25)) - }) - it('should work with variables', async () => { - const query = /* GraphQL */ ` - query ($first: Int = 60, $skip: Int = 0) { - users(first: $first) { - id - name + expect(result.data?.my_users).toHaveLength(150) + expect(result.data?.my_users).toEqual(users.slice(0, 150)) + }) + it('should work with nested fields', async () => { + const query = /* GraphQL */ ` + query { + users(first: 20) { + id + name + subusers(first: 25) { + id + name + } + } + } + ` + const result: any = (await executor(parse(query))) as ExecutionResult + expect(result.data?.users).toHaveLength(20) + expect(result.data?.users[0].subusers).toHaveLength(25) + expect(result.data?.users[0].subusers).toEqual(users.slice(0, 25)) + }) + it('should work with variables', async () => { + const query = /* GraphQL */ ` + query ($first: Int = 60, $skip: Int = 0) { + users(first: $first) { + id + name + } + } + ` + const result = (await executor(parse(query), { + first: 100, + skip: 0, + })) as ExecutionResult + if (result.errors?.length) { + throw result.errors[0] } - } - ` - const result: ExecutionResult = await execute({ - schema: wrappedUsersSchema, - document: parse(query), - variableValues: { - first: 100, - skip: 0, - }, + expect(result.data?.users).toHaveLength(100) + expect(result.data?.users).toEqual(users.slice(0, 100)) + }) }) - expect(result.data?.users).toHaveLength(100) - expect(result.data?.users).toEqual(users.slice(0, 100)) }) }) describe('multiple schemas', () => { diff --git a/packages/auto-pagination/src/index.ts b/packages/auto-pagination/src/index.ts index b98d51fa..ec329c2c 100644 --- a/packages/auto-pagination/src/index.ts +++ b/packages/auto-pagination/src/index.ts @@ -1,41 +1,28 @@ import type { MeshTransform } from '@graphql-mesh/types' import { delegateToSchema, DelegationContext, SubschemaConfig } from '@graphql-tools/delegate' import type { ExecutionRequest } from '@graphql-tools/utils' -import { - ArgumentNode, - ExecutionResult, - GraphQLSchema, - isListType, - isNonNullType, - Kind, - print, - SelectionNode, - visit, -} from 'graphql' +import { ExecutionResult, GraphQLSchema, isListType, isNonNullType } from 'graphql' import { memoize2 } from '@graphql-tools/utils' import _ from 'lodash' +import { + AutoPaginationOptions, + DEFAULT_OPTIONS, + transformExecutionRequest, + transformExecutionResponse, +} from './shared.js' -interface AutoPaginationTransformConfig { - if?: boolean - validateSchema?: boolean - limitOfRecords?: number - firstArgumentName?: string - skipArgumentName?: string - lastIdArgumentName?: string - skipArgumentLimit?: number +interface AutoPaginationTransformConfig extends AutoPaginationOptions { + if: boolean + validateSchema: boolean } -const DEFAULTS: Required = { +const DEFAULTS: AutoPaginationTransformConfig = { if: true, validateSchema: true, - limitOfRecords: 1000, - firstArgumentName: 'first', - skipArgumentName: 'skip', - lastIdArgumentName: 'where.id_gte', - skipArgumentLimit: 5000, + ...DEFAULT_OPTIONS, } -const validateSchema = memoize2(function validateSchema( +export const validateSchema = memoize2(function validateSchema( schema: GraphQLSchema, config: Required, ): void { @@ -71,8 +58,8 @@ const getQueryFieldNames = memoize1(function getQueryFields(schema: GraphQLSchem }) */ export default class AutoPaginationTransform implements MeshTransform { - public config: Required - constructor({ config }: { config?: AutoPaginationTransformConfig } = {}) { + public config: AutoPaginationTransformConfig + constructor({ config }: { config?: Partial } = {}) { this.config = { ...DEFAULTS, ...config } if (this.config.if === false) { return {} as AutoPaginationTransform @@ -137,138 +124,12 @@ export default class AutoPaginationTransform implements MeshTransform { } transformRequest(executionRequest: ExecutionRequest, delegationContext: DelegationContext): ExecutionRequest { - const document = visit(executionRequest.document, { - SelectionSet: { - leave: (selectionSet) => { - const newSelections: SelectionNode[] = [] - for (const selectionNode of selectionSet.selections) { - if ( - selectionNode.kind === Kind.FIELD && - !selectionNode.name.value.startsWith('_') && - !selectionNode.arguments?.some((argNode) => argNode.name.value === 'id') - ) { - const existingArgs: ArgumentNode[] = [] - let firstArg: ArgumentNode | undefined - let skipArg: ArgumentNode | undefined - for (const existingArg of selectionNode.arguments ?? []) { - if (existingArg.name.value === this.config.firstArgumentName) { - firstArg = existingArg - } else if (existingArg.name.value === this.config.skipArgumentName) { - skipArg = existingArg - } else { - existingArgs.push(existingArg) - } - } - if (firstArg != null) { - let numberOfTotalRecords: number | undefined - if (firstArg.value.kind === Kind.INT) { - numberOfTotalRecords = parseInt(firstArg.value.value) - } else if (firstArg.value.kind === Kind.VARIABLE) { - numberOfTotalRecords = executionRequest.variables?.[firstArg.value.name.value] - delete executionRequest.variables?.[firstArg.value.name.value] - } - if (numberOfTotalRecords != null && numberOfTotalRecords > this.config.limitOfRecords) { - const fieldName = selectionNode.name.value - const aliasName = selectionNode.alias?.value || fieldName - let initialSkip = 0 - if (skipArg?.value?.kind === Kind.INT) { - initialSkip = parseInt(skipArg.value.value) - } else if (skipArg?.value?.kind === Kind.VARIABLE) { - initialSkip = executionRequest.variables?.[skipArg.value.name.value] - delete executionRequest.variables?.[skipArg.value.name.value] - } - let skip: number - for ( - skip = initialSkip; - numberOfTotalRecords - skip + initialSkip > 0; - skip += this.config.limitOfRecords - ) { - newSelections.push({ - ...selectionNode, - alias: { - kind: Kind.NAME, - value: `splitted_${skip}_${aliasName}`, - }, - arguments: [ - ...existingArgs, - { - kind: Kind.ARGUMENT, - name: { - kind: Kind.NAME, - value: this.config.firstArgumentName, - }, - value: { - kind: Kind.INT, - value: Math.min( - numberOfTotalRecords - skip + initialSkip, - this.config.limitOfRecords, - ).toString(), - }, - }, - { - kind: Kind.ARGUMENT, - name: { - kind: Kind.NAME, - value: this.config.skipArgumentName, - }, - value: { - kind: Kind.INT, - value: skip.toString(), - }, - }, - ], - }) - } - continue - } - } - } - newSelections.push(selectionNode) - } - return { - ...selectionSet, - selections: newSelections, - } - }, - }, - }) - delete delegationContext.args - return { - ...executionRequest, - document, - } + return transformExecutionRequest(executionRequest, this.config, delegationContext) } transformResult(originalResult: ExecutionResult): ExecutionResult { - if (originalResult.data != null) { - return { - ...originalResult, - data: mergeSplittedResults(originalResult.data), - } - } - return originalResult + return transformExecutionResponse(originalResult) } } -function mergeSplittedResults(originalData: any): any { - if (originalData != null && typeof originalData === 'object') { - if (Array.isArray(originalData)) { - return originalData.map((record) => mergeSplittedResults(record)) - } - const finalData: any = {} - for (const fullAliasName in originalData) { - if (fullAliasName.startsWith('splitted_')) { - const [, , ...rest] = fullAliasName.split('_') - const aliasName = rest.join('_') - finalData[aliasName] = finalData[aliasName] || [] - for (const record of originalData[fullAliasName]) { - finalData[aliasName].push(mergeSplittedResults(record)) - } - } else { - finalData[fullAliasName] = mergeSplittedResults(originalData[fullAliasName]) - } - } - return finalData - } - return originalData -} +export { useAutoPagination } from './plugin.js' diff --git a/packages/auto-pagination/src/plugin.ts b/packages/auto-pagination/src/plugin.ts new file mode 100644 index 00000000..a9fbbbb5 --- /dev/null +++ b/packages/auto-pagination/src/plugin.ts @@ -0,0 +1,28 @@ +import { isAsyncIterable, mapAsyncIterator } from '@graphql-tools/utils' +import { + AutoPaginationOptions, + DEFAULT_OPTIONS, + transformExecutionRequest, + transformExecutionResponse, +} from './shared.js' +import { FusiongraphPlugin } from '@graphql-mesh/fusion-runtime' + +export function useAutoPagination(opts: Partial = {}): FusiongraphPlugin { + const config: AutoPaginationOptions = { + ...DEFAULT_OPTIONS, + ...opts, + } + return { + onSubgraphExecute({ executionRequest, setExecutionRequest }) { + setExecutionRequest(transformExecutionRequest(executionRequest, config)) + return ({ result, setResult }) => { + if (isAsyncIterable(result)) { + const iterator = result[Symbol.asyncIterator]() + setResult(mapAsyncIterator(iterator, transformExecutionResponse)) + } else { + setResult(transformExecutionResponse(result)) + } + } + }, + } +} diff --git a/packages/auto-pagination/src/shared.ts b/packages/auto-pagination/src/shared.ts new file mode 100644 index 00000000..f8d1b441 --- /dev/null +++ b/packages/auto-pagination/src/shared.ts @@ -0,0 +1,161 @@ +import { DelegationContext } from "@graphql-tools/delegate" +import { ExecutionRequest, ExecutionResult } from "@graphql-tools/utils" +import { visit, SelectionNode, Kind, ArgumentNode } from "graphql" + +export interface AutoPaginationOptions { + limitOfRecords: number + firstArgumentName: string + skipArgumentName: string + lastIdArgumentName: string + skipArgumentLimit: number +} + +export const DEFAULT_OPTIONS: AutoPaginationOptions = { + limitOfRecords: 1000, + firstArgumentName: 'first', + skipArgumentName: 'skip', + lastIdArgumentName: 'where.id_gte', + skipArgumentLimit: 5000, +}; + +export function transformExecutionRequest( + executionRequest: ExecutionRequest, + options: AutoPaginationOptions, + delegationContext?: DelegationContext, +): ExecutionRequest { + const document = visit(executionRequest.document, { + SelectionSet: { + leave: (selectionSet) => { + const newSelections: SelectionNode[] = [] + for (const selectionNode of selectionSet.selections) { + if ( + selectionNode.kind === Kind.FIELD && + !selectionNode.name.value.startsWith('_') && + !selectionNode.arguments?.some((argNode) => argNode.name.value === 'id') + ) { + const existingArgs: ArgumentNode[] = [] + let firstArg: ArgumentNode | undefined + let skipArg: ArgumentNode | undefined + for (const existingArg of selectionNode.arguments ?? []) { + if (existingArg.name.value === options.firstArgumentName) { + firstArg = existingArg + } else if (existingArg.name.value === options.skipArgumentName) { + skipArg = existingArg + } else { + existingArgs.push(existingArg) + } + } + if (firstArg != null) { + let numberOfTotalRecords: number | undefined + if (firstArg.value.kind === Kind.INT) { + numberOfTotalRecords = parseInt(firstArg.value.value) + } else if (firstArg.value.kind === Kind.VARIABLE) { + numberOfTotalRecords = executionRequest.variables?.[firstArg.value.name.value] + delete executionRequest.variables?.[firstArg.value.name.value] + } + if (numberOfTotalRecords != null && numberOfTotalRecords > options.limitOfRecords) { + const fieldName = selectionNode.name.value + const aliasName = selectionNode.alias?.value || fieldName + let initialSkip = 0 + if (skipArg?.value?.kind === Kind.INT) { + initialSkip = parseInt(skipArg.value.value) + } else if (skipArg?.value?.kind === Kind.VARIABLE) { + initialSkip = executionRequest.variables?.[skipArg.value.name.value] + delete executionRequest.variables?.[skipArg.value.name.value] + } + let skip: number + for ( + skip = initialSkip; + numberOfTotalRecords - skip + initialSkip > 0; + skip += options.limitOfRecords + ) { + newSelections.push({ + ...selectionNode, + alias: { + kind: Kind.NAME, + value: `splitted_${skip}_${aliasName}`, + }, + arguments: [ + ...existingArgs, + { + kind: Kind.ARGUMENT, + name: { + kind: Kind.NAME, + value: options.firstArgumentName, + }, + value: { + kind: Kind.INT, + value: Math.min( + numberOfTotalRecords - skip + initialSkip, + options.limitOfRecords, + ).toString(), + }, + }, + { + kind: Kind.ARGUMENT, + name: { + kind: Kind.NAME, + value: options.skipArgumentName, + }, + value: { + kind: Kind.INT, + value: skip.toString(), + }, + }, + ], + }) + } + continue + } + } + } + newSelections.push(selectionNode) + } + return { + ...selectionSet, + selections: newSelections, + } + }, + }, + }) + if (delegationContext) { + delete delegationContext.args + } + return { + ...executionRequest, + document, + } +} + +export function transformExecutionResponse(originalResult: ExecutionResult) { + if (originalResult.data != null) { + return { + ...originalResult, + data: mergeSplittedResults(originalResult.data), + } + } + return originalResult +} + +function mergeSplittedResults(originalData: any): any { + if (originalData != null && typeof originalData === 'object') { + if (Array.isArray(originalData)) { + return originalData.map((record) => mergeSplittedResults(record)) + } + const finalData: any = {} + for (const fullAliasName in originalData) { + if (fullAliasName.startsWith('splitted_')) { + const [, , ...rest] = fullAliasName.split('_') + const aliasName = rest.join('_') + finalData[aliasName] = finalData[aliasName] || [] + for (const record of originalData[fullAliasName]) { + finalData[aliasName].push(mergeSplittedResults(record)) + } + } else { + finalData[fullAliasName] = mergeSplittedResults(originalData[fullAliasName]) + } + } + return finalData + } + return originalData +} \ No newline at end of file diff --git a/packages/auto-type-merging/package.json b/packages/auto-type-merging/package.json index 3cb5ab89..2f0fd8d9 100644 --- a/packages/auto-type-merging/package.json +++ b/packages/auto-type-merging/package.json @@ -47,6 +47,7 @@ }, "dependencies": { "@graphql-mesh/transform-type-merging": "^0.94.0", + "@graphql-mesh/fusion-runtime": "^0.2.5", "tslib": "^2.4.0" }, "peerDependencies": { diff --git a/packages/block-tracking/__tests__/block-tracking.test.ts b/packages/block-tracking/__tests__/block-tracking.test.ts index b26817b3..e93b0c32 100644 --- a/packages/block-tracking/__tests__/block-tracking.test.ts +++ b/packages/block-tracking/__tests__/block-tracking.test.ts @@ -2,8 +2,11 @@ import { makeExecutableSchema } from '@graphql-tools/schema' import { wrapSchema } from '@graphql-tools/wrap' import { Executor } from '@graphql-tools/utils' import { createDefaultExecutor } from '@graphql-tools/delegate' -import BlockTrackingTransform from '../src/index.js' +import BlockTrackingTransform, { useBlockTracking } from '../src/index.js' import { DocumentNode, execute, GraphQLSchema, parse, print } from 'graphql' +import { getExecutor } from '@graphprotocol/client-runtime' +import { createBatchingExecutor } from '@graphql-tools/batch-execute' +import { BlockTrackingConfig } from '../src/shared.js' describe('Block Tracking', () => { let schema: GraphQLSchema @@ -12,7 +15,9 @@ describe('Block Tracking', () => { let documents: DocumentNode[] let transform: BlockTrackingTransform let cnt: number + let plugin: ReturnType beforeEach(() => { + plugin = useBlockTracking() cnt = 0 schema = makeExecutableSchema({ typeDefs: /* GraphQL */ ` @@ -74,511 +79,506 @@ describe('Block Tracking', () => { transforms: [transform], }) }) - it('should add _meta field to query operations', async () => { - const query = /* GraphQL */ ` - { - protocol(id: "0") { - paused - } - } - ` - await execute({ - schema: wrappedSchema, - document: parse(query), - }) - const expectedQuery = /* GraphQL */ ` - { - protocol(id: "0") { - paused - } - _meta { - block { - number + describe('Schema Validation', () => { + it('should check if there is "_Meta_" type in the schema', () => { + const schema = makeExecutableSchema({ + typeDefs: /* GraphQL */ ` + type Query { + foo: String } - } - } - ` - expect(documents).toHaveLength(1) - expect(print(documents[0])).toEqual(print(parse(expectedQuery, { noLocation: true }))) - }) - it('should not add _meta to the result if not exists in the actual query', async () => { - const query = /* GraphQL */ ` - { - protocol(id: "0") { - paused - } - } - ` - const result = await execute({ - schema: wrappedSchema, - document: parse(query), - }) - expect(result).toEqual({ - data: { - protocol: { - paused: false, - }, - }, - }) - }) - it('should add minBlock to the existing query if available', async () => { - const query = /* GraphQL */ ` - { - protocol(id: "0") { - paused - } - } - ` - const result = await execute({ - schema: wrappedSchema, - document: parse(query), - }) - expect(result).toEqual({ - data: { - protocol: { - paused: false, - }, - }, - }) - const secondResult = await execute({ - schema: wrappedSchema, - document: parse(query), - }) - expect(secondResult).toEqual({ - data: { - protocol: { - paused: true, - }, - }, - }) - expect(documents).toHaveLength(2) - const expectedQuery = /* GraphQL */ ` - { - protocol(id: "0", block: { number_gte: 0 }) { - paused - } - _meta { - block { - number + `, + }) + expect(() => { + wrapSchema({ + schema, + transforms: [new BlockTrackingTransform()], + }) + }).toThrowError(/Make sure you have a type named \"_Meta_\"/) + }) + it('should check if there is "_Meta_" type with a field named "block" in the schema', () => { + const schema = makeExecutableSchema({ + typeDefs: /* GraphQL */ ` + type Query { + foo: _Meta_ } - } - } - ` - expect(print(documents[1])).toEqual(print(parse(expectedQuery, { noLocation: true }))) - }) - it('should take minBlock from the result only if it is more than the existing kept value', async () => { - const query = /* GraphQL */ ` - { - protocol(id: "0") { - paused - } - } - ` - cnt = 3 - const result = await execute({ - schema: wrappedSchema, - document: parse(query), - }) - expect(result).toEqual({ - data: { - protocol: { - paused: false, - }, - }, - }) - cnt = 1 - const secondResult = await execute({ - schema: wrappedSchema, - document: parse(query), - }) - expect(secondResult).toEqual({ - data: { - protocol: { - paused: true, - }, - }, - }) - expect(documents).toHaveLength(2) - const expectedQuery = /* GraphQL */ ` - { - protocol(id: "0", block: { number_gte: 3 }) { - paused - } - _meta { - block { - number + type _Meta_ { + foo: String } - } - } - ` - expect(print(documents[1])).toEqual(print(parse(expectedQuery, { noLocation: true }))) - }) - it('should skip schema validation if validateSchema is false', () => { - const schema = makeExecutableSchema({ - typeDefs: /* GraphQL */ ` - type Query { - foo: String - } - `, - }) - expect(() => { - wrapSchema({ - schema, - transforms: [ - new BlockTrackingTransform({ - config: { - validateSchema: false, - }, - }), - ], + `, }) - }).not.toThrow() - }) - it('should check if there is "_Meta_" type in the schema', () => { - const schema = makeExecutableSchema({ - typeDefs: /* GraphQL */ ` - type Query { - foo: String - } - `, - }) - expect(() => { - wrapSchema({ - schema, - transforms: [new BlockTrackingTransform()], + expect(() => { + wrapSchema({ + schema, + transforms: [new BlockTrackingTransform()], + }) + }).toThrowError(/Make sure you have a type named \"_Meta_\" with \"block\" field/) + }) + it('should check if there is "_Meta_" type with a field named "block" which returns an object in the schema', () => { + const schema = makeExecutableSchema({ + typeDefs: /* GraphQL */ ` + type Query { + foo: _Meta_ + } + type _Meta_ { + block: Int + } + `, }) - }).toThrowError(/Make sure you have a type named \"_Meta_\"/) - }) - it('should check if there is "_Meta_" type with a field named "block" in the schema', () => { - const schema = makeExecutableSchema({ - typeDefs: /* GraphQL */ ` - type Query { - foo: _Meta_ - } - type _Meta_ { - foo: String - } - `, - }) - expect(() => { - wrapSchema({ - schema, - transforms: [new BlockTrackingTransform()], + expect(() => { + wrapSchema({ + schema, + transforms: [new BlockTrackingTransform()], + }) + }).toThrowError(/Make sure you have a correct block type/) + }) + it('should check if there is "_Meta_" type with a field named "block" which returns an object type with "number" field in the schema', () => { + const schema = makeExecutableSchema({ + typeDefs: /* GraphQL */ ` + type Query { + foo: _Meta_ + } + type _Meta_ { + block: Block + } + type Block { + random: Int + } + `, }) - }).toThrowError(/Make sure you have a type named \"_Meta_\" with \"block\" field/) - }) - it('should check if there is "_Meta_" type with a field named "block" which returns an object in the schema', () => { - const schema = makeExecutableSchema({ - typeDefs: /* GraphQL */ ` - type Query { - foo: _Meta_ - } - type _Meta_ { - block: Int - } - `, - }) - expect(() => { - wrapSchema({ - schema, - transforms: [new BlockTrackingTransform()], + expect(() => { + wrapSchema({ + schema, + transforms: [new BlockTrackingTransform()], + }) + }).toThrowError(/Make sure you have a correct block type/) + }) + it('should check if there is "_meta" field in the root query type', () => { + const schema = makeExecutableSchema({ + typeDefs: /* GraphQL */ ` + type Query { + foo: String + } + type _Meta_ { + block: Block + } + type Block { + number: Int + } + `, }) - }).toThrowError(/Make sure you have a correct block type/) - }) - it('should check if there is "_Meta_" type with a field named "block" which returns an object type with "number" field in the schema', () => { - const schema = makeExecutableSchema({ - typeDefs: /* GraphQL */ ` - type Query { - foo: _Meta_ - } - type _Meta_ { - block: Block - } - type Block { - random: Int - } - `, - }) - expect(() => { - wrapSchema({ - schema, - transforms: [new BlockTrackingTransform()], + expect(() => { + wrapSchema({ + schema, + transforms: [new BlockTrackingTransform()], + }) + }).toThrowError(/Make sure you have a query type with \"_meta\" field/) + }) + it('should check if there is "_meta" field with the correct type in the root query type', () => { + const schema = makeExecutableSchema({ + typeDefs: /* GraphQL */ ` + type Query { + _meta: String + foo: String + } + type _Meta_ { + block: Block + } + type Block { + number: Int + } + `, }) - }).toThrowError(/Make sure you have a correct block type/) - }) - it('should check if there is "_meta" field in the root query type', () => { - const schema = makeExecutableSchema({ - typeDefs: /* GraphQL */ ` - type Query { - foo: String - } - type _Meta_ { - block: Block - } - type Block { - number: Int - } - `, - }) - expect(() => { - wrapSchema({ - schema, - transforms: [new BlockTrackingTransform()], + expect(() => { + wrapSchema({ + schema, + transforms: [new BlockTrackingTransform()], + }) + }).toThrowError(/Make sure you have a query type with \"_meta\" field with the correct/) + }) + it('should check if there are "block" arguments for every single field of the root query type', () => { + const schema = makeExecutableSchema({ + typeDefs: /* GraphQL */ ` + type Query { + _meta: _Meta_ + foo: String + } + type _Meta_ { + block: Block + } + type Block { + number: Int + } + `, }) - }).toThrowError(/Make sure you have a query type with \"_meta\" field/) - }) - it('should check if there is "_meta" field with the correct type in the root query type', () => { - const schema = makeExecutableSchema({ - typeDefs: /* GraphQL */ ` - type Query { - _meta: String - foo: String - } - type _Meta_ { - block: Block - } - type Block { - number: Int - } - `, - }) - expect(() => { - wrapSchema({ - schema, - transforms: [new BlockTrackingTransform()], + expect(() => { + wrapSchema({ + schema, + transforms: [new BlockTrackingTransform()], + }) + }).toThrowError(/Make sure you have query root fields with \"block\" argument/) + }) + it('should check if there are "block" arguments returning object type for every single field of the root query type', () => { + const schema = makeExecutableSchema({ + typeDefs: /* GraphQL */ ` + type Query { + _meta: _Meta_ + foo(block: Int): String + } + type _Meta_ { + block: Block + } + type Block { + number: Int + } + `, }) - }).toThrowError(/Make sure you have a query type with \"_meta\" field with the correct/) - }) - it('should check if there are "block" arguments for every single field of the root query type', () => { - const schema = makeExecutableSchema({ - typeDefs: /* GraphQL */ ` - type Query { - _meta: _Meta_ - foo: String - } - type _Meta_ { - block: Block - } - type Block { - number: Int - } - `, - }) - expect(() => { - wrapSchema({ - schema, - transforms: [new BlockTrackingTransform()], + expect(() => { + wrapSchema({ + schema, + transforms: [new BlockTrackingTransform()], + }) + }).toThrowError(/Make sure you have query root fields with \"block\" argument returning correct type/) + }) + it('should check if there are "block" arguments with "number" field for every single field of the root query type', () => { + const schema = makeExecutableSchema({ + typeDefs: /* GraphQL */ ` + type Query { + _meta: _Meta_ + foo(block: BlockInput): String + } + input BlockInput { + random: Int + } + type _Meta_ { + block: Block + } + type Block { + number: Int + } + `, }) - }).toThrowError(/Make sure you have query root fields with \"block\" argument/) - }) - it('should check if there are "block" arguments returning object type for every single field of the root query type', () => { - const schema = makeExecutableSchema({ - typeDefs: /* GraphQL */ ` - type Query { - _meta: _Meta_ - foo(block: Int): String - } - type _Meta_ { - block: Block - } - type Block { - number: Int - } - `, + expect(() => { + wrapSchema({ + schema, + transforms: [new BlockTrackingTransform()], + }) + }).toThrowError(/Make sure you have query root fields with \"block\" argument with \"number_gte\"/) }) - expect(() => { - wrapSchema({ - schema, - transforms: [new BlockTrackingTransform()], - }) - }).toThrowError(/Make sure you have query root fields with \"block\" argument returning correct type/) }) - it('should check if there are "block" arguments with "number" field for every single field of the root query type', () => { - const schema = makeExecutableSchema({ - typeDefs: /* GraphQL */ ` - type Query { - _meta: _Meta_ - foo(block: BlockInput): String - } - input BlockInput { - random: Int - } - type _Meta_ { - block: Block - } - type Block { - number: Int - } - `, - }) - expect(() => { - wrapSchema({ - schema, - transforms: [new BlockTrackingTransform()], + const TransformScenario = { + name: 'Transform', + execute(document: DocumentNode) { + return execute({ + schema: wrappedSchema, + document, }) - }).toThrowError(/Make sure you have query root fields with \"block\" argument with \"number_gte\"/) - }) - it('should not add _meta field to the query if operation name is ignored', async () => { - transform.config = { - ...transform.config, - ignoreOperationNames: ['Foo'], - } - const query = /* GraphQL */ ` - query Foo { - protocol(id: "0") { - paused - } - } - ` - await execute({ - schema: wrappedSchema, - document: parse(query), - }) - const expectedQuery = /* GraphQL */ ` - query Foo { - protocol(id: "0") { - paused - } - } - ` - expect(documents).toHaveLength(1) - expect(print(documents[0])).toEqual(print(parse(expectedQuery, { noLocation: true }))) - }) - it('should not add minBlock to the existing query even if it is available but operation name is ignored', async () => { - transform.config = { - ...transform.config, - ignoreOperationNames: ['Foo'], - } - const query = /* GraphQL */ ` - query Foo { - protocol(id: "0") { - paused - } - } - ` - const result = await execute({ - schema: wrappedSchema, - document: parse(query), - }) - expect(result).toEqual({ - data: { - protocol: { - paused: false, + }, + get config() { + return transform.config as BlockTrackingConfig + }, + set config(config: BlockTrackingConfig) { + transform.config = config as any + }, + } + const PluginScenario = { + name: 'Plugin', + async execute(document: DocumentNode) { + const supergraphExecutor = getExecutor({ + proxy: { + endpoint: 'http://localhost:4000', }, - }, - }) - const secondResult = await execute({ - schema: wrappedSchema, - document: parse(query), - }) - expect(secondResult).toEqual({ - data: { - protocol: { - paused: false, - }, - }, - }) - expect(documents).toHaveLength(2) - const expectedQuery = /* GraphQL */ ` - query Foo { - protocol(id: "0") { - paused - } - } - ` - expect(print(documents[1])).toEqual(print(parse(expectedQuery, { noLocation: true }))) - }) - it('should not add minBlock to the existing query even if it is available but field name is ignored', async () => { - transform.config = { - ...transform.config, - ignoreFieldNames: ['protocol'], - } - const query = /* GraphQL */ ` - query Foo { - protocol(id: "0") { - paused - } - } - ` - const result = await execute({ - schema: wrappedSchema, - document: parse(query), - }) - expect(result).toEqual({ - data: { - protocol: { - paused: false, + transport() { + return { + getSubgraphExecutor() { + return createBatchingExecutor(executor) + }, + } }, - }, - }) - const secondResult = await execute({ - schema: wrappedSchema, - document: parse(query), - }) - expect(secondResult).toEqual({ - data: { - protocol: { - paused: false, + plugins: () => { + return [plugin] }, - }, - }) - expect(documents).toHaveLength(2) - const expectedQuery = /* GraphQL */ ` - query Foo { - protocol(id: "0") { - paused - } - _meta { - block { - number + }) + return supergraphExecutor({ + document, + }) + }, + get config() { + return plugin.config as any + }, + set config(config: any) { + plugin.config = config + }, + } + ;[TransformScenario, PluginScenario].forEach((scenario) => { + describe(scenario.name, () => { + it('should add _meta field to query operations', async () => { + const query = /* GraphQL */ ` + { + protocol(id: "0") { + paused + } } - } - } - ` - expect(print(documents[1])).toEqual(print(parse(expectedQuery, { noLocation: true }))) - }) - it('should not add _meta field again if it is already added for another field if batching is enabled', async () => { - wrappedSchema = wrapSchema({ - schema, - batch: true, - executor, - transforms: [transform], - }) - const query = /* GraphQL */ ` - query Foo { - protocol_0: protocol(id: "0") { - paused - } - protocol_1: protocol(id: "1") { - paused - } - protocol_2: protocol(id: "2") { - paused - } - } - ` - await execute({ - schema: wrappedSchema, - document: parse(query), - }) - const expectedQuery = /* GraphQL */ ` - query Foo { - _0_protocol: protocol(id: "0") { - paused - } - _0__meta: _meta { - block { - number + ` + await scenario.execute(parse(query)) + const expectedQuery = /* GraphQL */ ` + { + protocol(id: "0") { + paused + } + _meta { + block { + number + } + } } - } - _1_protocol: protocol(id: "1") { - paused - } - _2_protocol: protocol(id: "2") { - paused - } - } - ` - expect(print(documents[0])).toEqual(print(parse(expectedQuery, { noLocation: true }))) + ` + expect(documents).toHaveLength(1) + expect(print(documents[0])).toEqual(print(parse(expectedQuery, { noLocation: true }))) + }) + it('should not add _meta to the result if not exists in the actual query', async () => { + const query = /* GraphQL */ ` + { + protocol(id: "0") { + paused + } + } + ` + const result = await scenario.execute(parse(query)) + expect(result).toEqual({ + data: { + protocol: { + paused: false, + }, + }, + }) + }) + it('should add minBlock to the existing query if available', async () => { + const query = /* GraphQL */ ` + { + protocol(id: "0") { + paused + } + } + ` + const result = await scenario.execute(parse(query)) + expect(result).toEqual({ + data: { + protocol: { + paused: false, + }, + }, + }) + const secondResult = await scenario.execute(parse(query)) + expect(secondResult).toEqual({ + data: { + protocol: { + paused: true, + }, + }, + }) + expect(documents).toHaveLength(2) + const expectedQuery = /* GraphQL */ ` + { + protocol(id: "0", block: { number_gte: 0 }) { + paused + } + _meta { + block { + number + } + } + } + ` + expect(print(documents[1])).toEqual(print(parse(expectedQuery, { noLocation: true }))) + }) + it('should take minBlock from the result only if it is more than the existing kept value', async () => { + const query = /* GraphQL */ ` + { + protocol(id: "0") { + paused + } + } + ` + cnt = 3 + const result = await scenario.execute(parse(query)) + expect(result).toEqual({ + data: { + protocol: { + paused: false, + }, + }, + }) + cnt = 1 + const secondResult = await scenario.execute(parse(query)) + expect(secondResult).toEqual({ + data: { + protocol: { + paused: true, + }, + }, + }) + expect(documents).toHaveLength(2) + const expectedQuery = /* GraphQL */ ` + { + protocol(id: "0", block: { number_gte: 3 }) { + paused + } + _meta { + block { + number + } + } + } + ` + expect(print(documents[1])).toEqual(print(parse(expectedQuery, { noLocation: true }))) + }) + it('should skip schema validation if validateSchema is false', () => { + const schema = makeExecutableSchema({ + typeDefs: /* GraphQL */ ` + type Query { + foo: String + } + `, + }) + expect(() => { + wrapSchema({ + schema, + transforms: [ + new BlockTrackingTransform({ + config: { + validateSchema: false, + }, + }), + ], + }) + }).not.toThrow() + }) + it('should not add _meta field to the query if operation name is ignored', async () => { + scenario.config = { + ignoreOperationNames: ['Foo'], + } + const query = /* GraphQL */ ` + query Foo { + protocol(id: "0") { + paused + } + } + ` + await scenario.execute(parse(query)) + const expectedQuery = /* GraphQL */ ` + query Foo { + protocol(id: "0") { + paused + } + } + ` + expect(documents).toHaveLength(1) + expect(print(documents[0])).toEqual(print(parse(expectedQuery, { noLocation: true }))) + }) + it('should not add minBlock to the existing query even if it is available but operation name is ignored', async () => { + scenario.config = { + ...scenario.config, + ignoreOperationNames: ['Foo'], + } + const query = /* GraphQL */ ` + query Foo { + protocol(id: "0") { + paused + } + } + ` + const result = await scenario.execute(parse(query)) + expect(result).toEqual({ + data: { + protocol: { + paused: false, + }, + }, + }) + const secondResult = await scenario.execute(parse(query)) + expect(secondResult).toEqual({ + data: { + protocol: { + paused: false, + }, + }, + }) + expect(documents).toHaveLength(2) + const expectedQuery = /* GraphQL */ ` + query Foo { + protocol(id: "0") { + paused + } + } + ` + expect(print(documents[1])).toEqual(print(parse(expectedQuery, { noLocation: true }))) + }) + it('should not add minBlock to the existing query even if it is available but field name is ignored', async () => { + scenario.config = { + ...scenario.config, + ignoreFieldNames: ['protocol'], + } + const query = /* GraphQL */ ` + query Foo { + protocol(id: "0") { + paused + } + } + ` + const result = await scenario.execute(parse(query)) + expect(result).toEqual({ + data: { + protocol: { + paused: false, + }, + }, + }) + const secondResult = await scenario.execute(parse(query)) + expect(secondResult).toEqual({ + data: { + protocol: { + paused: false, + }, + }, + }) + expect(documents).toHaveLength(2) + const expectedQuery = /* GraphQL */ ` + query Foo { + protocol(id: "0") { + paused + } + _meta { + block { + number + } + } + } + ` + expect(print(documents[1])).toEqual(print(parse(expectedQuery, { noLocation: true }))) + }) + it('should not add _meta field again if it is already added for another field if batching is enabled', async () => { + wrappedSchema = wrapSchema({ + schema, + batch: true, + executor, + transforms: [transform], + }) + const query = /* GraphQL */ ` + query Foo { + protocol_0: protocol(id: "0") { + paused + } + protocol_1: protocol(id: "1") { + paused + } + protocol_2: protocol(id: "2") { + paused + } + } + ` + await scenario.execute(parse(query)) + expect(print(documents[0]).split('_meta {').length).toBe(2) + }) + }) }) }) diff --git a/packages/block-tracking/package.json b/packages/block-tracking/package.json index 09824e0a..630c7c6b 100644 --- a/packages/block-tracking/package.json +++ b/packages/block-tracking/package.json @@ -47,7 +47,7 @@ }, "dependencies": { "@graphql-tools/utils": "^10.0.0", - "@graphql-mesh/fusion-runtime": "^0.2.0", + "@graphql-mesh/fusion-runtime": "^0.2.5", "tslib": "^2.4.0" }, "peerDependencies": { diff --git a/packages/block-tracking/src/plugin.ts b/packages/block-tracking/src/plugin.ts index e050555d..b9da029d 100644 --- a/packages/block-tracking/src/plugin.ts +++ b/packages/block-tracking/src/plugin.ts @@ -7,23 +7,35 @@ import { } from './shared.js' import { FusiongraphPlugin } from '@graphql-mesh/fusion-runtime' -export function useBlockTracking(configInput?: Partial): FusiongraphPlugin { - const config: BlockTrackingConfig = { +export function useBlockTracking( + configInput?: Partial, +): FusiongraphPlugin & { config: BlockTrackingConfig } { + let config: BlockTrackingConfig = { ...DEFAULT_CONFIG, ...configInput, } const minBlockMap = new Map() return { - onSubgraphExecute({ fusiongraph, subgraphName, executionRequest, setExecutionRequest }) { - setExecutionRequest( - transformExecutionRequest(executionRequest, config, fusiongraph, false, minBlockMap.get(subgraphName)), - ) + get config() { + return config + }, + set config(newConfig: BlockTrackingConfig) { + config = { + ...config, + ...newConfig, + } + }, + onSubgraphExecute({ subgraphName, executionRequest, setExecutionRequest }) { + setExecutionRequest(transformExecutionRequest(executionRequest, config, false, minBlockMap.get(subgraphName))) function handleResult(result: ExecutionResult) { const newBlockNumber = getNewBlockNumberFromExecutionResult(result, config) const currentMinBlockNumber = minBlockMap.get(subgraphName) if (newBlockNumber != null && (currentMinBlockNumber == null || newBlockNumber > currentMinBlockNumber)) { minBlockMap.set(subgraphName, newBlockNumber) } + if (result.data && config.metaRootFieldName in result.data) { + delete result.data[config.metaRootFieldName] + } } return ({ result }) => { if (isAsyncIterable(result)) { diff --git a/packages/block-tracking/src/shared.ts b/packages/block-tracking/src/shared.ts index bb23cbd4..ba024d69 100644 --- a/packages/block-tracking/src/shared.ts +++ b/packages/block-tracking/src/shared.ts @@ -1,5 +1,5 @@ -import { ExecutionResult, ExecutionRequest, memoize1 } from '@graphql-tools/utils' -import { GraphQLSchema, Kind, ObjectFieldNode, ObjectValueNode, OperationTypeNode, SelectionNode, visit } from 'graphql' +import { ExecutionResult, ExecutionRequest, memoize1, getOperationASTFromRequest } from '@graphql-tools/utils' +import { Kind, ObjectFieldNode, ObjectValueNode, OperationTypeNode, SelectionNode, visit } from 'graphql' export interface BlockTrackingConfig { ignoreOperationNames: string[] @@ -59,37 +59,36 @@ export const createMetaSelectionNode = memoize1(function createMetaSelectionNode } }) -const getQueryFieldNames = memoize1(function getQueryFields(schema: GraphQLSchema) { - const queryType = schema.getQueryType() - if (queryType == null) { - throw new Error(`Make sure you have a query type in this source before applying Block Tracking`) - } - return Object.keys(queryType.getFields()) -}) - const metaFieldAddedByContext = new WeakMap() +const GLOBAL_CONTEXT_IDENTIFIER = {} function getRequestIdentifier(executionRequest: ExecutionRequest): any { - return executionRequest.context ?? executionRequest.rootValue ?? executionRequest.info?.operation + return ( + executionRequest.context ?? + executionRequest.rootValue ?? + executionRequest.info?.operation ?? + GLOBAL_CONTEXT_IDENTIFIER + ) } export function transformExecutionRequest( executionRequest: ExecutionRequest, config: BlockTrackingConfig, - transformedSchema: GraphQLSchema, batch = false, minBlock?: number, ): ExecutionRequest { - if (executionRequest.operationName != null && config.ignoreOperationNames.includes(executionRequest.operationName)) { + const operationAst = getOperationASTFromRequest(executionRequest) + const operationName = operationAst?.name?.value + if (operationName != null && config.ignoreOperationNames.includes(operationName)) { return executionRequest } const document = visit(executionRequest.document, { Field: { - leave: (fieldSelectionNode) => { + leave: (fieldSelectionNode, _key, _parent, path) => { if ( minBlock != null && !fieldSelectionNode.name.value.startsWith('_') && !config.ignoreFieldNames.includes(fieldSelectionNode.name.value) && - getQueryFieldNames(transformedSchema).includes(fieldSelectionNode.name.value) + path.length < 7 ) { const argNodes = fieldSelectionNode.arguments?.filter((argument) => argument.name.value !== config.blockArgumentName) || [] diff --git a/packages/block-tracking/src/transform.ts b/packages/block-tracking/src/transform.ts index 885b0bed..9364b469 100644 --- a/packages/block-tracking/src/transform.ts +++ b/packages/block-tracking/src/transform.ts @@ -20,7 +20,7 @@ const DEFAULTS: BlockTrackingTransformConfig = { ...DEFAULT_CONFIG, } -const validateSchema = memoize2(function validateSchema(schema: GraphQLSchema, config: BlockTrackingConfig) { +export const validateSchema = memoize2(function validateSchema(schema: GraphQLSchema, config: BlockTrackingConfig) { const metaType = schema.getType(config.metaTypeName) if (metaType == null || !isObjectType(metaType)) { throw new Error( @@ -112,7 +112,6 @@ export class BlockTrackingTransform implements Transform { return transformExecutionRequest( executionRequest, this.config, - delegationContext.transformedSchema, delegationContext.subschemaConfig?.batch, schemaMinBlockMap.get(delegationContext.subschema), ) diff --git a/packages/compose-cli/package.json b/packages/compose-cli/package.json new file mode 100644 index 00000000..67062e8b --- /dev/null +++ b/packages/compose-cli/package.json @@ -0,0 +1,67 @@ +{ + "name": "@graphprotocol/client-compose-cli", + "version": "0.0.0", + "description": "", + "repository": { + "type": "git", + "url": "https://github.com/graphprotocol/graph-client.git", + "directory": "packages/compose-cli" + }, + "scripts": { + "prepack": "bob prepack", + "check": "tsc --pretty --noEmit" + }, + "keywords": [ + "thegraph", + "graphql", + "client" + ], + "license": "MIT", + "bin": { + "graphclient-compose": "./dist/cjs/bin.js" + }, + "sideEffects": false, + "main": "dist/cjs/index.js", + "module": "dist/esm/index.js", + "typings": "dist/typings/index.d.ts", + "typescript": { + "definition": "dist/typings/index.d.ts" + }, + "exports": { + ".": { + "require": { + "types": "./dist/typings/index.d.cts", + "default": "./dist/cjs/index.js" + }, + "import": { + "types": "./dist/typings/index.d.ts", + "default": "./dist/esm/index.js" + }, + "default": { + "types": "./dist/typings/index.d.ts", + "default": "./dist/esm/index.js" + } + }, + "./package.json": "./package.json" + }, + "publishConfig": { + "directory": "dist", + "access": "public" + }, + "dependencies": { + "@graphql-mesh/compose-cli": "^0.2.4", + "@graphql-tools/utils": "^10.1.0", + "pluralize": "^8.0.0", + "tslib": "^2.4.0" + }, + "devDependencies": { + "graphql": "^16.6.0" + }, + "peerDependencies": { + "graphql": "^15.2.0 || ^16.0.0" + }, + "type": "module", + "engines": { + "node": ">=16.0.0" + } +} diff --git a/packages/compose-cli/src/bin.ts b/packages/compose-cli/src/bin.ts new file mode 100644 index 00000000..6dde843a --- /dev/null +++ b/packages/compose-cli/src/bin.ts @@ -0,0 +1,7 @@ +import 'ts-node/register'; +import { runComposeCLI } from "./index.js"; + +runComposeCLI().catch(e => { + console.error(e); + process.exit(1); +}) \ No newline at end of file diff --git a/packages/compose-cli/src/index.ts b/packages/compose-cli/src/index.ts new file mode 100644 index 00000000..e5f9ab79 --- /dev/null +++ b/packages/compose-cli/src/index.ts @@ -0,0 +1,17 @@ +import { runComposeCLI } from '@graphql-mesh/compose-cli' + +function runGraphClientComposeCLI() { + return runComposeCLI({ + defaultConfigFileName: 'graphclient.config.ts', + defaultFusiongraphFileName: './fusiongraph.ts', + productName: 'GraphClient Compose CLI', + }) +} + +export { + defineConfig, + loadGraphQLHTTPSubgraph, + createRenameTypeTransform, + createRenameFieldTransform, +} from '@graphql-mesh/compose-cli' +export { runGraphClientComposeCLI as runComposeCLI } diff --git a/packages/runtime/package.json b/packages/runtime/package.json new file mode 100644 index 00000000..26d3964c --- /dev/null +++ b/packages/runtime/package.json @@ -0,0 +1,65 @@ +{ + "name": "@graphprotocol/client-runtime", + "version": "0.0.0", + "description": "", + "repository": { + "type": "git", + "url": "https://github.com/graphprotocol/graph-client.git", + "directory": "packages/runtime" + }, + "scripts": { + "prepack": "bob prepack", + "check": "tsc --pretty --noEmit" + }, + "keywords": [ + "thegraph", + "graphql", + "client" + ], + "license": "MIT", + "sideEffects": false, + "main": "dist/cjs/index.js", + "module": "dist/esm/index.js", + "typings": "dist/typings/index.d.ts", + "typescript": { + "definition": "dist/typings/index.d.ts" + }, + "exports": { + ".": { + "require": { + "types": "./dist/typings/index.d.cts", + "default": "./dist/cjs/index.js" + }, + "import": { + "types": "./dist/typings/index.d.ts", + "default": "./dist/esm/index.js" + }, + "default": { + "types": "./dist/typings/index.d.ts", + "default": "./dist/esm/index.js" + } + }, + "./package.json": "./package.json" + }, + "publishConfig": { + "directory": "dist", + "access": "public" + }, + "dependencies": { + "@graphprotocol/client-auto-pagination": "^2.0.0", + "@graphprotocol/client-block-tracking": "^2.0.0", + "@graphprotocol/client-polling-live": "^2.0.0", + "@graphql-mesh/serve-runtime": "^0.2.7", + "@graphql-mesh/fusion-runtime": "^0.2.7" + }, + "devDependencies": { + "graphql": "^16.6.0" + }, + "peerDependencies": { + "graphql": "^15.2.0 || ^16.0.0" + }, + "type": "module", + "engines": { + "node": ">=16.0.0" + } +} diff --git a/packages/runtime/src/index.ts b/packages/runtime/src/index.ts new file mode 100644 index 00000000..e61fbbc2 --- /dev/null +++ b/packages/runtime/src/index.ts @@ -0,0 +1,46 @@ +import { createServeRuntime as defaultCreateServeRuntime, getProxyExecutor } from '@graphql-mesh/serve-runtime' +import { TransportsOption, getExecutorForFusiongraph } from '@graphql-mesh/fusion-runtime' +import { getSubgraphExecutor } from '@graphql-mesh/transport-http' +import { useAutoPagination } from '@graphprotocol/client-auto-pagination' +import { useBlockTracking } from '@graphprotocol/client-block-tracking' +import usePollingLive from '@graphprotocol/client-polling-live' +import { Executor } from '@graphql-tools/utils' + +export const DEFAULT_TRANSPORTS_CONFIG = { + http: { getSubgraphExecutor } as any, +} as TransportsOption + +export const DEFAULT_PLUGINS = [useAutoPagination(), useBlockTracking(), usePollingLive()] + +export function getExecutor( + opts: Parameters[0] | Parameters[0], + ctx?: any, +): Executor { + if ('proxy' in opts) { + return getProxyExecutor( + { + plugins: () => DEFAULT_PLUGINS as any, + ...opts, + }, + ctx, + ) + } + const { fusiongraphExecutor } = getExecutorForFusiongraph({ + transports: DEFAULT_TRANSPORTS_CONFIG, + plugins: DEFAULT_PLUGINS as any, + ...opts, + }) + return fusiongraphExecutor +} + +export function createServeRuntime(...args: Parameters) { + const [opts, ...rest] = args + return defaultCreateServeRuntime( + { + transports: DEFAULT_TRANSPORTS_CONFIG, + plugins: () => DEFAULT_PLUGINS, + ...opts, + }, + ...rest, + ) +} diff --git a/packages/serve-cli/package.json b/packages/serve-cli/package.json new file mode 100644 index 00000000..dddee5f3 --- /dev/null +++ b/packages/serve-cli/package.json @@ -0,0 +1,66 @@ +{ + "name": "@graphprotocol/client-serve-cli", + "version": "0.0.0", + "description": "", + "repository": { + "type": "git", + "url": "https://github.com/graphprotocol/graph-client.git", + "directory": "packages/serve-cli" + }, + "scripts": { + "prepack": "bob prepack", + "check": "tsc --pretty --noEmit" + }, + "keywords": [ + "thegraph", + "graphql", + "client" + ], + "license": "MIT", + "bin": { + "graphclient-serve": "./dist/cjs/bin.js" + }, + "sideEffects": false, + "main": "dist/cjs/index.js", + "module": "dist/esm/index.js", + "typings": "dist/typings/index.d.ts", + "typescript": { + "definition": "dist/typings/index.d.ts" + }, + "exports": { + ".": { + "require": { + "types": "./dist/typings/index.d.cts", + "default": "./dist/cjs/index.js" + }, + "import": { + "types": "./dist/typings/index.d.ts", + "default": "./dist/esm/index.js" + }, + "default": { + "types": "./dist/typings/index.d.ts", + "default": "./dist/esm/index.js" + } + }, + "./package.json": "./package.json" + }, + "publishConfig": { + "directory": "dist", + "access": "public" + }, + "dependencies": { + "@graphql-mesh/serve-cli": "^0.3.7", + "@graphprotocol/client-runtime": "^0.0.0", + "tslib": "^2.4.0" + }, + "devDependencies": { + "graphql": "^16.6.0" + }, + "peerDependencies": { + "graphql": "^15.2.0 || ^16.0.0" + }, + "type": "module", + "engines": { + "node": ">=16.0.0" + } +} diff --git a/packages/serve-cli/src/bin.ts b/packages/serve-cli/src/bin.ts new file mode 100644 index 00000000..e7272d15 --- /dev/null +++ b/packages/serve-cli/src/bin.ts @@ -0,0 +1,7 @@ +import 'ts-node/register'; +import { runServeCLI } from "./index.js"; + +runServeCLI().catch(e => { + console.error(e); + process.exit(1); +}) \ No newline at end of file diff --git a/packages/serve-cli/src/index.ts b/packages/serve-cli/src/index.ts new file mode 100644 index 00000000..a033b845 --- /dev/null +++ b/packages/serve-cli/src/index.ts @@ -0,0 +1,18 @@ +import { DEFAULT_PLUGINS } from '@graphprotocol/client-runtime' +import { runServeCLI } from '@graphql-mesh/serve-cli' +import { join } from 'path' + +function runGraphClientServeCLI() { + return runServeCLI({ + defaultConfigFileName: 'graphclient.config.ts', + defaultConfig: { + fusiongraph: join(process.cwd(), 'fusiongraph.ts'), + plugins: () => DEFAULT_PLUGINS, + }, + productName: 'GraphClient', + }) +} + +export { defineConfig } from '@graphql-mesh/serve-cli' + +export { runGraphClientServeCLI as runServeCLI } diff --git a/yarn.lock b/yarn.lock index d0446537..b4da97c4 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1801,9 +1801,24 @@ tsconfig-paths "^4.2.0" tslib "^2.4.0" typescript "^5.0.4" - uWebSockets.js "github:uNetworking/uWebSockets.js#v20.30.0" + uWebSockets.js uNetworking/uWebSockets.js#v20.30.0 yargs "^17.7.1" +"@graphql-mesh/compose-cli@^0.2.4": + version "0.2.4" + resolved "https://registry.yarnpkg.com/@graphql-mesh/compose-cli/-/compose-cli-0.2.4.tgz#e89a1765d8fdd96cff4b11c6122cd9b0a5f828cf" + integrity sha512-rrSlsKNfytuOiQz8pikBNmmjTdxzNgg69bGxA0AnNOmueIhfyF5tUShjmd+99BwqfwEkyRtAIED+IGFgHF5mNw== + dependencies: + "@graphql-mesh/fusion-composition" "^0.0.2" + "@graphql-mesh/utils" "^0.97.4" + "@graphql-tools/graphql-file-loader" "8.0.1" + "@graphql-tools/load" "^8.0.1" + "@graphql-tools/utils" "^10.0.8" + "@whatwg-node/fetch" "^0.9.14" + dotenv "^16.3.1" + spinnies "^0.5.1" + ts-node "^10.9.2" + "@graphql-mesh/config@^0.95.0": version "0.95.0" resolved "https://registry.yarnpkg.com/@graphql-mesh/config/-/config-0.95.0.tgz#5373203b36d54533bace1d9a2a2873fb9d7cec50" @@ -1822,17 +1837,30 @@ param-case "^3.0.4" pascal-case "^3.1.2" -"@graphql-mesh/cross-helpers@^0.4.0": +"@graphql-mesh/cross-helpers@^0.4.0", "@graphql-mesh/cross-helpers@^0.4.1": version "0.4.1" resolved "https://registry.yarnpkg.com/@graphql-mesh/cross-helpers/-/cross-helpers-0.4.1.tgz#bae978cb7ee09943666c18c88e81c87d644dfa6b" integrity sha512-NkLzFuY72tmmKO7gKWoDzoYcRVf3lLoCdlw30fSNKFKEWDAV3Tyh4v0fPvU3SEmoTJio7v0TIYZqtVt3dBBDFw== dependencies: path-browserify "1.0.1" -"@graphql-mesh/fusion-execution@^0.0.1": - version "0.0.1" - resolved "https://registry.yarnpkg.com/@graphql-mesh/fusion-execution/-/fusion-execution-0.0.1.tgz#80b5b2860f211a3110e7772ea34818946a27ace5" - integrity sha512-2jv7+4LtSyEakot5fMJVV1ywUeXiZwl24A0H2jf4Qsdh/v6YDjlV/1LUv6yUA2OJIf8ZP0mq1nTUW/ECz3fAMw== +"@graphql-mesh/fusion-composition@^0.0.2": + version "0.0.2" + resolved "https://registry.yarnpkg.com/@graphql-mesh/fusion-composition/-/fusion-composition-0.0.2.tgz#acd8b536617025cea8d3c6921c636081c57fbd5d" + integrity sha512-GZCL2WlVdULom5GIP0j/nXWa7YVq5C1lQuX4wHNsfL9o0hxMxYpRfWmim2OwY8mu4GhVMKLp/K2f81SvUUg9Kg== + dependencies: + "@graphql-tools/schema" "^10.0.2" + "@graphql-tools/utils" "^10.0.10" + change-case "^4.1.2" + pascal-case "^3.0.0" + pluralize "^8.0.0" + snake-case "^3.0.0" + tslib "^2.4.0" + +"@graphql-mesh/fusion-execution@^0.0.2": + version "0.0.2" + resolved "https://registry.yarnpkg.com/@graphql-mesh/fusion-execution/-/fusion-execution-0.0.2.tgz#ee455b0dd9f29c12a076c732b4da72456cd60831" + integrity sha512-Z9+ijeEb5hUHonGqWkUvNIigLAdh3ZNUfS6baYCbGOtArGX+zfg/VfXK/3KSK8btHZJSDdSXi4L1iXQKTeithg== dependencies: "@graphql-tools/executor-graphql-ws" "^1.1.0" "@graphql-tools/utils" "^10.0.8" @@ -1841,15 +1869,51 @@ lodash "^4.17.21" tslib "^2.4.0" -"@graphql-mesh/fusion-runtime@^0.2.0": - version "0.2.0" - resolved "https://registry.yarnpkg.com/@graphql-mesh/fusion-runtime/-/fusion-runtime-0.2.0.tgz#644357e840dd1c0ac34ddaf0a7c76cb9a44d75c7" - integrity sha512-f0SS6eEX7NFXRn+BxfLT/Q/O8XzHOxo6Ifghp6SMG5vm+ftc6xqe0UycMfku1/w9wTf8d4R3YG6DMTjgbXoGuQ== +"@graphql-mesh/fusion-federation@^0.0.1": + version "0.0.1" + resolved "https://registry.yarnpkg.com/@graphql-mesh/fusion-federation/-/fusion-federation-0.0.1.tgz#71dfee9ab5508b3e36dfd6971f08b91fc87c50bb" + integrity sha512-feAM/6csZdP53tRjQWSzKksm8pURZ2YD15Whbz2ZcM8QQQEjPz4Fzy4BwdulHQJajGUiQFAnYpYRCiwwUqI8jw== dependencies: - "@graphql-mesh/fusion-execution" "^0.0.1" - "@graphql-mesh/runtime" "^0.98.0" - "@graphql-mesh/transport-common" "^0.1.0" - "@graphql-mesh/utils" "^0.97.0" + "@graphql-tools/utils" "^10.0.10" + tslib "^2.4.0" + +"@graphql-mesh/fusion-runtime@^0.2.5": + version "0.2.5" + resolved "https://registry.yarnpkg.com/@graphql-mesh/fusion-runtime/-/fusion-runtime-0.2.5.tgz#173a59ed6be95a488370034636e25bc838873875" + integrity sha512-Cy6MC60RALNHQ3hDz08Qu2qrboD+0RiFor47M6elBvR+dfHdERT8CWoleRk3PZnCKA9F09SzKgoA1/vt54dHog== + dependencies: + "@graphql-mesh/fusion-execution" "^0.0.2" + "@graphql-mesh/runtime" "^0.98.4" + "@graphql-mesh/transport-common" "^0.1.4" + "@graphql-mesh/utils" "^0.97.4" + "@graphql-tools/stitch" "^9.0.3" + "@graphql-tools/utils" "^10.1.0" + graphql-yoga "^5.1.1" + tslib "^2.4.0" + +"@graphql-mesh/fusion-runtime@^0.2.6": + version "0.2.6" + resolved "https://registry.yarnpkg.com/@graphql-mesh/fusion-runtime/-/fusion-runtime-0.2.6.tgz#a8d759f4067d5d762a24707da45125e7d0540688" + integrity sha512-o0pYb6YYjeayg9bnJlhWyMGE/WF49DOuiMa/WYl7R/M+hkbCW8AEMGpZ/eEfh6yKyKCtWUgsE8pDVM3yz1x8IQ== + dependencies: + "@graphql-mesh/fusion-execution" "^0.0.2" + "@graphql-mesh/runtime" "^0.98.5" + "@graphql-mesh/transport-common" "^0.1.4" + "@graphql-mesh/utils" "^0.97.4" + "@graphql-tools/stitch" "^9.0.3" + "@graphql-tools/utils" "^10.1.0" + graphql-yoga "^5.1.1" + tslib "^2.4.0" + +"@graphql-mesh/fusion-runtime@^0.2.7": + version "0.2.7" + resolved "https://registry.yarnpkg.com/@graphql-mesh/fusion-runtime/-/fusion-runtime-0.2.7.tgz#76cb785d2e57b4f6b147d8ec8b3c565fef705608" + integrity sha512-i/pjCvnNBVgdKqv/fnQMsRZwYenZ2nxukSiW7Y0bHhzbyBFs9maBwbW5RWexuesbGosLbccYQN3ysfBazM46tg== + dependencies: + "@graphql-mesh/fusion-execution" "^0.0.2" + "@graphql-mesh/runtime" "^0.98.5" + "@graphql-mesh/transport-common" "^0.1.4" + "@graphql-mesh/utils" "^0.97.4" "@graphql-tools/stitch" "^9.0.3" "@graphql-tools/utils" "^10.1.0" graphql-yoga "^5.1.1" @@ -1906,10 +1970,10 @@ "@graphql-tools/wrap" "^10.0.0" "@whatwg-node/fetch" "^0.9.0" -"@graphql-mesh/runtime@^0.98.0": - version "0.98.0" - resolved "https://registry.yarnpkg.com/@graphql-mesh/runtime/-/runtime-0.98.0.tgz#7d64a5d651ce5aba49f500c2934a72c23f702f28" - integrity sha512-KbWjr8upCqI5grlnHrEkpz474xkrvky/X8XgQpQDPsYfPAwUUxfhpESU2UElSbsPhqDkCKswJ+ddM6Fw0GbIwg== +"@graphql-mesh/runtime@^0.98.4": + version "0.98.4" + resolved "https://registry.yarnpkg.com/@graphql-mesh/runtime/-/runtime-0.98.4.tgz#fedf54f8a9492ba3dec90bb612e11eadd58a76a6" + integrity sha512-Yp67sRB77VTF6K6qj+OwRv7UG5pH+zrlBWd6qDLHUC85u7iKx761j77uRvKSNx1Z3rRK2JMtEJdL0MMMYJ6TJw== dependencies: "@envelop/core" "^5.0.0" "@envelop/extended-validation" "^4.0.0" @@ -1922,6 +1986,85 @@ "@whatwg-node/fetch" "^0.9.0" graphql-jit "0.8.2" +"@graphql-mesh/runtime@^0.98.5": + version "0.98.5" + resolved "https://registry.yarnpkg.com/@graphql-mesh/runtime/-/runtime-0.98.5.tgz#ecb02ea84b0310efd25cf493b5a34bee9ef22250" + integrity sha512-IhB+STRyCuuCSKv//m74A3bHdcnE1EuVcQA7HxO65dNKTalehVn+o/QBQSBwTHieYwS8dnUmssj/vtmKdTg7sw== + dependencies: + "@envelop/core" "^5.0.0" + "@envelop/extended-validation" "^4.0.0" + "@envelop/graphql-jit" "^8.0.0" + "@graphql-mesh/string-interpolation" "^0.5.3" + "@graphql-tools/batch-delegate" "^9.0.0" + "@graphql-tools/delegate" "^10.0.0" + "@graphql-tools/executor" "^1.2.0" + "@graphql-tools/wrap" "^10.0.0" + "@whatwg-node/fetch" "^0.9.0" + graphql-jit "0.8.2" + +"@graphql-mesh/serve-cli@^0.3.7": + version "0.3.7" + resolved "https://registry.yarnpkg.com/@graphql-mesh/serve-cli/-/serve-cli-0.3.7.tgz#7bb2b52772035fe752cb3fc2873d8ecd6e4a76f9" + integrity sha512-+mAluvi+2zZkFE8IyNBTDU4Rq8MLp96DYKWCeBbeREvsCecVBba0tiIxV8Mv0G6+ktOeME3ftzI2A1w10bPIeQ== + dependencies: + "@graphql-mesh/cross-helpers" "^0.4.1" + "@graphql-mesh/serve-runtime" "^0.2.6" + "@graphql-mesh/types" "^0.97.4" + "@graphql-mesh/utils" "^0.97.4" + "@graphql-tools/code-file-loader" "^8.1.1" + "@graphql-tools/git-loader" "^8.0.3" + "@graphql-tools/github-loader" "^8.0.0" + "@graphql-tools/graphql-file-loader" "^8.0.0" + "@graphql-tools/load" "^8.0.0" + "@graphql-tools/url-loader" "^8.0.0" + dotenv "^16.3.1" + json-bigint-patch "^0.0.8" + spinnies "^0.5.1" + ts-node "^10.9.2" + uWebSockets.js "uNetworking/uWebSockets.js#semver:^20" + optionalDependencies: + node-libcurl "^4.0.0" + +"@graphql-mesh/serve-runtime@^0.2.6": + version "0.2.6" + resolved "https://registry.yarnpkg.com/@graphql-mesh/serve-runtime/-/serve-runtime-0.2.6.tgz#e1b4c9b286a4740074d5df0accbabad668d4646b" + integrity sha512-4NKE5TyG09xVpg/4QELUzGpzHQdEdTEcdX51fSuPNmf44j5f/xUK4CrNHr0eFW8AOQmQpk8z36qB6T5iQyzZdA== + dependencies: + "@envelop/core" "^5.0.0" + "@graphql-mesh/cross-helpers" "^0.4.1" + "@graphql-mesh/fusion-federation" "^0.0.1" + "@graphql-mesh/fusion-runtime" "^0.2.6" + "@graphql-mesh/utils" "^0.97.4" + "@graphql-tools/delegate" "^10.0.3" + "@graphql-tools/executor-http" "^1.0.6" + "@graphql-tools/executor-yoga" "^2.0.3" + "@graphql-tools/schema" "^10.0.2" + "@graphql-tools/utils" "^10.0.8" + "@graphql-tools/wrap" "^10.0.1" + "@whatwg-node/server" "^0.9.16" + graphql-mobius "^0.1.13" + graphql-yoga "^5.1.1" + +"@graphql-mesh/serve-runtime@^0.2.7": + version "0.2.7" + resolved "https://registry.yarnpkg.com/@graphql-mesh/serve-runtime/-/serve-runtime-0.2.7.tgz#de09e6efe95bf8d4b1a2560eda1f7347785a10d4" + integrity sha512-IKtOEBFajOsOrGLoH4G5g8GdVMPHrGnznCYrg9d7vvVL5N5Z6k8Tul3JmqpA7ZqCvw8ZE57viVh8HP0CW/ayTw== + dependencies: + "@envelop/core" "^5.0.0" + "@graphql-mesh/cross-helpers" "^0.4.1" + "@graphql-mesh/fusion-federation" "^0.0.1" + "@graphql-mesh/fusion-runtime" "^0.2.7" + "@graphql-mesh/utils" "^0.97.4" + "@graphql-tools/delegate" "^10.0.3" + "@graphql-tools/executor-http" "^1.0.6" + "@graphql-tools/executor-yoga" "^2.0.3" + "@graphql-tools/schema" "^10.0.2" + "@graphql-tools/utils" "^10.0.8" + "@graphql-tools/wrap" "^10.0.1" + "@whatwg-node/server" "^0.9.16" + graphql-mobius "^0.1.13" + graphql-yoga "^5.1.1" + "@graphql-mesh/store@^0.94.2": version "0.94.6" resolved "https://registry.yarnpkg.com/@graphql-mesh/store/-/store-0.94.6.tgz#bddecd371c755ce4e142b4b4f0f688afcf390aa5" @@ -1947,14 +2090,14 @@ "@graphql-tools/wrap" "^10.0.0" graphql-scalars "^1.22.2" -"@graphql-mesh/transform-rename@^0.94.0": - version "0.94.7" - resolved "https://registry.yarnpkg.com/@graphql-mesh/transform-rename/-/transform-rename-0.94.7.tgz#b7c045942846b0c4b04c57245f803fcb44ee9b20" - integrity sha512-S8UNIiCe6G9s1tR65ickkQtn9+tSqRWGH0QQufDR/T34DAZD8VdjGULbbqYEzfIuqZDYS1WqNvVV4MjrdztkIg== +"@graphql-mesh/transform-prefix@^0.97.4": + version "0.97.4" + resolved "https://registry.yarnpkg.com/@graphql-mesh/transform-prefix/-/transform-prefix-0.97.4.tgz#39e74bc625d483d85cbed1ada18c0a4bec7efd27" + integrity sha512-Sm19zNOB5S8TKUgkOS1A5JwZKA1DIIeNs8MyxRExQSTyPTkhvQAip02RboMUogq3SuATdxSZhtWSC51PFDa3SQ== dependencies: "@graphql-tools/delegate" "^10.0.0" "@graphql-tools/wrap" "^10.0.0" - graphql-scalars "^1.22.2" + graphql-scalars "^1.22.4" "@graphql-mesh/transform-type-merging@^0.94.0": version "0.94.6" @@ -1964,14 +2107,23 @@ "@graphql-tools/delegate" "^10.0.0" "@graphql-tools/stitching-directives" "^3.0.0" -"@graphql-mesh/transport-common@^0.1.0": - version "0.1.0" - resolved "https://registry.yarnpkg.com/@graphql-mesh/transport-common/-/transport-common-0.1.0.tgz#a643b2e3b51a3d21d94a329d910d60cfecd87f4e" - integrity sha512-+sv53NHoPPKveEGK6TNuWSeqI/z+0jVOMdNsZo7QEf8nqV2rYEu5fFAK2xuWuiOkDfd66oGt96OXbw6clc/kOg== +"@graphql-mesh/transport-common@^0.1.4": + version "0.1.4" + resolved "https://registry.yarnpkg.com/@graphql-mesh/transport-common/-/transport-common-0.1.4.tgz#74afed0885655b95a151a7c2b6b53bc672dad70e" + integrity sha512-TQ81cX0QqJec0PPFFkGa0WGesVRtLWKt++h8XpE4vKxGNo4gtWmV+H/kalzffSwV2v9ezxaetkBOD37Yo+eHPw== dependencies: "@graphql-tools/delegate" "^10.0.3" "@graphql-tools/utils" "^10.0.12" +"@graphql-mesh/transport-http@^0.1.4": + version "0.1.4" + resolved "https://registry.yarnpkg.com/@graphql-mesh/transport-http/-/transport-http-0.1.4.tgz#1d2ccc4aca14d14c1bc09f216f56496d1d6cdee5" + integrity sha512-o5fN/ZfQw5lTMbWIZDFPf/M5RDWiaFaJNTJd/Fo84/1Xd8023Ah/pcDxS4B2xv84k8MqNQ8qpaRJDXqoz5fA7w== + dependencies: + "@envelop/core" "^5.0.0" + "@graphql-mesh/transport-common" "^0.1.4" + "@graphql-tools/executor-http" "^1.0.6" + "@graphql-mesh/types@^0.94.2": version "0.94.6" resolved "https://registry.yarnpkg.com/@graphql-mesh/types/-/types-0.94.6.tgz#11943584530d27776d9b7b6369a07212fa48d776" @@ -1981,6 +2133,15 @@ "@graphql-tools/delegate" "^10.0.0" "@graphql-typed-document-node/core" "^3.2.0" +"@graphql-mesh/types@^0.97.4": + version "0.97.4" + resolved "https://registry.yarnpkg.com/@graphql-mesh/types/-/types-0.97.4.tgz#405d3bfdc0561a0d9596ec27e479c04264689e27" + integrity sha512-iIb2wni7kL3JcV1WtQNJJVdVM8yhX84IDiA0bHMBZwZ4I+EVC6NCLt127gEyw5STwqyH+wGixeXTZUYNAZoAqg== + dependencies: + "@graphql-tools/batch-delegate" "^9.0.0" + "@graphql-tools/delegate" "^10.0.0" + "@graphql-typed-document-node/core" "^3.2.0" + "@graphql-mesh/urql-exchange@^0.94.0": version "0.94.2" resolved "https://registry.yarnpkg.com/@graphql-mesh/urql-exchange/-/urql-exchange-0.94.2.tgz#54742fb976d4dd96ff4df257e0cfc939479e7ad8" @@ -1999,10 +2160,10 @@ lodash.topath "^4.5.2" tiny-lru "^11.0.0" -"@graphql-mesh/utils@^0.97.0": - version "0.97.0" - resolved "https://registry.yarnpkg.com/@graphql-mesh/utils/-/utils-0.97.0.tgz#48602807b728c42000d671252de6f7cc3e3bdd72" - integrity sha512-oS4QXrgpwW1Md4IyBkmosdWW9PUM3xWkKQClUgi+x74qoczpb3AZpv/l/bxt3ntjlCCDejRNPxgBYMbx7fLyJA== +"@graphql-mesh/utils@^0.97.4": + version "0.97.4" + resolved "https://registry.yarnpkg.com/@graphql-mesh/utils/-/utils-0.97.4.tgz#d5bff2b309b307041858d46cab7c460ab59f1275" + integrity sha512-zS9NUWyHzA3lVjH3s8MmOrU4j2MZI/08wvFX3wNRNHu6/JGe0GdPonCTCooancFAOlpdR1RAAvVl4Er/Ktf6NQ== dependencies: "@graphql-mesh/string-interpolation" "^0.5.3" "@graphql-tools/delegate" "^10.0.0" @@ -2034,7 +2195,7 @@ tslib "^2.4.0" value-or-promise "^1.0.12" -"@graphql-tools/code-file-loader@^8.0.0": +"@graphql-tools/code-file-loader@^8.0.0", "@graphql-tools/code-file-loader@^8.1.1": version "8.1.1" resolved "https://registry.yarnpkg.com/@graphql-tools/code-file-loader/-/code-file-loader-8.1.1.tgz#517c37d4f8a20b2c6558b10cbe9a6f9bcfe98918" integrity sha512-q4KN25EPSUztc8rA8YUU3ufh721Yk12xXDbtUA+YstczWS7a1RJlghYMFEfR1HsHSYbF7cUqkbnTKSGM3o52bQ== @@ -2057,6 +2218,15 @@ dataloader "^2.2.2" tslib "^2.5.0" +"@graphql-tools/executor-envelop@^2.0.4": + version "2.0.4" + resolved "https://registry.yarnpkg.com/@graphql-tools/executor-envelop/-/executor-envelop-2.0.4.tgz#05a59fd953a1f4caed6989e349e157016e06eb6f" + integrity sha512-t5jypwMdbLeaz5JRoYX7VXmhtKElUu8EEhEYpfUFYqJ2mmBDSq/w/bt1qxjL/riJ+oDpS46V2cv5MMZYFSmb4Q== + dependencies: + "@graphql-tools/utils" "^10.0.13" + "@graphql-tools/wrap" "^10.0.2" + tslib "^2.3.1" + "@graphql-tools/executor-graphql-ws@^1.1.0", "@graphql-tools/executor-graphql-ws@^1.1.2": version "1.1.2" resolved "https://registry.yarnpkg.com/@graphql-tools/executor-graphql-ws/-/executor-graphql-ws-1.1.2.tgz#2bf959d2319692460b39400c0fe1515dfbb9f034" @@ -2069,7 +2239,7 @@ tslib "^2.4.0" ws "^8.13.0" -"@graphql-tools/executor-http@^1.0.9": +"@graphql-tools/executor-http@^1.0.6", "@graphql-tools/executor-http@^1.0.9": version "1.0.9" resolved "https://registry.yarnpkg.com/@graphql-tools/executor-http/-/executor-http-1.0.9.tgz#87ca8b99a32241eb0cc30a9c500d2672e92d58b7" integrity sha512-+NXaZd2MWbbrWHqU4EhXcrDbogeiCDmEbrAN+rMn4Nu2okDjn2MTFDbTIab87oEubQCH4Te1wDkWPKrzXup7+Q== @@ -2093,6 +2263,15 @@ tslib "^2.4.0" ws "^8.15.0" +"@graphql-tools/executor-yoga@^2.0.3": + version "2.0.4" + resolved "https://registry.yarnpkg.com/@graphql-tools/executor-yoga/-/executor-yoga-2.0.4.tgz#b6ce0d49102f7449e4e7ed6095722d6d48088477" + integrity sha512-S+UjllBgcnovvoi50YQOcLo4fWvCRdnPaKm45XcyZZBZws5ZlGeM1ZHvjeedvfTCskPejtOWv6K4cAlOQoa6Ug== + dependencies: + "@graphql-tools/executor-envelop" "^2.0.4" + "@graphql-tools/utils" "^10.0.13" + tslib "^2.3.1" + "@graphql-tools/executor@^1.0.0", "@graphql-tools/executor@^1.2.0", "@graphql-tools/executor@^1.2.1": version "1.2.1" resolved "https://registry.yarnpkg.com/@graphql-tools/executor/-/executor-1.2.1.tgz#9aa132ac1839679fbd14810f7ad8a65e82c0db44" @@ -2104,7 +2283,32 @@ tslib "^2.4.0" value-or-promise "^1.0.12" -"@graphql-tools/graphql-file-loader@^8.0.0": +"@graphql-tools/git-loader@^8.0.3": + version "8.0.5" + resolved "https://registry.yarnpkg.com/@graphql-tools/git-loader/-/git-loader-8.0.5.tgz#77f9c2a35fdb3a403d33660ed11702720d4b016e" + integrity sha512-P97/1mhruDiA6D5WUmx3n/aeGPLWj2+4dpzDOxFGGU+z9NcI/JdygMkeFpGZNHeJfw+kHfxgPcMPnxHcyhAoVA== + dependencies: + "@graphql-tools/graphql-tag-pluck" "8.3.0" + "@graphql-tools/utils" "^10.0.13" + is-glob "4.0.3" + micromatch "^4.0.4" + tslib "^2.4.0" + unixify "^1.0.0" + +"@graphql-tools/github-loader@^8.0.0": + version "8.0.1" + resolved "https://registry.yarnpkg.com/@graphql-tools/github-loader/-/github-loader-8.0.1.tgz#011e1f9495d42a55139a12f576cc6bb04943ecf4" + integrity sha512-W4dFLQJ5GtKGltvh/u1apWRFKBQOsDzFxO9cJkOYZj1VzHCpRF43uLST4VbCfWve+AwBqOuKr7YgkHoxpRMkcg== + dependencies: + "@ardatan/sync-fetch" "^0.0.1" + "@graphql-tools/executor-http" "^1.0.9" + "@graphql-tools/graphql-tag-pluck" "^8.0.0" + "@graphql-tools/utils" "^10.0.13" + "@whatwg-node/fetch" "^0.9.0" + tslib "^2.4.0" + value-or-promise "^1.0.12" + +"@graphql-tools/graphql-file-loader@8.0.1", "@graphql-tools/graphql-file-loader@^8.0.0": version "8.0.1" resolved "https://registry.yarnpkg.com/@graphql-tools/graphql-file-loader/-/graphql-file-loader-8.0.1.tgz#03869b14cb91d0ef539df8195101279bb2df9c9e" integrity sha512-7gswMqWBabTSmqbaNyWSmRRpStWlcCkBc73E6NZNlh4YNuiyKOwbvSkOUYFOqFMfEL+cFsXgAvr87Vz4XrYSbA== @@ -2115,7 +2319,7 @@ tslib "^2.4.0" unixify "^1.0.0" -"@graphql-tools/graphql-tag-pluck@8.3.0": +"@graphql-tools/graphql-tag-pluck@8.3.0", "@graphql-tools/graphql-tag-pluck@^8.0.0": version "8.3.0" resolved "https://registry.yarnpkg.com/@graphql-tools/graphql-tag-pluck/-/graphql-tag-pluck-8.3.0.tgz#11bb8c627253137b39b34fb765cd6ebe506388b9" integrity sha512-gNqukC+s7iHC7vQZmx1SEJQmLnOguBq+aqE2zV2+o1hxkExvKqyFli1SY/9gmukFIKpKutCIj+8yLOM+jARutw== @@ -2137,7 +2341,7 @@ resolve-from "5.0.0" tslib "^2.4.0" -"@graphql-tools/load@^8.0.0": +"@graphql-tools/load@^8.0.0", "@graphql-tools/load@^8.0.1": version "8.0.2" resolved "https://registry.yarnpkg.com/@graphql-tools/load/-/load-8.0.2.tgz#47d9916bf96dea05df27f11b53812f4327d9b6d2" integrity sha512-S+E/cmyVmJ3CuCNfDuNF2EyovTwdWfQScXv/2gmvJOti2rGD8jTt9GYVzXaxhblLivQR9sBUCNZu/w7j7aXUCA== @@ -2197,7 +2401,7 @@ tslib "^2.4.0" value-or-promise "^1.0.12" -"@graphql-tools/schema@^10.0.0", "@graphql-tools/schema@^10.0.3": +"@graphql-tools/schema@^10.0.0", "@graphql-tools/schema@^10.0.2", "@graphql-tools/schema@^10.0.3": version "10.0.3" resolved "https://registry.yarnpkg.com/@graphql-tools/schema/-/schema-10.0.3.tgz#48c14be84cc617c19c4c929258672b6ab01768de" integrity sha512-p28Oh9EcOna6i0yLaCFOnkcBDQECVf3SCexT6ktb86QNj9idnkhI+tCxnwZDh58Qvjd2nURdkbevvoZkvxzCog== @@ -2250,7 +2454,7 @@ value-or-promise "^1.0.11" ws "^8.12.0" -"@graphql-tools/utils@^10.0.0", "@graphql-tools/utils@^10.0.1", "@graphql-tools/utils@^10.0.12", "@graphql-tools/utils@^10.0.13", "@graphql-tools/utils@^10.0.8", "@graphql-tools/utils@^10.1.0": +"@graphql-tools/utils@^10.0.0", "@graphql-tools/utils@^10.0.1", "@graphql-tools/utils@^10.0.10", "@graphql-tools/utils@^10.0.12", "@graphql-tools/utils@^10.0.13", "@graphql-tools/utils@^10.0.8", "@graphql-tools/utils@^10.1.0": version "10.1.0" resolved "https://registry.yarnpkg.com/@graphql-tools/utils/-/utils-10.1.0.tgz#d8c23a8b8636a5df59b14991bf25eae5ac15d314" integrity sha512-wLPqhgeZ9BZJPRoaQbsDN/CtJDPd/L4qmmtPkjI3NuYJ39x+Eqz1Sh34EAGMuDh+xlOHqBwHczkZUpoK9tvzjw== @@ -2275,7 +2479,7 @@ "@graphql-typed-document-node/core" "^3.1.1" tslib "^2.4.0" -"@graphql-tools/wrap@^10.0.0", "@graphql-tools/wrap@^10.0.2": +"@graphql-tools/wrap@^10.0.0", "@graphql-tools/wrap@^10.0.1", "@graphql-tools/wrap@^10.0.2": version "10.0.2" resolved "https://registry.yarnpkg.com/@graphql-tools/wrap/-/wrap-10.0.2.tgz#87f510b5f35db2771e7743bc3d71059ee4adaf09" integrity sha512-nb/YjBcyF02KBCy3hiyw0nBKIC+qkiDY/tGMCcIe4pM6BPEcnreaPhXA28Rdge7lKtySF4Mhbc86XafFH5bIkQ== @@ -2652,6 +2856,21 @@ globby "^11.0.0" read-yaml-file "^1.1.0" +"@mapbox/node-pre-gyp@1.0.11": + version "1.0.11" + resolved "https://registry.yarnpkg.com/@mapbox/node-pre-gyp/-/node-pre-gyp-1.0.11.tgz#417db42b7f5323d79e93b34a6d7a2a12c0df43fa" + integrity sha512-Yhlar6v9WQgUp/He7BdgzOz8lqMQ8sU+jkCq7Wx8Myc5YFJLbEe7lgui/V7G1qB1DJykHSGwreceSaD60Y0PUQ== + dependencies: + detect-libc "^2.0.0" + https-proxy-agent "^5.0.0" + make-dir "^3.1.0" + node-fetch "^2.6.7" + nopt "^5.0.0" + npmlog "^5.0.1" + rimraf "^3.0.2" + semver "^7.3.5" + tar "^6.1.11" + "@next/env@14.1.3": version "14.1.3" resolved "https://registry.yarnpkg.com/@next/env/-/env-14.1.3.tgz#73007b64d487bbb95ed83145195f734fc1182d10" @@ -2730,6 +2949,24 @@ "@nodelib/fs.scandir" "2.1.5" fastq "^1.6.0" +"@npmcli/agent@^2.0.0": + version "2.2.1" + resolved "https://registry.yarnpkg.com/@npmcli/agent/-/agent-2.2.1.tgz#8aa677d0a4136d57524336a35d5679aedf2d56f7" + integrity sha512-H4FrOVtNyWC8MUwL3UfjOsAihHvT1Pe8POj3JvjXhSTJipsZMtgUALCT4mGyYZNxymkUfOw3PUj6dE4QPp6osQ== + dependencies: + agent-base "^7.1.0" + http-proxy-agent "^7.0.0" + https-proxy-agent "^7.0.1" + lru-cache "^10.0.1" + socks-proxy-agent "^8.0.1" + +"@npmcli/fs@^3.1.0": + version "3.1.0" + resolved "https://registry.yarnpkg.com/@npmcli/fs/-/fs-3.1.0.tgz#233d43a25a91d68c3a863ba0da6a3f00924a173e" + integrity sha512-7kZUAaLscfgbwBQRbvdMYaZOWyMEcPTH/tJjnyAWJ/dvvs9Ef+CERx/qJb9GExJpl1qipaDGn7KqHnFGGixd0w== + dependencies: + semver "^7.3.5" + "@pkgjs/parseargs@^0.11.0": version "0.11.0" resolved "https://registry.yarnpkg.com/@pkgjs/parseargs/-/parseargs-0.11.0.tgz#a77ea742fab25775145434eb1d2328cf5013ac33" @@ -3101,7 +3338,15 @@ resolved "https://registry.yarnpkg.com/@whatwg-node/events/-/events-0.1.1.tgz#0ca718508249419587e130da26d40e29d99b5356" integrity sha512-AyQEn5hIPV7Ze+xFoXVU3QTHXVbWPrzaOkxtENMPMuNL6VVHrp4hHfDt9nrQpjO7BgvuM95dMtkycX5M/DZR3w== -"@whatwg-node/fetch@^0.9.0", "@whatwg-node/fetch@^0.9.13", "@whatwg-node/fetch@^0.9.17", "@whatwg-node/fetch@^0.9.7": +"@whatwg-node/fetch@^0.9.0", "@whatwg-node/fetch@^0.9.13", "@whatwg-node/fetch@^0.9.14", "@whatwg-node/fetch@^0.9.7": + version "0.9.16" + resolved "https://registry.yarnpkg.com/@whatwg-node/fetch/-/fetch-0.9.16.tgz#c833eb714f41f5d2caf1a345bed7a05f56db7b16" + integrity sha512-mqasZiUNquRe3ea9+aCAuo81BR6vq5opUKprPilIHTnrg8a21Z1T1OrI+KiMFX8OmwO5HUJe/vro47lpj2JPWQ== + dependencies: + "@whatwg-node/node-fetch" "^0.5.5" + urlpattern-polyfill "^10.0.0" + +"@whatwg-node/fetch@^0.9.10": version "0.9.17" resolved "https://registry.yarnpkg.com/@whatwg-node/fetch/-/fetch-0.9.17.tgz#10e4ea2392926c8d41ff57e3156857e885317d3f" integrity sha512-TDYP3CpCrxwxpiNY0UMNf096H5Ihf67BK1iKGegQl5u9SlpEDYrvnV71gWBGJm+Xm31qOy8ATgma9rm8Pe7/5Q== @@ -3109,6 +3354,17 @@ "@whatwg-node/node-fetch" "^0.5.7" urlpattern-polyfill "^10.0.0" +"@whatwg-node/node-fetch@^0.5.5": + version "0.5.8" + resolved "https://registry.yarnpkg.com/@whatwg-node/node-fetch/-/node-fetch-0.5.8.tgz#dc399422c35bc6ba75858fe3597fa248314d035f" + integrity sha512-rB+2P3oi9fD4TcsijkflJAQqOh4yZrPgOV4fGaDgCdOqqwTicJvL2nnVbr3comW8bxEuypOcyE1AtBtkpip0Gw== + dependencies: + "@kamilkisiela/fast-url-parser" "^1.1.4" + "@whatwg-node/events" "^0.1.0" + busboy "^1.6.0" + fast-querystring "^1.1.1" + tslib "^2.3.1" + "@whatwg-node/node-fetch@^0.5.7": version "0.5.7" resolved "https://registry.yarnpkg.com/@whatwg-node/node-fetch/-/node-fetch-0.5.7.tgz#88d231c4e377354580f317cd5bb719fa1868850d" @@ -3120,12 +3376,12 @@ fast-querystring "^1.1.1" tslib "^2.3.1" -"@whatwg-node/server@^0.9.0", "@whatwg-node/server@^0.9.1": - version "0.9.26" - resolved "https://registry.yarnpkg.com/@whatwg-node/server/-/server-0.9.26.tgz#d8e00864753af06a02721db38799a1529810de37" - integrity sha512-QqNktlXBqhpZtHf1rq8h2St/flbSegrGTAhhlYo8aOQagM7MrKy+GhAS9h2FAM7JVnxAIIV4NHSJHPcYf7TqzQ== +"@whatwg-node/server@^0.9.0", "@whatwg-node/server@^0.9.1", "@whatwg-node/server@^0.9.16": + version "0.9.25" + resolved "https://registry.yarnpkg.com/@whatwg-node/server/-/server-0.9.25.tgz#23c136ddcb7e5517120bb953ce4d3bac5b96be56" + integrity sha512-DlPqPPcfyzh4/9Lz1fl4c5bZsGp/1wCh7B+cK8FE1bWoW7tlZkVguvGn/XnYPKthGzEIwo/fLdHwevH44z+eeg== dependencies: - "@whatwg-node/fetch" "^0.9.17" + "@whatwg-node/fetch" "^0.9.10" tslib "^2.3.1" "@wry/context@^0.7.0": @@ -3161,6 +3417,11 @@ abbrev@1: resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8" integrity sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q== +abbrev@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-2.0.0.tgz#cf59829b8b4f03f89dda2771cb7f3653828c89bf" + integrity sha512-6/mh1E2u2YgEsCHdY0Yx5oW+61gZU+1vXaoiHHrpKeuRNNgFvS+/jrwHiQhB5apAf5oB7UB7E19ol2R2LKH8hQ== + acorn-jsx@^5.3.2: version "5.3.2" resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz#7ed5bb55908b3b2f1bc55c6af1653bada7f07937" @@ -3176,6 +3437,28 @@ acorn@^8.4.1, acorn@^8.9.0: resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.11.3.tgz#71e0b14e13a4ec160724b38fb7b0f233b1b81d7a" integrity sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg== +agent-base@6: + version "6.0.2" + resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-6.0.2.tgz#49fff58577cfee3f37176feab4c22e00f86d7f77" + integrity sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ== + dependencies: + debug "4" + +agent-base@^7.0.2, agent-base@^7.1.0: + version "7.1.0" + resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-7.1.0.tgz#536802b76bc0b34aa50195eb2442276d613e3434" + integrity sha512-o/zjMZRhJxny7OyEF+Op8X+efiELC7k7yOjMzgfzVqOzXqkBkWI79YoTdOtsuWd5BWhAGAuOY/Xa6xpiaWXiNg== + dependencies: + debug "^4.3.4" + +aggregate-error@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/aggregate-error/-/aggregate-error-3.1.0.tgz#92670ff50f5359bdb7a3e0d40d0ec30c5737687a" + integrity sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA== + dependencies: + clean-stack "^2.0.0" + indent-string "^4.0.0" + ajv@^6.10.0, ajv@^6.11.0, ajv@^6.12.4: version "6.12.6" resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4" @@ -3208,6 +3491,11 @@ ansi-escapes@^4.2.1: dependencies: type-fest "^0.21.3" +ansi-regex@^4.1.0: + version "4.1.1" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-4.1.1.tgz#164daac87ab2d6f6db3a29875e2d1766582dabed" + integrity sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g== + ansi-regex@^5.0.1: version "5.0.1" resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304" @@ -3250,6 +3538,24 @@ anymatch@^3.0.3, anymatch@~3.1.2: normalize-path "^3.0.0" picomatch "^2.0.4" +"aproba@^1.0.3 || ^2.0.0": + version "2.0.0" + resolved "https://registry.yarnpkg.com/aproba/-/aproba-2.0.0.tgz#52520b8ae5b569215b354efc0caa3fe1e45a8adc" + integrity sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ== + +are-we-there-yet@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/are-we-there-yet/-/are-we-there-yet-2.0.0.tgz#372e0e7bd279d8e94c653aaa1f67200884bf3e1c" + integrity sha512-Ci/qENmwHnsYo9xKIcUJN5LeDKdJ6R1Z1j9V/J5wyq8nh/mYPEpIKJbBZXtZjG04HiK7zV/p6Vs9952MrMeUIw== + dependencies: + delegates "^1.0.0" + readable-stream "^3.6.0" + +are-we-there-yet@^4.0.0: + version "4.0.2" + resolved "https://registry.yarnpkg.com/are-we-there-yet/-/are-we-there-yet-4.0.2.tgz#aed25dd0eae514660d49ac2b2366b175c614785a" + integrity sha512-ncSWAawFhKMJDTdoAeOV+jyW1VCMj5QIAwULIBV0SSR7B/RLPPEQiknKcg/RIIZlUQrxELpsxMiTUoAQ4sIUyg== + arg@^4.1.0: version "4.1.3" resolved "https://registry.yarnpkg.com/arg/-/arg-4.1.3.tgz#269fc7ad5b8e42cb63c896d5666017261c144089" @@ -3678,6 +3984,24 @@ busboy@1.6.0, busboy@^1.6.0: dependencies: streamsearch "^1.1.0" +cacache@^18.0.0: + version "18.0.2" + resolved "https://registry.yarnpkg.com/cacache/-/cacache-18.0.2.tgz#fd527ea0f03a603be5c0da5805635f8eef00c60c" + integrity sha512-r3NU8h/P+4lVUHfeRw1dtgQYar3DZMm4/cm2bZgOvrFC/su7budSOeqh52VJIC4U4iG1WWwV6vRW0znqBvxNuw== + dependencies: + "@npmcli/fs" "^3.1.0" + fs-minipass "^3.0.0" + glob "^10.2.2" + lru-cache "^10.0.1" + minipass "^7.0.3" + minipass-collect "^2.0.1" + minipass-flush "^1.0.5" + minipass-pipeline "^1.2.4" + p-map "^4.0.0" + ssri "^10.0.0" + tar "^6.1.11" + unique-filename "^3.0.0" + call-bind@^1.0.2, call-bind@^1.0.5, call-bind@^1.0.6, call-bind@^1.0.7: version "1.0.7" resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.7.tgz#06016599c40c56498c18769d2730be242b6fa3b9" @@ -3827,6 +4151,11 @@ chokidar@^3.5.2: optionalDependencies: fsevents "~2.3.2" +chownr@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/chownr/-/chownr-2.0.0.tgz#15bfbe53d2eab4cf70f18a8cd68ebe5b3cb1dece" + integrity sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ== + ci-info@^3.2.0, ci-info@^3.7.0: version "3.9.0" resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-3.9.0.tgz#4279a62028a7b1f262f3473fc9605f5e218c59b4" @@ -3837,6 +4166,18 @@ cjs-module-lexer@^1.0.0: resolved "https://registry.yarnpkg.com/cjs-module-lexer/-/cjs-module-lexer-1.2.3.tgz#6c370ab19f8a3394e318fe682686ec0ac684d107" integrity sha512-0TNiGstbQmCFwt4akjjBg5pLRTSyj/PkWQ1ZoO2zntmg9yLqSRxwEa4iCfQLGjqhiqBfOJa7W/E8wfGrTDmlZQ== +clean-stack@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/clean-stack/-/clean-stack-2.2.0.tgz#ee8472dbb129e727b31e8a10a427dee9dfe4008b" + integrity sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A== + +cli-cursor@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-3.1.0.tgz#264305a7ae490d1d03bf0c9ba7c925d1753af307" + integrity sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw== + dependencies: + restore-cursor "^3.1.0" + client-only@0.0.1: version "0.0.1" resolved "https://registry.yarnpkg.com/client-only/-/client-only-0.0.1.tgz#38bba5d403c41ab150bff64a95c85013cf73bca1" @@ -3899,6 +4240,11 @@ color-name@~1.1.4: resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== +color-support@^1.1.2, color-support@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/color-support/-/color-support-1.1.3.tgz#93834379a1cc9a0c61f82f52f0d04322251bd5a2" + integrity sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg== + common-tags@1.8.2: version "1.8.2" resolved "https://registry.yarnpkg.com/common-tags/-/common-tags-1.8.2.tgz#94ebb3c076d26032745fd54face7f688ef5ac9c6" @@ -3929,6 +4275,11 @@ consola@^3.0.0: resolved "https://registry.yarnpkg.com/consola/-/consola-3.2.3.tgz#0741857aa88cfa0d6fd53f1cff0375136e98502f" integrity sha512-I5qxpzLv+sJhTVEoLYNcTW+bThDCPsit0vLNKShZx6rLtpilNpmmeTPaeqJb9ZE9dV3DGaeby6Vuhrw38WjeyQ== +console-control-strings@^1.0.0, console-control-strings@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/console-control-strings/-/console-control-strings-1.1.0.tgz#3d7cf4464db6446ea644bf4b39507f9851008e8e" + integrity sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ== + constant-case@^3.0.4: version "3.0.4" resolved "https://registry.yarnpkg.com/constant-case/-/constant-case-3.0.4.tgz#3b84a9aeaf4cf31ec45e6bf5de91bdfb0589faf1" @@ -4072,6 +4423,13 @@ dayjs@1.11.10: resolved "https://registry.yarnpkg.com/dayjs/-/dayjs-1.11.10.tgz#68acea85317a6e164457d6d6947564029a6a16a0" integrity sha512-vjAczensTgRcqDERK0SR2XMwsF/tSvnvlv6VcF2GIhg6Sx4yOIt/irsr1RDJsKiIyBzJDpCoXiWWq28MqH2cnQ== +debug@4, debug@^4.1.0, debug@^4.1.1, debug@^4.3.1, debug@^4.3.2, debug@^4.3.4: + version "4.3.4" + resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865" + integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ== + dependencies: + ms "2.1.2" + debug@^3.2.7: version "3.2.7" resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.7.tgz#72580b7e9145fb39b6676f9c5e5fb100b934179a" @@ -4079,13 +4437,6 @@ debug@^3.2.7: dependencies: ms "^2.1.1" -debug@^4.1.0, debug@^4.1.1, debug@^4.3.1, debug@^4.3.2, debug@^4.3.4: - version "4.3.4" - resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865" - integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ== - dependencies: - ms "2.1.2" - decamelize-keys@^1.1.0: version "1.1.1" resolved "https://registry.yarnpkg.com/decamelize-keys/-/decamelize-keys-1.1.1.tgz#04a2d523b2f18d80d0158a43b895d56dff8d19d8" @@ -4139,6 +4490,11 @@ define-properties@^1.1.3, define-properties@^1.2.0, define-properties@^1.2.1: has-property-descriptors "^1.0.0" object-keys "^1.1.1" +delegates@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/delegates/-/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a" + integrity sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ== + dependency-graph@0.11.0, dependency-graph@^0.11.0: version "0.11.0" resolved "https://registry.yarnpkg.com/dependency-graph/-/dependency-graph-0.11.0.tgz#ac0ce7ed68a54da22165a85e97a01d53f5eb2e27" @@ -4154,6 +4510,11 @@ detect-indent@^6.0.0: resolved "https://registry.yarnpkg.com/detect-indent/-/detect-indent-6.1.0.tgz#592485ebbbf6b3b1ab2be175c8393d04ca0d57e6" integrity sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA== +detect-libc@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-2.0.2.tgz#8ccf2ba9315350e1241b88d0ac3b0e1fbd99605d" + integrity sha512-UX6sGumvvqSaXgdKGUsgZWqcUyIXZ/vZTrlRT/iobiKhGL0zL4d3osHj3uqllWJK+i+sixDS/3COVEOFbupFyw== + detect-newline@^3.0.0: version "3.1.0" resolved "https://registry.yarnpkg.com/detect-newline/-/detect-newline-3.1.0.tgz#576f5dfc63ae1a192ff192d8ad3af6308991b651" @@ -4206,7 +4567,7 @@ dot-case@^3.0.4: no-case "^3.0.4" tslib "^2.0.3" -dotenv@^16.0.3: +dotenv@^16.0.3, dotenv@^16.3.1: version "16.4.5" resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-16.4.5.tgz#cdd3b3b604cb327e286b4762e13502f717cb099f" integrity sha512-ZmdL2rui+eB2YwhsWzjInR8LldtZHGDoQ1ugH85ppHKwpUHL7j7rN0Ti9NCnGiQbhaZ11FpR+7ao1dNsmduNUg== @@ -4246,6 +4607,13 @@ emoji-regex@^9.2.2: resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-9.2.2.tgz#840c8803b0d8047f4ff0cf963176b32d4ef3ed72" integrity sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg== +encoding@^0.1.13: + version "0.1.13" + resolved "https://registry.yarnpkg.com/encoding/-/encoding-0.1.13.tgz#56574afdd791f54a8e9b2785c0582a2d26210fa9" + integrity sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A== + dependencies: + iconv-lite "^0.6.2" + enhanced-resolve@^5.12.0: version "5.15.1" resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-5.15.1.tgz#384391e025f099e67b4b00bfd7f0906a408214e1" @@ -4262,6 +4630,21 @@ enquirer@^2.3.0: ansi-colors "^4.1.1" strip-ansi "^6.0.1" +env-paths@2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/env-paths/-/env-paths-2.2.0.tgz#cdca557dc009152917d6166e2febe1f039685e43" + integrity sha512-6u0VYSCo/OW6IoD5WCLLy9JUGARbamfSavcNXry/eu8aHVFei6CD3Sw+VGX5alea1i9pgPHW0mbu6Xj0uBh7gA== + +env-paths@^2.2.0: + version "2.2.1" + resolved "https://registry.yarnpkg.com/env-paths/-/env-paths-2.2.1.tgz#420399d416ce1fbe9bc0a07c62fa68d67fd0f8f2" + integrity sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A== + +err-code@^2.0.2: + version "2.0.3" + resolved "https://registry.yarnpkg.com/err-code/-/err-code-2.0.3.tgz#23c2f3b756ffdfc608d30e27c9a941024807e7f9" + integrity sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA== + error-ex@^1.3.1: version "1.3.2" resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf" @@ -4688,6 +5071,11 @@ expect@^29.0.0, expect@^29.7.0: jest-message-util "^29.7.0" jest-util "^29.7.0" +exponential-backoff@^3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/exponential-backoff/-/exponential-backoff-3.1.1.tgz#64ac7526fe341ab18a39016cd22c787d01e00bf6" + integrity sha512-dX7e/LHVJ6W3DE1MHWi9S1EYzDESENfLrYohG2G++ovZrYOkm4Knwa0mc1cn84xJOR4KEU0WSchhLbd0UklbHw== + extendable-error@^0.1.5: version "0.1.7" resolved "https://registry.yarnpkg.com/extendable-error/-/extendable-error-0.1.7.tgz#60b9adf206264ac920058a7395685ae4670c2b96" @@ -4890,6 +5278,20 @@ fs-extra@^8.1.0: jsonfile "^4.0.0" universalify "^0.1.0" +fs-minipass@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-2.1.0.tgz#7f5036fdbf12c63c169190cbe4199c852271f9fb" + integrity sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg== + dependencies: + minipass "^3.0.0" + +fs-minipass@^3.0.0: + version "3.0.3" + resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-3.0.3.tgz#79a85981c4dc120065e96f62086bf6f9dc26cc54" + integrity sha512-XUBA9XClHbnJWSfBzjkm6RvPsyg3sryZt06BEQoXcF7EK/xpGaQYJgQKDJSUH5SGZ76Y7pFx1QBnXz09rU5Fbw== + dependencies: + minipass "^7.0.3" + fs.realpath@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" @@ -4920,6 +5322,35 @@ functions-have-names@^1.2.3: resolved "https://registry.yarnpkg.com/functions-have-names/-/functions-have-names-1.2.3.tgz#0404fe4ee2ba2f607f0e0ec3c80bae994133b834" integrity sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ== +gauge@^3.0.0: + version "3.0.2" + resolved "https://registry.yarnpkg.com/gauge/-/gauge-3.0.2.tgz#03bf4441c044383908bcfa0656ad91803259b395" + integrity sha512-+5J6MS/5XksCuXq++uFRsnUd7Ovu1XenbeuIuNRJxYWjgQbPuFhT14lAvsWfqfAmnwluf1OwMjz39HjfLPci0Q== + dependencies: + aproba "^1.0.3 || ^2.0.0" + color-support "^1.1.2" + console-control-strings "^1.0.0" + has-unicode "^2.0.1" + object-assign "^4.1.1" + signal-exit "^3.0.0" + string-width "^4.2.3" + strip-ansi "^6.0.1" + wide-align "^1.1.2" + +gauge@^5.0.0: + version "5.0.1" + resolved "https://registry.yarnpkg.com/gauge/-/gauge-5.0.1.tgz#1efc801b8ff076b86ef3e9a7a280a975df572112" + integrity sha512-CmykPMJGuNan/3S4kZOpvvPYSNqSHANiWnh9XcMU2pSjtBfF0XzZ2p1bFAxTbnFxyBuPxQYHhzwaoOmUdqzvxQ== + dependencies: + aproba "^1.0.3 || ^2.0.0" + color-support "^1.1.3" + console-control-strings "^1.1.0" + has-unicode "^2.0.1" + signal-exit "^4.0.1" + string-width "^4.2.3" + strip-ansi "^6.0.1" + wide-align "^1.1.5" + generate-function@^2.3.1: version "2.3.1" resolved "https://registry.yarnpkg.com/generate-function/-/generate-function-2.3.1.tgz#f069617690c10c868e73b8465746764f97c3479f" @@ -5000,7 +5431,7 @@ glob-parent@^6.0.2: dependencies: is-glob "^4.0.3" -glob@10.3.10, glob@^10.2.5: +glob@10.3.10, glob@^10.2.2, glob@^10.2.5, glob@^10.3.10, glob@^10.3.7: version "10.3.10" resolved "https://registry.yarnpkg.com/glob/-/glob-10.3.10.tgz#0351ebb809fd187fe421ab96af83d3a70715df4b" integrity sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g== @@ -5072,7 +5503,7 @@ gopd@^1.0.1: dependencies: get-intrinsic "^1.1.3" -graceful-fs@^4.1.2, graceful-fs@^4.1.5, graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.11, graceful-fs@^4.2.4, graceful-fs@^4.2.9: +graceful-fs@^4.1.2, graceful-fs@^4.1.5, graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.11, graceful-fs@^4.2.4, graceful-fs@^4.2.6, graceful-fs@^4.2.9: version "4.2.11" resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.11.tgz#4183e4e8bf08bb6e05bbb2f7d2e0c8f712ca40e3" integrity sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ== @@ -5105,6 +5536,11 @@ graphql-jit@0.8.2: lodash.merge "4.6.2" lodash.mergewith "4.6.2" +graphql-mobius@^0.1.13: + version "0.1.13" + resolved "https://registry.yarnpkg.com/graphql-mobius/-/graphql-mobius-0.1.13.tgz#4f635eacee63adbed076169efdc959220e2af76a" + integrity sha512-GFTHB9VUnYaKI5cNjadYnVgsH2AqW4//0UTpZlzHq2BpErbqzy+EZn8rFXIus/jLyYv3fFqbuzbNJV8AygSeJA== + graphql-scalars@^1.22.2: version "1.22.5" resolved "https://registry.yarnpkg.com/graphql-scalars/-/graphql-scalars-1.22.5.tgz#f7aceacf0efd2f38d53635c69895e3c67c04bd37" @@ -5112,6 +5548,13 @@ graphql-scalars@^1.22.2: dependencies: tslib "^2.5.0" +graphql-scalars@^1.22.4: + version "1.23.0" + resolved "https://registry.yarnpkg.com/graphql-scalars/-/graphql-scalars-1.23.0.tgz#486785d1a6f9449277054a92afc7e1fb73f459d6" + integrity sha512-YTRNcwitkn8CqYcleKOx9IvedA8JIERn8BRq21nlKgOr4NEcTaWEG0sT+H92eF3ALTFbPgsqfft4cw+MGgv0Gg== + dependencies: + tslib "^2.5.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" @@ -5207,6 +5650,11 @@ has-tostringtag@^1.0.0, has-tostringtag@^1.0.1, has-tostringtag@^1.0.2: dependencies: has-symbols "^1.0.3" +has-unicode@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/has-unicode/-/has-unicode-2.0.1.tgz#e0e6fe6a28cf51138855e086d1691e771de2a8b9" + integrity sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ== + hasown@^2.0.0, hasown@^2.0.1: version "2.0.2" resolved "https://registry.yarnpkg.com/hasown/-/hasown-2.0.2.tgz#003eaf91be7adc372e84ec59dc37252cedb80003" @@ -5239,6 +5687,35 @@ html-escaper@^2.0.0: resolved "https://registry.yarnpkg.com/html-escaper/-/html-escaper-2.0.2.tgz#dfd60027da36a36dfcbe236262c00a5822681453" integrity sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg== +http-cache-semantics@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz#abe02fcb2985460bf0323be664436ec3476a6d5a" + integrity sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ== + +http-proxy-agent@^7.0.0: + version "7.0.2" + resolved "https://registry.yarnpkg.com/http-proxy-agent/-/http-proxy-agent-7.0.2.tgz#9a8b1f246866c028509486585f62b8f2c18c270e" + integrity sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig== + dependencies: + agent-base "^7.1.0" + debug "^4.3.4" + +https-proxy-agent@^5.0.0: + version "5.0.1" + resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz#c59ef224a04fe8b754f3db0063a25ea30d0005d6" + integrity sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA== + dependencies: + agent-base "6" + debug "4" + +https-proxy-agent@^7.0.1: + version "7.0.4" + resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-7.0.4.tgz#8e97b841a029ad8ddc8731f26595bad868cb4168" + integrity sha512-wlwpilI7YdjSkWaQ/7omYBMTliDcmCN8OLihO6I9B86g06lMyAoqgoDpV0XqoaPOKj+0DIdAvnsWfyAAhmimcg== + dependencies: + agent-base "^7.0.2" + debug "4" + human-id@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/human-id/-/human-id-1.0.2.tgz#e654d4b2b0d8b07e45da9f6020d8af17ec0a5df3" @@ -5266,6 +5743,13 @@ iconv-lite@^0.4.24: dependencies: safer-buffer ">= 2.1.2 < 3" +iconv-lite@^0.6.2: + version "0.6.3" + resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.6.3.tgz#a52f80bf38da1952eb5c681790719871a1a72501" + integrity sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw== + dependencies: + safer-buffer ">= 2.1.2 < 3.0.0" + ignore-by-default@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/ignore-by-default/-/ignore-by-default-1.0.1.tgz#48ca6d72f6c6a3af00a9ad4ae6876be3889e2b09" @@ -5325,7 +5809,7 @@ inflight@^1.0.4: once "^1.3.0" wrappy "1" -inherits@2: +inherits@2, inherits@^2.0.3: version "2.0.4" resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== @@ -5346,6 +5830,14 @@ invariant@^2.2.4: dependencies: loose-envify "^1.0.0" +ip-address@^9.0.5: + version "9.0.5" + resolved "https://registry.yarnpkg.com/ip-address/-/ip-address-9.0.5.tgz#117a960819b08780c3bd1f14ef3c1cc1d3f3ea5a" + integrity sha512-zHtQzGojZXTwZTHQqra+ETKd4Sn3vgi7uBmlPoXVWZqYvuKmtI0l/VZTjqGmJY9x88GGOaZ9+G9ES8hC4T4X8g== + dependencies: + jsbn "1.1.0" + sprintf-js "^1.1.3" + is-absolute@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/is-absolute/-/is-absolute-1.0.0.tgz#395e1ae84b11f26ad1795e73c17378e48a301576" @@ -5449,13 +5941,18 @@ is-generator-function@^1.0.10: dependencies: has-tostringtag "^1.0.0" -is-glob@^4.0.0, is-glob@^4.0.1, is-glob@^4.0.3, is-glob@~4.0.1: +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-lambda@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-lambda/-/is-lambda-1.0.1.tgz#3d9877899e6a53efc0160504cde15f82e6f061d5" + integrity sha512-z7CMFGNrENq5iFB9Bqo64Xk6Y9sg+epq1myIcdHaGnbMTYOxvzsEtdYqQUylB7LxfkvgrrjP32T6Ywciio9UIQ== + 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" @@ -5621,6 +6118,11 @@ isexe@^2.0.0: resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" integrity sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw== +isexe@^3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/isexe/-/isexe-3.1.1.tgz#4a407e2bd78ddfb14bea0c27c6f7072dde775f0d" + integrity sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ== + isomorphic-ws@^5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/isomorphic-ws/-/isomorphic-ws-5.0.0.tgz#e5529148912ecb9b451b46ed44d53dae1ce04bbf" @@ -6077,6 +6579,11 @@ js-yaml@^4.1.0: dependencies: argparse "^2.0.1" +jsbn@1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-1.1.0.tgz#b01307cb29b618a1ed26ec79e911f803c4da0040" + integrity sha512-4bYVV3aAMtDTTu4+xsDYa6sy9GyJ69/amsu9sYF2zqjiEoZA5xJi3BrfX3uY+/IekIu7MwdObdbDWpoZdBv3/A== + jsesc@^2.5.1: version "2.5.2" resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-2.5.2.tgz#80564d2e483dacf6e8ef209650a67df3f0c283a4" @@ -6323,7 +6830,7 @@ lower-case@^2.0.2: dependencies: tslib "^2.0.3" -lru-cache@^10.0.0, "lru-cache@^9.1.1 || ^10.0.0": +lru-cache@^10.0.0, lru-cache@^10.0.1, "lru-cache@^9.1.1 || ^10.0.0": version "10.2.0" resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-10.2.0.tgz#0bd445ca57363465900f4d1f9bd8db343a4d95c3" integrity sha512-2bIM8x+VAf6JT4bKAljS1qUWgMsqZRPGJS6FSahIMPVvctcNhyVp7AJu7quxOW9jwkryBReKZY5tY5JYv2n/7Q== @@ -6350,6 +6857,13 @@ lru-cache@^6.0.0: dependencies: yallist "^4.0.0" +make-dir@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-3.1.0.tgz#415e967046b3a7f1d185277d84aa58203726a13f" + integrity sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw== + dependencies: + semver "^6.0.0" + make-dir@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-4.0.0.tgz#c3c2307a771277cd9638305f915c29ae741b614e" @@ -6362,6 +6876,23 @@ make-error@1.x, make-error@^1.1.1: resolved "https://registry.yarnpkg.com/make-error/-/make-error-1.3.6.tgz#2eb2e37ea9b67c4891f684a1394799af484cf7a2" integrity sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw== +make-fetch-happen@^13.0.0: + version "13.0.0" + resolved "https://registry.yarnpkg.com/make-fetch-happen/-/make-fetch-happen-13.0.0.tgz#705d6f6cbd7faecb8eac2432f551e49475bfedf0" + integrity sha512-7ThobcL8brtGo9CavByQrQi+23aIfgYU++wg4B87AIS8Rb2ZBt/MEaDqzA00Xwv/jUjAjYkLHjVolYuTLKda2A== + dependencies: + "@npmcli/agent" "^2.0.0" + cacache "^18.0.0" + http-cache-semantics "^4.1.1" + is-lambda "^1.0.1" + minipass "^7.0.2" + minipass-fetch "^3.0.0" + minipass-flush "^1.0.5" + minipass-pipeline "^1.2.4" + negotiator "^0.6.3" + promise-retry "^2.0.1" + ssri "^10.0.0" + makeerror@1.0.12: version "1.0.12" resolved "https://registry.yarnpkg.com/makeerror/-/makeerror-1.0.12.tgz#3e5dd2079a82e812e983cc6610c4a2cb0eaa801a" @@ -6467,16 +6998,80 @@ minimist@^1.2.0, minimist@^1.2.6: resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.8.tgz#c1a464e7693302e082a075cee0c057741ac4772c" integrity sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA== -"minipass@^5.0.0 || ^6.0.2 || ^7.0.0": +minipass-collect@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/minipass-collect/-/minipass-collect-2.0.1.tgz#1621bc77e12258a12c60d34e2276ec5c20680863" + integrity sha512-D7V8PO9oaz7PWGLbCACuI1qEOsq7UKfLotx/C0Aet43fCUB/wfQ7DYeq2oR/svFJGYDHPr38SHATeaj/ZoKHKw== + dependencies: + minipass "^7.0.3" + +minipass-fetch@^3.0.0: + version "3.0.4" + resolved "https://registry.yarnpkg.com/minipass-fetch/-/minipass-fetch-3.0.4.tgz#4d4d9b9f34053af6c6e597a64be8e66e42bf45b7" + integrity sha512-jHAqnA728uUpIaFm7NWsCnqKT6UqZz7GcI/bDpPATuwYyKwJwW0remxSCxUlKiEty+eopHGa3oc8WxgQ1FFJqg== + dependencies: + minipass "^7.0.3" + minipass-sized "^1.0.3" + minizlib "^2.1.2" + optionalDependencies: + encoding "^0.1.13" + +minipass-flush@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/minipass-flush/-/minipass-flush-1.0.5.tgz#82e7135d7e89a50ffe64610a787953c4c4cbb373" + integrity sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw== + dependencies: + minipass "^3.0.0" + +minipass-pipeline@^1.2.4: + version "1.2.4" + resolved "https://registry.yarnpkg.com/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz#68472f79711c084657c067c5c6ad93cddea8214c" + integrity sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A== + dependencies: + minipass "^3.0.0" + +minipass-sized@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/minipass-sized/-/minipass-sized-1.0.3.tgz#70ee5a7c5052070afacfbc22977ea79def353b70" + integrity sha512-MbkQQ2CTiBMlA2Dm/5cY+9SWFEN8pzzOXi6rlM5Xxq0Yqbda5ZQy9sU75a673FE9ZK0Zsbr6Y5iP6u9nktfg2g== + dependencies: + minipass "^3.0.0" + +minipass@^3.0.0: + version "3.3.6" + resolved "https://registry.yarnpkg.com/minipass/-/minipass-3.3.6.tgz#7bba384db3a1520d18c9c0e5251c3444e95dd94a" + integrity sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw== + dependencies: + yallist "^4.0.0" + +minipass@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/minipass/-/minipass-5.0.0.tgz#3e9788ffb90b694a5d0ec94479a45b5d8738133d" + integrity sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ== + +"minipass@^5.0.0 || ^6.0.2 || ^7.0.0", minipass@^7.0.2, minipass@^7.0.3: version "7.0.4" resolved "https://registry.yarnpkg.com/minipass/-/minipass-7.0.4.tgz#dbce03740f50a4786ba994c1fb908844d27b038c" integrity sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ== +minizlib@^2.1.1, minizlib@^2.1.2: + version "2.1.2" + resolved "https://registry.yarnpkg.com/minizlib/-/minizlib-2.1.2.tgz#e90d3466ba209b932451508a11ce3d3632145931" + integrity sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg== + dependencies: + minipass "^3.0.0" + yallist "^4.0.0" + mixme@^0.5.1: version "0.5.10" resolved "https://registry.yarnpkg.com/mixme/-/mixme-0.5.10.tgz#d653b2984b75d9018828f1ea333e51717ead5f51" integrity sha512-5H76ANWinB1H3twpJ6JY8uvAtpmFvHNArpilJAjXRKXSDDLPIMoZArw5SH0q9z+lLs8IrMw7Q2VWpWimFKFT1Q== +mkdirp@^1.0.3: + version "1.0.4" + resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e" + integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw== + mkdirp@^3.0.0: version "3.0.1" resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-3.0.1.tgz#e44e4c5607fb279c168241713cc6e0fea9adcb50" @@ -6492,6 +7087,11 @@ ms@2.1.2, ms@^2.1.1: resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== +nan@2.18.0: + version "2.18.0" + resolved "https://registry.yarnpkg.com/nan/-/nan-2.18.0.tgz#26a6faae7ffbeb293a39660e88a76b82e30b7554" + integrity sha512-W7tfG7vMOGtD30sHoZSSc/JVYiyDPEyQVso/Zz+/uQd0B0L46gtC+pHha5FFMRpil6fm/AoEcRWyOVi4+E/f8w== + nanoid@^3.3.6, nanoid@^3.3.7: version "3.3.7" resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.7.tgz#d0c301a691bc8d54efa0a2226ccf3fe2fd656bd8" @@ -6502,6 +7102,11 @@ natural-compare@^1.4.0: resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" integrity sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw== +negotiator@^0.6.3: + version "0.6.3" + resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.3.tgz#58e323a72fedc0d6f9cd4d31fe49f51479590ccd" + integrity sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg== + next@14.1.3: version "14.1.3" resolved "https://registry.yarnpkg.com/next/-/next-14.1.3.tgz#465bb21a1a6e703e776ca53ea71d05642867fdb5" @@ -6538,7 +7143,7 @@ node-addon-api@^3.0.0: resolved "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-3.2.1.tgz#81325e0a2117789c0128dab65e7e38f07ceba161" integrity sha512-mmcei9JghVNDYydghQmeDX8KoAm0FAiYyIcUt/N4nhyAipB17pllZQDOJD2fotxABnt4Mdz+dKTO7eftLg4d0A== -node-fetch@^2.5.0, node-fetch@^2.6.1, node-fetch@^2.6.12: +node-fetch@^2.5.0, node-fetch@^2.6.1, node-fetch@^2.6.12, node-fetch@^2.6.7: version "2.7.0" resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.7.0.tgz#d0f0fa6e3e2dc1d27efcd8ad99d550bda94d187d" integrity sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A== @@ -6550,11 +7155,40 @@ node-gyp-build@^4.2.1: resolved "https://registry.yarnpkg.com/node-gyp-build/-/node-gyp-build-4.8.0.tgz#3fee9c1731df4581a3f9ead74664369ff00d26dd" integrity sha512-u6fs2AEUljNho3EYTJNBfImO5QTo/J/1Etd+NVdCj7qWKUSN/bSLkZwhDv7I+w/MSC6qJ4cknepkAYykDdK8og== +node-gyp@10.0.1: + version "10.0.1" + resolved "https://registry.yarnpkg.com/node-gyp/-/node-gyp-10.0.1.tgz#205514fc19e5830fa991e4a689f9e81af377a966" + integrity sha512-gg3/bHehQfZivQVfqIyy8wTdSymF9yTyP4CJifK73imyNMU8AIGQE2pUa7dNWfmMeG9cDVF2eehiRMv0LC1iAg== + dependencies: + env-paths "^2.2.0" + exponential-backoff "^3.1.1" + glob "^10.3.10" + graceful-fs "^4.2.6" + make-fetch-happen "^13.0.0" + nopt "^7.0.0" + proc-log "^3.0.0" + semver "^7.3.5" + tar "^6.1.2" + which "^4.0.0" + node-int64@^0.4.0: version "0.4.0" resolved "https://registry.yarnpkg.com/node-int64/-/node-int64-0.4.0.tgz#87a9065cdb355d3182d8f94ce11188b825c68a3b" integrity sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw== +node-libcurl@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/node-libcurl/-/node-libcurl-4.0.0.tgz#57568c3f7c08a76e822994d2b674d4dd56752127" + integrity sha512-v+u+OgSq6ldvf8MrdjieAy/mv8WeTN94nrTomh62zhItF2HH0Ckin/QEqs8+35DWyYrE5nBM2480UtWVXktzbQ== + dependencies: + "@mapbox/node-pre-gyp" "1.0.11" + env-paths "2.2.0" + nan "2.18.0" + node-gyp "10.0.1" + npmlog "7.0.1" + rimraf "5.0.5" + tslib "2.6.2" + node-releases@^2.0.14: version "2.0.14" resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.14.tgz#2ffb053bceb8b2be8495ece1ab6ce600c4461b0b" @@ -6576,6 +7210,20 @@ nodemon@3.0.1, nodemon@^3.0.0: touch "^3.1.0" undefsafe "^2.0.5" +nopt@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/nopt/-/nopt-5.0.0.tgz#530942bb58a512fccafe53fe210f13a25355dc88" + integrity sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ== + dependencies: + abbrev "1" + +nopt@^7.0.0: + version "7.2.0" + resolved "https://registry.yarnpkg.com/nopt/-/nopt-7.2.0.tgz#067378c68116f602f552876194fd11f1292503d7" + integrity sha512-CVDtwCdhYIvnAzFoJ6NJ6dX3oga9/HyciQDnG1vQDjSLMeKLJ4A93ZqYKDrgYSr1FBY5/hMYC+2VCi24pgpkGA== + dependencies: + abbrev "^2.0.0" + nopt@~1.0.10: version "1.0.10" resolved "https://registry.yarnpkg.com/nopt/-/nopt-1.0.10.tgz#6ddd21bd2a31417b92727dd585f8a6f37608ebee" @@ -6619,6 +7267,26 @@ npm-run-path@^5.1.0: dependencies: path-key "^4.0.0" +npmlog@7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-7.0.1.tgz#7372151a01ccb095c47d8bf1d0771a4ff1f53ac8" + integrity sha512-uJ0YFk/mCQpLBt+bxN88AKd+gyqZvZDbtiNxk6Waqcj2aPRyfVx8ITawkyQynxUagInjdYT1+qj4NfA5KJJUxg== + dependencies: + are-we-there-yet "^4.0.0" + console-control-strings "^1.1.0" + gauge "^5.0.0" + set-blocking "^2.0.0" + +npmlog@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-5.0.1.tgz#f06678e80e29419ad67ab964e0fa69959c1eb8b0" + integrity sha512-AqZtDUWOMKs1G/8lwylVjrdYgqA4d9nu8hc+0gzRxlDb1I10+FHBGMXs6aiQHFdCUUlqH99MUMuLfzWDNDtfxw== + dependencies: + are-we-there-yet "^2.0.0" + console-control-strings "^1.1.0" + gauge "^3.0.0" + set-blocking "^2.0.0" + nullthrows@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/nullthrows/-/nullthrows-1.1.1.tgz#7818258843856ae971eae4208ad7d7eb19a431b1" @@ -6707,7 +7375,7 @@ once@^1.3.0: dependencies: wrappy "1" -onetime@^5.1.2: +onetime@^5.1.0, onetime@^5.1.2: version "5.1.2" resolved "https://registry.yarnpkg.com/onetime/-/onetime-5.1.2.tgz#d0e96ebb56b07476df1dd9c4806e5237985ca45e" integrity sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg== @@ -6806,6 +7474,13 @@ p-map@^2.0.0: resolved "https://registry.yarnpkg.com/p-map/-/p-map-2.1.0.tgz#310928feef9c9ecc65b68b17693018a665cea175" integrity sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw== +p-map@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/p-map/-/p-map-4.0.0.tgz#bb2f95a5eda2ec168ec9274e06a747c3e2904d2b" + integrity sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ== + dependencies: + aggregate-error "^3.0.0" + p-try@^2.0.0: version "2.2.0" resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6" @@ -6845,7 +7520,7 @@ parse-json@^5.0.0, parse-json@^5.2.0: json-parse-even-better-errors "^2.3.0" lines-and-columns "^1.1.6" -pascal-case@^3.1.2: +pascal-case@^3.0.0, pascal-case@^3.1.2: version "3.1.2" resolved "https://registry.yarnpkg.com/pascal-case/-/pascal-case-3.1.2.tgz#b48e0ef2b98e205e7c1dae747d0b1508237660eb" integrity sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g== @@ -6948,6 +7623,11 @@ pkg-dir@^4.2.0: dependencies: find-up "^4.0.0" +pluralize@^8.0.0: + version "8.0.0" + resolved "https://registry.yarnpkg.com/pluralize/-/pluralize-8.0.0.tgz#1a6fa16a38d12a1901e0320fa017051c539ce3b1" + integrity sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA== + possible-typed-array-names@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/possible-typed-array-names/-/possible-typed-array-names-1.0.0.tgz#89bb63c6fada2c3e90adc4a647beeeb39cc7bf8f" @@ -7018,6 +7698,19 @@ pretty-quick@4.0.0: picomatch "^3.0.1" tslib "^2.6.2" +proc-log@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/proc-log/-/proc-log-3.0.0.tgz#fb05ef83ccd64fd7b20bbe9c8c1070fc08338dd8" + integrity sha512-++Vn7NS4Xf9NacaU9Xq3URUuqZETPsf8L4j5/ckhaRYsfPeRyzGw+iDjFhV/Jr3uNmTvvddEJFWh5R1gRgUH8A== + +promise-retry@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/promise-retry/-/promise-retry-2.0.1.tgz#ff747a13620ab57ba688f5fc67855410c370da22" + integrity sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g== + dependencies: + err-code "^2.0.2" + retry "^0.12.0" + promise@^7.1.1: version "7.3.1" resolved "https://registry.yarnpkg.com/promise/-/promise-7.3.1.tgz#064b72602b18f90f29192b8b1bc418ffd1ebd3bf" @@ -7131,6 +7824,15 @@ read-yaml-file@^1.1.0: pify "^4.0.1" strip-bom "^3.0.0" +readable-stream@^3.6.0: + version "3.6.2" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.2.tgz#56a9b36ea965c00c5a93ef31eb111a0f11056967" + integrity sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA== + dependencies: + inherits "^2.0.3" + string_decoder "^1.1.1" + util-deprecate "^1.0.1" + readdirp@~3.6.0: version "3.6.0" resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.6.0.tgz#74a370bd857116e245b29cc97340cd431a02a6c7" @@ -7291,6 +7993,19 @@ response-iterator@^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.yarnpkg.com/restore-cursor/-/restore-cursor-3.1.0.tgz#39f67c54b3a7a58cea5236d95cf0034239631f7e" + integrity sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA== + dependencies: + onetime "^5.1.0" + signal-exit "^3.0.2" + +retry@^0.12.0: + version "0.12.0" + resolved "https://registry.yarnpkg.com/retry/-/retry-0.12.0.tgz#1b42a6266a21f07421d1b0b54b7dc167b01c013b" + integrity sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow== + reusify@^1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76" @@ -7303,6 +8018,13 @@ rimraf@5.0.1, rimraf@^5.0.0: dependencies: glob "^10.2.5" +rimraf@5.0.5: + version "5.0.5" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-5.0.5.tgz#9be65d2d6e683447d2e9013da2bf451139a61ccf" + integrity sha512-CqDakW+hMe/Bz202FPEymy68P+G50RfMQK+Qo5YUqc9SPipvbGjCGKd0RSKEelbsfQuw3g5NZDSrlZZAJurH1A== + dependencies: + glob "^10.3.7" + rimraf@^3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a" @@ -7356,6 +8078,11 @@ safe-array-concat@^1.1.0: has-symbols "^1.0.3" isarray "^2.0.5" +safe-buffer@~5.2.0: + version "5.2.1" + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" + integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== + safe-regex-test@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/safe-regex-test/-/safe-regex-test-1.0.3.tgz#a5b4c0f06e0ab50ea2c395c14d8371232924c377" @@ -7365,7 +8092,7 @@ safe-regex-test@^1.0.3: es-errors "^1.3.0" is-regex "^1.1.4" -"safer-buffer@>= 2.1.2 < 3": +"safer-buffer@>= 2.1.2 < 3", "safer-buffer@>= 2.1.2 < 3.0.0": version "2.1.2" resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== @@ -7382,12 +8109,12 @@ scheduler@^0.23.0: resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.2.tgz#48d55db737c3287cd4835e17fa13feace1c41ef8" integrity sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g== -semver@^6.3.0, semver@^6.3.1: +semver@^6.0.0, semver@^6.3.0, semver@^6.3.1: version "6.3.1" resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.1.tgz#556d2ef8689146e46dcea4bfdd095f3434dffcb4" integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA== -semver@^7.5.3, semver@^7.5.4: +semver@^7.3.5, semver@^7.5.3, semver@^7.5.4: version "7.6.0" resolved "https://registry.yarnpkg.com/semver/-/semver-7.6.0.tgz#1a46a4db4bffcccd97b743b5005c8325f23d4e2d" integrity sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg== @@ -7482,7 +8209,7 @@ side-channel@^1.0.4: get-intrinsic "^1.2.4" object-inspect "^1.13.1" -signal-exit@^3.0.2, signal-exit@^3.0.3, signal-exit@^3.0.7: +signal-exit@^3.0.0, signal-exit@^3.0.2, signal-exit@^3.0.3, signal-exit@^3.0.7: version "3.0.7" resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.7.tgz#a9a1767f8af84155114eaabd73f99273c8f59ad9" integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ== @@ -7519,6 +8246,11 @@ slash@^4.0.0: resolved "https://registry.yarnpkg.com/slash/-/slash-4.0.0.tgz#2422372176c4c6c5addb5e2ada885af984b396a7" integrity sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew== +smart-buffer@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/smart-buffer/-/smart-buffer-4.2.0.tgz#6e1d71fa4f18c05f7d0ff216dd16a481d0e8d9ae" + integrity sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg== + smartwrap@^2.0.2: version "2.0.2" resolved "https://registry.yarnpkg.com/smartwrap/-/smartwrap-2.0.2.tgz#7e25d3dd58b51c6ca4aba3a9e391650ea62698a4" @@ -7531,7 +8263,7 @@ smartwrap@^2.0.2: wcwidth "^1.0.1" yargs "^15.1.0" -snake-case@^3.0.4: +snake-case@^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== @@ -7539,6 +8271,23 @@ snake-case@^3.0.4: dot-case "^3.0.4" tslib "^2.0.3" +socks-proxy-agent@^8.0.1: + version "8.0.2" + resolved "https://registry.yarnpkg.com/socks-proxy-agent/-/socks-proxy-agent-8.0.2.tgz#5acbd7be7baf18c46a3f293a840109a430a640ad" + integrity sha512-8zuqoLv1aP/66PHF5TqwJ7Czm3Yv32urJQHrVyhD7mmA6d61Zv8cIXQYPTWwmg6qlupnPvs/QKDmfa4P/qct2g== + dependencies: + agent-base "^7.0.2" + debug "^4.3.4" + socks "^2.7.1" + +socks@^2.7.1: + version "2.8.1" + resolved "https://registry.yarnpkg.com/socks/-/socks-2.8.1.tgz#22c7d9dd7882649043cba0eafb49ae144e3457af" + integrity sha512-B6w7tkwNid7ToxjZ08rQMT8M9BJAf8DKx8Ft4NivzH0zBUfd6jldGcisJn/RLgxcX3FPNDdNQCUEMMT79b+oCQ== + dependencies: + ip-address "^9.0.5" + smart-buffer "^4.2.0" + source-map-js@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.0.2.tgz#adbc361d9c62df380125e7f161f71c826f1e490c" @@ -7596,6 +8345,15 @@ spdx-license-ids@^3.0.0: resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.17.tgz#887da8aa73218e51a1d917502d79863161a93f9c" integrity sha512-sh8PWc/ftMqAAdFiBu6Fy6JUOYjqDJBJvIhpfDMyHrr0Rbp5liZqd4TjtQ/RgfLjKFZb+LMx5hpml5qOWy0qvg== +spinnies@^0.5.1: + version "0.5.1" + resolved "https://registry.yarnpkg.com/spinnies/-/spinnies-0.5.1.tgz#6ac88455d9117c7712d52898a02c969811819a7e" + integrity sha512-WpjSXv9NQz0nU3yCT9TFEOfpFrXADY9C5fG6eAJqixLhvTX1jP3w92Y8IE5oafIe42nlF9otjhllnXN/QCaB3A== + dependencies: + chalk "^2.4.2" + cli-cursor "^3.0.0" + strip-ansi "^5.2.0" + sponge-case@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/sponge-case/-/sponge-case-1.0.1.tgz#260833b86453883d974f84854cdb63aecc5aef4c" @@ -7603,11 +8361,23 @@ sponge-case@^1.0.1: dependencies: tslib "^2.0.3" +sprintf-js@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.1.3.tgz#4914b903a2f8b685d17fdf78a70e917e872e444a" + integrity sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA== + sprintf-js@~1.0.2: version "1.0.3" resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" integrity sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g== +ssri@^10.0.0: + version "10.0.5" + resolved "https://registry.yarnpkg.com/ssri/-/ssri-10.0.5.tgz#e49efcd6e36385196cb515d3a2ad6c3f0265ef8c" + integrity sha512-bSf16tAFkGeRlUNDjXu8FzaMQt6g2HZJrun7mtMbIPOddxt3GLMSz5VWUWcqTJUPfLEaDIepGxv+bYQW49596A== + dependencies: + minipass "^7.0.3" + stack-utils@^2.0.3: version "2.0.6" resolved "https://registry.yarnpkg.com/stack-utils/-/stack-utils-2.0.6.tgz#aaf0748169c02fc33c8232abccf933f54a1cc34f" @@ -7640,16 +8410,7 @@ string-similarity@^4.0.1: resolved "https://registry.yarnpkg.com/string-similarity/-/string-similarity-4.0.4.tgz#42d01ab0b34660ea8a018da8f56a3309bb8b2a5b" integrity sha512-/q/8Q4Bl4ZKAPjj8WerIBJWALKkaPRfrvhfF8k/B23i4nzrlRj2/go1m90In7nG/3XDSbOo0+pu6RvCTM9RGMQ== -"string-width-cjs@npm:string-width@^4.2.0": - 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.1" - -string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3: +"string-width-cjs@npm:string-width@^4.2.0", "string-width@^1.0.2 || 2 || 3 || 4", 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== @@ -7709,20 +8470,27 @@ string.prototype.trimstart@^1.0.7: define-properties "^1.2.0" es-abstract "^1.22.1" -"strip-ansi-cjs@npm: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== +string_decoder@^1.1.1: + version "1.3.0" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e" + integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== dependencies: - ansi-regex "^5.0.1" + safe-buffer "~5.2.0" -strip-ansi@^6.0.0, strip-ansi@^6.0.1: +"strip-ansi-cjs@npm:strip-ansi@^6.0.1", 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-ansi@^5.2.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-5.2.0.tgz#8c9a536feb6afc962bdfa5b104a5091c1ad9c0ae" + integrity sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA== + dependencies: + ansi-regex "^4.1.0" + strip-ansi@^7.0.1: version "7.1.0" resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-7.1.0.tgz#d5b6568ca689d8561370b0707685d22434faff45" @@ -7812,6 +8580,18 @@ tapable@^2.2.0: resolved "https://registry.yarnpkg.com/tapable/-/tapable-2.2.1.tgz#1967a73ef4060a82f12ab96af86d52fdb76eeca0" integrity sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ== +tar@^6.1.11, tar@^6.1.2: + version "6.2.0" + resolved "https://registry.yarnpkg.com/tar/-/tar-6.2.0.tgz#b14ce49a79cb1cd23bc9b016302dea5474493f73" + integrity sha512-/Wo7DcT0u5HUV486xg675HtjNd3BXZ6xDbzsCUZPt5iw8bTQ63bP0Raut3mvro9u+CUyq7YQd8Cx55fsZXxqLQ== + dependencies: + chownr "^2.0.0" + fs-minipass "^2.0.0" + minipass "^5.0.0" + minizlib "^2.1.1" + mkdirp "^1.0.3" + yallist "^4.0.0" + term-size@^2.1.0: version "2.2.1" resolved "https://registry.yarnpkg.com/term-size/-/term-size-2.2.1.tgz#2a6a54840432c2fb6320fea0f415531e90189f54" @@ -7934,6 +8714,25 @@ ts-node@10.9.1, ts-node@^10.9.1: v8-compile-cache-lib "^3.0.1" yn "3.1.1" +ts-node@^10.9.2: + version "10.9.2" + resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-10.9.2.tgz#70f021c9e185bccdca820e26dc413805c101c71f" + integrity sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ== + dependencies: + "@cspotcode/source-map-support" "^0.8.0" + "@tsconfig/node10" "^1.0.7" + "@tsconfig/node12" "^1.0.7" + "@tsconfig/node14" "^1.0.0" + "@tsconfig/node16" "^1.0.2" + acorn "^8.4.1" + acorn-walk "^8.1.1" + arg "^4.1.0" + create-require "^1.1.0" + diff "^4.0.1" + make-error "^1.1.1" + v8-compile-cache-lib "^3.0.1" + yn "3.1.1" + tsconfig-paths@^3.15.0: version "3.15.0" resolved "https://registry.yarnpkg.com/tsconfig-paths/-/tsconfig-paths-3.15.0.tgz#5299ec605e55b1abb23ec939ef15edaf483070d4" @@ -7958,7 +8757,7 @@ tslib@2.6.0: resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.6.0.tgz#b295854684dbda164e181d259a22cd779dcd7bc3" integrity sha512-7At1WUettjcSRHXCyYtTselblcHl9PJFFVKiCAy/bY97+BPZXSQ2wbq0P9s8tK2G7dFQfNnlJnPAiArVBVBsfA== -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.5.0, tslib@^2.5.2, tslib@^2.6.2, tslib@~2.6.0: +tslib@2.6.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.5.0, tslib@^2.5.2, tslib@^2.6.2, tslib@~2.6.0: version "2.6.2" resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.6.2.tgz#703ac29425e7b37cd6fd456e92404d46d1f3e4ae" integrity sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q== @@ -8067,9 +8866,12 @@ typescript@5.4.2, typescript@^5.0.4: resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.4.2.tgz#0ae9cebcfae970718474fe0da2c090cad6577372" integrity sha512-+2/g0Fds1ERlP6JsakQQDXjZdZMM+rqpamFZJEKh4kwTIn3iDkgKtby0CeNd5ATNZ4Ry1ax15TMx0W2V+miizQ== -"uWebSockets.js@github:uNetworking/uWebSockets.js#v20.30.0": +"uWebSockets.js@uNetworking/uWebSockets.js#semver:^20": + version "20.43.0" + resolved "https://codeload.github.com/uNetworking/uWebSockets.js/tar.gz/1977b5039938ad863d42fc4958d48c17e5a1fa06" + +uWebSockets.js@uNetworking/uWebSockets.js#v20.30.0: version "20.30.0" - uid d39d4181daf5b670d44cbc1b18f8c28c85fd4142 resolved "https://codeload.github.com/uNetworking/uWebSockets.js/tar.gz/d39d4181daf5b670d44cbc1b18f8c28c85fd4142" ua-parser-js@^1.0.35: @@ -8125,6 +8927,20 @@ unicode-property-aliases-ecmascript@^2.0.0: resolved "https://registry.yarnpkg.com/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.1.0.tgz#43d41e3be698bd493ef911077c9b131f827e8ccd" integrity sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w== +unique-filename@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/unique-filename/-/unique-filename-3.0.0.tgz#48ba7a5a16849f5080d26c760c86cf5cf05770ea" + integrity sha512-afXhuC55wkAmZ0P18QsVE6kp8JaxrEokN2HGIoIVv2ijHQd419H0+6EigAFcIzXeMIkcIkNBpB3L/DXB3cTS/g== + dependencies: + unique-slug "^4.0.0" + +unique-slug@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/unique-slug/-/unique-slug-4.0.0.tgz#6bae6bb16be91351badd24cdce741f892a6532e3" + integrity sha512-WrcA6AyEfqDX5bWige/4NQfPZMtASNVxdmWR76WESYQVAACSgWcR6e9i0mofqqBxYFtL4oAxPIptY73/0YE1DQ== + dependencies: + imurmurhash "^0.1.4" + universalify@^0.1.0: version "0.1.2" resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.2.tgz#b646f69be3942dabcecc9d6639c80dc105efaa66" @@ -8184,6 +9000,11 @@ urql@4.0.4: "@urql/core" "^4.0.0" wonka "^6.3.2" +util-deprecate@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" + integrity sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw== + v8-compile-cache-lib@^3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz#6336e8d71965cb3d35a1bbb7868445a7c05264bf" @@ -8335,12 +9156,26 @@ which@^2.0.1: dependencies: isexe "^2.0.0" +which@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/which/-/which-4.0.0.tgz#cd60b5e74503a3fbcfbf6cd6b4138a8bae644c1a" + integrity sha512-GlaYyEb07DPxYCKhKzplCWBJtvxZcZMrL+4UkrTSJHHPyZU4mYYTv3qaOe77H7EODLSSopAUFAc6W8U4yqvscg== + dependencies: + isexe "^3.1.1" + +wide-align@^1.1.2, wide-align@^1.1.5: + version "1.1.5" + resolved "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.5.tgz#df1d4c206854369ecf3c9a4898f1b23fbd9d15d3" + integrity sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg== + dependencies: + string-width "^1.0.2 || 2 || 3 || 4" + wonka@^6.3.2: version "6.3.4" resolved "https://registry.yarnpkg.com/wonka/-/wonka-6.3.4.tgz#76eb9316e3d67d7febf4945202b5bdb2db534594" integrity sha512-CjpbqNtBGNAeyNS/9W6q3kSkKE52+FjIj7AkFlLr11s/VWGUu6a2CdYSdGxocIhIVjaW/zchesBQUKPVU69Cqg== -"wrap-ansi-cjs@npm:wrap-ansi@^7.0.0": +"wrap-ansi-cjs@npm:wrap-ansi@^7.0.0", wrap-ansi@^7.0.0: version "7.0.0" resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== @@ -8358,15 +9193,6 @@ wrap-ansi@^6.2.0: string-width "^4.1.0" strip-ansi "^6.0.0" -wrap-ansi@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" - integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== - dependencies: - ansi-styles "^4.0.0" - string-width "^4.1.0" - strip-ansi "^6.0.0" - wrap-ansi@^8.1.0: version "8.1.0" resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-8.1.0.tgz#56dc22368ee570face1b49819975d9b9a5ead214"