├── README.md ├── Packages └── ApolloCodegen │ ├── README.md │ ├── .gitignore │ ├── Tests │ ├── LinuxMain.swift │ └── ApolloCodegenTests │ │ ├── XCTestManifests.swift │ │ └── ApolloCodegenTests.swift │ ├── Package.swift │ ├── Sources │ └── ApolloCodegen │ │ └── main.swift │ └── Package.resolved ├── OSRSUI ├── GraphQL │ ├── Queries.graphql │ ├── API.swift │ └── schema.json ├── Assets.xcassets │ ├── Contents.json │ ├── AccentColor.colorset │ │ └── Contents.json │ └── AppIcon.appiconset │ │ └── Contents.json ├── Preview Content │ └── Preview Assets.xcassets │ │ └── Contents.json ├── OSRSUIApp.swift ├── ContentView.swift └── Info.plist ├── OSRSUI.xcodeproj ├── project.xcworkspace │ ├── contents.xcworkspacedata │ └── xcshareddata │ │ ├── IDEWorkspaceChecks.plist │ │ └── swiftpm │ │ └── Package.resolved └── project.pbxproj ├── .gitignore └── LICENSE /README.md: -------------------------------------------------------------------------------- 1 | # OSRSUIGraphQL 2 | A GraphQL Old School RuneScape + SwiftUI helper app 3 | -------------------------------------------------------------------------------- /Packages/ApolloCodegen/README.md: -------------------------------------------------------------------------------- 1 | # ApolloCodegen 2 | 3 | A description of this package. 4 | -------------------------------------------------------------------------------- /OSRSUI/GraphQL/Queries.graphql: -------------------------------------------------------------------------------- 1 | query GetItems { 2 | items { 3 | name, members 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /Packages/ApolloCodegen/.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | /.build 3 | /Packages 4 | /*.xcodeproj 5 | xcuserdata/ 6 | -------------------------------------------------------------------------------- /OSRSUI/Assets.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "author" : "xcode", 4 | "version" : 1 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /OSRSUI/Preview Content/Preview Assets.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "author" : "xcode", 4 | "version" : 1 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /Packages/ApolloCodegen/Tests/LinuxMain.swift: -------------------------------------------------------------------------------- 1 | import XCTest 2 | 3 | import ApolloCodegenTests 4 | 5 | var tests = [XCTestCaseEntry]() 6 | tests += ApolloCodegenTests.allTests() 7 | XCTMain(tests) 8 | -------------------------------------------------------------------------------- /OSRSUI.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /OSRSUI/Assets.xcassets/AccentColor.colorset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "colors" : [ 3 | { 4 | "idiom" : "universal" 5 | } 6 | ], 7 | "info" : { 8 | "author" : "xcode", 9 | "version" : 1 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /Packages/ApolloCodegen/Tests/ApolloCodegenTests/XCTestManifests.swift: -------------------------------------------------------------------------------- 1 | import XCTest 2 | 3 | #if !canImport(ObjectiveC) 4 | public func allTests() -> [XCTestCaseEntry] { 5 | return [ 6 | testCase(ApolloCodegenTests.allTests), 7 | ] 8 | } 9 | #endif 10 | -------------------------------------------------------------------------------- /OSRSUI/OSRSUIApp.swift: -------------------------------------------------------------------------------- 1 | // 2 | // OSRSUIApp.swift 3 | // OSRSUI 4 | // 5 | // Created by Thomas Ricouard on 14/01/2021. 6 | // 7 | 8 | import SwiftUI 9 | 10 | @main 11 | struct OSRSUIApp: App { 12 | var body: some Scene { 13 | WindowGroup { 14 | ContentView() 15 | } 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /OSRSUI.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /OSRSUI/ContentView.swift: -------------------------------------------------------------------------------- 1 | // 2 | // ContentView.swift 3 | // OSRSUI 4 | // 5 | // Created by Thomas Ricouard on 14/01/2021. 6 | // 7 | 8 | import SwiftUI 9 | 10 | struct ContentView: View { 11 | var body: some View { 12 | Text("Hello, world!") 13 | .padding() 14 | } 15 | } 16 | 17 | struct ContentView_Previews: PreviewProvider { 18 | static var previews: some View { 19 | ContentView() 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /Packages/ApolloCodegen/Tests/ApolloCodegenTests/ApolloCodegenTests.swift: -------------------------------------------------------------------------------- 1 | import XCTest 2 | @testable import ApolloCodegen 3 | 4 | final class ApolloCodegenTests: XCTestCase { 5 | func testExample() { 6 | // This is an example of a functional test case. 7 | // Use XCTAssert and related functions to verify your tests produce the correct 8 | // results. 9 | XCTAssertEqual(ApolloCodegen().text, "Hello, World!") 10 | } 11 | 12 | static var allTests = [ 13 | ("testExample", testExample), 14 | ] 15 | } 16 | -------------------------------------------------------------------------------- /Packages/ApolloCodegen/Package.swift: -------------------------------------------------------------------------------- 1 | // swift-tools-version:5.3 2 | // The swift-tools-version declares the minimum version of Swift required to build this package. 3 | 4 | import PackageDescription 5 | 6 | let package = Package( 7 | name: "ApolloCodegen", 8 | platforms: [ 9 | .macOS(.v10_14), 10 | ], 11 | dependencies: [ 12 | .package(name: "Apollo", 13 | url: "https://github.com/apollographql/apollo-ios.git", 14 | .upToNextMinor(from: "0.40.0")), 15 | .package(url: "https://github.com/apple/swift-argument-parser", from: "0.2.0"), 16 | ], 17 | targets: [ 18 | .target( 19 | name: "ApolloCodegen", 20 | dependencies: [.product(name: "ApolloCodegenLib", package: "Apollo"), 21 | .product(name: "ArgumentParser", package: "swift-argument-parser")]), 22 | .testTarget( 23 | name: "ApolloCodegenTests", 24 | dependencies: ["ApolloCodegen"]), 25 | ] 26 | ) 27 | -------------------------------------------------------------------------------- /OSRSUI/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | $(DEVELOPMENT_LANGUAGE) 7 | CFBundleExecutable 8 | $(EXECUTABLE_NAME) 9 | CFBundleIdentifier 10 | $(PRODUCT_BUNDLE_IDENTIFIER) 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | $(PRODUCT_NAME) 15 | CFBundlePackageType 16 | $(PRODUCT_BUNDLE_PACKAGE_TYPE) 17 | CFBundleShortVersionString 18 | 1.0 19 | CFBundleVersion 20 | 1 21 | LSRequiresIPhoneOS 22 | 23 | UIApplicationSceneManifest 24 | 25 | UIApplicationSupportsMultipleScenes 26 | 27 | 28 | UIApplicationSupportsIndirectInputEvents 29 | 30 | UILaunchScreen 31 | 32 | UIRequiredDeviceCapabilities 33 | 34 | armv7 35 | 36 | UISupportedInterfaceOrientations 37 | 38 | UIInterfaceOrientationPortrait 39 | UIInterfaceOrientationLandscapeLeft 40 | UIInterfaceOrientationLandscapeRight 41 | 42 | UISupportedInterfaceOrientations~ipad 43 | 44 | UIInterfaceOrientationPortrait 45 | UIInterfaceOrientationPortraitUpsideDown 46 | UIInterfaceOrientationLandscapeLeft 47 | UIInterfaceOrientationLandscapeRight 48 | 49 | 50 | 51 | -------------------------------------------------------------------------------- /OSRSUI/Assets.xcassets/AppIcon.appiconset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "iphone", 5 | "scale" : "2x", 6 | "size" : "20x20" 7 | }, 8 | { 9 | "idiom" : "iphone", 10 | "scale" : "3x", 11 | "size" : "20x20" 12 | }, 13 | { 14 | "idiom" : "iphone", 15 | "scale" : "2x", 16 | "size" : "29x29" 17 | }, 18 | { 19 | "idiom" : "iphone", 20 | "scale" : "3x", 21 | "size" : "29x29" 22 | }, 23 | { 24 | "idiom" : "iphone", 25 | "scale" : "2x", 26 | "size" : "40x40" 27 | }, 28 | { 29 | "idiom" : "iphone", 30 | "scale" : "3x", 31 | "size" : "40x40" 32 | }, 33 | { 34 | "idiom" : "iphone", 35 | "scale" : "2x", 36 | "size" : "60x60" 37 | }, 38 | { 39 | "idiom" : "iphone", 40 | "scale" : "3x", 41 | "size" : "60x60" 42 | }, 43 | { 44 | "idiom" : "ipad", 45 | "scale" : "1x", 46 | "size" : "20x20" 47 | }, 48 | { 49 | "idiom" : "ipad", 50 | "scale" : "2x", 51 | "size" : "20x20" 52 | }, 53 | { 54 | "idiom" : "ipad", 55 | "scale" : "1x", 56 | "size" : "29x29" 57 | }, 58 | { 59 | "idiom" : "ipad", 60 | "scale" : "2x", 61 | "size" : "29x29" 62 | }, 63 | { 64 | "idiom" : "ipad", 65 | "scale" : "1x", 66 | "size" : "40x40" 67 | }, 68 | { 69 | "idiom" : "ipad", 70 | "scale" : "2x", 71 | "size" : "40x40" 72 | }, 73 | { 74 | "idiom" : "ipad", 75 | "scale" : "1x", 76 | "size" : "76x76" 77 | }, 78 | { 79 | "idiom" : "ipad", 80 | "scale" : "2x", 81 | "size" : "76x76" 82 | }, 83 | { 84 | "idiom" : "ipad", 85 | "scale" : "2x", 86 | "size" : "83.5x83.5" 87 | }, 88 | { 89 | "idiom" : "ios-marketing", 90 | "scale" : "1x", 91 | "size" : "1024x1024" 92 | } 93 | ], 94 | "info" : { 95 | "author" : "xcode", 96 | "version" : 1 97 | } 98 | } 99 | -------------------------------------------------------------------------------- /Packages/ApolloCodegen/Sources/ApolloCodegen/main.swift: -------------------------------------------------------------------------------- 1 | import Foundation 2 | import Darwin 3 | import ApolloCodegenLib 4 | import ArgumentParser 5 | 6 | struct Codegen: ParsableCommand { 7 | 8 | public static let configuration = CommandConfiguration( 9 | abstract: "A Swift command-line tool to manage your Apollo schema.json and codegen") 10 | 11 | @Argument(help: "For now you can use 'download' to download & update the schema.json, or 'codegen' to update the API.swift") 12 | var action: String 13 | func run() throws { 14 | let parentFolderOfScriptFile = FileFinder.findParentFolder() 15 | 16 | let sourceRootURL = parentFolderOfScriptFile 17 | .apollo.parentFolderURL() 18 | .apollo.parentFolderURL() 19 | .apollo.parentFolderURL() 20 | .apollo.parentFolderURL() 21 | 22 | let targetRootURL = sourceRootURL 23 | .apollo.childFolderURL(folderName: "OSRSUI") 24 | let endpoint = URL(string: "https://api.runeql.com/")! 25 | 26 | let graphQLFolder = sourceRootURL 27 | .apollo 28 | .childFolderURL(folderName: "OSRSUI/GraphQL") 29 | let schemaDownloadOptions = ApolloSchemaOptions(endpointURL: endpoint, 30 | outputFolderURL: graphQLFolder) 31 | 32 | switch action { 33 | case "download": 34 | do { 35 | try ApolloSchemaDownloader.run(with: graphQLFolder, 36 | options: schemaDownloadOptions) 37 | } catch { 38 | Codegen.exit(withError: nil) 39 | } 40 | 41 | case "codegen": 42 | let codegenOptions = ApolloCodegenOptions(targetRootURL: graphQLFolder) 43 | 44 | do { 45 | try ApolloCodegen.run(from: targetRootURL, 46 | with: graphQLFolder, 47 | options: codegenOptions) 48 | } catch { 49 | Codegen.exit(withError: nil) 50 | } 51 | default: 52 | Codegen.exit(withError: nil) 53 | } 54 | } 55 | } 56 | 57 | Codegen.main() 58 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Xcode 2 | # 3 | # gitignore contributors: remember to update Global/Xcode.gitignore, Objective-C.gitignore & Swift.gitignore 4 | 5 | ## User settings 6 | xcuserdata/ 7 | 8 | ## compatibility with Xcode 8 and earlier (ignoring not required starting Xcode 9) 9 | *.xcscmblueprint 10 | *.xccheckout 11 | 12 | ## compatibility with Xcode 3 and earlier (ignoring not required starting Xcode 4) 13 | build/ 14 | DerivedData/ 15 | *.moved-aside 16 | *.pbxuser 17 | !default.pbxuser 18 | *.mode1v3 19 | !default.mode1v3 20 | *.mode2v3 21 | !default.mode2v3 22 | *.perspectivev3 23 | !default.perspectivev3 24 | 25 | ## Obj-C/Swift specific 26 | *.hmap 27 | 28 | ## App packaging 29 | *.ipa 30 | *.dSYM.zip 31 | *.dSYM 32 | 33 | ## Playgrounds 34 | timeline.xctimeline 35 | playground.xcworkspace 36 | 37 | # Swift Package Manager 38 | # 39 | # Add this line if you want to avoid checking in source code from Swift Package Manager dependencies. 40 | # Packages/ 41 | # Package.pins 42 | # Package.resolved 43 | # *.xcodeproj 44 | # 45 | # Xcode automatically generates this directory with a .xcworkspacedata file and xcuserdata 46 | # hence it is not needed unless you have added a package configuration file to your project 47 | # .swiftpm 48 | 49 | .build/ 50 | 51 | # CocoaPods 52 | # 53 | # We recommend against adding the Pods directory to your .gitignore. However 54 | # you should judge for yourself, the pros and cons are mentioned at: 55 | # https://guides.cocoapods.org/using/using-cocoapods.html#should-i-check-the-pods-directory-into-source-control 56 | # 57 | # Pods/ 58 | # 59 | # Add this line if you want to avoid checking in source code from the Xcode workspace 60 | # *.xcworkspace 61 | 62 | # Carthage 63 | # 64 | # Add this line if you want to avoid checking in source code from Carthage dependencies. 65 | # Carthage/Checkouts 66 | 67 | Carthage/Build/ 68 | 69 | # Accio dependency management 70 | Dependencies/ 71 | .accio/ 72 | 73 | # fastlane 74 | # 75 | # It is recommended to not store the screenshots in the git repo. 76 | # Instead, use fastlane to re-generate the screenshots whenever they are needed. 77 | # For more information about the recommended setup visit: 78 | # https://docs.fastlane.tools/best-practices/source-control/#source-control 79 | 80 | fastlane/report.xml 81 | fastlane/Preview.html 82 | fastlane/screenshots/**/*.png 83 | fastlane/test_output 84 | 85 | # Code Injection 86 | # 87 | # After new code Injection tools there's a generated folder /iOSInjectionProject 88 | # https://github.com/johnno1962/injectionforxcode 89 | 90 | iOSInjectionProject/ 91 | 92 | .DS_Store 93 | OSRSUI/GraphQL/apollo/ 94 | OSRSUI/GraphQL/apollo.tar.gz 95 | OSRSUI/GraphQL/operationIDs.json 96 | -------------------------------------------------------------------------------- /Packages/ApolloCodegen/Package.resolved: -------------------------------------------------------------------------------- 1 | { 2 | "object": { 3 | "pins": [ 4 | { 5 | "package": "Apollo", 6 | "repositoryURL": "https://github.com/apollographql/apollo-ios.git", 7 | "state": { 8 | "branch": null, 9 | "revision": "b3c15b62cf986c280668a01475cdb713a9d999ad", 10 | "version": "0.40.0" 11 | } 12 | }, 13 | { 14 | "package": "InflectorKit", 15 | "repositoryURL": "https://github.com/apollographql/InflectorKit", 16 | "state": { 17 | "branch": null, 18 | "revision": "b1d0099abe36facd198113633f502889842906af", 19 | "version": "0.0.2" 20 | } 21 | }, 22 | { 23 | "package": "PathKit", 24 | "repositoryURL": "https://github.com/kylef/PathKit.git", 25 | "state": { 26 | "branch": null, 27 | "revision": "73f8e9dca9b7a3078cb79128217dc8f2e585a511", 28 | "version": "1.0.0" 29 | } 30 | }, 31 | { 32 | "package": "Spectre", 33 | "repositoryURL": "https://github.com/kylef/Spectre.git", 34 | "state": { 35 | "branch": null, 36 | "revision": "f79d4ecbf8bc4e1579fbd86c3e1d652fb6876c53", 37 | "version": "0.9.2" 38 | } 39 | }, 40 | { 41 | "package": "SQLite.swift", 42 | "repositoryURL": "https://github.com/stephencelis/SQLite.swift.git", 43 | "state": { 44 | "branch": null, 45 | "revision": "0a9893ec030501a3956bee572d6b4fdd3ae158a1", 46 | "version": "0.12.2" 47 | } 48 | }, 49 | { 50 | "package": "Starscream", 51 | "repositoryURL": "https://github.com/daltoniam/Starscream", 52 | "state": { 53 | "branch": null, 54 | "revision": "e6b65c6d9077ea48b4a7bdda8994a1d3c6969c8d", 55 | "version": "3.1.1" 56 | } 57 | }, 58 | { 59 | "package": "Stencil", 60 | "repositoryURL": "https://github.com/stencilproject/Stencil.git", 61 | "state": { 62 | "branch": null, 63 | "revision": "94197b3adbbf926348ad8765476a158aa4e54f8a", 64 | "version": "0.14.0" 65 | } 66 | }, 67 | { 68 | "package": "swift-argument-parser", 69 | "repositoryURL": "https://github.com/apple/swift-argument-parser", 70 | "state": { 71 | "branch": null, 72 | "revision": "92646c0cdbaca076c8d3d0207891785b3379cbff", 73 | "version": "0.3.1" 74 | } 75 | }, 76 | { 77 | "package": "swift-nio-zlib-support", 78 | "repositoryURL": "https://github.com/apple/swift-nio-zlib-support.git", 79 | "state": { 80 | "branch": null, 81 | "revision": "37760e9a52030bb9011972c5213c3350fa9d41fd", 82 | "version": "1.0.0" 83 | } 84 | } 85 | ] 86 | }, 87 | "version": 1 88 | } 89 | -------------------------------------------------------------------------------- /OSRSUI.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved: -------------------------------------------------------------------------------- 1 | { 2 | "object": { 3 | "pins": [ 4 | { 5 | "package": "Apollo", 6 | "repositoryURL": "https://github.com/apollographql/apollo-ios.git", 7 | "state": { 8 | "branch": null, 9 | "revision": "b3c15b62cf986c280668a01475cdb713a9d999ad", 10 | "version": "0.40.0" 11 | } 12 | }, 13 | { 14 | "package": "InflectorKit", 15 | "repositoryURL": "https://github.com/apollographql/InflectorKit", 16 | "state": { 17 | "branch": null, 18 | "revision": "b1d0099abe36facd198113633f502889842906af", 19 | "version": "0.0.2" 20 | } 21 | }, 22 | { 23 | "package": "Kingfisher", 24 | "repositoryURL": "https://github.com/onevcat/Kingfisher", 25 | "state": { 26 | "branch": null, 27 | "revision": "0be276f6a7fd54af4c3eb03f2d12e12d8c8a1a1d", 28 | "version": "6.0.1" 29 | } 30 | }, 31 | { 32 | "package": "PathKit", 33 | "repositoryURL": "https://github.com/kylef/PathKit.git", 34 | "state": { 35 | "branch": null, 36 | "revision": "73f8e9dca9b7a3078cb79128217dc8f2e585a511", 37 | "version": "1.0.0" 38 | } 39 | }, 40 | { 41 | "package": "Spectre", 42 | "repositoryURL": "https://github.com/kylef/Spectre.git", 43 | "state": { 44 | "branch": null, 45 | "revision": "f79d4ecbf8bc4e1579fbd86c3e1d652fb6876c53", 46 | "version": "0.9.2" 47 | } 48 | }, 49 | { 50 | "package": "SQLite.swift", 51 | "repositoryURL": "https://github.com/stephencelis/SQLite.swift.git", 52 | "state": { 53 | "branch": null, 54 | "revision": "0a9893ec030501a3956bee572d6b4fdd3ae158a1", 55 | "version": "0.12.2" 56 | } 57 | }, 58 | { 59 | "package": "Starscream", 60 | "repositoryURL": "https://github.com/daltoniam/Starscream", 61 | "state": { 62 | "branch": null, 63 | "revision": "e6b65c6d9077ea48b4a7bdda8994a1d3c6969c8d", 64 | "version": "3.1.1" 65 | } 66 | }, 67 | { 68 | "package": "Stencil", 69 | "repositoryURL": "https://github.com/stencilproject/Stencil.git", 70 | "state": { 71 | "branch": null, 72 | "revision": "94197b3adbbf926348ad8765476a158aa4e54f8a", 73 | "version": "0.14.0" 74 | } 75 | }, 76 | { 77 | "package": "swift-argument-parser", 78 | "repositoryURL": "https://github.com/apple/swift-argument-parser", 79 | "state": { 80 | "branch": null, 81 | "revision": "92646c0cdbaca076c8d3d0207891785b3379cbff", 82 | "version": "0.3.1" 83 | } 84 | }, 85 | { 86 | "package": "swift-nio-zlib-support", 87 | "repositoryURL": "https://github.com/apple/swift-nio-zlib-support.git", 88 | "state": { 89 | "branch": null, 90 | "revision": "37760e9a52030bb9011972c5213c3350fa9d41fd", 91 | "version": "1.0.0" 92 | } 93 | } 94 | ] 95 | }, 96 | "version": 1 97 | } 98 | -------------------------------------------------------------------------------- /OSRSUI/GraphQL/API.swift: -------------------------------------------------------------------------------- 1 | // @generated 2 | // This file was automatically generated and should not be edited. 3 | 4 | import Apollo 5 | import Foundation 6 | 7 | public final class GetItemsQuery: GraphQLQuery { 8 | /// The raw GraphQL definition of this operation. 9 | public let operationDefinition: String = 10 | """ 11 | query GetItems { 12 | items { 13 | __typename 14 | name 15 | members 16 | } 17 | } 18 | """ 19 | 20 | public let operationName: String = "GetItems" 21 | 22 | public let operationIdentifier: String? = "1b873bb10dcac02164a7895d3887e21d5abf9da56c1f5d94624711d1d81a4caf" 23 | 24 | public init() { 25 | } 26 | 27 | public struct Data: GraphQLSelectionSet { 28 | public static let possibleTypes: [String] = ["Query"] 29 | 30 | public static var selections: [GraphQLSelection] { 31 | return [ 32 | GraphQLField("items", type: .nonNull(.list(.nonNull(.object(Item.selections))))), 33 | ] 34 | } 35 | 36 | public private(set) var resultMap: ResultMap 37 | 38 | public init(unsafeResultMap: ResultMap) { 39 | self.resultMap = unsafeResultMap 40 | } 41 | 42 | public init(items: [Item]) { 43 | self.init(unsafeResultMap: ["__typename": "Query", "items": items.map { (value: Item) -> ResultMap in value.resultMap }]) 44 | } 45 | 46 | public var items: [Item] { 47 | get { 48 | return (resultMap["items"] as! [ResultMap]).map { (value: ResultMap) -> Item in Item(unsafeResultMap: value) } 49 | } 50 | set { 51 | resultMap.updateValue(newValue.map { (value: Item) -> ResultMap in value.resultMap }, forKey: "items") 52 | } 53 | } 54 | 55 | public struct Item: GraphQLSelectionSet { 56 | public static let possibleTypes: [String] = ["Item"] 57 | 58 | public static var selections: [GraphQLSelection] { 59 | return [ 60 | GraphQLField("__typename", type: .nonNull(.scalar(String.self))), 61 | GraphQLField("name", type: .nonNull(.scalar(String.self))), 62 | GraphQLField("members", type: .nonNull(.scalar(Bool.self))), 63 | ] 64 | } 65 | 66 | public private(set) var resultMap: ResultMap 67 | 68 | public init(unsafeResultMap: ResultMap) { 69 | self.resultMap = unsafeResultMap 70 | } 71 | 72 | public init(name: String, members: Bool) { 73 | self.init(unsafeResultMap: ["__typename": "Item", "name": name, "members": members]) 74 | } 75 | 76 | public var __typename: String { 77 | get { 78 | return resultMap["__typename"]! as! String 79 | } 80 | set { 81 | resultMap.updateValue(newValue, forKey: "__typename") 82 | } 83 | } 84 | 85 | /// Name displayed in game 86 | public var name: String { 87 | get { 88 | return resultMap["name"]! as! String 89 | } 90 | set { 91 | resultMap.updateValue(newValue, forKey: "name") 92 | } 93 | } 94 | 95 | public var members: Bool { 96 | get { 97 | return resultMap["members"]! as! Bool 98 | } 99 | set { 100 | resultMap.updateValue(newValue, forKey: "members") 101 | } 102 | } 103 | } 104 | } 105 | } 106 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | Apache License 2 | Version 2.0, January 2004 3 | http://www.apache.org/licenses/ 4 | 5 | TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION 6 | 7 | 1. Definitions. 8 | 9 | "License" shall mean the terms and conditions for use, reproduction, 10 | and distribution as defined by Sections 1 through 9 of this document. 11 | 12 | "Licensor" shall mean the copyright owner or entity authorized by 13 | the copyright owner that is granting the License. 14 | 15 | "Legal Entity" shall mean the union of the acting entity and all 16 | other entities that control, are controlled by, or are under common 17 | control with that entity. For the purposes of this definition, 18 | "control" means (i) the power, direct or indirect, to cause the 19 | direction or management of such entity, whether by contract or 20 | otherwise, or (ii) ownership of fifty percent (50%) or more of the 21 | outstanding shares, or (iii) beneficial ownership of such entity. 22 | 23 | "You" (or "Your") shall mean an individual or Legal Entity 24 | exercising permissions granted by this License. 25 | 26 | "Source" form shall mean the preferred form for making modifications, 27 | including but not limited to software source code, documentation 28 | source, and configuration files. 29 | 30 | "Object" form shall mean any form resulting from mechanical 31 | transformation or translation of a Source form, including but 32 | not limited to compiled object code, generated documentation, 33 | and conversions to other media types. 34 | 35 | "Work" shall mean the work of authorship, whether in Source or 36 | Object form, made available under the License, as indicated by a 37 | copyright notice that is included in or attached to the work 38 | (an example is provided in the Appendix below). 39 | 40 | "Derivative Works" shall mean any work, whether in Source or Object 41 | form, that is based on (or derived from) the Work and for which the 42 | editorial revisions, annotations, elaborations, or other modifications 43 | represent, as a whole, an original work of authorship. For the purposes 44 | of this License, Derivative Works shall not include works that remain 45 | separable from, or merely link (or bind by name) to the interfaces of, 46 | the Work and Derivative Works thereof. 47 | 48 | "Contribution" shall mean any work of authorship, including 49 | the original version of the Work and any modifications or additions 50 | to that Work or Derivative Works thereof, that is intentionally 51 | submitted to Licensor for inclusion in the Work by the copyright owner 52 | or by an individual or Legal Entity authorized to submit on behalf of 53 | the copyright owner. For the purposes of this definition, "submitted" 54 | means any form of electronic, verbal, or written communication sent 55 | to the Licensor or its representatives, including but not limited to 56 | communication on electronic mailing lists, source code control systems, 57 | and issue tracking systems that are managed by, or on behalf of, the 58 | Licensor for the purpose of discussing and improving the Work, but 59 | excluding communication that is conspicuously marked or otherwise 60 | designated in writing by the copyright owner as "Not a Contribution." 61 | 62 | "Contributor" shall mean Licensor and any individual or Legal Entity 63 | on behalf of whom a Contribution has been received by Licensor and 64 | subsequently incorporated within the Work. 65 | 66 | 2. Grant of Copyright License. Subject to the terms and conditions of 67 | this License, each Contributor hereby grants to You a perpetual, 68 | worldwide, non-exclusive, no-charge, royalty-free, irrevocable 69 | copyright license to reproduce, prepare Derivative Works of, 70 | publicly display, publicly perform, sublicense, and distribute the 71 | Work and such Derivative Works in Source or Object form. 72 | 73 | 3. Grant of Patent License. Subject to the terms and conditions of 74 | this License, each Contributor hereby grants to You a perpetual, 75 | worldwide, non-exclusive, no-charge, royalty-free, irrevocable 76 | (except as stated in this section) patent license to make, have made, 77 | use, offer to sell, sell, import, and otherwise transfer the Work, 78 | where such license applies only to those patent claims licensable 79 | by such Contributor that are necessarily infringed by their 80 | Contribution(s) alone or by combination of their Contribution(s) 81 | with the Work to which such Contribution(s) was submitted. If You 82 | institute patent litigation against any entity (including a 83 | cross-claim or counterclaim in a lawsuit) alleging that the Work 84 | or a Contribution incorporated within the Work constitutes direct 85 | or contributory patent infringement, then any patent licenses 86 | granted to You under this License for that Work shall terminate 87 | as of the date such litigation is filed. 88 | 89 | 4. Redistribution. You may reproduce and distribute copies of the 90 | Work or Derivative Works thereof in any medium, with or without 91 | modifications, and in Source or Object form, provided that You 92 | meet the following conditions: 93 | 94 | (a) You must give any other recipients of the Work or 95 | Derivative Works a copy of this License; and 96 | 97 | (b) You must cause any modified files to carry prominent notices 98 | stating that You changed the files; and 99 | 100 | (c) You must retain, in the Source form of any Derivative Works 101 | that You distribute, all copyright, patent, trademark, and 102 | attribution notices from the Source form of the Work, 103 | excluding those notices that do not pertain to any part of 104 | the Derivative Works; and 105 | 106 | (d) If the Work includes a "NOTICE" text file as part of its 107 | distribution, then any Derivative Works that You distribute must 108 | include a readable copy of the attribution notices contained 109 | within such NOTICE file, excluding those notices that do not 110 | pertain to any part of the Derivative Works, in at least one 111 | of the following places: within a NOTICE text file distributed 112 | as part of the Derivative Works; within the Source form or 113 | documentation, if provided along with the Derivative Works; or, 114 | within a display generated by the Derivative Works, if and 115 | wherever such third-party notices normally appear. The contents 116 | of the NOTICE file are for informational purposes only and 117 | do not modify the License. You may add Your own attribution 118 | notices within Derivative Works that You distribute, alongside 119 | or as an addendum to the NOTICE text from the Work, provided 120 | that such additional attribution notices cannot be construed 121 | as modifying the License. 122 | 123 | You may add Your own copyright statement to Your modifications and 124 | may provide additional or different license terms and conditions 125 | for use, reproduction, or distribution of Your modifications, or 126 | for any such Derivative Works as a whole, provided Your use, 127 | reproduction, and distribution of the Work otherwise complies with 128 | the conditions stated in this License. 129 | 130 | 5. Submission of Contributions. Unless You explicitly state otherwise, 131 | any Contribution intentionally submitted for inclusion in the Work 132 | by You to the Licensor shall be under the terms and conditions of 133 | this License, without any additional terms or conditions. 134 | Notwithstanding the above, nothing herein shall supersede or modify 135 | the terms of any separate license agreement you may have executed 136 | with Licensor regarding such Contributions. 137 | 138 | 6. Trademarks. This License does not grant permission to use the trade 139 | names, trademarks, service marks, or product names of the Licensor, 140 | except as required for reasonable and customary use in describing the 141 | origin of the Work and reproducing the content of the NOTICE file. 142 | 143 | 7. Disclaimer of Warranty. Unless required by applicable law or 144 | agreed to in writing, Licensor provides the Work (and each 145 | Contributor provides its Contributions) on an "AS IS" BASIS, 146 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 147 | implied, including, without limitation, any warranties or conditions 148 | of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A 149 | PARTICULAR PURPOSE. You are solely responsible for determining the 150 | appropriateness of using or redistributing the Work and assume any 151 | risks associated with Your exercise of permissions under this License. 152 | 153 | 8. Limitation of Liability. In no event and under no legal theory, 154 | whether in tort (including negligence), contract, or otherwise, 155 | unless required by applicable law (such as deliberate and grossly 156 | negligent acts) or agreed to in writing, shall any Contributor be 157 | liable to You for damages, including any direct, indirect, special, 158 | incidental, or consequential damages of any character arising as a 159 | result of this License or out of the use or inability to use the 160 | Work (including but not limited to damages for loss of goodwill, 161 | work stoppage, computer failure or malfunction, or any and all 162 | other commercial damages or losses), even if such Contributor 163 | has been advised of the possibility of such damages. 164 | 165 | 9. Accepting Warranty or Additional Liability. While redistributing 166 | the Work or Derivative Works thereof, You may choose to offer, 167 | and charge a fee for, acceptance of support, warranty, indemnity, 168 | or other liability obligations and/or rights consistent with this 169 | License. However, in accepting such obligations, You may act only 170 | on Your own behalf and on Your sole responsibility, not on behalf 171 | of any other Contributor, and only if You agree to indemnify, 172 | defend, and hold each Contributor harmless for any liability 173 | incurred by, or claims asserted against, such Contributor by reason 174 | of your accepting any such warranty or additional liability. 175 | 176 | END OF TERMS AND CONDITIONS 177 | 178 | APPENDIX: How to apply the Apache License to your work. 179 | 180 | To apply the Apache License to your work, attach the following 181 | boilerplate notice, with the fields enclosed by brackets "[]" 182 | replaced with your own identifying information. (Don't include 183 | the brackets!) The text should be enclosed in the appropriate 184 | comment syntax for the file format. We also recommend that a 185 | file or class name and description of purpose be included on the 186 | same "printed page" as the copyright notice for easier 187 | identification within third-party archives. 188 | 189 | Copyright [yyyy] [name of copyright owner] 190 | 191 | Licensed under the Apache License, Version 2.0 (the "License"); 192 | you may not use this file except in compliance with the License. 193 | You may obtain a copy of the License at 194 | 195 | http://www.apache.org/licenses/LICENSE-2.0 196 | 197 | Unless required by applicable law or agreed to in writing, software 198 | distributed under the License is distributed on an "AS IS" BASIS, 199 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 200 | See the License for the specific language governing permissions and 201 | limitations under the License. 202 | -------------------------------------------------------------------------------- /OSRSUI.xcodeproj/project.pbxproj: -------------------------------------------------------------------------------- 1 | // !$*UTF8*$! 2 | { 3 | archiveVersion = 1; 4 | classes = { 5 | }; 6 | objectVersion = 52; 7 | objects = { 8 | 9 | /* Begin PBXBuildFile section */ 10 | 696BC15E25B05CBC0075F57C /* OSRSUIApp.swift in Sources */ = {isa = PBXBuildFile; fileRef = 696BC15D25B05CBC0075F57C /* OSRSUIApp.swift */; }; 11 | 696BC16025B05CBC0075F57C /* ContentView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 696BC15F25B05CBC0075F57C /* ContentView.swift */; }; 12 | 696BC16225B05CBF0075F57C /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 696BC16125B05CBF0075F57C /* Assets.xcassets */; }; 13 | 696BC16525B05CBF0075F57C /* Preview Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 696BC16425B05CBF0075F57C /* Preview Assets.xcassets */; }; 14 | 696BC17225B05E7A0075F57C /* Apollo in Frameworks */ = {isa = PBXBuildFile; productRef = 696BC17125B05E7A0075F57C /* Apollo */; }; 15 | 696BC17625B0609C0075F57C /* Kingfisher in Frameworks */ = {isa = PBXBuildFile; productRef = 696BC17525B0609C0075F57C /* Kingfisher */; }; 16 | 696BC17D25B063C20075F57C /* Queries.graphql in Resources */ = {isa = PBXBuildFile; fileRef = 696BC17C25B063C20075F57C /* Queries.graphql */; }; 17 | 696BC18025B063EE0075F57C /* API.swift in Sources */ = {isa = PBXBuildFile; fileRef = 696BC17F25B063EE0075F57C /* API.swift */; }; 18 | /* End PBXBuildFile section */ 19 | 20 | /* Begin PBXFileReference section */ 21 | 696BC15A25B05CBC0075F57C /* OSRSUI.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = OSRSUI.app; sourceTree = BUILT_PRODUCTS_DIR; }; 22 | 696BC15D25B05CBC0075F57C /* OSRSUIApp.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OSRSUIApp.swift; sourceTree = ""; }; 23 | 696BC15F25B05CBC0075F57C /* ContentView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ContentView.swift; sourceTree = ""; }; 24 | 696BC16125B05CBF0075F57C /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; 25 | 696BC16425B05CBF0075F57C /* Preview Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = "Preview Assets.xcassets"; sourceTree = ""; }; 26 | 696BC16625B05CBF0075F57C /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; 27 | 696BC16E25B05CFD0075F57C /* ApolloCodegen */ = {isa = PBXFileReference; lastKnownFileType = text; name = ApolloCodegen; path = Packages/ApolloCodegen; sourceTree = SOURCE_ROOT; }; 28 | 696BC17C25B063C20075F57C /* Queries.graphql */ = {isa = PBXFileReference; lastKnownFileType = text; path = Queries.graphql; sourceTree = ""; }; 29 | 696BC17F25B063EE0075F57C /* API.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = API.swift; sourceTree = ""; }; 30 | /* End PBXFileReference section */ 31 | 32 | /* Begin PBXFrameworksBuildPhase section */ 33 | 696BC15725B05CBC0075F57C /* Frameworks */ = { 34 | isa = PBXFrameworksBuildPhase; 35 | buildActionMask = 2147483647; 36 | files = ( 37 | 696BC17625B0609C0075F57C /* Kingfisher in Frameworks */, 38 | 696BC17225B05E7A0075F57C /* Apollo in Frameworks */, 39 | ); 40 | runOnlyForDeploymentPostprocessing = 0; 41 | }; 42 | /* End PBXFrameworksBuildPhase section */ 43 | 44 | /* Begin PBXGroup section */ 45 | 696BC15125B05CBC0075F57C = { 46 | isa = PBXGroup; 47 | children = ( 48 | 696BC15C25B05CBC0075F57C /* OSRSUI */, 49 | 696BC15B25B05CBC0075F57C /* Products */, 50 | ); 51 | sourceTree = ""; 52 | }; 53 | 696BC15B25B05CBC0075F57C /* Products */ = { 54 | isa = PBXGroup; 55 | children = ( 56 | 696BC15A25B05CBC0075F57C /* OSRSUI.app */, 57 | ); 58 | name = Products; 59 | sourceTree = ""; 60 | }; 61 | 696BC15C25B05CBC0075F57C /* OSRSUI */ = { 62 | isa = PBXGroup; 63 | children = ( 64 | 696BC16E25B05CFD0075F57C /* ApolloCodegen */, 65 | 696BC15D25B05CBC0075F57C /* OSRSUIApp.swift */, 66 | 696BC15F25B05CBC0075F57C /* ContentView.swift */, 67 | 696BC16125B05CBF0075F57C /* Assets.xcassets */, 68 | 696BC16625B05CBF0075F57C /* Info.plist */, 69 | 696BC17825B060A30075F57C /* GraphQL */, 70 | 696BC16325B05CBF0075F57C /* Preview Content */, 71 | ); 72 | path = OSRSUI; 73 | sourceTree = ""; 74 | }; 75 | 696BC16325B05CBF0075F57C /* Preview Content */ = { 76 | isa = PBXGroup; 77 | children = ( 78 | 696BC16425B05CBF0075F57C /* Preview Assets.xcassets */, 79 | ); 80 | path = "Preview Content"; 81 | sourceTree = ""; 82 | }; 83 | 696BC17825B060A30075F57C /* GraphQL */ = { 84 | isa = PBXGroup; 85 | children = ( 86 | 696BC17F25B063EE0075F57C /* API.swift */, 87 | 696BC17C25B063C20075F57C /* Queries.graphql */, 88 | ); 89 | path = GraphQL; 90 | sourceTree = ""; 91 | }; 92 | /* End PBXGroup section */ 93 | 94 | /* Begin PBXNativeTarget section */ 95 | 696BC15925B05CBC0075F57C /* OSRSUI */ = { 96 | isa = PBXNativeTarget; 97 | buildConfigurationList = 696BC16925B05CBF0075F57C /* Build configuration list for PBXNativeTarget "OSRSUI" */; 98 | buildPhases = ( 99 | 696BC15625B05CBC0075F57C /* Sources */, 100 | 696BC15725B05CBC0075F57C /* Frameworks */, 101 | 696BC15825B05CBC0075F57C /* Resources */, 102 | ); 103 | buildRules = ( 104 | ); 105 | dependencies = ( 106 | ); 107 | name = OSRSUI; 108 | packageProductDependencies = ( 109 | 696BC17125B05E7A0075F57C /* Apollo */, 110 | 696BC17525B0609C0075F57C /* Kingfisher */, 111 | ); 112 | productName = OSRSUI; 113 | productReference = 696BC15A25B05CBC0075F57C /* OSRSUI.app */; 114 | productType = "com.apple.product-type.application"; 115 | }; 116 | /* End PBXNativeTarget section */ 117 | 118 | /* Begin PBXProject section */ 119 | 696BC15225B05CBC0075F57C /* Project object */ = { 120 | isa = PBXProject; 121 | attributes = { 122 | LastSwiftUpdateCheck = 1230; 123 | LastUpgradeCheck = 1230; 124 | TargetAttributes = { 125 | 696BC15925B05CBC0075F57C = { 126 | CreatedOnToolsVersion = 12.3; 127 | }; 128 | }; 129 | }; 130 | buildConfigurationList = 696BC15525B05CBC0075F57C /* Build configuration list for PBXProject "OSRSUI" */; 131 | compatibilityVersion = "Xcode 9.3"; 132 | developmentRegion = en; 133 | hasScannedForEncodings = 0; 134 | knownRegions = ( 135 | en, 136 | Base, 137 | ); 138 | mainGroup = 696BC15125B05CBC0075F57C; 139 | packageReferences = ( 140 | 696BC17025B05E7A0075F57C /* XCRemoteSwiftPackageReference "apollo-ios" */, 141 | 696BC17425B0609C0075F57C /* XCRemoteSwiftPackageReference "Kingfisher" */, 142 | ); 143 | productRefGroup = 696BC15B25B05CBC0075F57C /* Products */; 144 | projectDirPath = ""; 145 | projectRoot = ""; 146 | targets = ( 147 | 696BC15925B05CBC0075F57C /* OSRSUI */, 148 | ); 149 | }; 150 | /* End PBXProject section */ 151 | 152 | /* Begin PBXResourcesBuildPhase section */ 153 | 696BC15825B05CBC0075F57C /* Resources */ = { 154 | isa = PBXResourcesBuildPhase; 155 | buildActionMask = 2147483647; 156 | files = ( 157 | 696BC17D25B063C20075F57C /* Queries.graphql in Resources */, 158 | 696BC16525B05CBF0075F57C /* Preview Assets.xcassets in Resources */, 159 | 696BC16225B05CBF0075F57C /* Assets.xcassets in Resources */, 160 | ); 161 | runOnlyForDeploymentPostprocessing = 0; 162 | }; 163 | /* End PBXResourcesBuildPhase section */ 164 | 165 | /* Begin PBXSourcesBuildPhase section */ 166 | 696BC15625B05CBC0075F57C /* Sources */ = { 167 | isa = PBXSourcesBuildPhase; 168 | buildActionMask = 2147483647; 169 | files = ( 170 | 696BC16025B05CBC0075F57C /* ContentView.swift in Sources */, 171 | 696BC18025B063EE0075F57C /* API.swift in Sources */, 172 | 696BC15E25B05CBC0075F57C /* OSRSUIApp.swift in Sources */, 173 | ); 174 | runOnlyForDeploymentPostprocessing = 0; 175 | }; 176 | /* End PBXSourcesBuildPhase section */ 177 | 178 | /* Begin XCBuildConfiguration section */ 179 | 696BC16725B05CBF0075F57C /* Debug */ = { 180 | isa = XCBuildConfiguration; 181 | buildSettings = { 182 | ALWAYS_SEARCH_USER_PATHS = NO; 183 | CLANG_ANALYZER_NONNULL = YES; 184 | CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; 185 | CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; 186 | CLANG_CXX_LIBRARY = "libc++"; 187 | CLANG_ENABLE_MODULES = YES; 188 | CLANG_ENABLE_OBJC_ARC = YES; 189 | CLANG_ENABLE_OBJC_WEAK = YES; 190 | CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; 191 | CLANG_WARN_BOOL_CONVERSION = YES; 192 | CLANG_WARN_COMMA = YES; 193 | CLANG_WARN_CONSTANT_CONVERSION = YES; 194 | CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; 195 | CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; 196 | CLANG_WARN_DOCUMENTATION_COMMENTS = YES; 197 | CLANG_WARN_EMPTY_BODY = YES; 198 | CLANG_WARN_ENUM_CONVERSION = YES; 199 | CLANG_WARN_INFINITE_RECURSION = YES; 200 | CLANG_WARN_INT_CONVERSION = YES; 201 | CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; 202 | CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; 203 | CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; 204 | CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; 205 | CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; 206 | CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; 207 | CLANG_WARN_STRICT_PROTOTYPES = YES; 208 | CLANG_WARN_SUSPICIOUS_MOVE = YES; 209 | CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; 210 | CLANG_WARN_UNREACHABLE_CODE = YES; 211 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; 212 | COPY_PHASE_STRIP = NO; 213 | DEBUG_INFORMATION_FORMAT = dwarf; 214 | ENABLE_STRICT_OBJC_MSGSEND = YES; 215 | ENABLE_TESTABILITY = YES; 216 | GCC_C_LANGUAGE_STANDARD = gnu11; 217 | GCC_DYNAMIC_NO_PIC = NO; 218 | GCC_NO_COMMON_BLOCKS = YES; 219 | GCC_OPTIMIZATION_LEVEL = 0; 220 | GCC_PREPROCESSOR_DEFINITIONS = ( 221 | "DEBUG=1", 222 | "$(inherited)", 223 | ); 224 | GCC_WARN_64_TO_32_BIT_CONVERSION = YES; 225 | GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; 226 | GCC_WARN_UNDECLARED_SELECTOR = YES; 227 | GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; 228 | GCC_WARN_UNUSED_FUNCTION = YES; 229 | GCC_WARN_UNUSED_VARIABLE = YES; 230 | IPHONEOS_DEPLOYMENT_TARGET = 14.3; 231 | MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; 232 | MTL_FAST_MATH = YES; 233 | ONLY_ACTIVE_ARCH = YES; 234 | SDKROOT = iphoneos; 235 | SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; 236 | SWIFT_OPTIMIZATION_LEVEL = "-Onone"; 237 | }; 238 | name = Debug; 239 | }; 240 | 696BC16825B05CBF0075F57C /* Release */ = { 241 | isa = XCBuildConfiguration; 242 | buildSettings = { 243 | ALWAYS_SEARCH_USER_PATHS = NO; 244 | CLANG_ANALYZER_NONNULL = YES; 245 | CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; 246 | CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; 247 | CLANG_CXX_LIBRARY = "libc++"; 248 | CLANG_ENABLE_MODULES = YES; 249 | CLANG_ENABLE_OBJC_ARC = YES; 250 | CLANG_ENABLE_OBJC_WEAK = YES; 251 | CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; 252 | CLANG_WARN_BOOL_CONVERSION = YES; 253 | CLANG_WARN_COMMA = YES; 254 | CLANG_WARN_CONSTANT_CONVERSION = YES; 255 | CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; 256 | CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; 257 | CLANG_WARN_DOCUMENTATION_COMMENTS = YES; 258 | CLANG_WARN_EMPTY_BODY = YES; 259 | CLANG_WARN_ENUM_CONVERSION = YES; 260 | CLANG_WARN_INFINITE_RECURSION = YES; 261 | CLANG_WARN_INT_CONVERSION = YES; 262 | CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; 263 | CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; 264 | CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; 265 | CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; 266 | CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; 267 | CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; 268 | CLANG_WARN_STRICT_PROTOTYPES = YES; 269 | CLANG_WARN_SUSPICIOUS_MOVE = YES; 270 | CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; 271 | CLANG_WARN_UNREACHABLE_CODE = YES; 272 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; 273 | COPY_PHASE_STRIP = NO; 274 | DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; 275 | ENABLE_NS_ASSERTIONS = NO; 276 | ENABLE_STRICT_OBJC_MSGSEND = YES; 277 | GCC_C_LANGUAGE_STANDARD = gnu11; 278 | GCC_NO_COMMON_BLOCKS = YES; 279 | GCC_WARN_64_TO_32_BIT_CONVERSION = YES; 280 | GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; 281 | GCC_WARN_UNDECLARED_SELECTOR = YES; 282 | GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; 283 | GCC_WARN_UNUSED_FUNCTION = YES; 284 | GCC_WARN_UNUSED_VARIABLE = YES; 285 | IPHONEOS_DEPLOYMENT_TARGET = 14.3; 286 | MTL_ENABLE_DEBUG_INFO = NO; 287 | MTL_FAST_MATH = YES; 288 | SDKROOT = iphoneos; 289 | SWIFT_COMPILATION_MODE = wholemodule; 290 | SWIFT_OPTIMIZATION_LEVEL = "-O"; 291 | VALIDATE_PRODUCT = YES; 292 | }; 293 | name = Release; 294 | }; 295 | 696BC16A25B05CBF0075F57C /* Debug */ = { 296 | isa = XCBuildConfiguration; 297 | buildSettings = { 298 | ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; 299 | ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; 300 | CODE_SIGN_STYLE = Automatic; 301 | DEVELOPMENT_ASSET_PATHS = "\"OSRSUI/Preview Content\""; 302 | DEVELOPMENT_TEAM = Z6P74P6T99; 303 | ENABLE_PREVIEWS = YES; 304 | INFOPLIST_FILE = OSRSUI/Info.plist; 305 | IPHONEOS_DEPLOYMENT_TARGET = 14.0; 306 | LD_RUNPATH_SEARCH_PATHS = ( 307 | "$(inherited)", 308 | "@executable_path/Frameworks", 309 | ); 310 | PRODUCT_BUNDLE_IDENTIFIER = com.thomasricouard.OSRSUI; 311 | PRODUCT_NAME = "$(TARGET_NAME)"; 312 | SWIFT_VERSION = 5.0; 313 | TARGETED_DEVICE_FAMILY = "1,2"; 314 | }; 315 | name = Debug; 316 | }; 317 | 696BC16B25B05CBF0075F57C /* Release */ = { 318 | isa = XCBuildConfiguration; 319 | buildSettings = { 320 | ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; 321 | ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; 322 | CODE_SIGN_STYLE = Automatic; 323 | DEVELOPMENT_ASSET_PATHS = "\"OSRSUI/Preview Content\""; 324 | DEVELOPMENT_TEAM = Z6P74P6T99; 325 | ENABLE_PREVIEWS = YES; 326 | INFOPLIST_FILE = OSRSUI/Info.plist; 327 | IPHONEOS_DEPLOYMENT_TARGET = 14.0; 328 | LD_RUNPATH_SEARCH_PATHS = ( 329 | "$(inherited)", 330 | "@executable_path/Frameworks", 331 | ); 332 | PRODUCT_BUNDLE_IDENTIFIER = com.thomasricouard.OSRSUI; 333 | PRODUCT_NAME = "$(TARGET_NAME)"; 334 | SWIFT_VERSION = 5.0; 335 | TARGETED_DEVICE_FAMILY = "1,2"; 336 | }; 337 | name = Release; 338 | }; 339 | /* End XCBuildConfiguration section */ 340 | 341 | /* Begin XCConfigurationList section */ 342 | 696BC15525B05CBC0075F57C /* Build configuration list for PBXProject "OSRSUI" */ = { 343 | isa = XCConfigurationList; 344 | buildConfigurations = ( 345 | 696BC16725B05CBF0075F57C /* Debug */, 346 | 696BC16825B05CBF0075F57C /* Release */, 347 | ); 348 | defaultConfigurationIsVisible = 0; 349 | defaultConfigurationName = Release; 350 | }; 351 | 696BC16925B05CBF0075F57C /* Build configuration list for PBXNativeTarget "OSRSUI" */ = { 352 | isa = XCConfigurationList; 353 | buildConfigurations = ( 354 | 696BC16A25B05CBF0075F57C /* Debug */, 355 | 696BC16B25B05CBF0075F57C /* Release */, 356 | ); 357 | defaultConfigurationIsVisible = 0; 358 | defaultConfigurationName = Release; 359 | }; 360 | /* End XCConfigurationList section */ 361 | 362 | /* Begin XCRemoteSwiftPackageReference section */ 363 | 696BC17025B05E7A0075F57C /* XCRemoteSwiftPackageReference "apollo-ios" */ = { 364 | isa = XCRemoteSwiftPackageReference; 365 | repositoryURL = "https://github.com/apollographql/apollo-ios.git"; 366 | requirement = { 367 | kind = upToNextMajorVersion; 368 | minimumVersion = 0.40.0; 369 | }; 370 | }; 371 | 696BC17425B0609C0075F57C /* XCRemoteSwiftPackageReference "Kingfisher" */ = { 372 | isa = XCRemoteSwiftPackageReference; 373 | repositoryURL = "https://github.com/onevcat/Kingfisher"; 374 | requirement = { 375 | kind = upToNextMajorVersion; 376 | minimumVersion = 6.0.1; 377 | }; 378 | }; 379 | /* End XCRemoteSwiftPackageReference section */ 380 | 381 | /* Begin XCSwiftPackageProductDependency section */ 382 | 696BC17125B05E7A0075F57C /* Apollo */ = { 383 | isa = XCSwiftPackageProductDependency; 384 | package = 696BC17025B05E7A0075F57C /* XCRemoteSwiftPackageReference "apollo-ios" */; 385 | productName = Apollo; 386 | }; 387 | 696BC17525B0609C0075F57C /* Kingfisher */ = { 388 | isa = XCSwiftPackageProductDependency; 389 | package = 696BC17425B0609C0075F57C /* XCRemoteSwiftPackageReference "Kingfisher" */; 390 | productName = Kingfisher; 391 | }; 392 | /* End XCSwiftPackageProductDependency section */ 393 | }; 394 | rootObject = 696BC15225B05CBC0075F57C /* Project object */; 395 | } 396 | -------------------------------------------------------------------------------- /OSRSUI/GraphQL/schema.json: -------------------------------------------------------------------------------- 1 | { 2 | "__schema": { 3 | "description": null, 4 | "queryType": { 5 | "name": "Query" 6 | }, 7 | "mutationType": null, 8 | "subscriptionType": null, 9 | "types": [ 10 | { 11 | "kind": "OBJECT", 12 | "name": "Query", 13 | "description": null, 14 | "fields": [ 15 | { 16 | "name": "items", 17 | "description": null, 18 | "args": [ 19 | { 20 | "name": "nameLike", 21 | "description": null, 22 | "type": { 23 | "kind": "SCALAR", 24 | "name": "String", 25 | "ofType": null 26 | }, 27 | "defaultValue": null 28 | }, 29 | { 30 | "name": "qualifiedNameLike", 31 | "description": null, 32 | "type": { 33 | "kind": "SCALAR", 34 | "name": "String", 35 | "ofType": null 36 | }, 37 | "defaultValue": null 38 | }, 39 | { 40 | "name": "slot", 41 | "description": null, 42 | "type": { 43 | "kind": "ENUM", 44 | "name": "Slot", 45 | "ofType": null 46 | }, 47 | "defaultValue": null 48 | }, 49 | { 50 | "name": "members", 51 | "description": null, 52 | "type": { 53 | "kind": "SCALAR", 54 | "name": "Boolean", 55 | "ofType": null 56 | }, 57 | "defaultValue": null 58 | }, 59 | { 60 | "name": "quest", 61 | "description": null, 62 | "type": { 63 | "kind": "SCALAR", 64 | "name": "Boolean", 65 | "ofType": null 66 | }, 67 | "defaultValue": null 68 | }, 69 | { 70 | "name": "stackable", 71 | "description": null, 72 | "type": { 73 | "kind": "SCALAR", 74 | "name": "Boolean", 75 | "ofType": null 76 | }, 77 | "defaultValue": null 78 | }, 79 | { 80 | "name": "tradeable", 81 | "description": null, 82 | "type": { 83 | "kind": "SCALAR", 84 | "name": "Boolean", 85 | "ofType": null 86 | }, 87 | "defaultValue": null 88 | }, 89 | { 90 | "name": "tradeable_ge", 91 | "description": null, 92 | "type": { 93 | "kind": "SCALAR", 94 | "name": "Boolean", 95 | "ofType": null 96 | }, 97 | "defaultValue": null 98 | }, 99 | { 100 | "name": "equipable", 101 | "description": null, 102 | "type": { 103 | "kind": "SCALAR", 104 | "name": "Boolean", 105 | "ofType": null 106 | }, 107 | "defaultValue": null 108 | }, 109 | { 110 | "name": "limit", 111 | "description": null, 112 | "type": { 113 | "kind": "SCALAR", 114 | "name": "Int", 115 | "ofType": null 116 | }, 117 | "defaultValue": null 118 | } 119 | ], 120 | "type": { 121 | "kind": "NON_NULL", 122 | "name": null, 123 | "ofType": { 124 | "kind": "LIST", 125 | "name": null, 126 | "ofType": { 127 | "kind": "NON_NULL", 128 | "name": null, 129 | "ofType": { 130 | "kind": "OBJECT", 131 | "name": "Item", 132 | "ofType": null 133 | } 134 | } 135 | } 136 | }, 137 | "isDeprecated": false, 138 | "deprecationReason": null 139 | }, 140 | { 141 | "name": "item", 142 | "description": null, 143 | "args": [ 144 | { 145 | "name": "id", 146 | "description": null, 147 | "type": { 148 | "kind": "SCALAR", 149 | "name": "Int", 150 | "ofType": null 151 | }, 152 | "defaultValue": null 153 | }, 154 | { 155 | "name": "name", 156 | "description": null, 157 | "type": { 158 | "kind": "SCALAR", 159 | "name": "String", 160 | "ofType": null 161 | }, 162 | "defaultValue": null 163 | }, 164 | { 165 | "name": "qualifiedName", 166 | "description": null, 167 | "type": { 168 | "kind": "SCALAR", 169 | "name": "String", 170 | "ofType": null 171 | }, 172 | "defaultValue": null 173 | } 174 | ], 175 | "type": { 176 | "kind": "OBJECT", 177 | "name": "Item", 178 | "ofType": null 179 | }, 180 | "isDeprecated": false, 181 | "deprecationReason": null 182 | }, 183 | { 184 | "name": "weaponCategory", 185 | "description": null, 186 | "args": [ 187 | { 188 | "name": "name", 189 | "description": null, 190 | "type": { 191 | "kind": "SCALAR", 192 | "name": "String", 193 | "ofType": null 194 | }, 195 | "defaultValue": null 196 | } 197 | ], 198 | "type": { 199 | "kind": "OBJECT", 200 | "name": "WeaponCategory", 201 | "ofType": null 202 | }, 203 | "isDeprecated": false, 204 | "deprecationReason": null 205 | }, 206 | { 207 | "name": "monsters", 208 | "description": null, 209 | "args": [ 210 | { 211 | "name": "nameLike", 212 | "description": null, 213 | "type": { 214 | "kind": "SCALAR", 215 | "name": "String", 216 | "ofType": null 217 | }, 218 | "defaultValue": null 219 | }, 220 | { 221 | "name": "qualifiedNameLike", 222 | "description": null, 223 | "type": { 224 | "kind": "SCALAR", 225 | "name": "String", 226 | "ofType": null 227 | }, 228 | "defaultValue": null 229 | }, 230 | { 231 | "name": "members", 232 | "description": null, 233 | "type": { 234 | "kind": "SCALAR", 235 | "name": "Boolean", 236 | "ofType": null 237 | }, 238 | "defaultValue": null 239 | }, 240 | { 241 | "name": "attribute", 242 | "description": null, 243 | "type": { 244 | "kind": "ENUM", 245 | "name": "MonsterAttribute", 246 | "ofType": null 247 | }, 248 | "defaultValue": null 249 | }, 250 | { 251 | "name": "slayer", 252 | "description": null, 253 | "type": { 254 | "kind": "SCALAR", 255 | "name": "Boolean", 256 | "ofType": null 257 | }, 258 | "defaultValue": null 259 | }, 260 | { 261 | "name": "slayerCategory", 262 | "description": null, 263 | "type": { 264 | "kind": "ENUM", 265 | "name": "SlayerCategory", 266 | "ofType": null 267 | }, 268 | "defaultValue": null 269 | }, 270 | { 271 | "name": "limit", 272 | "description": null, 273 | "type": { 274 | "kind": "SCALAR", 275 | "name": "Int", 276 | "ofType": null 277 | }, 278 | "defaultValue": null 279 | } 280 | ], 281 | "type": { 282 | "kind": "NON_NULL", 283 | "name": null, 284 | "ofType": { 285 | "kind": "LIST", 286 | "name": null, 287 | "ofType": { 288 | "kind": "NON_NULL", 289 | "name": null, 290 | "ofType": { 291 | "kind": "OBJECT", 292 | "name": "Monster", 293 | "ofType": null 294 | } 295 | } 296 | } 297 | }, 298 | "isDeprecated": false, 299 | "deprecationReason": null 300 | }, 301 | { 302 | "name": "monster", 303 | "description": null, 304 | "args": [ 305 | { 306 | "name": "id", 307 | "description": null, 308 | "type": { 309 | "kind": "SCALAR", 310 | "name": "Int", 311 | "ofType": null 312 | }, 313 | "defaultValue": null 314 | }, 315 | { 316 | "name": "name", 317 | "description": null, 318 | "type": { 319 | "kind": "SCALAR", 320 | "name": "String", 321 | "ofType": null 322 | }, 323 | "defaultValue": null 324 | }, 325 | { 326 | "name": "qualifiedName", 327 | "description": null, 328 | "type": { 329 | "kind": "SCALAR", 330 | "name": "String", 331 | "ofType": null 332 | }, 333 | "defaultValue": null 334 | } 335 | ], 336 | "type": { 337 | "kind": "OBJECT", 338 | "name": "Monster", 339 | "ofType": null 340 | }, 341 | "isDeprecated": false, 342 | "deprecationReason": null 343 | } 344 | ], 345 | "inputFields": null, 346 | "interfaces": [], 347 | "enumValues": null, 348 | "possibleTypes": null 349 | }, 350 | { 351 | "kind": "SCALAR", 352 | "name": "String", 353 | "description": "The `String` scalar type represents textual data, represented as UTF-8 character sequences. The String type is most often used by GraphQL to represent free-form human-readable text.", 354 | "fields": null, 355 | "inputFields": null, 356 | "interfaces": null, 357 | "enumValues": null, 358 | "possibleTypes": null 359 | }, 360 | { 361 | "kind": "SCALAR", 362 | "name": "Boolean", 363 | "description": "The `Boolean` scalar type represents `true` or `false`.", 364 | "fields": null, 365 | "inputFields": null, 366 | "interfaces": null, 367 | "enumValues": null, 368 | "possibleTypes": null 369 | }, 370 | { 371 | "kind": "SCALAR", 372 | "name": "Int", 373 | "description": "The `Int` scalar type represents non-fractional signed whole numeric values. Int can represent values between -(2^31) and 2^31 - 1.", 374 | "fields": null, 375 | "inputFields": null, 376 | "interfaces": null, 377 | "enumValues": null, 378 | "possibleTypes": null 379 | }, 380 | { 381 | "kind": "ENUM", 382 | "name": "Slot", 383 | "description": "Equipment slots", 384 | "fields": null, 385 | "inputFields": null, 386 | "interfaces": null, 387 | "enumValues": [ 388 | { 389 | "name": "head", 390 | "description": null, 391 | "isDeprecated": false, 392 | "deprecationReason": null 393 | }, 394 | { 395 | "name": "cape", 396 | "description": null, 397 | "isDeprecated": false, 398 | "deprecationReason": null 399 | }, 400 | { 401 | "name": "neck", 402 | "description": null, 403 | "isDeprecated": false, 404 | "deprecationReason": null 405 | }, 406 | { 407 | "name": "ammunition", 408 | "description": null, 409 | "isDeprecated": false, 410 | "deprecationReason": null 411 | }, 412 | { 413 | "name": "weapon", 414 | "description": null, 415 | "isDeprecated": false, 416 | "deprecationReason": null 417 | }, 418 | { 419 | "name": "offhand", 420 | "description": null, 421 | "isDeprecated": false, 422 | "deprecationReason": null 423 | }, 424 | { 425 | "name": "body", 426 | "description": null, 427 | "isDeprecated": false, 428 | "deprecationReason": null 429 | }, 430 | { 431 | "name": "legs", 432 | "description": null, 433 | "isDeprecated": false, 434 | "deprecationReason": null 435 | }, 436 | { 437 | "name": "hands", 438 | "description": null, 439 | "isDeprecated": false, 440 | "deprecationReason": null 441 | }, 442 | { 443 | "name": "feet", 444 | "description": null, 445 | "isDeprecated": false, 446 | "deprecationReason": null 447 | }, 448 | { 449 | "name": "ring", 450 | "description": null, 451 | "isDeprecated": false, 452 | "deprecationReason": null 453 | }, 454 | { 455 | "name": "twohanded", 456 | "description": "Consumes both weapon and offhand slots", 457 | "isDeprecated": false, 458 | "deprecationReason": null 459 | } 460 | ], 461 | "possibleTypes": null 462 | }, 463 | { 464 | "kind": "OBJECT", 465 | "name": "Item", 466 | "description": null, 467 | "fields": [ 468 | { 469 | "name": "id", 470 | "description": "Unique identifier", 471 | "args": [], 472 | "type": { 473 | "kind": "NON_NULL", 474 | "name": null, 475 | "ofType": { 476 | "kind": "SCALAR", 477 | "name": "Int", 478 | "ofType": null 479 | } 480 | }, 481 | "isDeprecated": false, 482 | "deprecationReason": null 483 | }, 484 | { 485 | "name": "name", 486 | "description": "Name displayed in game", 487 | "args": [], 488 | "type": { 489 | "kind": "NON_NULL", 490 | "name": null, 491 | "ofType": { 492 | "kind": "SCALAR", 493 | "name": "String", 494 | "ofType": null 495 | } 496 | }, 497 | "isDeprecated": false, 498 | "deprecationReason": null 499 | }, 500 | { 501 | "name": "qualified_name", 502 | "description": "Some items have duplicate names, the qualified name serves to differentiate these items.\nGuaranteed to be unique", 503 | "args": [], 504 | "type": { 505 | "kind": "NON_NULL", 506 | "name": null, 507 | "ofType": { 508 | "kind": "SCALAR", 509 | "name": "String", 510 | "ofType": null 511 | } 512 | }, 513 | "isDeprecated": false, 514 | "deprecationReason": null 515 | }, 516 | { 517 | "name": "members", 518 | "description": null, 519 | "args": [], 520 | "type": { 521 | "kind": "NON_NULL", 522 | "name": null, 523 | "ofType": { 524 | "kind": "SCALAR", 525 | "name": "Boolean", 526 | "ofType": null 527 | } 528 | }, 529 | "isDeprecated": false, 530 | "deprecationReason": null 531 | }, 532 | { 533 | "name": "examine", 534 | "description": null, 535 | "args": [], 536 | "type": { 537 | "kind": "NON_NULL", 538 | "name": null, 539 | "ofType": { 540 | "kind": "SCALAR", 541 | "name": "String", 542 | "ofType": null 543 | } 544 | }, 545 | "isDeprecated": false, 546 | "deprecationReason": null 547 | }, 548 | { 549 | "name": "release_date", 550 | "description": "YYYY-MM-DD", 551 | "args": [], 552 | "type": { 553 | "kind": "NON_NULL", 554 | "name": null, 555 | "ofType": { 556 | "kind": "SCALAR", 557 | "name": "String", 558 | "ofType": null 559 | } 560 | }, 561 | "isDeprecated": false, 562 | "deprecationReason": null 563 | }, 564 | { 565 | "name": "weight", 566 | "description": null, 567 | "args": [], 568 | "type": { 569 | "kind": "NON_NULL", 570 | "name": null, 571 | "ofType": { 572 | "kind": "SCALAR", 573 | "name": "Float", 574 | "ofType": null 575 | } 576 | }, 577 | "isDeprecated": false, 578 | "deprecationReason": null 579 | }, 580 | { 581 | "name": "quest", 582 | "description": null, 583 | "args": [], 584 | "type": { 585 | "kind": "NON_NULL", 586 | "name": null, 587 | "ofType": { 588 | "kind": "SCALAR", 589 | "name": "Boolean", 590 | "ofType": null 591 | } 592 | }, 593 | "isDeprecated": false, 594 | "deprecationReason": null 595 | }, 596 | { 597 | "name": "stackable", 598 | "description": null, 599 | "args": [], 600 | "type": { 601 | "kind": "NON_NULL", 602 | "name": null, 603 | "ofType": { 604 | "kind": "SCALAR", 605 | "name": "Boolean", 606 | "ofType": null 607 | } 608 | }, 609 | "isDeprecated": false, 610 | "deprecationReason": null 611 | }, 612 | { 613 | "name": "tradeable", 614 | "description": "Tradeable through standard means", 615 | "args": [], 616 | "type": { 617 | "kind": "NON_NULL", 618 | "name": null, 619 | "ofType": { 620 | "kind": "SCALAR", 621 | "name": "Boolean", 622 | "ofType": null 623 | } 624 | }, 625 | "isDeprecated": false, 626 | "deprecationReason": null 627 | }, 628 | { 629 | "name": "value", 630 | "description": "Static coin value of the item.\nUsed for shop prices, alchemy values, death's coffer, etc.\nNot to be confused with Grand Exchange price", 631 | "args": [], 632 | "type": { 633 | "kind": "NON_NULL", 634 | "name": null, 635 | "ofType": { 636 | "kind": "SCALAR", 637 | "name": "Int", 638 | "ofType": null 639 | } 640 | }, 641 | "isDeprecated": false, 642 | "deprecationReason": null 643 | }, 644 | { 645 | "name": "alchemy", 646 | "description": "If this object is null then the item is not alchable", 647 | "args": [], 648 | "type": { 649 | "kind": "OBJECT", 650 | "name": "AlchemyValues", 651 | "ofType": null 652 | }, 653 | "isDeprecated": false, 654 | "deprecationReason": null 655 | }, 656 | { 657 | "name": "tradeable_ge", 658 | "description": "Tradeable on the Grand Exchange", 659 | "args": [], 660 | "type": { 661 | "kind": "NON_NULL", 662 | "name": null, 663 | "ofType": { 664 | "kind": "SCALAR", 665 | "name": "Boolean", 666 | "ofType": null 667 | } 668 | }, 669 | "isDeprecated": false, 670 | "deprecationReason": null 671 | }, 672 | { 673 | "name": "price", 674 | "description": "Current Grand Exchange price", 675 | "args": [], 676 | "type": { 677 | "kind": "SCALAR", 678 | "name": "Int", 679 | "ofType": null 680 | }, 681 | "isDeprecated": false, 682 | "deprecationReason": null 683 | }, 684 | { 685 | "name": "buy_limit", 686 | "description": "Grand Exchange buy limit per 4 hours", 687 | "args": [], 688 | "type": { 689 | "kind": "SCALAR", 690 | "name": "Int", 691 | "ofType": null 692 | }, 693 | "isDeprecated": false, 694 | "deprecationReason": null 695 | }, 696 | { 697 | "name": "icon", 698 | "description": "PNG icon encoded in Base64", 699 | "args": [], 700 | "type": { 701 | "kind": "NON_NULL", 702 | "name": null, 703 | "ofType": { 704 | "kind": "SCALAR", 705 | "name": "String", 706 | "ofType": null 707 | } 708 | }, 709 | "isDeprecated": false, 710 | "deprecationReason": null 711 | }, 712 | { 713 | "name": "wiki_url", 714 | "description": "URL to the wiki article for this item", 715 | "args": [], 716 | "type": { 717 | "kind": "NON_NULL", 718 | "name": null, 719 | "ofType": { 720 | "kind": "SCALAR", 721 | "name": "String", 722 | "ofType": null 723 | } 724 | }, 725 | "isDeprecated": false, 726 | "deprecationReason": null 727 | }, 728 | { 729 | "name": "equipable", 730 | "description": null, 731 | "args": [], 732 | "type": { 733 | "kind": "NON_NULL", 734 | "name": null, 735 | "ofType": { 736 | "kind": "SCALAR", 737 | "name": "Boolean", 738 | "ofType": null 739 | } 740 | }, 741 | "isDeprecated": false, 742 | "deprecationReason": null 743 | }, 744 | { 745 | "name": "equipment", 746 | "description": null, 747 | "args": [], 748 | "type": { 749 | "kind": "OBJECT", 750 | "name": "Equipment", 751 | "ofType": null 752 | }, 753 | "isDeprecated": false, 754 | "deprecationReason": null 755 | } 756 | ], 757 | "inputFields": null, 758 | "interfaces": [], 759 | "enumValues": null, 760 | "possibleTypes": null 761 | }, 762 | { 763 | "kind": "SCALAR", 764 | "name": "Float", 765 | "description": "The `Float` scalar type represents signed double-precision fractional values as specified by [IEEE 754](https://en.wikipedia.org/wiki/IEEE_floating_point).", 766 | "fields": null, 767 | "inputFields": null, 768 | "interfaces": null, 769 | "enumValues": null, 770 | "possibleTypes": null 771 | }, 772 | { 773 | "kind": "OBJECT", 774 | "name": "AlchemyValues", 775 | "description": null, 776 | "fields": [ 777 | { 778 | "name": "high", 779 | "description": "High alchemy value", 780 | "args": [], 781 | "type": { 782 | "kind": "NON_NULL", 783 | "name": null, 784 | "ofType": { 785 | "kind": "SCALAR", 786 | "name": "Int", 787 | "ofType": null 788 | } 789 | }, 790 | "isDeprecated": false, 791 | "deprecationReason": null 792 | }, 793 | { 794 | "name": "low", 795 | "description": "Low alchemy value", 796 | "args": [], 797 | "type": { 798 | "kind": "NON_NULL", 799 | "name": null, 800 | "ofType": { 801 | "kind": "SCALAR", 802 | "name": "Int", 803 | "ofType": null 804 | } 805 | }, 806 | "isDeprecated": false, 807 | "deprecationReason": null 808 | } 809 | ], 810 | "inputFields": null, 811 | "interfaces": [], 812 | "enumValues": null, 813 | "possibleTypes": null 814 | }, 815 | { 816 | "kind": "OBJECT", 817 | "name": "Equipment", 818 | "description": null, 819 | "fields": [ 820 | { 821 | "name": "slot", 822 | "description": null, 823 | "args": [], 824 | "type": { 825 | "kind": "NON_NULL", 826 | "name": null, 827 | "ofType": { 828 | "kind": "ENUM", 829 | "name": "Slot", 830 | "ofType": null 831 | } 832 | }, 833 | "isDeprecated": false, 834 | "deprecationReason": null 835 | }, 836 | { 837 | "name": "requirements", 838 | "description": "Skill requirements needed to equip the item", 839 | "args": [], 840 | "type": { 841 | "kind": "NON_NULL", 842 | "name": null, 843 | "ofType": { 844 | "kind": "LIST", 845 | "name": null, 846 | "ofType": { 847 | "kind": "NON_NULL", 848 | "name": null, 849 | "ofType": { 850 | "kind": "OBJECT", 851 | "name": "SkillLevel", 852 | "ofType": null 853 | } 854 | } 855 | } 856 | }, 857 | "isDeprecated": false, 858 | "deprecationReason": null 859 | }, 860 | { 861 | "name": "bonuses", 862 | "description": null, 863 | "args": [], 864 | "type": { 865 | "kind": "NON_NULL", 866 | "name": null, 867 | "ofType": { 868 | "kind": "OBJECT", 869 | "name": "Bonuses", 870 | "ofType": null 871 | } 872 | }, 873 | "isDeprecated": false, 874 | "deprecationReason": null 875 | }, 876 | { 877 | "name": "weapon", 878 | "description": null, 879 | "args": [], 880 | "type": { 881 | "kind": "OBJECT", 882 | "name": "WeaponAttributes", 883 | "ofType": null 884 | }, 885 | "isDeprecated": false, 886 | "deprecationReason": null 887 | } 888 | ], 889 | "inputFields": null, 890 | "interfaces": [], 891 | "enumValues": null, 892 | "possibleTypes": null 893 | }, 894 | { 895 | "kind": "OBJECT", 896 | "name": "SkillLevel", 897 | "description": null, 898 | "fields": [ 899 | { 900 | "name": "skill", 901 | "description": null, 902 | "args": [], 903 | "type": { 904 | "kind": "NON_NULL", 905 | "name": null, 906 | "ofType": { 907 | "kind": "ENUM", 908 | "name": "SkillName", 909 | "ofType": null 910 | } 911 | }, 912 | "isDeprecated": false, 913 | "deprecationReason": null 914 | }, 915 | { 916 | "name": "level", 917 | "description": null, 918 | "args": [], 919 | "type": { 920 | "kind": "NON_NULL", 921 | "name": null, 922 | "ofType": { 923 | "kind": "SCALAR", 924 | "name": "Int", 925 | "ofType": null 926 | } 927 | }, 928 | "isDeprecated": false, 929 | "deprecationReason": null 930 | } 931 | ], 932 | "inputFields": null, 933 | "interfaces": [], 934 | "enumValues": null, 935 | "possibleTypes": null 936 | }, 937 | { 938 | "kind": "ENUM", 939 | "name": "SkillName", 940 | "description": "Skills", 941 | "fields": null, 942 | "inputFields": null, 943 | "interfaces": null, 944 | "enumValues": [ 945 | { 946 | "name": "attack", 947 | "description": null, 948 | "isDeprecated": false, 949 | "deprecationReason": null 950 | }, 951 | { 952 | "name": "strength", 953 | "description": null, 954 | "isDeprecated": false, 955 | "deprecationReason": null 956 | }, 957 | { 958 | "name": "defence", 959 | "description": null, 960 | "isDeprecated": false, 961 | "deprecationReason": null 962 | }, 963 | { 964 | "name": "ranged", 965 | "description": null, 966 | "isDeprecated": false, 967 | "deprecationReason": null 968 | }, 969 | { 970 | "name": "prayer", 971 | "description": null, 972 | "isDeprecated": false, 973 | "deprecationReason": null 974 | }, 975 | { 976 | "name": "magic", 977 | "description": null, 978 | "isDeprecated": false, 979 | "deprecationReason": null 980 | }, 981 | { 982 | "name": "runecraft", 983 | "description": null, 984 | "isDeprecated": false, 985 | "deprecationReason": null 986 | }, 987 | { 988 | "name": "hitpoints", 989 | "description": null, 990 | "isDeprecated": false, 991 | "deprecationReason": null 992 | }, 993 | { 994 | "name": "crafting", 995 | "description": null, 996 | "isDeprecated": false, 997 | "deprecationReason": null 998 | }, 999 | { 1000 | "name": "mining", 1001 | "description": null, 1002 | "isDeprecated": false, 1003 | "deprecationReason": null 1004 | }, 1005 | { 1006 | "name": "smithing", 1007 | "description": null, 1008 | "isDeprecated": false, 1009 | "deprecationReason": null 1010 | }, 1011 | { 1012 | "name": "fishing", 1013 | "description": null, 1014 | "isDeprecated": false, 1015 | "deprecationReason": null 1016 | }, 1017 | { 1018 | "name": "cooking", 1019 | "description": null, 1020 | "isDeprecated": false, 1021 | "deprecationReason": null 1022 | }, 1023 | { 1024 | "name": "firemaking", 1025 | "description": null, 1026 | "isDeprecated": false, 1027 | "deprecationReason": null 1028 | }, 1029 | { 1030 | "name": "woodcutting", 1031 | "description": null, 1032 | "isDeprecated": false, 1033 | "deprecationReason": null 1034 | }, 1035 | { 1036 | "name": "agility", 1037 | "description": null, 1038 | "isDeprecated": false, 1039 | "deprecationReason": null 1040 | }, 1041 | { 1042 | "name": "herblore", 1043 | "description": null, 1044 | "isDeprecated": false, 1045 | "deprecationReason": null 1046 | }, 1047 | { 1048 | "name": "thieving", 1049 | "description": null, 1050 | "isDeprecated": false, 1051 | "deprecationReason": null 1052 | }, 1053 | { 1054 | "name": "fletching", 1055 | "description": null, 1056 | "isDeprecated": false, 1057 | "deprecationReason": null 1058 | }, 1059 | { 1060 | "name": "slayer", 1061 | "description": null, 1062 | "isDeprecated": false, 1063 | "deprecationReason": null 1064 | }, 1065 | { 1066 | "name": "farming", 1067 | "description": null, 1068 | "isDeprecated": false, 1069 | "deprecationReason": null 1070 | }, 1071 | { 1072 | "name": "construction", 1073 | "description": null, 1074 | "isDeprecated": false, 1075 | "deprecationReason": null 1076 | }, 1077 | { 1078 | "name": "hunter", 1079 | "description": null, 1080 | "isDeprecated": false, 1081 | "deprecationReason": null 1082 | } 1083 | ], 1084 | "possibleTypes": null 1085 | }, 1086 | { 1087 | "kind": "OBJECT", 1088 | "name": "Bonuses", 1089 | "description": "\"Stats\" provided by equipping the item", 1090 | "fields": [ 1091 | { 1092 | "name": "attack", 1093 | "description": null, 1094 | "args": [], 1095 | "type": { 1096 | "kind": "NON_NULL", 1097 | "name": null, 1098 | "ofType": { 1099 | "kind": "OBJECT", 1100 | "name": "AttackBonuses", 1101 | "ofType": null 1102 | } 1103 | }, 1104 | "isDeprecated": false, 1105 | "deprecationReason": null 1106 | }, 1107 | { 1108 | "name": "defence", 1109 | "description": null, 1110 | "args": [], 1111 | "type": { 1112 | "kind": "NON_NULL", 1113 | "name": null, 1114 | "ofType": { 1115 | "kind": "OBJECT", 1116 | "name": "DefenceBonuses", 1117 | "ofType": null 1118 | } 1119 | }, 1120 | "isDeprecated": false, 1121 | "deprecationReason": null 1122 | }, 1123 | { 1124 | "name": "strength", 1125 | "description": null, 1126 | "args": [], 1127 | "type": { 1128 | "kind": "NON_NULL", 1129 | "name": null, 1130 | "ofType": { 1131 | "kind": "OBJECT", 1132 | "name": "StrengthBonuses", 1133 | "ofType": null 1134 | } 1135 | }, 1136 | "isDeprecated": false, 1137 | "deprecationReason": null 1138 | }, 1139 | { 1140 | "name": "prayer", 1141 | "description": null, 1142 | "args": [], 1143 | "type": { 1144 | "kind": "NON_NULL", 1145 | "name": null, 1146 | "ofType": { 1147 | "kind": "SCALAR", 1148 | "name": "Int", 1149 | "ofType": null 1150 | } 1151 | }, 1152 | "isDeprecated": false, 1153 | "deprecationReason": null 1154 | } 1155 | ], 1156 | "inputFields": null, 1157 | "interfaces": [], 1158 | "enumValues": null, 1159 | "possibleTypes": null 1160 | }, 1161 | { 1162 | "kind": "OBJECT", 1163 | "name": "AttackBonuses", 1164 | "description": null, 1165 | "fields": [ 1166 | { 1167 | "name": "stab", 1168 | "description": null, 1169 | "args": [], 1170 | "type": { 1171 | "kind": "NON_NULL", 1172 | "name": null, 1173 | "ofType": { 1174 | "kind": "SCALAR", 1175 | "name": "Int", 1176 | "ofType": null 1177 | } 1178 | }, 1179 | "isDeprecated": false, 1180 | "deprecationReason": null 1181 | }, 1182 | { 1183 | "name": "slash", 1184 | "description": null, 1185 | "args": [], 1186 | "type": { 1187 | "kind": "NON_NULL", 1188 | "name": null, 1189 | "ofType": { 1190 | "kind": "SCALAR", 1191 | "name": "Int", 1192 | "ofType": null 1193 | } 1194 | }, 1195 | "isDeprecated": false, 1196 | "deprecationReason": null 1197 | }, 1198 | { 1199 | "name": "crush", 1200 | "description": null, 1201 | "args": [], 1202 | "type": { 1203 | "kind": "NON_NULL", 1204 | "name": null, 1205 | "ofType": { 1206 | "kind": "SCALAR", 1207 | "name": "Int", 1208 | "ofType": null 1209 | } 1210 | }, 1211 | "isDeprecated": false, 1212 | "deprecationReason": null 1213 | }, 1214 | { 1215 | "name": "ranged", 1216 | "description": null, 1217 | "args": [], 1218 | "type": { 1219 | "kind": "NON_NULL", 1220 | "name": null, 1221 | "ofType": { 1222 | "kind": "SCALAR", 1223 | "name": "Int", 1224 | "ofType": null 1225 | } 1226 | }, 1227 | "isDeprecated": false, 1228 | "deprecationReason": null 1229 | }, 1230 | { 1231 | "name": "magic", 1232 | "description": null, 1233 | "args": [], 1234 | "type": { 1235 | "kind": "NON_NULL", 1236 | "name": null, 1237 | "ofType": { 1238 | "kind": "SCALAR", 1239 | "name": "Int", 1240 | "ofType": null 1241 | } 1242 | }, 1243 | "isDeprecated": false, 1244 | "deprecationReason": null 1245 | } 1246 | ], 1247 | "inputFields": null, 1248 | "interfaces": [], 1249 | "enumValues": null, 1250 | "possibleTypes": null 1251 | }, 1252 | { 1253 | "kind": "OBJECT", 1254 | "name": "DefenceBonuses", 1255 | "description": null, 1256 | "fields": [ 1257 | { 1258 | "name": "stab", 1259 | "description": null, 1260 | "args": [], 1261 | "type": { 1262 | "kind": "NON_NULL", 1263 | "name": null, 1264 | "ofType": { 1265 | "kind": "SCALAR", 1266 | "name": "Int", 1267 | "ofType": null 1268 | } 1269 | }, 1270 | "isDeprecated": false, 1271 | "deprecationReason": null 1272 | }, 1273 | { 1274 | "name": "slash", 1275 | "description": null, 1276 | "args": [], 1277 | "type": { 1278 | "kind": "NON_NULL", 1279 | "name": null, 1280 | "ofType": { 1281 | "kind": "SCALAR", 1282 | "name": "Int", 1283 | "ofType": null 1284 | } 1285 | }, 1286 | "isDeprecated": false, 1287 | "deprecationReason": null 1288 | }, 1289 | { 1290 | "name": "crush", 1291 | "description": null, 1292 | "args": [], 1293 | "type": { 1294 | "kind": "NON_NULL", 1295 | "name": null, 1296 | "ofType": { 1297 | "kind": "SCALAR", 1298 | "name": "Int", 1299 | "ofType": null 1300 | } 1301 | }, 1302 | "isDeprecated": false, 1303 | "deprecationReason": null 1304 | }, 1305 | { 1306 | "name": "ranged", 1307 | "description": null, 1308 | "args": [], 1309 | "type": { 1310 | "kind": "NON_NULL", 1311 | "name": null, 1312 | "ofType": { 1313 | "kind": "SCALAR", 1314 | "name": "Int", 1315 | "ofType": null 1316 | } 1317 | }, 1318 | "isDeprecated": false, 1319 | "deprecationReason": null 1320 | }, 1321 | { 1322 | "name": "magic", 1323 | "description": null, 1324 | "args": [], 1325 | "type": { 1326 | "kind": "NON_NULL", 1327 | "name": null, 1328 | "ofType": { 1329 | "kind": "SCALAR", 1330 | "name": "Int", 1331 | "ofType": null 1332 | } 1333 | }, 1334 | "isDeprecated": false, 1335 | "deprecationReason": null 1336 | } 1337 | ], 1338 | "inputFields": null, 1339 | "interfaces": [], 1340 | "enumValues": null, 1341 | "possibleTypes": null 1342 | }, 1343 | { 1344 | "kind": "OBJECT", 1345 | "name": "StrengthBonuses", 1346 | "description": null, 1347 | "fields": [ 1348 | { 1349 | "name": "melee", 1350 | "description": "Melee strength bonus", 1351 | "args": [], 1352 | "type": { 1353 | "kind": "NON_NULL", 1354 | "name": null, 1355 | "ofType": { 1356 | "kind": "SCALAR", 1357 | "name": "Int", 1358 | "ofType": null 1359 | } 1360 | }, 1361 | "isDeprecated": false, 1362 | "deprecationReason": null 1363 | }, 1364 | { 1365 | "name": "ranged", 1366 | "description": "Ranged strength bonus", 1367 | "args": [], 1368 | "type": { 1369 | "kind": "NON_NULL", 1370 | "name": null, 1371 | "ofType": { 1372 | "kind": "SCALAR", 1373 | "name": "Int", 1374 | "ofType": null 1375 | } 1376 | }, 1377 | "isDeprecated": false, 1378 | "deprecationReason": null 1379 | }, 1380 | { 1381 | "name": "magic", 1382 | "description": "Magic damage bonus in the integer form of a percentage.\nFor example, a value of 15 means 15% increased magic damage", 1383 | "args": [], 1384 | "type": { 1385 | "kind": "NON_NULL", 1386 | "name": null, 1387 | "ofType": { 1388 | "kind": "SCALAR", 1389 | "name": "Int", 1390 | "ofType": null 1391 | } 1392 | }, 1393 | "isDeprecated": false, 1394 | "deprecationReason": null 1395 | } 1396 | ], 1397 | "inputFields": null, 1398 | "interfaces": [], 1399 | "enumValues": null, 1400 | "possibleTypes": null 1401 | }, 1402 | { 1403 | "kind": "OBJECT", 1404 | "name": "WeaponAttributes", 1405 | "description": null, 1406 | "fields": [ 1407 | { 1408 | "name": "speed", 1409 | "description": "Number of game ticks per attack", 1410 | "args": [], 1411 | "type": { 1412 | "kind": "NON_NULL", 1413 | "name": null, 1414 | "ofType": { 1415 | "kind": "SCALAR", 1416 | "name": "Int", 1417 | "ofType": null 1418 | } 1419 | }, 1420 | "isDeprecated": false, 1421 | "deprecationReason": null 1422 | }, 1423 | { 1424 | "name": "category", 1425 | "description": null, 1426 | "args": [], 1427 | "type": { 1428 | "kind": "NON_NULL", 1429 | "name": null, 1430 | "ofType": { 1431 | "kind": "OBJECT", 1432 | "name": "WeaponCategory", 1433 | "ofType": null 1434 | } 1435 | }, 1436 | "isDeprecated": false, 1437 | "deprecationReason": null 1438 | } 1439 | ], 1440 | "inputFields": null, 1441 | "interfaces": [], 1442 | "enumValues": null, 1443 | "possibleTypes": null 1444 | }, 1445 | { 1446 | "kind": "OBJECT", 1447 | "name": "WeaponCategory", 1448 | "description": "Each category of weapons has its own set of combat stances", 1449 | "fields": [ 1450 | { 1451 | "name": "name", 1452 | "description": "Ex: Whips", 1453 | "args": [], 1454 | "type": { 1455 | "kind": "NON_NULL", 1456 | "name": null, 1457 | "ofType": { 1458 | "kind": "SCALAR", 1459 | "name": "String", 1460 | "ofType": null 1461 | } 1462 | }, 1463 | "isDeprecated": false, 1464 | "deprecationReason": null 1465 | }, 1466 | { 1467 | "name": "stances", 1468 | "description": null, 1469 | "args": [], 1470 | "type": { 1471 | "kind": "NON_NULL", 1472 | "name": null, 1473 | "ofType": { 1474 | "kind": "LIST", 1475 | "name": null, 1476 | "ofType": { 1477 | "kind": "NON_NULL", 1478 | "name": null, 1479 | "ofType": { 1480 | "kind": "OBJECT", 1481 | "name": "Stance", 1482 | "ofType": null 1483 | } 1484 | } 1485 | } 1486 | }, 1487 | "isDeprecated": false, 1488 | "deprecationReason": null 1489 | } 1490 | ], 1491 | "inputFields": null, 1492 | "interfaces": [], 1493 | "enumValues": null, 1494 | "possibleTypes": null 1495 | }, 1496 | { 1497 | "kind": "OBJECT", 1498 | "name": "Stance", 1499 | "description": "Combat stance", 1500 | "fields": [ 1501 | { 1502 | "name": "name", 1503 | "description": "Name displayed on the combat stance. Ex: Flick", 1504 | "args": [], 1505 | "type": { 1506 | "kind": "NON_NULL", 1507 | "name": null, 1508 | "ofType": { 1509 | "kind": "SCALAR", 1510 | "name": "String", 1511 | "ofType": null 1512 | } 1513 | }, 1514 | "isDeprecated": false, 1515 | "deprecationReason": null 1516 | }, 1517 | { 1518 | "name": "type", 1519 | "description": "Ex: Slash", 1520 | "args": [], 1521 | "type": { 1522 | "kind": "ENUM", 1523 | "name": "AttackType", 1524 | "ofType": null 1525 | }, 1526 | "isDeprecated": false, 1527 | "deprecationReason": null 1528 | }, 1529 | { 1530 | "name": "style", 1531 | "description": "Style indicates for what skill exp is granted, as well as other bonuses.\nEx: Accuracte", 1532 | "args": [], 1533 | "type": { 1534 | "kind": "SCALAR", 1535 | "name": "String", 1536 | "ofType": null 1537 | }, 1538 | "isDeprecated": false, 1539 | "deprecationReason": null 1540 | } 1541 | ], 1542 | "inputFields": null, 1543 | "interfaces": [], 1544 | "enumValues": null, 1545 | "possibleTypes": null 1546 | }, 1547 | { 1548 | "kind": "ENUM", 1549 | "name": "AttackType", 1550 | "description": "Indicates which Attack Bonus and Defence Bonus will be used for the combat calculation", 1551 | "fields": null, 1552 | "inputFields": null, 1553 | "interfaces": null, 1554 | "enumValues": [ 1555 | { 1556 | "name": "stab", 1557 | "description": null, 1558 | "isDeprecated": false, 1559 | "deprecationReason": null 1560 | }, 1561 | { 1562 | "name": "slash", 1563 | "description": null, 1564 | "isDeprecated": false, 1565 | "deprecationReason": null 1566 | }, 1567 | { 1568 | "name": "crush", 1569 | "description": null, 1570 | "isDeprecated": false, 1571 | "deprecationReason": null 1572 | }, 1573 | { 1574 | "name": "ranged", 1575 | "description": null, 1576 | "isDeprecated": false, 1577 | "deprecationReason": null 1578 | }, 1579 | { 1580 | "name": "magic", 1581 | "description": null, 1582 | "isDeprecated": false, 1583 | "deprecationReason": null 1584 | }, 1585 | { 1586 | "name": "melee", 1587 | "description": "Unclassified melee attack type", 1588 | "isDeprecated": false, 1589 | "deprecationReason": null 1590 | } 1591 | ], 1592 | "possibleTypes": null 1593 | }, 1594 | { 1595 | "kind": "ENUM", 1596 | "name": "MonsterAttribute", 1597 | "description": null, 1598 | "fields": null, 1599 | "inputFields": null, 1600 | "interfaces": null, 1601 | "enumValues": [ 1602 | { 1603 | "name": "demon", 1604 | "description": null, 1605 | "isDeprecated": false, 1606 | "deprecationReason": null 1607 | }, 1608 | { 1609 | "name": "dragon", 1610 | "description": null, 1611 | "isDeprecated": false, 1612 | "deprecationReason": null 1613 | }, 1614 | { 1615 | "name": "fiery", 1616 | "description": null, 1617 | "isDeprecated": false, 1618 | "deprecationReason": null 1619 | }, 1620 | { 1621 | "name": "kalphite", 1622 | "description": null, 1623 | "isDeprecated": false, 1624 | "deprecationReason": null 1625 | }, 1626 | { 1627 | "name": "leafy", 1628 | "description": null, 1629 | "isDeprecated": false, 1630 | "deprecationReason": null 1631 | }, 1632 | { 1633 | "name": "penance", 1634 | "description": null, 1635 | "isDeprecated": false, 1636 | "deprecationReason": null 1637 | }, 1638 | { 1639 | "name": "shade", 1640 | "description": null, 1641 | "isDeprecated": false, 1642 | "deprecationReason": null 1643 | }, 1644 | { 1645 | "name": "undead", 1646 | "description": null, 1647 | "isDeprecated": false, 1648 | "deprecationReason": null 1649 | }, 1650 | { 1651 | "name": "vampyre", 1652 | "description": null, 1653 | "isDeprecated": false, 1654 | "deprecationReason": null 1655 | }, 1656 | { 1657 | "name": "xerician", 1658 | "description": null, 1659 | "isDeprecated": false, 1660 | "deprecationReason": null 1661 | } 1662 | ], 1663 | "possibleTypes": null 1664 | }, 1665 | { 1666 | "kind": "ENUM", 1667 | "name": "SlayerCategory", 1668 | "description": null, 1669 | "fields": null, 1670 | "inputFields": null, 1671 | "interfaces": null, 1672 | "enumValues": [ 1673 | { 1674 | "name": "aberrant_spectre", 1675 | "description": null, 1676 | "isDeprecated": false, 1677 | "deprecationReason": null 1678 | }, 1679 | { 1680 | "name": "abyssal_demon", 1681 | "description": null, 1682 | "isDeprecated": false, 1683 | "deprecationReason": null 1684 | }, 1685 | { 1686 | "name": "adamant_dragon", 1687 | "description": null, 1688 | "isDeprecated": false, 1689 | "deprecationReason": null 1690 | }, 1691 | { 1692 | "name": "ankou", 1693 | "description": null, 1694 | "isDeprecated": false, 1695 | "deprecationReason": null 1696 | }, 1697 | { 1698 | "name": "aviansie", 1699 | "description": null, 1700 | "isDeprecated": false, 1701 | "deprecationReason": null 1702 | }, 1703 | { 1704 | "name": "bandit", 1705 | "description": null, 1706 | "isDeprecated": false, 1707 | "deprecationReason": null 1708 | }, 1709 | { 1710 | "name": "banshee", 1711 | "description": null, 1712 | "isDeprecated": false, 1713 | "deprecationReason": null 1714 | }, 1715 | { 1716 | "name": "basilisk", 1717 | "description": null, 1718 | "isDeprecated": false, 1719 | "deprecationReason": null 1720 | }, 1721 | { 1722 | "name": "bat", 1723 | "description": null, 1724 | "isDeprecated": false, 1725 | "deprecationReason": null 1726 | }, 1727 | { 1728 | "name": "bear", 1729 | "description": null, 1730 | "isDeprecated": false, 1731 | "deprecationReason": null 1732 | }, 1733 | { 1734 | "name": "bird", 1735 | "description": null, 1736 | "isDeprecated": false, 1737 | "deprecationReason": null 1738 | }, 1739 | { 1740 | "name": "black_demon", 1741 | "description": null, 1742 | "isDeprecated": false, 1743 | "deprecationReason": null 1744 | }, 1745 | { 1746 | "name": "black_dragon", 1747 | "description": null, 1748 | "isDeprecated": false, 1749 | "deprecationReason": null 1750 | }, 1751 | { 1752 | "name": "black_knight", 1753 | "description": null, 1754 | "isDeprecated": false, 1755 | "deprecationReason": null 1756 | }, 1757 | { 1758 | "name": "bloodveld", 1759 | "description": null, 1760 | "isDeprecated": false, 1761 | "deprecationReason": null 1762 | }, 1763 | { 1764 | "name": "blue_dragon", 1765 | "description": null, 1766 | "isDeprecated": false, 1767 | "deprecationReason": null 1768 | }, 1769 | { 1770 | "name": "boss", 1771 | "description": null, 1772 | "isDeprecated": false, 1773 | "deprecationReason": null 1774 | }, 1775 | { 1776 | "name": "brine_rat", 1777 | "description": null, 1778 | "isDeprecated": false, 1779 | "deprecationReason": null 1780 | }, 1781 | { 1782 | "name": "bronze_dragon", 1783 | "description": null, 1784 | "isDeprecated": false, 1785 | "deprecationReason": null 1786 | }, 1787 | { 1788 | "name": "catablepon", 1789 | "description": null, 1790 | "isDeprecated": false, 1791 | "deprecationReason": null 1792 | }, 1793 | { 1794 | "name": "cave_bug", 1795 | "description": null, 1796 | "isDeprecated": false, 1797 | "deprecationReason": null 1798 | }, 1799 | { 1800 | "name": "cave_crawler", 1801 | "description": null, 1802 | "isDeprecated": false, 1803 | "deprecationReason": null 1804 | }, 1805 | { 1806 | "name": "cave_horror", 1807 | "description": null, 1808 | "isDeprecated": false, 1809 | "deprecationReason": null 1810 | }, 1811 | { 1812 | "name": "cave_kraken", 1813 | "description": null, 1814 | "isDeprecated": false, 1815 | "deprecationReason": null 1816 | }, 1817 | { 1818 | "name": "cave_slime", 1819 | "description": null, 1820 | "isDeprecated": false, 1821 | "deprecationReason": null 1822 | }, 1823 | { 1824 | "name": "chaos_druid", 1825 | "description": null, 1826 | "isDeprecated": false, 1827 | "deprecationReason": null 1828 | }, 1829 | { 1830 | "name": "cockatrice", 1831 | "description": null, 1832 | "isDeprecated": false, 1833 | "deprecationReason": null 1834 | }, 1835 | { 1836 | "name": "cow", 1837 | "description": null, 1838 | "isDeprecated": false, 1839 | "deprecationReason": null 1840 | }, 1841 | { 1842 | "name": "crawling_hand", 1843 | "description": null, 1844 | "isDeprecated": false, 1845 | "deprecationReason": null 1846 | }, 1847 | { 1848 | "name": "crocodile", 1849 | "description": null, 1850 | "isDeprecated": false, 1851 | "deprecationReason": null 1852 | }, 1853 | { 1854 | "name": "dagannoth", 1855 | "description": null, 1856 | "isDeprecated": false, 1857 | "deprecationReason": null 1858 | }, 1859 | { 1860 | "name": "dark_beast", 1861 | "description": null, 1862 | "isDeprecated": false, 1863 | "deprecationReason": null 1864 | }, 1865 | { 1866 | "name": "dark_warrior", 1867 | "description": null, 1868 | "isDeprecated": false, 1869 | "deprecationReason": null 1870 | }, 1871 | { 1872 | "name": "dog", 1873 | "description": null, 1874 | "isDeprecated": false, 1875 | "deprecationReason": null 1876 | }, 1877 | { 1878 | "name": "drake", 1879 | "description": null, 1880 | "isDeprecated": false, 1881 | "deprecationReason": null 1882 | }, 1883 | { 1884 | "name": "dust_devil", 1885 | "description": null, 1886 | "isDeprecated": false, 1887 | "deprecationReason": null 1888 | }, 1889 | { 1890 | "name": "dwarf", 1891 | "description": null, 1892 | "isDeprecated": false, 1893 | "deprecationReason": null 1894 | }, 1895 | { 1896 | "name": "earth_warrior", 1897 | "description": null, 1898 | "isDeprecated": false, 1899 | "deprecationReason": null 1900 | }, 1901 | { 1902 | "name": "elemental", 1903 | "description": null, 1904 | "isDeprecated": false, 1905 | "deprecationReason": null 1906 | }, 1907 | { 1908 | "name": "elves", 1909 | "description": null, 1910 | "isDeprecated": false, 1911 | "deprecationReason": null 1912 | }, 1913 | { 1914 | "name": "fever_spider", 1915 | "description": null, 1916 | "isDeprecated": false, 1917 | "deprecationReason": null 1918 | }, 1919 | { 1920 | "name": "fire_giant", 1921 | "description": null, 1922 | "isDeprecated": false, 1923 | "deprecationReason": null 1924 | }, 1925 | { 1926 | "name": "flesh_crawler", 1927 | "description": null, 1928 | "isDeprecated": false, 1929 | "deprecationReason": null 1930 | }, 1931 | { 1932 | "name": "fossil_island_wyvern", 1933 | "description": null, 1934 | "isDeprecated": false, 1935 | "deprecationReason": null 1936 | }, 1937 | { 1938 | "name": "gargoyle", 1939 | "description": null, 1940 | "isDeprecated": false, 1941 | "deprecationReason": null 1942 | }, 1943 | { 1944 | "name": "ghost", 1945 | "description": null, 1946 | "isDeprecated": false, 1947 | "deprecationReason": null 1948 | }, 1949 | { 1950 | "name": "ghoul", 1951 | "description": null, 1952 | "isDeprecated": false, 1953 | "deprecationReason": null 1954 | }, 1955 | { 1956 | "name": "goblin", 1957 | "description": null, 1958 | "isDeprecated": false, 1959 | "deprecationReason": null 1960 | }, 1961 | { 1962 | "name": "greater_demon", 1963 | "description": null, 1964 | "isDeprecated": false, 1965 | "deprecationReason": null 1966 | }, 1967 | { 1968 | "name": "green_dragon", 1969 | "description": null, 1970 | "isDeprecated": false, 1971 | "deprecationReason": null 1972 | }, 1973 | { 1974 | "name": "harpie_bug_swarm", 1975 | "description": null, 1976 | "isDeprecated": false, 1977 | "deprecationReason": null 1978 | }, 1979 | { 1980 | "name": "hellhound", 1981 | "description": null, 1982 | "isDeprecated": false, 1983 | "deprecationReason": null 1984 | }, 1985 | { 1986 | "name": "hill_giant", 1987 | "description": null, 1988 | "isDeprecated": false, 1989 | "deprecationReason": null 1990 | }, 1991 | { 1992 | "name": "hobgoblin", 1993 | "description": null, 1994 | "isDeprecated": false, 1995 | "deprecationReason": null 1996 | }, 1997 | { 1998 | "name": "hydras", 1999 | "description": null, 2000 | "isDeprecated": false, 2001 | "deprecationReason": null 2002 | }, 2003 | { 2004 | "name": "ice_giant", 2005 | "description": null, 2006 | "isDeprecated": false, 2007 | "deprecationReason": null 2008 | }, 2009 | { 2010 | "name": "ice_warrior", 2011 | "description": null, 2012 | "isDeprecated": false, 2013 | "deprecationReason": null 2014 | }, 2015 | { 2016 | "name": "icefiend", 2017 | "description": null, 2018 | "isDeprecated": false, 2019 | "deprecationReason": null 2020 | }, 2021 | { 2022 | "name": "infernal_mage", 2023 | "description": null, 2024 | "isDeprecated": false, 2025 | "deprecationReason": null 2026 | }, 2027 | { 2028 | "name": "iron_dragon", 2029 | "description": null, 2030 | "isDeprecated": false, 2031 | "deprecationReason": null 2032 | }, 2033 | { 2034 | "name": "jelly", 2035 | "description": null, 2036 | "isDeprecated": false, 2037 | "deprecationReason": null 2038 | }, 2039 | { 2040 | "name": "jungle_horror", 2041 | "description": null, 2042 | "isDeprecated": false, 2043 | "deprecationReason": null 2044 | }, 2045 | { 2046 | "name": "kalphite", 2047 | "description": null, 2048 | "isDeprecated": false, 2049 | "deprecationReason": null 2050 | }, 2051 | { 2052 | "name": "killerwatt", 2053 | "description": null, 2054 | "isDeprecated": false, 2055 | "deprecationReason": null 2056 | }, 2057 | { 2058 | "name": "kurask", 2059 | "description": null, 2060 | "isDeprecated": false, 2061 | "deprecationReason": null 2062 | }, 2063 | { 2064 | "name": "lava_dragon", 2065 | "description": null, 2066 | "isDeprecated": false, 2067 | "deprecationReason": null 2068 | }, 2069 | { 2070 | "name": "lesser_demon", 2071 | "description": null, 2072 | "isDeprecated": false, 2073 | "deprecationReason": null 2074 | }, 2075 | { 2076 | "name": "lizardmen", 2077 | "description": null, 2078 | "isDeprecated": false, 2079 | "deprecationReason": null 2080 | }, 2081 | { 2082 | "name": "lizard", 2083 | "description": null, 2084 | "isDeprecated": false, 2085 | "deprecationReason": null 2086 | }, 2087 | { 2088 | "name": "magic_axe", 2089 | "description": null, 2090 | "isDeprecated": false, 2091 | "deprecationReason": null 2092 | }, 2093 | { 2094 | "name": "mammoth", 2095 | "description": null, 2096 | "isDeprecated": false, 2097 | "deprecationReason": null 2098 | }, 2099 | { 2100 | "name": "minotaur", 2101 | "description": null, 2102 | "isDeprecated": false, 2103 | "deprecationReason": null 2104 | }, 2105 | { 2106 | "name": "mithril_dragon", 2107 | "description": null, 2108 | "isDeprecated": false, 2109 | "deprecationReason": null 2110 | }, 2111 | { 2112 | "name": "mogre", 2113 | "description": null, 2114 | "isDeprecated": false, 2115 | "deprecationReason": null 2116 | }, 2117 | { 2118 | "name": "molanisk", 2119 | "description": null, 2120 | "isDeprecated": false, 2121 | "deprecationReason": null 2122 | }, 2123 | { 2124 | "name": "monkey", 2125 | "description": null, 2126 | "isDeprecated": false, 2127 | "deprecationReason": null 2128 | }, 2129 | { 2130 | "name": "moss_giant", 2131 | "description": null, 2132 | "isDeprecated": false, 2133 | "deprecationReason": null 2134 | }, 2135 | { 2136 | "name": "mutated_zygomite", 2137 | "description": null, 2138 | "isDeprecated": false, 2139 | "deprecationReason": null 2140 | }, 2141 | { 2142 | "name": "nechryael", 2143 | "description": null, 2144 | "isDeprecated": false, 2145 | "deprecationReason": null 2146 | }, 2147 | { 2148 | "name": "ogre", 2149 | "description": null, 2150 | "isDeprecated": false, 2151 | "deprecationReason": null 2152 | }, 2153 | { 2154 | "name": "otherworldly_being", 2155 | "description": null, 2156 | "isDeprecated": false, 2157 | "deprecationReason": null 2158 | }, 2159 | { 2160 | "name": "pirate", 2161 | "description": null, 2162 | "isDeprecated": false, 2163 | "deprecationReason": null 2164 | }, 2165 | { 2166 | "name": "pyrefiend", 2167 | "description": null, 2168 | "isDeprecated": false, 2169 | "deprecationReason": null 2170 | }, 2171 | { 2172 | "name": "rat", 2173 | "description": null, 2174 | "isDeprecated": false, 2175 | "deprecationReason": null 2176 | }, 2177 | { 2178 | "name": "red_dragon", 2179 | "description": null, 2180 | "isDeprecated": false, 2181 | "deprecationReason": null 2182 | }, 2183 | { 2184 | "name": "revenant", 2185 | "description": null, 2186 | "isDeprecated": false, 2187 | "deprecationReason": null 2188 | }, 2189 | { 2190 | "name": "rockslug", 2191 | "description": null, 2192 | "isDeprecated": false, 2193 | "deprecationReason": null 2194 | }, 2195 | { 2196 | "name": "rogue", 2197 | "description": null, 2198 | "isDeprecated": false, 2199 | "deprecationReason": null 2200 | }, 2201 | { 2202 | "name": "rune_dragon", 2203 | "description": null, 2204 | "isDeprecated": false, 2205 | "deprecationReason": null 2206 | }, 2207 | { 2208 | "name": "sand_crab", 2209 | "description": null, 2210 | "isDeprecated": false, 2211 | "deprecationReason": null 2212 | }, 2213 | { 2214 | "name": "scabarite", 2215 | "description": null, 2216 | "isDeprecated": false, 2217 | "deprecationReason": null 2218 | }, 2219 | { 2220 | "name": "scorpion", 2221 | "description": null, 2222 | "isDeprecated": false, 2223 | "deprecationReason": null 2224 | }, 2225 | { 2226 | "name": "sea_snake", 2227 | "description": null, 2228 | "isDeprecated": false, 2229 | "deprecationReason": null 2230 | }, 2231 | { 2232 | "name": "shade", 2233 | "description": null, 2234 | "isDeprecated": false, 2235 | "deprecationReason": null 2236 | }, 2237 | { 2238 | "name": "shadow_warrior", 2239 | "description": null, 2240 | "isDeprecated": false, 2241 | "deprecationReason": null 2242 | }, 2243 | { 2244 | "name": "skeletal_wyvern", 2245 | "description": null, 2246 | "isDeprecated": false, 2247 | "deprecationReason": null 2248 | }, 2249 | { 2250 | "name": "skeleton", 2251 | "description": null, 2252 | "isDeprecated": false, 2253 | "deprecationReason": null 2254 | }, 2255 | { 2256 | "name": "smoke_devil", 2257 | "description": null, 2258 | "isDeprecated": false, 2259 | "deprecationReason": null 2260 | }, 2261 | { 2262 | "name": "sourhog", 2263 | "description": null, 2264 | "isDeprecated": false, 2265 | "deprecationReason": null 2266 | }, 2267 | { 2268 | "name": "spider", 2269 | "description": null, 2270 | "isDeprecated": false, 2271 | "deprecationReason": null 2272 | }, 2273 | { 2274 | "name": "spiritual_creature", 2275 | "description": null, 2276 | "isDeprecated": false, 2277 | "deprecationReason": null 2278 | }, 2279 | { 2280 | "name": "steel_dragon", 2281 | "description": null, 2282 | "isDeprecated": false, 2283 | "deprecationReason": null 2284 | }, 2285 | { 2286 | "name": "suqah", 2287 | "description": null, 2288 | "isDeprecated": false, 2289 | "deprecationReason": null 2290 | }, 2291 | { 2292 | "name": "terror_dog", 2293 | "description": null, 2294 | "isDeprecated": false, 2295 | "deprecationReason": null 2296 | }, 2297 | { 2298 | "name": "troll", 2299 | "description": null, 2300 | "isDeprecated": false, 2301 | "deprecationReason": null 2302 | }, 2303 | { 2304 | "name": "turoth", 2305 | "description": null, 2306 | "isDeprecated": false, 2307 | "deprecationReason": null 2308 | }, 2309 | { 2310 | "name": "tzhaar", 2311 | "description": null, 2312 | "isDeprecated": false, 2313 | "deprecationReason": null 2314 | }, 2315 | { 2316 | "name": "vampyre", 2317 | "description": null, 2318 | "isDeprecated": false, 2319 | "deprecationReason": null 2320 | }, 2321 | { 2322 | "name": "wall_beast", 2323 | "description": null, 2324 | "isDeprecated": false, 2325 | "deprecationReason": null 2326 | }, 2327 | { 2328 | "name": "waterfiend", 2329 | "description": null, 2330 | "isDeprecated": false, 2331 | "deprecationReason": null 2332 | }, 2333 | { 2334 | "name": "werewolf", 2335 | "description": null, 2336 | "isDeprecated": false, 2337 | "deprecationReason": null 2338 | }, 2339 | { 2340 | "name": "wolf", 2341 | "description": null, 2342 | "isDeprecated": false, 2343 | "deprecationReason": null 2344 | }, 2345 | { 2346 | "name": "wyrm", 2347 | "description": null, 2348 | "isDeprecated": false, 2349 | "deprecationReason": null 2350 | }, 2351 | { 2352 | "name": "zombie", 2353 | "description": null, 2354 | "isDeprecated": false, 2355 | "deprecationReason": null 2356 | } 2357 | ], 2358 | "possibleTypes": null 2359 | }, 2360 | { 2361 | "kind": "OBJECT", 2362 | "name": "Monster", 2363 | "description": null, 2364 | "fields": [ 2365 | { 2366 | "name": "id", 2367 | "description": "Unique identifier", 2368 | "args": [], 2369 | "type": { 2370 | "kind": "NON_NULL", 2371 | "name": null, 2372 | "ofType": { 2373 | "kind": "SCALAR", 2374 | "name": "Int", 2375 | "ofType": null 2376 | } 2377 | }, 2378 | "isDeprecated": false, 2379 | "deprecationReason": null 2380 | }, 2381 | { 2382 | "name": "name", 2383 | "description": "Name displayed in game", 2384 | "args": [], 2385 | "type": { 2386 | "kind": "NON_NULL", 2387 | "name": null, 2388 | "ofType": { 2389 | "kind": "SCALAR", 2390 | "name": "String", 2391 | "ofType": null 2392 | } 2393 | }, 2394 | "isDeprecated": false, 2395 | "deprecationReason": null 2396 | }, 2397 | { 2398 | "name": "qualified_name", 2399 | "description": "Some monsters have duplicate names, the qualified name serves to differentiate these monsters.\nGuaranteed to be unique", 2400 | "args": [], 2401 | "type": { 2402 | "kind": "NON_NULL", 2403 | "name": null, 2404 | "ofType": { 2405 | "kind": "SCALAR", 2406 | "name": "String", 2407 | "ofType": null 2408 | } 2409 | }, 2410 | "isDeprecated": false, 2411 | "deprecationReason": null 2412 | }, 2413 | { 2414 | "name": "release_date", 2415 | "description": "YYYY-MM-DD", 2416 | "args": [], 2417 | "type": { 2418 | "kind": "NON_NULL", 2419 | "name": null, 2420 | "ofType": { 2421 | "kind": "SCALAR", 2422 | "name": "String", 2423 | "ofType": null 2424 | } 2425 | }, 2426 | "isDeprecated": false, 2427 | "deprecationReason": null 2428 | }, 2429 | { 2430 | "name": "size", 2431 | "description": "Number of game tiles the monster occupies", 2432 | "args": [], 2433 | "type": { 2434 | "kind": "NON_NULL", 2435 | "name": null, 2436 | "ofType": { 2437 | "kind": "SCALAR", 2438 | "name": "Int", 2439 | "ofType": null 2440 | } 2441 | }, 2442 | "isDeprecated": false, 2443 | "deprecationReason": null 2444 | }, 2445 | { 2446 | "name": "examine", 2447 | "description": null, 2448 | "args": [], 2449 | "type": { 2450 | "kind": "NON_NULL", 2451 | "name": null, 2452 | "ofType": { 2453 | "kind": "SCALAR", 2454 | "name": "String", 2455 | "ofType": null 2456 | } 2457 | }, 2458 | "isDeprecated": false, 2459 | "deprecationReason": null 2460 | }, 2461 | { 2462 | "name": "wiki_url", 2463 | "description": "URL to the wiki article for this item", 2464 | "args": [], 2465 | "type": { 2466 | "kind": "NON_NULL", 2467 | "name": null, 2468 | "ofType": { 2469 | "kind": "SCALAR", 2470 | "name": "String", 2471 | "ofType": null 2472 | } 2473 | }, 2474 | "isDeprecated": false, 2475 | "deprecationReason": null 2476 | }, 2477 | { 2478 | "name": "attributes", 2479 | "description": "Ex: undead", 2480 | "args": [], 2481 | "type": { 2482 | "kind": "NON_NULL", 2483 | "name": null, 2484 | "ofType": { 2485 | "kind": "LIST", 2486 | "name": null, 2487 | "ofType": { 2488 | "kind": "NON_NULL", 2489 | "name": null, 2490 | "ofType": { 2491 | "kind": "ENUM", 2492 | "name": "MonsterAttribute", 2493 | "ofType": null 2494 | } 2495 | } 2496 | } 2497 | }, 2498 | "isDeprecated": false, 2499 | "deprecationReason": null 2500 | }, 2501 | { 2502 | "name": "aggressive", 2503 | "description": null, 2504 | "args": [], 2505 | "type": { 2506 | "kind": "NON_NULL", 2507 | "name": null, 2508 | "ofType": { 2509 | "kind": "SCALAR", 2510 | "name": "Boolean", 2511 | "ofType": null 2512 | } 2513 | }, 2514 | "isDeprecated": false, 2515 | "deprecationReason": null 2516 | }, 2517 | { 2518 | "name": "poisonous", 2519 | "description": null, 2520 | "args": [], 2521 | "type": { 2522 | "kind": "NON_NULL", 2523 | "name": null, 2524 | "ofType": { 2525 | "kind": "SCALAR", 2526 | "name": "Boolean", 2527 | "ofType": null 2528 | } 2529 | }, 2530 | "isDeprecated": false, 2531 | "deprecationReason": null 2532 | }, 2533 | { 2534 | "name": "immune_poison", 2535 | "description": "Immune to poison", 2536 | "args": [], 2537 | "type": { 2538 | "kind": "NON_NULL", 2539 | "name": null, 2540 | "ofType": { 2541 | "kind": "SCALAR", 2542 | "name": "Boolean", 2543 | "ofType": null 2544 | } 2545 | }, 2546 | "isDeprecated": false, 2547 | "deprecationReason": null 2548 | }, 2549 | { 2550 | "name": "immune_venom", 2551 | "description": "Immune to venom", 2552 | "args": [], 2553 | "type": { 2554 | "kind": "NON_NULL", 2555 | "name": null, 2556 | "ofType": { 2557 | "kind": "SCALAR", 2558 | "name": "Boolean", 2559 | "ofType": null 2560 | } 2561 | }, 2562 | "isDeprecated": false, 2563 | "deprecationReason": null 2564 | }, 2565 | { 2566 | "name": "slayer", 2567 | "description": "If this object is null the monster cannot be assigned as a slayer task", 2568 | "args": [], 2569 | "type": { 2570 | "kind": "OBJECT", 2571 | "name": "SlayerInfo", 2572 | "ofType": null 2573 | }, 2574 | "isDeprecated": false, 2575 | "deprecationReason": null 2576 | }, 2577 | { 2578 | "name": "max_hit", 2579 | "description": null, 2580 | "args": [], 2581 | "type": { 2582 | "kind": "NON_NULL", 2583 | "name": null, 2584 | "ofType": { 2585 | "kind": "SCALAR", 2586 | "name": "Int", 2587 | "ofType": null 2588 | } 2589 | }, 2590 | "isDeprecated": false, 2591 | "deprecationReason": null 2592 | }, 2593 | { 2594 | "name": "attack_types", 2595 | "description": null, 2596 | "args": [], 2597 | "type": { 2598 | "kind": "NON_NULL", 2599 | "name": null, 2600 | "ofType": { 2601 | "kind": "LIST", 2602 | "name": null, 2603 | "ofType": { 2604 | "kind": "NON_NULL", 2605 | "name": null, 2606 | "ofType": { 2607 | "kind": "ENUM", 2608 | "name": "AttackType", 2609 | "ofType": null 2610 | } 2611 | } 2612 | } 2613 | }, 2614 | "isDeprecated": false, 2615 | "deprecationReason": null 2616 | }, 2617 | { 2618 | "name": "attack_speed", 2619 | "description": "Number of game ticks per attack", 2620 | "args": [], 2621 | "type": { 2622 | "kind": "NON_NULL", 2623 | "name": null, 2624 | "ofType": { 2625 | "kind": "SCALAR", 2626 | "name": "Int", 2627 | "ofType": null 2628 | } 2629 | }, 2630 | "isDeprecated": false, 2631 | "deprecationReason": null 2632 | }, 2633 | { 2634 | "name": "levels", 2635 | "description": "Combat related skill levels", 2636 | "args": [], 2637 | "type": { 2638 | "kind": "NON_NULL", 2639 | "name": null, 2640 | "ofType": { 2641 | "kind": "OBJECT", 2642 | "name": "MonsterLevels", 2643 | "ofType": null 2644 | } 2645 | }, 2646 | "isDeprecated": false, 2647 | "deprecationReason": null 2648 | }, 2649 | { 2650 | "name": "bonuses", 2651 | "description": "Attack, Defence, and Strength bonuses", 2652 | "args": [], 2653 | "type": { 2654 | "kind": "NON_NULL", 2655 | "name": null, 2656 | "ofType": { 2657 | "kind": "OBJECT", 2658 | "name": "MonsterBonuses", 2659 | "ofType": null 2660 | } 2661 | }, 2662 | "isDeprecated": false, 2663 | "deprecationReason": null 2664 | }, 2665 | { 2666 | "name": "drops", 2667 | "description": null, 2668 | "args": [], 2669 | "type": { 2670 | "kind": "NON_NULL", 2671 | "name": null, 2672 | "ofType": { 2673 | "kind": "LIST", 2674 | "name": null, 2675 | "ofType": { 2676 | "kind": "NON_NULL", 2677 | "name": null, 2678 | "ofType": { 2679 | "kind": "OBJECT", 2680 | "name": "ItemDrop", 2681 | "ofType": null 2682 | } 2683 | } 2684 | } 2685 | }, 2686 | "isDeprecated": false, 2687 | "deprecationReason": null 2688 | } 2689 | ], 2690 | "inputFields": null, 2691 | "interfaces": [], 2692 | "enumValues": null, 2693 | "possibleTypes": null 2694 | }, 2695 | { 2696 | "kind": "OBJECT", 2697 | "name": "SlayerInfo", 2698 | "description": null, 2699 | "fields": [ 2700 | { 2701 | "name": "masters", 2702 | "description": "Slayer masters that can assign this monster", 2703 | "args": [], 2704 | "type": { 2705 | "kind": "NON_NULL", 2706 | "name": null, 2707 | "ofType": { 2708 | "kind": "LIST", 2709 | "name": null, 2710 | "ofType": { 2711 | "kind": "NON_NULL", 2712 | "name": null, 2713 | "ofType": { 2714 | "kind": "ENUM", 2715 | "name": "SlayerMaster", 2716 | "ofType": null 2717 | } 2718 | } 2719 | } 2720 | }, 2721 | "isDeprecated": false, 2722 | "deprecationReason": null 2723 | }, 2724 | { 2725 | "name": "level", 2726 | "description": "Slayer level required", 2727 | "args": [], 2728 | "type": { 2729 | "kind": "NON_NULL", 2730 | "name": null, 2731 | "ofType": { 2732 | "kind": "SCALAR", 2733 | "name": "Int", 2734 | "ofType": null 2735 | } 2736 | }, 2737 | "isDeprecated": false, 2738 | "deprecationReason": null 2739 | }, 2740 | { 2741 | "name": "xp", 2742 | "description": "Slayer xp granted on kill", 2743 | "args": [], 2744 | "type": { 2745 | "kind": "NON_NULL", 2746 | "name": null, 2747 | "ofType": { 2748 | "kind": "SCALAR", 2749 | "name": "Float", 2750 | "ofType": null 2751 | } 2752 | }, 2753 | "isDeprecated": false, 2754 | "deprecationReason": null 2755 | }, 2756 | { 2757 | "name": "categories", 2758 | "description": "Slayer task categories this monster can be killed for", 2759 | "args": [], 2760 | "type": { 2761 | "kind": "NON_NULL", 2762 | "name": null, 2763 | "ofType": { 2764 | "kind": "LIST", 2765 | "name": null, 2766 | "ofType": { 2767 | "kind": "NON_NULL", 2768 | "name": null, 2769 | "ofType": { 2770 | "kind": "ENUM", 2771 | "name": "SlayerCategory", 2772 | "ofType": null 2773 | } 2774 | } 2775 | } 2776 | }, 2777 | "isDeprecated": false, 2778 | "deprecationReason": null 2779 | } 2780 | ], 2781 | "inputFields": null, 2782 | "interfaces": [], 2783 | "enumValues": null, 2784 | "possibleTypes": null 2785 | }, 2786 | { 2787 | "kind": "ENUM", 2788 | "name": "SlayerMaster", 2789 | "description": "Slayer masters", 2790 | "fields": null, 2791 | "inputFields": null, 2792 | "interfaces": null, 2793 | "enumValues": [ 2794 | { 2795 | "name": "turael", 2796 | "description": null, 2797 | "isDeprecated": false, 2798 | "deprecationReason": null 2799 | }, 2800 | { 2801 | "name": "spria", 2802 | "description": null, 2803 | "isDeprecated": false, 2804 | "deprecationReason": null 2805 | }, 2806 | { 2807 | "name": "krystilia", 2808 | "description": null, 2809 | "isDeprecated": false, 2810 | "deprecationReason": null 2811 | }, 2812 | { 2813 | "name": "mazchna", 2814 | "description": null, 2815 | "isDeprecated": false, 2816 | "deprecationReason": null 2817 | }, 2818 | { 2819 | "name": "vannaka", 2820 | "description": null, 2821 | "isDeprecated": false, 2822 | "deprecationReason": null 2823 | }, 2824 | { 2825 | "name": "chaeldar", 2826 | "description": null, 2827 | "isDeprecated": false, 2828 | "deprecationReason": null 2829 | }, 2830 | { 2831 | "name": "konar", 2832 | "description": null, 2833 | "isDeprecated": false, 2834 | "deprecationReason": null 2835 | }, 2836 | { 2837 | "name": "nieve", 2838 | "description": "Steve also counts as Nieve", 2839 | "isDeprecated": false, 2840 | "deprecationReason": null 2841 | }, 2842 | { 2843 | "name": "duradel", 2844 | "description": null, 2845 | "isDeprecated": false, 2846 | "deprecationReason": null 2847 | } 2848 | ], 2849 | "possibleTypes": null 2850 | }, 2851 | { 2852 | "kind": "OBJECT", 2853 | "name": "MonsterLevels", 2854 | "description": "Combat related skill levels of a monster", 2855 | "fields": [ 2856 | { 2857 | "name": "combat", 2858 | "description": null, 2859 | "args": [], 2860 | "type": { 2861 | "kind": "NON_NULL", 2862 | "name": null, 2863 | "ofType": { 2864 | "kind": "SCALAR", 2865 | "name": "Int", 2866 | "ofType": null 2867 | } 2868 | }, 2869 | "isDeprecated": false, 2870 | "deprecationReason": null 2871 | }, 2872 | { 2873 | "name": "hitpoints", 2874 | "description": null, 2875 | "args": [], 2876 | "type": { 2877 | "kind": "NON_NULL", 2878 | "name": null, 2879 | "ofType": { 2880 | "kind": "SCALAR", 2881 | "name": "Int", 2882 | "ofType": null 2883 | } 2884 | }, 2885 | "isDeprecated": false, 2886 | "deprecationReason": null 2887 | }, 2888 | { 2889 | "name": "attack", 2890 | "description": null, 2891 | "args": [], 2892 | "type": { 2893 | "kind": "NON_NULL", 2894 | "name": null, 2895 | "ofType": { 2896 | "kind": "SCALAR", 2897 | "name": "Int", 2898 | "ofType": null 2899 | } 2900 | }, 2901 | "isDeprecated": false, 2902 | "deprecationReason": null 2903 | }, 2904 | { 2905 | "name": "strength", 2906 | "description": null, 2907 | "args": [], 2908 | "type": { 2909 | "kind": "NON_NULL", 2910 | "name": null, 2911 | "ofType": { 2912 | "kind": "SCALAR", 2913 | "name": "Int", 2914 | "ofType": null 2915 | } 2916 | }, 2917 | "isDeprecated": false, 2918 | "deprecationReason": null 2919 | }, 2920 | { 2921 | "name": "defence", 2922 | "description": null, 2923 | "args": [], 2924 | "type": { 2925 | "kind": "NON_NULL", 2926 | "name": null, 2927 | "ofType": { 2928 | "kind": "SCALAR", 2929 | "name": "Int", 2930 | "ofType": null 2931 | } 2932 | }, 2933 | "isDeprecated": false, 2934 | "deprecationReason": null 2935 | }, 2936 | { 2937 | "name": "ranged", 2938 | "description": null, 2939 | "args": [], 2940 | "type": { 2941 | "kind": "NON_NULL", 2942 | "name": null, 2943 | "ofType": { 2944 | "kind": "SCALAR", 2945 | "name": "Int", 2946 | "ofType": null 2947 | } 2948 | }, 2949 | "isDeprecated": false, 2950 | "deprecationReason": null 2951 | }, 2952 | { 2953 | "name": "magic", 2954 | "description": null, 2955 | "args": [], 2956 | "type": { 2957 | "kind": "NON_NULL", 2958 | "name": null, 2959 | "ofType": { 2960 | "kind": "SCALAR", 2961 | "name": "Int", 2962 | "ofType": null 2963 | } 2964 | }, 2965 | "isDeprecated": false, 2966 | "deprecationReason": null 2967 | } 2968 | ], 2969 | "inputFields": null, 2970 | "interfaces": [], 2971 | "enumValues": null, 2972 | "possibleTypes": null 2973 | }, 2974 | { 2975 | "kind": "OBJECT", 2976 | "name": "MonsterBonuses", 2977 | "description": null, 2978 | "fields": [ 2979 | { 2980 | "name": "attack", 2981 | "description": null, 2982 | "args": [], 2983 | "type": { 2984 | "kind": "NON_NULL", 2985 | "name": null, 2986 | "ofType": { 2987 | "kind": "OBJECT", 2988 | "name": "MonsterAttackBonuses", 2989 | "ofType": null 2990 | } 2991 | }, 2992 | "isDeprecated": false, 2993 | "deprecationReason": null 2994 | }, 2995 | { 2996 | "name": "strength", 2997 | "description": null, 2998 | "args": [], 2999 | "type": { 3000 | "kind": "NON_NULL", 3001 | "name": null, 3002 | "ofType": { 3003 | "kind": "OBJECT", 3004 | "name": "StrengthBonuses", 3005 | "ofType": null 3006 | } 3007 | }, 3008 | "isDeprecated": false, 3009 | "deprecationReason": null 3010 | }, 3011 | { 3012 | "name": "defence", 3013 | "description": null, 3014 | "args": [], 3015 | "type": { 3016 | "kind": "NON_NULL", 3017 | "name": null, 3018 | "ofType": { 3019 | "kind": "OBJECT", 3020 | "name": "DefenceBonuses", 3021 | "ofType": null 3022 | } 3023 | }, 3024 | "isDeprecated": false, 3025 | "deprecationReason": null 3026 | } 3027 | ], 3028 | "inputFields": null, 3029 | "interfaces": [], 3030 | "enumValues": null, 3031 | "possibleTypes": null 3032 | }, 3033 | { 3034 | "kind": "OBJECT", 3035 | "name": "MonsterAttackBonuses", 3036 | "description": "Unlike player attack bonuses, for melee attacks, monsters only have a singular melee attack bonus that applies to all melee attack types (stab, slash, crush)", 3037 | "fields": [ 3038 | { 3039 | "name": "melee", 3040 | "description": null, 3041 | "args": [], 3042 | "type": { 3043 | "kind": "NON_NULL", 3044 | "name": null, 3045 | "ofType": { 3046 | "kind": "SCALAR", 3047 | "name": "Int", 3048 | "ofType": null 3049 | } 3050 | }, 3051 | "isDeprecated": false, 3052 | "deprecationReason": null 3053 | }, 3054 | { 3055 | "name": "ranged", 3056 | "description": null, 3057 | "args": [], 3058 | "type": { 3059 | "kind": "NON_NULL", 3060 | "name": null, 3061 | "ofType": { 3062 | "kind": "SCALAR", 3063 | "name": "Int", 3064 | "ofType": null 3065 | } 3066 | }, 3067 | "isDeprecated": false, 3068 | "deprecationReason": null 3069 | }, 3070 | { 3071 | "name": "magic", 3072 | "description": null, 3073 | "args": [], 3074 | "type": { 3075 | "kind": "NON_NULL", 3076 | "name": null, 3077 | "ofType": { 3078 | "kind": "SCALAR", 3079 | "name": "Int", 3080 | "ofType": null 3081 | } 3082 | }, 3083 | "isDeprecated": false, 3084 | "deprecationReason": null 3085 | } 3086 | ], 3087 | "inputFields": null, 3088 | "interfaces": [], 3089 | "enumValues": null, 3090 | "possibleTypes": null 3091 | }, 3092 | { 3093 | "kind": "OBJECT", 3094 | "name": "ItemDrop", 3095 | "description": null, 3096 | "fields": [ 3097 | { 3098 | "name": "item", 3099 | "description": null, 3100 | "args": [], 3101 | "type": { 3102 | "kind": "OBJECT", 3103 | "name": "Item", 3104 | "ofType": null 3105 | }, 3106 | "isDeprecated": false, 3107 | "deprecationReason": null 3108 | }, 3109 | { 3110 | "name": "quantity", 3111 | "description": "Quantity can be a scalar value, a list of scalar values, or a range", 3112 | "args": [], 3113 | "type": { 3114 | "kind": "UNION", 3115 | "name": "ItemDropQuantity", 3116 | "ofType": null 3117 | }, 3118 | "isDeprecated": false, 3119 | "deprecationReason": null 3120 | }, 3121 | { 3122 | "name": "noted", 3123 | "description": null, 3124 | "args": [], 3125 | "type": { 3126 | "kind": "NON_NULL", 3127 | "name": null, 3128 | "ofType": { 3129 | "kind": "SCALAR", 3130 | "name": "Boolean", 3131 | "ofType": null 3132 | } 3133 | }, 3134 | "isDeprecated": false, 3135 | "deprecationReason": null 3136 | }, 3137 | { 3138 | "name": "members", 3139 | "description": "Only drops in members worlds", 3140 | "args": [], 3141 | "type": { 3142 | "kind": "NON_NULL", 3143 | "name": null, 3144 | "ofType": { 3145 | "kind": "SCALAR", 3146 | "name": "Boolean", 3147 | "ofType": null 3148 | } 3149 | }, 3150 | "isDeprecated": false, 3151 | "deprecationReason": null 3152 | }, 3153 | { 3154 | "name": "rarity", 3155 | "description": "Odds that this drop is rolled", 3156 | "args": [], 3157 | "type": { 3158 | "kind": "NON_NULL", 3159 | "name": null, 3160 | "ofType": { 3161 | "kind": "SCALAR", 3162 | "name": "Float", 3163 | "ofType": null 3164 | } 3165 | }, 3166 | "isDeprecated": false, 3167 | "deprecationReason": null 3168 | } 3169 | ], 3170 | "inputFields": null, 3171 | "interfaces": [], 3172 | "enumValues": null, 3173 | "possibleTypes": null 3174 | }, 3175 | { 3176 | "kind": "UNION", 3177 | "name": "ItemDropQuantity", 3178 | "description": "Quantity can be a scalar value, a list of scalar values, or a range", 3179 | "fields": null, 3180 | "inputFields": null, 3181 | "interfaces": null, 3182 | "enumValues": null, 3183 | "possibleTypes": [ 3184 | { 3185 | "kind": "OBJECT", 3186 | "name": "ItemDropQuantityScalar", 3187 | "ofType": null 3188 | }, 3189 | { 3190 | "kind": "OBJECT", 3191 | "name": "ItemDropQuantityList", 3192 | "ofType": null 3193 | }, 3194 | { 3195 | "kind": "OBJECT", 3196 | "name": "ItemDropQuantityRange", 3197 | "ofType": null 3198 | } 3199 | ] 3200 | }, 3201 | { 3202 | "kind": "OBJECT", 3203 | "name": "ItemDropQuantityScalar", 3204 | "description": "Scalar quantity an item can drop in", 3205 | "fields": [ 3206 | { 3207 | "name": "quantity", 3208 | "description": null, 3209 | "args": [], 3210 | "type": { 3211 | "kind": "SCALAR", 3212 | "name": "Int", 3213 | "ofType": null 3214 | }, 3215 | "isDeprecated": false, 3216 | "deprecationReason": null 3217 | } 3218 | ], 3219 | "inputFields": null, 3220 | "interfaces": [], 3221 | "enumValues": null, 3222 | "possibleTypes": null 3223 | }, 3224 | { 3225 | "kind": "OBJECT", 3226 | "name": "ItemDropQuantityList", 3227 | "description": "List of quantities an item can drop in", 3228 | "fields": [ 3229 | { 3230 | "name": "quantities", 3231 | "description": null, 3232 | "args": [], 3233 | "type": { 3234 | "kind": "NON_NULL", 3235 | "name": null, 3236 | "ofType": { 3237 | "kind": "LIST", 3238 | "name": null, 3239 | "ofType": { 3240 | "kind": "NON_NULL", 3241 | "name": null, 3242 | "ofType": { 3243 | "kind": "SCALAR", 3244 | "name": "Int", 3245 | "ofType": null 3246 | } 3247 | } 3248 | } 3249 | }, 3250 | "isDeprecated": false, 3251 | "deprecationReason": null 3252 | } 3253 | ], 3254 | "inputFields": null, 3255 | "interfaces": [], 3256 | "enumValues": null, 3257 | "possibleTypes": null 3258 | }, 3259 | { 3260 | "kind": "OBJECT", 3261 | "name": "ItemDropQuantityRange", 3262 | "description": "Range of quantities an item can drop in", 3263 | "fields": [ 3264 | { 3265 | "name": "min", 3266 | "description": null, 3267 | "args": [], 3268 | "type": { 3269 | "kind": "NON_NULL", 3270 | "name": null, 3271 | "ofType": { 3272 | "kind": "SCALAR", 3273 | "name": "Int", 3274 | "ofType": null 3275 | } 3276 | }, 3277 | "isDeprecated": false, 3278 | "deprecationReason": null 3279 | }, 3280 | { 3281 | "name": "max", 3282 | "description": null, 3283 | "args": [], 3284 | "type": { 3285 | "kind": "NON_NULL", 3286 | "name": null, 3287 | "ofType": { 3288 | "kind": "SCALAR", 3289 | "name": "Int", 3290 | "ofType": null 3291 | } 3292 | }, 3293 | "isDeprecated": false, 3294 | "deprecationReason": null 3295 | } 3296 | ], 3297 | "inputFields": null, 3298 | "interfaces": [], 3299 | "enumValues": null, 3300 | "possibleTypes": null 3301 | }, 3302 | { 3303 | "kind": "OBJECT", 3304 | "name": "__Schema", 3305 | "description": "A GraphQL Schema defines the capabilities of a GraphQL server. It exposes all available types and directives on the server, as well as the entry points for query, mutation, and subscription operations.", 3306 | "fields": [ 3307 | { 3308 | "name": "description", 3309 | "description": null, 3310 | "args": [], 3311 | "type": { 3312 | "kind": "SCALAR", 3313 | "name": "String", 3314 | "ofType": null 3315 | }, 3316 | "isDeprecated": false, 3317 | "deprecationReason": null 3318 | }, 3319 | { 3320 | "name": "types", 3321 | "description": "A list of all types supported by this server.", 3322 | "args": [], 3323 | "type": { 3324 | "kind": "NON_NULL", 3325 | "name": null, 3326 | "ofType": { 3327 | "kind": "LIST", 3328 | "name": null, 3329 | "ofType": { 3330 | "kind": "NON_NULL", 3331 | "name": null, 3332 | "ofType": { 3333 | "kind": "OBJECT", 3334 | "name": "__Type", 3335 | "ofType": null 3336 | } 3337 | } 3338 | } 3339 | }, 3340 | "isDeprecated": false, 3341 | "deprecationReason": null 3342 | }, 3343 | { 3344 | "name": "queryType", 3345 | "description": "The type that query operations will be rooted at.", 3346 | "args": [], 3347 | "type": { 3348 | "kind": "NON_NULL", 3349 | "name": null, 3350 | "ofType": { 3351 | "kind": "OBJECT", 3352 | "name": "__Type", 3353 | "ofType": null 3354 | } 3355 | }, 3356 | "isDeprecated": false, 3357 | "deprecationReason": null 3358 | }, 3359 | { 3360 | "name": "mutationType", 3361 | "description": "If this server supports mutation, the type that mutation operations will be rooted at.", 3362 | "args": [], 3363 | "type": { 3364 | "kind": "OBJECT", 3365 | "name": "__Type", 3366 | "ofType": null 3367 | }, 3368 | "isDeprecated": false, 3369 | "deprecationReason": null 3370 | }, 3371 | { 3372 | "name": "subscriptionType", 3373 | "description": "If this server support subscription, the type that subscription operations will be rooted at.", 3374 | "args": [], 3375 | "type": { 3376 | "kind": "OBJECT", 3377 | "name": "__Type", 3378 | "ofType": null 3379 | }, 3380 | "isDeprecated": false, 3381 | "deprecationReason": null 3382 | }, 3383 | { 3384 | "name": "directives", 3385 | "description": "A list of all directives supported by this server.", 3386 | "args": [], 3387 | "type": { 3388 | "kind": "NON_NULL", 3389 | "name": null, 3390 | "ofType": { 3391 | "kind": "LIST", 3392 | "name": null, 3393 | "ofType": { 3394 | "kind": "NON_NULL", 3395 | "name": null, 3396 | "ofType": { 3397 | "kind": "OBJECT", 3398 | "name": "__Directive", 3399 | "ofType": null 3400 | } 3401 | } 3402 | } 3403 | }, 3404 | "isDeprecated": false, 3405 | "deprecationReason": null 3406 | } 3407 | ], 3408 | "inputFields": null, 3409 | "interfaces": [], 3410 | "enumValues": null, 3411 | "possibleTypes": null 3412 | }, 3413 | { 3414 | "kind": "OBJECT", 3415 | "name": "__Type", 3416 | "description": "The fundamental unit of any GraphQL Schema is the type. There are many kinds of types in GraphQL as represented by the `__TypeKind` enum.\n\nDepending on the kind of a type, certain fields describe information about that type. Scalar types provide no information beyond a name, description and optional `specifiedByUrl`, while Enum types provide their values. Object and Interface types provide the fields they describe. Abstract types, Union and Interface, provide the Object types possible at runtime. List and NonNull types compose other types.", 3417 | "fields": [ 3418 | { 3419 | "name": "kind", 3420 | "description": null, 3421 | "args": [], 3422 | "type": { 3423 | "kind": "NON_NULL", 3424 | "name": null, 3425 | "ofType": { 3426 | "kind": "ENUM", 3427 | "name": "__TypeKind", 3428 | "ofType": null 3429 | } 3430 | }, 3431 | "isDeprecated": false, 3432 | "deprecationReason": null 3433 | }, 3434 | { 3435 | "name": "name", 3436 | "description": null, 3437 | "args": [], 3438 | "type": { 3439 | "kind": "SCALAR", 3440 | "name": "String", 3441 | "ofType": null 3442 | }, 3443 | "isDeprecated": false, 3444 | "deprecationReason": null 3445 | }, 3446 | { 3447 | "name": "description", 3448 | "description": null, 3449 | "args": [], 3450 | "type": { 3451 | "kind": "SCALAR", 3452 | "name": "String", 3453 | "ofType": null 3454 | }, 3455 | "isDeprecated": false, 3456 | "deprecationReason": null 3457 | }, 3458 | { 3459 | "name": "specifiedByUrl", 3460 | "description": null, 3461 | "args": [], 3462 | "type": { 3463 | "kind": "SCALAR", 3464 | "name": "String", 3465 | "ofType": null 3466 | }, 3467 | "isDeprecated": false, 3468 | "deprecationReason": null 3469 | }, 3470 | { 3471 | "name": "fields", 3472 | "description": null, 3473 | "args": [ 3474 | { 3475 | "name": "includeDeprecated", 3476 | "description": null, 3477 | "type": { 3478 | "kind": "SCALAR", 3479 | "name": "Boolean", 3480 | "ofType": null 3481 | }, 3482 | "defaultValue": "false" 3483 | } 3484 | ], 3485 | "type": { 3486 | "kind": "LIST", 3487 | "name": null, 3488 | "ofType": { 3489 | "kind": "NON_NULL", 3490 | "name": null, 3491 | "ofType": { 3492 | "kind": "OBJECT", 3493 | "name": "__Field", 3494 | "ofType": null 3495 | } 3496 | } 3497 | }, 3498 | "isDeprecated": false, 3499 | "deprecationReason": null 3500 | }, 3501 | { 3502 | "name": "interfaces", 3503 | "description": null, 3504 | "args": [], 3505 | "type": { 3506 | "kind": "LIST", 3507 | "name": null, 3508 | "ofType": { 3509 | "kind": "NON_NULL", 3510 | "name": null, 3511 | "ofType": { 3512 | "kind": "OBJECT", 3513 | "name": "__Type", 3514 | "ofType": null 3515 | } 3516 | } 3517 | }, 3518 | "isDeprecated": false, 3519 | "deprecationReason": null 3520 | }, 3521 | { 3522 | "name": "possibleTypes", 3523 | "description": null, 3524 | "args": [], 3525 | "type": { 3526 | "kind": "LIST", 3527 | "name": null, 3528 | "ofType": { 3529 | "kind": "NON_NULL", 3530 | "name": null, 3531 | "ofType": { 3532 | "kind": "OBJECT", 3533 | "name": "__Type", 3534 | "ofType": null 3535 | } 3536 | } 3537 | }, 3538 | "isDeprecated": false, 3539 | "deprecationReason": null 3540 | }, 3541 | { 3542 | "name": "enumValues", 3543 | "description": null, 3544 | "args": [ 3545 | { 3546 | "name": "includeDeprecated", 3547 | "description": null, 3548 | "type": { 3549 | "kind": "SCALAR", 3550 | "name": "Boolean", 3551 | "ofType": null 3552 | }, 3553 | "defaultValue": "false" 3554 | } 3555 | ], 3556 | "type": { 3557 | "kind": "LIST", 3558 | "name": null, 3559 | "ofType": { 3560 | "kind": "NON_NULL", 3561 | "name": null, 3562 | "ofType": { 3563 | "kind": "OBJECT", 3564 | "name": "__EnumValue", 3565 | "ofType": null 3566 | } 3567 | } 3568 | }, 3569 | "isDeprecated": false, 3570 | "deprecationReason": null 3571 | }, 3572 | { 3573 | "name": "inputFields", 3574 | "description": null, 3575 | "args": [ 3576 | { 3577 | "name": "includeDeprecated", 3578 | "description": null, 3579 | "type": { 3580 | "kind": "SCALAR", 3581 | "name": "Boolean", 3582 | "ofType": null 3583 | }, 3584 | "defaultValue": "false" 3585 | } 3586 | ], 3587 | "type": { 3588 | "kind": "LIST", 3589 | "name": null, 3590 | "ofType": { 3591 | "kind": "NON_NULL", 3592 | "name": null, 3593 | "ofType": { 3594 | "kind": "OBJECT", 3595 | "name": "__InputValue", 3596 | "ofType": null 3597 | } 3598 | } 3599 | }, 3600 | "isDeprecated": false, 3601 | "deprecationReason": null 3602 | }, 3603 | { 3604 | "name": "ofType", 3605 | "description": null, 3606 | "args": [], 3607 | "type": { 3608 | "kind": "OBJECT", 3609 | "name": "__Type", 3610 | "ofType": null 3611 | }, 3612 | "isDeprecated": false, 3613 | "deprecationReason": null 3614 | } 3615 | ], 3616 | "inputFields": null, 3617 | "interfaces": [], 3618 | "enumValues": null, 3619 | "possibleTypes": null 3620 | }, 3621 | { 3622 | "kind": "ENUM", 3623 | "name": "__TypeKind", 3624 | "description": "An enum describing what kind of type a given `__Type` is.", 3625 | "fields": null, 3626 | "inputFields": null, 3627 | "interfaces": null, 3628 | "enumValues": [ 3629 | { 3630 | "name": "SCALAR", 3631 | "description": "Indicates this type is a scalar.", 3632 | "isDeprecated": false, 3633 | "deprecationReason": null 3634 | }, 3635 | { 3636 | "name": "OBJECT", 3637 | "description": "Indicates this type is an object. `fields` and `interfaces` are valid fields.", 3638 | "isDeprecated": false, 3639 | "deprecationReason": null 3640 | }, 3641 | { 3642 | "name": "INTERFACE", 3643 | "description": "Indicates this type is an interface. `fields`, `interfaces`, and `possibleTypes` are valid fields.", 3644 | "isDeprecated": false, 3645 | "deprecationReason": null 3646 | }, 3647 | { 3648 | "name": "UNION", 3649 | "description": "Indicates this type is a union. `possibleTypes` is a valid field.", 3650 | "isDeprecated": false, 3651 | "deprecationReason": null 3652 | }, 3653 | { 3654 | "name": "ENUM", 3655 | "description": "Indicates this type is an enum. `enumValues` is a valid field.", 3656 | "isDeprecated": false, 3657 | "deprecationReason": null 3658 | }, 3659 | { 3660 | "name": "INPUT_OBJECT", 3661 | "description": "Indicates this type is an input object. `inputFields` is a valid field.", 3662 | "isDeprecated": false, 3663 | "deprecationReason": null 3664 | }, 3665 | { 3666 | "name": "LIST", 3667 | "description": "Indicates this type is a list. `ofType` is a valid field.", 3668 | "isDeprecated": false, 3669 | "deprecationReason": null 3670 | }, 3671 | { 3672 | "name": "NON_NULL", 3673 | "description": "Indicates this type is a non-null. `ofType` is a valid field.", 3674 | "isDeprecated": false, 3675 | "deprecationReason": null 3676 | } 3677 | ], 3678 | "possibleTypes": null 3679 | }, 3680 | { 3681 | "kind": "OBJECT", 3682 | "name": "__Field", 3683 | "description": "Object and Interface types are described by a list of Fields, each of which has a name, potentially a list of arguments, and a return type.", 3684 | "fields": [ 3685 | { 3686 | "name": "name", 3687 | "description": null, 3688 | "args": [], 3689 | "type": { 3690 | "kind": "NON_NULL", 3691 | "name": null, 3692 | "ofType": { 3693 | "kind": "SCALAR", 3694 | "name": "String", 3695 | "ofType": null 3696 | } 3697 | }, 3698 | "isDeprecated": false, 3699 | "deprecationReason": null 3700 | }, 3701 | { 3702 | "name": "description", 3703 | "description": null, 3704 | "args": [], 3705 | "type": { 3706 | "kind": "SCALAR", 3707 | "name": "String", 3708 | "ofType": null 3709 | }, 3710 | "isDeprecated": false, 3711 | "deprecationReason": null 3712 | }, 3713 | { 3714 | "name": "args", 3715 | "description": null, 3716 | "args": [ 3717 | { 3718 | "name": "includeDeprecated", 3719 | "description": null, 3720 | "type": { 3721 | "kind": "SCALAR", 3722 | "name": "Boolean", 3723 | "ofType": null 3724 | }, 3725 | "defaultValue": "false" 3726 | } 3727 | ], 3728 | "type": { 3729 | "kind": "NON_NULL", 3730 | "name": null, 3731 | "ofType": { 3732 | "kind": "LIST", 3733 | "name": null, 3734 | "ofType": { 3735 | "kind": "NON_NULL", 3736 | "name": null, 3737 | "ofType": { 3738 | "kind": "OBJECT", 3739 | "name": "__InputValue", 3740 | "ofType": null 3741 | } 3742 | } 3743 | } 3744 | }, 3745 | "isDeprecated": false, 3746 | "deprecationReason": null 3747 | }, 3748 | { 3749 | "name": "type", 3750 | "description": null, 3751 | "args": [], 3752 | "type": { 3753 | "kind": "NON_NULL", 3754 | "name": null, 3755 | "ofType": { 3756 | "kind": "OBJECT", 3757 | "name": "__Type", 3758 | "ofType": null 3759 | } 3760 | }, 3761 | "isDeprecated": false, 3762 | "deprecationReason": null 3763 | }, 3764 | { 3765 | "name": "isDeprecated", 3766 | "description": null, 3767 | "args": [], 3768 | "type": { 3769 | "kind": "NON_NULL", 3770 | "name": null, 3771 | "ofType": { 3772 | "kind": "SCALAR", 3773 | "name": "Boolean", 3774 | "ofType": null 3775 | } 3776 | }, 3777 | "isDeprecated": false, 3778 | "deprecationReason": null 3779 | }, 3780 | { 3781 | "name": "deprecationReason", 3782 | "description": null, 3783 | "args": [], 3784 | "type": { 3785 | "kind": "SCALAR", 3786 | "name": "String", 3787 | "ofType": null 3788 | }, 3789 | "isDeprecated": false, 3790 | "deprecationReason": null 3791 | } 3792 | ], 3793 | "inputFields": null, 3794 | "interfaces": [], 3795 | "enumValues": null, 3796 | "possibleTypes": null 3797 | }, 3798 | { 3799 | "kind": "OBJECT", 3800 | "name": "__InputValue", 3801 | "description": "Arguments provided to Fields or Directives and the input fields of an InputObject are represented as Input Values which describe their type and optionally a default value.", 3802 | "fields": [ 3803 | { 3804 | "name": "name", 3805 | "description": null, 3806 | "args": [], 3807 | "type": { 3808 | "kind": "NON_NULL", 3809 | "name": null, 3810 | "ofType": { 3811 | "kind": "SCALAR", 3812 | "name": "String", 3813 | "ofType": null 3814 | } 3815 | }, 3816 | "isDeprecated": false, 3817 | "deprecationReason": null 3818 | }, 3819 | { 3820 | "name": "description", 3821 | "description": null, 3822 | "args": [], 3823 | "type": { 3824 | "kind": "SCALAR", 3825 | "name": "String", 3826 | "ofType": null 3827 | }, 3828 | "isDeprecated": false, 3829 | "deprecationReason": null 3830 | }, 3831 | { 3832 | "name": "type", 3833 | "description": null, 3834 | "args": [], 3835 | "type": { 3836 | "kind": "NON_NULL", 3837 | "name": null, 3838 | "ofType": { 3839 | "kind": "OBJECT", 3840 | "name": "__Type", 3841 | "ofType": null 3842 | } 3843 | }, 3844 | "isDeprecated": false, 3845 | "deprecationReason": null 3846 | }, 3847 | { 3848 | "name": "defaultValue", 3849 | "description": "A GraphQL-formatted string representing the default value for this input value.", 3850 | "args": [], 3851 | "type": { 3852 | "kind": "SCALAR", 3853 | "name": "String", 3854 | "ofType": null 3855 | }, 3856 | "isDeprecated": false, 3857 | "deprecationReason": null 3858 | }, 3859 | { 3860 | "name": "isDeprecated", 3861 | "description": null, 3862 | "args": [], 3863 | "type": { 3864 | "kind": "NON_NULL", 3865 | "name": null, 3866 | "ofType": { 3867 | "kind": "SCALAR", 3868 | "name": "Boolean", 3869 | "ofType": null 3870 | } 3871 | }, 3872 | "isDeprecated": false, 3873 | "deprecationReason": null 3874 | }, 3875 | { 3876 | "name": "deprecationReason", 3877 | "description": null, 3878 | "args": [], 3879 | "type": { 3880 | "kind": "SCALAR", 3881 | "name": "String", 3882 | "ofType": null 3883 | }, 3884 | "isDeprecated": false, 3885 | "deprecationReason": null 3886 | } 3887 | ], 3888 | "inputFields": null, 3889 | "interfaces": [], 3890 | "enumValues": null, 3891 | "possibleTypes": null 3892 | }, 3893 | { 3894 | "kind": "OBJECT", 3895 | "name": "__EnumValue", 3896 | "description": "One possible value for a given Enum. Enum values are unique values, not a placeholder for a string or numeric value. However an Enum value is returned in a JSON response as a string.", 3897 | "fields": [ 3898 | { 3899 | "name": "name", 3900 | "description": null, 3901 | "args": [], 3902 | "type": { 3903 | "kind": "NON_NULL", 3904 | "name": null, 3905 | "ofType": { 3906 | "kind": "SCALAR", 3907 | "name": "String", 3908 | "ofType": null 3909 | } 3910 | }, 3911 | "isDeprecated": false, 3912 | "deprecationReason": null 3913 | }, 3914 | { 3915 | "name": "description", 3916 | "description": null, 3917 | "args": [], 3918 | "type": { 3919 | "kind": "SCALAR", 3920 | "name": "String", 3921 | "ofType": null 3922 | }, 3923 | "isDeprecated": false, 3924 | "deprecationReason": null 3925 | }, 3926 | { 3927 | "name": "isDeprecated", 3928 | "description": null, 3929 | "args": [], 3930 | "type": { 3931 | "kind": "NON_NULL", 3932 | "name": null, 3933 | "ofType": { 3934 | "kind": "SCALAR", 3935 | "name": "Boolean", 3936 | "ofType": null 3937 | } 3938 | }, 3939 | "isDeprecated": false, 3940 | "deprecationReason": null 3941 | }, 3942 | { 3943 | "name": "deprecationReason", 3944 | "description": null, 3945 | "args": [], 3946 | "type": { 3947 | "kind": "SCALAR", 3948 | "name": "String", 3949 | "ofType": null 3950 | }, 3951 | "isDeprecated": false, 3952 | "deprecationReason": null 3953 | } 3954 | ], 3955 | "inputFields": null, 3956 | "interfaces": [], 3957 | "enumValues": null, 3958 | "possibleTypes": null 3959 | }, 3960 | { 3961 | "kind": "OBJECT", 3962 | "name": "__Directive", 3963 | "description": "A Directive provides a way to describe alternate runtime execution and type validation behavior in a GraphQL document.\n\nIn some cases, you need to provide options to alter GraphQL's execution behavior in ways field arguments will not suffice, such as conditionally including or skipping a field. Directives provide this by describing additional information to the executor.", 3964 | "fields": [ 3965 | { 3966 | "name": "name", 3967 | "description": null, 3968 | "args": [], 3969 | "type": { 3970 | "kind": "NON_NULL", 3971 | "name": null, 3972 | "ofType": { 3973 | "kind": "SCALAR", 3974 | "name": "String", 3975 | "ofType": null 3976 | } 3977 | }, 3978 | "isDeprecated": false, 3979 | "deprecationReason": null 3980 | }, 3981 | { 3982 | "name": "description", 3983 | "description": null, 3984 | "args": [], 3985 | "type": { 3986 | "kind": "SCALAR", 3987 | "name": "String", 3988 | "ofType": null 3989 | }, 3990 | "isDeprecated": false, 3991 | "deprecationReason": null 3992 | }, 3993 | { 3994 | "name": "isRepeatable", 3995 | "description": null, 3996 | "args": [], 3997 | "type": { 3998 | "kind": "NON_NULL", 3999 | "name": null, 4000 | "ofType": { 4001 | "kind": "SCALAR", 4002 | "name": "Boolean", 4003 | "ofType": null 4004 | } 4005 | }, 4006 | "isDeprecated": false, 4007 | "deprecationReason": null 4008 | }, 4009 | { 4010 | "name": "locations", 4011 | "description": null, 4012 | "args": [], 4013 | "type": { 4014 | "kind": "NON_NULL", 4015 | "name": null, 4016 | "ofType": { 4017 | "kind": "LIST", 4018 | "name": null, 4019 | "ofType": { 4020 | "kind": "NON_NULL", 4021 | "name": null, 4022 | "ofType": { 4023 | "kind": "ENUM", 4024 | "name": "__DirectiveLocation", 4025 | "ofType": null 4026 | } 4027 | } 4028 | } 4029 | }, 4030 | "isDeprecated": false, 4031 | "deprecationReason": null 4032 | }, 4033 | { 4034 | "name": "args", 4035 | "description": null, 4036 | "args": [], 4037 | "type": { 4038 | "kind": "NON_NULL", 4039 | "name": null, 4040 | "ofType": { 4041 | "kind": "LIST", 4042 | "name": null, 4043 | "ofType": { 4044 | "kind": "NON_NULL", 4045 | "name": null, 4046 | "ofType": { 4047 | "kind": "OBJECT", 4048 | "name": "__InputValue", 4049 | "ofType": null 4050 | } 4051 | } 4052 | } 4053 | }, 4054 | "isDeprecated": false, 4055 | "deprecationReason": null 4056 | } 4057 | ], 4058 | "inputFields": null, 4059 | "interfaces": [], 4060 | "enumValues": null, 4061 | "possibleTypes": null 4062 | }, 4063 | { 4064 | "kind": "ENUM", 4065 | "name": "__DirectiveLocation", 4066 | "description": "A Directive can be adjacent to many parts of the GraphQL language, a __DirectiveLocation describes one such possible adjacencies.", 4067 | "fields": null, 4068 | "inputFields": null, 4069 | "interfaces": null, 4070 | "enumValues": [ 4071 | { 4072 | "name": "QUERY", 4073 | "description": "Location adjacent to a query operation.", 4074 | "isDeprecated": false, 4075 | "deprecationReason": null 4076 | }, 4077 | { 4078 | "name": "MUTATION", 4079 | "description": "Location adjacent to a mutation operation.", 4080 | "isDeprecated": false, 4081 | "deprecationReason": null 4082 | }, 4083 | { 4084 | "name": "SUBSCRIPTION", 4085 | "description": "Location adjacent to a subscription operation.", 4086 | "isDeprecated": false, 4087 | "deprecationReason": null 4088 | }, 4089 | { 4090 | "name": "FIELD", 4091 | "description": "Location adjacent to a field.", 4092 | "isDeprecated": false, 4093 | "deprecationReason": null 4094 | }, 4095 | { 4096 | "name": "FRAGMENT_DEFINITION", 4097 | "description": "Location adjacent to a fragment definition.", 4098 | "isDeprecated": false, 4099 | "deprecationReason": null 4100 | }, 4101 | { 4102 | "name": "FRAGMENT_SPREAD", 4103 | "description": "Location adjacent to a fragment spread.", 4104 | "isDeprecated": false, 4105 | "deprecationReason": null 4106 | }, 4107 | { 4108 | "name": "INLINE_FRAGMENT", 4109 | "description": "Location adjacent to an inline fragment.", 4110 | "isDeprecated": false, 4111 | "deprecationReason": null 4112 | }, 4113 | { 4114 | "name": "VARIABLE_DEFINITION", 4115 | "description": "Location adjacent to a variable definition.", 4116 | "isDeprecated": false, 4117 | "deprecationReason": null 4118 | }, 4119 | { 4120 | "name": "SCHEMA", 4121 | "description": "Location adjacent to a schema definition.", 4122 | "isDeprecated": false, 4123 | "deprecationReason": null 4124 | }, 4125 | { 4126 | "name": "SCALAR", 4127 | "description": "Location adjacent to a scalar definition.", 4128 | "isDeprecated": false, 4129 | "deprecationReason": null 4130 | }, 4131 | { 4132 | "name": "OBJECT", 4133 | "description": "Location adjacent to an object type definition.", 4134 | "isDeprecated": false, 4135 | "deprecationReason": null 4136 | }, 4137 | { 4138 | "name": "FIELD_DEFINITION", 4139 | "description": "Location adjacent to a field definition.", 4140 | "isDeprecated": false, 4141 | "deprecationReason": null 4142 | }, 4143 | { 4144 | "name": "ARGUMENT_DEFINITION", 4145 | "description": "Location adjacent to an argument definition.", 4146 | "isDeprecated": false, 4147 | "deprecationReason": null 4148 | }, 4149 | { 4150 | "name": "INTERFACE", 4151 | "description": "Location adjacent to an interface definition.", 4152 | "isDeprecated": false, 4153 | "deprecationReason": null 4154 | }, 4155 | { 4156 | "name": "UNION", 4157 | "description": "Location adjacent to a union definition.", 4158 | "isDeprecated": false, 4159 | "deprecationReason": null 4160 | }, 4161 | { 4162 | "name": "ENUM", 4163 | "description": "Location adjacent to an enum definition.", 4164 | "isDeprecated": false, 4165 | "deprecationReason": null 4166 | }, 4167 | { 4168 | "name": "ENUM_VALUE", 4169 | "description": "Location adjacent to an enum value definition.", 4170 | "isDeprecated": false, 4171 | "deprecationReason": null 4172 | }, 4173 | { 4174 | "name": "INPUT_OBJECT", 4175 | "description": "Location adjacent to an input object type definition.", 4176 | "isDeprecated": false, 4177 | "deprecationReason": null 4178 | }, 4179 | { 4180 | "name": "INPUT_FIELD_DEFINITION", 4181 | "description": "Location adjacent to an input object field definition.", 4182 | "isDeprecated": false, 4183 | "deprecationReason": null 4184 | } 4185 | ], 4186 | "possibleTypes": null 4187 | } 4188 | ], 4189 | "directives": [ 4190 | { 4191 | "name": "include", 4192 | "description": "Directs the executor to include this field or fragment only when the `if` argument is true.", 4193 | "isRepeatable": false, 4194 | "locations": [ 4195 | "FIELD", 4196 | "FRAGMENT_SPREAD", 4197 | "INLINE_FRAGMENT" 4198 | ], 4199 | "args": [ 4200 | { 4201 | "name": "if", 4202 | "description": "Included when true.", 4203 | "type": { 4204 | "kind": "NON_NULL", 4205 | "name": null, 4206 | "ofType": { 4207 | "kind": "SCALAR", 4208 | "name": "Boolean", 4209 | "ofType": null 4210 | } 4211 | }, 4212 | "defaultValue": null 4213 | } 4214 | ] 4215 | }, 4216 | { 4217 | "name": "skip", 4218 | "description": "Directs the executor to skip this field or fragment when the `if` argument is true.", 4219 | "isRepeatable": false, 4220 | "locations": [ 4221 | "FIELD", 4222 | "FRAGMENT_SPREAD", 4223 | "INLINE_FRAGMENT" 4224 | ], 4225 | "args": [ 4226 | { 4227 | "name": "if", 4228 | "description": "Skipped when true.", 4229 | "type": { 4230 | "kind": "NON_NULL", 4231 | "name": null, 4232 | "ofType": { 4233 | "kind": "SCALAR", 4234 | "name": "Boolean", 4235 | "ofType": null 4236 | } 4237 | }, 4238 | "defaultValue": null 4239 | } 4240 | ] 4241 | }, 4242 | { 4243 | "name": "deprecated", 4244 | "description": "Marks an element of a GraphQL schema as no longer supported.", 4245 | "isRepeatable": false, 4246 | "locations": [ 4247 | "FIELD_DEFINITION", 4248 | "ARGUMENT_DEFINITION", 4249 | "INPUT_FIELD_DEFINITION", 4250 | "ENUM_VALUE" 4251 | ], 4252 | "args": [ 4253 | { 4254 | "name": "reason", 4255 | "description": "Explains why this element was deprecated, usually also including a suggestion for how to access supported similar data. Formatted using the Markdown syntax, as specified by [CommonMark](https://commonmark.org/).", 4256 | "type": { 4257 | "kind": "SCALAR", 4258 | "name": "String", 4259 | "ofType": null 4260 | }, 4261 | "defaultValue": "\"No longer supported\"" 4262 | } 4263 | ] 4264 | }, 4265 | { 4266 | "name": "specifiedBy", 4267 | "description": "Exposes a URL that specifies the behaviour of this scalar.", 4268 | "isRepeatable": false, 4269 | "locations": [ 4270 | "SCALAR" 4271 | ], 4272 | "args": [ 4273 | { 4274 | "name": "url", 4275 | "description": "The URL that specifies the behaviour of this scalar.", 4276 | "type": { 4277 | "kind": "NON_NULL", 4278 | "name": null, 4279 | "ofType": { 4280 | "kind": "SCALAR", 4281 | "name": "String", 4282 | "ofType": null 4283 | } 4284 | }, 4285 | "defaultValue": null 4286 | } 4287 | ] 4288 | }, 4289 | { 4290 | "name": "client", 4291 | "description": "Direct the client to resolve this field locally, either from the cache or local resolvers.", 4292 | "isRepeatable": false, 4293 | "locations": [ 4294 | "FIELD", 4295 | "FRAGMENT_DEFINITION", 4296 | "INLINE_FRAGMENT" 4297 | ], 4298 | "args": [ 4299 | { 4300 | "name": "always", 4301 | "description": "When true, the client will never use the cache for this value. See\nhttps://www.apollographql.com/docs/react/essentials/local-state/#forcing-resolvers-with-clientalways-true", 4302 | "type": { 4303 | "kind": "SCALAR", 4304 | "name": "Boolean", 4305 | "ofType": null 4306 | }, 4307 | "defaultValue": null 4308 | } 4309 | ] 4310 | }, 4311 | { 4312 | "name": "export", 4313 | "description": "Export this locally resolved field as a variable to be used in the remainder of this query. See\nhttps://www.apollographql.com/docs/react/essentials/local-state/#using-client-fields-as-variables", 4314 | "isRepeatable": false, 4315 | "locations": [ 4316 | "FIELD" 4317 | ], 4318 | "args": [ 4319 | { 4320 | "name": "as", 4321 | "description": "The variable name to export this field as.", 4322 | "type": { 4323 | "kind": "NON_NULL", 4324 | "name": null, 4325 | "ofType": { 4326 | "kind": "SCALAR", 4327 | "name": "String", 4328 | "ofType": null 4329 | } 4330 | }, 4331 | "defaultValue": null 4332 | } 4333 | ] 4334 | }, 4335 | { 4336 | "name": "connection", 4337 | "description": "Specify a custom store key for this result. See\nhttps://www.apollographql.com/docs/react/advanced/caching/#the-connection-directive", 4338 | "isRepeatable": false, 4339 | "locations": [ 4340 | "FIELD" 4341 | ], 4342 | "args": [ 4343 | { 4344 | "name": "key", 4345 | "description": "Specify the store key.", 4346 | "type": { 4347 | "kind": "NON_NULL", 4348 | "name": null, 4349 | "ofType": { 4350 | "kind": "SCALAR", 4351 | "name": "String", 4352 | "ofType": null 4353 | } 4354 | }, 4355 | "defaultValue": null 4356 | }, 4357 | { 4358 | "name": "filter", 4359 | "description": "An array of query argument names to include in the generated custom store key.", 4360 | "type": { 4361 | "kind": "LIST", 4362 | "name": null, 4363 | "ofType": { 4364 | "kind": "NON_NULL", 4365 | "name": null, 4366 | "ofType": { 4367 | "kind": "SCALAR", 4368 | "name": "String", 4369 | "ofType": null 4370 | } 4371 | } 4372 | }, 4373 | "defaultValue": null 4374 | } 4375 | ] 4376 | } 4377 | ] 4378 | } 4379 | } --------------------------------------------------------------------------------