Schema { sources: { 1: SourceFile { path: "built_in.graphql", source_text: include_str!("built_in.graphql"), }, 17: SourceFile { path: "0015_supergraph.graphql", source_text: "schema\n@core(feature: \"https://specs.apollo.dev/core/v0.1\"),\n@core(feature: \"https://specs.apollo.dev/join/v0.1\")\n{\n query: Query\n mutation: Mutation\n}\n\ndirective @core(feature: String!) repeatable on SCHEMA\ndirective @join__field(graph: join__Graph, requires: join__FieldSet, provides: join__FieldSet) on FIELD_DEFINITION\ndirective @join__type(graph: join__Graph!, key: join__FieldSet) repeatable on OBJECT | INTERFACE\ndirective @join__owner(graph: join__Graph!) on OBJECT | INTERFACE\ndirective @join__graph(name: String!, url: String!) on ENUM_VALUE\ndirective @stream on FIELD\ndirective @transform(from: String!) on FIELD\n\nunion AccountType = PasswordAccount | SMSAccount\n\ntype Amazon {\n referrer: String\n}\n\nunion Body = Image | Text\n\ntype Book implements Product\n@join__owner(graph: BOOKS)\n@join__type(graph: BOOKS, key: \"isbn\")\n@join__type(graph: INVENTORY, key: \"isbn\")\n@join__type(graph: PRODUCT, key: \"isbn\")\n@join__type(graph: REVIEWS, key: \"isbn\")\n{\n isbn: String! @join__field(graph: BOOKS)\n title: String @join__field(graph: BOOKS)\n year: Int @join__field(graph: BOOKS)\n similarBooks: [Book]! @join__field(graph: BOOKS)\n metadata: [MetadataOrError] @join__field(graph: BOOKS)\n inStock: Boolean @join__field(graph: INVENTORY)\n isCheckedOut: Boolean @join__field(graph: INVENTORY)\n upc: String! @join__field(graph: PRODUCT)\n sku: String! @join__field(graph: PRODUCT)\n name(delimeter: String = \" \"): String @join__field(graph: PRODUCT, requires: \"title year\")\n price: String @join__field(graph: PRODUCT)\n details: ProductDetailsBook @join__field(graph: PRODUCT)\n reviews: [Review] @join__field(graph: REVIEWS)\n relatedReviews: [Review!]! @join__field(graph: REVIEWS, requires: \"similarBooks{isbn}\")\n}\n\nunion Brand = Ikea | Amazon\n\ntype Car implements Vehicle\n@join__owner(graph: PRODUCT)\n@join__type(graph: PRODUCT, key: \"id\")\n@join__type(graph: REVIEWS, key: \"id\")\n{\n id: String! @join__field(graph: PRODUCT)\n description: String @join__field(graph: PRODUCT)\n price: String @join__field(graph: PRODUCT)\n retailPrice: String @join__field(graph: REVIEWS, requires: \"price\")\n}\n\ntype Error {\n code: Int\n message: String\n}\n\ntype Furniture implements Product\n@join__owner(graph: PRODUCT)\n@join__type(graph: PRODUCT, key: \"upc\")\n@join__type(graph: PRODUCT, key: \"sku\")\n@join__type(graph: INVENTORY, key: \"sku\")\n@join__type(graph: REVIEWS, key: \"upc\")\n{\n upc: String! @join__field(graph: PRODUCT)\n sku: String! @join__field(graph: PRODUCT)\n name: String @join__field(graph: PRODUCT)\n price: String @join__field(graph: PRODUCT)\n brand: Brand @join__field(graph: PRODUCT)\n metadata: [MetadataOrError] @join__field(graph: PRODUCT)\n details: ProductDetailsFurniture @join__field(graph: PRODUCT)\n inStock: Boolean @join__field(graph: INVENTORY)\n isHeavy: Boolean @join__field(graph: INVENTORY)\n reviews: [Review] @join__field(graph: REVIEWS)\n}\n\ntype Ikea {\n asile: Int\n}\n\ntype Image implements NamedObject {\n name: String!\n attributes: ImageAttributes!\n}\n\ntype ImageAttributes {\n url: String!\n}\n\nscalar join__FieldSet @specifiedBy(url: \"https://spec.graphql.org/\")\n\nenum join__Graph {\nACCOUNTS @join__graph(name: \"accounts\" url: \"\")\nBOOKS @join__graph(name: \"books\" url: \"\")\nDOCUMENTS @join__graph(name: \"documents\" url: \"\")\nINVENTORY @join__graph(name: \"inventory\" url: \"\")\nPRODUCT @join__graph(name: \"product\" url: \"\")\nREVIEWS @join__graph(name: \"reviews\" url: \"\")\n}\n\ntype KeyValue {\n key: String!\n value: String!\n}\n\ntype Library\n@join__owner(graph: BOOKS)\n@join__type(graph: BOOKS, key: \"id\")\n@join__type(graph: ACCOUNTS, key: \"id\")\n{\n id: ID! @join__field(graph: BOOKS)\n name: String @join__field(graph: BOOKS)\n userAccount(id: ID! = 1): User @join__field(graph: ACCOUNTS, requires: \"name\")\n}\n\nunion MetadataOrError = KeyValue | Error\n\ntype Mutation {\n login(username: String!, password: String!): User @join__field(graph: ACCOUNTS)\n reviewProduct(upc: String!, body: String!): Product @join__field(graph: REVIEWS)\n updateReview(review: UpdateReviewInput!): Review @join__field(graph: REVIEWS)\n deleteReview(id: ID!): Boolean @join__field(graph: REVIEWS)\n}\n\ntype Name {\n first: String\n last: String\n}\n\ninterface NamedObject {\n name: String!\n}\n\ntype PasswordAccount\n@join__owner(graph: ACCOUNTS)\n@join__type(graph: ACCOUNTS, key: \"email\")\n{\n email: String! @join__field(graph: ACCOUNTS)\n}\n\ninterface Product {\n upc: String!\n sku: String!\n name: String\n price: String\n details: ProductDetails\n inStock: Boolean\n reviews: [Review]\n}\n\ninterface ProductDetails {\n country: String\n}\n\ntype ProductDetailsBook implements ProductDetails {\n country: String\n pages: Int\n}\n\ntype ProductDetailsFurniture implements ProductDetails {\n country: String\n color: String\n}\n\ntype Query {\n user(id: ID!): User @join__field(graph: ACCOUNTS)\n me: User @join__field(graph: ACCOUNTS)\n book(isbn: String!): Book @join__field(graph: BOOKS)\n books: [Book] @join__field(graph: BOOKS)\n library(id: ID!): Library @join__field(graph: BOOKS)\n body: Body! @join__field(graph: DOCUMENTS)\n product(upc: String!): Product @join__field(graph: PRODUCT)\n vehicle(id: String!): Vehicle @join__field(graph: PRODUCT)\n topProducts(first: Int = 5): [Product] @join__field(graph: PRODUCT)\n topCars(first: Int = 5): [Car] @join__field(graph: PRODUCT)\n topReviews(first: Int = 5): [Review] @join__field(graph: REVIEWS)\n}\n\ntype Review\n@join__owner(graph: REVIEWS)\n@join__type(graph: REVIEWS, key: \"id\")\n{\n id: ID! @join__field(graph: REVIEWS)\n body(format: Boolean = false): String @join__field(graph: REVIEWS)\n author: User @join__field(graph: REVIEWS, provides: \"username\")\n product: Product @join__field(graph: REVIEWS)\n metadata: [MetadataOrError] @join__field(graph: REVIEWS)\n}\n\ntype SMSAccount\n@join__owner(graph: ACCOUNTS)\n@join__type(graph: ACCOUNTS, key: \"number\")\n{\n number: String @join__field(graph: ACCOUNTS)\n}\n\ntype Text implements NamedObject {\n name: String!\n attributes: TextAttributes!\n}\n\ntype TextAttributes {\n bold: Boolean\n text: String\n}\n\nunion Thing = Car | Ikea\n\ninput UpdateReviewInput {\n id: ID!\n body: String\n}\n\ntype User\n@join__owner(graph: ACCOUNTS)\n@join__type(graph: ACCOUNTS, key: \"id\")\n@join__type(graph: ACCOUNTS, key: \"username name{first last}\")\n@join__type(graph: INVENTORY, key: \"id\")\n@join__type(graph: PRODUCT, key: \"id\")\n@join__type(graph: REVIEWS, key: \"id\")\n{\n id: ID! @join__field(graph: ACCOUNTS)\n name: Name @join__field(graph: ACCOUNTS)\n username: String @join__field(graph: ACCOUNTS)\n birthDate(locale: String): String @join__field(graph: ACCOUNTS)\n account: AccountType @join__field(graph: ACCOUNTS)\n metadata: [UserMetadata] @join__field(graph: ACCOUNTS)\n goodDescription: Boolean @join__field(graph: INVENTORY, requires: \"metadata{description}\")\n vehicle: Vehicle @join__field(graph: PRODUCT)\n thing: Thing @join__field(graph: PRODUCT)\n reviews: [Review] @join__field(graph: REVIEWS)\n numberOfReviews: Int! @join__field(graph: REVIEWS)\n goodAddress: Boolean @join__field(graph: REVIEWS, requires: \"metadata{address}\")\n}\n\ntype UserMetadata {\n name: String\n address: String\n description: String\n}\n\ntype Van implements Vehicle\n@join__owner(graph: PRODUCT)\n@join__type(graph: PRODUCT, key: \"id\")\n@join__type(graph: REVIEWS, key: \"id\")\n{\n id: String! @join__field(graph: PRODUCT)\n description: String @join__field(graph: PRODUCT)\n price: String @join__field(graph: PRODUCT)\n retailPrice: String @join__field(graph: REVIEWS, requires: \"price\")\n}\n\ninterface Vehicle {\n id: String!\n description: String\n price: String\n retailPrice: String\n}", }, }, schema_definition: 0..153 @17 SchemaDefinition { description: None, directives: [ Component { origin: Definition, node: 7..59 @17 Directive { name: "core", arguments: [ 13..58 @17 Argument { name: "feature", value: 22..58 @17 String( "https://specs.apollo.dev/core/v0.1", ), }, ], }, }, Component { origin: Definition, node: 61..113 @17 Directive { name: "core", arguments: [ 67..112 @17 Argument { name: "feature", value: 76..112 @17 String( "https://specs.apollo.dev/join/v0.1", ), }, ], }, }, ], query: Some( ComponentName { origin: Definition, name: "Query", }, ), mutation: Some( ComponentName { origin: Definition, name: "Mutation", }, ), subscription: None, }, directive_definitions: { "skip": built_in_directive!("skip"), "include": built_in_directive!("include"), "deprecated": built_in_directive!("deprecated"), "specifiedBy": built_in_directive!("specifiedBy"), "core": 155..209 @17 DirectiveDefinition { description: None, name: "core", arguments: [ 171..187 @17 InputValueDefinition { description: None, name: "feature", ty: 180..187 @17 NonNullNamed( "String", ), default_value: None, directives: [], }, ], repeatable: true, locations: [ "SCHEMA", ], }, "join__field": 210..324 @17 DirectiveDefinition { description: None, name: "join__field", arguments: [ 233..251 @17 InputValueDefinition { description: None, name: "graph", ty: 240..251 @17 Named( "join__Graph", ), default_value: None, directives: [], }, 253..277 @17 InputValueDefinition { description: None, name: "requires", ty: 263..277 @17 Named( "join__FieldSet", ), default_value: None, directives: [], }, 279..303 @17 InputValueDefinition { description: None, name: "provides", ty: 289..303 @17 Named( "join__FieldSet", ), default_value: None, directives: [], }, ], repeatable: false, locations: [ "FIELD_DEFINITION", ], }, "join__type": 325..421 @17 DirectiveDefinition { description: None, name: "join__type", arguments: [ 347..366 @17 InputValueDefinition { description: None, name: "graph", ty: 354..366 @17 NonNullNamed( "join__Graph", ), default_value: None, directives: [], }, 368..387 @17 InputValueDefinition { description: None, name: "key", ty: 373..387 @17 Named( "join__FieldSet", ), default_value: None, directives: [], }, ], repeatable: true, locations: [ "OBJECT", "INTERFACE", ], }, "join__owner": 422..487 @17 DirectiveDefinition { description: None, name: "join__owner", arguments: [ 445..464 @17 InputValueDefinition { description: None, name: "graph", ty: 452..464 @17 NonNullNamed( "join__Graph", ), default_value: None, directives: [], }, ], repeatable: false, locations: [ "OBJECT", "INTERFACE", ], }, "join__graph": 488..553 @17 DirectiveDefinition { description: None, name: "join__graph", arguments: [ 511..524 @17 InputValueDefinition { description: None, name: "name", ty: 517..524 @17 NonNullNamed( "String", ), default_value: None, directives: [], }, 526..538 @17 InputValueDefinition { description: None, name: "url", ty: 531..538 @17 NonNullNamed( "String", ), default_value: None, directives: [], }, ], repeatable: false, locations: [ "ENUM_VALUE", ], }, "stream": 554..580 @17 DirectiveDefinition { description: None, name: "stream", arguments: [], repeatable: false, locations: [ "FIELD", ], }, "transform": 581..625 @17 DirectiveDefinition { description: None, name: "transform", arguments: [ 602..615 @17 InputValueDefinition { description: None, name: "from", ty: 608..615 @17 NonNullNamed( "String", ), default_value: None, directives: [], }, ], repeatable: false, locations: [ "FIELD", ], }, }, types: { "__Schema": built_in_type!("__Schema"), "__Type": built_in_type!("__Type"), "__TypeKind": built_in_type!("__TypeKind"), "__Field": built_in_type!("__Field"), "__InputValue": built_in_type!("__InputValue"), "__EnumValue": built_in_type!("__EnumValue"), "__Directive": built_in_type!("__Directive"), "__DirectiveLocation": built_in_type!("__DirectiveLocation"), "Int": built_in_type!("Int"), "String": built_in_type!("String"), "Boolean": built_in_type!("Boolean"), "ID": built_in_type!("ID"), "AccountType": Union( 627..675 @17 UnionType { description: None, name: "AccountType", directives: [], members: { ComponentName { origin: Definition, name: "PasswordAccount", }, ComponentName { origin: Definition, name: "SMSAccount", }, }, }, ), "Amazon": Object( 677..711 @17 ObjectType { description: None, name: "Amazon", implements_interfaces: {}, directives: [], fields: { "referrer": Component { origin: Definition, node: 693..709 @17 FieldDefinition { description: None, name: "referrer", arguments: [], ty: Named( "String", ), directives: [], }, }, }, }, ), "Body": Union( 713..738 @17 UnionType { description: None, name: "Body", directives: [], members: { ComponentName { origin: Definition, name: "Image", }, ComponentName { origin: Definition, name: "Text", }, }, }, ), "Book": Object( 740..1725 @17 ObjectType { description: None, name: "Book", implements_interfaces: { ComponentName { origin: Definition, name: "Product", }, }, directives: [ Component { origin: Definition, node: 769..795 @17 Directive { name: "join__owner", arguments: [ 782..794 @17 Argument { name: "graph", value: 789..794 @17 Enum( "BOOKS", ), }, ], }, }, Component { origin: Definition, node: 796..834 @17 Directive { name: "join__type", arguments: [ 808..820 @17 Argument { name: "graph", value: 815..820 @17 Enum( "BOOKS", ), }, 822..833 @17 Argument { name: "key", value: 827..833 @17 String( "isbn", ), }, ], }, }, Component { origin: Definition, node: 835..877 @17 Directive { name: "join__type", arguments: [ 847..863 @17 Argument { name: "graph", value: 854..863 @17 Enum( "INVENTORY", ), }, 865..876 @17 Argument { name: "key", value: 870..876 @17 String( "isbn", ), }, ], }, }, Component { origin: Definition, node: 878..918 @17 Directive { name: "join__type", arguments: [ 890..904 @17 Argument { name: "graph", value: 897..904 @17 Enum( "PRODUCT", ), }, 906..917 @17 Argument { name: "key", value: 911..917 @17 String( "isbn", ), }, ], }, }, Component { origin: Definition, node: 919..959 @17 Directive { name: "join__type", arguments: [ 931..945 @17 Argument { name: "graph", value: 938..945 @17 Enum( "REVIEWS", ), }, 947..958 @17 Argument { name: "key", value: 952..958 @17 String( "isbn", ), }, ], }, }, ], fields: { "isbn": Component { origin: Definition, node: 964..1004 @17 FieldDefinition { description: None, name: "isbn", arguments: [], ty: NonNullNamed( "String", ), directives: [ 978..1004 @17 Directive { name: "join__field", arguments: [ 991..1003 @17 Argument { name: "graph", value: 998..1003 @17 Enum( "BOOKS", ), }, ], }, ], }, }, "title": Component { origin: Definition, node: 1007..1047 @17 FieldDefinition { description: None, name: "title", arguments: [], ty: Named( "String", ), directives: [ 1021..1047 @17 Directive { name: "join__field", arguments: [ 1034..1046 @17 Argument { name: "graph", value: 1041..1046 @17 Enum( "BOOKS", ), }, ], }, ], }, }, "year": Component { origin: Definition, node: 1050..1086 @17 FieldDefinition { description: None, name: "year", arguments: [], ty: Named( "Int", ), directives: [ 1060..1086 @17 Directive { name: "join__field", arguments: [ 1073..1085 @17 Argument { name: "graph", value: 1080..1085 @17 Enum( "BOOKS", ), }, ], }, ], }, }, "similarBooks": Component { origin: Definition, node: 1089..1137 @17 FieldDefinition { description: None, name: "similarBooks", arguments: [], ty: NonNullList( Named( "Book", ), ), directives: [ 1111..1137 @17 Directive { name: "join__field", arguments: [ 1124..1136 @17 Argument { name: "graph", value: 1131..1136 @17 Enum( "BOOKS", ), }, ], }, ], }, }, "metadata": Component { origin: Definition, node: 1140..1194 @17 FieldDefinition { description: None, name: "metadata", arguments: [], ty: List( Named( "MetadataOrError", ), ), directives: [ 1168..1194 @17 Directive { name: "join__field", arguments: [ 1181..1193 @17 Argument { name: "graph", value: 1188..1193 @17 Enum( "BOOKS", ), }, ], }, ], }, }, "inStock": Component { origin: Definition, node: 1197..1244 @17 FieldDefinition { description: None, name: "inStock", arguments: [], ty: Named( "Boolean", ), directives: [ 1214..1244 @17 Directive { name: "join__field", arguments: [ 1227..1243 @17 Argument { name: "graph", value: 1234..1243 @17 Enum( "INVENTORY", ), }, ], }, ], }, }, "isCheckedOut": Component { origin: Definition, node: 1247..1299 @17 FieldDefinition { description: None, name: "isCheckedOut", arguments: [], ty: Named( "Boolean", ), directives: [ 1269..1299 @17 Directive { name: "join__field", arguments: [ 1282..1298 @17 Argument { name: "graph", value: 1289..1298 @17 Enum( "INVENTORY", ), }, ], }, ], }, }, "upc": Component { origin: Definition, node: 1302..1343 @17 FieldDefinition { description: None, name: "upc", arguments: [], ty: NonNullNamed( "String", ), directives: [ 1315..1343 @17 Directive { name: "join__field", arguments: [ 1328..1342 @17 Argument { name: "graph", value: 1335..1342 @17 Enum( "PRODUCT", ), }, ], }, ], }, }, "sku": Component { origin: Definition, node: 1346..1387 @17 FieldDefinition { description: None, name: "sku", arguments: [], ty: NonNullNamed( "String", ), directives: [ 1359..1387 @17 Directive { name: "join__field", arguments: [ 1372..1386 @17 Argument { name: "graph", value: 1379..1386 @17 Enum( "PRODUCT", ), }, ], }, ], }, }, "name": Component { origin: Definition, node: 1390..1480 @17 FieldDefinition { description: None, name: "name", arguments: [ 1395..1418 @17 InputValueDefinition { description: None, name: "delimeter", ty: 1406..1412 @17 Named( "String", ), default_value: Some( 1415..1418 @17 String( " ", ), ), directives: [], }, ], ty: Named( "String", ), directives: [ 1428..1480 @17 Directive { name: "join__field", arguments: [ 1441..1455 @17 Argument { name: "graph", value: 1448..1455 @17 Enum( "PRODUCT", ), }, 1457..1479 @17 Argument { name: "requires", value: 1467..1479 @17 String( "title year", ), }, ], }, ], }, }, "price": Component { origin: Definition, node: 1483..1525 @17 FieldDefinition { description: None, name: "price", arguments: [], ty: Named( "String", ), directives: [ 1497..1525 @17 Directive { name: "join__field", arguments: [ 1510..1524 @17 Argument { name: "graph", value: 1517..1524 @17 Enum( "PRODUCT", ), }, ], }, ], }, }, "details": Component { origin: Definition, node: 1528..1584 @17 FieldDefinition { description: None, name: "details", arguments: [], ty: Named( "ProductDetailsBook", ), directives: [ 1556..1584 @17 Directive { name: "join__field", arguments: [ 1569..1583 @17 Argument { name: "graph", value: 1576..1583 @17 Enum( "PRODUCT", ), }, ], }, ], }, }, "reviews": Component { origin: Definition, node: 1587..1633 @17 FieldDefinition { description: None, name: "reviews", arguments: [], ty: List( Named( "Review", ), ), directives: [ 1605..1633 @17 Directive { name: "join__field", arguments: [ 1618..1632 @17 Argument { name: "graph", value: 1625..1632 @17 Enum( "REVIEWS", ), }, ], }, ], }, }, "relatedReviews": Component { origin: Definition, node: 1636..1723 @17 FieldDefinition { description: None, name: "relatedReviews", arguments: [], ty: NonNullList( NonNullNamed( "Review", ), ), directives: [ 1663..1723 @17 Directive { name: "join__field", arguments: [ 1676..1690 @17 Argument { name: "graph", value: 1683..1690 @17 Enum( "REVIEWS", ), }, 1692..1722 @17 Argument { name: "requires", value: 1702..1722 @17 String( "similarBooks{isbn}", ), }, ], }, ], }, }, }, }, ), "Brand": Union( 1727..1754 @17 UnionType { description: None, name: "Brand", directives: [], members: { ComponentName { origin: Definition, name: "Ikea", }, ComponentName { origin: Definition, name: "Amazon", }, }, }, ), "Car": Object( 1756..2103 @17 ObjectType { description: None, name: "Car", implements_interfaces: { ComponentName { origin: Definition, name: "Vehicle", }, }, directives: [ Component { origin: Definition, node: 1784..1812 @17 Directive { name: "join__owner", arguments: [ 1797..1811 @17 Argument { name: "graph", value: 1804..1811 @17 Enum( "PRODUCT", ), }, ], }, }, Component { origin: Definition, node: 1813..1851 @17 Directive { name: "join__type", arguments: [ 1825..1839 @17 Argument { name: "graph", value: 1832..1839 @17 Enum( "PRODUCT", ), }, 1841..1850 @17 Argument { name: "key", value: 1846..1850 @17 String( "id", ), }, ], }, }, Component { origin: Definition, node: 1852..1890 @17 Directive { name: "join__type", arguments: [ 1864..1878 @17 Argument { name: "graph", value: 1871..1878 @17 Enum( "REVIEWS", ), }, 1880..1889 @17 Argument { name: "key", value: 1885..1889 @17 String( "id", ), }, ], }, }, ], fields: { "id": Component { origin: Definition, node: 1895..1935 @17 FieldDefinition { description: None, name: "id", arguments: [], ty: NonNullNamed( "String", ), directives: [ 1907..1935 @17 Directive { name: "join__field", arguments: [ 1920..1934 @17 Argument { name: "graph", value: 1927..1934 @17 Enum( "PRODUCT", ), }, ], }, ], }, }, "description": Component { origin: Definition, node: 1938..1986 @17 FieldDefinition { description: None, name: "description", arguments: [], ty: Named( "String", ), directives: [ 1958..1986 @17 Directive { name: "join__field", arguments: [ 1971..1985 @17 Argument { name: "graph", value: 1978..1985 @17 Enum( "PRODUCT", ), }, ], }, ], }, }, "price": Component { origin: Definition, node: 1989..2031 @17 FieldDefinition { description: None, name: "price", arguments: [], ty: Named( "String", ), directives: [ 2003..2031 @17 Directive { name: "join__field", arguments: [ 2016..2030 @17 Argument { name: "graph", value: 2023..2030 @17 Enum( "PRODUCT", ), }, ], }, ], }, }, "retailPrice": Component { origin: Definition, node: 2034..2101 @17 FieldDefinition { description: None, name: "retailPrice", arguments: [], ty: Named( "String", ), directives: [ 2054..2101 @17 Directive { name: "join__field", arguments: [ 2067..2081 @17 Argument { name: "graph", value: 2074..2081 @17 Enum( "REVIEWS", ), }, 2083..2100 @17 Argument { name: "requires", value: 2093..2100 @17 String( "price", ), }, ], }, ], }, }, }, }, ), "Error": Object( 2105..2149 @17 ObjectType { description: None, name: "Error", implements_interfaces: {}, directives: [], fields: { "code": Component { origin: Definition, node: 2120..2129 @17 FieldDefinition { description: None, name: "code", arguments: [], ty: Named( "Int", ), directives: [], }, }, "message": Component { origin: Definition, node: 2132..2147 @17 FieldDefinition { description: None, name: "message", arguments: [], ty: Named( "String", ), directives: [], }, }, }, }, ), "Furniture": Object( 2151..2872 @17 ObjectType { description: None, name: "Furniture", implements_interfaces: { ComponentName { origin: Definition, name: "Product", }, }, directives: [ Component { origin: Definition, node: 2185..2213 @17 Directive { name: "join__owner", arguments: [ 2198..2212 @17 Argument { name: "graph", value: 2205..2212 @17 Enum( "PRODUCT", ), }, ], }, }, Component { origin: Definition, node: 2214..2253 @17 Directive { name: "join__type", arguments: [ 2226..2240 @17 Argument { name: "graph", value: 2233..2240 @17 Enum( "PRODUCT", ), }, 2242..2252 @17 Argument { name: "key", value: 2247..2252 @17 String( "upc", ), }, ], }, }, Component { origin: Definition, node: 2254..2293 @17 Directive { name: "join__type", arguments: [ 2266..2280 @17 Argument { name: "graph", value: 2273..2280 @17 Enum( "PRODUCT", ), }, 2282..2292 @17 Argument { name: "key", value: 2287..2292 @17 String( "sku", ), }, ], }, }, Component { origin: Definition, node: 2294..2335 @17 Directive { name: "join__type", arguments: [ 2306..2322 @17 Argument { name: "graph", value: 2313..2322 @17 Enum( "INVENTORY", ), }, 2324..2334 @17 Argument { name: "key", value: 2329..2334 @17 String( "sku", ), }, ], }, }, Component { origin: Definition, node: 2336..2375 @17 Directive { name: "join__type", arguments: [ 2348..2362 @17 Argument { name: "graph", value: 2355..2362 @17 Enum( "REVIEWS", ), }, 2364..2374 @17 Argument { name: "key", value: 2369..2374 @17 String( "upc", ), }, ], }, }, ], fields: { "upc": Component { origin: Definition, node: 2380..2421 @17 FieldDefinition { description: None, name: "upc", arguments: [], ty: NonNullNamed( "String", ), directives: [ 2393..2421 @17 Directive { name: "join__field", arguments: [ 2406..2420 @17 Argument { name: "graph", value: 2413..2420 @17 Enum( "PRODUCT", ), }, ], }, ], }, }, "sku": Component { origin: Definition, node: 2424..2465 @17 FieldDefinition { description: None, name: "sku", arguments: [], ty: NonNullNamed( "String", ), directives: [ 2437..2465 @17 Directive { name: "join__field", arguments: [ 2450..2464 @17 Argument { name: "graph", value: 2457..2464 @17 Enum( "PRODUCT", ), }, ], }, ], }, }, "name": Component { origin: Definition, node: 2468..2509 @17 FieldDefinition { description: None, name: "name", arguments: [], ty: Named( "String", ), directives: [ 2481..2509 @17 Directive { name: "join__field", arguments: [ 2494..2508 @17 Argument { name: "graph", value: 2501..2508 @17 Enum( "PRODUCT", ), }, ], }, ], }, }, "price": Component { origin: Definition, node: 2512..2554 @17 FieldDefinition { description: None, name: "price", arguments: [], ty: Named( "String", ), directives: [ 2526..2554 @17 Directive { name: "join__field", arguments: [ 2539..2553 @17 Argument { name: "graph", value: 2546..2553 @17 Enum( "PRODUCT", ), }, ], }, ], }, }, "brand": Component { origin: Definition, node: 2557..2598 @17 FieldDefinition { description: None, name: "brand", arguments: [], ty: Named( "Brand", ), directives: [ 2570..2598 @17 Directive { name: "join__field", arguments: [ 2583..2597 @17 Argument { name: "graph", value: 2590..2597 @17 Enum( "PRODUCT", ), }, ], }, ], }, }, "metadata": Component { origin: Definition, node: 2601..2657 @17 FieldDefinition { description: None, name: "metadata", arguments: [], ty: List( Named( "MetadataOrError", ), ), directives: [ 2629..2657 @17 Directive { name: "join__field", arguments: [ 2642..2656 @17 Argument { name: "graph", value: 2649..2656 @17 Enum( "PRODUCT", ), }, ], }, ], }, }, "details": Component { origin: Definition, node: 2660..2721 @17 FieldDefinition { description: None, name: "details", arguments: [], ty: Named( "ProductDetailsFurniture", ), directives: [ 2693..2721 @17 Directive { name: "join__field", arguments: [ 2706..2720 @17 Argument { name: "graph", value: 2713..2720 @17 Enum( "PRODUCT", ), }, ], }, ], }, }, "inStock": Component { origin: Definition, node: 2724..2771 @17 FieldDefinition { description: None, name: "inStock", arguments: [], ty: Named( "Boolean", ), directives: [ 2741..2771 @17 Directive { name: "join__field", arguments: [ 2754..2770 @17 Argument { name: "graph", value: 2761..2770 @17 Enum( "INVENTORY", ), }, ], }, ], }, }, "isHeavy": Component { origin: Definition, node: 2774..2821 @17 FieldDefinition { description: None, name: "isHeavy", arguments: [], ty: Named( "Boolean", ), directives: [ 2791..2821 @17 Directive { name: "join__field", arguments: [ 2804..2820 @17 Argument { name: "graph", value: 2811..2820 @17 Enum( "INVENTORY", ), }, ], }, ], }, }, "reviews": Component { origin: Definition, node: 2824..2870 @17 FieldDefinition { description: None, name: "reviews", arguments: [], ty: List( Named( "Review", ), ), directives: [ 2842..2870 @17 Directive { name: "join__field", arguments: [ 2855..2869 @17 Argument { name: "graph", value: 2862..2869 @17 Enum( "REVIEWS", ), }, ], }, ], }, }, }, }, ), "Ikea": Object( 2874..2900 @17 ObjectType { description: None, name: "Ikea", implements_interfaces: {}, directives: [], fields: { "asile": Component { origin: Definition, node: 2888..2898 @17 FieldDefinition { description: None, name: "asile", arguments: [], ty: Named( "Int", ), directives: [], }, }, }, }, ), "Image": Object( 2902..2986 @17 ObjectType { description: None, name: "Image", implements_interfaces: { ComponentName { origin: Definition, name: "NamedObject", }, }, directives: [], fields: { "name": Component { origin: Definition, node: 2940..2953 @17 FieldDefinition { description: None, name: "name", arguments: [], ty: NonNullNamed( "String", ), directives: [], }, }, "attributes": Component { origin: Definition, node: 2956..2984 @17 FieldDefinition { description: None, name: "attributes", arguments: [], ty: NonNullNamed( "ImageAttributes", ), directives: [], }, }, }, }, ), "ImageAttributes": Object( 2988..3027 @17 ObjectType { description: None, name: "ImageAttributes", implements_interfaces: {}, directives: [], fields: { "url": Component { origin: Definition, node: 3013..3025 @17 FieldDefinition { description: None, name: "url", arguments: [], ty: NonNullNamed( "String", ), directives: [], }, }, }, }, ), "join__FieldSet": Scalar( 3029..3097 @17 ScalarType { description: None, name: "join__FieldSet", directives: [ Component { origin: Definition, node: 3051..3097 @17 Directive { name: "specifiedBy", arguments: [ 3064..3096 @17 Argument { name: "url", value: 3069..3096 @17 String( "https://spec.graphql.org/", ), }, ], }, }, ], }, ), "join__Graph": Enum( 3099..3401 @17 EnumType { description: None, name: "join__Graph", directives: [], values: { "ACCOUNTS": Component { origin: Definition, node: 3118..3165 @17 EnumValueDefinition { description: None, value: "ACCOUNTS", directives: [ 3127..3165 @17 Directive { name: "join__graph", arguments: [ 3140..3156 @17 Argument { name: "name", value: 3146..3156 @17 String( "accounts", ), }, 3157..3164 @17 Argument { name: "url", value: 3162..3164 @17 String( "", ), }, ], }, ], }, }, "BOOKS": Component { origin: Definition, node: 3166..3207 @17 EnumValueDefinition { description: None, value: "BOOKS", directives: [ 3172..3207 @17 Directive { name: "join__graph", arguments: [ 3185..3198 @17 Argument { name: "name", value: 3191..3198 @17 String( "books", ), }, 3199..3206 @17 Argument { name: "url", value: 3204..3206 @17 String( "", ), }, ], }, ], }, }, "DOCUMENTS": Component { origin: Definition, node: 3208..3257 @17 EnumValueDefinition { description: None, value: "DOCUMENTS", directives: [ 3218..3257 @17 Directive { name: "join__graph", arguments: [ 3231..3248 @17 Argument { name: "name", value: 3237..3248 @17 String( "documents", ), }, 3249..3256 @17 Argument { name: "url", value: 3254..3256 @17 String( "", ), }, ], }, ], }, }, "INVENTORY": Component { origin: Definition, node: 3258..3307 @17 EnumValueDefinition { description: None, value: "INVENTORY", directives: [ 3268..3307 @17 Directive { name: "join__graph", arguments: [ 3281..3298 @17 Argument { name: "name", value: 3287..3298 @17 String( "inventory", ), }, 3299..3306 @17 Argument { name: "url", value: 3304..3306 @17 String( "", ), }, ], }, ], }, }, "PRODUCT": Component { origin: Definition, node: 3308..3353 @17 EnumValueDefinition { description: None, value: "PRODUCT", directives: [ 3316..3353 @17 Directive { name: "join__graph", arguments: [ 3329..3344 @17 Argument { name: "name", value: 3335..3344 @17 String( "product", ), }, 3345..3352 @17 Argument { name: "url", value: 3350..3352 @17 String( "", ), }, ], }, ], }, }, "REVIEWS": Component { origin: Definition, node: 3354..3399 @17 EnumValueDefinition { description: None, value: "REVIEWS", directives: [ 3362..3399 @17 Directive { name: "join__graph", arguments: [ 3375..3390 @17 Argument { name: "name", value: 3381..3390 @17 String( "reviews", ), }, 3391..3398 @17 Argument { name: "url", value: 3396..3398 @17 String( "", ), }, ], }, ], }, }, }, }, ), "KeyValue": Object( 3403..3452 @17 ObjectType { description: None, name: "KeyValue", implements_interfaces: {}, directives: [], fields: { "key": Component { origin: Definition, node: 3421..3433 @17 FieldDefinition { description: None, name: "key", arguments: [], ty: NonNullNamed( "String", ), directives: [], }, }, "value": Component { origin: Definition, node: 3436..3450 @17 FieldDefinition { description: None, name: "value", arguments: [], ty: NonNullNamed( "String", ), directives: [], }, }, }, }, ), "Library": Object( 3454..3734 @17 ObjectType { description: None, name: "Library", implements_interfaces: {}, directives: [ Component { origin: Definition, node: 3467..3493 @17 Directive { name: "join__owner", arguments: [ 3480..3492 @17 Argument { name: "graph", value: 3487..3492 @17 Enum( "BOOKS", ), }, ], }, }, Component { origin: Definition, node: 3494..3530 @17 Directive { name: "join__type", arguments: [ 3506..3518 @17 Argument { name: "graph", value: 3513..3518 @17 Enum( "BOOKS", ), }, 3520..3529 @17 Argument { name: "key", value: 3525..3529 @17 String( "id", ), }, ], }, }, Component { origin: Definition, node: 3531..3570 @17 Directive { name: "join__type", arguments: [ 3543..3558 @17 Argument { name: "graph", value: 3550..3558 @17 Enum( "ACCOUNTS", ), }, 3560..3569 @17 Argument { name: "key", value: 3565..3569 @17 String( "id", ), }, ], }, }, ], fields: { "id": Component { origin: Definition, node: 3575..3609 @17 FieldDefinition { description: None, name: "id", arguments: [], ty: NonNullNamed( "ID", ), directives: [ 3583..3609 @17 Directive { name: "join__field", arguments: [ 3596..3608 @17 Argument { name: "graph", value: 3603..3608 @17 Enum( "BOOKS", ), }, ], }, ], }, }, "name": Component { origin: Definition, node: 3612..3651 @17 FieldDefinition { description: None, name: "name", arguments: [], ty: Named( "String", ), directives: [ 3625..3651 @17 Directive { name: "join__field", arguments: [ 3638..3650 @17 Argument { name: "graph", value: 3645..3650 @17 Enum( "BOOKS", ), }, ], }, ], }, }, "userAccount": Component { origin: Definition, node: 3654..3732 @17 FieldDefinition { description: None, name: "userAccount", arguments: [ 3666..3677 @17 InputValueDefinition { description: None, name: "id", ty: 3670..3673 @17 NonNullNamed( "ID", ), default_value: Some( 3676..3677 @17 Int( 1, ), ), directives: [], }, ], ty: Named( "User", ), directives: [ 3685..3732 @17 Directive { name: "join__field", arguments: [ 3698..3713 @17 Argument { name: "graph", value: 3705..3713 @17 Enum( "ACCOUNTS", ), }, 3715..3731 @17 Argument { name: "requires", value: 3725..3731 @17 String( "name", ), }, ], }, ], }, }, }, }, ), "MetadataOrError": Union( 3736..3776 @17 UnionType { description: None, name: "MetadataOrError", directives: [], members: { ComponentName { origin: Definition, name: "KeyValue", }, ComponentName { origin: Definition, name: "Error", }, }, }, ), "Mutation": Object( 3778..4102 @17 ObjectType { description: None, name: "Mutation", implements_interfaces: {}, directives: [], fields: { "login": Component { origin: Definition, node: 3796..3875 @17 FieldDefinition { description: None, name: "login", arguments: [ 3802..3819 @17 InputValueDefinition { description: None, name: "username", ty: 3812..3819 @17 NonNullNamed( "String", ), default_value: None, directives: [], }, 3821..3838 @17 InputValueDefinition { description: None, name: "password", ty: 3831..3838 @17 NonNullNamed( "String", ), default_value: None, directives: [], }, ], ty: Named( "User", ), directives: [ 3846..3875 @17 Directive { name: "join__field", arguments: [ 3859..3874 @17 Argument { name: "graph", value: 3866..3874 @17 Enum( "ACCOUNTS", ), }, ], }, ], }, }, "reviewProduct": Component { origin: Definition, node: 3878..3958 @17 FieldDefinition { description: None, name: "reviewProduct", arguments: [ 3892..3904 @17 InputValueDefinition { description: None, name: "upc", ty: 3897..3904 @17 NonNullNamed( "String", ), default_value: None, directives: [], }, 3906..3919 @17 InputValueDefinition { description: None, name: "body", ty: 3912..3919 @17 NonNullNamed( "String", ), default_value: None, directives: [], }, ], ty: Named( "Product", ), directives: [ 3930..3958 @17 Directive { name: "join__field", arguments: [ 3943..3957 @17 Argument { name: "graph", value: 3950..3957 @17 Enum( "REVIEWS", ), }, ], }, ], }, }, "updateReview": Component { origin: Definition, node: 3961..4038 @17 FieldDefinition { description: None, name: "updateReview", arguments: [ 3974..4000 @17 InputValueDefinition { description: None, name: "review", ty: 3982..4000 @17 NonNullNamed( "UpdateReviewInput", ), default_value: None, directives: [], }, ], ty: Named( "Review", ), directives: [ 4010..4038 @17 Directive { name: "join__field", arguments: [ 4023..4037 @17 Argument { name: "graph", value: 4030..4037 @17 Enum( "REVIEWS", ), }, ], }, ], }, }, "deleteReview": Component { origin: Definition, node: 4041..4100 @17 FieldDefinition { description: None, name: "deleteReview", arguments: [ 4054..4061 @17 InputValueDefinition { description: None, name: "id", ty: 4058..4061 @17 NonNullNamed( "ID", ), default_value: None, directives: [], }, ], ty: Named( "Boolean", ), directives: [ 4072..4100 @17 Directive { name: "join__field", arguments: [ 4085..4099 @17 Argument { name: "graph", value: 4092..4099 @17 Enum( "REVIEWS", ), }, ], }, ], }, }, }, }, ), "Name": Object( 4104..4148 @17 ObjectType { description: None, name: "Name", implements_interfaces: {}, directives: [], fields: { "first": Component { origin: Definition, node: 4118..4131 @17 FieldDefinition { description: None, name: "first", arguments: [], ty: Named( "String", ), directives: [], }, }, "last": Component { origin: Definition, node: 4134..4146 @17 FieldDefinition { description: None, name: "last", arguments: [], ty: Named( "String", ), directives: [], }, }, }, }, ), "NamedObject": Interface( 4150..4191 @17 InterfaceType { description: None, name: "NamedObject", implements_interfaces: {}, directives: [], fields: { "name": Component { origin: Definition, node: 4176..4189 @17 FieldDefinition { description: None, name: "name", arguments: [], ty: NonNullNamed( "String", ), directives: [], }, }, }, }, ), "PasswordAccount": Object( 4193..4337 @17 ObjectType { description: None, name: "PasswordAccount", implements_interfaces: {}, directives: [ Component { origin: Definition, node: 4214..4243 @17 Directive { name: "join__owner", arguments: [ 4227..4242 @17 Argument { name: "graph", value: 4234..4242 @17 Enum( "ACCOUNTS", ), }, ], }, }, Component { origin: Definition, node: 4244..4286 @17 Directive { name: "join__type", arguments: [ 4256..4271 @17 Argument { name: "graph", value: 4263..4271 @17 Enum( "ACCOUNTS", ), }, 4273..4285 @17 Argument { name: "key", value: 4278..4285 @17 String( "email", ), }, ], }, }, ], fields: { "email": Component { origin: Definition, node: 4291..4335 @17 FieldDefinition { description: None, name: "email", arguments: [], ty: NonNullNamed( "String", ), directives: [ 4306..4335 @17 Directive { name: "join__field", arguments: [ 4319..4334 @17 Argument { name: "graph", value: 4326..4334 @17 Enum( "ACCOUNTS", ), }, ], }, ], }, }, }, }, ), "Product": Interface( 4339..4486 @17 InterfaceType { description: None, name: "Product", implements_interfaces: {}, directives: [], fields: { "upc": Component { origin: Definition, node: 4361..4373 @17 FieldDefinition { description: None, name: "upc", arguments: [], ty: NonNullNamed( "String", ), directives: [], }, }, "sku": Component { origin: Definition, node: 4376..4388 @17 FieldDefinition { description: None, name: "sku", arguments: [], ty: NonNullNamed( "String", ), directives: [], }, }, "name": Component { origin: Definition, node: 4391..4403 @17 FieldDefinition { description: None, name: "name", arguments: [], ty: Named( "String", ), directives: [], }, }, "price": Component { origin: Definition, node: 4406..4419 @17 FieldDefinition { description: None, name: "price", arguments: [], ty: Named( "String", ), directives: [], }, }, "details": Component { origin: Definition, node: 4422..4445 @17 FieldDefinition { description: None, name: "details", arguments: [], ty: Named( "ProductDetails", ), directives: [], }, }, "inStock": Component { origin: Definition, node: 4448..4464 @17 FieldDefinition { description: None, name: "inStock", arguments: [], ty: Named( "Boolean", ), directives: [], }, }, "reviews": Component { origin: Definition, node: 4467..4484 @17 FieldDefinition { description: None, name: "reviews", arguments: [], ty: List( Named( "Review", ), ), directives: [], }, }, }, }, ), "ProductDetails": Interface( 4488..4534 @17 InterfaceType { description: None, name: "ProductDetails", implements_interfaces: {}, directives: [], fields: { "country": Component { origin: Definition, node: 4517..4532 @17 FieldDefinition { description: None, name: "country", arguments: [], ty: Named( "String", ), directives: [], }, }, }, }, ), "ProductDetailsBook": Object( 4536..4620 @17 ObjectType { description: None, name: "ProductDetailsBook", implements_interfaces: { ComponentName { origin: Definition, name: "ProductDetails", }, }, directives: [], fields: { "country": Component { origin: Definition, node: 4590..4605 @17 FieldDefinition { description: None, name: "country", arguments: [], ty: Named( "String", ), directives: [], }, }, "pages": Component { origin: Definition, node: 4608..4618 @17 FieldDefinition { description: None, name: "pages", arguments: [], ty: Named( "Int", ), directives: [], }, }, }, }, ), "ProductDetailsFurniture": Object( 4622..4714 @17 ObjectType { description: None, name: "ProductDetailsFurniture", implements_interfaces: { ComponentName { origin: Definition, name: "ProductDetails", }, }, directives: [], fields: { "country": Component { origin: Definition, node: 4681..4696 @17 FieldDefinition { description: None, name: "country", arguments: [], ty: Named( "String", ), directives: [], }, }, "color": Component { origin: Definition, node: 4699..4712 @17 FieldDefinition { description: None, name: "color", arguments: [], ty: Named( "String", ), directives: [], }, }, }, }, ), "Query": Object( 4716..5344 @17 ObjectType { description: None, name: "Query", implements_interfaces: {}, directives: [], fields: { "user": Component { origin: Definition, node: 4731..4780 @17 FieldDefinition { description: None, name: "user", arguments: [ 4736..4743 @17 InputValueDefinition { description: None, name: "id", ty: 4740..4743 @17 NonNullNamed( "ID", ), default_value: None, directives: [], }, ], ty: Named( "User", ), directives: [ 4751..4780 @17 Directive { name: "join__field", arguments: [ 4764..4779 @17 Argument { name: "graph", value: 4771..4779 @17 Enum( "ACCOUNTS", ), }, ], }, ], }, }, "me": Component { origin: Definition, node: 4783..4821 @17 FieldDefinition { description: None, name: "me", arguments: [], ty: Named( "User", ), directives: [ 4792..4821 @17 Directive { name: "join__field", arguments: [ 4805..4820 @17 Argument { name: "graph", value: 4812..4820 @17 Enum( "ACCOUNTS", ), }, ], }, ], }, }, "book": Component { origin: Definition, node: 4824..4876 @17 FieldDefinition { description: None, name: "book", arguments: [ 4829..4842 @17 InputValueDefinition { description: None, name: "isbn", ty: 4835..4842 @17 NonNullNamed( "String", ), default_value: None, directives: [], }, ], ty: Named( "Book", ), directives: [ 4850..4876 @17 Directive { name: "join__field", arguments: [ 4863..4875 @17 Argument { name: "graph", value: 4870..4875 @17 Enum( "BOOKS", ), }, ], }, ], }, }, "books": Component { origin: Definition, node: 4879..4919 @17 FieldDefinition { description: None, name: "books", arguments: [], ty: List( Named( "Book", ), ), directives: [ 4893..4919 @17 Directive { name: "join__field", arguments: [ 4906..4918 @17 Argument { name: "graph", value: 4913..4918 @17 Enum( "BOOKS", ), }, ], }, ], }, }, "library": Component { origin: Definition, node: 4922..4974 @17 FieldDefinition { description: None, name: "library", arguments: [ 4930..4937 @17 InputValueDefinition { description: None, name: "id", ty: 4934..4937 @17 NonNullNamed( "ID", ), default_value: None, directives: [], }, ], ty: Named( "Library", ), directives: [ 4948..4974 @17 Directive { name: "join__field", arguments: [ 4961..4973 @17 Argument { name: "graph", value: 4968..4973 @17 Enum( "BOOKS", ), }, ], }, ], }, }, "body": Component { origin: Definition, node: 4977..5019 @17 FieldDefinition { description: None, name: "body", arguments: [], ty: NonNullNamed( "Body", ), directives: [ 4989..5019 @17 Directive { name: "join__field", arguments: [ 5002..5018 @17 Argument { name: "graph", value: 5009..5018 @17 Enum( "DOCUMENTS", ), }, ], }, ], }, }, "product": Component { origin: Definition, node: 5022..5081 @17 FieldDefinition { description: None, name: "product", arguments: [ 5030..5042 @17 InputValueDefinition { description: None, name: "upc", ty: 5035..5042 @17 NonNullNamed( "String", ), default_value: None, directives: [], }, ], ty: Named( "Product", ), directives: [ 5053..5081 @17 Directive { name: "join__field", arguments: [ 5066..5080 @17 Argument { name: "graph", value: 5073..5080 @17 Enum( "PRODUCT", ), }, ], }, ], }, }, "vehicle": Component { origin: Definition, node: 5084..5142 @17 FieldDefinition { description: None, name: "vehicle", arguments: [ 5092..5103 @17 InputValueDefinition { description: None, name: "id", ty: 5096..5103 @17 NonNullNamed( "String", ), default_value: None, directives: [], }, ], ty: Named( "Vehicle", ), directives: [ 5114..5142 @17 Directive { name: "join__field", arguments: [ 5127..5141 @17 Argument { name: "graph", value: 5134..5141 @17 Enum( "PRODUCT", ), }, ], }, ], }, }, "topProducts": Component { origin: Definition, node: 5145..5212 @17 FieldDefinition { description: None, name: "topProducts", arguments: [ 5157..5171 @17 InputValueDefinition { description: None, name: "first", ty: 5164..5167 @17 Named( "Int", ), default_value: Some( 5170..5171 @17 Int( 5, ), ), directives: [], }, ], ty: List( Named( "Product", ), ), directives: [ 5184..5212 @17 Directive { name: "join__field", arguments: [ 5197..5211 @17 Argument { name: "graph", value: 5204..5211 @17 Enum( "PRODUCT", ), }, ], }, ], }, }, "topCars": Component { origin: Definition, node: 5215..5274 @17 FieldDefinition { description: None, name: "topCars", arguments: [ 5223..5237 @17 InputValueDefinition { description: None, name: "first", ty: 5230..5233 @17 Named( "Int", ), default_value: Some( 5236..5237 @17 Int( 5, ), ), directives: [], }, ], ty: List( Named( "Car", ), ), directives: [ 5246..5274 @17 Directive { name: "join__field", arguments: [ 5259..5273 @17 Argument { name: "graph", value: 5266..5273 @17 Enum( "PRODUCT", ), }, ], }, ], }, }, "topReviews": Component { origin: Definition, node: 5277..5342 @17 FieldDefinition { description: None, name: "topReviews", arguments: [ 5288..5302 @17 InputValueDefinition { description: None, name: "first", ty: 5295..5298 @17 Named( "Int", ), default_value: Some( 5301..5302 @17 Int( 5, ), ), directives: [], }, ], ty: List( Named( "Review", ), ), directives: [ 5314..5342 @17 Directive { name: "join__field", arguments: [ 5327..5341 @17 Argument { name: "graph", value: 5334..5341 @17 Enum( "REVIEWS", ), }, ], }, ], }, }, }, }, ), "Review": Object( 5346..5710 @17 ObjectType { description: None, name: "Review", implements_interfaces: {}, directives: [ Component { origin: Definition, node: 5358..5386 @17 Directive { name: "join__owner", arguments: [ 5371..5385 @17 Argument { name: "graph", value: 5378..5385 @17 Enum( "REVIEWS", ), }, ], }, }, Component { origin: Definition, node: 5387..5425 @17 Directive { name: "join__type", arguments: [ 5399..5413 @17 Argument { name: "graph", value: 5406..5413 @17 Enum( "REVIEWS", ), }, 5415..5424 @17 Argument { name: "key", value: 5420..5424 @17 String( "id", ), }, ], }, }, ], fields: { "id": Component { origin: Definition, node: 5430..5466 @17 FieldDefinition { description: None, name: "id", arguments: [], ty: NonNullNamed( "ID", ), directives: [ 5438..5466 @17 Directive { name: "join__field", arguments: [ 5451..5465 @17 Argument { name: "graph", value: 5458..5465 @17 Enum( "REVIEWS", ), }, ], }, ], }, }, "body": Component { origin: Definition, node: 5469..5535 @17 FieldDefinition { description: None, name: "body", arguments: [ 5474..5497 @17 InputValueDefinition { description: None, name: "format", ty: 5482..5489 @17 Named( "Boolean", ), default_value: Some( 5492..5497 @17 Boolean( false, ), ), directives: [], }, ], ty: Named( "String", ), directives: [ 5507..5535 @17 Directive { name: "join__field", arguments: [ 5520..5534 @17 Argument { name: "graph", value: 5527..5534 @17 Enum( "REVIEWS", ), }, ], }, ], }, }, "author": Component { origin: Definition, node: 5538..5601 @17 FieldDefinition { description: None, name: "author", arguments: [], ty: Named( "User", ), directives: [ 5551..5601 @17 Directive { name: "join__field", arguments: [ 5564..5578 @17 Argument { name: "graph", value: 5571..5578 @17 Enum( "REVIEWS", ), }, 5580..5600 @17 Argument { name: "provides", value: 5590..5600 @17 String( "username", ), }, ], }, ], }, }, "product": Component { origin: Definition, node: 5604..5649 @17 FieldDefinition { description: None, name: "product", arguments: [], ty: Named( "Product", ), directives: [ 5621..5649 @17 Directive { name: "join__field", arguments: [ 5634..5648 @17 Argument { name: "graph", value: 5641..5648 @17 Enum( "REVIEWS", ), }, ], }, ], }, }, "metadata": Component { origin: Definition, node: 5652..5708 @17 FieldDefinition { description: None, name: "metadata", arguments: [], ty: List( Named( "MetadataOrError", ), ), directives: [ 5680..5708 @17 Directive { name: "join__field", arguments: [ 5693..5707 @17 Argument { name: "graph", value: 5700..5707 @17 Enum( "REVIEWS", ), }, ], }, ], }, }, }, }, ), "SMSAccount": Object( 5712..5852 @17 ObjectType { description: None, name: "SMSAccount", implements_interfaces: {}, directives: [ Component { origin: Definition, node: 5728..5757 @17 Directive { name: "join__owner", arguments: [ 5741..5756 @17 Argument { name: "graph", value: 5748..5756 @17 Enum( "ACCOUNTS", ), }, ], }, }, Component { origin: Definition, node: 5758..5801 @17 Directive { name: "join__type", arguments: [ 5770..5785 @17 Argument { name: "graph", value: 5777..5785 @17 Enum( "ACCOUNTS", ), }, 5787..5800 @17 Argument { name: "key", value: 5792..5800 @17 String( "number", ), }, ], }, }, ], fields: { "number": Component { origin: Definition, node: 5806..5850 @17 FieldDefinition { description: None, name: "number", arguments: [], ty: Named( "String", ), directives: [ 5821..5850 @17 Directive { name: "join__field", arguments: [ 5834..5849 @17 Argument { name: "graph", value: 5841..5849 @17 Enum( "ACCOUNTS", ), }, ], }, ], }, }, }, }, ), "Text": Object( 5854..5936 @17 ObjectType { description: None, name: "Text", implements_interfaces: { ComponentName { origin: Definition, name: "NamedObject", }, }, directives: [], fields: { "name": Component { origin: Definition, node: 5891..5904 @17 FieldDefinition { description: None, name: "name", arguments: [], ty: NonNullNamed( "String", ), directives: [], }, }, "attributes": Component { origin: Definition, node: 5907..5934 @17 FieldDefinition { description: None, name: "attributes", arguments: [], ty: NonNullNamed( "TextAttributes", ), directives: [], }, }, }, }, ), "TextAttributes": Object( 5938..5992 @17 ObjectType { description: None, name: "TextAttributes", implements_interfaces: {}, directives: [], fields: { "bold": Component { origin: Definition, node: 5962..5975 @17 FieldDefinition { description: None, name: "bold", arguments: [], ty: Named( "Boolean", ), directives: [], }, }, "text": Component { origin: Definition, node: 5978..5990 @17 FieldDefinition { description: None, name: "text", arguments: [], ty: Named( "String", ), directives: [], }, }, }, }, ), "Thing": Union( 5994..6018 @17 UnionType { description: None, name: "Thing", directives: [], members: { ComponentName { origin: Definition, name: "Car", }, ComponentName { origin: Definition, name: "Ikea", }, }, }, ), "UpdateReviewInput": InputObject( 6020..6072 @17 InputObjectType { description: None, name: "UpdateReviewInput", directives: [], fields: { "id": Component { origin: Definition, node: 6048..6055 @17 InputValueDefinition { description: None, name: "id", ty: 6052..6055 @17 NonNullNamed( "ID", ), default_value: None, directives: [], }, }, "body": Component { origin: Definition, node: 6058..6070 @17 InputValueDefinition { description: None, name: "body", ty: 6064..6070 @17 Named( "String", ), default_value: None, directives: [], }, }, }, }, ), "User": Object( 6074..7017 @17 ObjectType { description: None, name: "User", implements_interfaces: {}, directives: [ Component { origin: Definition, node: 6084..6113 @17 Directive { name: "join__owner", arguments: [ 6097..6112 @17 Argument { name: "graph", value: 6104..6112 @17 Enum( "ACCOUNTS", ), }, ], }, }, Component { origin: Definition, node: 6114..6153 @17 Directive { name: "join__type", arguments: [ 6126..6141 @17 Argument { name: "graph", value: 6133..6141 @17 Enum( "ACCOUNTS", ), }, 6143..6152 @17 Argument { name: "key", value: 6148..6152 @17 String( "id", ), }, ], }, }, Component { origin: Definition, node: 6154..6216 @17 Directive { name: "join__type", arguments: [ 6166..6181 @17 Argument { name: "graph", value: 6173..6181 @17 Enum( "ACCOUNTS", ), }, 6183..6215 @17 Argument { name: "key", value: 6188..6215 @17 String( "username name{first last}", ), }, ], }, }, Component { origin: Definition, node: 6217..6257 @17 Directive { name: "join__type", arguments: [ 6229..6245 @17 Argument { name: "graph", value: 6236..6245 @17 Enum( "INVENTORY", ), }, 6247..6256 @17 Argument { name: "key", value: 6252..6256 @17 String( "id", ), }, ], }, }, Component { origin: Definition, node: 6258..6296 @17 Directive { name: "join__type", arguments: [ 6270..6284 @17 Argument { name: "graph", value: 6277..6284 @17 Enum( "PRODUCT", ), }, 6286..6295 @17 Argument { name: "key", value: 6291..6295 @17 String( "id", ), }, ], }, }, Component { origin: Definition, node: 6297..6335 @17 Directive { name: "join__type", arguments: [ 6309..6323 @17 Argument { name: "graph", value: 6316..6323 @17 Enum( "REVIEWS", ), }, 6325..6334 @17 Argument { name: "key", value: 6330..6334 @17 String( "id", ), }, ], }, }, ], fields: { "id": Component { origin: Definition, node: 6340..6377 @17 FieldDefinition { description: None, name: "id", arguments: [], ty: NonNullNamed( "ID", ), directives: [ 6348..6377 @17 Directive { name: "join__field", arguments: [ 6361..6376 @17 Argument { name: "graph", value: 6368..6376 @17 Enum( "ACCOUNTS", ), }, ], }, ], }, }, "name": Component { origin: Definition, node: 6380..6420 @17 FieldDefinition { description: None, name: "name", arguments: [], ty: Named( "Name", ), directives: [ 6391..6420 @17 Directive { name: "join__field", arguments: [ 6404..6419 @17 Argument { name: "graph", value: 6411..6419 @17 Enum( "ACCOUNTS", ), }, ], }, ], }, }, "username": Component { origin: Definition, node: 6423..6469 @17 FieldDefinition { description: None, name: "username", arguments: [], ty: Named( "String", ), directives: [ 6440..6469 @17 Directive { name: "join__field", arguments: [ 6453..6468 @17 Argument { name: "graph", value: 6460..6468 @17 Enum( "ACCOUNTS", ), }, ], }, ], }, }, "birthDate": Component { origin: Definition, node: 6472..6535 @17 FieldDefinition { description: None, name: "birthDate", arguments: [ 6482..6496 @17 InputValueDefinition { description: None, name: "locale", ty: 6490..6496 @17 Named( "String", ), default_value: None, directives: [], }, ], ty: Named( "String", ), directives: [ 6506..6535 @17 Directive { name: "join__field", arguments: [ 6519..6534 @17 Argument { name: "graph", value: 6526..6534 @17 Enum( "ACCOUNTS", ), }, ], }, ], }, }, "account": Component { origin: Definition, node: 6538..6588 @17 FieldDefinition { description: None, name: "account", arguments: [], ty: Named( "AccountType", ), directives: [ 6559..6588 @17 Directive { name: "join__field", arguments: [ 6572..6587 @17 Argument { name: "graph", value: 6579..6587 @17 Enum( "ACCOUNTS", ), }, ], }, ], }, }, "metadata": Component { origin: Definition, node: 6591..6645 @17 FieldDefinition { description: None, name: "metadata", arguments: [], ty: List( Named( "UserMetadata", ), ), directives: [ 6616..6645 @17 Directive { name: "join__field", arguments: [ 6629..6644 @17 Argument { name: "graph", value: 6636..6644 @17 Enum( "ACCOUNTS", ), }, ], }, ], }, }, "goodDescription": Component { origin: Definition, node: 6648..6738 @17 FieldDefinition { description: None, name: "goodDescription", arguments: [], ty: Named( "Boolean", ), directives: [ 6673..6738 @17 Directive { name: "join__field", arguments: [ 6686..6702 @17 Argument { name: "graph", value: 6693..6702 @17 Enum( "INVENTORY", ), }, 6704..6737 @17 Argument { name: "requires", value: 6714..6737 @17 String( "metadata{description}", ), }, ], }, ], }, }, "vehicle": Component { origin: Definition, node: 6741..6786 @17 FieldDefinition { description: None, name: "vehicle", arguments: [], ty: Named( "Vehicle", ), directives: [ 6758..6786 @17 Directive { name: "join__field", arguments: [ 6771..6785 @17 Argument { name: "graph", value: 6778..6785 @17 Enum( "PRODUCT", ), }, ], }, ], }, }, "thing": Component { origin: Definition, node: 6789..6830 @17 FieldDefinition { description: None, name: "thing", arguments: [], ty: Named( "Thing", ), directives: [ 6802..6830 @17 Directive { name: "join__field", arguments: [ 6815..6829 @17 Argument { name: "graph", value: 6822..6829 @17 Enum( "PRODUCT", ), }, ], }, ], }, }, "reviews": Component { origin: Definition, node: 6833..6879 @17 FieldDefinition { description: None, name: "reviews", arguments: [], ty: List( Named( "Review", ), ), directives: [ 6851..6879 @17 Directive { name: "join__field", arguments: [ 6864..6878 @17 Argument { name: "graph", value: 6871..6878 @17 Enum( "REVIEWS", ), }, ], }, ], }, }, "numberOfReviews": Component { origin: Definition, node: 6882..6932 @17 FieldDefinition { description: None, name: "numberOfReviews", arguments: [], ty: NonNullNamed( "Int", ), directives: [ 6904..6932 @17 Directive { name: "join__field", arguments: [ 6917..6931 @17 Argument { name: "graph", value: 6924..6931 @17 Enum( "REVIEWS", ), }, ], }, ], }, }, "goodAddress": Component { origin: Definition, node: 6935..7015 @17 FieldDefinition { description: None, name: "goodAddress", arguments: [], ty: Named( "Boolean", ), directives: [ 6956..7015 @17 Directive { name: "join__field", arguments: [ 6969..6983 @17 Argument { name: "graph", value: 6976..6983 @17 Enum( "REVIEWS", ), }, 6985..7014 @17 Argument { name: "requires", value: 6995..7014 @17 String( "metadata{address}", ), }, ], }, ], }, }, }, }, ), "UserMetadata": Object( 7019..7095 @17 ObjectType { description: None, name: "UserMetadata", implements_interfaces: {}, directives: [], fields: { "name": Component { origin: Definition, node: 7041..7053 @17 FieldDefinition { description: None, name: "name", arguments: [], ty: Named( "String", ), directives: [], }, }, "address": Component { origin: Definition, node: 7056..7071 @17 FieldDefinition { description: None, name: "address", arguments: [], ty: Named( "String", ), directives: [], }, }, "description": Component { origin: Definition, node: 7074..7093 @17 FieldDefinition { description: None, name: "description", arguments: [], ty: Named( "String", ), directives: [], }, }, }, }, ), "Van": Object( 7097..7444 @17 ObjectType { description: None, name: "Van", implements_interfaces: { ComponentName { origin: Definition, name: "Vehicle", }, }, directives: [ Component { origin: Definition, node: 7125..7153 @17 Directive { name: "join__owner", arguments: [ 7138..7152 @17 Argument { name: "graph", value: 7145..7152 @17 Enum( "PRODUCT", ), }, ], }, }, Component { origin: Definition, node: 7154..7192 @17 Directive { name: "join__type", arguments: [ 7166..7180 @17 Argument { name: "graph", value: 7173..7180 @17 Enum( "PRODUCT", ), }, 7182..7191 @17 Argument { name: "key", value: 7187..7191 @17 String( "id", ), }, ], }, }, Component { origin: Definition, node: 7193..7231 @17 Directive { name: "join__type", arguments: [ 7205..7219 @17 Argument { name: "graph", value: 7212..7219 @17 Enum( "REVIEWS", ), }, 7221..7230 @17 Argument { name: "key", value: 7226..7230 @17 String( "id", ), }, ], }, }, ], fields: { "id": Component { origin: Definition, node: 7236..7276 @17 FieldDefinition { description: None, name: "id", arguments: [], ty: NonNullNamed( "String", ), directives: [ 7248..7276 @17 Directive { name: "join__field", arguments: [ 7261..7275 @17 Argument { name: "graph", value: 7268..7275 @17 Enum( "PRODUCT", ), }, ], }, ], }, }, "description": Component { origin: Definition, node: 7279..7327 @17 FieldDefinition { description: None, name: "description", arguments: [], ty: Named( "String", ), directives: [ 7299..7327 @17 Directive { name: "join__field", arguments: [ 7312..7326 @17 Argument { name: "graph", value: 7319..7326 @17 Enum( "PRODUCT", ), }, ], }, ], }, }, "price": Component { origin: Definition, node: 7330..7372 @17 FieldDefinition { description: None, name: "price", arguments: [], ty: Named( "String", ), directives: [ 7344..7372 @17 Directive { name: "join__field", arguments: [ 7357..7371 @17 Argument { name: "graph", value: 7364..7371 @17 Enum( "PRODUCT", ), }, ], }, ], }, }, "retailPrice": Component { origin: Definition, node: 7375..7442 @17 FieldDefinition { description: None, name: "retailPrice", arguments: [], ty: Named( "String", ), directives: [ 7395..7442 @17 Directive { name: "join__field", arguments: [ 7408..7422 @17 Argument { name: "graph", value: 7415..7422 @17 Enum( "REVIEWS", ), }, 7424..7441 @17 Argument { name: "requires", value: 7434..7441 @17 String( "price", ), }, ], }, ], }, }, }, }, ), "Vehicle": Interface( 7446..7541 @17 InterfaceType { description: None, name: "Vehicle", implements_interfaces: {}, directives: [], fields: { "id": Component { origin: Definition, node: 7468..7479 @17 FieldDefinition { description: None, name: "id", arguments: [], ty: NonNullNamed( "String", ), directives: [], }, }, "description": Component { origin: Definition, node: 7482..7501 @17 FieldDefinition { description: None, name: "description", arguments: [], ty: Named( "String", ), directives: [], }, }, "price": Component { origin: Definition, node: 7504..7517 @17 FieldDefinition { description: None, name: "price", arguments: [], ty: Named( "String", ), directives: [], }, }, "retailPrice": Component { origin: Definition, node: 7520..7539 @17 FieldDefinition { description: None, name: "retailPrice", arguments: [], ty: Named( "String", ), directives: [], }, }, }, }, ), }, } ExecutableDocument { sources: { 1: SourceFile { path: "built_in.graphql", source_text: include_str!("built_in.graphql"), }, 17: SourceFile { path: "0015_supergraph.graphql", source_text: "schema\n@core(feature: \"https://specs.apollo.dev/core/v0.1\"),\n@core(feature: \"https://specs.apollo.dev/join/v0.1\")\n{\n query: Query\n mutation: Mutation\n}\n\ndirective @core(feature: String!) repeatable on SCHEMA\ndirective @join__field(graph: join__Graph, requires: join__FieldSet, provides: join__FieldSet) on FIELD_DEFINITION\ndirective @join__type(graph: join__Graph!, key: join__FieldSet) repeatable on OBJECT | INTERFACE\ndirective @join__owner(graph: join__Graph!) on OBJECT | INTERFACE\ndirective @join__graph(name: String!, url: String!) on ENUM_VALUE\ndirective @stream on FIELD\ndirective @transform(from: String!) on FIELD\n\nunion AccountType = PasswordAccount | SMSAccount\n\ntype Amazon {\n referrer: String\n}\n\nunion Body = Image | Text\n\ntype Book implements Product\n@join__owner(graph: BOOKS)\n@join__type(graph: BOOKS, key: \"isbn\")\n@join__type(graph: INVENTORY, key: \"isbn\")\n@join__type(graph: PRODUCT, key: \"isbn\")\n@join__type(graph: REVIEWS, key: \"isbn\")\n{\n isbn: String! @join__field(graph: BOOKS)\n title: String @join__field(graph: BOOKS)\n year: Int @join__field(graph: BOOKS)\n similarBooks: [Book]! @join__field(graph: BOOKS)\n metadata: [MetadataOrError] @join__field(graph: BOOKS)\n inStock: Boolean @join__field(graph: INVENTORY)\n isCheckedOut: Boolean @join__field(graph: INVENTORY)\n upc: String! @join__field(graph: PRODUCT)\n sku: String! @join__field(graph: PRODUCT)\n name(delimeter: String = \" \"): String @join__field(graph: PRODUCT, requires: \"title year\")\n price: String @join__field(graph: PRODUCT)\n details: ProductDetailsBook @join__field(graph: PRODUCT)\n reviews: [Review] @join__field(graph: REVIEWS)\n relatedReviews: [Review!]! @join__field(graph: REVIEWS, requires: \"similarBooks{isbn}\")\n}\n\nunion Brand = Ikea | Amazon\n\ntype Car implements Vehicle\n@join__owner(graph: PRODUCT)\n@join__type(graph: PRODUCT, key: \"id\")\n@join__type(graph: REVIEWS, key: \"id\")\n{\n id: String! @join__field(graph: PRODUCT)\n description: String @join__field(graph: PRODUCT)\n price: String @join__field(graph: PRODUCT)\n retailPrice: String @join__field(graph: REVIEWS, requires: \"price\")\n}\n\ntype Error {\n code: Int\n message: String\n}\n\ntype Furniture implements Product\n@join__owner(graph: PRODUCT)\n@join__type(graph: PRODUCT, key: \"upc\")\n@join__type(graph: PRODUCT, key: \"sku\")\n@join__type(graph: INVENTORY, key: \"sku\")\n@join__type(graph: REVIEWS, key: \"upc\")\n{\n upc: String! @join__field(graph: PRODUCT)\n sku: String! @join__field(graph: PRODUCT)\n name: String @join__field(graph: PRODUCT)\n price: String @join__field(graph: PRODUCT)\n brand: Brand @join__field(graph: PRODUCT)\n metadata: [MetadataOrError] @join__field(graph: PRODUCT)\n details: ProductDetailsFurniture @join__field(graph: PRODUCT)\n inStock: Boolean @join__field(graph: INVENTORY)\n isHeavy: Boolean @join__field(graph: INVENTORY)\n reviews: [Review] @join__field(graph: REVIEWS)\n}\n\ntype Ikea {\n asile: Int\n}\n\ntype Image implements NamedObject {\n name: String!\n attributes: ImageAttributes!\n}\n\ntype ImageAttributes {\n url: String!\n}\n\nscalar join__FieldSet @specifiedBy(url: \"https://spec.graphql.org/\")\n\nenum join__Graph {\nACCOUNTS @join__graph(name: \"accounts\" url: \"\")\nBOOKS @join__graph(name: \"books\" url: \"\")\nDOCUMENTS @join__graph(name: \"documents\" url: \"\")\nINVENTORY @join__graph(name: \"inventory\" url: \"\")\nPRODUCT @join__graph(name: \"product\" url: \"\")\nREVIEWS @join__graph(name: \"reviews\" url: \"\")\n}\n\ntype KeyValue {\n key: String!\n value: String!\n}\n\ntype Library\n@join__owner(graph: BOOKS)\n@join__type(graph: BOOKS, key: \"id\")\n@join__type(graph: ACCOUNTS, key: \"id\")\n{\n id: ID! @join__field(graph: BOOKS)\n name: String @join__field(graph: BOOKS)\n userAccount(id: ID! = 1): User @join__field(graph: ACCOUNTS, requires: \"name\")\n}\n\nunion MetadataOrError = KeyValue | Error\n\ntype Mutation {\n login(username: String!, password: String!): User @join__field(graph: ACCOUNTS)\n reviewProduct(upc: String!, body: String!): Product @join__field(graph: REVIEWS)\n updateReview(review: UpdateReviewInput!): Review @join__field(graph: REVIEWS)\n deleteReview(id: ID!): Boolean @join__field(graph: REVIEWS)\n}\n\ntype Name {\n first: String\n last: String\n}\n\ninterface NamedObject {\n name: String!\n}\n\ntype PasswordAccount\n@join__owner(graph: ACCOUNTS)\n@join__type(graph: ACCOUNTS, key: \"email\")\n{\n email: String! @join__field(graph: ACCOUNTS)\n}\n\ninterface Product {\n upc: String!\n sku: String!\n name: String\n price: String\n details: ProductDetails\n inStock: Boolean\n reviews: [Review]\n}\n\ninterface ProductDetails {\n country: String\n}\n\ntype ProductDetailsBook implements ProductDetails {\n country: String\n pages: Int\n}\n\ntype ProductDetailsFurniture implements ProductDetails {\n country: String\n color: String\n}\n\ntype Query {\n user(id: ID!): User @join__field(graph: ACCOUNTS)\n me: User @join__field(graph: ACCOUNTS)\n book(isbn: String!): Book @join__field(graph: BOOKS)\n books: [Book] @join__field(graph: BOOKS)\n library(id: ID!): Library @join__field(graph: BOOKS)\n body: Body! @join__field(graph: DOCUMENTS)\n product(upc: String!): Product @join__field(graph: PRODUCT)\n vehicle(id: String!): Vehicle @join__field(graph: PRODUCT)\n topProducts(first: Int = 5): [Product] @join__field(graph: PRODUCT)\n topCars(first: Int = 5): [Car] @join__field(graph: PRODUCT)\n topReviews(first: Int = 5): [Review] @join__field(graph: REVIEWS)\n}\n\ntype Review\n@join__owner(graph: REVIEWS)\n@join__type(graph: REVIEWS, key: \"id\")\n{\n id: ID! @join__field(graph: REVIEWS)\n body(format: Boolean = false): String @join__field(graph: REVIEWS)\n author: User @join__field(graph: REVIEWS, provides: \"username\")\n product: Product @join__field(graph: REVIEWS)\n metadata: [MetadataOrError] @join__field(graph: REVIEWS)\n}\n\ntype SMSAccount\n@join__owner(graph: ACCOUNTS)\n@join__type(graph: ACCOUNTS, key: \"number\")\n{\n number: String @join__field(graph: ACCOUNTS)\n}\n\ntype Text implements NamedObject {\n name: String!\n attributes: TextAttributes!\n}\n\ntype TextAttributes {\n bold: Boolean\n text: String\n}\n\nunion Thing = Car | Ikea\n\ninput UpdateReviewInput {\n id: ID!\n body: String\n}\n\ntype User\n@join__owner(graph: ACCOUNTS)\n@join__type(graph: ACCOUNTS, key: \"id\")\n@join__type(graph: ACCOUNTS, key: \"username name{first last}\")\n@join__type(graph: INVENTORY, key: \"id\")\n@join__type(graph: PRODUCT, key: \"id\")\n@join__type(graph: REVIEWS, key: \"id\")\n{\n id: ID! @join__field(graph: ACCOUNTS)\n name: Name @join__field(graph: ACCOUNTS)\n username: String @join__field(graph: ACCOUNTS)\n birthDate(locale: String): String @join__field(graph: ACCOUNTS)\n account: AccountType @join__field(graph: ACCOUNTS)\n metadata: [UserMetadata] @join__field(graph: ACCOUNTS)\n goodDescription: Boolean @join__field(graph: INVENTORY, requires: \"metadata{description}\")\n vehicle: Vehicle @join__field(graph: PRODUCT)\n thing: Thing @join__field(graph: PRODUCT)\n reviews: [Review] @join__field(graph: REVIEWS)\n numberOfReviews: Int! @join__field(graph: REVIEWS)\n goodAddress: Boolean @join__field(graph: REVIEWS, requires: \"metadata{address}\")\n}\n\ntype UserMetadata {\n name: String\n address: String\n description: String\n}\n\ntype Van implements Vehicle\n@join__owner(graph: PRODUCT)\n@join__type(graph: PRODUCT, key: \"id\")\n@join__type(graph: REVIEWS, key: \"id\")\n{\n id: String! @join__field(graph: PRODUCT)\n description: String @join__field(graph: PRODUCT)\n price: String @join__field(graph: PRODUCT)\n retailPrice: String @join__field(graph: REVIEWS, requires: \"price\")\n}\n\ninterface Vehicle {\n id: String!\n description: String\n price: String\n retailPrice: String\n}", }, }, operations: OperationMap { anonymous: None, named: {}, }, fragments: {}, }