├── 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 | }
--------------------------------------------------------------------------------