[
  {
    "path": ".eslintignore",
    "content": "/example\n# Copied from '.gitignore', please keep it in sync.\n/.eslintcache\n/.cspellcache\n/node_modules\n/dist\n/demo-dist\n/typings\n/test-results\n/playwright-report\n"
  },
  {
    "path": ".eslintrc.yml",
    "content": "parserOptions:\n  sourceType: script\nenv:\n  es2022: true\n  browser: true\nplugins: ['simple-import-sort', 'react', 'react-hooks']\nsettings:\n  react:\n    version: detect\nextends:\n  - 'eslint:recommended'\n  - 'plugin:import/recommended'\n  - 'plugin:react/recommended'\n  - 'plugin:react/jsx-runtime'\n  - 'plugin:react-hooks/recommended'\nrules:\n  'simple-import-sort/imports': error\n  'simple-import-sort/exports': error\n  'import/no-extraneous-dependencies':\n    [error, { devDependencies: ['**/*.config.{js,ts}', 'tests/**'] }]\noverrides:\n  - files: '**/*.js'\n    env:\n      node: true\n\n  - files: 'tests/**.ts'\n    plugins: ['@typescript-eslint']\n    extends:\n      - 'plugin:playwright/recommended'\n\n  - files: ['**/*.ts', '**/*.tsx']\n    parser: '@typescript-eslint/parser'\n    parserOptions:\n      sourceType: module\n      project: ['tsconfig.json']\n    plugins: ['@typescript-eslint']\n    settings:\n      'import/extensions': ['.ts', '.tsx', '.js']\n    extends:\n      - 'plugin:import/typescript'\n      - 'plugin:@typescript-eslint/strict'\n      - 'plugin:@typescript-eslint/recommended'\n      - 'plugin:@typescript-eslint/recommended-requiring-type-checking'\n    rules:\n      '@typescript-eslint/array-type': [error, { default: generic }]\n      '@typescript-eslint/consistent-indexed-object-style':\n        [error, index-signature]\n      '@typescript-eslint/no-unused-vars':\n        - 'error'\n        - vars: all\n          args: all\n          argsIgnorePattern: '^_'\n          varsIgnorePattern: '^_T'\n\n      # FIXME: remove below rules\n      'react/jsx-key': off\n      'react/no-string-refs': off\n      '@typescript-eslint/no-var-requires': off\n      '@typescript-eslint/no-non-null-assertion': off\n      '@typescript-eslint/no-unnecessary-boolean-literal-compare': off\n      '@typescript-eslint/no-explicit-any': off\n      '@typescript-eslint/dot-notation': off\n      '@typescript-eslint/no-dynamic-delete': off\n      '@typescript-eslint/restrict-plus-operands': off\n      '@typescript-eslint/no-unsafe-call': off\n      '@typescript-eslint/no-unsafe-return': off\n      '@typescript-eslint/no-unsafe-argument': off\n      '@typescript-eslint/no-unsafe-assignment': off\n      '@typescript-eslint/no-unsafe-member-access': off\n      '@typescript-eslint/no-unnecessary-condition': off\n      '@typescript-eslint/restrict-template-expressions': off\n"
  },
  {
    "path": ".github/FUNDING.yml",
    "content": "open_collective: graphql-voyager\n"
  },
  {
    "path": ".github/dependabot.yml",
    "content": "# Please see the documentation for all configuration options:\n# https://docs.github.com/code-security/dependabot/dependabot-version-updates/configuration-options-for-the-dependabot.yml-file\n\nversion: 2\nupdates:\n  - package-ecosystem: 'github-actions'\n    directory: '/'\n    schedule:\n      interval: 'weekly'\n    labels:\n      - 'PR: dependency 📦'\n    groups:\n      major_updates:\n        update-types:\n          - 'major'\n      non_major_updates:\n        update-types:\n          - 'minor'\n          - 'patch'\n"
  },
  {
    "path": ".github/workflows/changelog.yml",
    "content": "name: CI\non: workflow_call\npermissions: {}\njobs:\n  generateChangelog:\n    name: Generate changelog\n    runs-on: ubuntu-latest\n    permissions:\n      contents: read # for actions/checkout\n    steps:\n      - name: Checkout repo\n        uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2\n        with:\n          persist-credentials: false\n          show-progress: false\n          fetch-depth: 0 # fetch all reachable commits\n          filter: tree:0 # while fetching trees and blobs on-demand\n\n      - name: Setup Node.js\n        uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0\n        with:\n          cache: npm\n          node-version-file: 'package.json'\n\n      - name: Install Dependencies\n        run: npm ci --ignore-scripts\n\n      - name: Generate changelog\n        run: npm run changelog > changelog.txt\n        env:\n          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}\n\n      - name: Upload npm folder\n        uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2\n        with:\n          name: changelog\n          path: ./changelog.txt\n"
  },
  {
    "path": ".github/workflows/ci.yml",
    "content": "name: CI\non: workflow_call\npermissions: {}\njobs:\n  test:\n    runs-on: ubuntu-latest\n    permissions:\n      contents: read # for actions/checkout\n    steps:\n      - name: Checkout repo\n        uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2\n        with:\n          persist-credentials: false\n\n      - name: Setup Node.js\n        uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0\n        with:\n          cache: npm\n          node-version-file: 'package.json'\n\n      - name: Install Dependencies\n        run: npm ci --ignore-scripts\n\n      - name: Run tests\n        run: npm run testonly\n\n      - uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2\n        if: always()\n        with:\n          name: playwright-report\n          path: playwright-report/\n\n  lint:\n    name: Lint source files\n    runs-on: ubuntu-latest\n    permissions:\n      contents: read # for actions/checkout\n    steps:\n      - name: Checkout repo\n        uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2\n        with:\n          persist-credentials: false\n\n      - name: Setup Node.js\n        uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0\n        with:\n          cache: npm\n          node-version-file: 'package.json'\n\n      - name: Install Dependencies\n        run: npm ci --ignore-scripts\n\n      - name: Lint ESLint\n        run: npm run lint\n\n      - name: Check Types\n        run: npm run check\n\n      - name: Lint Prettier\n        run: npm run prettier:check\n\n      - name: Spellcheck\n        run: npm run check:spell\n\n      - name: Lint GitHub Actions\n        uses: docker://rhysd/actionlint:latest\n        with:\n          args: -color\n\n      - name: Lint Dockerfiles\n        uses: docker://hadolint/hadolint:latest-alpine\n        with:\n          entrypoint: /bin/sh\n          args: -c \"find . -type f -name 'Dockerfile*' -exec hadolint {} +\"\n\n  checkForCommonlyIgnoredFiles:\n    name: Check for commonly ignored files\n    runs-on: ubuntu-latest\n    permissions:\n      contents: read # for actions/checkout\n    steps:\n      - name: Checkout repo\n        uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2\n        with:\n          persist-credentials: false\n\n      - name: Check if commit contains files that should be ignored\n        run: |\n          git clone --depth 1 https://github.com/github/gitignore.git\n\n          rm gitignore/Global/Images.gitignore\n          rm gitignore/Global/VirtualEnv.gitignore\n          cat gitignore/Node.gitignore gitignore/Global/*.gitignore > all.gitignore\n\n          IGNORED_FILES=$(git ls-files --cached --ignored --exclude-from=all.gitignore)\n          if  [[ \"$IGNORED_FILES\" != \"\" ]]; then\n            echo -e \"::error::Please remove these files:\\n$IGNORED_FILES\" | sed -z 's/\\n/%0A/g'\n            exit 1\n          fi\n\n  checkPackageLock:\n    name: Check health of package-lock.json file\n    runs-on: ubuntu-latest\n    permissions:\n      contents: read # for actions/checkout\n    steps:\n      - name: Checkout repo\n        uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2\n        with:\n          persist-credentials: false\n\n      - name: Setup Node.js\n        uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0\n        with:\n          cache: npm\n          node-version-file: 'package.json'\n\n      - name: Install Dependencies\n        run: npm ci --ignore-scripts\n\n      - name: Check that package-lock.json doesn't have conflicts\n        run: npm ls --depth 999\n\n      - name: Run npm install\n        run: npm install --ignore-scripts --force --package-lock-only --engine-strict --strict-peer-deps\n\n      - name: Check that package-lock.json is in sync with package.json\n        run: git diff --exit-code package-lock.json\n\n  codeql:\n    name: Run CodeQL security scan\n    runs-on: ubuntu-latest\n    permissions:\n      contents: read # for actions/checkout\n      security-events: write # for codeql-action\n    steps:\n      - name: Checkout repo\n        uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2\n        with:\n          persist-credentials: false\n\n      - name: Initialize CodeQL\n        uses: github/codeql-action/init@fca7ace96b7d713c7035871441bd52efbe39e27e # v3.28.19\n        with:\n          languages: 'javascript, typescript' # TODO: add c-cpp\n          queries: security-and-quality\n\n      - name: Perform CodeQL analysis\n        uses: github/codeql-action/analyze@fca7ace96b7d713c7035871441bd52efbe39e27e # v3.28.19\n\n  buildDemo:\n    name: Build Demo\n    runs-on: ubuntu-latest\n    permissions:\n      contents: read # for actions/checkout\n    steps:\n      - name: Checkout repo\n        uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2\n        with:\n          persist-credentials: false\n\n      - name: Setup Node.js\n        uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0\n        with:\n          cache: npm\n          node-version-file: 'package.json'\n\n      - name: Install Dependencies\n        run: npm ci --ignore-scripts\n\n      - name: Build demo\n        run: npm run build:demo\n\n      - name: Upload demo-dist folder\n        uses: actions/upload-pages-artifact@56afc609e74202658d3ffba0e8f6dda462b719fa # v3.0.1\n        with:\n          name: demoDist\n          path: ./demo-dist\n\n  buildRelease:\n    name: Build release\n    runs-on: ubuntu-latest\n    permissions:\n      contents: read # for actions/checkout\n    steps:\n      - name: Checkout repo\n        uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2\n        with:\n          persist-credentials: false\n\n      - name: Setup Node.js\n        uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0\n        with:\n          cache: npm\n          node-version-file: 'package.json'\n\n      - name: Install Dependencies\n        run: npm ci --ignore-scripts\n\n      - name: Build release\n        run: npm run build:release\n\n      - name: Upload npm folder\n        uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2\n        with:\n          name: npmDist\n          path: |\n            ./\n            !./node_modules\n"
  },
  {
    "path": ".github/workflows/publish.yml",
    "content": "name: Publish to NPM\non:\n  push:\n    tags:\n      - 'v[0-9]+.[0-9]+.[0-9]+*'\npermissions: {}\njobs:\n  ci:\n    permissions:\n      contents: read # for actions/checkout\n      security-events: write # for codeql-action\n    uses: ./.github/workflows/ci.yml\n\n  changelog:\n    permissions:\n      contents: read # for actions/checkout\n    uses: ./.github/workflows/changelog.yml\n\n  npm-publish:\n    environment:\n      name: npm-publish\n      url: https://www.npmjs.com/package/graphql-voyager/v/${{github.ref_name}}\n    needs:\n      - ci\n      - changelog\n    permissions:\n      contents: read # for actions/checkout\n    runs-on: ubuntu-latest\n    steps:\n      - name: Checkout repo\n        uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2\n        with:\n          persist-credentials: false\n\n      - name: Setup Node.js\n        uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0\n        with:\n          cache: npm\n          node-version-file: 'package.json'\n          # 'registry-url' is required for 'npm publish'\n          registry-url: 'https://registry.npmjs.org'\n\n      - uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093 # v4.3.0\n        with:\n          name: npmDist\n          path: npmDist\n\n      - name: Publish package on NPM\n        run: npm publish ./npmDist\n        env:\n          NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}\n"
  },
  {
    "path": ".github/workflows/pull_request.yml",
    "content": "name: PullRequest\non: pull_request\npermissions: {}\njobs:\n  ci:\n    permissions:\n      contents: read # for actions/checkout\n      security-events: write # for codeql-action\n    uses: ./.github/workflows/ci.yml\n\n  dependency-review:\n    name: Security check of added dependencies\n    runs-on: ubuntu-latest\n    permissions:\n      contents: read # for actions/checkout\n      pull-requests: write # for actions/dependency-review-action to publish summary\n    steps:\n      - name: Checkout repo\n        uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2\n        with:\n          persist-credentials: false\n\n      - name: Dependency review\n        uses: actions/dependency-review-action@da24556b548a50705dd671f47852072ea4c105d9 # v4.7.1\n        with:\n          comment-summary-in-pr: always\n"
  },
  {
    "path": ".github/workflows/push.yml",
    "content": "name: Push\non: push\npermissions: {}\njobs:\n  ci:\n    permissions:\n      contents: read # for actions/checkout\n      security-events: write # for codeql-action\n    uses: ./.github/workflows/ci.yml\n\n  changelog:\n    permissions:\n      contents: read # for actions/checkout\n    uses: ./.github/workflows/changelog.yml\n\n  deploy-to-gh-pages:\n    name: Deploy to GitHub Pages\n    needs: ci\n    if: github.ref == 'refs/heads/main'\n    environment:\n      name: github-pages\n      url: ${{ steps.deployment.outputs.page_url }}\n    runs-on: ubuntu-latest\n    permissions:\n      pages: write # for actions/deploy-pages\n      id-token: write # for actions/deploy-pages\n    steps:\n      - name: Deploy to GitHub Pages\n        id: deployment\n        uses: actions/deploy-pages@d6db90164ac5ed86f2b6aed7e0febac5b3c0c03e # v4.0.5\n        with:\n          artifact_name: demoDist\n"
  },
  {
    "path": ".github/workflows/scorecard.yml",
    "content": "name: Scorecard supply-chain security\non:\n  # For Branch-Protection check. Only the default branch is supported. See\n  # https://github.com/ossf/scorecard/blob/main/docs/checks.md#branch-protection\n  branch_protection_rule:\n  # To guarantee Maintained check is occasionally updated. See\n  # https://github.com/ossf/scorecard/blob/main/docs/checks.md#maintained\n  schedule:\n    - cron: '24 13 * * 6'\n  push:\n    branches: ['main']\npermissions: read-all\njobs:\n  analysis:\n    name: Scorecard analysis\n    runs-on: ubuntu-latest\n    permissions:\n      contents: read # for actions/checkout\n      actions: read\n      security-events: write # to upload the results to code-scanning dashboard\n      id-token: write # to publish results and get a badge (see publish_results below)\n    steps:\n      - name: 'Checkout code'\n        uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2\n        with:\n          persist-credentials: false\n\n      - name: 'Run analysis'\n        uses: ossf/scorecard-action@05b42c624433fc40578a4040d5cf5e36ddca8cde # v2.4.2\n        with:\n          results_file: results.sarif\n          results_format: sarif\n          publish_results: true\n\n      - name: 'Upload artifact'\n        uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2\n        with:\n          name: SARIF file\n          path: results.sarif\n          retention-days: 5\n\n      - name: \"Upload to GitHub's code-scanning dashboard\"\n        uses: github/codeql-action/upload-sarif@fca7ace96b7d713c7035871441bd52efbe39e27e # v3.28.19\n        with:\n          sarif_file: results.sarif\n"
  },
  {
    "path": ".gitignore",
    "content": "# This .gitignore only ignores files specific to this repository.\n# If you see other files generated by your OS or tools you use, consider\n# creating a global .gitignore file.\n#\n# https://help.github.com/articles/ignoring-files/#create-a-global-gitignore\n# https://www.gitignore.io/\n\n/.eslintcache\n/.cspellcache\n/node_modules\n/dist\n/demo-dist\n/middleware\n/typings\n/test-results\n/playwright-report\n/graphql-voyager-*.tgz\n"
  },
  {
    "path": ".npmignore",
    "content": "*\n!dist/**\n!typings/**\n!package.json\n"
  },
  {
    "path": ".prettierrc",
    "content": "{\n  \"singleQuote\": true,\n  \"overrides\": [\n    {\n      \"files\": \"*.svg\",\n      \"options\": { \"parser\": \"html\" }\n    }\n  ]\n}\n"
  },
  {
    "path": "LICENSE",
    "content": "MIT License\n\nCopyright (c) IvanGoncharov\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n"
  },
  {
    "path": "README.md",
    "content": "# GraphQL Voyager\n\n![graphql-voyager logo](./docs/cover.png)\n\nRepresent any GraphQL API as an interactive graph. It's time to finally see **the graph** behind GraphQL.\nYou can also explore number of public GraphQL APIs from [our list](https://github.com/APIs-guru/graphql-apis).\n\n> With graphql-voyager you can visually explore your GraphQL API as an interactive graph. This is a great tool when designing or discussing your data model. It includes multiple example GraphQL schemas and also allows you to connect it to your own GraphQL endpoint. What are you waiting for, explore your API!\n\n_[GraphQL Weekly #42](https://graphqlweekly.com/issues/42)_\n\n## [Live Demo](https://apis.guru/graphql-voyager/)\n\n[![voyager demo](./docs/demo-gif.gif)](https://apis.guru/graphql-voyager/)\n\n## Features\n\n- Quick navigation on graph\n- Left panel which provides more detailed information about every type\n- \"Skip Relay\" option that simplifies graph by removing Relay wrapper classes\n- Ability to choose any type to be a root of the graph\n\n## API\n\nGraphQL Voyager exports `Voyager` React component and helper `init` function. If used without\nmodule system it is exported as `GraphQLVoyager` global variable.\n\n### Properties\n\n`Voyager` component accepts the following properties:\n\n- `introspection` [`object`] - the server introspection response. If `function` is provided GraphQL Voyager will pass introspection query as a first function parameter. Function should return `Promise` which resolves to introspection response object.\n- `displayOptions` _(optional)_\n  - `displayOptions.skipRelay` [`boolean`, default `true`] - skip relay-related entities\n  - `displayOptions.skipDeprecated` [`boolean`, default `true`] - skip deprecated fields and entities that contain only deprecated fields.\n  - `displayOptions.rootType` [`string`] - name of the type to be used as a root\n  - `displayOptions.sortByAlphabet` [`boolean`, default `false`] - sort fields on graph by alphabet\n  - `displayOptions.showLeafFields` [`boolean`, default `true`] - show all scalars and enums\n  - `displayOptions.hideRoot` [`boolean`, default `false`] - hide the root type\n- `allowToChangeSchema` [`boolean`, default `false`] - allow users to change schema\n- `hideDocs` [`boolean`, default `false`] - hide the docs sidebar\n- `hideSettings` [`boolean`, default `false`] - hide settings panel\n- `hideVoyagerLogo` [`boolean`, default `true`] - hide voyager logo\n\n## Using pre-bundled version\n\nYou can get GraphQL Voyager bundle from the following places:\n\n- [![jsDelivr](https://data.jsdelivr.com/v1/package/npm/graphql-voyager/badge)](https://www.jsdelivr.com/package/npm/graphql-voyager)\n  - some exact version - https://cdn.jsdelivr.net/npm/graphql-voyager@1.3/dist/voyager.standalone.js\n  - latest version - https://cdn.jsdelivr.net/npm/graphql-voyager/dist/voyager.standalone.js\n- from `dist` folder of the npm package `graphql-voyager`\n\n**Note: `voyager.standalone.js` is bundled with react, so you just need to call\n`renderVoyager` function that's it.**\n\n### [HTML example](./example/cdn)\n\n## Using as a dependency\n\nBuild for the web with [webpack](https://webpack.js.org/), or any other bundle.\n\n### [Webpack example](./example/webpack)\n\n## Middleware\n\nGraphQL Voyager has middleware for the next frameworks:\n\n### Properties\n\nMiddleware supports the following properties:\n\n- `endpointUrl` [`string`] - the GraphQL endpoint url.\n- `displayOptions` [`object`] - same as [here](#properties)\n- `headersJS` [`string`, default `\"{}\"`] - object of headers serialized in string to be used on endpoint url<BR>\n  **Note:** You can also use any JS expression which results in an object with header names as keys and strings as values e.g. `{ Authorization: localStorage['Meteor.loginToken'] }`\n\n### Express\n\n```js\nimport express from 'express';\nimport { express as voyagerMiddleware } from 'graphql-voyager/middleware';\n\nconst app = express();\n\napp.use('/voyager', voyagerMiddleware({ endpointUrl: '/graphql' }));\n\napp.listen(3001);\n```\n\n### Hapi\n\n#### Version 20+\n\n```js\nimport Hapi from '@hapi/hapi';\nimport { hapi as voyagerMiddleware } from 'graphql-voyager/middleware';\n\nconst server = new Hapi.Server({\n  port: 3001,\n});\n\nconst init = async () => {\n  await server.register({\n    plugin: voyagerMiddleware,\n    options: {\n      path: '/voyager',\n      endpointUrl: '/graphql',\n    },\n  });\n\n  await server.start();\n};\n\ninit();\n```\n\n### Koa\n\n```js\nimport Koa from 'koa';\nimport KoaRouter from 'koa-router';\nimport { koa as voyagerMiddleware } from 'graphql-voyager/middleware';\n\nconst app = new Koa();\nconst router = new KoaRouter();\n\nrouter.all(\n  '/voyager',\n  voyagerMiddleware({\n    endpointUrl: '/graphql',\n  }),\n);\n\napp.use(router.routes());\napp.use(router.allowedMethods());\napp.listen(3001);\n```\n\n## Credits\n\nThis tool is inspired by [graphql-visualizer](https://github.com/NathanRSmith/graphql-visualizer) project.\n\nThis project is tested with BrowserStack.\n"
  },
  {
    "path": "cspell.yml",
    "content": "language: en\nuseGitignore: true\nvalidateDirectives: true\nignorePaths:\n  # Excluded from spelling check\n  - cspell.yml\n  - package.json\n  - demo/presets\n  - tests/*-snapshots/\ndictionaries:\n  - html\n\noverrides:\n  - filename: '**/*.svg'\n    dictionaries:\n      - css\n  - filename: 'tests/*.ts'\n    words:\n      - pageerror\n      - requestfailed\n\nwords:\n  - tailport\n  - dotviz\n  - graphviz\n  - svgr\n  - reactroot # FIXME https://github.com/facebook/react/issues/10971\n  - zoomer # FIXME\n  - typelist # FIXME\n  - positionals\n  - fontname\n  - rankdir\n  - asynciterable\n  - commonmark\n  - swapi\n  - cssnext\n  - ranksep\n  - CELLBORDER\n  - QLID # GraphQLID\n  - Goncharov\n  - octo\n  - octocat\n  - pageview\n  - jsdelivr\n  - GraphiQL\n"
  },
  {
    "path": "demo/index.html",
    "content": "<!doctype html>\n<html>\n  <head itemscope itemtype=\"http://schema.org/WebPage\">\n    <!-- <link href=\"style.css\" rel=\"stylesheet\" /> -->\n    <meta charset=\"utf-8\" />\n    <meta\n      name=\"viewport\"\n      content=\"user-scalable=no, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0\"\n    />\n    <title>GraphQL Voyager</title>\n    <meta itemprop=\"name\" property=\"og:title\" content=\"GraphQL Voyager\" />\n    <meta\n      property=\"og:description\"\n      content=\"Represent any GraphQL API as an interactive graph\"\n    />\n    <meta\n      itemprop=\"description\"\n      name=\"description\"\n      content=\"Represent any GraphQL API as an interactive graph\"\n    />\n    <link\n      rel=\"icon\"\n      type=\"image/png\"\n      sizes=\"32x32\"\n      href=\"icons/favicon-32x32.png\"\n    />\n    <link\n      rel=\"icon\"\n      type=\"image/png\"\n      sizes=\"96x96\"\n      href=\"icons/favicon-96x96.png\"\n    />\n    <link\n      rel=\"icon\"\n      type=\"image/png\"\n      sizes=\"16x16\"\n      href=\"icons/favicon-16x16.png\"\n    />\n    <meta itemprop=\"image\" property=\"og:type\" content=\"website\" />\n    <meta\n      itemprop=\"image\"\n      property=\"og:url\"\n      content=\"https://apis.guru/graphql-voyager/\"\n    />\n    <meta\n      itemprop=\"image\"\n      property=\"og:image\"\n      content=\"https://apis.guru/graphql-voyager/images/cover-image.png\"\n    />\n    <meta name=\"theme-color\" content=\"#ffffff\" />\n    <style>\n      body {\n        padding: 0;\n        margin: 0;\n        width: 100%;\n        height: 100vh;\n        overflow: hidden;\n      }\n\n      #root {\n        height: 100%;\n        position: relative;\n      }\n\n      #mobile-warning {\n        display: none;\n      }\n\n      #mobile-warning.hidden {\n        display: none;\n      }\n\n      @media screen and (max-width: 767px) {\n        #mobile-warning {\n          display: block;\n\n          position: absolute;\n          left: 0;\n          right: 0;\n          top: 0;\n          bottom: 0;\n          background: rgba(255, 255, 255, 0.9);\n          color: #0b2840;\n          z-index: 100;\n          padding: 20px;\n          text-align: center;\n          display: flex;\n          flex-direction: column;\n          justify-content: center;\n        }\n\n        #mobile-warning small {\n          font-size: 1em;\n        }\n\n        #mobile-warning h1 {\n          line-height: 1;\n        }\n\n        #mobile-warning a {\n          display: block;\n          text-decoration: none;\n          margin: 1em 0;\n          font-weight: bold;\n          font-size: 1.4em;\n          color: #42a0dd;\n        }\n      }\n    </style>\n    <link rel=\"stylesheet\" href=\"./voyager.css\" />\n    <script src=\"./voyager.standalone.js\"></script>\n  </head>\n  <body>\n    <script type=\"module\">\n      // FIXME: switch to import\n      const { renderVoyager, voyagerIntrospectionQuery } = GraphQLVoyager;\n      const PRESETS = {\n        'Star Wars': await fetchPreset('swapi'),\n        Yelp: await fetchPreset('yelp'),\n        'Shopify Storefront': await fetchPreset('shopify'),\n        GitHub: await fetchPreset('github'),\n      };\n\n      const defaultPreset = PRESETS['Star Wars'];\n\n      const searchParams = new URLSearchParams(window.location.search);\n      const url = searchParams.get('url');\n      const withCredentials = searchParams.get('withCredentials');\n\n      const introspection =\n        url != null ? fetchIntrospection(url, withCredentials) : defaultPreset;\n\n      renderVoyager(document.getElementById('root'), {\n        introspection,\n        introspectionPresets: PRESETS,\n        allowToChangeSchema: true,\n        hideVoyagerLogo: false,\n      });\n\n      async function fetchPreset(name) {\n        const response = await fetch(`./presets/${name}_introspection.json`);\n        return response.json();\n      }\n\n      async function fetchIntrospection(url, withCredentials) {\n        const response = await fetch(url, {\n          method: 'post',\n          headers: {\n            Accept: 'application/json',\n            'Content-Type': 'application/json',\n          },\n          body: JSON.stringify({ query: voyagerIntrospectionQuery }),\n          ...(withCredentials === 'true'\n            ? { credentials: 'include', mode: 'cors' }\n            : {}),\n        });\n        return response.json();\n      }\n    </script>\n    <main id=\"root\">\n      <h1 style=\"text-align: center; color: #5d7e86\">Loading...</h1>\n    </main>\n    <a\n      href=\"https://github.com/APIs-guru/graphql-voyager\"\n      class=\"github-corner\"\n      aria-label=\"View source on Github\"\n      ><svg\n        width=\"80\"\n        height=\"80\"\n        viewBox=\"0 0 250 250\"\n        style=\"\n          fill: #5d7e86;\n          color: #fff;\n          position: absolute;\n          top: 0;\n          border: 0;\n          right: 0;\n        \"\n        aria-hidden=\"true\"\n      >\n        <path d=\"M0,0 L115,115 L130,115 L142,142 L250,250 L250,0 Z\"></path>\n        <path\n          d=\"M128.3,109.0 C113.8,99.7 119.0,89.6 119.0,89.6 C122.0,82.7 120.5,78.6 120.5,78.6 C119.2,72.0 123.4,76.3 123.4,76.3 C127.3,80.9 125.5,87.3 125.5,87.3 C122.9,97.6 130.6,101.9 134.4,103.2\"\n          fill=\"currentColor\"\n          style=\"transform-origin: 130px 106px\"\n          class=\"octo-arm\"\n        ></path>\n        <path\n          d=\"M115.0,115.0 C114.9,115.1 118.7,116.5 119.8,115.4 L133.7,101.6 C136.9,99.2 139.9,98.4 142.2,98.6 C133.8,88.0 127.5,74.4 143.8,58.0 C148.5,53.4 154.0,51.2 159.7,51.0 C160.3,49.4 163.2,43.6 171.4,40.1 C171.4,40.1 176.1,42.5 178.8,56.2 C183.1,58.6 187.2,61.8 190.9,65.4 C194.5,69.0 197.7,73.2 200.1,77.6 C213.8,80.2 216.3,84.9 216.3,84.9 C212.7,93.1 206.9,96.0 205.4,96.6 C205.1,102.4 203.0,107.8 198.3,112.5 C181.9,128.9 168.3,122.5 157.7,114.1 C157.9,116.9 156.7,120.9 152.7,124.9 L141.0,136.5 C139.8,137.7 141.6,141.9 141.8,141.8 Z\"\n          fill=\"currentColor\"\n          class=\"octo-body\"\n        ></path></svg></a\n    ><style>\n      .github-corner:hover .octo-arm {\n        animation: octocat-wave 560ms ease-in-out;\n      }\n      @keyframes octocat-wave {\n        0%,\n        100% {\n          transform: rotate(0);\n        }\n        20%,\n        60% {\n          transform: rotate(-25deg);\n        }\n        40%,\n        80% {\n          transform: rotate(10deg);\n        }\n      }\n      @media (max-width: 500px) {\n        .github-corner:hover .octo-arm {\n          animation: none;\n        }\n        .github-corner .octo-arm {\n          animation: octocat-wave 560ms ease-in-out;\n        }\n      }\n    </style>\n    <div id=\"mobile-warning\">\n      <h1>Best served on bigger screen sizes</h1>\n      <small>\n        This tool presents complex graphs. Use it on bigger screen size for\n        better experience\n      </small>\n      <a id=\"skip_warning\" href=\"#\"> GOT IT </a>\n    </div>\n    <script>\n      var skipBtn = document.getElementById('skip_warning');\n      var warning = document.getElementById('mobile-warning');\n      if (document.cookie.indexOf('skip_mobile_warning=true') > -1) {\n        warning.classList.add('hidden');\n      } else {\n        var handler = function () {\n          warning.classList.add('hidden');\n          document.cookie =\n            'skip_mobile_warning=true; expires=Fri, 31 Dec 9999 23:59:59 GMT';\n        };\n        skipBtn.addEventListener('touchstart', handler, false);\n        skipBtn.addEventListener('click', handler, false);\n      }\n    </script>\n  </body>\n</html>\n"
  },
  {
    "path": "demo/presets/github_introspection.json",
    "content": "{\n  \"data\": {\n    \"__schema\": {\n      \"queryType\": {\n        \"name\": \"Query\"\n      },\n      \"mutationType\": {\n        \"name\": \"Mutation\"\n      },\n      \"subscriptionType\": null,\n      \"types\": [\n        {\n          \"kind\": \"ENUM\",\n          \"name\": \"DeploymentState\",\n          \"description\": \"The possible deployment states.\",\n          \"fields\": null,\n          \"inputFields\": null,\n          \"interfaces\": null,\n          \"enumValues\": [\n            {\n              \"name\": \"PENDING\",\n              \"description\": \"The deployment is pending.\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"SUCCESS\",\n              \"description\": \"The deployment was successful.\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"FAILURE\",\n              \"description\": \"The deployment has failed.\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"INACTIVE\",\n              \"description\": \"The deployment is inactive.\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"ERROR\",\n              \"description\": \"The deployment experienced an error.\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"ENUM\",\n          \"name\": \"IssueEventType\",\n          \"description\": \"The possible issue event types.\",\n          \"fields\": null,\n          \"inputFields\": null,\n          \"interfaces\": null,\n          \"enumValues\": [\n            {\n              \"name\": \"ASSIGNED\",\n              \"description\": \"The issue was assigned to the actor.\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"BASE_REF_FORCE_PUSHED\",\n              \"description\": \"The base branch was force pushed by the actor.\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"CLOSED\",\n              \"description\": \"The issue was closed by the actor.\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"DEMILESTONED\",\n              \"description\": \"The issue had a milestone removed from it.\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"DEPLOYED\",\n              \"description\": \"The branch was deployed by the actor.\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"HEAD_REF_DELETED\",\n              \"description\": \"The head branch was deleted by the actor.\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"HEAD_REF_FORCE_PUSHED\",\n              \"description\": \"The head branch was force pushed by the actor.\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"HEAD_REF_RESTORED\",\n              \"description\": \"The head branch was restored by the actor.\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"LABELED\",\n              \"description\": \"A label was added to the issue.\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"LOCKED\",\n              \"description\": \"The issue was locked by the actor.\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"MENTIONED\",\n              \"description\": \"The pull request or issue was mentioned by the actor.\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"MERGED\",\n              \"description\": \"The issue was merged by the actor.\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"MILESTONED\",\n              \"description\": \"The issue had a milestone added to it.\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"REFERENCED\",\n              \"description\": \"The issue was referenced from a commit message.\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"RENAMED\",\n              \"description\": \"The issue's title was changed.\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"REOPENED\",\n              \"description\": \"The issue was reopened by the actor.\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"REVIEW_REQUESTED\",\n              \"description\": \"The actor requested review from the subject.\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"REVIEW_REQUEST_REMOVED\",\n              \"description\": \"The actor removed the review request for the subject.\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"REVIEW_DISMISSED\",\n              \"description\": \"The review was dismissed by the actor.\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"SUBSCRIBED\",\n              \"description\": \"The pull request or issue was subscribed to by the actor.\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"UNASSIGNED\",\n              \"description\": \"The issue was unassigned to the actor.\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"UNLABELED\",\n              \"description\": \"A label was removed from the issue.\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"UNLOCKED\",\n              \"description\": \"The issue was unlocked by the actor.\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"UNSUBSCRIBED\",\n              \"description\": \"The pull request or issue was unsubscribed from by the actor.\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"ENUM\",\n          \"name\": \"ReactionOrderField\",\n          \"description\": \"A list of fields that reactions can be ordered by.\",\n          \"fields\": null,\n          \"inputFields\": null,\n          \"interfaces\": null,\n          \"enumValues\": [\n            {\n              \"name\": \"CREATED_AT\",\n              \"description\": \"Allows ordering a list of reactions by when they were created.\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"INTERFACE\",\n          \"name\": \"IssueEvent\",\n          \"description\": \"Represents an issue event.\",\n          \"fields\": [\n            {\n              \"name\": \"actor\",\n              \"description\": \"Identifies the actor (user) associated with the event.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"User\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"createdAt\",\n              \"description\": \"Identifies the date and time when the object was created.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"DateTime\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"issue\",\n              \"description\": \"Identifies the issue associated with the event.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"Issue\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"repository\",\n              \"description\": \"Identifies the repository associated with the event.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"Repository\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"type\",\n              \"description\": \"Identifies the event type associated with the event.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"ENUM\",\n                  \"name\": \"IssueEventType\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"inputFields\": null,\n          \"interfaces\": null,\n          \"enumValues\": null,\n          \"possibleTypes\": [\n            {\n              \"kind\": \"OBJECT\",\n              \"name\": \"AssignedEvent\",\n              \"ofType\": null\n            },\n            {\n              \"kind\": \"OBJECT\",\n              \"name\": \"BaseRefForcePushedEvent\",\n              \"ofType\": null\n            },\n            {\n              \"kind\": \"OBJECT\",\n              \"name\": \"ClosedEvent\",\n              \"ofType\": null\n            },\n            {\n              \"kind\": \"OBJECT\",\n              \"name\": \"DemilestonedEvent\",\n              \"ofType\": null\n            },\n            {\n              \"kind\": \"OBJECT\",\n              \"name\": \"DeployedEvent\",\n              \"ofType\": null\n            },\n            {\n              \"kind\": \"OBJECT\",\n              \"name\": \"HeadRefDeletedEvent\",\n              \"ofType\": null\n            },\n            {\n              \"kind\": \"OBJECT\",\n              \"name\": \"HeadRefForcePushedEvent\",\n              \"ofType\": null\n            },\n            {\n              \"kind\": \"OBJECT\",\n              \"name\": \"HeadRefRestoredEvent\",\n              \"ofType\": null\n            },\n            {\n              \"kind\": \"OBJECT\",\n              \"name\": \"LabeledEvent\",\n              \"ofType\": null\n            },\n            {\n              \"kind\": \"OBJECT\",\n              \"name\": \"LockedEvent\",\n              \"ofType\": null\n            },\n            {\n              \"kind\": \"OBJECT\",\n              \"name\": \"MentionedEvent\",\n              \"ofType\": null\n            },\n            {\n              \"kind\": \"OBJECT\",\n              \"name\": \"MergedEvent\",\n              \"ofType\": null\n            },\n            {\n              \"kind\": \"OBJECT\",\n              \"name\": \"MilestonedEvent\",\n              \"ofType\": null\n            },\n            {\n              \"kind\": \"OBJECT\",\n              \"name\": \"ReferencedEvent\",\n              \"ofType\": null\n            },\n            {\n              \"kind\": \"OBJECT\",\n              \"name\": \"RenamedEvent\",\n              \"ofType\": null\n            },\n            {\n              \"kind\": \"OBJECT\",\n              \"name\": \"ReopenedEvent\",\n              \"ofType\": null\n            },\n            {\n              \"kind\": \"OBJECT\",\n              \"name\": \"ReviewDismissedEvent\",\n              \"ofType\": null\n            },\n            {\n              \"kind\": \"OBJECT\",\n              \"name\": \"ReviewRequestRemovedEvent\",\n              \"ofType\": null\n            },\n            {\n              \"kind\": \"OBJECT\",\n              \"name\": \"ReviewRequestedEvent\",\n              \"ofType\": null\n            },\n            {\n              \"kind\": \"OBJECT\",\n              \"name\": \"SubscribedEvent\",\n              \"ofType\": null\n            },\n            {\n              \"kind\": \"OBJECT\",\n              \"name\": \"UnassignedEvent\",\n              \"ofType\": null\n            },\n            {\n              \"kind\": \"OBJECT\",\n              \"name\": \"UnlabeledEvent\",\n              \"ofType\": null\n            },\n            {\n              \"kind\": \"OBJECT\",\n              \"name\": \"UnlockedEvent\",\n              \"ofType\": null\n            },\n            {\n              \"kind\": \"OBJECT\",\n              \"name\": \"UnsubscribedEvent\",\n              \"ofType\": null\n            }\n          ]\n        },\n        {\n          \"kind\": \"OBJECT\",\n          \"name\": \"Issue\",\n          \"description\": \"An Issue is a place to discuss ideas, enhancements, tasks, and bugs for a project.\",\n          \"fields\": [\n            {\n              \"name\": \"assignees\",\n              \"description\": \"A list of Users assigned to the Issue.\",\n              \"args\": [\n                {\n                  \"name\": \"first\",\n                  \"description\": \"Returns the first _n_ elements from the list.\",\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"Int\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"after\",\n                  \"description\": \"Returns the elements in the list that come after the specified global ID.\",\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"String\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"last\",\n                  \"description\": \"Returns the last _n_ elements from the list.\",\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"Int\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"before\",\n                  \"description\": \"Returns the elements in the list that come before the specified global ID.\",\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"String\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                }\n              ],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"UserConnection\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"author\",\n              \"description\": \"Identifies the author of the issue.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"OBJECT\",\n                \"name\": \"User\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"body\",\n              \"description\": \"Identifies the body of the issue.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"String\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"bodyHTML\",\n              \"description\": \"Identifies the body of the issue rendered to HTML.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"HTML\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"bodyText\",\n              \"description\": \"Identifies the body of the issue rendered to text.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"String\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"comments\",\n              \"description\": \"A list of comments associated with the Issue.\",\n              \"args\": [\n                {\n                  \"name\": \"first\",\n                  \"description\": \"Returns the first _n_ elements from the list.\",\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"Int\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"after\",\n                  \"description\": \"Returns the elements in the list that come after the specified global ID.\",\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"String\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"last\",\n                  \"description\": \"Returns the last _n_ elements from the list.\",\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"Int\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"before\",\n                  \"description\": \"Returns the elements in the list that come before the specified global ID.\",\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"String\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                }\n              ],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"IssueCommentConnection\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"createdAt\",\n              \"description\": \"Identifies the date and time when the object was created.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"DateTime\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"createdViaEmail\",\n              \"description\": \"Check if this comment was created via an email reply.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"Boolean\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"databaseId\",\n              \"description\": \"Identifies the primary key from the database.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"Int\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": true,\n              \"deprecationReason\": \"Exposed database IDs will eventually be removed in favor of global Relay IDs.\"\n            },\n            {\n              \"name\": \"editor\",\n              \"description\": \"The user who edited the comment.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"OBJECT\",\n                \"name\": \"User\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"id\",\n              \"description\": null,\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"ID\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"labels\",\n              \"description\": \"A list of labels associated with the Issue or Pull Request.\",\n              \"args\": [\n                {\n                  \"name\": \"first\",\n                  \"description\": \"Returns the first _n_ elements from the list.\",\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"Int\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"after\",\n                  \"description\": \"Returns the elements in the list that come after the specified global ID.\",\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"String\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"last\",\n                  \"description\": \"Returns the last _n_ elements from the list.\",\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"Int\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"before\",\n                  \"description\": \"Returns the elements in the list that come before the specified global ID.\",\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"String\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                }\n              ],\n              \"type\": {\n                \"kind\": \"OBJECT\",\n                \"name\": \"LabelConnection\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"lastEditedAt\",\n              \"description\": \"The moment the editor made the last edit\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"DateTime\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"liveReactionUpdatesEnabled\",\n              \"description\": \"Are reaction live updates enabled for this subject.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"Boolean\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"milestone\",\n              \"description\": \"Identifies the milestone associated with the issue.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"OBJECT\",\n                \"name\": \"Milestone\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"number\",\n              \"description\": \"Identifies the issue number.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"Int\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"participants\",\n              \"description\": \"A list of Users that are participating in the Issue's conversation.\",\n              \"args\": [\n                {\n                  \"name\": \"first\",\n                  \"description\": \"Returns the first _n_ elements from the list.\",\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"Int\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"after\",\n                  \"description\": \"Returns the elements in the list that come after the specified global ID.\",\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"String\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"last\",\n                  \"description\": \"Returns the last _n_ elements from the list.\",\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"Int\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"before\",\n                  \"description\": \"Returns the elements in the list that come before the specified global ID.\",\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"String\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                }\n              ],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"UserConnection\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"path\",\n              \"description\": \"The HTTP path for this issue\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"URI\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"reactionGroups\",\n              \"description\": \"A list of reactions grouped by content left on the subject.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"LIST\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"NON_NULL\",\n                  \"name\": null,\n                  \"ofType\": {\n                    \"kind\": \"OBJECT\",\n                    \"name\": \"ReactionGroup\",\n                    \"ofType\": null\n                  }\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"reactions\",\n              \"description\": \"A list of Reactions left on the Issue.\",\n              \"args\": [\n                {\n                  \"name\": \"first\",\n                  \"description\": \"Returns the first _n_ elements from the list.\",\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"Int\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"after\",\n                  \"description\": \"Returns the elements in the list that come after the specified global ID.\",\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"String\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"last\",\n                  \"description\": \"Returns the last _n_ elements from the list.\",\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"Int\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"before\",\n                  \"description\": \"Returns the elements in the list that come before the specified global ID.\",\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"String\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"content\",\n                  \"description\": \"Allows filtering Reactions by emoji.\",\n                  \"type\": {\n                    \"kind\": \"ENUM\",\n                    \"name\": \"ReactionContent\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"orderBy\",\n                  \"description\": \"Allows specifying the order in which reactions are returned.\",\n                  \"type\": {\n                    \"kind\": \"INPUT_OBJECT\",\n                    \"name\": \"ReactionOrder\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                }\n              ],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"ReactionConnection\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"reactionsWebsocket\",\n              \"description\": \"The websocket channel ID for reaction live updates.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"String\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"repository\",\n              \"description\": \"Identifies the repository associated with the issue.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"Repository\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"state\",\n              \"description\": \"Identifies the state of the issue.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"ENUM\",\n                  \"name\": \"IssueState\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"timeline\",\n              \"description\": \"A list of events associated with an Issue or PullRequest.\",\n              \"args\": [\n                {\n                  \"name\": \"first\",\n                  \"description\": \"Returns the first _n_ elements from the list.\",\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"Int\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"after\",\n                  \"description\": \"Returns the elements in the list that come after the specified global ID.\",\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"String\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"last\",\n                  \"description\": \"Returns the last _n_ elements from the list.\",\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"Int\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"before\",\n                  \"description\": \"Returns the elements in the list that come before the specified global ID.\",\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"String\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"since\",\n                  \"description\": \"Allows filtering timeline events by a `since` timestamp.\",\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"String\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                }\n              ],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"IssueTimelineConnection\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"title\",\n              \"description\": \"Identifies the issue title.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"String\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"updatedAt\",\n              \"description\": \"Identifies the date and time when the object was last updated.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"DateTime\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"url\",\n              \"description\": \"The HTTP url for this issue\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"URI\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"viewerCanDelete\",\n              \"description\": \"Check if the current viewer can delete this issue.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"Boolean\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"viewerCanEdit\",\n              \"description\": \"Check if the current viewer edit this comment.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"Boolean\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"viewerCanReact\",\n              \"description\": \"Can user react to this subject\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"Boolean\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"viewerCannotEditReasons\",\n              \"description\": \"Errors why the current viewer can not edit this comment.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"LIST\",\n                  \"name\": null,\n                  \"ofType\": {\n                    \"kind\": \"NON_NULL\",\n                    \"name\": null,\n                    \"ofType\": {\n                      \"kind\": \"ENUM\",\n                      \"name\": \"CommentCannotEditReason\",\n                      \"ofType\": null\n                    }\n                  }\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"viewerDidAuthor\",\n              \"description\": \"Did the viewer author this comment.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"Boolean\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"websocket\",\n              \"description\": \"The websocket channel ID for live updates.\",\n              \"args\": [\n                {\n                  \"name\": \"channel\",\n                  \"description\": \"The channel to use.\",\n                  \"type\": {\n                    \"kind\": \"NON_NULL\",\n                    \"name\": null,\n                    \"ofType\": {\n                      \"kind\": \"ENUM\",\n                      \"name\": \"IssuePubSubTopic\",\n                      \"ofType\": null\n                    }\n                  },\n                  \"defaultValue\": null\n                }\n              ],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"String\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"inputFields\": null,\n          \"interfaces\": [\n            {\n              \"kind\": \"INTERFACE\",\n              \"name\": \"Node\",\n              \"ofType\": null\n            },\n            {\n              \"kind\": \"INTERFACE\",\n              \"name\": \"Comment\",\n              \"ofType\": null\n            },\n            {\n              \"kind\": \"INTERFACE\",\n              \"name\": \"Issueish\",\n              \"ofType\": null\n            },\n            {\n              \"kind\": \"INTERFACE\",\n              \"name\": \"Reactable\",\n              \"ofType\": null\n            },\n            {\n              \"kind\": \"INTERFACE\",\n              \"name\": \"RepositoryNode\",\n              \"ofType\": null\n            },\n            {\n              \"kind\": \"INTERFACE\",\n              \"name\": \"Timeline\",\n              \"ofType\": null\n            },\n            {\n              \"kind\": \"INTERFACE\",\n              \"name\": \"UniformResourceLocatable\",\n              \"ofType\": null\n            }\n          ],\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"SCALAR\",\n          \"name\": \"ID\",\n          \"description\": \"Represents a unique identifier that is Base64 obfuscated. It is often used to refetch an object or as key for a cache. The ID type appears in a JSON response as a String; however, it is not intended to be human-readable. When expected as an input type, any string (such as `\\\"VXNlci0xMA==\\\"`) or integer (such as `4`) input value will be accepted as an ID.\",\n          \"fields\": null,\n          \"inputFields\": null,\n          \"interfaces\": null,\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"OBJECT\",\n          \"name\": \"User\",\n          \"description\": \"A user is an individual's account on GitHub that owns repositories and can make new content.\",\n          \"fields\": [\n            {\n              \"name\": \"avatarURL\",\n              \"description\": \"A URL pointing to the user's public avatar.\",\n              \"args\": [\n                {\n                  \"name\": \"size\",\n                  \"description\": \"The size of the resulting square image.\",\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"Int\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                }\n              ],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"String\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"bio\",\n              \"description\": \"The user's public profile bio.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"String\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"bioHTML\",\n              \"description\": \"The user's public profile bio as HTML.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"HTML\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"company\",\n              \"description\": \"The user's public profile company.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"String\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"companyHTML\",\n              \"description\": \"The user's public profile company as HTML.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"HTML\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"contributedRepositories\",\n              \"description\": \"A list of repositories that the user recently contributed to.\",\n              \"args\": [\n                {\n                  \"name\": \"first\",\n                  \"description\": \"Returns the first _n_ elements from the list.\",\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"Int\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"after\",\n                  \"description\": \"Returns the elements in the list that come after the specified global ID.\",\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"String\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"last\",\n                  \"description\": \"Returns the last _n_ elements from the list.\",\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"Int\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"before\",\n                  \"description\": \"Returns the elements in the list that come before the specified global ID.\",\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"String\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                }\n              ],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"RepositoryConnection\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"createdAt\",\n              \"description\": \"Identifies the date and time when the object was created.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"DateTime\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"databaseId\",\n              \"description\": \"Identifies the primary key from the database.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"Int\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": true,\n              \"deprecationReason\": \"Exposed database IDs will eventually be removed in favor of global Relay IDs.\"\n            },\n            {\n              \"name\": \"email\",\n              \"description\": \"The user's public profile email.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"String\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"followers\",\n              \"description\": \"A list of users the given user is followed by.\",\n              \"args\": [\n                {\n                  \"name\": \"first\",\n                  \"description\": \"Returns the first _n_ elements from the list.\",\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"Int\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"after\",\n                  \"description\": \"Returns the elements in the list that come after the specified global ID.\",\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"String\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"last\",\n                  \"description\": \"Returns the last _n_ elements from the list.\",\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"Int\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"before\",\n                  \"description\": \"Returns the elements in the list that come before the specified global ID.\",\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"String\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                }\n              ],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"UserConnection\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"following\",\n              \"description\": \"A list of users the given user is following.\",\n              \"args\": [\n                {\n                  \"name\": \"first\",\n                  \"description\": \"Returns the first _n_ elements from the list.\",\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"Int\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"after\",\n                  \"description\": \"Returns the elements in the list that come after the specified global ID.\",\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"String\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"last\",\n                  \"description\": \"Returns the last _n_ elements from the list.\",\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"Int\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"before\",\n                  \"description\": \"Returns the elements in the list that come before the specified global ID.\",\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"String\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                }\n              ],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"UserConnection\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"gist\",\n              \"description\": \"Find gist by repo name.\",\n              \"args\": [\n                {\n                  \"name\": \"name\",\n                  \"description\": \"The gist name to find.\",\n                  \"type\": {\n                    \"kind\": \"NON_NULL\",\n                    \"name\": null,\n                    \"ofType\": {\n                      \"kind\": \"SCALAR\",\n                      \"name\": \"String\",\n                      \"ofType\": null\n                    }\n                  },\n                  \"defaultValue\": null\n                }\n              ],\n              \"type\": {\n                \"kind\": \"OBJECT\",\n                \"name\": \"Gist\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"gists\",\n              \"description\": \"A list of the Gists the user has created.\",\n              \"args\": [\n                {\n                  \"name\": \"first\",\n                  \"description\": \"Returns the first _n_ elements from the list.\",\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"Int\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"after\",\n                  \"description\": \"Returns the elements in the list that come after the specified global ID.\",\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"String\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"last\",\n                  \"description\": \"Returns the last _n_ elements from the list.\",\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"Int\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"before\",\n                  \"description\": \"Returns the elements in the list that come before the specified global ID.\",\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"String\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"visibility\",\n                  \"description\": \"Allows filtering by gist visibility.\",\n                  \"type\": {\n                    \"kind\": \"ENUM\",\n                    \"name\": \"GistVisibility\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                }\n              ],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"GistConnection\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"id\",\n              \"description\": null,\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"ID\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"isBountyHunter\",\n              \"description\": \"Whether or not this user is a participant in the GitHub Security Bug Bounty.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"Boolean\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"isDeveloperProgramMember\",\n              \"description\": \"Whether or not this user is a GitHub Developer Program member.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"Boolean\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"isEmployee\",\n              \"description\": \"Whether or not this user is a GitHub employee.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"Boolean\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"isHireable\",\n              \"description\": \"Whether or not the user has marked themselves as for hire.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"Boolean\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"isSiteAdmin\",\n              \"description\": \"Whether or not this user is a site administrator.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"Boolean\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"isViewer\",\n              \"description\": \"Whether or not this user is the viewing user.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"Boolean\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"location\",\n              \"description\": \"The user's public profile location.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"String\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"login\",\n              \"description\": \"The username used to login.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"String\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"name\",\n              \"description\": \"The user's public profile name.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"String\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"organizations\",\n              \"description\": \"A list of organizations the user belongs to.\",\n              \"args\": [\n                {\n                  \"name\": \"first\",\n                  \"description\": \"Returns the first _n_ elements from the list.\",\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"Int\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"after\",\n                  \"description\": \"Returns the elements in the list that come after the specified global ID.\",\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"String\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"last\",\n                  \"description\": \"Returns the last _n_ elements from the list.\",\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"Int\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"before\",\n                  \"description\": \"Returns the elements in the list that come before the specified global ID.\",\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"String\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                }\n              ],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"OrganizationConnection\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"path\",\n              \"description\": \"The HTTP path for this user\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"URI\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"pinnedRepositories\",\n              \"description\": \"A list of repositories this user has pinned to their profile\",\n              \"args\": [\n                {\n                  \"name\": \"first\",\n                  \"description\": \"Returns the first _n_ elements from the list.\",\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"Int\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"after\",\n                  \"description\": \"Returns the elements in the list that come after the specified global ID.\",\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"String\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"last\",\n                  \"description\": \"Returns the last _n_ elements from the list.\",\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"Int\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"before\",\n                  \"description\": \"Returns the elements in the list that come before the specified global ID.\",\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"String\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                }\n              ],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"RepositoryConnection\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"pullRequests\",\n              \"description\": \"A list of pull requests assocated with this user.\",\n              \"args\": [\n                {\n                  \"name\": \"first\",\n                  \"description\": \"Returns the first _n_ elements from the list.\",\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"Int\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"after\",\n                  \"description\": \"Returns the elements in the list that come after the specified global ID.\",\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"String\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"last\",\n                  \"description\": \"Returns the last _n_ elements from the list.\",\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"Int\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"before\",\n                  \"description\": \"Returns the elements in the list that come before the specified global ID.\",\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"String\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                }\n              ],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"PullRequestConnection\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"repositories\",\n              \"description\": \"A list of repositories that the user owns.\",\n              \"args\": [\n                {\n                  \"name\": \"first\",\n                  \"description\": \"Returns the first _n_ elements from the list.\",\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"Int\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"after\",\n                  \"description\": \"Returns the elements in the list that come after the specified global ID.\",\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"String\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"last\",\n                  \"description\": \"Returns the last _n_ elements from the list.\",\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"Int\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"before\",\n                  \"description\": \"Returns the elements in the list that come before the specified global ID.\",\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"String\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"privacy\",\n                  \"description\": \"If non-null, filters repositories according to privacy\",\n                  \"type\": {\n                    \"kind\": \"ENUM\",\n                    \"name\": \"RepositoryPrivacy\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"isFork\",\n                  \"description\": \"If non-null, filters repositories according to whether they are forks of another repository\",\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"Boolean\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"orderBy\",\n                  \"description\": \"Ordering options for repositories returned from the connection\",\n                  \"type\": {\n                    \"kind\": \"INPUT_OBJECT\",\n                    \"name\": \"RepositoryOrder\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                }\n              ],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"RepositoryConnection\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"repository\",\n              \"description\": \"Find Repository.\",\n              \"args\": [\n                {\n                  \"name\": \"name\",\n                  \"description\": \"Name of Repository to find.\",\n                  \"type\": {\n                    \"kind\": \"NON_NULL\",\n                    \"name\": null,\n                    \"ofType\": {\n                      \"kind\": \"SCALAR\",\n                      \"name\": \"String\",\n                      \"ofType\": null\n                    }\n                  },\n                  \"defaultValue\": null\n                }\n              ],\n              \"type\": {\n                \"kind\": \"OBJECT\",\n                \"name\": \"Repository\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"starredRepositories\",\n              \"description\": \"Repositories the user has starred.\",\n              \"args\": [\n                {\n                  \"name\": \"first\",\n                  \"description\": \"Returns the first _n_ elements from the list.\",\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"Int\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"after\",\n                  \"description\": \"Returns the elements in the list that come after the specified global ID.\",\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"String\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"last\",\n                  \"description\": \"Returns the last _n_ elements from the list.\",\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"Int\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"before\",\n                  \"description\": \"Returns the elements in the list that come before the specified global ID.\",\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"String\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"ownedByViewer\",\n                  \"description\": \"Filters starred repositories to only return repositories owned by the viewer.\",\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"Boolean\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"orderBy\",\n                  \"description\": \"Order for connection\",\n                  \"type\": {\n                    \"kind\": \"INPUT_OBJECT\",\n                    \"name\": \"StarOrder\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                }\n              ],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"StarredRepositoryConnection\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"updatedAt\",\n              \"description\": \"Identifies the date and time when the object was last updated.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"DateTime\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"url\",\n              \"description\": \"The HTTP url for this user\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"URI\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"viewerCanFollow\",\n              \"description\": \"Whether or not the viewer is able to follow the user.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"Boolean\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"viewerIsFollowing\",\n              \"description\": \"Whether or not this user is followed by the viewer.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"Boolean\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"watching\",\n              \"description\": \"A list of repositories the given user is watching.\",\n              \"args\": [\n                {\n                  \"name\": \"first\",\n                  \"description\": \"Returns the first _n_ elements from the list.\",\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"Int\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"after\",\n                  \"description\": \"Returns the elements in the list that come after the specified global ID.\",\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"String\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"last\",\n                  \"description\": \"Returns the last _n_ elements from the list.\",\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"Int\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"before\",\n                  \"description\": \"Returns the elements in the list that come before the specified global ID.\",\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"String\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                }\n              ],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"RepositoryConnection\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"websiteURL\",\n              \"description\": \"A URL pointing to the user's public website/blog.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"String\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"inputFields\": null,\n          \"interfaces\": [\n            {\n              \"kind\": \"INTERFACE\",\n              \"name\": \"Node\",\n              \"ofType\": null\n            },\n            {\n              \"kind\": \"INTERFACE\",\n              \"name\": \"RepositoryOwner\",\n              \"ofType\": null\n            },\n            {\n              \"kind\": \"INTERFACE\",\n              \"name\": \"UniformResourceLocatable\",\n              \"ofType\": null\n            }\n          ],\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"SCALAR\",\n          \"name\": \"String\",\n          \"description\": \"Represents textual data as UTF-8 character sequences. This type is most often used by GraphQL to represent free-form human-readable text.\",\n          \"fields\": null,\n          \"inputFields\": null,\n          \"interfaces\": null,\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"OBJECT\",\n          \"name\": \"Repository\",\n          \"description\": \"A repository contains the content for a project.\",\n          \"fields\": [\n            {\n              \"name\": \"commitComments\",\n              \"description\": \"A list of commit comments associated with the repository.\",\n              \"args\": [\n                {\n                  \"name\": \"first\",\n                  \"description\": \"Returns the first _n_ elements from the list.\",\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"Int\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"after\",\n                  \"description\": \"Returns the elements in the list that come after the specified global ID.\",\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"String\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"last\",\n                  \"description\": \"Returns the last _n_ elements from the list.\",\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"Int\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"before\",\n                  \"description\": \"Returns the elements in the list that come before the specified global ID.\",\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"String\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                }\n              ],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"CommitCommentConnection\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"createdAt\",\n              \"description\": \"Identifies the date and time when the object was created.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"DateTime\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"databaseId\",\n              \"description\": \"Identifies the primary key from the database.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"Int\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": true,\n              \"deprecationReason\": \"Exposed database IDs will eventually be removed in favor of global Relay IDs.\"\n            },\n            {\n              \"name\": \"description\",\n              \"description\": \"The description of the repository.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"String\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"descriptionHTML\",\n              \"description\": \"The description of the repository rendered to HTML.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"HTML\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"diskUsage\",\n              \"description\": \"The number of kilobytes this repository occupies on disk.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"Int\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"forks\",\n              \"description\": \"A list of child repositories.\",\n              \"args\": [\n                {\n                  \"name\": \"first\",\n                  \"description\": \"Returns the first _n_ elements from the list.\",\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"Int\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"after\",\n                  \"description\": \"Returns the elements in the list that come after the specified global ID.\",\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"String\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"last\",\n                  \"description\": \"Returns the last _n_ elements from the list.\",\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"Int\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"before\",\n                  \"description\": \"Returns the elements in the list that come before the specified global ID.\",\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"String\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"orderBy\",\n                  \"description\": \"Ordering options for repositories returned from the connection\",\n                  \"type\": {\n                    \"kind\": \"INPUT_OBJECT\",\n                    \"name\": \"RepositoryOrder\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                }\n              ],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"RepositoryConnection\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"hasIssuesEnabled\",\n              \"description\": \"Indicates if the repository has issues feature enabled.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"Boolean\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"hasWikiEnabled\",\n              \"description\": \"Indicates if the repository has wiki feature enabled.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"Boolean\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"homepageURL\",\n              \"description\": \"The repository's URL.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"String\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"id\",\n              \"description\": null,\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"ID\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"isFork\",\n              \"description\": \"Identifies if the repository is a fork.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"Boolean\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"isLocked\",\n              \"description\": \"Indicates if the repository has been locked or not.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"Boolean\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"isMirror\",\n              \"description\": \"Identifies if the repository is a mirror.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"Boolean\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"isPrivate\",\n              \"description\": \"Identifies if the repository is private.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"Boolean\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"issue\",\n              \"description\": \"Returns a single issue from the current repository by number.\",\n              \"args\": [\n                {\n                  \"name\": \"number\",\n                  \"description\": \"The number for the issue to be returned.\",\n                  \"type\": {\n                    \"kind\": \"NON_NULL\",\n                    \"name\": null,\n                    \"ofType\": {\n                      \"kind\": \"SCALAR\",\n                      \"name\": \"Int\",\n                      \"ofType\": null\n                    }\n                  },\n                  \"defaultValue\": null\n                }\n              ],\n              \"type\": {\n                \"kind\": \"OBJECT\",\n                \"name\": \"Issue\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"issueish\",\n              \"description\": \"Returns a single issue-like object from the current repository by number.\",\n              \"args\": [\n                {\n                  \"name\": \"number\",\n                  \"description\": \"The number for the issue to be returned.\",\n                  \"type\": {\n                    \"kind\": \"NON_NULL\",\n                    \"name\": null,\n                    \"ofType\": {\n                      \"kind\": \"SCALAR\",\n                      \"name\": \"Int\",\n                      \"ofType\": null\n                    }\n                  },\n                  \"defaultValue\": null\n                }\n              ],\n              \"type\": {\n                \"kind\": \"INTERFACE\",\n                \"name\": \"Issueish\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"issues\",\n              \"description\": \"A list of issues that have been opened in the repository.\",\n              \"args\": [\n                {\n                  \"name\": \"first\",\n                  \"description\": \"Returns the first _n_ elements from the list.\",\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"Int\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"after\",\n                  \"description\": \"Returns the elements in the list that come after the specified global ID.\",\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"String\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"last\",\n                  \"description\": \"Returns the last _n_ elements from the list.\",\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"Int\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"before\",\n                  \"description\": \"Returns the elements in the list that come before the specified global ID.\",\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"String\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"states\",\n                  \"description\": \"A list of states to filter the issues by.\",\n                  \"type\": {\n                    \"kind\": \"LIST\",\n                    \"name\": null,\n                    \"ofType\": {\n                      \"kind\": \"NON_NULL\",\n                      \"name\": null,\n                      \"ofType\": {\n                        \"kind\": \"ENUM\",\n                        \"name\": \"IssueState\",\n                        \"ofType\": null\n                      }\n                    }\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"labels\",\n                  \"description\": \"A list of label names to filter the issues by.\",\n                  \"type\": {\n                    \"kind\": \"LIST\",\n                    \"name\": null,\n                    \"ofType\": {\n                      \"kind\": \"NON_NULL\",\n                      \"name\": null,\n                      \"ofType\": {\n                        \"kind\": \"SCALAR\",\n                        \"name\": \"String\",\n                        \"ofType\": null\n                      }\n                    }\n                  },\n                  \"defaultValue\": null\n                }\n              ],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"IssueConnection\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"label\",\n              \"description\": \"Returns a single label by name\",\n              \"args\": [\n                {\n                  \"name\": \"name\",\n                  \"description\": \"Label name\",\n                  \"type\": {\n                    \"kind\": \"NON_NULL\",\n                    \"name\": null,\n                    \"ofType\": {\n                      \"kind\": \"SCALAR\",\n                      \"name\": \"String\",\n                      \"ofType\": null\n                    }\n                  },\n                  \"defaultValue\": null\n                }\n              ],\n              \"type\": {\n                \"kind\": \"OBJECT\",\n                \"name\": \"Label\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"labels\",\n              \"description\": \"A list of labels associated with the repository.\",\n              \"args\": [\n                {\n                  \"name\": \"first\",\n                  \"description\": \"Returns the first _n_ elements from the list.\",\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"Int\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"after\",\n                  \"description\": \"Returns the elements in the list that come after the specified global ID.\",\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"String\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"last\",\n                  \"description\": \"Returns the last _n_ elements from the list.\",\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"Int\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"before\",\n                  \"description\": \"Returns the elements in the list that come before the specified global ID.\",\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"String\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                }\n              ],\n              \"type\": {\n                \"kind\": \"OBJECT\",\n                \"name\": \"LabelConnection\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"languages\",\n              \"description\": \"A list containing a breakdown of the language composition of the repository.\",\n              \"args\": [\n                {\n                  \"name\": \"first\",\n                  \"description\": \"Returns the first _n_ elements from the list.\",\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"Int\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"after\",\n                  \"description\": \"Returns the elements in the list that come after the specified global ID.\",\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"String\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"last\",\n                  \"description\": \"Returns the last _n_ elements from the list.\",\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"Int\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"before\",\n                  \"description\": \"Returns the elements in the list that come before the specified global ID.\",\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"String\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"orderBy\",\n                  \"description\": \"Order for connection\",\n                  \"type\": {\n                    \"kind\": \"INPUT_OBJECT\",\n                    \"name\": \"LanguageOrder\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                }\n              ],\n              \"type\": {\n                \"kind\": \"OBJECT\",\n                \"name\": \"LanguageConnection\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"license\",\n              \"description\": \"The license associated with the repository\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"String\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"lockReason\",\n              \"description\": \"The reason the repository has been locked.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"ENUM\",\n                \"name\": \"RepositoryLockReason\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"mentionableUsers\",\n              \"description\": \"A list of Users that can be mentioned in the context of the repository.\",\n              \"args\": [\n                {\n                  \"name\": \"first\",\n                  \"description\": \"Returns the first _n_ elements from the list.\",\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"Int\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"after\",\n                  \"description\": \"Returns the elements in the list that come after the specified global ID.\",\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"String\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"last\",\n                  \"description\": \"Returns the last _n_ elements from the list.\",\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"Int\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"before\",\n                  \"description\": \"Returns the elements in the list that come before the specified global ID.\",\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"String\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                }\n              ],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"UserConnection\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"milestone\",\n              \"description\": \"Returns a single milestone from the current repository by number.\",\n              \"args\": [\n                {\n                  \"name\": \"number\",\n                  \"description\": \"The number for the milestone to be returned.\",\n                  \"type\": {\n                    \"kind\": \"NON_NULL\",\n                    \"name\": null,\n                    \"ofType\": {\n                      \"kind\": \"SCALAR\",\n                      \"name\": \"Int\",\n                      \"ofType\": null\n                    }\n                  },\n                  \"defaultValue\": null\n                }\n              ],\n              \"type\": {\n                \"kind\": \"OBJECT\",\n                \"name\": \"Milestone\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"milestones\",\n              \"description\": \"A list of milestones associated with the repository.\",\n              \"args\": [\n                {\n                  \"name\": \"first\",\n                  \"description\": \"Returns the first _n_ elements from the list.\",\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"Int\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"after\",\n                  \"description\": \"Returns the elements in the list that come after the specified global ID.\",\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"String\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"last\",\n                  \"description\": \"Returns the last _n_ elements from the list.\",\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"Int\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"before\",\n                  \"description\": \"Returns the elements in the list that come before the specified global ID.\",\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"String\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                }\n              ],\n              \"type\": {\n                \"kind\": \"OBJECT\",\n                \"name\": \"MilestoneConnection\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"mirrorURL\",\n              \"description\": \"The repository's original mirror URL.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"String\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"name\",\n              \"description\": \"The name of the repository.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"String\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"object\",\n              \"description\": \"A Git object in the repository\",\n              \"args\": [\n                {\n                  \"name\": \"oid\",\n                  \"description\": \"The Git object ID\",\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"GitObjectID\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"expression\",\n                  \"description\": \"A Git revision expression suitable for rev-parse\",\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"String\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                }\n              ],\n              \"type\": {\n                \"kind\": \"INTERFACE\",\n                \"name\": \"GitObject\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"owner\",\n              \"description\": \"The User owner of the repository.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"INTERFACE\",\n                  \"name\": \"RepositoryOwner\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"parent\",\n              \"description\": \"The repository parent, if this is a fork.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"OBJECT\",\n                \"name\": \"Repository\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"path\",\n              \"description\": \"The HTTP path for this repository\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"URI\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"primaryLanguage\",\n              \"description\": \"The primary language of the repository's code.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"OBJECT\",\n                \"name\": \"Language\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"project\",\n              \"description\": \"Find project by number.\",\n              \"args\": [\n                {\n                  \"name\": \"number\",\n                  \"description\": \"The project number to find.\",\n                  \"type\": {\n                    \"kind\": \"NON_NULL\",\n                    \"name\": null,\n                    \"ofType\": {\n                      \"kind\": \"SCALAR\",\n                      \"name\": \"Int\",\n                      \"ofType\": null\n                    }\n                  },\n                  \"defaultValue\": null\n                }\n              ],\n              \"type\": {\n                \"kind\": \"OBJECT\",\n                \"name\": \"Project\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"projects\",\n              \"description\": \"A list of projects under the owner.\",\n              \"args\": [\n                {\n                  \"name\": \"first\",\n                  \"description\": \"Returns the first _n_ elements from the list.\",\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"Int\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"after\",\n                  \"description\": \"Returns the elements in the list that come after the specified global ID.\",\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"String\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"last\",\n                  \"description\": \"Returns the last _n_ elements from the list.\",\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"Int\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"before\",\n                  \"description\": \"Returns the elements in the list that come before the specified global ID.\",\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"String\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"orderBy\",\n                  \"description\": \"Ordering options for projects returned from the connection\",\n                  \"type\": {\n                    \"kind\": \"INPUT_OBJECT\",\n                    \"name\": \"ProjectOrder\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"search\",\n                  \"description\": \"Query to search projects by, currently only searching by name.\",\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"String\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                }\n              ],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"ProjectConnection\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"projectsPath\",\n              \"description\": \"The HTTP path listing repository's projects\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"URI\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"projectsUrl\",\n              \"description\": \"The HTTP url listing repository's projects\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"URI\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"pullRequest\",\n              \"description\": \"Returns a single pull request from the current repository by number.\",\n              \"args\": [\n                {\n                  \"name\": \"number\",\n                  \"description\": \"The number for the pull request to be returned.\",\n                  \"type\": {\n                    \"kind\": \"NON_NULL\",\n                    \"name\": null,\n                    \"ofType\": {\n                      \"kind\": \"SCALAR\",\n                      \"name\": \"Int\",\n                      \"ofType\": null\n                    }\n                  },\n                  \"defaultValue\": null\n                }\n              ],\n              \"type\": {\n                \"kind\": \"OBJECT\",\n                \"name\": \"PullRequest\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"pullRequests\",\n              \"description\": \"A list of pull requests that have been opened in the repository.\",\n              \"args\": [\n                {\n                  \"name\": \"first\",\n                  \"description\": \"Returns the first _n_ elements from the list.\",\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"Int\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"after\",\n                  \"description\": \"Returns the elements in the list that come after the specified global ID.\",\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"String\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"last\",\n                  \"description\": \"Returns the last _n_ elements from the list.\",\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"Int\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"before\",\n                  \"description\": \"Returns the elements in the list that come before the specified global ID.\",\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"String\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"states\",\n                  \"description\": \"A list of states to filter the pull requests by.\",\n                  \"type\": {\n                    \"kind\": \"LIST\",\n                    \"name\": null,\n                    \"ofType\": {\n                      \"kind\": \"NON_NULL\",\n                      \"name\": null,\n                      \"ofType\": {\n                        \"kind\": \"ENUM\",\n                        \"name\": \"PullRequestState\",\n                        \"ofType\": null\n                      }\n                    }\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"labels\",\n                  \"description\": \"A list of label names to filter the pull requests by.\",\n                  \"type\": {\n                    \"kind\": \"LIST\",\n                    \"name\": null,\n                    \"ofType\": {\n                      \"kind\": \"NON_NULL\",\n                      \"name\": null,\n                      \"ofType\": {\n                        \"kind\": \"SCALAR\",\n                        \"name\": \"String\",\n                        \"ofType\": null\n                      }\n                    }\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"headRefName\",\n                  \"description\": \"The head ref name to filter the pull requests by.\",\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"String\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"baseRefName\",\n                  \"description\": \"The base ref name to filter the pull requests by.\",\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"String\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                }\n              ],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"PullRequestConnection\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"pushedAt\",\n              \"description\": \"Identifies when the repository was last pushed to.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"DateTime\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"ref\",\n              \"description\": \"Fetch a given ref from the repository\",\n              \"args\": [\n                {\n                  \"name\": \"qualifiedName\",\n                  \"description\": \"The ref to retrieve.Fully qualified matches are checked in order (`refs/heads/master`) before falling back onto checks for short name matches (`master`).\",\n                  \"type\": {\n                    \"kind\": \"NON_NULL\",\n                    \"name\": null,\n                    \"ofType\": {\n                      \"kind\": \"SCALAR\",\n                      \"name\": \"String\",\n                      \"ofType\": null\n                    }\n                  },\n                  \"defaultValue\": null\n                }\n              ],\n              \"type\": {\n                \"kind\": \"OBJECT\",\n                \"name\": \"Ref\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"refs\",\n              \"description\": \"Fetch a list of refs from the repository\",\n              \"args\": [\n                {\n                  \"name\": \"first\",\n                  \"description\": \"Returns the first _n_ elements from the list.\",\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"Int\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"after\",\n                  \"description\": \"Returns the elements in the list that come after the specified global ID.\",\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"String\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"last\",\n                  \"description\": \"Returns the last _n_ elements from the list.\",\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"Int\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"before\",\n                  \"description\": \"Returns the elements in the list that come before the specified global ID.\",\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"String\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"refPrefix\",\n                  \"description\": \"A ref name prefix like `refs/heads/`, `refs/tags/`, etc.\",\n                  \"type\": {\n                    \"kind\": \"NON_NULL\",\n                    \"name\": null,\n                    \"ofType\": {\n                      \"kind\": \"SCALAR\",\n                      \"name\": \"String\",\n                      \"ofType\": null\n                    }\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"direction\",\n                  \"description\": \"The ordering direction.\",\n                  \"type\": {\n                    \"kind\": \"ENUM\",\n                    \"name\": \"OrderDirection\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                }\n              ],\n              \"type\": {\n                \"kind\": \"OBJECT\",\n                \"name\": \"RefConnection\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"releases\",\n              \"description\": \"List of releases which are dependent on this repository.\",\n              \"args\": [\n                {\n                  \"name\": \"first\",\n                  \"description\": \"Returns the first _n_ elements from the list.\",\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"Int\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"after\",\n                  \"description\": \"Returns the elements in the list that come after the specified global ID.\",\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"String\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"last\",\n                  \"description\": \"Returns the last _n_ elements from the list.\",\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"Int\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"before\",\n                  \"description\": \"Returns the elements in the list that come before the specified global ID.\",\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"String\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                }\n              ],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"ReleaseConnection\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"stargazers\",\n              \"description\": \"A list of users who have starred this repository.\",\n              \"args\": [\n                {\n                  \"name\": \"first\",\n                  \"description\": \"Returns the first _n_ elements from the list.\",\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"Int\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"after\",\n                  \"description\": \"Returns the elements in the list that come after the specified global ID.\",\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"String\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"last\",\n                  \"description\": \"Returns the last _n_ elements from the list.\",\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"Int\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"before\",\n                  \"description\": \"Returns the elements in the list that come before the specified global ID.\",\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"String\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"orderBy\",\n                  \"description\": \"Order for connection\",\n                  \"type\": {\n                    \"kind\": \"INPUT_OBJECT\",\n                    \"name\": \"StarOrder\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                }\n              ],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"StargazerConnection\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"updatedAt\",\n              \"description\": \"Identifies the date and time when the object was last updated.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"DateTime\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"url\",\n              \"description\": \"The HTTP url for this repository\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"URI\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"viewerCanCreateProjects\",\n              \"description\": \"Can the current viewer create new projects on this owner.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"Boolean\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"viewerCanSubscribe\",\n              \"description\": \"Check if the viewer is able to change their subscription status for the repository.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"Boolean\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"viewerHasStarred\",\n              \"description\": \"Returns a boolean indicating whether the viewing user has starred this repository.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"Boolean\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"viewerSubscription\",\n              \"description\": \"Identifies if the viewer is watching, not watching, or ignoring the repository.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"ENUM\",\n                  \"name\": \"SubscriptionState\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"watchers\",\n              \"description\": \"A list of users watching the repository.\",\n              \"args\": [\n                {\n                  \"name\": \"first\",\n                  \"description\": \"Returns the first _n_ elements from the list.\",\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"Int\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"after\",\n                  \"description\": \"Returns the elements in the list that come after the specified global ID.\",\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"String\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"last\",\n                  \"description\": \"Returns the last _n_ elements from the list.\",\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"Int\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"before\",\n                  \"description\": \"Returns the elements in the list that come before the specified global ID.\",\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"String\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                }\n              ],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"UserConnection\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"inputFields\": null,\n          \"interfaces\": [\n            {\n              \"kind\": \"INTERFACE\",\n              \"name\": \"Node\",\n              \"ofType\": null\n            },\n            {\n              \"kind\": \"INTERFACE\",\n              \"name\": \"ProjectOwner\",\n              \"ofType\": null\n            },\n            {\n              \"kind\": \"INTERFACE\",\n              \"name\": \"Subscribable\",\n              \"ofType\": null\n            },\n            {\n              \"kind\": \"INTERFACE\",\n              \"name\": \"UniformResourceLocatable\",\n              \"ofType\": null\n            },\n            {\n              \"kind\": \"INTERFACE\",\n              \"name\": \"RepositoryInfo\",\n              \"ofType\": null\n            }\n          ],\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"OBJECT\",\n          \"name\": \"Project\",\n          \"description\": \"Projects manage issues, pull requests and notes within a project owner.\",\n          \"fields\": [\n            {\n              \"name\": \"body\",\n              \"description\": \"The project's description body.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"String\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"bodyHTML\",\n              \"description\": \"The projects description body rendered to HTML.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"HTML\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"columns\",\n              \"description\": \"List of columns in the project\",\n              \"args\": [\n                {\n                  \"name\": \"first\",\n                  \"description\": \"Returns the first _n_ elements from the list.\",\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"Int\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"after\",\n                  \"description\": \"Returns the elements in the list that come after the specified global ID.\",\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"String\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"last\",\n                  \"description\": \"Returns the last _n_ elements from the list.\",\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"Int\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"before\",\n                  \"description\": \"Returns the elements in the list that come before the specified global ID.\",\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"String\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                }\n              ],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"ProjectColumnConnection\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"createdAt\",\n              \"description\": \"Identifies the date and time when the object was created.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"DateTime\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"creator\",\n              \"description\": \"The user that originally created the project.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"User\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"databaseId\",\n              \"description\": \"Identifies the primary key from the database.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"Int\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": true,\n              \"deprecationReason\": \"Exposed database IDs will eventually be removed in favor of global Relay IDs.\"\n            },\n            {\n              \"name\": \"id\",\n              \"description\": null,\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"ID\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"name\",\n              \"description\": \"The project's name.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"String\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"number\",\n              \"description\": \"The project's number.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"Int\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"owner\",\n              \"description\": \"The project's owner. Currently limited to repositories and organizations.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"INTERFACE\",\n                  \"name\": \"ProjectOwner\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"path\",\n              \"description\": \"The HTTP path for this project\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"URI\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"updatedAt\",\n              \"description\": \"Identifies the date and time when the object was last updated.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"DateTime\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"url\",\n              \"description\": \"The HTTP url for this project\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"URI\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"viewerCanEdit\",\n              \"description\": \"Can the current viewer edit this project.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"Boolean\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"inputFields\": null,\n          \"interfaces\": [\n            {\n              \"kind\": \"INTERFACE\",\n              \"name\": \"Node\",\n              \"ofType\": null\n            }\n          ],\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"SCALAR\",\n          \"name\": \"Int\",\n          \"description\": \"Represents non-fractional signed whole numeric values. Int can represent values between -(2^31) and 2^31 - 1.\",\n          \"fields\": null,\n          \"inputFields\": null,\n          \"interfaces\": null,\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"SCALAR\",\n          \"name\": \"DateTime\",\n          \"description\": \"An ISO-8601 encoded UTC date string.\",\n          \"fields\": null,\n          \"inputFields\": null,\n          \"interfaces\": null,\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"SCALAR\",\n          \"name\": \"URI\",\n          \"description\": \"An RFC 3986, RFC 3987, and RFC 6570 (level 4) compliant URI string.\",\n          \"fields\": null,\n          \"inputFields\": null,\n          \"interfaces\": null,\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"SCALAR\",\n          \"name\": \"HTML\",\n          \"description\": \"A string containing HTML code.\",\n          \"fields\": null,\n          \"inputFields\": null,\n          \"interfaces\": null,\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"SCALAR\",\n          \"name\": \"Boolean\",\n          \"description\": \"Represents `true` or `false` values.\",\n          \"fields\": null,\n          \"inputFields\": null,\n          \"interfaces\": null,\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"INTERFACE\",\n          \"name\": \"ProjectOwner\",\n          \"description\": \"Represents an owner of a Project.\",\n          \"fields\": [\n            {\n              \"name\": \"id\",\n              \"description\": null,\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"ID\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"project\",\n              \"description\": \"Find project by number.\",\n              \"args\": [\n                {\n                  \"name\": \"number\",\n                  \"description\": \"The project number to find.\",\n                  \"type\": {\n                    \"kind\": \"NON_NULL\",\n                    \"name\": null,\n                    \"ofType\": {\n                      \"kind\": \"SCALAR\",\n                      \"name\": \"Int\",\n                      \"ofType\": null\n                    }\n                  },\n                  \"defaultValue\": null\n                }\n              ],\n              \"type\": {\n                \"kind\": \"OBJECT\",\n                \"name\": \"Project\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"projects\",\n              \"description\": \"A list of projects under the owner.\",\n              \"args\": [\n                {\n                  \"name\": \"first\",\n                  \"description\": \"Returns the first _n_ elements from the list.\",\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"Int\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"after\",\n                  \"description\": \"Returns the elements in the list that come after the specified global ID.\",\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"String\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"last\",\n                  \"description\": \"Returns the last _n_ elements from the list.\",\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"Int\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"before\",\n                  \"description\": \"Returns the elements in the list that come before the specified global ID.\",\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"String\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"orderBy\",\n                  \"description\": \"Ordering options for projects returned from the connection\",\n                  \"type\": {\n                    \"kind\": \"INPUT_OBJECT\",\n                    \"name\": \"ProjectOrder\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"search\",\n                  \"description\": \"Query to search projects by, currently only searching by name.\",\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"String\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                }\n              ],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"ProjectConnection\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"projectsPath\",\n              \"description\": \"The HTTP path listing owners projects\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"URI\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"projectsUrl\",\n              \"description\": \"The HTTP url listing owners projects\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"URI\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"viewerCanCreateProjects\",\n              \"description\": \"Can the current viewer create new projects on this owner.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"Boolean\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"inputFields\": null,\n          \"interfaces\": null,\n          \"enumValues\": null,\n          \"possibleTypes\": [\n            {\n              \"kind\": \"OBJECT\",\n              \"name\": \"Organization\",\n              \"ofType\": null\n            },\n            {\n              \"kind\": \"OBJECT\",\n              \"name\": \"Repository\",\n              \"ofType\": null\n            }\n          ]\n        },\n        {\n          \"kind\": \"OBJECT\",\n          \"name\": \"ProjectConnection\",\n          \"description\": \"The connection type for Project.\",\n          \"fields\": [\n            {\n              \"name\": \"edges\",\n              \"description\": \"A list of edges.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"LIST\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"ProjectEdge\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"nodes\",\n              \"description\": \"A list of nodes.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"LIST\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"Project\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"pageInfo\",\n              \"description\": \"Information to aid in pagination.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"PageInfo\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"totalCount\",\n              \"description\": \"Identifies the total count of items in the connection.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"Int\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"inputFields\": null,\n          \"interfaces\": [],\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"OBJECT\",\n          \"name\": \"ProjectEdge\",\n          \"description\": \"An edge in a connection.\",\n          \"fields\": [\n            {\n              \"name\": \"cursor\",\n              \"description\": \"A cursor for use in pagination.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"String\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"node\",\n              \"description\": \"The item at the end of the edge.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"OBJECT\",\n                \"name\": \"Project\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"inputFields\": null,\n          \"interfaces\": [],\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"OBJECT\",\n          \"name\": \"PageInfo\",\n          \"description\": \"Information about pagination in a connection.\",\n          \"fields\": [\n            {\n              \"name\": \"endCursor\",\n              \"description\": \"When paginating forwards, the cursor to continue\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"String\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"hasNextPage\",\n              \"description\": \"Indicates if there are more pages to fetch\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"Boolean\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"hasPreviousPage\",\n              \"description\": \"Indicates if there are any pages prior to the current page\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"Boolean\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"startCursor\",\n              \"description\": \"When paginating backwards, the cursor to continue\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"String\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"inputFields\": null,\n          \"interfaces\": [],\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"INPUT_OBJECT\",\n          \"name\": \"ProjectOrder\",\n          \"description\": \"Ways in which lists of projects can be ordered upon return.\",\n          \"fields\": null,\n          \"inputFields\": [\n            {\n              \"name\": \"field\",\n              \"description\": \"The field in which to order projects by.\",\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"ENUM\",\n                  \"name\": \"ProjectOrderField\",\n                  \"ofType\": null\n                }\n              },\n              \"defaultValue\": null\n            },\n            {\n              \"name\": \"direction\",\n              \"description\": \"The direction in which to order projects by the specified field.\",\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"ENUM\",\n                  \"name\": \"OrderDirection\",\n                  \"ofType\": null\n                }\n              },\n              \"defaultValue\": null\n            }\n          ],\n          \"interfaces\": null,\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"ENUM\",\n          \"name\": \"ProjectOrderField\",\n          \"description\": \"Properties by which project connections can be ordered.\",\n          \"fields\": null,\n          \"inputFields\": null,\n          \"interfaces\": null,\n          \"enumValues\": [\n            {\n              \"name\": \"CREATED_AT\",\n              \"description\": \"Order projects by creation time\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"UPDATED_AT\",\n              \"description\": \"Order projects by update time\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"NAME\",\n              \"description\": \"Order projects by name\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"ENUM\",\n          \"name\": \"OrderDirection\",\n          \"description\": \"Possible directions in which to order a list of items when provided an `orderBy` argument.\",\n          \"fields\": null,\n          \"inputFields\": null,\n          \"interfaces\": null,\n          \"enumValues\": [\n            {\n              \"name\": \"ASC\",\n              \"description\": \"Specifies an ascending order for a given `orderBy` argument.\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"DESC\",\n              \"description\": \"Specifies a descending order for a given `orderBy` argument.\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"OBJECT\",\n          \"name\": \"ProjectColumnConnection\",\n          \"description\": \"The connection type for ProjectColumn.\",\n          \"fields\": [\n            {\n              \"name\": \"edges\",\n              \"description\": \"A list of edges.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"LIST\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"ProjectColumnEdge\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"nodes\",\n              \"description\": \"A list of nodes.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"LIST\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"ProjectColumn\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"pageInfo\",\n              \"description\": \"Information to aid in pagination.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"PageInfo\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"totalCount\",\n              \"description\": \"Identifies the total count of items in the connection.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"Int\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"inputFields\": null,\n          \"interfaces\": [],\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"OBJECT\",\n          \"name\": \"ProjectColumnEdge\",\n          \"description\": \"An edge in a connection.\",\n          \"fields\": [\n            {\n              \"name\": \"cursor\",\n              \"description\": \"A cursor for use in pagination.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"String\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"node\",\n              \"description\": \"The item at the end of the edge.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"OBJECT\",\n                \"name\": \"ProjectColumn\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"inputFields\": null,\n          \"interfaces\": [],\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"OBJECT\",\n          \"name\": \"ProjectColumn\",\n          \"description\": \"A column inside a project.\",\n          \"fields\": [\n            {\n              \"name\": \"cards\",\n              \"description\": \"List of cards in the column\",\n              \"args\": [\n                {\n                  \"name\": \"first\",\n                  \"description\": \"Returns the first _n_ elements from the list.\",\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"Int\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"after\",\n                  \"description\": \"Returns the elements in the list that come after the specified global ID.\",\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"String\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"last\",\n                  \"description\": \"Returns the last _n_ elements from the list.\",\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"Int\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"before\",\n                  \"description\": \"Returns the elements in the list that come before the specified global ID.\",\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"String\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                }\n              ],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"ProjectCardConnection\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"createdAt\",\n              \"description\": \"Identifies the date and time when the object was created.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"DateTime\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"databaseId\",\n              \"description\": \"Identifies the primary key from the database.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"Int\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": true,\n              \"deprecationReason\": \"Exposed database IDs will eventually be removed in favor of global Relay IDs.\"\n            },\n            {\n              \"name\": \"id\",\n              \"description\": null,\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"ID\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"name\",\n              \"description\": \"The project column's name.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"String\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"project\",\n              \"description\": \"The project that contains this column.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"Project\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"updatedAt\",\n              \"description\": \"Identifies the date and time when the object was last updated.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"DateTime\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"inputFields\": null,\n          \"interfaces\": [\n            {\n              \"kind\": \"INTERFACE\",\n              \"name\": \"Node\",\n              \"ofType\": null\n            }\n          ],\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"OBJECT\",\n          \"name\": \"ProjectCardConnection\",\n          \"description\": \"The connection type for ProjectCard.\",\n          \"fields\": [\n            {\n              \"name\": \"edges\",\n              \"description\": \"A list of edges.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"LIST\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"ProjectCardEdge\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"nodes\",\n              \"description\": \"A list of nodes.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"LIST\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"ProjectCard\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"pageInfo\",\n              \"description\": \"Information to aid in pagination.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"PageInfo\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"totalCount\",\n              \"description\": \"Identifies the total count of items in the connection.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"Int\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"inputFields\": null,\n          \"interfaces\": [],\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"OBJECT\",\n          \"name\": \"ProjectCardEdge\",\n          \"description\": \"An edge in a connection.\",\n          \"fields\": [\n            {\n              \"name\": \"cursor\",\n              \"description\": \"A cursor for use in pagination.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"String\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"node\",\n              \"description\": \"The item at the end of the edge.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"OBJECT\",\n                \"name\": \"ProjectCard\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"inputFields\": null,\n          \"interfaces\": [],\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"OBJECT\",\n          \"name\": \"ProjectCard\",\n          \"description\": \"A card in a project.\",\n          \"fields\": [\n            {\n              \"name\": \"content\",\n              \"description\": \"The card content item\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"UNION\",\n                \"name\": \"ProjectCardItem\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"createdAt\",\n              \"description\": \"Identifies the date and time when the object was created.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"DateTime\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"creator\",\n              \"description\": \"The user who created this card\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"User\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"databaseId\",\n              \"description\": \"Identifies the primary key from the database.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"Int\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": true,\n              \"deprecationReason\": \"Exposed database IDs will eventually be removed in favor of global Relay IDs.\"\n            },\n            {\n              \"name\": \"id\",\n              \"description\": null,\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"ID\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"note\",\n              \"description\": \"The card note\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"String\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"projectColumn\",\n              \"description\": \"The column that contains this card.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"ProjectColumn\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"state\",\n              \"description\": \"The state of ProjectCard\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"ENUM\",\n                \"name\": \"ProjectCardState\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"updatedAt\",\n              \"description\": \"Identifies the date and time when the object was last updated.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"DateTime\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"inputFields\": null,\n          \"interfaces\": [\n            {\n              \"kind\": \"INTERFACE\",\n              \"name\": \"Node\",\n              \"ofType\": null\n            }\n          ],\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"ENUM\",\n          \"name\": \"ProjectCardState\",\n          \"description\": \"Various content states of a ProjectCard\",\n          \"fields\": null,\n          \"inputFields\": null,\n          \"interfaces\": null,\n          \"enumValues\": [\n            {\n              \"name\": \"CONTENT_ONLY\",\n              \"description\": \"The card has content only.\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"NOTE_ONLY\",\n              \"description\": \"The card has a note only.\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"REDACTED\",\n              \"description\": \"The card is redacted.\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"UNION\",\n          \"name\": \"ProjectCardItem\",\n          \"description\": \"Types that can be inside Project Cards.\",\n          \"fields\": null,\n          \"inputFields\": null,\n          \"interfaces\": null,\n          \"enumValues\": null,\n          \"possibleTypes\": [\n            {\n              \"kind\": \"OBJECT\",\n              \"name\": \"Issue\",\n              \"ofType\": null\n            },\n            {\n              \"kind\": \"OBJECT\",\n              \"name\": \"PullRequest\",\n              \"ofType\": null\n            }\n          ]\n        },\n        {\n          \"kind\": \"OBJECT\",\n          \"name\": \"PullRequest\",\n          \"description\": \"A repository pull request.\",\n          \"fields\": [\n            {\n              \"name\": \"author\",\n              \"description\": \"The user associated with this pull request.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"OBJECT\",\n                \"name\": \"User\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"baseRef\",\n              \"description\": \"Identifies the base Ref associated with the pull request.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"OBJECT\",\n                \"name\": \"Ref\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"baseRefName\",\n              \"description\": \"Identifies the name of the base Ref associated with the pull request, even if the ref has been deleted.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"String\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"body\",\n              \"description\": \"Identifies the body of the pull request.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"String\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"bodyHTML\",\n              \"description\": \"Identifies the body of the pull request rendered to HTML.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"HTML\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"bodyText\",\n              \"description\": \"Identifies the body of the pull request rendered to text.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"String\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"comments\",\n              \"description\": \"A list of comments associated with the pull request.\",\n              \"args\": [\n                {\n                  \"name\": \"first\",\n                  \"description\": \"Returns the first _n_ elements from the list.\",\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"Int\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"after\",\n                  \"description\": \"Returns the elements in the list that come after the specified global ID.\",\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"String\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"last\",\n                  \"description\": \"Returns the last _n_ elements from the list.\",\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"Int\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"before\",\n                  \"description\": \"Returns the elements in the list that come before the specified global ID.\",\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"String\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                }\n              ],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"IssueCommentConnection\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"commits\",\n              \"description\": \"A list of commits present in this pull request's head branch not present in the base branch.\",\n              \"args\": [\n                {\n                  \"name\": \"first\",\n                  \"description\": \"Returns the first _n_ elements from the list.\",\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"Int\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"after\",\n                  \"description\": \"Returns the elements in the list that come after the specified global ID.\",\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"String\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"last\",\n                  \"description\": \"Returns the last _n_ elements from the list.\",\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"Int\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"before\",\n                  \"description\": \"Returns the elements in the list that come before the specified global ID.\",\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"String\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                }\n              ],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"CommitConnection\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"createdAt\",\n              \"description\": \"Identifies the date and time when the object was created.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"DateTime\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"createdViaEmail\",\n              \"description\": \"Check if this comment was created via an email reply.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"Boolean\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"databaseId\",\n              \"description\": \"Identifies the primary key from the database.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"Int\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": true,\n              \"deprecationReason\": \"Exposed database IDs will eventually be removed in favor of global Relay IDs.\"\n            },\n            {\n              \"name\": \"editor\",\n              \"description\": \"The user who edited this pull request's body.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"OBJECT\",\n                \"name\": \"User\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"headRef\",\n              \"description\": \"Identifies the head Ref associated with the pull request.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"OBJECT\",\n                \"name\": \"Ref\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"headRefName\",\n              \"description\": \"Identifies the name of the head Ref associated with the pull request, even if the ref has been deleted.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"String\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"id\",\n              \"description\": null,\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"ID\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"labels\",\n              \"description\": \"A list of labels associated with the Issue or Pull Request.\",\n              \"args\": [\n                {\n                  \"name\": \"first\",\n                  \"description\": \"Returns the first _n_ elements from the list.\",\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"Int\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"after\",\n                  \"description\": \"Returns the elements in the list that come after the specified global ID.\",\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"String\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"last\",\n                  \"description\": \"Returns the last _n_ elements from the list.\",\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"Int\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"before\",\n                  \"description\": \"Returns the elements in the list that come before the specified global ID.\",\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"String\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                }\n              ],\n              \"type\": {\n                \"kind\": \"OBJECT\",\n                \"name\": \"LabelConnection\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"lastEditedAt\",\n              \"description\": \"The moment the editor made the last edit\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"DateTime\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"liveReactionUpdatesEnabled\",\n              \"description\": \"Are reaction live updates enabled for this subject.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"Boolean\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"mergeCommit\",\n              \"description\": \"The commit that was created when this pull request was merged.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"OBJECT\",\n                \"name\": \"Commit\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"number\",\n              \"description\": \"Identifies the pull request number.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"Int\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"path\",\n              \"description\": \"The HTTP path for this issue\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"URI\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"reactionGroups\",\n              \"description\": \"A list of reactions grouped by content left on the subject.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"LIST\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"NON_NULL\",\n                  \"name\": null,\n                  \"ofType\": {\n                    \"kind\": \"OBJECT\",\n                    \"name\": \"ReactionGroup\",\n                    \"ofType\": null\n                  }\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"reactions\",\n              \"description\": \"A list of Reactions left on the Issue.\",\n              \"args\": [\n                {\n                  \"name\": \"first\",\n                  \"description\": \"Returns the first _n_ elements from the list.\",\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"Int\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"after\",\n                  \"description\": \"Returns the elements in the list that come after the specified global ID.\",\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"String\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"last\",\n                  \"description\": \"Returns the last _n_ elements from the list.\",\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"Int\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"before\",\n                  \"description\": \"Returns the elements in the list that come before the specified global ID.\",\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"String\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"content\",\n                  \"description\": \"Allows filtering Reactions by emoji.\",\n                  \"type\": {\n                    \"kind\": \"ENUM\",\n                    \"name\": \"ReactionContent\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"orderBy\",\n                  \"description\": \"Allows specifying the order in which reactions are returned.\",\n                  \"type\": {\n                    \"kind\": \"INPUT_OBJECT\",\n                    \"name\": \"ReactionOrder\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                }\n              ],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"ReactionConnection\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"reactionsWebsocket\",\n              \"description\": \"The websocket channel ID for reaction live updates.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"String\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"repository\",\n              \"description\": \"The repository associated with this pull request.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"Repository\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"reviewRequests\",\n              \"description\": \"A list of review requests associated with the pull request.\",\n              \"args\": [\n                {\n                  \"name\": \"first\",\n                  \"description\": \"Returns the first _n_ elements from the list.\",\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"Int\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"after\",\n                  \"description\": \"Returns the elements in the list that come after the specified global ID.\",\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"String\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"last\",\n                  \"description\": \"Returns the last _n_ elements from the list.\",\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"Int\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"before\",\n                  \"description\": \"Returns the elements in the list that come before the specified global ID.\",\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"String\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                }\n              ],\n              \"type\": {\n                \"kind\": \"OBJECT\",\n                \"name\": \"ReviewRequestConnection\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"reviews\",\n              \"description\": \"A list of reviews associated with the pull request.\",\n              \"args\": [\n                {\n                  \"name\": \"first\",\n                  \"description\": \"Returns the first _n_ elements from the list.\",\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"Int\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"after\",\n                  \"description\": \"Returns the elements in the list that come after the specified global ID.\",\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"String\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"last\",\n                  \"description\": \"Returns the last _n_ elements from the list.\",\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"Int\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"before\",\n                  \"description\": \"Returns the elements in the list that come before the specified global ID.\",\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"String\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"states\",\n                  \"description\": \"A list of states to filter the reviews.\",\n                  \"type\": {\n                    \"kind\": \"LIST\",\n                    \"name\": null,\n                    \"ofType\": {\n                      \"kind\": \"NON_NULL\",\n                      \"name\": null,\n                      \"ofType\": {\n                        \"kind\": \"ENUM\",\n                        \"name\": \"PullRequestReviewState\",\n                        \"ofType\": null\n                      }\n                    }\n                  },\n                  \"defaultValue\": null\n                }\n              ],\n              \"type\": {\n                \"kind\": \"OBJECT\",\n                \"name\": \"PullRequestReviewConnection\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"state\",\n              \"description\": \"Identifies the state of the pull request.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"ENUM\",\n                  \"name\": \"PullRequestState\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"timeline\",\n              \"description\": \"A list of events associated with an Issue or PullRequest.\",\n              \"args\": [\n                {\n                  \"name\": \"first\",\n                  \"description\": \"Returns the first _n_ elements from the list.\",\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"Int\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"after\",\n                  \"description\": \"Returns the elements in the list that come after the specified global ID.\",\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"String\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"last\",\n                  \"description\": \"Returns the last _n_ elements from the list.\",\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"Int\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"before\",\n                  \"description\": \"Returns the elements in the list that come before the specified global ID.\",\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"String\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"since\",\n                  \"description\": \"Allows filtering timeline events by a `since` timestamp.\",\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"String\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                }\n              ],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"IssueTimelineConnection\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"title\",\n              \"description\": \"Identifies the pull request title.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"String\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"updatedAt\",\n              \"description\": \"Identifies the date and time when the object was last updated.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"DateTime\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"url\",\n              \"description\": \"The HTTP url for this issue\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"URI\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"viewerCanDelete\",\n              \"description\": \"Check if the current viewer can delete this issue.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"Boolean\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"viewerCanEdit\",\n              \"description\": \"Check if the current viewer edit this comment.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"Boolean\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"viewerCanReact\",\n              \"description\": \"Can user react to this subject\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"Boolean\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"viewerCannotEditReasons\",\n              \"description\": \"Errors why the current viewer can not edit this comment.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"LIST\",\n                  \"name\": null,\n                  \"ofType\": {\n                    \"kind\": \"NON_NULL\",\n                    \"name\": null,\n                    \"ofType\": {\n                      \"kind\": \"ENUM\",\n                      \"name\": \"CommentCannotEditReason\",\n                      \"ofType\": null\n                    }\n                  }\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"viewerDidAuthor\",\n              \"description\": \"Did the viewer author this comment.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"Boolean\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"websocket\",\n              \"description\": \"The websocket channel ID for live updates.\",\n              \"args\": [\n                {\n                  \"name\": \"channel\",\n                  \"description\": \"The channel to use.\",\n                  \"type\": {\n                    \"kind\": \"NON_NULL\",\n                    \"name\": null,\n                    \"ofType\": {\n                      \"kind\": \"ENUM\",\n                      \"name\": \"PullRequestPubSubTopic\",\n                      \"ofType\": null\n                    }\n                  },\n                  \"defaultValue\": null\n                }\n              ],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"String\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"inputFields\": null,\n          \"interfaces\": [\n            {\n              \"kind\": \"INTERFACE\",\n              \"name\": \"Node\",\n              \"ofType\": null\n            },\n            {\n              \"kind\": \"INTERFACE\",\n              \"name\": \"Comment\",\n              \"ofType\": null\n            },\n            {\n              \"kind\": \"INTERFACE\",\n              \"name\": \"Issueish\",\n              \"ofType\": null\n            },\n            {\n              \"kind\": \"INTERFACE\",\n              \"name\": \"Reactable\",\n              \"ofType\": null\n            },\n            {\n              \"kind\": \"INTERFACE\",\n              \"name\": \"RepositoryNode\",\n              \"ofType\": null\n            },\n            {\n              \"kind\": \"INTERFACE\",\n              \"name\": \"Timeline\",\n              \"ofType\": null\n            },\n            {\n              \"kind\": \"INTERFACE\",\n              \"name\": \"UniformResourceLocatable\",\n              \"ofType\": null\n            }\n          ],\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"ENUM\",\n          \"name\": \"CommentCannotEditReason\",\n          \"description\": \"The possible errors that will prevent a user from editting a comment.\",\n          \"fields\": null,\n          \"inputFields\": null,\n          \"interfaces\": null,\n          \"enumValues\": [\n            {\n              \"name\": \"INSUFFICIENT_ACCESS\",\n              \"description\": \"You must be the author or have write access to this repository to edit this comment.\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"LOCKED\",\n              \"description\": \"Unable to create comment because issue is locked.\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"LOGIN_REQUIRED\",\n              \"description\": \"You must be logged in to edit this comment.\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"MAINTENANCE\",\n              \"description\": \"Repository is under maintenance.\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"VERIFIED_EMAIL_REQUIRED\",\n              \"description\": \"At least one email address must be verified to edit this comment.\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"OBJECT\",\n          \"name\": \"LabelConnection\",\n          \"description\": \"The connection type for Label.\",\n          \"fields\": [\n            {\n              \"name\": \"edges\",\n              \"description\": \"A list of edges.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"LIST\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"LabelEdge\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"nodes\",\n              \"description\": \"A list of nodes.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"LIST\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"Label\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"pageInfo\",\n              \"description\": \"Information to aid in pagination.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"PageInfo\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"totalCount\",\n              \"description\": \"Identifies the total count of items in the connection.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"Int\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"inputFields\": null,\n          \"interfaces\": [],\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"OBJECT\",\n          \"name\": \"LabelEdge\",\n          \"description\": \"An edge in a connection.\",\n          \"fields\": [\n            {\n              \"name\": \"cursor\",\n              \"description\": \"A cursor for use in pagination.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"String\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"node\",\n              \"description\": \"The item at the end of the edge.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"OBJECT\",\n                \"name\": \"Label\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"inputFields\": null,\n          \"interfaces\": [],\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"OBJECT\",\n          \"name\": \"Label\",\n          \"description\": \"A label for categorizing Issues or Milestones with a given Repository.\",\n          \"fields\": [\n            {\n              \"name\": \"color\",\n              \"description\": \"Identifies the label color.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"String\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"id\",\n              \"description\": null,\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"ID\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"issues\",\n              \"description\": \"A list of issues associated with this label.\",\n              \"args\": [\n                {\n                  \"name\": \"first\",\n                  \"description\": \"Returns the first _n_ elements from the list.\",\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"Int\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"after\",\n                  \"description\": \"Returns the elements in the list that come after the specified global ID.\",\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"String\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"last\",\n                  \"description\": \"Returns the last _n_ elements from the list.\",\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"Int\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"before\",\n                  \"description\": \"Returns the elements in the list that come before the specified global ID.\",\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"String\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                }\n              ],\n              \"type\": {\n                \"kind\": \"OBJECT\",\n                \"name\": \"IssueConnection\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"name\",\n              \"description\": \"Identifies the label name.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"String\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"pullRequests\",\n              \"description\": \"A list of pull requests associated with this label.\",\n              \"args\": [\n                {\n                  \"name\": \"first\",\n                  \"description\": \"Returns the first _n_ elements from the list.\",\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"Int\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"after\",\n                  \"description\": \"Returns the elements in the list that come after the specified global ID.\",\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"String\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"last\",\n                  \"description\": \"Returns the last _n_ elements from the list.\",\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"Int\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"before\",\n                  \"description\": \"Returns the elements in the list that come before the specified global ID.\",\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"String\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                }\n              ],\n              \"type\": {\n                \"kind\": \"OBJECT\",\n                \"name\": \"PullRequestConnection\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"repository\",\n              \"description\": \"The repository associated with this label.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"Repository\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"inputFields\": null,\n          \"interfaces\": [\n            {\n              \"kind\": \"INTERFACE\",\n              \"name\": \"Node\",\n              \"ofType\": null\n            }\n          ],\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"OBJECT\",\n          \"name\": \"IssueConnection\",\n          \"description\": \"The connection type for Issue.\",\n          \"fields\": [\n            {\n              \"name\": \"edges\",\n              \"description\": \"A list of edges.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"LIST\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"IssueEdge\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"nodes\",\n              \"description\": \"A list of nodes.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"LIST\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"Issue\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"pageInfo\",\n              \"description\": \"Information to aid in pagination.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"PageInfo\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"totalCount\",\n              \"description\": \"Identifies the total count of items in the connection.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"Int\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"inputFields\": null,\n          \"interfaces\": [],\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"OBJECT\",\n          \"name\": \"IssueEdge\",\n          \"description\": \"An edge in a connection.\",\n          \"fields\": [\n            {\n              \"name\": \"cursor\",\n              \"description\": \"A cursor for use in pagination.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"String\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"node\",\n              \"description\": \"The item at the end of the edge.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"OBJECT\",\n                \"name\": \"Issue\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"inputFields\": null,\n          \"interfaces\": [],\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"OBJECT\",\n          \"name\": \"PullRequestConnection\",\n          \"description\": \"The connection type for PullRequest.\",\n          \"fields\": [\n            {\n              \"name\": \"edges\",\n              \"description\": \"A list of edges.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"LIST\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"PullRequestEdge\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"nodes\",\n              \"description\": \"A list of nodes.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"LIST\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"PullRequest\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"pageInfo\",\n              \"description\": \"Information to aid in pagination.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"PageInfo\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"totalCount\",\n              \"description\": \"Identifies the total count of items in the connection.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"Int\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"inputFields\": null,\n          \"interfaces\": [],\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"OBJECT\",\n          \"name\": \"PullRequestEdge\",\n          \"description\": \"An edge in a connection.\",\n          \"fields\": [\n            {\n              \"name\": \"cursor\",\n              \"description\": \"A cursor for use in pagination.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"String\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"node\",\n              \"description\": \"The item at the end of the edge.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"OBJECT\",\n                \"name\": \"PullRequest\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"inputFields\": null,\n          \"interfaces\": [],\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"INTERFACE\",\n          \"name\": \"Node\",\n          \"description\": \"An object with an ID.\",\n          \"fields\": [\n            {\n              \"name\": \"id\",\n              \"description\": \"ID of the object.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"ID\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"inputFields\": null,\n          \"interfaces\": null,\n          \"enumValues\": null,\n          \"possibleTypes\": [\n            {\n              \"kind\": \"OBJECT\",\n              \"name\": \"AssignedEvent\",\n              \"ofType\": null\n            },\n            {\n              \"kind\": \"OBJECT\",\n              \"name\": \"BaseRefForcePushedEvent\",\n              \"ofType\": null\n            },\n            {\n              \"kind\": \"OBJECT\",\n              \"name\": \"Blob\",\n              \"ofType\": null\n            },\n            {\n              \"kind\": \"OBJECT\",\n              \"name\": \"ClosedEvent\",\n              \"ofType\": null\n            },\n            {\n              \"kind\": \"OBJECT\",\n              \"name\": \"Commit\",\n              \"ofType\": null\n            },\n            {\n              \"kind\": \"OBJECT\",\n              \"name\": \"CommitComment\",\n              \"ofType\": null\n            },\n            {\n              \"kind\": \"OBJECT\",\n              \"name\": \"DemilestonedEvent\",\n              \"ofType\": null\n            },\n            {\n              \"kind\": \"OBJECT\",\n              \"name\": \"DeployedEvent\",\n              \"ofType\": null\n            },\n            {\n              \"kind\": \"OBJECT\",\n              \"name\": \"Deployment\",\n              \"ofType\": null\n            },\n            {\n              \"kind\": \"OBJECT\",\n              \"name\": \"DeploymentStatus\",\n              \"ofType\": null\n            },\n            {\n              \"kind\": \"OBJECT\",\n              \"name\": \"Gist\",\n              \"ofType\": null\n            },\n            {\n              \"kind\": \"OBJECT\",\n              \"name\": \"GistComment\",\n              \"ofType\": null\n            },\n            {\n              \"kind\": \"OBJECT\",\n              \"name\": \"HeadRefDeletedEvent\",\n              \"ofType\": null\n            },\n            {\n              \"kind\": \"OBJECT\",\n              \"name\": \"HeadRefForcePushedEvent\",\n              \"ofType\": null\n            },\n            {\n              \"kind\": \"OBJECT\",\n              \"name\": \"HeadRefRestoredEvent\",\n              \"ofType\": null\n            },\n            {\n              \"kind\": \"OBJECT\",\n              \"name\": \"Issue\",\n              \"ofType\": null\n            },\n            {\n              \"kind\": \"OBJECT\",\n              \"name\": \"IssueComment\",\n              \"ofType\": null\n            },\n            {\n              \"kind\": \"OBJECT\",\n              \"name\": \"Label\",\n              \"ofType\": null\n            },\n            {\n              \"kind\": \"OBJECT\",\n              \"name\": \"LabeledEvent\",\n              \"ofType\": null\n            },\n            {\n              \"kind\": \"OBJECT\",\n              \"name\": \"Language\",\n              \"ofType\": null\n            },\n            {\n              \"kind\": \"OBJECT\",\n              \"name\": \"LockedEvent\",\n              \"ofType\": null\n            },\n            {\n              \"kind\": \"OBJECT\",\n              \"name\": \"MentionedEvent\",\n              \"ofType\": null\n            },\n            {\n              \"kind\": \"OBJECT\",\n              \"name\": \"MergedEvent\",\n              \"ofType\": null\n            },\n            {\n              \"kind\": \"OBJECT\",\n              \"name\": \"Milestone\",\n              \"ofType\": null\n            },\n            {\n              \"kind\": \"OBJECT\",\n              \"name\": \"MilestonedEvent\",\n              \"ofType\": null\n            },\n            {\n              \"kind\": \"OBJECT\",\n              \"name\": \"Organization\",\n              \"ofType\": null\n            },\n            {\n              \"kind\": \"OBJECT\",\n              \"name\": \"Project\",\n              \"ofType\": null\n            },\n            {\n              \"kind\": \"OBJECT\",\n              \"name\": \"ProjectCard\",\n              \"ofType\": null\n            },\n            {\n              \"kind\": \"OBJECT\",\n              \"name\": \"ProjectColumn\",\n              \"ofType\": null\n            },\n            {\n              \"kind\": \"OBJECT\",\n              \"name\": \"PullRequest\",\n              \"ofType\": null\n            },\n            {\n              \"kind\": \"OBJECT\",\n              \"name\": \"PullRequestReview\",\n              \"ofType\": null\n            },\n            {\n              \"kind\": \"OBJECT\",\n              \"name\": \"PullRequestReviewComment\",\n              \"ofType\": null\n            },\n            {\n              \"kind\": \"OBJECT\",\n              \"name\": \"PullRequestReviewThread\",\n              \"ofType\": null\n            },\n            {\n              \"kind\": \"OBJECT\",\n              \"name\": \"Reaction\",\n              \"ofType\": null\n            },\n            {\n              \"kind\": \"OBJECT\",\n              \"name\": \"Ref\",\n              \"ofType\": null\n            },\n            {\n              \"kind\": \"OBJECT\",\n              \"name\": \"ReferencedEvent\",\n              \"ofType\": null\n            },\n            {\n              \"kind\": \"OBJECT\",\n              \"name\": \"Release\",\n              \"ofType\": null\n            },\n            {\n              \"kind\": \"OBJECT\",\n              \"name\": \"ReleaseAsset\",\n              \"ofType\": null\n            },\n            {\n              \"kind\": \"OBJECT\",\n              \"name\": \"RenamedEvent\",\n              \"ofType\": null\n            },\n            {\n              \"kind\": \"OBJECT\",\n              \"name\": \"ReopenedEvent\",\n              \"ofType\": null\n            },\n            {\n              \"kind\": \"OBJECT\",\n              \"name\": \"Repository\",\n              \"ofType\": null\n            },\n            {\n              \"kind\": \"OBJECT\",\n              \"name\": \"RepositoryInvitation\",\n              \"ofType\": null\n            },\n            {\n              \"kind\": \"OBJECT\",\n              \"name\": \"ReviewDismissedEvent\",\n              \"ofType\": null\n            },\n            {\n              \"kind\": \"OBJECT\",\n              \"name\": \"ReviewRequest\",\n              \"ofType\": null\n            },\n            {\n              \"kind\": \"OBJECT\",\n              \"name\": \"ReviewRequestRemovedEvent\",\n              \"ofType\": null\n            },\n            {\n              \"kind\": \"OBJECT\",\n              \"name\": \"ReviewRequestedEvent\",\n              \"ofType\": null\n            },\n            {\n              \"kind\": \"OBJECT\",\n              \"name\": \"Status\",\n              \"ofType\": null\n            },\n            {\n              \"kind\": \"OBJECT\",\n              \"name\": \"StatusContext\",\n              \"ofType\": null\n            },\n            {\n              \"kind\": \"OBJECT\",\n              \"name\": \"SubscribedEvent\",\n              \"ofType\": null\n            },\n            {\n              \"kind\": \"OBJECT\",\n              \"name\": \"Tag\",\n              \"ofType\": null\n            },\n            {\n              \"kind\": \"OBJECT\",\n              \"name\": \"Team\",\n              \"ofType\": null\n            },\n            {\n              \"kind\": \"OBJECT\",\n              \"name\": \"Tree\",\n              \"ofType\": null\n            },\n            {\n              \"kind\": \"OBJECT\",\n              \"name\": \"UnassignedEvent\",\n              \"ofType\": null\n            },\n            {\n              \"kind\": \"OBJECT\",\n              \"name\": \"UnlabeledEvent\",\n              \"ofType\": null\n            },\n            {\n              \"kind\": \"OBJECT\",\n              \"name\": \"UnlockedEvent\",\n              \"ofType\": null\n            },\n            {\n              \"kind\": \"OBJECT\",\n              \"name\": \"UnsubscribedEvent\",\n              \"ofType\": null\n            },\n            {\n              \"kind\": \"OBJECT\",\n              \"name\": \"User\",\n              \"ofType\": null\n            }\n          ]\n        },\n        {\n          \"kind\": \"OBJECT\",\n          \"name\": \"ReactionGroup\",\n          \"description\": \"A group of emoji reactions to a particular piece of content.\",\n          \"fields\": [\n            {\n              \"name\": \"content\",\n              \"description\": \"Identifies the emoji reaction.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"ENUM\",\n                  \"name\": \"ReactionContent\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"createdAt\",\n              \"description\": \"Identifies when the reaction was created.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"DateTime\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"subject\",\n              \"description\": \"The subject that was reacted to.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"INTERFACE\",\n                  \"name\": \"Reactable\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"users\",\n              \"description\": \"Users who have reacted to the reaction subject with the emotion represented by this reaction group\",\n              \"args\": [\n                {\n                  \"name\": \"first\",\n                  \"description\": \"Returns the first _n_ elements from the list.\",\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"Int\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"after\",\n                  \"description\": \"Returns the elements in the list that come after the specified global ID.\",\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"String\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"last\",\n                  \"description\": \"Returns the last _n_ elements from the list.\",\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"Int\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"before\",\n                  \"description\": \"Returns the elements in the list that come before the specified global ID.\",\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"String\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                }\n              ],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"ReactingUserConnection\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"viewerHasReacted\",\n              \"description\": \"Whether or not the authenticated user has left a reaction on the subject.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"Boolean\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"inputFields\": null,\n          \"interfaces\": [],\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"ENUM\",\n          \"name\": \"ReactionContent\",\n          \"description\": \"Emojis that can be attached to Issues, Pull Requests and Comments.\",\n          \"fields\": null,\n          \"inputFields\": null,\n          \"interfaces\": null,\n          \"enumValues\": [\n            {\n              \"name\": \"THUMBS_UP\",\n              \"description\": \"Represents the 👍 emoji.\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"THUMBS_DOWN\",\n              \"description\": \"Represents the 👎 emoji.\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"LAUGH\",\n              \"description\": \"Represents the 😄 emoji.\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"HOORAY\",\n              \"description\": \"Represents the 🎉 emoji.\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"CONFUSED\",\n              \"description\": \"Represents the 😕 emoji.\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"HEART\",\n              \"description\": \"Represents the ❤️ emoji.\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"INTERFACE\",\n          \"name\": \"Reactable\",\n          \"description\": \"Represents a subject that can be reacted on.\",\n          \"fields\": [\n            {\n              \"name\": \"databaseId\",\n              \"description\": \"Identifies the primary key from the database.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"Int\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": true,\n              \"deprecationReason\": \"Exposed database IDs will eventually be removed in favor of global Relay IDs.\"\n            },\n            {\n              \"name\": \"id\",\n              \"description\": null,\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"ID\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"liveReactionUpdatesEnabled\",\n              \"description\": \"Are reaction live updates enabled for this subject.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"Boolean\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"reactionGroups\",\n              \"description\": \"A list of reactions grouped by content left on the subject.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"LIST\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"NON_NULL\",\n                  \"name\": null,\n                  \"ofType\": {\n                    \"kind\": \"OBJECT\",\n                    \"name\": \"ReactionGroup\",\n                    \"ofType\": null\n                  }\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"reactions\",\n              \"description\": \"A list of Reactions left on the Issue.\",\n              \"args\": [\n                {\n                  \"name\": \"first\",\n                  \"description\": \"Returns the first _n_ elements from the list.\",\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"Int\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"after\",\n                  \"description\": \"Returns the elements in the list that come after the specified global ID.\",\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"String\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"last\",\n                  \"description\": \"Returns the last _n_ elements from the list.\",\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"Int\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"before\",\n                  \"description\": \"Returns the elements in the list that come before the specified global ID.\",\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"String\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"content\",\n                  \"description\": \"Allows filtering Reactions by emoji.\",\n                  \"type\": {\n                    \"kind\": \"ENUM\",\n                    \"name\": \"ReactionContent\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"orderBy\",\n                  \"description\": \"Allows specifying the order in which reactions are returned.\",\n                  \"type\": {\n                    \"kind\": \"INPUT_OBJECT\",\n                    \"name\": \"ReactionOrder\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                }\n              ],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"ReactionConnection\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"reactionsWebsocket\",\n              \"description\": \"The websocket channel ID for reaction live updates.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"String\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"repository\",\n              \"description\": \"The repository associated with this reaction subject.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"Repository\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": true,\n              \"deprecationReason\": \"Future reaction subjects may not be scoped under repositories.\"\n            },\n            {\n              \"name\": \"viewerCanReact\",\n              \"description\": \"Can user react to this subject\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"Boolean\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"inputFields\": null,\n          \"interfaces\": null,\n          \"enumValues\": null,\n          \"possibleTypes\": [\n            {\n              \"kind\": \"OBJECT\",\n              \"name\": \"CommitComment\",\n              \"ofType\": null\n            },\n            {\n              \"kind\": \"OBJECT\",\n              \"name\": \"Issue\",\n              \"ofType\": null\n            },\n            {\n              \"kind\": \"OBJECT\",\n              \"name\": \"IssueComment\",\n              \"ofType\": null\n            },\n            {\n              \"kind\": \"OBJECT\",\n              \"name\": \"PullRequest\",\n              \"ofType\": null\n            },\n            {\n              \"kind\": \"OBJECT\",\n              \"name\": \"PullRequestReviewComment\",\n              \"ofType\": null\n            }\n          ]\n        },\n        {\n          \"kind\": \"OBJECT\",\n          \"name\": \"ReactionConnection\",\n          \"description\": \"A list of reactions that have been left on the subject.\",\n          \"fields\": [\n            {\n              \"name\": \"edges\",\n              \"description\": \"A list of edges.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"LIST\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"ReactionEdge\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"nodes\",\n              \"description\": \"A list of nodes.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"LIST\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"Reaction\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"pageInfo\",\n              \"description\": \"Information to aid in pagination.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"PageInfo\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"totalCount\",\n              \"description\": \"Identifies the total count of items in the connection.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"Int\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"viewerHasReacted\",\n              \"description\": \"Whether or not the authenticated user has left a reaction on the subject.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"Boolean\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"inputFields\": null,\n          \"interfaces\": [],\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"OBJECT\",\n          \"name\": \"ReactionEdge\",\n          \"description\": \"An edge in a connection.\",\n          \"fields\": [\n            {\n              \"name\": \"cursor\",\n              \"description\": \"A cursor for use in pagination.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"String\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"node\",\n              \"description\": \"The item at the end of the edge.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"OBJECT\",\n                \"name\": \"Reaction\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"inputFields\": null,\n          \"interfaces\": [],\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"OBJECT\",\n          \"name\": \"Reaction\",\n          \"description\": \"An emoji reaction to a particular piece of content.\",\n          \"fields\": [\n            {\n              \"name\": \"content\",\n              \"description\": \"Identifies the emoji reaction.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"ENUM\",\n                  \"name\": \"ReactionContent\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"createdAt\",\n              \"description\": \"Identifies the date and time when the object was created.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"DateTime\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"databaseId\",\n              \"description\": \"Identifies the primary key from the database.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"Int\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": true,\n              \"deprecationReason\": \"Exposed database IDs will eventually be removed in favor of global Relay IDs.\"\n            },\n            {\n              \"name\": \"id\",\n              \"description\": null,\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"ID\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"user\",\n              \"description\": \"Identifies the user who created this reaction.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"User\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"inputFields\": null,\n          \"interfaces\": [\n            {\n              \"kind\": \"INTERFACE\",\n              \"name\": \"Node\",\n              \"ofType\": null\n            }\n          ],\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"INPUT_OBJECT\",\n          \"name\": \"ReactionOrder\",\n          \"description\": \"Ways in which lists of reactions can be ordered upon return.\",\n          \"fields\": null,\n          \"inputFields\": [\n            {\n              \"name\": \"field\",\n              \"description\": \"The field in which to order reactions by.\",\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"ENUM\",\n                  \"name\": \"ReactionOrderField\",\n                  \"ofType\": null\n                }\n              },\n              \"defaultValue\": null\n            },\n            {\n              \"name\": \"direction\",\n              \"description\": \"The direction in which to order reactions by the specified field.\",\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"ENUM\",\n                  \"name\": \"OrderDirection\",\n                  \"ofType\": null\n                }\n              },\n              \"defaultValue\": null\n            }\n          ],\n          \"interfaces\": null,\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"OBJECT\",\n          \"name\": \"ReactingUserConnection\",\n          \"description\": \"The connection type for User.\",\n          \"fields\": [\n            {\n              \"name\": \"edges\",\n              \"description\": \"A list of edges.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"LIST\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"ReactingUserEdge\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"nodes\",\n              \"description\": \"A list of nodes.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"LIST\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"User\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"pageInfo\",\n              \"description\": \"Information to aid in pagination.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"PageInfo\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"totalCount\",\n              \"description\": \"Identifies the total count of items in the connection.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"Int\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"inputFields\": null,\n          \"interfaces\": [],\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"OBJECT\",\n          \"name\": \"ReactingUserEdge\",\n          \"description\": \"Represents a user that's made a reaction.\",\n          \"fields\": [\n            {\n              \"name\": \"cursor\",\n              \"description\": null,\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"String\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"node\",\n              \"description\": null,\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"User\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"reactedAt\",\n              \"description\": \"The moment when the user made the reaction.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"DateTime\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"inputFields\": null,\n          \"interfaces\": [],\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"OBJECT\",\n          \"name\": \"IssueTimelineConnection\",\n          \"description\": \"The connection type for IssueTimelineItem.\",\n          \"fields\": [\n            {\n              \"name\": \"edges\",\n              \"description\": \"A list of edges.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"LIST\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"IssueTimelineItemEdge\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"nodes\",\n              \"description\": \"A list of nodes.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"LIST\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"UNION\",\n                  \"name\": \"IssueTimelineItem\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"pageInfo\",\n              \"description\": \"Information to aid in pagination.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"PageInfo\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"totalCount\",\n              \"description\": \"Identifies the total count of items in the connection.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"Int\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"inputFields\": null,\n          \"interfaces\": [],\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"OBJECT\",\n          \"name\": \"IssueTimelineItemEdge\",\n          \"description\": \"An edge in a connection.\",\n          \"fields\": [\n            {\n              \"name\": \"cursor\",\n              \"description\": \"A cursor for use in pagination.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"String\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"node\",\n              \"description\": \"The item at the end of the edge.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"UNION\",\n                \"name\": \"IssueTimelineItem\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"inputFields\": null,\n          \"interfaces\": [],\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"UNION\",\n          \"name\": \"IssueTimelineItem\",\n          \"description\": \"An item in an issue/pull request timeline\",\n          \"fields\": null,\n          \"inputFields\": null,\n          \"interfaces\": null,\n          \"enumValues\": null,\n          \"possibleTypes\": [\n            {\n              \"kind\": \"OBJECT\",\n              \"name\": \"Commit\",\n              \"ofType\": null\n            },\n            {\n              \"kind\": \"OBJECT\",\n              \"name\": \"PullRequestReview\",\n              \"ofType\": null\n            },\n            {\n              \"kind\": \"OBJECT\",\n              \"name\": \"PullRequestReviewThread\",\n              \"ofType\": null\n            },\n            {\n              \"kind\": \"OBJECT\",\n              \"name\": \"PullRequestReviewComment\",\n              \"ofType\": null\n            },\n            {\n              \"kind\": \"OBJECT\",\n              \"name\": \"IssueComment\",\n              \"ofType\": null\n            },\n            {\n              \"kind\": \"OBJECT\",\n              \"name\": \"ClosedEvent\",\n              \"ofType\": null\n            },\n            {\n              \"kind\": \"OBJECT\",\n              \"name\": \"ReopenedEvent\",\n              \"ofType\": null\n            },\n            {\n              \"kind\": \"OBJECT\",\n              \"name\": \"SubscribedEvent\",\n              \"ofType\": null\n            },\n            {\n              \"kind\": \"OBJECT\",\n              \"name\": \"UnsubscribedEvent\",\n              \"ofType\": null\n            },\n            {\n              \"kind\": \"OBJECT\",\n              \"name\": \"MergedEvent\",\n              \"ofType\": null\n            },\n            {\n              \"kind\": \"OBJECT\",\n              \"name\": \"ReferencedEvent\",\n              \"ofType\": null\n            },\n            {\n              \"kind\": \"OBJECT\",\n              \"name\": \"MentionedEvent\",\n              \"ofType\": null\n            },\n            {\n              \"kind\": \"OBJECT\",\n              \"name\": \"AssignedEvent\",\n              \"ofType\": null\n            },\n            {\n              \"kind\": \"OBJECT\",\n              \"name\": \"UnassignedEvent\",\n              \"ofType\": null\n            },\n            {\n              \"kind\": \"OBJECT\",\n              \"name\": \"LabeledEvent\",\n              \"ofType\": null\n            },\n            {\n              \"kind\": \"OBJECT\",\n              \"name\": \"UnlabeledEvent\",\n              \"ofType\": null\n            },\n            {\n              \"kind\": \"OBJECT\",\n              \"name\": \"MilestonedEvent\",\n              \"ofType\": null\n            },\n            {\n              \"kind\": \"OBJECT\",\n              \"name\": \"DemilestonedEvent\",\n              \"ofType\": null\n            },\n            {\n              \"kind\": \"OBJECT\",\n              \"name\": \"RenamedEvent\",\n              \"ofType\": null\n            },\n            {\n              \"kind\": \"OBJECT\",\n              \"name\": \"LockedEvent\",\n              \"ofType\": null\n            },\n            {\n              \"kind\": \"OBJECT\",\n              \"name\": \"UnlockedEvent\",\n              \"ofType\": null\n            },\n            {\n              \"kind\": \"OBJECT\",\n              \"name\": \"DeployedEvent\",\n              \"ofType\": null\n            },\n            {\n              \"kind\": \"OBJECT\",\n              \"name\": \"HeadRefDeletedEvent\",\n              \"ofType\": null\n            },\n            {\n              \"kind\": \"OBJECT\",\n              \"name\": \"HeadRefRestoredEvent\",\n              \"ofType\": null\n            },\n            {\n              \"kind\": \"OBJECT\",\n              \"name\": \"HeadRefForcePushedEvent\",\n              \"ofType\": null\n            },\n            {\n              \"kind\": \"OBJECT\",\n              \"name\": \"BaseRefForcePushedEvent\",\n              \"ofType\": null\n            },\n            {\n              \"kind\": \"OBJECT\",\n              \"name\": \"ReviewRequestedEvent\",\n              \"ofType\": null\n            },\n            {\n              \"kind\": \"OBJECT\",\n              \"name\": \"ReviewRequestRemovedEvent\",\n              \"ofType\": null\n            },\n            {\n              \"kind\": \"OBJECT\",\n              \"name\": \"ReviewDismissedEvent\",\n              \"ofType\": null\n            }\n          ]\n        },\n        {\n          \"kind\": \"OBJECT\",\n          \"name\": \"Commit\",\n          \"description\": \"Represents a Git commit.\",\n          \"fields\": [\n            {\n              \"name\": \"author\",\n              \"description\": \"Authorship details of the commit.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"OBJECT\",\n                \"name\": \"GitActor\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"blame\",\n              \"description\": \"Fetches `git blame` information.\",\n              \"args\": [\n                {\n                  \"name\": \"path\",\n                  \"description\": \"The file whose Git blame information you want.\",\n                  \"type\": {\n                    \"kind\": \"NON_NULL\",\n                    \"name\": null,\n                    \"ofType\": {\n                      \"kind\": \"SCALAR\",\n                      \"name\": \"String\",\n                      \"ofType\": null\n                    }\n                  },\n                  \"defaultValue\": null\n                }\n              ],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"Blame\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"comments\",\n              \"description\": \"Comments made on the commit.\",\n              \"args\": [\n                {\n                  \"name\": \"first\",\n                  \"description\": \"Returns the first _n_ elements from the list.\",\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"Int\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"after\",\n                  \"description\": \"Returns the elements in the list that come after the specified global ID.\",\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"String\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"last\",\n                  \"description\": \"Returns the last _n_ elements from the list.\",\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"Int\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"before\",\n                  \"description\": \"Returns the elements in the list that come before the specified global ID.\",\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"String\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                }\n              ],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"CommitCommentConnection\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"committedViaWeb\",\n              \"description\": \"Check if commited via GitHub web UI.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"Boolean\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"committer\",\n              \"description\": \"Committership details of the commit.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"OBJECT\",\n                \"name\": \"GitActor\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"history\",\n              \"description\": \"The linear commit history starting from (and including) this commit, in the same order as `git log`.\",\n              \"args\": [\n                {\n                  \"name\": \"first\",\n                  \"description\": \"Returns the first _n_ elements from the list.\",\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"Int\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"after\",\n                  \"description\": \"Returns the elements in the list that come after the specified global ID.\",\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"String\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"last\",\n                  \"description\": \"Returns the last _n_ elements from the list.\",\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"Int\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"before\",\n                  \"description\": \"Returns the elements in the list that come before the specified global ID.\",\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"String\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"path\",\n                  \"description\": \"If non-null, filters history to only show commits touching files under this path.\",\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"String\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"author\",\n                  \"description\": \"If non-null, filters history to only show commits with matching authorship.\",\n                  \"type\": {\n                    \"kind\": \"INPUT_OBJECT\",\n                    \"name\": \"CommitAuthor\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"since\",\n                  \"description\": \"Allows specifying a beginning time or date for fetching commits.\",\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"GitTimestamp\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"until\",\n                  \"description\": \"Allows specifying an ending time or date for fetching commits.\",\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"GitTimestamp\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                }\n              ],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"CommitHistoryConnection\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"id\",\n              \"description\": null,\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"ID\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"message\",\n              \"description\": \"The Git commit message\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"String\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"messageBody\",\n              \"description\": \"The Git commit message body\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"String\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"messageBodyHTML\",\n              \"description\": \"The commit message body rendered to HTML.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"HTML\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"messageHeadline\",\n              \"description\": \"The Git commit message headline\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"String\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"messageHeadlineHTML\",\n              \"description\": \"The commit message headline rendered to HTML.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"HTML\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"oid\",\n              \"description\": \"The Git object ID\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"GitObjectID\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"path\",\n              \"description\": \"The HTTP path for this commit\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"URI\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"repository\",\n              \"description\": \"The Repository this commit belongs to\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"Repository\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"signature\",\n              \"description\": \"Commit signing information, if present.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"INTERFACE\",\n                \"name\": \"GitSignature\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"status\",\n              \"description\": \"Status information for this commit\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"OBJECT\",\n                \"name\": \"Status\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"tree\",\n              \"description\": \"Commit's root Tree\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"Tree\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"url\",\n              \"description\": \"The HTTP url for this commit\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"URI\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"websocket\",\n              \"description\": \"The websocket channel ID for live updates.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"String\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"inputFields\": null,\n          \"interfaces\": [\n            {\n              \"kind\": \"INTERFACE\",\n              \"name\": \"Node\",\n              \"ofType\": null\n            },\n            {\n              \"kind\": \"INTERFACE\",\n              \"name\": \"GitObject\",\n              \"ofType\": null\n            }\n          ],\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"SCALAR\",\n          \"name\": \"GitObjectID\",\n          \"description\": \"A Git object ID.\",\n          \"fields\": null,\n          \"inputFields\": null,\n          \"interfaces\": null,\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"OBJECT\",\n          \"name\": \"Tree\",\n          \"description\": \"Represents a Git tree.\",\n          \"fields\": [\n            {\n              \"name\": \"entries\",\n              \"description\": \"A list of tree entries.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"LIST\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"NON_NULL\",\n                  \"name\": null,\n                  \"ofType\": {\n                    \"kind\": \"OBJECT\",\n                    \"name\": \"TreeEntry\",\n                    \"ofType\": null\n                  }\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"id\",\n              \"description\": null,\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"ID\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"oid\",\n              \"description\": \"The Git object ID\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"GitObjectID\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"repository\",\n              \"description\": \"The Repository the Git object belongs to\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"Repository\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"inputFields\": null,\n          \"interfaces\": [\n            {\n              \"kind\": \"INTERFACE\",\n              \"name\": \"Node\",\n              \"ofType\": null\n            },\n            {\n              \"kind\": \"INTERFACE\",\n              \"name\": \"GitObject\",\n              \"ofType\": null\n            }\n          ],\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"OBJECT\",\n          \"name\": \"TreeEntry\",\n          \"description\": \"Represents a Git tree entry.\",\n          \"fields\": [\n            {\n              \"name\": \"mode\",\n              \"description\": \"Entry file mode.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"Int\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"name\",\n              \"description\": \"Entry file name.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"String\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"object\",\n              \"description\": \"Entry file object.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"INTERFACE\",\n                  \"name\": \"GitObject\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"oid\",\n              \"description\": \"Entry file Git object ID.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"GitObjectID\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"repository\",\n              \"description\": \"The Repository the tree entry belongs to\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"Repository\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"type\",\n              \"description\": \"Entry file type.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"String\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"inputFields\": null,\n          \"interfaces\": [],\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"INTERFACE\",\n          \"name\": \"GitObject\",\n          \"description\": \"Represents a Git object.\",\n          \"fields\": [\n            {\n              \"name\": \"id\",\n              \"description\": null,\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"ID\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"oid\",\n              \"description\": \"The Git object ID\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"GitObjectID\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"repository\",\n              \"description\": \"The Repository the Git object belongs to\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"Repository\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"inputFields\": null,\n          \"interfaces\": null,\n          \"enumValues\": null,\n          \"possibleTypes\": [\n            {\n              \"kind\": \"OBJECT\",\n              \"name\": \"Blob\",\n              \"ofType\": null\n            },\n            {\n              \"kind\": \"OBJECT\",\n              \"name\": \"Commit\",\n              \"ofType\": null\n            },\n            {\n              \"kind\": \"OBJECT\",\n              \"name\": \"Tag\",\n              \"ofType\": null\n            },\n            {\n              \"kind\": \"OBJECT\",\n              \"name\": \"Tree\",\n              \"ofType\": null\n            }\n          ]\n        },\n        {\n          \"kind\": \"OBJECT\",\n          \"name\": \"GitActor\",\n          \"description\": \"Represents an actor in a Git commit (ie. an author or committer).\",\n          \"fields\": [\n            {\n              \"name\": \"avatarURL\",\n              \"description\": \"A URL pointing to the author's public avatar.\",\n              \"args\": [\n                {\n                  \"name\": \"size\",\n                  \"description\": \"The size of the resulting square image.\",\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"Int\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                }\n              ],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"String\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"date\",\n              \"description\": \"The timestamp of the Git action (authoring or committing).\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"GitTimestamp\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"email\",\n              \"description\": \"The email in the Git commit.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"String\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"name\",\n              \"description\": \"The name in the Git commit.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"String\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"user\",\n              \"description\": \"The GitHub user corresponding to the email field. Null if no such user exists.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"OBJECT\",\n                \"name\": \"User\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"inputFields\": null,\n          \"interfaces\": [],\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"SCALAR\",\n          \"name\": \"GitTimestamp\",\n          \"description\": \"An ISO-8601 encoded date string. Unlike the DateTime type, GitTimestamp is not converted in UTC.\",\n          \"fields\": null,\n          \"inputFields\": null,\n          \"interfaces\": null,\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"OBJECT\",\n          \"name\": \"CommitHistoryConnection\",\n          \"description\": \"The connection type for Commit.\",\n          \"fields\": [\n            {\n              \"name\": \"edges\",\n              \"description\": null,\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"LIST\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"CommitEdge\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"nodes\",\n              \"description\": \"A list of nodes.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"LIST\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"Commit\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"pageInfo\",\n              \"description\": \"Information to aid in pagination.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"PageInfo\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"inputFields\": null,\n          \"interfaces\": [],\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"OBJECT\",\n          \"name\": \"CommitEdge\",\n          \"description\": \"An edge in a connection.\",\n          \"fields\": [\n            {\n              \"name\": \"cursor\",\n              \"description\": \"A cursor for use in pagination.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"String\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"node\",\n              \"description\": \"The item at the end of the edge.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"OBJECT\",\n                \"name\": \"Commit\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"inputFields\": null,\n          \"interfaces\": [],\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"INPUT_OBJECT\",\n          \"name\": \"CommitAuthor\",\n          \"description\": \"Specifies an author for filtering Git commits.\",\n          \"fields\": null,\n          \"inputFields\": [\n            {\n              \"name\": \"id\",\n              \"description\": \"ID of a User to filter by. If non-null, only commits authored by this user will be returned. This field takes precedence over emails.\",\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"ID\",\n                \"ofType\": null\n              },\n              \"defaultValue\": null\n            },\n            {\n              \"name\": \"emails\",\n              \"description\": \"Email addresses to filter by. Commits authored by any of the specified email addresses will be returned.\",\n              \"type\": {\n                \"kind\": \"LIST\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"NON_NULL\",\n                  \"name\": null,\n                  \"ofType\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"String\",\n                    \"ofType\": null\n                  }\n                }\n              },\n              \"defaultValue\": null\n            }\n          ],\n          \"interfaces\": null,\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"OBJECT\",\n          \"name\": \"CommitCommentConnection\",\n          \"description\": \"The connection type for CommitComment.\",\n          \"fields\": [\n            {\n              \"name\": \"edges\",\n              \"description\": \"A list of edges.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"LIST\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"CommitCommentEdge\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"nodes\",\n              \"description\": \"A list of nodes.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"LIST\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"CommitComment\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"pageInfo\",\n              \"description\": \"Information to aid in pagination.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"PageInfo\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"totalCount\",\n              \"description\": \"Identifies the total count of items in the connection.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"Int\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"inputFields\": null,\n          \"interfaces\": [],\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"OBJECT\",\n          \"name\": \"CommitCommentEdge\",\n          \"description\": \"An edge in a connection.\",\n          \"fields\": [\n            {\n              \"name\": \"cursor\",\n              \"description\": \"A cursor for use in pagination.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"String\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"node\",\n              \"description\": \"The item at the end of the edge.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"OBJECT\",\n                \"name\": \"CommitComment\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"inputFields\": null,\n          \"interfaces\": [],\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"OBJECT\",\n          \"name\": \"CommitComment\",\n          \"description\": \"Represents a comment on a given Commit.\",\n          \"fields\": [\n            {\n              \"name\": \"author\",\n              \"description\": \"Identifies the user who created the comment.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"OBJECT\",\n                \"name\": \"User\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"body\",\n              \"description\": \"Identifies the comment body.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"String\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"bodyHTML\",\n              \"description\": \"Identifies the comment body rendered to HTML.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"HTML\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"commit\",\n              \"description\": \"Identifies the commit associated with the comment.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"Commit\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"createdAt\",\n              \"description\": \"Identifies the date and time when the object was created.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"DateTime\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"createdViaEmail\",\n              \"description\": \"Check if this comment was created via an email reply.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"Boolean\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"databaseId\",\n              \"description\": \"Identifies the primary key from the database.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"Int\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": true,\n              \"deprecationReason\": \"Exposed database IDs will eventually be removed in favor of global Relay IDs.\"\n            },\n            {\n              \"name\": \"editor\",\n              \"description\": \"The user who edited the comment.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"OBJECT\",\n                \"name\": \"User\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"id\",\n              \"description\": null,\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"ID\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"lastEditedAt\",\n              \"description\": \"The moment the editor made the last edit\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"DateTime\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"liveReactionUpdatesEnabled\",\n              \"description\": \"Are reaction live updates enabled for this subject.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"Boolean\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"path\",\n              \"description\": \"Identifies the file path associated with the comment.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"String\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"position\",\n              \"description\": \"Identifies the line position associated with the comment.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"Int\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"reactionGroups\",\n              \"description\": \"A list of reactions grouped by content left on the subject.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"LIST\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"NON_NULL\",\n                  \"name\": null,\n                  \"ofType\": {\n                    \"kind\": \"OBJECT\",\n                    \"name\": \"ReactionGroup\",\n                    \"ofType\": null\n                  }\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"reactions\",\n              \"description\": \"A list of Reactions left on the Issue.\",\n              \"args\": [\n                {\n                  \"name\": \"first\",\n                  \"description\": \"Returns the first _n_ elements from the list.\",\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"Int\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"after\",\n                  \"description\": \"Returns the elements in the list that come after the specified global ID.\",\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"String\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"last\",\n                  \"description\": \"Returns the last _n_ elements from the list.\",\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"Int\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"before\",\n                  \"description\": \"Returns the elements in the list that come before the specified global ID.\",\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"String\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"content\",\n                  \"description\": \"Allows filtering Reactions by emoji.\",\n                  \"type\": {\n                    \"kind\": \"ENUM\",\n                    \"name\": \"ReactionContent\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"orderBy\",\n                  \"description\": \"Allows specifying the order in which reactions are returned.\",\n                  \"type\": {\n                    \"kind\": \"INPUT_OBJECT\",\n                    \"name\": \"ReactionOrder\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                }\n              ],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"ReactionConnection\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"reactionsWebsocket\",\n              \"description\": \"The websocket channel ID for reaction live updates.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"String\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"repository\",\n              \"description\": \"Identifies the repository associated with the comment.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"Repository\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"updatedAt\",\n              \"description\": \"Identifies the date and time when the object was last updated.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"DateTime\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"user\",\n              \"description\": \"Identifies the user who created the comment.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"User\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": true,\n              \"deprecationReason\": \"Use `author`.\"\n            },\n            {\n              \"name\": \"viewerCanDelete\",\n              \"description\": \"Check if the current viewer can delete this comment.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"Boolean\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"viewerCanEdit\",\n              \"description\": \"Check if the current viewer edit this comment.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"Boolean\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"viewerCanReact\",\n              \"description\": \"Can user react to this subject\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"Boolean\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"viewerCannotEditReasons\",\n              \"description\": \"Errors why the current viewer can not edit this comment.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"LIST\",\n                  \"name\": null,\n                  \"ofType\": {\n                    \"kind\": \"NON_NULL\",\n                    \"name\": null,\n                    \"ofType\": {\n                      \"kind\": \"ENUM\",\n                      \"name\": \"CommentCannotEditReason\",\n                      \"ofType\": null\n                    }\n                  }\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"viewerDidAuthor\",\n              \"description\": \"Did the viewer author this comment.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"Boolean\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"inputFields\": null,\n          \"interfaces\": [\n            {\n              \"kind\": \"INTERFACE\",\n              \"name\": \"Node\",\n              \"ofType\": null\n            },\n            {\n              \"kind\": \"INTERFACE\",\n              \"name\": \"Comment\",\n              \"ofType\": null\n            },\n            {\n              \"kind\": \"INTERFACE\",\n              \"name\": \"Reactable\",\n              \"ofType\": null\n            },\n            {\n              \"kind\": \"INTERFACE\",\n              \"name\": \"RepositoryNode\",\n              \"ofType\": null\n            }\n          ],\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"INTERFACE\",\n          \"name\": \"Comment\",\n          \"description\": \"Represents a comment.\",\n          \"fields\": [\n            {\n              \"name\": \"author\",\n              \"description\": \"The user who authored the comment.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"OBJECT\",\n                \"name\": \"User\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"body\",\n              \"description\": \"The comment body as Markdown.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"String\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"bodyHTML\",\n              \"description\": \"The comment body rendered to HTML.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"HTML\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"createdAt\",\n              \"description\": \"Identifies the date and time when the object was created.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"DateTime\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"createdViaEmail\",\n              \"description\": \"Check if this comment was created via an email reply.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"Boolean\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"editor\",\n              \"description\": \"The user who edited the comment.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"OBJECT\",\n                \"name\": \"User\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"id\",\n              \"description\": null,\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"ID\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"lastEditedAt\",\n              \"description\": \"The moment the editor made the last edit\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"DateTime\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"updatedAt\",\n              \"description\": \"Identifies the date and time when the object was last updated.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"DateTime\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"viewerCanDelete\",\n              \"description\": \"Check if the current viewer can delete this comment.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"Boolean\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"viewerCanEdit\",\n              \"description\": \"Check if the current viewer edit this comment.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"Boolean\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"viewerCannotEditReasons\",\n              \"description\": \"Errors why the current viewer can not edit this comment.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"LIST\",\n                  \"name\": null,\n                  \"ofType\": {\n                    \"kind\": \"NON_NULL\",\n                    \"name\": null,\n                    \"ofType\": {\n                      \"kind\": \"ENUM\",\n                      \"name\": \"CommentCannotEditReason\",\n                      \"ofType\": null\n                    }\n                  }\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"viewerDidAuthor\",\n              \"description\": \"Did the viewer author this comment.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"Boolean\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"inputFields\": null,\n          \"interfaces\": null,\n          \"enumValues\": null,\n          \"possibleTypes\": [\n            {\n              \"kind\": \"OBJECT\",\n              \"name\": \"CommitComment\",\n              \"ofType\": null\n            },\n            {\n              \"kind\": \"OBJECT\",\n              \"name\": \"GistComment\",\n              \"ofType\": null\n            },\n            {\n              \"kind\": \"OBJECT\",\n              \"name\": \"Issue\",\n              \"ofType\": null\n            },\n            {\n              \"kind\": \"OBJECT\",\n              \"name\": \"IssueComment\",\n              \"ofType\": null\n            },\n            {\n              \"kind\": \"OBJECT\",\n              \"name\": \"PullRequest\",\n              \"ofType\": null\n            },\n            {\n              \"kind\": \"OBJECT\",\n              \"name\": \"PullRequestReview\",\n              \"ofType\": null\n            },\n            {\n              \"kind\": \"OBJECT\",\n              \"name\": \"PullRequestReviewComment\",\n              \"ofType\": null\n            }\n          ]\n        },\n        {\n          \"kind\": \"INTERFACE\",\n          \"name\": \"RepositoryNode\",\n          \"description\": \"Represents a object that belongs to a repository.\",\n          \"fields\": [\n            {\n              \"name\": \"repository\",\n              \"description\": \"The repository associated with this node.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"Repository\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"inputFields\": null,\n          \"interfaces\": null,\n          \"enumValues\": null,\n          \"possibleTypes\": [\n            {\n              \"kind\": \"OBJECT\",\n              \"name\": \"CommitComment\",\n              \"ofType\": null\n            },\n            {\n              \"kind\": \"OBJECT\",\n              \"name\": \"Issue\",\n              \"ofType\": null\n            },\n            {\n              \"kind\": \"OBJECT\",\n              \"name\": \"IssueComment\",\n              \"ofType\": null\n            },\n            {\n              \"kind\": \"OBJECT\",\n              \"name\": \"PullRequest\",\n              \"ofType\": null\n            },\n            {\n              \"kind\": \"OBJECT\",\n              \"name\": \"PullRequestReview\",\n              \"ofType\": null\n            },\n            {\n              \"kind\": \"OBJECT\",\n              \"name\": \"PullRequestReviewComment\",\n              \"ofType\": null\n            }\n          ]\n        },\n        {\n          \"kind\": \"INTERFACE\",\n          \"name\": \"GitSignature\",\n          \"description\": \"Information about a signature (GPG or S/MIME) on a Commit or Tag.\",\n          \"fields\": [\n            {\n              \"name\": \"email\",\n              \"description\": \"Email used to sign this object.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"String\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"isValid\",\n              \"description\": \"True if the signature is valid and verified by GitHub.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"Boolean\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"payload\",\n              \"description\": \"Payload for GPG signing object. Raw ODB object without the signature header.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"String\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"signature\",\n              \"description\": \"ASCII-armored signature header from object.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"String\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"signer\",\n              \"description\": \"GitHub user corresponding to the email signing this commit.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"OBJECT\",\n                \"name\": \"User\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"state\",\n              \"description\": \"The state of this signature. `VALID` if signature is valid and verified by GitHub, otherwise represents reason why signature is considered invalid.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"ENUM\",\n                  \"name\": \"GitSignatureState\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"inputFields\": null,\n          \"interfaces\": null,\n          \"enumValues\": null,\n          \"possibleTypes\": [\n            {\n              \"kind\": \"OBJECT\",\n              \"name\": \"GpgSignature\",\n              \"ofType\": null\n            },\n            {\n              \"kind\": \"OBJECT\",\n              \"name\": \"SmimeSignature\",\n              \"ofType\": null\n            },\n            {\n              \"kind\": \"OBJECT\",\n              \"name\": \"UnknownSignature\",\n              \"ofType\": null\n            }\n          ]\n        },\n        {\n          \"kind\": \"ENUM\",\n          \"name\": \"GitSignatureState\",\n          \"description\": \"The state of a Git signature.\",\n          \"fields\": null,\n          \"inputFields\": null,\n          \"interfaces\": null,\n          \"enumValues\": [\n            {\n              \"name\": \"VALID\",\n              \"description\": \"Valid signature and verified by GitHub.\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"INVALID\",\n              \"description\": \"Invalid signature.\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"MALFORMED_SIG\",\n              \"description\": \"Malformed signature.\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"UNKNOWN_KEY\",\n              \"description\": \"Key used for signing not known to GitHub.\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"BAD_EMAIL\",\n              \"description\": \"Invalid email used for signing.\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"UNVERIFIED_EMAIL\",\n              \"description\": \"Email used for signing unverified on GitHub.\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"NO_USER\",\n              \"description\": \"Email used for signing not known to GitHub.\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"UNKNOWN_SIG_TYPE\",\n              \"description\": \"Unknown signature type.\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"UNSIGNED\",\n              \"description\": \"Unsigned.\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"GPGVERIFY_UNAVAILABLE\",\n              \"description\": \"Internal error - the GPG verification service is unavailable at the moment.\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"GPGVERIFY_ERROR\",\n              \"description\": \"Internal error - the GPG verification service misbehaved.\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"NOT_SIGNING_KEY\",\n              \"description\": \"The usage flags for the key that signed this don't allow signing.\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"EXPIRED_KEY\",\n              \"description\": \"Signing key expired.\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"OBJECT\",\n          \"name\": \"Status\",\n          \"description\": \"Represents a commit status.\",\n          \"fields\": [\n            {\n              \"name\": \"commit\",\n              \"description\": \"The commit this status is attached to.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"OBJECT\",\n                \"name\": \"Commit\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"context\",\n              \"description\": \"Looks up an individual status context by context name.\",\n              \"args\": [\n                {\n                  \"name\": \"name\",\n                  \"description\": \"The context name.\",\n                  \"type\": {\n                    \"kind\": \"NON_NULL\",\n                    \"name\": null,\n                    \"ofType\": {\n                      \"kind\": \"SCALAR\",\n                      \"name\": \"String\",\n                      \"ofType\": null\n                    }\n                  },\n                  \"defaultValue\": null\n                }\n              ],\n              \"type\": {\n                \"kind\": \"OBJECT\",\n                \"name\": \"StatusContext\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"contexts\",\n              \"description\": \"The individual status contexts for this commit.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"LIST\",\n                  \"name\": null,\n                  \"ofType\": {\n                    \"kind\": \"NON_NULL\",\n                    \"name\": null,\n                    \"ofType\": {\n                      \"kind\": \"OBJECT\",\n                      \"name\": \"StatusContext\",\n                      \"ofType\": null\n                    }\n                  }\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"id\",\n              \"description\": null,\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"ID\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"state\",\n              \"description\": \"The combined commit status.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"ENUM\",\n                  \"name\": \"StatusState\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"inputFields\": null,\n          \"interfaces\": [\n            {\n              \"kind\": \"INTERFACE\",\n              \"name\": \"Node\",\n              \"ofType\": null\n            }\n          ],\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"ENUM\",\n          \"name\": \"StatusState\",\n          \"description\": \"The possible commit status states.\",\n          \"fields\": null,\n          \"inputFields\": null,\n          \"interfaces\": null,\n          \"enumValues\": [\n            {\n              \"name\": \"EXPECTED\",\n              \"description\": \"Status is expected.\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"ERROR\",\n              \"description\": \"Status is errored.\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"FAILURE\",\n              \"description\": \"Status is failing.\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"PENDING\",\n              \"description\": \"Status is pending.\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"SUCCESS\",\n              \"description\": \"Status is successful.\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"OBJECT\",\n          \"name\": \"StatusContext\",\n          \"description\": \"Represents an individual commit status context\",\n          \"fields\": [\n            {\n              \"name\": \"commit\",\n              \"description\": \"This commit this status context is attached to.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"OBJECT\",\n                \"name\": \"Commit\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"context\",\n              \"description\": \"The name of this status context.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"String\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"createdAt\",\n              \"description\": \"Identifies the date and time when the object was created.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"DateTime\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"creator\",\n              \"description\": \"The user that created this status context.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"OBJECT\",\n                \"name\": \"User\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"description\",\n              \"description\": \"The description for this status context.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"String\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"id\",\n              \"description\": null,\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"ID\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"state\",\n              \"description\": \"The state of this status context.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"ENUM\",\n                  \"name\": \"StatusState\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"targetURL\",\n              \"description\": \"The URL for this status context.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"String\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"inputFields\": null,\n          \"interfaces\": [\n            {\n              \"kind\": \"INTERFACE\",\n              \"name\": \"Node\",\n              \"ofType\": null\n            }\n          ],\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"OBJECT\",\n          \"name\": \"Blame\",\n          \"description\": \"Represents a Git blame.\",\n          \"fields\": [\n            {\n              \"name\": \"ranges\",\n              \"description\": \"The list of ranges from a Git blame.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"LIST\",\n                  \"name\": null,\n                  \"ofType\": {\n                    \"kind\": \"NON_NULL\",\n                    \"name\": null,\n                    \"ofType\": {\n                      \"kind\": \"OBJECT\",\n                      \"name\": \"BlameRange\",\n                      \"ofType\": null\n                    }\n                  }\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"inputFields\": null,\n          \"interfaces\": [],\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"OBJECT\",\n          \"name\": \"BlameRange\",\n          \"description\": \"Represents a range of information from a Git blame.\",\n          \"fields\": [\n            {\n              \"name\": \"age\",\n              \"description\": \"Identifies the recency of the change, from 1 (new) to 10 (old). This is calculated as a 2-quantile and determines the length of distance between the median age of all the changes in the file and the recency of the current range's change.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"Int\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"commit\",\n              \"description\": \"Identifies the line author\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"Commit\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"endingLine\",\n              \"description\": \"The ending line for the range\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"Int\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"startingLine\",\n              \"description\": \"The starting line for the range\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"Int\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"inputFields\": null,\n          \"interfaces\": [],\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"OBJECT\",\n          \"name\": \"PullRequestReview\",\n          \"description\": \"A review object for a given pull request.\",\n          \"fields\": [\n            {\n              \"name\": \"author\",\n              \"description\": \"Identifies the author associated with this pull request review.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"User\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"body\",\n              \"description\": \"Identifies the pull request review body.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"String\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"bodyHTML\",\n              \"description\": \"The body of this review rendered to HTML.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"HTML\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"bodyText\",\n              \"description\": \"The body of this review rendered as plain text.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"String\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"comments\",\n              \"description\": \"A list of review comments for the current pull request review.\",\n              \"args\": [\n                {\n                  \"name\": \"first\",\n                  \"description\": \"Returns the first _n_ elements from the list.\",\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"Int\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"after\",\n                  \"description\": \"Returns the elements in the list that come after the specified global ID.\",\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"String\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"last\",\n                  \"description\": \"Returns the last _n_ elements from the list.\",\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"Int\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"before\",\n                  \"description\": \"Returns the elements in the list that come before the specified global ID.\",\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"String\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                }\n              ],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"PullRequestReviewCommentConnection\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"commit\",\n              \"description\": \"Identifies the commit associated with this pull request review.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"Commit\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"createdAt\",\n              \"description\": \"Identifies the date and time when the object was created.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"DateTime\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"createdViaEmail\",\n              \"description\": \"Check if this comment was created via an email reply.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"Boolean\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"databaseId\",\n              \"description\": \"Identifies the primary key from the database.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"Int\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": true,\n              \"deprecationReason\": \"Exposed database IDs will eventually be removed in favor of global Relay IDs.\"\n            },\n            {\n              \"name\": \"editor\",\n              \"description\": \"The user who edited the comment.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"OBJECT\",\n                \"name\": \"User\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"id\",\n              \"description\": null,\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"ID\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"lastEditedAt\",\n              \"description\": \"The moment the editor made the last edit\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"DateTime\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"path\",\n              \"description\": \"The HTTP URL permalink for this PullRequestReview.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"URI\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"pullRequest\",\n              \"description\": \"Identifies the pull request associated with this pull request review.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"PullRequest\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"repository\",\n              \"description\": \"The repository associated with this node.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"Repository\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"state\",\n              \"description\": \"Identifies the current state of the pull request review.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"ENUM\",\n                  \"name\": \"PullRequestReviewState\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"submittedAt\",\n              \"description\": \"Identifies when the Pull Request Review was submitted\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"DateTime\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"updatedAt\",\n              \"description\": \"Identifies the date and time when the object was last updated.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"DateTime\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"url\",\n              \"description\": \"The HTTP URL permalink for this PullRequestReview.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"URI\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"viewerCanDelete\",\n              \"description\": \"Check if the current viewer can delete this comment.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"Boolean\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"viewerCanEdit\",\n              \"description\": \"Check if the current viewer edit this comment.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"Boolean\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"viewerCannotEditReasons\",\n              \"description\": \"Errors why the current viewer can not edit this comment.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"LIST\",\n                  \"name\": null,\n                  \"ofType\": {\n                    \"kind\": \"NON_NULL\",\n                    \"name\": null,\n                    \"ofType\": {\n                      \"kind\": \"ENUM\",\n                      \"name\": \"CommentCannotEditReason\",\n                      \"ofType\": null\n                    }\n                  }\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"viewerDidAuthor\",\n              \"description\": \"Did the viewer author this comment.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"Boolean\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"inputFields\": null,\n          \"interfaces\": [\n            {\n              \"kind\": \"INTERFACE\",\n              \"name\": \"Node\",\n              \"ofType\": null\n            },\n            {\n              \"kind\": \"INTERFACE\",\n              \"name\": \"Comment\",\n              \"ofType\": null\n            },\n            {\n              \"kind\": \"INTERFACE\",\n              \"name\": \"RepositoryNode\",\n              \"ofType\": null\n            }\n          ],\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"ENUM\",\n          \"name\": \"PullRequestReviewState\",\n          \"description\": \"The possible states of a pull request review.\",\n          \"fields\": null,\n          \"inputFields\": null,\n          \"interfaces\": null,\n          \"enumValues\": [\n            {\n              \"name\": \"PENDING\",\n              \"description\": \"A review that has not yet been submitted.\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"COMMENTED\",\n              \"description\": \"An informational review.\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"APPROVED\",\n              \"description\": \"A review allowing the pull request to merge.\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"CHANGES_REQUESTED\",\n              \"description\": \"A review blocking the pull request from merging.\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"DISMISSED\",\n              \"description\": \"A review that has been dismissed.\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"OBJECT\",\n          \"name\": \"PullRequestReviewCommentConnection\",\n          \"description\": \"The connection type for PullRequestReviewComment.\",\n          \"fields\": [\n            {\n              \"name\": \"edges\",\n              \"description\": \"A list of edges.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"LIST\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"PullRequestReviewCommentEdge\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"nodes\",\n              \"description\": \"A list of nodes.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"LIST\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"PullRequestReviewComment\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"pageInfo\",\n              \"description\": \"Information to aid in pagination.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"PageInfo\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"totalCount\",\n              \"description\": \"Identifies the total count of items in the connection.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"Int\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"inputFields\": null,\n          \"interfaces\": [],\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"OBJECT\",\n          \"name\": \"PullRequestReviewCommentEdge\",\n          \"description\": \"An edge in a connection.\",\n          \"fields\": [\n            {\n              \"name\": \"cursor\",\n              \"description\": \"A cursor for use in pagination.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"String\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"node\",\n              \"description\": \"The item at the end of the edge.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"OBJECT\",\n                \"name\": \"PullRequestReviewComment\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"inputFields\": null,\n          \"interfaces\": [],\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"OBJECT\",\n          \"name\": \"PullRequestReviewComment\",\n          \"description\": \"A review comment associated with a given repository pull request.\",\n          \"fields\": [\n            {\n              \"name\": \"author\",\n              \"description\": \"The user associated with this review comment.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"OBJECT\",\n                \"name\": \"User\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"body\",\n              \"description\": \"The comment body of this review comment.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"String\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"bodyHTML\",\n              \"description\": \"The comment body of this review comment rendered to HTML.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"HTML\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"bodyText\",\n              \"description\": \"The comment body of this review comment rendered as plain text.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"String\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"commit\",\n              \"description\": \"Identifies the commit associated with the comment.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"Commit\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"createdAt\",\n              \"description\": \"Identifies when the comment was created.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"DateTime\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"createdViaEmail\",\n              \"description\": \"Check if this comment was created via an email reply.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"Boolean\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"databaseId\",\n              \"description\": \"Identifies the primary key from the database.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"Int\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": true,\n              \"deprecationReason\": \"Exposed database IDs will eventually be removed in favor of global Relay IDs.\"\n            },\n            {\n              \"name\": \"diffHunk\",\n              \"description\": \"The diff hunk to which the comment applies.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"String\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"editor\",\n              \"description\": \"The user who edited the comment.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"OBJECT\",\n                \"name\": \"User\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"id\",\n              \"description\": null,\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"ID\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"lastEditedAt\",\n              \"description\": \"The moment the editor made the last edit\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"DateTime\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"liveReactionUpdatesEnabled\",\n              \"description\": \"Are reaction live updates enabled for this subject.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"Boolean\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"originalCommit\",\n              \"description\": \"Identifies the original commit associated with the comment.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"Commit\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"originalPosition\",\n              \"description\": \"The original line index in the diff to which the comment applies.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"Int\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"path\",\n              \"description\": \"The path to which the comment applies.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"String\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"position\",\n              \"description\": \"The line index in the diff to which the comment applies.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"Int\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"pullRequest\",\n              \"description\": \"The pull request associated with this review comment.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"PullRequest\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"pullRequestReview\",\n              \"description\": \"The pull request review associated with this review comment.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"PullRequestReview\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"reactionGroups\",\n              \"description\": \"A list of reactions grouped by content left on the subject.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"LIST\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"NON_NULL\",\n                  \"name\": null,\n                  \"ofType\": {\n                    \"kind\": \"OBJECT\",\n                    \"name\": \"ReactionGroup\",\n                    \"ofType\": null\n                  }\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"reactions\",\n              \"description\": \"A list of Reactions left on the Issue.\",\n              \"args\": [\n                {\n                  \"name\": \"first\",\n                  \"description\": \"Returns the first _n_ elements from the list.\",\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"Int\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"after\",\n                  \"description\": \"Returns the elements in the list that come after the specified global ID.\",\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"String\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"last\",\n                  \"description\": \"Returns the last _n_ elements from the list.\",\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"Int\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"before\",\n                  \"description\": \"Returns the elements in the list that come before the specified global ID.\",\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"String\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"content\",\n                  \"description\": \"Allows filtering Reactions by emoji.\",\n                  \"type\": {\n                    \"kind\": \"ENUM\",\n                    \"name\": \"ReactionContent\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"orderBy\",\n                  \"description\": \"Allows specifying the order in which reactions are returned.\",\n                  \"type\": {\n                    \"kind\": \"INPUT_OBJECT\",\n                    \"name\": \"ReactionOrder\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                }\n              ],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"ReactionConnection\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"reactionsWebsocket\",\n              \"description\": \"The websocket channel ID for reaction live updates.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"String\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"repository\",\n              \"description\": \"The repository associated with this review comment.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"Repository\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"updatedAt\",\n              \"description\": \"Identifies when the comment was last updated.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"DateTime\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"url\",\n              \"description\": \"The HTTP URL permalink for this review comment.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"URI\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"viewerCanDelete\",\n              \"description\": \"Check if the current viewer can delete this comment.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"Boolean\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"viewerCanEdit\",\n              \"description\": \"Check if the current viewer edit this comment.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"Boolean\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"viewerCanReact\",\n              \"description\": \"Can user react to this subject\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"Boolean\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"viewerCannotEditReasons\",\n              \"description\": \"Errors why the current viewer can not edit this comment.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"LIST\",\n                  \"name\": null,\n                  \"ofType\": {\n                    \"kind\": \"NON_NULL\",\n                    \"name\": null,\n                    \"ofType\": {\n                      \"kind\": \"ENUM\",\n                      \"name\": \"CommentCannotEditReason\",\n                      \"ofType\": null\n                    }\n                  }\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"viewerDidAuthor\",\n              \"description\": \"Did the viewer author this comment.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"Boolean\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"websocket\",\n              \"description\": \"The websocket channel ID for live updates.\",\n              \"args\": [\n                {\n                  \"name\": \"channel\",\n                  \"description\": \"The channel to use.\",\n                  \"type\": {\n                    \"kind\": \"NON_NULL\",\n                    \"name\": null,\n                    \"ofType\": {\n                      \"kind\": \"ENUM\",\n                      \"name\": \"PullRequestPubSubTopic\",\n                      \"ofType\": null\n                    }\n                  },\n                  \"defaultValue\": null\n                }\n              ],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"String\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"inputFields\": null,\n          \"interfaces\": [\n            {\n              \"kind\": \"INTERFACE\",\n              \"name\": \"Node\",\n              \"ofType\": null\n            },\n            {\n              \"kind\": \"INTERFACE\",\n              \"name\": \"Comment\",\n              \"ofType\": null\n            },\n            {\n              \"kind\": \"INTERFACE\",\n              \"name\": \"Reactable\",\n              \"ofType\": null\n            },\n            {\n              \"kind\": \"INTERFACE\",\n              \"name\": \"RepositoryNode\",\n              \"ofType\": null\n            }\n          ],\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"ENUM\",\n          \"name\": \"PullRequestPubSubTopic\",\n          \"description\": \"The possible PubSub channels for a pull request.\",\n          \"fields\": null,\n          \"inputFields\": null,\n          \"interfaces\": null,\n          \"enumValues\": [\n            {\n              \"name\": \"UPDATED\",\n              \"description\": \"The channel ID for observing pull request updates.\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"MARKASREAD\",\n              \"description\": \"The channel ID for marking an pull request as read.\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"OBJECT\",\n          \"name\": \"PullRequestReviewThread\",\n          \"description\": \"A threaded list of comments for a given pull request.\",\n          \"fields\": [\n            {\n              \"name\": \"comments\",\n              \"description\": \"A list of pull request comments associated with the thread.\",\n              \"args\": [\n                {\n                  \"name\": \"first\",\n                  \"description\": \"Returns the first _n_ elements from the list.\",\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"Int\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"after\",\n                  \"description\": \"Returns the elements in the list that come after the specified global ID.\",\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"String\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"last\",\n                  \"description\": \"Returns the last _n_ elements from the list.\",\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"Int\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"before\",\n                  \"description\": \"Returns the elements in the list that come before the specified global ID.\",\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"String\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                }\n              ],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"PullRequestReviewCommentConnection\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"id\",\n              \"description\": null,\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"ID\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"pullRequest\",\n              \"description\": \"Identifies the pull request associated with this thread.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"PullRequest\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"inputFields\": null,\n          \"interfaces\": [\n            {\n              \"kind\": \"INTERFACE\",\n              \"name\": \"Node\",\n              \"ofType\": null\n            }\n          ],\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"OBJECT\",\n          \"name\": \"IssueComment\",\n          \"description\": \"Represents a comment on an Issue.\",\n          \"fields\": [\n            {\n              \"name\": \"author\",\n              \"description\": \"Identifies the author of the comment.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"OBJECT\",\n                \"name\": \"User\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"body\",\n              \"description\": \"Identifies the comment body.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"String\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"bodyHTML\",\n              \"description\": \"The comment body rendered to HTML.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"HTML\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"createdAt\",\n              \"description\": \"Identifies the date and time when the object was created.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"DateTime\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"createdViaEmail\",\n              \"description\": \"Check if this comment was created via an email reply.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"Boolean\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"databaseId\",\n              \"description\": \"Identifies the primary key from the database.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"Int\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": true,\n              \"deprecationReason\": \"Exposed database IDs will eventually be removed in favor of global Relay IDs.\"\n            },\n            {\n              \"name\": \"editor\",\n              \"description\": \"The user who edited the comment.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"OBJECT\",\n                \"name\": \"User\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"id\",\n              \"description\": null,\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"ID\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"issue\",\n              \"description\": \"Identifies the issue associated with the comment.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"Issue\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"lastEditedAt\",\n              \"description\": \"The moment the editor made the last edit\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"DateTime\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"liveReactionUpdatesEnabled\",\n              \"description\": \"Are reaction live updates enabled for this subject.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"Boolean\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"reactionGroups\",\n              \"description\": \"A list of reactions grouped by content left on the subject.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"LIST\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"NON_NULL\",\n                  \"name\": null,\n                  \"ofType\": {\n                    \"kind\": \"OBJECT\",\n                    \"name\": \"ReactionGroup\",\n                    \"ofType\": null\n                  }\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"reactions\",\n              \"description\": \"A list of Reactions left on the Issue.\",\n              \"args\": [\n                {\n                  \"name\": \"first\",\n                  \"description\": \"Returns the first _n_ elements from the list.\",\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"Int\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"after\",\n                  \"description\": \"Returns the elements in the list that come after the specified global ID.\",\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"String\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"last\",\n                  \"description\": \"Returns the last _n_ elements from the list.\",\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"Int\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"before\",\n                  \"description\": \"Returns the elements in the list that come before the specified global ID.\",\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"String\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"content\",\n                  \"description\": \"Allows filtering Reactions by emoji.\",\n                  \"type\": {\n                    \"kind\": \"ENUM\",\n                    \"name\": \"ReactionContent\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"orderBy\",\n                  \"description\": \"Allows specifying the order in which reactions are returned.\",\n                  \"type\": {\n                    \"kind\": \"INPUT_OBJECT\",\n                    \"name\": \"ReactionOrder\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                }\n              ],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"ReactionConnection\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"reactionsWebsocket\",\n              \"description\": \"The websocket channel ID for reaction live updates.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"String\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"repository\",\n              \"description\": \"The repository associated with this node.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"Repository\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"updatedAt\",\n              \"description\": \"Identifies the date and time when the object was last updated.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"DateTime\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"viewerCanDelete\",\n              \"description\": \"Check if the current viewer can delete this comment.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"Boolean\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"viewerCanEdit\",\n              \"description\": \"Check if the current viewer edit this comment.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"Boolean\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"viewerCanReact\",\n              \"description\": \"Can user react to this subject\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"Boolean\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"viewerCannotEditReasons\",\n              \"description\": \"Errors why the current viewer can not edit this comment.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"LIST\",\n                  \"name\": null,\n                  \"ofType\": {\n                    \"kind\": \"NON_NULL\",\n                    \"name\": null,\n                    \"ofType\": {\n                      \"kind\": \"ENUM\",\n                      \"name\": \"CommentCannotEditReason\",\n                      \"ofType\": null\n                    }\n                  }\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"viewerDidAuthor\",\n              \"description\": \"Did the viewer author this comment.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"Boolean\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"websocket\",\n              \"description\": \"The websocket channel ID for live updates.\",\n              \"args\": [\n                {\n                  \"name\": \"channel\",\n                  \"description\": \"The channel to use.\",\n                  \"type\": {\n                    \"kind\": \"NON_NULL\",\n                    \"name\": null,\n                    \"ofType\": {\n                      \"kind\": \"ENUM\",\n                      \"name\": \"IssuePubSubTopic\",\n                      \"ofType\": null\n                    }\n                  },\n                  \"defaultValue\": null\n                }\n              ],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"String\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"inputFields\": null,\n          \"interfaces\": [\n            {\n              \"kind\": \"INTERFACE\",\n              \"name\": \"Node\",\n              \"ofType\": null\n            },\n            {\n              \"kind\": \"INTERFACE\",\n              \"name\": \"Comment\",\n              \"ofType\": null\n            },\n            {\n              \"kind\": \"INTERFACE\",\n              \"name\": \"Reactable\",\n              \"ofType\": null\n            },\n            {\n              \"kind\": \"INTERFACE\",\n              \"name\": \"RepositoryNode\",\n              \"ofType\": null\n            }\n          ],\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"ENUM\",\n          \"name\": \"IssuePubSubTopic\",\n          \"description\": \"The possible PubSub channels for an issue.\",\n          \"fields\": null,\n          \"inputFields\": null,\n          \"interfaces\": null,\n          \"enumValues\": [\n            {\n              \"name\": \"UPDATED\",\n              \"description\": \"The channel ID for observing issue updates.\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"MARKASREAD\",\n              \"description\": \"The channel ID for marking an issue as read.\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"OBJECT\",\n          \"name\": \"ClosedEvent\",\n          \"description\": \"Represents a 'closed' event on a given issue or pull request.\",\n          \"fields\": [\n            {\n              \"name\": \"actor\",\n              \"description\": \"Identifies the actor (user) associated with the event.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"User\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"commit\",\n              \"description\": \"Identifies the commit associated with the 'closed' event.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"OBJECT\",\n                \"name\": \"Commit\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"createdAt\",\n              \"description\": \"Identifies the date and time when the object was created.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"DateTime\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"id\",\n              \"description\": null,\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"ID\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"issue\",\n              \"description\": \"Identifies the issue associated with the event.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"Issue\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"repository\",\n              \"description\": \"Identifies the repository associated with the event.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"Repository\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"type\",\n              \"description\": \"Identifies the event type associated with the event.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"ENUM\",\n                  \"name\": \"IssueEventType\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"inputFields\": null,\n          \"interfaces\": [\n            {\n              \"kind\": \"INTERFACE\",\n              \"name\": \"Node\",\n              \"ofType\": null\n            },\n            {\n              \"kind\": \"INTERFACE\",\n              \"name\": \"IssueEvent\",\n              \"ofType\": null\n            }\n          ],\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"OBJECT\",\n          \"name\": \"ReopenedEvent\",\n          \"description\": \"Represents a 'reopened' event on a given issue or pull request.\",\n          \"fields\": [\n            {\n              \"name\": \"actor\",\n              \"description\": \"Identifies the actor (user) associated with the event.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"User\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"createdAt\",\n              \"description\": \"Identifies the date and time when the object was created.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"DateTime\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"id\",\n              \"description\": null,\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"ID\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"issue\",\n              \"description\": \"Identifies the issue associated with the event.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"Issue\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"repository\",\n              \"description\": \"Identifies the repository associated with the event.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"Repository\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"type\",\n              \"description\": \"Identifies the event type associated with the event.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"ENUM\",\n                  \"name\": \"IssueEventType\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"inputFields\": null,\n          \"interfaces\": [\n            {\n              \"kind\": \"INTERFACE\",\n              \"name\": \"Node\",\n              \"ofType\": null\n            },\n            {\n              \"kind\": \"INTERFACE\",\n              \"name\": \"IssueEvent\",\n              \"ofType\": null\n            }\n          ],\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"OBJECT\",\n          \"name\": \"SubscribedEvent\",\n          \"description\": \"Represents a 'subscribed' event on a given issue or pull request.\",\n          \"fields\": [\n            {\n              \"name\": \"actor\",\n              \"description\": \"Identifies the actor (user) associated with the event.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"User\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"createdAt\",\n              \"description\": \"Identifies the date and time when the object was created.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"DateTime\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"id\",\n              \"description\": null,\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"ID\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"issue\",\n              \"description\": \"Identifies the issue associated with the event.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"Issue\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"repository\",\n              \"description\": \"Identifies the repository associated with the event.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"Repository\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"type\",\n              \"description\": \"Identifies the event type associated with the event.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"ENUM\",\n                  \"name\": \"IssueEventType\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"inputFields\": null,\n          \"interfaces\": [\n            {\n              \"kind\": \"INTERFACE\",\n              \"name\": \"Node\",\n              \"ofType\": null\n            },\n            {\n              \"kind\": \"INTERFACE\",\n              \"name\": \"IssueEvent\",\n              \"ofType\": null\n            }\n          ],\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"OBJECT\",\n          \"name\": \"UnsubscribedEvent\",\n          \"description\": \"Represents a 'unsubscribed' event on a given issue or pull request.\",\n          \"fields\": [\n            {\n              \"name\": \"actor\",\n              \"description\": \"Identifies the actor (user) associated with the event.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"User\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"createdAt\",\n              \"description\": \"Identifies the date and time when the object was created.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"DateTime\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"id\",\n              \"description\": null,\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"ID\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"issue\",\n              \"description\": \"Identifies the issue associated with the event.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"Issue\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"repository\",\n              \"description\": \"Identifies the repository associated with the event.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"Repository\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"type\",\n              \"description\": \"Identifies the event type associated with the event.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"ENUM\",\n                  \"name\": \"IssueEventType\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"inputFields\": null,\n          \"interfaces\": [\n            {\n              \"kind\": \"INTERFACE\",\n              \"name\": \"Node\",\n              \"ofType\": null\n            },\n            {\n              \"kind\": \"INTERFACE\",\n              \"name\": \"IssueEvent\",\n              \"ofType\": null\n            }\n          ],\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"OBJECT\",\n          \"name\": \"MergedEvent\",\n          \"description\": \"Represents a 'merged' event on a given pull request.\",\n          \"fields\": [\n            {\n              \"name\": \"actor\",\n              \"description\": \"Identifies the actor (user) associated with the event.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"User\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"commit\",\n              \"description\": \"Identifies the commit associated with the `merge` event.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"Commit\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"createdAt\",\n              \"description\": \"Identifies the date and time when the object was created.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"DateTime\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"id\",\n              \"description\": null,\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"ID\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"issue\",\n              \"description\": \"Identifies the issue associated with the event.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"Issue\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"mergeRef\",\n              \"description\": \"Identifies the Ref associated with the `merge` event.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"OBJECT\",\n                \"name\": \"Ref\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"mergeRefName\",\n              \"description\": \"Identifies the name of the Ref associated with the `merge` event.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"String\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"repository\",\n              \"description\": \"Identifies the repository associated with the event.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"Repository\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"type\",\n              \"description\": \"Identifies the event type associated with the event.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"ENUM\",\n                  \"name\": \"IssueEventType\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"inputFields\": null,\n          \"interfaces\": [\n            {\n              \"kind\": \"INTERFACE\",\n              \"name\": \"Node\",\n              \"ofType\": null\n            },\n            {\n              \"kind\": \"INTERFACE\",\n              \"name\": \"IssueEvent\",\n              \"ofType\": null\n            }\n          ],\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"OBJECT\",\n          \"name\": \"Ref\",\n          \"description\": \"Represents a Git reference.\",\n          \"fields\": [\n            {\n              \"name\": \"associatedPullRequests\",\n              \"description\": \"A list of pull requests with this ref as the head ref.\",\n              \"args\": [\n                {\n                  \"name\": \"first\",\n                  \"description\": \"Returns the first _n_ elements from the list.\",\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"Int\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"after\",\n                  \"description\": \"Returns the elements in the list that come after the specified global ID.\",\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"String\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"last\",\n                  \"description\": \"Returns the last _n_ elements from the list.\",\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"Int\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"before\",\n                  \"description\": \"Returns the elements in the list that come before the specified global ID.\",\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"String\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"states\",\n                  \"description\": \"A list of states to filter the pull requests by.\",\n                  \"type\": {\n                    \"kind\": \"LIST\",\n                    \"name\": null,\n                    \"ofType\": {\n                      \"kind\": \"NON_NULL\",\n                      \"name\": null,\n                      \"ofType\": {\n                        \"kind\": \"ENUM\",\n                        \"name\": \"PullRequestState\",\n                        \"ofType\": null\n                      }\n                    }\n                  },\n                  \"defaultValue\": null\n                }\n              ],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"PullRequestConnection\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"id\",\n              \"description\": null,\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"ID\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"name\",\n              \"description\": \"The ref name.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"String\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"prefix\",\n              \"description\": \"The ref's prefix, such as `refs/heads/` or `refs/tags/`.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"String\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"repository\",\n              \"description\": \"The repository the ref belongs to.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"Repository\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"target\",\n              \"description\": \"The object the ref points to.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"INTERFACE\",\n                  \"name\": \"GitObject\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"inputFields\": null,\n          \"interfaces\": [\n            {\n              \"kind\": \"INTERFACE\",\n              \"name\": \"Node\",\n              \"ofType\": null\n            }\n          ],\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"ENUM\",\n          \"name\": \"PullRequestState\",\n          \"description\": \"The possible states of a pull request.\",\n          \"fields\": null,\n          \"inputFields\": null,\n          \"interfaces\": null,\n          \"enumValues\": [\n            {\n              \"name\": \"OPEN\",\n              \"description\": \"A pull request that is still open.\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"CLOSED\",\n              \"description\": \"A pull request that has been closed without being merged.\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"MERGED\",\n              \"description\": \"A pull request that has been closed by being merged.\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"OBJECT\",\n          \"name\": \"ReferencedEvent\",\n          \"description\": \"Represents a 'referenced' event on a given issue or pull request.\",\n          \"fields\": [\n            {\n              \"name\": \"actor\",\n              \"description\": \"Identifies the actor (user) associated with the event.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"User\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"commit\",\n              \"description\": \"Identifies the commit associated with the 'referenced' event.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"Commit\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"commitRepository\",\n              \"description\": \"Identifies the repository associated with the 'referenced' event.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"Repository\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"createdAt\",\n              \"description\": \"Identifies the date and time when the object was created.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"DateTime\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"id\",\n              \"description\": null,\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"ID\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"issue\",\n              \"description\": \"Identifies the issue associated with the event.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"Issue\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"repository\",\n              \"description\": \"Identifies the repository associated with the event.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"Repository\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"type\",\n              \"description\": \"Identifies the event type associated with the event.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"ENUM\",\n                  \"name\": \"IssueEventType\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"inputFields\": null,\n          \"interfaces\": [\n            {\n              \"kind\": \"INTERFACE\",\n              \"name\": \"Node\",\n              \"ofType\": null\n            },\n            {\n              \"kind\": \"INTERFACE\",\n              \"name\": \"IssueEvent\",\n              \"ofType\": null\n            }\n          ],\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"OBJECT\",\n          \"name\": \"MentionedEvent\",\n          \"description\": \"Represents a 'mentioned' event on a given issue or pull request.\",\n          \"fields\": [\n            {\n              \"name\": \"actor\",\n              \"description\": \"Identifies the actor (user) associated with the event.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"User\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"createdAt\",\n              \"description\": \"Identifies the date and time when the object was created.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"DateTime\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"id\",\n              \"description\": null,\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"ID\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"issue\",\n              \"description\": \"Identifies the issue associated with the event.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"Issue\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"repository\",\n              \"description\": \"Identifies the repository associated with the event.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"Repository\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"type\",\n              \"description\": \"Identifies the event type associated with the event.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"ENUM\",\n                  \"name\": \"IssueEventType\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"inputFields\": null,\n          \"interfaces\": [\n            {\n              \"kind\": \"INTERFACE\",\n              \"name\": \"Node\",\n              \"ofType\": null\n            },\n            {\n              \"kind\": \"INTERFACE\",\n              \"name\": \"IssueEvent\",\n              \"ofType\": null\n            }\n          ],\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"OBJECT\",\n          \"name\": \"AssignedEvent\",\n          \"description\": \"Represents an 'assigned' event on a given issue or pull request.\",\n          \"fields\": [\n            {\n              \"name\": \"actor\",\n              \"description\": \"Identifies the actor (user) associated with the event.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"User\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"createdAt\",\n              \"description\": \"Identifies the date and time when the object was created.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"DateTime\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"id\",\n              \"description\": null,\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"ID\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"issue\",\n              \"description\": \"Identifies the issue associated with the event.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"Issue\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"repository\",\n              \"description\": \"Identifies the repository associated with the event.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"Repository\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"subject\",\n              \"description\": \"Identifies the user who performed the 'assigned' event.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"User\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"type\",\n              \"description\": \"Identifies the event type associated with the event.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"ENUM\",\n                  \"name\": \"IssueEventType\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"inputFields\": null,\n          \"interfaces\": [\n            {\n              \"kind\": \"INTERFACE\",\n              \"name\": \"Node\",\n              \"ofType\": null\n            },\n            {\n              \"kind\": \"INTERFACE\",\n              \"name\": \"IssueEvent\",\n              \"ofType\": null\n            }\n          ],\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"OBJECT\",\n          \"name\": \"UnassignedEvent\",\n          \"description\": \"Represents a 'unassigned' event on a given issue or pull request.\",\n          \"fields\": [\n            {\n              \"name\": \"actor\",\n              \"description\": \"Identifies the actor (user) associated with the event.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"User\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"createdAt\",\n              \"description\": \"Identifies the date and time when the object was created.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"DateTime\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"id\",\n              \"description\": null,\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"ID\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"issue\",\n              \"description\": \"Identifies the issue associated with the event.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"Issue\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"repository\",\n              \"description\": \"Identifies the repository associated with the event.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"Repository\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"subject\",\n              \"description\": \"Identifies the user who performed the 'unassigned' event.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"User\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"type\",\n              \"description\": \"Identifies the event type associated with the event.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"ENUM\",\n                  \"name\": \"IssueEventType\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"inputFields\": null,\n          \"interfaces\": [\n            {\n              \"kind\": \"INTERFACE\",\n              \"name\": \"Node\",\n              \"ofType\": null\n            },\n            {\n              \"kind\": \"INTERFACE\",\n              \"name\": \"IssueEvent\",\n              \"ofType\": null\n            }\n          ],\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"OBJECT\",\n          \"name\": \"LabeledEvent\",\n          \"description\": \"Represents a 'labeled' event on a given issue or pull request.\",\n          \"fields\": [\n            {\n              \"name\": \"actor\",\n              \"description\": \"Identifies the actor (user) associated with the event.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"User\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"createdAt\",\n              \"description\": \"Identifies the date and time when the object was created.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"DateTime\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"id\",\n              \"description\": null,\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"ID\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"issue\",\n              \"description\": \"Identifies the issue associated with the event.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"Issue\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"label\",\n              \"description\": \"Identifies the label associated with the 'labeled' event.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"Label\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"repository\",\n              \"description\": \"Identifies the repository associated with the event.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"Repository\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"type\",\n              \"description\": \"Identifies the event type associated with the event.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"ENUM\",\n                  \"name\": \"IssueEventType\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"inputFields\": null,\n          \"interfaces\": [\n            {\n              \"kind\": \"INTERFACE\",\n              \"name\": \"Node\",\n              \"ofType\": null\n            },\n            {\n              \"kind\": \"INTERFACE\",\n              \"name\": \"IssueEvent\",\n              \"ofType\": null\n            }\n          ],\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"OBJECT\",\n          \"name\": \"UnlabeledEvent\",\n          \"description\": \"Represents a 'unlabeled' event on a given issue or pull request.\",\n          \"fields\": [\n            {\n              \"name\": \"actor\",\n              \"description\": \"Identifies the actor (user) associated with the event.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"User\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"createdAt\",\n              \"description\": \"Identifies the date and time when the object was created.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"DateTime\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"id\",\n              \"description\": null,\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"ID\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"issue\",\n              \"description\": \"Identifies the issue associated with the event.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"Issue\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"label\",\n              \"description\": \"Identifies the label associated with the 'unlabeled' event.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"Label\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"repository\",\n              \"description\": \"Identifies the repository associated with the event.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"Repository\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"type\",\n              \"description\": \"Identifies the event type associated with the event.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"ENUM\",\n                  \"name\": \"IssueEventType\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"inputFields\": null,\n          \"interfaces\": [\n            {\n              \"kind\": \"INTERFACE\",\n              \"name\": \"Node\",\n              \"ofType\": null\n            },\n            {\n              \"kind\": \"INTERFACE\",\n              \"name\": \"IssueEvent\",\n              \"ofType\": null\n            }\n          ],\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"OBJECT\",\n          \"name\": \"MilestonedEvent\",\n          \"description\": \"Represents a 'milestoned' event on a given issue or pull request.\",\n          \"fields\": [\n            {\n              \"name\": \"actor\",\n              \"description\": \"Identifies the actor (user) associated with the event.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"User\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"createdAt\",\n              \"description\": \"Identifies the date and time when the object was created.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"DateTime\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"id\",\n              \"description\": null,\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"ID\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"issue\",\n              \"description\": \"Identifies the issue associated with the event.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"Issue\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"milestoneTitle\",\n              \"description\": \"Identifies the milestone title associated with the 'milestoned' event.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"String\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"repository\",\n              \"description\": \"Identifies the repository associated with the event.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"Repository\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"type\",\n              \"description\": \"Identifies the event type associated with the event.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"ENUM\",\n                  \"name\": \"IssueEventType\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"inputFields\": null,\n          \"interfaces\": [\n            {\n              \"kind\": \"INTERFACE\",\n              \"name\": \"Node\",\n              \"ofType\": null\n            },\n            {\n              \"kind\": \"INTERFACE\",\n              \"name\": \"IssueEvent\",\n              \"ofType\": null\n            }\n          ],\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"OBJECT\",\n          \"name\": \"DemilestonedEvent\",\n          \"description\": \"Represents a 'demilestoned' event on a given issue or pull request.\",\n          \"fields\": [\n            {\n              \"name\": \"actor\",\n              \"description\": \"Identifies the actor (user) associated with the event.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"User\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"createdAt\",\n              \"description\": \"Identifies the date and time when the object was created.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"DateTime\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"id\",\n              \"description\": null,\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"ID\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"issue\",\n              \"description\": \"Identifies the issue associated with the event.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"Issue\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"milestoneTitle\",\n              \"description\": \"Identifies the milestone title associated with the 'demilestoned' event.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"String\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"repository\",\n              \"description\": \"Identifies the repository associated with the event.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"Repository\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"type\",\n              \"description\": \"Identifies the event type associated with the event.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"ENUM\",\n                  \"name\": \"IssueEventType\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"inputFields\": null,\n          \"interfaces\": [\n            {\n              \"kind\": \"INTERFACE\",\n              \"name\": \"Node\",\n              \"ofType\": null\n            },\n            {\n              \"kind\": \"INTERFACE\",\n              \"name\": \"IssueEvent\",\n              \"ofType\": null\n            }\n          ],\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"OBJECT\",\n          \"name\": \"RenamedEvent\",\n          \"description\": \"Represents a 'renamed' event on a given issue or pull request or pull request.\",\n          \"fields\": [\n            {\n              \"name\": \"actor\",\n              \"description\": \"Identifies the actor (user) associated with the event.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"User\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"createdAt\",\n              \"description\": \"Identifies the date and time when the object was created.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"DateTime\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"currentTitle\",\n              \"description\": \"Identifies the current title of the issue or pull request.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"String\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"id\",\n              \"description\": null,\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"ID\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"issue\",\n              \"description\": \"Identifies the issue associated with the event.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"Issue\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"previousTitle\",\n              \"description\": \"Identifies the previous title of the issue or pull request.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"String\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"repository\",\n              \"description\": \"Identifies the repository associated with the event.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"Repository\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"type\",\n              \"description\": \"Identifies the event type associated with the event.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"ENUM\",\n                  \"name\": \"IssueEventType\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"inputFields\": null,\n          \"interfaces\": [\n            {\n              \"kind\": \"INTERFACE\",\n              \"name\": \"Node\",\n              \"ofType\": null\n            },\n            {\n              \"kind\": \"INTERFACE\",\n              \"name\": \"IssueEvent\",\n              \"ofType\": null\n            }\n          ],\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"OBJECT\",\n          \"name\": \"LockedEvent\",\n          \"description\": \"Represents a 'locked' event on a given issue or pull request.\",\n          \"fields\": [\n            {\n              \"name\": \"actor\",\n              \"description\": \"Identifies the actor (user) associated with the event.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"User\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"createdAt\",\n              \"description\": \"Identifies the date and time when the object was created.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"DateTime\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"id\",\n              \"description\": null,\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"ID\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"issue\",\n              \"description\": \"Identifies the issue associated with the event.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"Issue\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"repository\",\n              \"description\": \"Identifies the repository associated with the event.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"Repository\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"type\",\n              \"description\": \"Identifies the event type associated with the event.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"ENUM\",\n                  \"name\": \"IssueEventType\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"inputFields\": null,\n          \"interfaces\": [\n            {\n              \"kind\": \"INTERFACE\",\n              \"name\": \"Node\",\n              \"ofType\": null\n            },\n            {\n              \"kind\": \"INTERFACE\",\n              \"name\": \"IssueEvent\",\n              \"ofType\": null\n            }\n          ],\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"OBJECT\",\n          \"name\": \"UnlockedEvent\",\n          \"description\": \"Represents a 'unlocked' event on a given issue or pull request.\",\n          \"fields\": [\n            {\n              \"name\": \"actor\",\n              \"description\": \"Identifies the actor (user) associated with the event.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"User\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"createdAt\",\n              \"description\": \"Identifies the date and time when the object was created.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"DateTime\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"id\",\n              \"description\": null,\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"ID\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"issue\",\n              \"description\": \"Identifies the issue associated with the event.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"Issue\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"repository\",\n              \"description\": \"Identifies the repository associated with the event.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"Repository\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"type\",\n              \"description\": \"Identifies the event type associated with the event.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"ENUM\",\n                  \"name\": \"IssueEventType\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"inputFields\": null,\n          \"interfaces\": [\n            {\n              \"kind\": \"INTERFACE\",\n              \"name\": \"Node\",\n              \"ofType\": null\n            },\n            {\n              \"kind\": \"INTERFACE\",\n              \"name\": \"IssueEvent\",\n              \"ofType\": null\n            }\n          ],\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"OBJECT\",\n          \"name\": \"DeployedEvent\",\n          \"description\": \"Represents a 'deployed' event on a given issue or pull request.\",\n          \"fields\": [\n            {\n              \"name\": \"actor\",\n              \"description\": \"Identifies the actor (user) associated with the event.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"User\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"createdAt\",\n              \"description\": \"Identifies the date and time when the object was created.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"DateTime\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"deployment\",\n              \"description\": \"The deployment associated with the 'deployed' event.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"Deployment\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"id\",\n              \"description\": null,\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"ID\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"issue\",\n              \"description\": \"Identifies the issue associated with the event.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"Issue\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"ref\",\n              \"description\": \"The ref associated with the 'deployed' event.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"OBJECT\",\n                \"name\": \"Ref\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"repository\",\n              \"description\": \"Identifies the repository associated with the event.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"Repository\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"type\",\n              \"description\": \"Identifies the event type associated with the event.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"ENUM\",\n                  \"name\": \"IssueEventType\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"inputFields\": null,\n          \"interfaces\": [\n            {\n              \"kind\": \"INTERFACE\",\n              \"name\": \"Node\",\n              \"ofType\": null\n            },\n            {\n              \"kind\": \"INTERFACE\",\n              \"name\": \"IssueEvent\",\n              \"ofType\": null\n            }\n          ],\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"OBJECT\",\n          \"name\": \"Deployment\",\n          \"description\": \"Represents triggered deployment instance.\",\n          \"fields\": [\n            {\n              \"name\": \"commit\",\n              \"description\": \"Identifies the commit sha of the deployment.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"Commit\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"createdAt\",\n              \"description\": \"Identifies the date and time when the object was created.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"DateTime\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"creator\",\n              \"description\": \"Identifies the user who triggered the deployment.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"User\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"id\",\n              \"description\": null,\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"ID\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"repository\",\n              \"description\": \"Identifies the repository associated with the deployment.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"Repository\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"statuses\",\n              \"description\": \"A list of statuses associated with the deployment.\",\n              \"args\": [\n                {\n                  \"name\": \"first\",\n                  \"description\": \"Returns the first _n_ elements from the list.\",\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"Int\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"after\",\n                  \"description\": \"Returns the elements in the list that come after the specified global ID.\",\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"String\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"last\",\n                  \"description\": \"Returns the last _n_ elements from the list.\",\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"Int\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"before\",\n                  \"description\": \"Returns the elements in the list that come before the specified global ID.\",\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"String\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                }\n              ],\n              \"type\": {\n                \"kind\": \"OBJECT\",\n                \"name\": \"DeploymentStatusConnection\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"inputFields\": null,\n          \"interfaces\": [\n            {\n              \"kind\": \"INTERFACE\",\n              \"name\": \"Node\",\n              \"ofType\": null\n            }\n          ],\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"OBJECT\",\n          \"name\": \"DeploymentStatusConnection\",\n          \"description\": \"The connection type for DeploymentStatus.\",\n          \"fields\": [\n            {\n              \"name\": \"edges\",\n              \"description\": \"A list of edges.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"LIST\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"DeploymentStatusEdge\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"nodes\",\n              \"description\": \"A list of nodes.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"LIST\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"DeploymentStatus\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"pageInfo\",\n              \"description\": \"Information to aid in pagination.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"PageInfo\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"totalCount\",\n              \"description\": \"Identifies the total count of items in the connection.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"Int\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"inputFields\": null,\n          \"interfaces\": [],\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"OBJECT\",\n          \"name\": \"DeploymentStatusEdge\",\n          \"description\": \"An edge in a connection.\",\n          \"fields\": [\n            {\n              \"name\": \"cursor\",\n              \"description\": \"A cursor for use in pagination.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"String\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"node\",\n              \"description\": \"The item at the end of the edge.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"OBJECT\",\n                \"name\": \"DeploymentStatus\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"inputFields\": null,\n          \"interfaces\": [],\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"OBJECT\",\n          \"name\": \"DeploymentStatus\",\n          \"description\": \"Describes the status of a given deployment attempt.\",\n          \"fields\": [\n            {\n              \"name\": \"creator\",\n              \"description\": \"Identifies the user who triggered the deployment.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"User\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"deployment\",\n              \"description\": \"Identifies the deployment associated with status.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"Deployment\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"description\",\n              \"description\": \"Identifies the description of the deployment.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"String\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"environmentUrl\",\n              \"description\": \"Identifies the environment url of the deployment.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"String\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"id\",\n              \"description\": null,\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"ID\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"logUrl\",\n              \"description\": \"Identifies the log url of the deployment.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"String\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"state\",\n              \"description\": \"Identifies the current state of the deployment.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"ENUM\",\n                  \"name\": \"DeploymentState\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"inputFields\": null,\n          \"interfaces\": [\n            {\n              \"kind\": \"INTERFACE\",\n              \"name\": \"Node\",\n              \"ofType\": null\n            }\n          ],\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"OBJECT\",\n          \"name\": \"HeadRefDeletedEvent\",\n          \"description\": \"Represents a 'head_ref_deleted' event on a given pull request.\",\n          \"fields\": [\n            {\n              \"name\": \"actor\",\n              \"description\": \"Identifies the actor (user) associated with the event.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"User\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"createdAt\",\n              \"description\": \"Identifies the date and time when the object was created.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"DateTime\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"headRef\",\n              \"description\": \"Identifies the Ref associated with the `head_ref_deleted` event.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"OBJECT\",\n                \"name\": \"Ref\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"headRefName\",\n              \"description\": \"Identifies the name of the Ref associated with the `head_ref_deleted` event.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"String\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"id\",\n              \"description\": null,\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"ID\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"issue\",\n              \"description\": \"Identifies the issue associated with the event.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"Issue\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"repository\",\n              \"description\": \"Identifies the repository associated with the event.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"Repository\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"type\",\n              \"description\": \"Identifies the event type associated with the event.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"ENUM\",\n                  \"name\": \"IssueEventType\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"inputFields\": null,\n          \"interfaces\": [\n            {\n              \"kind\": \"INTERFACE\",\n              \"name\": \"Node\",\n              \"ofType\": null\n            },\n            {\n              \"kind\": \"INTERFACE\",\n              \"name\": \"IssueEvent\",\n              \"ofType\": null\n            }\n          ],\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"OBJECT\",\n          \"name\": \"HeadRefRestoredEvent\",\n          \"description\": \"Represents a 'head_ref_restored' event on a given pull request.\",\n          \"fields\": [\n            {\n              \"name\": \"actor\",\n              \"description\": \"Identifies the actor (user) associated with the event.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"User\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"createdAt\",\n              \"description\": \"Identifies the date and time when the object was created.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"DateTime\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"id\",\n              \"description\": null,\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"ID\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"issue\",\n              \"description\": \"Identifies the issue associated with the event.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"Issue\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"repository\",\n              \"description\": \"Identifies the repository associated with the event.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"Repository\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"type\",\n              \"description\": \"Identifies the event type associated with the event.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"ENUM\",\n                  \"name\": \"IssueEventType\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"inputFields\": null,\n          \"interfaces\": [\n            {\n              \"kind\": \"INTERFACE\",\n              \"name\": \"Node\",\n              \"ofType\": null\n            },\n            {\n              \"kind\": \"INTERFACE\",\n              \"name\": \"IssueEvent\",\n              \"ofType\": null\n            }\n          ],\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"OBJECT\",\n          \"name\": \"HeadRefForcePushedEvent\",\n          \"description\": \"Represents a 'head_ref_force_pushed' event on a given pull request.\",\n          \"fields\": [\n            {\n              \"name\": \"actor\",\n              \"description\": \"Identifies the actor (user) associated with the event.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"User\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"afterCommit\",\n              \"description\": \"Identifies the after commit SHA for the 'head_ref_force_pushed' event.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"Commit\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"beforeCommit\",\n              \"description\": \"Identifies the before commit SHA for the 'head_ref_force_pushed' event.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"Commit\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"createdAt\",\n              \"description\": \"Identifies the date and time when the object was created.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"DateTime\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"id\",\n              \"description\": null,\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"ID\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"issue\",\n              \"description\": \"Identifies the issue associated with the event.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"Issue\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"ref\",\n              \"description\": \"Identifies the fully qualified ref name for the 'head_ref_force_pushed' event.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"OBJECT\",\n                \"name\": \"Ref\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"repository\",\n              \"description\": \"Identifies the repository associated with the event.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"Repository\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"type\",\n              \"description\": \"Identifies the event type associated with the event.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"ENUM\",\n                  \"name\": \"IssueEventType\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"inputFields\": null,\n          \"interfaces\": [\n            {\n              \"kind\": \"INTERFACE\",\n              \"name\": \"Node\",\n              \"ofType\": null\n            },\n            {\n              \"kind\": \"INTERFACE\",\n              \"name\": \"IssueEvent\",\n              \"ofType\": null\n            }\n          ],\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"OBJECT\",\n          \"name\": \"BaseRefForcePushedEvent\",\n          \"description\": \"Represents a 'base_ref_force_pushed' event on a given pull request.\",\n          \"fields\": [\n            {\n              \"name\": \"actor\",\n              \"description\": \"Identifies the actor (user) associated with the event.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"User\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"afterCommit\",\n              \"description\": \"Identifies the after commit SHA for the 'base_ref_force_pushed' event.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"Commit\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"beforeCommit\",\n              \"description\": \"Identifies the before commit SHA for the 'base_ref_force_pushed' event.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"Commit\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"createdAt\",\n              \"description\": \"Identifies the date and time when the object was created.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"DateTime\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"id\",\n              \"description\": null,\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"ID\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"issue\",\n              \"description\": \"Identifies the issue associated with the event.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"Issue\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"ref\",\n              \"description\": \"Identifies the fully qualified ref name for the 'base_ref_force_pushed' event.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"OBJECT\",\n                \"name\": \"Ref\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"repository\",\n              \"description\": \"Identifies the repository associated with the event.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"Repository\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"type\",\n              \"description\": \"Identifies the event type associated with the event.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"ENUM\",\n                  \"name\": \"IssueEventType\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"inputFields\": null,\n          \"interfaces\": [\n            {\n              \"kind\": \"INTERFACE\",\n              \"name\": \"Node\",\n              \"ofType\": null\n            },\n            {\n              \"kind\": \"INTERFACE\",\n              \"name\": \"IssueEvent\",\n              \"ofType\": null\n            }\n          ],\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"OBJECT\",\n          \"name\": \"ReviewRequestedEvent\",\n          \"description\": \"Represents an 'review_requested' event on a given pull request.\",\n          \"fields\": [\n            {\n              \"name\": \"actor\",\n              \"description\": \"Identifies the actor (user) associated with the event.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"User\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"createdAt\",\n              \"description\": \"Identifies the date and time when the object was created.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"DateTime\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"id\",\n              \"description\": null,\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"ID\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"issue\",\n              \"description\": \"Identifies the issue associated with the event.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"Issue\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"repository\",\n              \"description\": \"Identifies the repository associated with the event.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"Repository\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"subject\",\n              \"description\": \"Identifies the user who performed the 'review_requested' event.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"User\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"type\",\n              \"description\": \"Identifies the event type associated with the event.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"ENUM\",\n                  \"name\": \"IssueEventType\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"inputFields\": null,\n          \"interfaces\": [\n            {\n              \"kind\": \"INTERFACE\",\n              \"name\": \"Node\",\n              \"ofType\": null\n            },\n            {\n              \"kind\": \"INTERFACE\",\n              \"name\": \"IssueEvent\",\n              \"ofType\": null\n            }\n          ],\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"OBJECT\",\n          \"name\": \"ReviewRequestRemovedEvent\",\n          \"description\": \"Represents an 'review_request_removed' event on a given pull request.\",\n          \"fields\": [\n            {\n              \"name\": \"actor\",\n              \"description\": \"Identifies the actor (user) associated with the event.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"User\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"createdAt\",\n              \"description\": \"Identifies the date and time when the object was created.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"DateTime\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"id\",\n              \"description\": null,\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"ID\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"issue\",\n              \"description\": \"Identifies the issue associated with the event.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"Issue\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"repository\",\n              \"description\": \"Identifies the repository associated with the event.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"Repository\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"subject\",\n              \"description\": \"Identifies the user who performed the 'review_request_removed' event.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"User\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"type\",\n              \"description\": \"Identifies the event type associated with the event.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"ENUM\",\n                  \"name\": \"IssueEventType\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"inputFields\": null,\n          \"interfaces\": [\n            {\n              \"kind\": \"INTERFACE\",\n              \"name\": \"Node\",\n              \"ofType\": null\n            },\n            {\n              \"kind\": \"INTERFACE\",\n              \"name\": \"IssueEvent\",\n              \"ofType\": null\n            }\n          ],\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"OBJECT\",\n          \"name\": \"ReviewDismissedEvent\",\n          \"description\": \"Represents a 'review_dismissed' event on a given issue or pull request.\",\n          \"fields\": [\n            {\n              \"name\": \"actor\",\n              \"description\": \"Identifies the actor (user) associated with the event.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"User\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"createdAt\",\n              \"description\": \"Identifies the date and time when the object was created.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"DateTime\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"id\",\n              \"description\": null,\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"ID\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"issue\",\n              \"description\": \"Identifies the issue associated with the event.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"Issue\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"message\",\n              \"description\": \"Identifies the message associated with the 'review_dismissed' event.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"String\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"previousReviewState\",\n              \"description\": \"Identifies the previous state of the review with the 'review_dismissed' event.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"ENUM\",\n                  \"name\": \"PullRequestReviewState\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"repository\",\n              \"description\": \"Identifies the repository associated with the event.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"Repository\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"review\",\n              \"description\": \"Identifies the review associated with the 'review_dismissed' event.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"PullRequestReview\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"type\",\n              \"description\": \"Identifies the event type associated with the event.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"ENUM\",\n                  \"name\": \"IssueEventType\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"inputFields\": null,\n          \"interfaces\": [\n            {\n              \"kind\": \"INTERFACE\",\n              \"name\": \"Node\",\n              \"ofType\": null\n            },\n            {\n              \"kind\": \"INTERFACE\",\n              \"name\": \"IssueEvent\",\n              \"ofType\": null\n            }\n          ],\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"OBJECT\",\n          \"name\": \"IssueCommentConnection\",\n          \"description\": \"The connection type for IssueComment.\",\n          \"fields\": [\n            {\n              \"name\": \"edges\",\n              \"description\": \"A list of edges.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"LIST\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"IssueCommentEdge\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"nodes\",\n              \"description\": \"A list of nodes.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"LIST\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"IssueComment\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"pageInfo\",\n              \"description\": \"Information to aid in pagination.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"PageInfo\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"totalCount\",\n              \"description\": \"Identifies the total count of items in the connection.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"Int\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"inputFields\": null,\n          \"interfaces\": [],\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"OBJECT\",\n          \"name\": \"IssueCommentEdge\",\n          \"description\": \"An edge in a connection.\",\n          \"fields\": [\n            {\n              \"name\": \"cursor\",\n              \"description\": \"A cursor for use in pagination.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"String\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"node\",\n              \"description\": \"The item at the end of the edge.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"OBJECT\",\n                \"name\": \"IssueComment\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"inputFields\": null,\n          \"interfaces\": [],\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"OBJECT\",\n          \"name\": \"PullRequestReviewConnection\",\n          \"description\": \"The connection type for PullRequestReview.\",\n          \"fields\": [\n            {\n              \"name\": \"edges\",\n              \"description\": \"A list of edges.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"LIST\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"PullRequestReviewEdge\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"nodes\",\n              \"description\": \"A list of nodes.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"LIST\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"PullRequestReview\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"pageInfo\",\n              \"description\": \"Information to aid in pagination.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"PageInfo\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"totalCount\",\n              \"description\": \"Identifies the total count of items in the connection.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"Int\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"inputFields\": null,\n          \"interfaces\": [],\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"OBJECT\",\n          \"name\": \"PullRequestReviewEdge\",\n          \"description\": \"An edge in a connection.\",\n          \"fields\": [\n            {\n              \"name\": \"cursor\",\n              \"description\": \"A cursor for use in pagination.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"String\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"node\",\n              \"description\": \"The item at the end of the edge.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"OBJECT\",\n                \"name\": \"PullRequestReview\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"inputFields\": null,\n          \"interfaces\": [],\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"OBJECT\",\n          \"name\": \"CommitConnection\",\n          \"description\": \"The connection type for Commit.\",\n          \"fields\": [\n            {\n              \"name\": \"edges\",\n              \"description\": \"A list of edges.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"LIST\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"CommitEdge\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"nodes\",\n              \"description\": \"A list of nodes.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"LIST\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"Commit\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"pageInfo\",\n              \"description\": \"Information to aid in pagination.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"PageInfo\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"totalCount\",\n              \"description\": \"Identifies the total count of items in the connection.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"Int\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"inputFields\": null,\n          \"interfaces\": [],\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"OBJECT\",\n          \"name\": \"ReviewRequestConnection\",\n          \"description\": \"The connection type for ReviewRequest.\",\n          \"fields\": [\n            {\n              \"name\": \"edges\",\n              \"description\": \"A list of edges.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"LIST\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"ReviewRequestEdge\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"nodes\",\n              \"description\": \"A list of nodes.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"LIST\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"ReviewRequest\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"pageInfo\",\n              \"description\": \"Information to aid in pagination.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"PageInfo\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"totalCount\",\n              \"description\": \"Identifies the total count of items in the connection.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"Int\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"inputFields\": null,\n          \"interfaces\": [],\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"OBJECT\",\n          \"name\": \"ReviewRequestEdge\",\n          \"description\": \"An edge in a connection.\",\n          \"fields\": [\n            {\n              \"name\": \"cursor\",\n              \"description\": \"A cursor for use in pagination.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"String\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"node\",\n              \"description\": \"The item at the end of the edge.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"OBJECT\",\n                \"name\": \"ReviewRequest\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"inputFields\": null,\n          \"interfaces\": [],\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"OBJECT\",\n          \"name\": \"ReviewRequest\",\n          \"description\": \"A request for a user to review a pull request.\",\n          \"fields\": [\n            {\n              \"name\": \"databaseId\",\n              \"description\": \"Identifies the primary key from the database.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"Int\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": true,\n              \"deprecationReason\": \"Exposed database IDs will eventually be removed in favor of global Relay IDs.\"\n            },\n            {\n              \"name\": \"id\",\n              \"description\": null,\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"ID\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"pullRequest\",\n              \"description\": \"Identifies the pull request associated with this review request.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"PullRequest\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"reviewer\",\n              \"description\": \"Identifies the author associated with this review request.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"User\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"inputFields\": null,\n          \"interfaces\": [\n            {\n              \"kind\": \"INTERFACE\",\n              \"name\": \"Node\",\n              \"ofType\": null\n            }\n          ],\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"INTERFACE\",\n          \"name\": \"Issueish\",\n          \"description\": \"Shared features of Issues and Pull Requests.\",\n          \"fields\": [\n            {\n              \"name\": \"author\",\n              \"description\": \"Identifies the author of the issue.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"OBJECT\",\n                \"name\": \"User\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"body\",\n              \"description\": \"Identifies the body of the issue.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"String\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"bodyHTML\",\n              \"description\": \"Identifies the body of the issue rendered to HTML.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"HTML\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"id\",\n              \"description\": null,\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"ID\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"labels\",\n              \"description\": \"A list of labels associated with the Issue or Pull Request.\",\n              \"args\": [\n                {\n                  \"name\": \"first\",\n                  \"description\": \"Returns the first _n_ elements from the list.\",\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"Int\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"after\",\n                  \"description\": \"Returns the elements in the list that come after the specified global ID.\",\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"String\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"last\",\n                  \"description\": \"Returns the last _n_ elements from the list.\",\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"Int\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"before\",\n                  \"description\": \"Returns the elements in the list that come before the specified global ID.\",\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"String\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                }\n              ],\n              \"type\": {\n                \"kind\": \"OBJECT\",\n                \"name\": \"LabelConnection\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"number\",\n              \"description\": \"Identifies the issue number.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"Int\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"repository\",\n              \"description\": \"Identifies the repository associated with the issue.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"Repository\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"title\",\n              \"description\": \"Identifies the issue title.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"String\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"inputFields\": null,\n          \"interfaces\": null,\n          \"enumValues\": null,\n          \"possibleTypes\": [\n            {\n              \"kind\": \"OBJECT\",\n              \"name\": \"Issue\",\n              \"ofType\": null\n            },\n            {\n              \"kind\": \"OBJECT\",\n              \"name\": \"PullRequest\",\n              \"ofType\": null\n            }\n          ]\n        },\n        {\n          \"kind\": \"INTERFACE\",\n          \"name\": \"Timeline\",\n          \"description\": \"Represents all of the events visible to a user from an Issue or PullRequest timeline.\",\n          \"fields\": [\n            {\n              \"name\": \"timeline\",\n              \"description\": \"A list of events associated with an Issue or PullRequest.\",\n              \"args\": [\n                {\n                  \"name\": \"first\",\n                  \"description\": \"Returns the first _n_ elements from the list.\",\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"Int\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"after\",\n                  \"description\": \"Returns the elements in the list that come after the specified global ID.\",\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"String\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"last\",\n                  \"description\": \"Returns the last _n_ elements from the list.\",\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"Int\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"before\",\n                  \"description\": \"Returns the elements in the list that come before the specified global ID.\",\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"String\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"since\",\n                  \"description\": \"Allows filtering timeline events by a `since` timestamp.\",\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"String\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                }\n              ],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"IssueTimelineConnection\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"inputFields\": null,\n          \"interfaces\": null,\n          \"enumValues\": null,\n          \"possibleTypes\": [\n            {\n              \"kind\": \"OBJECT\",\n              \"name\": \"Issue\",\n              \"ofType\": null\n            },\n            {\n              \"kind\": \"OBJECT\",\n              \"name\": \"PullRequest\",\n              \"ofType\": null\n            }\n          ]\n        },\n        {\n          \"kind\": \"INTERFACE\",\n          \"name\": \"UniformResourceLocatable\",\n          \"description\": \"Represents a type that can be retrieved by a URL.\",\n          \"fields\": [\n            {\n              \"name\": \"path\",\n              \"description\": \"The path to this resource.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"URI\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"url\",\n              \"description\": \"The URL to this resource.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"URI\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"inputFields\": null,\n          \"interfaces\": null,\n          \"enumValues\": null,\n          \"possibleTypes\": [\n            {\n              \"kind\": \"OBJECT\",\n              \"name\": \"Issue\",\n              \"ofType\": null\n            },\n            {\n              \"kind\": \"OBJECT\",\n              \"name\": \"Organization\",\n              \"ofType\": null\n            },\n            {\n              \"kind\": \"OBJECT\",\n              \"name\": \"PullRequest\",\n              \"ofType\": null\n            },\n            {\n              \"kind\": \"OBJECT\",\n              \"name\": \"Release\",\n              \"ofType\": null\n            },\n            {\n              \"kind\": \"OBJECT\",\n              \"name\": \"Repository\",\n              \"ofType\": null\n            },\n            {\n              \"kind\": \"OBJECT\",\n              \"name\": \"User\",\n              \"ofType\": null\n            }\n          ]\n        },\n        {\n          \"kind\": \"ENUM\",\n          \"name\": \"SubscriptionState\",\n          \"description\": \"The possible states of a subscription.\",\n          \"fields\": null,\n          \"inputFields\": null,\n          \"interfaces\": null,\n          \"enumValues\": [\n            {\n              \"name\": \"UNSUBSCRIBED\",\n              \"description\": \"The User is only notified when particpating or @mentioned.\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"SUBSCRIBED\",\n              \"description\": \"The User is notified of all conversations.\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"IGNORED\",\n              \"description\": \"The User is never notified.\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"ENUM\",\n          \"name\": \"RepositoryLockReason\",\n          \"description\": \"The possible reasons a given repsitory could be in a locked state.\",\n          \"fields\": null,\n          \"inputFields\": null,\n          \"interfaces\": null,\n          \"enumValues\": [\n            {\n              \"name\": \"MOVING\",\n              \"description\": \"The repository is locked due to a move.\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"BILLING\",\n              \"description\": \"The repository is locked due to a billing related reason.\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"RENAME\",\n              \"description\": \"The repository is locked due to a rename.\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"MIGRATING\",\n              \"description\": \"The repository is locked due to a migration.\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"INTERFACE\",\n          \"name\": \"RepositoryOwner\",\n          \"description\": \"Represents an owner of a Repository.\",\n          \"fields\": [\n            {\n              \"name\": \"avatarURL\",\n              \"description\": \"A URL pointing to the owner's public avatar.\",\n              \"args\": [\n                {\n                  \"name\": \"size\",\n                  \"description\": \"The size of the resulting square image.\",\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"Int\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                }\n              ],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"String\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"gist\",\n              \"description\": \"Find gist by repo name.\",\n              \"args\": [\n                {\n                  \"name\": \"name\",\n                  \"description\": \"The gist name to find.\",\n                  \"type\": {\n                    \"kind\": \"NON_NULL\",\n                    \"name\": null,\n                    \"ofType\": {\n                      \"kind\": \"SCALAR\",\n                      \"name\": \"String\",\n                      \"ofType\": null\n                    }\n                  },\n                  \"defaultValue\": null\n                }\n              ],\n              \"type\": {\n                \"kind\": \"OBJECT\",\n                \"name\": \"Gist\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"gists\",\n              \"description\": \"A list of the Gists the user has created.\",\n              \"args\": [\n                {\n                  \"name\": \"first\",\n                  \"description\": \"Returns the first _n_ elements from the list.\",\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"Int\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"after\",\n                  \"description\": \"Returns the elements in the list that come after the specified global ID.\",\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"String\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"last\",\n                  \"description\": \"Returns the last _n_ elements from the list.\",\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"Int\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"before\",\n                  \"description\": \"Returns the elements in the list that come before the specified global ID.\",\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"String\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"visibility\",\n                  \"description\": \"Allows filtering by gist visibility.\",\n                  \"type\": {\n                    \"kind\": \"ENUM\",\n                    \"name\": \"GistVisibility\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                }\n              ],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"GistConnection\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"id\",\n              \"description\": null,\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"ID\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"login\",\n              \"description\": \"The username used to login.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"String\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"path\",\n              \"description\": \"The HTTP url for the owner.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"URI\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"repositories\",\n              \"description\": \"A list of repositories that the user owns.\",\n              \"args\": [\n                {\n                  \"name\": \"first\",\n                  \"description\": \"Returns the first _n_ elements from the list.\",\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"Int\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"after\",\n                  \"description\": \"Returns the elements in the list that come after the specified global ID.\",\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"String\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"last\",\n                  \"description\": \"Returns the last _n_ elements from the list.\",\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"Int\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"before\",\n                  \"description\": \"Returns the elements in the list that come before the specified global ID.\",\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"String\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"privacy\",\n                  \"description\": \"If non-null, filters repositories according to privacy\",\n                  \"type\": {\n                    \"kind\": \"ENUM\",\n                    \"name\": \"RepositoryPrivacy\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"isFork\",\n                  \"description\": \"If non-null, filters repositories according to whether they are forks of another repository\",\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"Boolean\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"orderBy\",\n                  \"description\": \"Ordering options for repositories returned from the connection\",\n                  \"type\": {\n                    \"kind\": \"INPUT_OBJECT\",\n                    \"name\": \"RepositoryOrder\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                }\n              ],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"RepositoryConnection\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"repository\",\n              \"description\": \"Find Repository.\",\n              \"args\": [\n                {\n                  \"name\": \"name\",\n                  \"description\": \"Name of Repository to find.\",\n                  \"type\": {\n                    \"kind\": \"NON_NULL\",\n                    \"name\": null,\n                    \"ofType\": {\n                      \"kind\": \"SCALAR\",\n                      \"name\": \"String\",\n                      \"ofType\": null\n                    }\n                  },\n                  \"defaultValue\": null\n                }\n              ],\n              \"type\": {\n                \"kind\": \"OBJECT\",\n                \"name\": \"Repository\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"url\",\n              \"description\": \"The HTTP url for the owner.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"URI\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"inputFields\": null,\n          \"interfaces\": null,\n          \"enumValues\": null,\n          \"possibleTypes\": [\n            {\n              \"kind\": \"OBJECT\",\n              \"name\": \"Organization\",\n              \"ofType\": null\n            },\n            {\n              \"kind\": \"OBJECT\",\n              \"name\": \"User\",\n              \"ofType\": null\n            }\n          ]\n        },\n        {\n          \"kind\": \"OBJECT\",\n          \"name\": \"RepositoryConnection\",\n          \"description\": \"A list of repositories owned by the subject.\",\n          \"fields\": [\n            {\n              \"name\": \"edges\",\n              \"description\": \"A list of edges.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"LIST\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"RepositoryEdge\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"nodes\",\n              \"description\": \"A list of nodes.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"LIST\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"Repository\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"pageInfo\",\n              \"description\": \"Information to aid in pagination.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"PageInfo\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"totalCount\",\n              \"description\": \"Identifies the total count of items in the connection.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"Int\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"totalDiskUsage\",\n              \"description\": \"The total size in kilobytes of all repositories in the connection.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"Int\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"inputFields\": null,\n          \"interfaces\": [],\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"OBJECT\",\n          \"name\": \"RepositoryEdge\",\n          \"description\": \"An edge in a connection.\",\n          \"fields\": [\n            {\n              \"name\": \"cursor\",\n              \"description\": \"A cursor for use in pagination.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"String\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"node\",\n              \"description\": \"The item at the end of the edge.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"OBJECT\",\n                \"name\": \"Repository\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"inputFields\": null,\n          \"interfaces\": [],\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"ENUM\",\n          \"name\": \"RepositoryPrivacy\",\n          \"description\": \"The privacy of a repository\",\n          \"fields\": null,\n          \"inputFields\": null,\n          \"interfaces\": null,\n          \"enumValues\": [\n            {\n              \"name\": \"PUBLIC\",\n              \"description\": \"Public\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"PRIVATE\",\n              \"description\": \"Private\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"INPUT_OBJECT\",\n          \"name\": \"RepositoryOrder\",\n          \"description\": \"Ordering options for repository connections\",\n          \"fields\": null,\n          \"inputFields\": [\n            {\n              \"name\": \"field\",\n              \"description\": \"The field to order repositories by.\",\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"ENUM\",\n                  \"name\": \"RepositoryOrderField\",\n                  \"ofType\": null\n                }\n              },\n              \"defaultValue\": null\n            },\n            {\n              \"name\": \"direction\",\n              \"description\": \"The ordering direction.\",\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"ENUM\",\n                  \"name\": \"OrderDirection\",\n                  \"ofType\": null\n                }\n              },\n              \"defaultValue\": null\n            }\n          ],\n          \"interfaces\": null,\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"ENUM\",\n          \"name\": \"RepositoryOrderField\",\n          \"description\": \"Properties by which repository connections can be ordered.\",\n          \"fields\": null,\n          \"inputFields\": null,\n          \"interfaces\": null,\n          \"enumValues\": [\n            {\n              \"name\": \"CREATED_AT\",\n              \"description\": \"Order repositories by creation time\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"UPDATED_AT\",\n              \"description\": \"Order repositories by update time\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"PUSHED_AT\",\n              \"description\": \"Order repositories by push time\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"NAME\",\n              \"description\": \"Order repositories by name\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"OBJECT\",\n          \"name\": \"Gist\",\n          \"description\": \"A Gist.\",\n          \"fields\": [\n            {\n              \"name\": \"createdAt\",\n              \"description\": \"Identifies the date and time when the object was created.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"DateTime\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"description\",\n              \"description\": \"The gist description.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"String\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"id\",\n              \"description\": null,\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"ID\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"name\",\n              \"description\": \"The gist name.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"String\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"owner\",\n              \"description\": \"The gist owner.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"INTERFACE\",\n                \"name\": \"RepositoryOwner\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"public\",\n              \"description\": \"Whether the gist is public or not.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"Boolean\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"updatedAt\",\n              \"description\": \"Identifies the date and time when the object was last updated.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"DateTime\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"inputFields\": null,\n          \"interfaces\": [\n            {\n              \"kind\": \"INTERFACE\",\n              \"name\": \"Node\",\n              \"ofType\": null\n            }\n          ],\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"OBJECT\",\n          \"name\": \"GistConnection\",\n          \"description\": \"The connection type for Gist.\",\n          \"fields\": [\n            {\n              \"name\": \"edges\",\n              \"description\": \"A list of edges.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"LIST\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"GistEdge\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"nodes\",\n              \"description\": \"A list of nodes.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"LIST\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"Gist\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"pageInfo\",\n              \"description\": \"Information to aid in pagination.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"PageInfo\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"totalCount\",\n              \"description\": \"Identifies the total count of items in the connection.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"Int\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"inputFields\": null,\n          \"interfaces\": [],\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"OBJECT\",\n          \"name\": \"GistEdge\",\n          \"description\": \"An edge in a connection.\",\n          \"fields\": [\n            {\n              \"name\": \"cursor\",\n              \"description\": \"A cursor for use in pagination.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"String\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"node\",\n              \"description\": \"The item at the end of the edge.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"OBJECT\",\n                \"name\": \"Gist\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"inputFields\": null,\n          \"interfaces\": [],\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"ENUM\",\n          \"name\": \"GistVisibility\",\n          \"description\": \"The possible Gist visibility types\",\n          \"fields\": null,\n          \"inputFields\": null,\n          \"interfaces\": null,\n          \"enumValues\": [\n            {\n              \"name\": \"PUBLIC\",\n              \"description\": \"Gists that are public\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"SECRET\",\n              \"description\": \"Gists that are secret\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"ALL\",\n              \"description\": \"Gists that are public and secret\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"OBJECT\",\n          \"name\": \"UserConnection\",\n          \"description\": \"The connection type for User.\",\n          \"fields\": [\n            {\n              \"name\": \"edges\",\n              \"description\": \"A list of edges.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"LIST\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"UserEdge\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"nodes\",\n              \"description\": \"A list of nodes.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"LIST\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"User\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"pageInfo\",\n              \"description\": \"Information to aid in pagination.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"PageInfo\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"totalCount\",\n              \"description\": \"Identifies the total count of items in the connection.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"Int\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"inputFields\": null,\n          \"interfaces\": [],\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"OBJECT\",\n          \"name\": \"UserEdge\",\n          \"description\": \"An edge in a connection.\",\n          \"fields\": [\n            {\n              \"name\": \"cursor\",\n              \"description\": \"A cursor for use in pagination.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"String\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"node\",\n              \"description\": \"The item at the end of the edge.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"OBJECT\",\n                \"name\": \"User\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"inputFields\": null,\n          \"interfaces\": [],\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"ENUM\",\n          \"name\": \"RepositoryCollaboratorAffiliation\",\n          \"description\": \"The affiliation type between collaborator and repository.\",\n          \"fields\": null,\n          \"inputFields\": null,\n          \"interfaces\": null,\n          \"enumValues\": [\n            {\n              \"name\": \"ALL\",\n              \"description\": \"All collaborators of the repository.\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"OUTSIDE\",\n              \"description\": \"All outside collaborators of an organization-owned repository.\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"ENUM\",\n          \"name\": \"IssueState\",\n          \"description\": \"The possible states of an issue.\",\n          \"fields\": null,\n          \"inputFields\": null,\n          \"interfaces\": null,\n          \"enumValues\": [\n            {\n              \"name\": \"OPEN\",\n              \"description\": \"An issue that is still open\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"CLOSED\",\n              \"description\": \"An issue that has been closed\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"OBJECT\",\n          \"name\": \"Milestone\",\n          \"description\": \"Represents a Milestone object on a given repository.\",\n          \"fields\": [\n            {\n              \"name\": \"closedIssueCount\",\n              \"description\": \"Identifies the number of issues currently closed in this milestone.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"Int\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"createdBy\",\n              \"description\": \"Identifies the creator of the milestone.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"User\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"description\",\n              \"description\": \"Identifies the description of the milestone.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"String\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"dueOn\",\n              \"description\": \"Identifies the due date of the milestone.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"DateTime\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"id\",\n              \"description\": null,\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"ID\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"number\",\n              \"description\": \"Identifies the number of the milestone.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"Int\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"openIssueCount\",\n              \"description\": \"Identifies the number of issues currently open in this milestone.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"Int\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"path\",\n              \"description\": \"The HTTP path for this milestone\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"URI\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"repository\",\n              \"description\": \"The repository associated with this milestone.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"Repository\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"state\",\n              \"description\": \"Identifies the state of the milestone.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"ENUM\",\n                  \"name\": \"MilestoneState\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"title\",\n              \"description\": \"Identifies the title of the milestone.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"String\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"url\",\n              \"description\": \"The HTTP url for this milestone\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"URI\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"inputFields\": null,\n          \"interfaces\": [\n            {\n              \"kind\": \"INTERFACE\",\n              \"name\": \"Node\",\n              \"ofType\": null\n            }\n          ],\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"ENUM\",\n          \"name\": \"MilestoneState\",\n          \"description\": \"The possible states of a milestone.\",\n          \"fields\": null,\n          \"inputFields\": null,\n          \"interfaces\": null,\n          \"enumValues\": [\n            {\n              \"name\": \"OPEN\",\n              \"description\": \"A milestone that is still open.\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"CLOSED\",\n              \"description\": \"A milestone that has been closed.\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"OBJECT\",\n          \"name\": \"MilestoneConnection\",\n          \"description\": \"The connection type for Milestone.\",\n          \"fields\": [\n            {\n              \"name\": \"edges\",\n              \"description\": \"A list of edges.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"LIST\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"MilestoneEdge\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"nodes\",\n              \"description\": \"A list of nodes.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"LIST\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"Milestone\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"pageInfo\",\n              \"description\": \"Information to aid in pagination.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"PageInfo\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"totalCount\",\n              \"description\": \"Identifies the total count of items in the connection.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"Int\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"inputFields\": null,\n          \"interfaces\": [],\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"OBJECT\",\n          \"name\": \"MilestoneEdge\",\n          \"description\": \"An edge in a connection.\",\n          \"fields\": [\n            {\n              \"name\": \"cursor\",\n              \"description\": \"A cursor for use in pagination.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"String\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"node\",\n              \"description\": \"The item at the end of the edge.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"OBJECT\",\n                \"name\": \"Milestone\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"inputFields\": null,\n          \"interfaces\": [],\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"OBJECT\",\n          \"name\": \"LanguageConnection\",\n          \"description\": \"A list of languages associated with the parent.\",\n          \"fields\": [\n            {\n              \"name\": \"edges\",\n              \"description\": \"A list of edges.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"LIST\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"LanguageEdge\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"nodes\",\n              \"description\": \"A list of nodes.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"LIST\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"Language\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"pageInfo\",\n              \"description\": \"Information to aid in pagination.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"PageInfo\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"totalCount\",\n              \"description\": \"Identifies the total count of items in the connection.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"Int\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"totalSize\",\n              \"description\": \"The total size in bytes of files written in that language.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"Int\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"inputFields\": null,\n          \"interfaces\": [],\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"OBJECT\",\n          \"name\": \"LanguageEdge\",\n          \"description\": \"Represents the language of a repository.\",\n          \"fields\": [\n            {\n              \"name\": \"cursor\",\n              \"description\": null,\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"String\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"node\",\n              \"description\": null,\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"Language\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"size\",\n              \"description\": \"The number of bytes of code written in the language.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"Int\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"inputFields\": null,\n          \"interfaces\": [],\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"OBJECT\",\n          \"name\": \"Language\",\n          \"description\": \"Represents a given language found in repositories.\",\n          \"fields\": [\n            {\n              \"name\": \"color\",\n              \"description\": \"The color defined for the current language.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"String\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"id\",\n              \"description\": null,\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"ID\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"name\",\n              \"description\": \"The name of the current language.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"String\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"inputFields\": null,\n          \"interfaces\": [\n            {\n              \"kind\": \"INTERFACE\",\n              \"name\": \"Node\",\n              \"ofType\": null\n            }\n          ],\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"INPUT_OBJECT\",\n          \"name\": \"LanguageOrder\",\n          \"description\": \"Ordering options for language connections.\",\n          \"fields\": null,\n          \"inputFields\": [\n            {\n              \"name\": \"field\",\n              \"description\": \"The field to order languages by.\",\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"ENUM\",\n                  \"name\": \"LanguageOrderField\",\n                  \"ofType\": null\n                }\n              },\n              \"defaultValue\": null\n            },\n            {\n              \"name\": \"direction\",\n              \"description\": \"The ordering direction.\",\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"ENUM\",\n                  \"name\": \"OrderDirection\",\n                  \"ofType\": null\n                }\n              },\n              \"defaultValue\": null\n            }\n          ],\n          \"interfaces\": null,\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"ENUM\",\n          \"name\": \"LanguageOrderField\",\n          \"description\": \"Properties by which language connections can be ordered.\",\n          \"fields\": null,\n          \"inputFields\": null,\n          \"interfaces\": null,\n          \"enumValues\": [\n            {\n              \"name\": \"SIZE\",\n              \"description\": \"Order languages by the size of all files containing the language\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"OBJECT\",\n          \"name\": \"RefConnection\",\n          \"description\": \"The connection type for Ref.\",\n          \"fields\": [\n            {\n              \"name\": \"edges\",\n              \"description\": \"A list of edges.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"LIST\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"RefEdge\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"nodes\",\n              \"description\": \"A list of nodes.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"LIST\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"Ref\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"pageInfo\",\n              \"description\": \"Information to aid in pagination.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"PageInfo\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"totalCount\",\n              \"description\": \"Identifies the total count of items in the connection.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"Int\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"inputFields\": null,\n          \"interfaces\": [],\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"OBJECT\",\n          \"name\": \"RefEdge\",\n          \"description\": \"An edge in a connection.\",\n          \"fields\": [\n            {\n              \"name\": \"cursor\",\n              \"description\": \"A cursor for use in pagination.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"String\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"node\",\n              \"description\": \"The item at the end of the edge.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"OBJECT\",\n                \"name\": \"Ref\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"inputFields\": null,\n          \"interfaces\": [],\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"OBJECT\",\n          \"name\": \"StargazerConnection\",\n          \"description\": \"The connection type for User.\",\n          \"fields\": [\n            {\n              \"name\": \"edges\",\n              \"description\": \"A list of edges.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"LIST\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"StargazerEdge\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"nodes\",\n              \"description\": \"A list of nodes.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"LIST\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"User\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"pageInfo\",\n              \"description\": \"Information to aid in pagination.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"PageInfo\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"totalCount\",\n              \"description\": \"Identifies the total count of items in the connection.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"Int\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"inputFields\": null,\n          \"interfaces\": [],\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"OBJECT\",\n          \"name\": \"StargazerEdge\",\n          \"description\": \"Represents a user that's starred a repository.\",\n          \"fields\": [\n            {\n              \"name\": \"cursor\",\n              \"description\": null,\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"String\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"node\",\n              \"description\": null,\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"User\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"starredAt\",\n              \"description\": \"Identifies when the item was starred.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"DateTime\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"inputFields\": null,\n          \"interfaces\": [],\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"INPUT_OBJECT\",\n          \"name\": \"StarOrder\",\n          \"description\": \"Ways in which star connections can be ordered.\",\n          \"fields\": null,\n          \"inputFields\": [\n            {\n              \"name\": \"field\",\n              \"description\": \"The field in which to order nodes by.\",\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"ENUM\",\n                  \"name\": \"StarOrderField\",\n                  \"ofType\": null\n                }\n              },\n              \"defaultValue\": null\n            },\n            {\n              \"name\": \"direction\",\n              \"description\": \"The direction in which to order nodes.\",\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"ENUM\",\n                  \"name\": \"OrderDirection\",\n                  \"ofType\": null\n                }\n              },\n              \"defaultValue\": null\n            }\n          ],\n          \"interfaces\": null,\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"ENUM\",\n          \"name\": \"StarOrderField\",\n          \"description\": \"Properties by which star connections can be ordered.\",\n          \"fields\": null,\n          \"inputFields\": null,\n          \"interfaces\": null,\n          \"enumValues\": [\n            {\n              \"name\": \"STARRED_AT\",\n              \"description\": \"Allows ordering a list of stars by when they were created.\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"OBJECT\",\n          \"name\": \"ReleaseConnection\",\n          \"description\": \"The connection type for Release.\",\n          \"fields\": [\n            {\n              \"name\": \"edges\",\n              \"description\": \"A list of edges.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"LIST\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"ReleaseEdge\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"nodes\",\n              \"description\": \"A list of nodes.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"LIST\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"Release\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"pageInfo\",\n              \"description\": \"Information to aid in pagination.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"PageInfo\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"totalCount\",\n              \"description\": \"Identifies the total count of items in the connection.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"Int\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"inputFields\": null,\n          \"interfaces\": [],\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"OBJECT\",\n          \"name\": \"ReleaseEdge\",\n          \"description\": \"An edge in a connection.\",\n          \"fields\": [\n            {\n              \"name\": \"cursor\",\n              \"description\": \"A cursor for use in pagination.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"String\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"node\",\n              \"description\": \"The item at the end of the edge.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"OBJECT\",\n                \"name\": \"Release\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"inputFields\": null,\n          \"interfaces\": [],\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"OBJECT\",\n          \"name\": \"Release\",\n          \"description\": \"A release contains the content for a release.\",\n          \"fields\": [\n            {\n              \"name\": \"description\",\n              \"description\": \"Identifies the description of the release.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"String\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"id\",\n              \"description\": null,\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"ID\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"name\",\n              \"description\": \"Identifies the title of the release.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"String\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"path\",\n              \"description\": \"The HTTP path for this issue\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"URI\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"publishedAt\",\n              \"description\": \"Identifies the date and time when the release was created.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"DateTime\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"releaseAsset\",\n              \"description\": \"List of releases assets which are dependent on this release.\",\n              \"args\": [\n                {\n                  \"name\": \"first\",\n                  \"description\": \"Returns the first _n_ elements from the list.\",\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"Int\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"after\",\n                  \"description\": \"Returns the elements in the list that come after the specified global ID.\",\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"String\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"last\",\n                  \"description\": \"Returns the last _n_ elements from the list.\",\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"Int\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"before\",\n                  \"description\": \"Returns the elements in the list that come before the specified global ID.\",\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"String\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"name\",\n                  \"description\": \"A list of names to filter the assets by.\",\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"String\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                }\n              ],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"ReleaseAssetConnection\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"releaseAssets\",\n              \"description\": \"List of releases assets which are dependent on this release.\",\n              \"args\": [\n                {\n                  \"name\": \"first\",\n                  \"description\": \"Returns the first _n_ elements from the list.\",\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"Int\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"after\",\n                  \"description\": \"Returns the elements in the list that come after the specified global ID.\",\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"String\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"last\",\n                  \"description\": \"Returns the last _n_ elements from the list.\",\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"Int\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"before\",\n                  \"description\": \"Returns the elements in the list that come before the specified global ID.\",\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"String\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                }\n              ],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"ReleaseAssetConnection\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"tag\",\n              \"description\": \"The Git tag the release points to\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"OBJECT\",\n                \"name\": \"Ref\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"url\",\n              \"description\": \"The HTTP url for this issue\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"URI\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"inputFields\": null,\n          \"interfaces\": [\n            {\n              \"kind\": \"INTERFACE\",\n              \"name\": \"Node\",\n              \"ofType\": null\n            },\n            {\n              \"kind\": \"INTERFACE\",\n              \"name\": \"UniformResourceLocatable\",\n              \"ofType\": null\n            }\n          ],\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"OBJECT\",\n          \"name\": \"ReleaseAssetConnection\",\n          \"description\": \"The connection type for ReleaseAsset.\",\n          \"fields\": [\n            {\n              \"name\": \"edges\",\n              \"description\": \"A list of edges.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"LIST\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"ReleaseAssetEdge\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"nodes\",\n              \"description\": \"A list of nodes.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"LIST\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"ReleaseAsset\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"pageInfo\",\n              \"description\": \"Information to aid in pagination.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"PageInfo\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"totalCount\",\n              \"description\": \"Identifies the total count of items in the connection.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"Int\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"inputFields\": null,\n          \"interfaces\": [],\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"OBJECT\",\n          \"name\": \"ReleaseAssetEdge\",\n          \"description\": \"An edge in a connection.\",\n          \"fields\": [\n            {\n              \"name\": \"cursor\",\n              \"description\": \"A cursor for use in pagination.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"String\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"node\",\n              \"description\": \"The item at the end of the edge.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"OBJECT\",\n                \"name\": \"ReleaseAsset\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"inputFields\": null,\n          \"interfaces\": [],\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"OBJECT\",\n          \"name\": \"ReleaseAsset\",\n          \"description\": \"A release asset contains the content for a release asset.\",\n          \"fields\": [\n            {\n              \"name\": \"id\",\n              \"description\": null,\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"ID\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"name\",\n              \"description\": \"Identifies the title of the release asset.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"String\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"release\",\n              \"description\": \"release that the asset is associated with\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"OBJECT\",\n                \"name\": \"Release\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"url\",\n              \"description\": \"Identifies the url of the release asset.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"URI\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"inputFields\": null,\n          \"interfaces\": [\n            {\n              \"kind\": \"INTERFACE\",\n              \"name\": \"Node\",\n              \"ofType\": null\n            }\n          ],\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"INTERFACE\",\n          \"name\": \"Subscribable\",\n          \"description\": \"Entities that can be subscribed to for web and email notifications.\",\n          \"fields\": [\n            {\n              \"name\": \"viewerCanSubscribe\",\n              \"description\": \"Check if the viewer is able to change their subscription status for the repository.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"Boolean\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"viewerSubscription\",\n              \"description\": \"Identifies if the viewer is watching, not watching, or ignoring the repository.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"ENUM\",\n                  \"name\": \"SubscriptionState\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"inputFields\": null,\n          \"interfaces\": null,\n          \"enumValues\": null,\n          \"possibleTypes\": [\n            {\n              \"kind\": \"OBJECT\",\n              \"name\": \"Repository\",\n              \"ofType\": null\n            }\n          ]\n        },\n        {\n          \"kind\": \"INTERFACE\",\n          \"name\": \"RepositoryInfo\",\n          \"description\": \"A subset of repository info.\",\n          \"fields\": [\n            {\n              \"name\": \"createdAt\",\n              \"description\": \"Identifies the date and time when the object was created.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"DateTime\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"description\",\n              \"description\": \"The description of the repository.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"String\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"descriptionHTML\",\n              \"description\": \"The description of the repository rendered to HTML.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"HTML\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"hasIssuesEnabled\",\n              \"description\": \"Indicates if the repository has issues feature enabled.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"Boolean\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"hasWikiEnabled\",\n              \"description\": \"Indicates if the repository has wiki feature enabled.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"Boolean\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"homepageURL\",\n              \"description\": \"The repository's URL.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"String\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"isFork\",\n              \"description\": \"Identifies if the repository is a fork.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"Boolean\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"isLocked\",\n              \"description\": \"Indicates if the repository has been locked or not.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"Boolean\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"isMirror\",\n              \"description\": \"Identifies if the repository is a mirror.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"Boolean\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"isPrivate\",\n              \"description\": \"Identifies if the repository is private.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"Boolean\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"license\",\n              \"description\": \"The license associated with the repository\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"String\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"lockReason\",\n              \"description\": \"The reason the repository has been locked.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"ENUM\",\n                \"name\": \"RepositoryLockReason\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"mirrorURL\",\n              \"description\": \"The repository's original mirror URL.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"String\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"name\",\n              \"description\": \"The name of the repository.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"String\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"owner\",\n              \"description\": \"The User owner of the repository.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"INTERFACE\",\n                  \"name\": \"RepositoryOwner\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"path\",\n              \"description\": \"The HTTP path for this repository\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"URI\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"pushedAt\",\n              \"description\": \"Identifies when the repository was last pushed to.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"DateTime\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"updatedAt\",\n              \"description\": \"Identifies the date and time when the object was last updated.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"DateTime\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"url\",\n              \"description\": \"The HTTP url for this repository\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"URI\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"inputFields\": null,\n          \"interfaces\": null,\n          \"enumValues\": null,\n          \"possibleTypes\": [\n            {\n              \"kind\": \"OBJECT\",\n              \"name\": \"Repository\",\n              \"ofType\": null\n            },\n            {\n              \"kind\": \"OBJECT\",\n              \"name\": \"RepositoryInvitationRepository\",\n              \"ofType\": null\n            }\n          ]\n        },\n        {\n          \"kind\": \"SCALAR\",\n          \"name\": \"Float\",\n          \"description\": \"Represents signed double-precision fractional values as specified by [IEEE 754](http://en.wikipedia.org/wiki/IEEE_floating_point).\",\n          \"fields\": null,\n          \"inputFields\": null,\n          \"interfaces\": null,\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"OBJECT\",\n          \"name\": \"Organization\",\n          \"description\": \"An account on GitHub, with one or more owners, that has repositories, members and teams.\",\n          \"fields\": [\n            {\n              \"name\": \"avatarURL\",\n              \"description\": \"A URL pointing to the organization's public avatar.\",\n              \"args\": [\n                {\n                  \"name\": \"size\",\n                  \"description\": \"The size of the resulting square image.\",\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"Int\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                }\n              ],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"String\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"gist\",\n              \"description\": \"Find gist by repo name.\",\n              \"args\": [\n                {\n                  \"name\": \"name\",\n                  \"description\": \"The gist name to find.\",\n                  \"type\": {\n                    \"kind\": \"NON_NULL\",\n                    \"name\": null,\n                    \"ofType\": {\n                      \"kind\": \"SCALAR\",\n                      \"name\": \"String\",\n                      \"ofType\": null\n                    }\n                  },\n                  \"defaultValue\": null\n                }\n              ],\n              \"type\": {\n                \"kind\": \"OBJECT\",\n                \"name\": \"Gist\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"gists\",\n              \"description\": \"A list of the Gists the user has created.\",\n              \"args\": [\n                {\n                  \"name\": \"first\",\n                  \"description\": \"Returns the first _n_ elements from the list.\",\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"Int\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"after\",\n                  \"description\": \"Returns the elements in the list that come after the specified global ID.\",\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"String\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"last\",\n                  \"description\": \"Returns the last _n_ elements from the list.\",\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"Int\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"before\",\n                  \"description\": \"Returns the elements in the list that come before the specified global ID.\",\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"String\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"visibility\",\n                  \"description\": \"Allows filtering by gist visibility.\",\n                  \"type\": {\n                    \"kind\": \"ENUM\",\n                    \"name\": \"GistVisibility\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                }\n              ],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"GistConnection\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"id\",\n              \"description\": null,\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"ID\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"login\",\n              \"description\": \"The username used to login.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"String\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"members\",\n              \"description\": \"A list of users who are members of this organization.\",\n              \"args\": [\n                {\n                  \"name\": \"first\",\n                  \"description\": \"Returns the first _n_ elements from the list.\",\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"Int\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"after\",\n                  \"description\": \"Returns the elements in the list that come after the specified global ID.\",\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"String\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"last\",\n                  \"description\": \"Returns the last _n_ elements from the list.\",\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"Int\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"before\",\n                  \"description\": \"Returns the elements in the list that come before the specified global ID.\",\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"String\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                }\n              ],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"UserConnection\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"name\",\n              \"description\": \"The organization's public profile name.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"String\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"path\",\n              \"description\": \"The HTTP path for this user\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"URI\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"project\",\n              \"description\": \"Find project by number.\",\n              \"args\": [\n                {\n                  \"name\": \"number\",\n                  \"description\": \"The project number to find.\",\n                  \"type\": {\n                    \"kind\": \"NON_NULL\",\n                    \"name\": null,\n                    \"ofType\": {\n                      \"kind\": \"SCALAR\",\n                      \"name\": \"Int\",\n                      \"ofType\": null\n                    }\n                  },\n                  \"defaultValue\": null\n                }\n              ],\n              \"type\": {\n                \"kind\": \"OBJECT\",\n                \"name\": \"Project\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"projects\",\n              \"description\": \"A list of projects under the owner.\",\n              \"args\": [\n                {\n                  \"name\": \"first\",\n                  \"description\": \"Returns the first _n_ elements from the list.\",\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"Int\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"after\",\n                  \"description\": \"Returns the elements in the list that come after the specified global ID.\",\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"String\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"last\",\n                  \"description\": \"Returns the last _n_ elements from the list.\",\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"Int\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"before\",\n                  \"description\": \"Returns the elements in the list that come before the specified global ID.\",\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"String\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"orderBy\",\n                  \"description\": \"Ordering options for projects returned from the connection\",\n                  \"type\": {\n                    \"kind\": \"INPUT_OBJECT\",\n                    \"name\": \"ProjectOrder\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"search\",\n                  \"description\": \"Query to search projects by, currently only searching by name.\",\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"String\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                }\n              ],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"ProjectConnection\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"projectsPath\",\n              \"description\": \"The HTTP path listing organization's projects\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"URI\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"projectsUrl\",\n              \"description\": \"The HTTP url listing organization's projects\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"URI\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"repositories\",\n              \"description\": \"A list of repositories that the user owns.\",\n              \"args\": [\n                {\n                  \"name\": \"first\",\n                  \"description\": \"Returns the first _n_ elements from the list.\",\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"Int\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"after\",\n                  \"description\": \"Returns the elements in the list that come after the specified global ID.\",\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"String\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"last\",\n                  \"description\": \"Returns the last _n_ elements from the list.\",\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"Int\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"before\",\n                  \"description\": \"Returns the elements in the list that come before the specified global ID.\",\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"String\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"privacy\",\n                  \"description\": \"If non-null, filters repositories according to privacy\",\n                  \"type\": {\n                    \"kind\": \"ENUM\",\n                    \"name\": \"RepositoryPrivacy\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"isFork\",\n                  \"description\": \"If non-null, filters repositories according to whether they are forks of another repository\",\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"Boolean\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"orderBy\",\n                  \"description\": \"Ordering options for repositories returned from the connection\",\n                  \"type\": {\n                    \"kind\": \"INPUT_OBJECT\",\n                    \"name\": \"RepositoryOrder\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                }\n              ],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"RepositoryConnection\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"repository\",\n              \"description\": \"Find Repository.\",\n              \"args\": [\n                {\n                  \"name\": \"name\",\n                  \"description\": \"Name of Repository to find.\",\n                  \"type\": {\n                    \"kind\": \"NON_NULL\",\n                    \"name\": null,\n                    \"ofType\": {\n                      \"kind\": \"SCALAR\",\n                      \"name\": \"String\",\n                      \"ofType\": null\n                    }\n                  },\n                  \"defaultValue\": null\n                }\n              ],\n              \"type\": {\n                \"kind\": \"OBJECT\",\n                \"name\": \"Repository\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"teams\",\n              \"description\": \"A list of teams in this organization.\",\n              \"args\": [\n                {\n                  \"name\": \"first\",\n                  \"description\": \"Returns the first _n_ elements from the list.\",\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"Int\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"after\",\n                  \"description\": \"Returns the elements in the list that come after the specified global ID.\",\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"String\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"last\",\n                  \"description\": \"Returns the last _n_ elements from the list.\",\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"Int\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"before\",\n                  \"description\": \"Returns the elements in the list that come before the specified global ID.\",\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"String\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                }\n              ],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"TeamConnection\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"url\",\n              \"description\": \"The HTTP url for this user\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"URI\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"viewerCanCreateProjects\",\n              \"description\": \"Can the current viewer create new projects on this owner.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"Boolean\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"viewerCanCreateRepositories\",\n              \"description\": \"Viewer can create repositories on this organization\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"Boolean\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"inputFields\": null,\n          \"interfaces\": [\n            {\n              \"kind\": \"INTERFACE\",\n              \"name\": \"Node\",\n              \"ofType\": null\n            },\n            {\n              \"kind\": \"INTERFACE\",\n              \"name\": \"ProjectOwner\",\n              \"ofType\": null\n            },\n            {\n              \"kind\": \"INTERFACE\",\n              \"name\": \"RepositoryOwner\",\n              \"ofType\": null\n            },\n            {\n              \"kind\": \"INTERFACE\",\n              \"name\": \"UniformResourceLocatable\",\n              \"ofType\": null\n            }\n          ],\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"SCALAR\",\n          \"name\": \"X509Certificate\",\n          \"description\": \"A valid x509 certificate string\",\n          \"fields\": null,\n          \"inputFields\": null,\n          \"interfaces\": null,\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"ENUM\",\n          \"name\": \"DefaultRepositoryPermissionField\",\n          \"description\": \"The possible default permissions for organization-owned repositories.\",\n          \"fields\": null,\n          \"inputFields\": null,\n          \"interfaces\": null,\n          \"enumValues\": [\n            {\n              \"name\": \"READ\",\n              \"description\": \"Members have read access to org repos by default\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"WRITE\",\n              \"description\": \"Members have read and write access to org repos by default\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"ADMIN\",\n              \"description\": \"Members have read, write, and admin access to org repos by default\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"OBJECT\",\n          \"name\": \"OrganizationInvitationConnection\",\n          \"description\": \"The connection type for OrganizationInvitation.\",\n          \"fields\": [\n            {\n              \"name\": \"edges\",\n              \"description\": \"A list of edges.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"LIST\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"OrganizationInvitationEdge\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"nodes\",\n              \"description\": \"A list of nodes.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"LIST\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"OrganizationInvitation\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"pageInfo\",\n              \"description\": \"Information to aid in pagination.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"PageInfo\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"totalCount\",\n              \"description\": \"Identifies the total count of items in the connection.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"Int\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"inputFields\": null,\n          \"interfaces\": [],\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"OBJECT\",\n          \"name\": \"OrganizationInvitationEdge\",\n          \"description\": \"An edge in a connection.\",\n          \"fields\": [\n            {\n              \"name\": \"cursor\",\n              \"description\": \"A cursor for use in pagination.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"String\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"node\",\n              \"description\": \"The item at the end of the edge.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"OBJECT\",\n                \"name\": \"OrganizationInvitation\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"inputFields\": null,\n          \"interfaces\": [],\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"OBJECT\",\n          \"name\": \"OrganizationInvitation\",\n          \"description\": \"An Invitation for a user to an organization.\",\n          \"fields\": [\n            {\n              \"name\": \"email\",\n              \"description\": \"The email address of the user invited to the organization.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"String\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"id\",\n              \"description\": null,\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"ID\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"inviter\",\n              \"description\": \"The user who created the invitation.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"User\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"login\",\n              \"description\": \"The login of the user invited to the organization.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"String\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"role\",\n              \"description\": \"The user's pending role in the organization (e.g. member, owner).\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"ENUM\",\n                  \"name\": \"OrganizationInvitationRole\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"inputFields\": null,\n          \"interfaces\": [],\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"ENUM\",\n          \"name\": \"OrganizationInvitationRole\",\n          \"description\": \"The possible organization invitation roles.\",\n          \"fields\": null,\n          \"inputFields\": null,\n          \"interfaces\": null,\n          \"enumValues\": [\n            {\n              \"name\": \"DIRECT_MEMBER\",\n              \"description\": \"The user is invited to be a direct member of the organization.\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"ADMIN\",\n              \"description\": \"The user is invited to be an admin of the organization.\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"BILLING_MANAGER\",\n              \"description\": \"The user is invited to be a billing manager of the organization.\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"HIRING_MANAGER\",\n              \"description\": \"The user is invited to be a hiring manager of the organization.\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"REINSTATE\",\n              \"description\": \"The user's previous role will be reinstated.\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"OBJECT\",\n          \"name\": \"TeamConnection\",\n          \"description\": \"The connection type for Team.\",\n          \"fields\": [\n            {\n              \"name\": \"edges\",\n              \"description\": \"A list of edges.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"LIST\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"TeamEdge\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"nodes\",\n              \"description\": \"A list of nodes.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"LIST\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"Team\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"pageInfo\",\n              \"description\": \"Information to aid in pagination.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"PageInfo\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"totalCount\",\n              \"description\": \"Identifies the total count of items in the connection.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"Int\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"inputFields\": null,\n          \"interfaces\": [],\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"OBJECT\",\n          \"name\": \"TeamEdge\",\n          \"description\": \"An edge in a connection.\",\n          \"fields\": [\n            {\n              \"name\": \"cursor\",\n              \"description\": \"A cursor for use in pagination.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"String\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"node\",\n              \"description\": \"The item at the end of the edge.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"OBJECT\",\n                \"name\": \"Team\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"inputFields\": null,\n          \"interfaces\": [],\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"OBJECT\",\n          \"name\": \"Team\",\n          \"description\": \"A team of users in an organization.\",\n          \"fields\": [\n            {\n              \"name\": \"description\",\n              \"description\": \"The description of the team.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"String\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"id\",\n              \"description\": null,\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"ID\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"invitations\",\n              \"description\": \"A list of pending invitations for users to this team\",\n              \"args\": [\n                {\n                  \"name\": \"first\",\n                  \"description\": \"Returns the first _n_ elements from the list.\",\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"Int\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"after\",\n                  \"description\": \"Returns the elements in the list that come after the specified global ID.\",\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"String\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"last\",\n                  \"description\": \"Returns the last _n_ elements from the list.\",\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"Int\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"before\",\n                  \"description\": \"Returns the elements in the list that come before the specified global ID.\",\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"String\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                }\n              ],\n              \"type\": {\n                \"kind\": \"OBJECT\",\n                \"name\": \"OrganizationInvitationConnection\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"name\",\n              \"description\": \"The name of the team.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"String\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"privacy\",\n              \"description\": \"The level of privacy the team has.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"ENUM\",\n                  \"name\": \"TeamPrivacy\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"slug\",\n              \"description\": \"The slug corresponding to the team.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"String\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"inputFields\": null,\n          \"interfaces\": [\n            {\n              \"kind\": \"INTERFACE\",\n              \"name\": \"Node\",\n              \"ofType\": null\n            }\n          ],\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"ENUM\",\n          \"name\": \"TeamPrivacy\",\n          \"description\": \"The possible team privacy values.\",\n          \"fields\": null,\n          \"inputFields\": null,\n          \"interfaces\": null,\n          \"enumValues\": [\n            {\n              \"name\": \"SECRET\",\n              \"description\": \"A secret team can only be seen by its members.\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"VISIBLE\",\n              \"description\": \"A visible team can be seen and @mentioned by every member of the organization.\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"OBJECT\",\n          \"name\": \"OrganizationConnection\",\n          \"description\": \"The connection type for Organization.\",\n          \"fields\": [\n            {\n              \"name\": \"edges\",\n              \"description\": \"A list of edges.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"LIST\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"OrganizationEdge\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"nodes\",\n              \"description\": \"A list of nodes.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"LIST\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"Organization\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"pageInfo\",\n              \"description\": \"Information to aid in pagination.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"PageInfo\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"totalCount\",\n              \"description\": \"Identifies the total count of items in the connection.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"Int\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"inputFields\": null,\n          \"interfaces\": [],\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"OBJECT\",\n          \"name\": \"OrganizationEdge\",\n          \"description\": \"An edge in a connection.\",\n          \"fields\": [\n            {\n              \"name\": \"cursor\",\n              \"description\": \"A cursor for use in pagination.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"String\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"node\",\n              \"description\": \"The item at the end of the edge.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"OBJECT\",\n                \"name\": \"Organization\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"inputFields\": null,\n          \"interfaces\": [],\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"OBJECT\",\n          \"name\": \"StarredRepositoryConnection\",\n          \"description\": \"The connection type for User.\",\n          \"fields\": [\n            {\n              \"name\": \"edges\",\n              \"description\": \"A list of edges.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"LIST\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"StarredRepositoryEdge\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"nodes\",\n              \"description\": \"A list of nodes.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"LIST\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"User\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"pageInfo\",\n              \"description\": \"Information to aid in pagination.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"PageInfo\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"totalCount\",\n              \"description\": \"Identifies the total count of items in the connection.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"Int\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"inputFields\": null,\n          \"interfaces\": [],\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"OBJECT\",\n          \"name\": \"StarredRepositoryEdge\",\n          \"description\": \"Represents a starred repository.\",\n          \"fields\": [\n            {\n              \"name\": \"cursor\",\n              \"description\": null,\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"String\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"node\",\n              \"description\": null,\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"Repository\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"starredAt\",\n              \"description\": \"Identifies when the item was starred.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"DateTime\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"inputFields\": null,\n          \"interfaces\": [],\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"OBJECT\",\n          \"name\": \"Blob\",\n          \"description\": \"Represents a Git blob.\",\n          \"fields\": [\n            {\n              \"name\": \"byteSize\",\n              \"description\": \"Byte size of Blob object\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"Int\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"id\",\n              \"description\": null,\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"ID\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"isBinary\",\n              \"description\": \"Indicates whether the Blob is binary or text\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"Boolean\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"isTruncated\",\n              \"description\": \"Indicates whether the contents is truncated\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"Boolean\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"oid\",\n              \"description\": \"The Git object ID\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"GitObjectID\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"repository\",\n              \"description\": \"The Repository the Git object belongs to\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"Repository\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"text\",\n              \"description\": \"UTF8 text data or null if the Blob is binary\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"String\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"inputFields\": null,\n          \"interfaces\": [\n            {\n              \"kind\": \"INTERFACE\",\n              \"name\": \"Node\",\n              \"ofType\": null\n            },\n            {\n              \"kind\": \"INTERFACE\",\n              \"name\": \"GitObject\",\n              \"ofType\": null\n            }\n          ],\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"OBJECT\",\n          \"name\": \"GistComment\",\n          \"description\": \"Represents a comment on an Gist.\",\n          \"fields\": [\n            {\n              \"name\": \"author\",\n              \"description\": \"Identifies the author of the comment.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"OBJECT\",\n                \"name\": \"User\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"body\",\n              \"description\": \"Identifies the comment body.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"String\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"bodyHTML\",\n              \"description\": \"The comment body rendered to HTML.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"HTML\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"createdAt\",\n              \"description\": \"Identifies the date and time when the object was created.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"DateTime\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"createdViaEmail\",\n              \"description\": \"Check if this comment was created via an email reply.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"Boolean\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"editor\",\n              \"description\": \"The user who edited the comment.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"OBJECT\",\n                \"name\": \"User\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"id\",\n              \"description\": null,\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"ID\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"lastEditedAt\",\n              \"description\": \"The moment the editor made the last edit\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"DateTime\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"updatedAt\",\n              \"description\": \"Identifies the date and time when the object was last updated.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"DateTime\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"viewerCanDelete\",\n              \"description\": \"Check if the current viewer can delete this comment.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"Boolean\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"viewerCanEdit\",\n              \"description\": \"Check if the current viewer edit this comment.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"Boolean\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"viewerCannotEditReasons\",\n              \"description\": \"Errors why the current viewer can not edit this comment.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"LIST\",\n                  \"name\": null,\n                  \"ofType\": {\n                    \"kind\": \"NON_NULL\",\n                    \"name\": null,\n                    \"ofType\": {\n                      \"kind\": \"ENUM\",\n                      \"name\": \"CommentCannotEditReason\",\n                      \"ofType\": null\n                    }\n                  }\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"viewerDidAuthor\",\n              \"description\": \"Did the viewer author this comment.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"Boolean\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"inputFields\": null,\n          \"interfaces\": [\n            {\n              \"kind\": \"INTERFACE\",\n              \"name\": \"Node\",\n              \"ofType\": null\n            },\n            {\n              \"kind\": \"INTERFACE\",\n              \"name\": \"Comment\",\n              \"ofType\": null\n            }\n          ],\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"OBJECT\",\n          \"name\": \"GpgSignature\",\n          \"description\": \"Represents a GPG signature on a Commit or Tag.\",\n          \"fields\": [\n            {\n              \"name\": \"email\",\n              \"description\": \"Email used to sign this object.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"String\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"isValid\",\n              \"description\": \"True if the signature is valid and verified by GitHub.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"Boolean\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"keyId\",\n              \"description\": \"Hex-encoded ID of the key that signed this object.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"String\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"payload\",\n              \"description\": \"Payload for GPG signing object. Raw ODB object without the signature header.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"String\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"signature\",\n              \"description\": \"ASCII-armored signature header from object.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"String\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"signer\",\n              \"description\": \"GitHub user corresponding to the email signing this commit.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"OBJECT\",\n                \"name\": \"User\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"state\",\n              \"description\": \"The state of this signature. `VALID` if signature is valid and verified by GitHub, otherwise represents reason why signature is considered invalid.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"ENUM\",\n                  \"name\": \"GitSignatureState\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"inputFields\": null,\n          \"interfaces\": [\n            {\n              \"kind\": \"INTERFACE\",\n              \"name\": \"GitSignature\",\n              \"ofType\": null\n            }\n          ],\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"OBJECT\",\n          \"name\": \"RepositoryInvitation\",\n          \"description\": \"An invitation for a user to be added to a repository.\",\n          \"fields\": [\n            {\n              \"name\": \"id\",\n              \"description\": null,\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"ID\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"invitee\",\n              \"description\": \"The user who received the invitation.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"User\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"inviter\",\n              \"description\": \"The user who created the invitation.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"User\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"repository\",\n              \"description\": \"The Repository the user is invited to.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"RepositoryInvitationRepository\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"inputFields\": null,\n          \"interfaces\": [\n            {\n              \"kind\": \"INTERFACE\",\n              \"name\": \"Node\",\n              \"ofType\": null\n            }\n          ],\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"OBJECT\",\n          \"name\": \"RepositoryInvitationRepository\",\n          \"description\": \"A subset of repository info shared with potential collaborators.\",\n          \"fields\": [\n            {\n              \"name\": \"createdAt\",\n              \"description\": \"Identifies the date and time when the object was created.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"DateTime\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"description\",\n              \"description\": \"The description of the repository.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"String\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"descriptionHTML\",\n              \"description\": \"The description of the repository rendered to HTML.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"HTML\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"hasIssuesEnabled\",\n              \"description\": \"Indicates if the repository has issues feature enabled.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"Boolean\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"hasWikiEnabled\",\n              \"description\": \"Indicates if the repository has wiki feature enabled.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"Boolean\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"homepageURL\",\n              \"description\": \"The repository's URL.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"String\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"isFork\",\n              \"description\": \"Identifies if the repository is a fork.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"Boolean\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"isLocked\",\n              \"description\": \"Indicates if the repository has been locked or not.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"Boolean\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"isMirror\",\n              \"description\": \"Identifies if the repository is a mirror.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"Boolean\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"isPrivate\",\n              \"description\": \"Identifies if the repository is private.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"Boolean\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"license\",\n              \"description\": \"The license associated with the repository\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"String\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"lockReason\",\n              \"description\": \"The reason the repository has been locked.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"ENUM\",\n                \"name\": \"RepositoryLockReason\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"mirrorURL\",\n              \"description\": \"The repository's original mirror URL.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"String\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"name\",\n              \"description\": \"The name of the repository.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"String\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"owner\",\n              \"description\": \"The User owner of the repository.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"INTERFACE\",\n                  \"name\": \"RepositoryOwner\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"path\",\n              \"description\": \"The HTTP path for this repository\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"URI\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"pushedAt\",\n              \"description\": \"Identifies when the repository was last pushed to.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"DateTime\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"updatedAt\",\n              \"description\": \"Identifies the date and time when the object was last updated.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"DateTime\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"url\",\n              \"description\": \"The HTTP url for this repository\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"URI\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"inputFields\": null,\n          \"interfaces\": [\n            {\n              \"kind\": \"INTERFACE\",\n              \"name\": \"RepositoryInfo\",\n              \"ofType\": null\n            }\n          ],\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"OBJECT\",\n          \"name\": \"SmimeSignature\",\n          \"description\": \"Represents an S/MIME signature on a Commit or Tag.\",\n          \"fields\": [\n            {\n              \"name\": \"email\",\n              \"description\": \"Email used to sign this object.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"String\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"isValid\",\n              \"description\": \"True if the signature is valid and verified by GitHub.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"Boolean\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"payload\",\n              \"description\": \"Payload for GPG signing object. Raw ODB object without the signature header.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"String\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"signature\",\n              \"description\": \"ASCII-armored signature header from object.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"String\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"signer\",\n              \"description\": \"GitHub user corresponding to the email signing this commit.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"OBJECT\",\n                \"name\": \"User\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"state\",\n              \"description\": \"The state of this signature. `VALID` if signature is valid and verified by GitHub, otherwise represents reason why signature is considered invalid.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"ENUM\",\n                  \"name\": \"GitSignatureState\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"inputFields\": null,\n          \"interfaces\": [\n            {\n              \"kind\": \"INTERFACE\",\n              \"name\": \"GitSignature\",\n              \"ofType\": null\n            }\n          ],\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"OBJECT\",\n          \"name\": \"Tag\",\n          \"description\": \"Represents a Git tag.\",\n          \"fields\": [\n            {\n              \"name\": \"id\",\n              \"description\": null,\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"ID\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"message\",\n              \"description\": \"The Git tag message.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"String\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"name\",\n              \"description\": \"The Git tag name.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"String\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"oid\",\n              \"description\": \"The Git object ID\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"GitObjectID\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"repository\",\n              \"description\": \"The Repository the Git object belongs to\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"Repository\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"tagger\",\n              \"description\": \"Details about the tag author.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"OBJECT\",\n                \"name\": \"GitActor\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"target\",\n              \"description\": \"The Git object the tag points to.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"INTERFACE\",\n                  \"name\": \"GitObject\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"inputFields\": null,\n          \"interfaces\": [\n            {\n              \"kind\": \"INTERFACE\",\n              \"name\": \"Node\",\n              \"ofType\": null\n            },\n            {\n              \"kind\": \"INTERFACE\",\n              \"name\": \"GitObject\",\n              \"ofType\": null\n            }\n          ],\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"OBJECT\",\n          \"name\": \"UnknownSignature\",\n          \"description\": \"Represents an unknown signature on a Commit or Tag.\",\n          \"fields\": [\n            {\n              \"name\": \"email\",\n              \"description\": \"Email used to sign this object.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"String\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"isValid\",\n              \"description\": \"True if the signature is valid and verified by GitHub.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"Boolean\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"payload\",\n              \"description\": \"Payload for GPG signing object. Raw ODB object without the signature header.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"String\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"signature\",\n              \"description\": \"ASCII-armored signature header from object.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"String\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"signer\",\n              \"description\": \"GitHub user corresponding to the email signing this commit.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"OBJECT\",\n                \"name\": \"User\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"state\",\n              \"description\": \"The state of this signature. `VALID` if signature is valid and verified by GitHub, otherwise represents reason why signature is considered invalid.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"ENUM\",\n                  \"name\": \"GitSignatureState\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"inputFields\": null,\n          \"interfaces\": [\n            {\n              \"kind\": \"INTERFACE\",\n              \"name\": \"GitSignature\",\n              \"ofType\": null\n            }\n          ],\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"OBJECT\",\n          \"name\": \"Query\",\n          \"description\": \"The query root of GitHub's GraphQL interface.\",\n          \"fields\": [\n            {\n              \"name\": \"node\",\n              \"description\": \"Fetches an object given its ID.\",\n              \"args\": [\n                {\n                  \"name\": \"id\",\n                  \"description\": \"ID of the object.\",\n                  \"type\": {\n                    \"kind\": \"NON_NULL\",\n                    \"name\": null,\n                    \"ofType\": {\n                      \"kind\": \"SCALAR\",\n                      \"name\": \"ID\",\n                      \"ofType\": null\n                    }\n                  },\n                  \"defaultValue\": null\n                }\n              ],\n              \"type\": {\n                \"kind\": \"INTERFACE\",\n                \"name\": \"Node\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"nodes\",\n              \"description\": \"Lookup nodes by a list of IDs.\",\n              \"args\": [\n                {\n                  \"name\": \"ids\",\n                  \"description\": \"The list of node IDs.\",\n                  \"type\": {\n                    \"kind\": \"NON_NULL\",\n                    \"name\": null,\n                    \"ofType\": {\n                      \"kind\": \"LIST\",\n                      \"name\": null,\n                      \"ofType\": {\n                        \"kind\": \"NON_NULL\",\n                        \"name\": null,\n                        \"ofType\": {\n                          \"kind\": \"SCALAR\",\n                          \"name\": \"ID\",\n                          \"ofType\": null\n                        }\n                      }\n                    }\n                  },\n                  \"defaultValue\": null\n                }\n              ],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"LIST\",\n                  \"name\": null,\n                  \"ofType\": {\n                    \"kind\": \"INTERFACE\",\n                    \"name\": \"Node\",\n                    \"ofType\": null\n                  }\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"organization\",\n              \"description\": \"Lookup a organization by login.\",\n              \"args\": [\n                {\n                  \"name\": \"login\",\n                  \"description\": \"The organization's login.\",\n                  \"type\": {\n                    \"kind\": \"NON_NULL\",\n                    \"name\": null,\n                    \"ofType\": {\n                      \"kind\": \"SCALAR\",\n                      \"name\": \"String\",\n                      \"ofType\": null\n                    }\n                  },\n                  \"defaultValue\": null\n                }\n              ],\n              \"type\": {\n                \"kind\": \"OBJECT\",\n                \"name\": \"Organization\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"relay\",\n              \"description\": \"Hack to workaround https://github.com/facebook/relay/issues/112 re-exposing the root query object\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"Query\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"repository\",\n              \"description\": \"Lookup a given repository by the owner and repository name.\",\n              \"args\": [\n                {\n                  \"name\": \"owner\",\n                  \"description\": \"The login field of a user or organizationn\",\n                  \"type\": {\n                    \"kind\": \"NON_NULL\",\n                    \"name\": null,\n                    \"ofType\": {\n                      \"kind\": \"SCALAR\",\n                      \"name\": \"String\",\n                      \"ofType\": null\n                    }\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"name\",\n                  \"description\": \"The name of the repository\",\n                  \"type\": {\n                    \"kind\": \"NON_NULL\",\n                    \"name\": null,\n                    \"ofType\": {\n                      \"kind\": \"SCALAR\",\n                      \"name\": \"String\",\n                      \"ofType\": null\n                    }\n                  },\n                  \"defaultValue\": null\n                }\n              ],\n              \"type\": {\n                \"kind\": \"OBJECT\",\n                \"name\": \"Repository\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"repositoryOwner\",\n              \"description\": \"Lookup a repository owner (ie. either a User or an Organization) by login.\",\n              \"args\": [\n                {\n                  \"name\": \"login\",\n                  \"description\": \"The username to lookup the owner by.\",\n                  \"type\": {\n                    \"kind\": \"NON_NULL\",\n                    \"name\": null,\n                    \"ofType\": {\n                      \"kind\": \"SCALAR\",\n                      \"name\": \"String\",\n                      \"ofType\": null\n                    }\n                  },\n                  \"defaultValue\": null\n                }\n              ],\n              \"type\": {\n                \"kind\": \"INTERFACE\",\n                \"name\": \"RepositoryOwner\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"resource\",\n              \"description\": \"Lookup resource by a URL.\",\n              \"args\": [\n                {\n                  \"name\": \"url\",\n                  \"description\": \"The URL.\",\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"URI\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                }\n              ],\n              \"type\": {\n                \"kind\": \"INTERFACE\",\n                \"name\": \"UniformResourceLocatable\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"search\",\n              \"description\": \"Perform a search across resources.\",\n              \"args\": [\n                {\n                  \"name\": \"first\",\n                  \"description\": \"Returns the first _n_ elements from the list.\",\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"Int\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"after\",\n                  \"description\": \"Returns the elements in the list that come after the specified global ID.\",\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"String\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"last\",\n                  \"description\": \"Returns the last _n_ elements from the list.\",\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"Int\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"before\",\n                  \"description\": \"Returns the elements in the list that come before the specified global ID.\",\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"String\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"query\",\n                  \"description\": \"The search string to look for.\",\n                  \"type\": {\n                    \"kind\": \"NON_NULL\",\n                    \"name\": null,\n                    \"ofType\": {\n                      \"kind\": \"SCALAR\",\n                      \"name\": \"String\",\n                      \"ofType\": null\n                    }\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"type\",\n                  \"description\": \"The types of search items to search within.\",\n                  \"type\": {\n                    \"kind\": \"NON_NULL\",\n                    \"name\": null,\n                    \"ofType\": {\n                      \"kind\": \"ENUM\",\n                      \"name\": \"SearchType\",\n                      \"ofType\": null\n                    }\n                  },\n                  \"defaultValue\": null\n                }\n              ],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"SearchResultItemConnection\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"user\",\n              \"description\": \"Lookup a user by login.\",\n              \"args\": [\n                {\n                  \"name\": \"login\",\n                  \"description\": \"The user's login.\",\n                  \"type\": {\n                    \"kind\": \"NON_NULL\",\n                    \"name\": null,\n                    \"ofType\": {\n                      \"kind\": \"SCALAR\",\n                      \"name\": \"String\",\n                      \"ofType\": null\n                    }\n                  },\n                  \"defaultValue\": null\n                }\n              ],\n              \"type\": {\n                \"kind\": \"OBJECT\",\n                \"name\": \"User\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"viewer\",\n              \"description\": \"The currently authenticated user.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"User\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"inputFields\": null,\n          \"interfaces\": [],\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"OBJECT\",\n          \"name\": \"SearchResultItemConnection\",\n          \"description\": \"A list of results that matched against a search query.\",\n          \"fields\": [\n            {\n              \"name\": \"codeCount\",\n              \"description\": \"The number of pieces of code that matched the search query.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"Int\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"edges\",\n              \"description\": \"A list of edges.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"LIST\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"SearchResultItemEdge\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"issueCount\",\n              \"description\": \"The number of issues that matched the search query.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"Int\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"nodes\",\n              \"description\": \"A list of nodes.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"LIST\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"UNION\",\n                  \"name\": \"SearchResultItem\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"pageInfo\",\n              \"description\": \"Information to aid in pagination.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"PageInfo\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"repositoryCount\",\n              \"description\": \"The number of repositories that matched the search query.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"Int\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"userCount\",\n              \"description\": \"The number of users that matched the search query.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"Int\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"wikiCount\",\n              \"description\": \"The number of wiki pages that matched the search query.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"Int\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"inputFields\": null,\n          \"interfaces\": [],\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"OBJECT\",\n          \"name\": \"SearchResultItemEdge\",\n          \"description\": \"An edge in a connection.\",\n          \"fields\": [\n            {\n              \"name\": \"cursor\",\n              \"description\": \"A cursor for use in pagination.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"String\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"node\",\n              \"description\": \"The item at the end of the edge.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"UNION\",\n                \"name\": \"SearchResultItem\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"inputFields\": null,\n          \"interfaces\": [],\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"UNION\",\n          \"name\": \"SearchResultItem\",\n          \"description\": \"The results of a search.\",\n          \"fields\": null,\n          \"inputFields\": null,\n          \"interfaces\": null,\n          \"enumValues\": null,\n          \"possibleTypes\": [\n            {\n              \"kind\": \"OBJECT\",\n              \"name\": \"Issue\",\n              \"ofType\": null\n            },\n            {\n              \"kind\": \"OBJECT\",\n              \"name\": \"PullRequest\",\n              \"ofType\": null\n            },\n            {\n              \"kind\": \"OBJECT\",\n              \"name\": \"Repository\",\n              \"ofType\": null\n            },\n            {\n              \"kind\": \"OBJECT\",\n              \"name\": \"User\",\n              \"ofType\": null\n            },\n            {\n              \"kind\": \"OBJECT\",\n              \"name\": \"Organization\",\n              \"ofType\": null\n            }\n          ]\n        },\n        {\n          \"kind\": \"ENUM\",\n          \"name\": \"SearchType\",\n          \"description\": \"Represents the individual results of a search.\",\n          \"fields\": null,\n          \"inputFields\": null,\n          \"interfaces\": null,\n          \"enumValues\": [\n            {\n              \"name\": \"ISSUE\",\n              \"description\": \"Returns results matching issues in repositories.\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"REPOSITORY\",\n              \"description\": \"Returns results matching repositories.\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"USER\",\n              \"description\": \"Returns results matching users on GitHub.\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"OBJECT\",\n          \"name\": \"Mutation\",\n          \"description\": \"The root query for implementing GraphQL mutations.\",\n          \"fields\": [\n            {\n              \"name\": \"addComment\",\n              \"description\": \"Adds a comment to an Issue or Pull Request.\",\n              \"args\": [\n                {\n                  \"name\": \"input\",\n                  \"description\": null,\n                  \"type\": {\n                    \"kind\": \"NON_NULL\",\n                    \"name\": null,\n                    \"ofType\": {\n                      \"kind\": \"INPUT_OBJECT\",\n                      \"name\": \"AddCommentInput\",\n                      \"ofType\": null\n                    }\n                  },\n                  \"defaultValue\": null\n                }\n              ],\n              \"type\": {\n                \"kind\": \"OBJECT\",\n                \"name\": \"AddCommentPayload\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"addProjectCard\",\n              \"description\": \"Adds a card to a ProjectColumn. Either `contentId` or `note` must be provided but **not** both.\",\n              \"args\": [\n                {\n                  \"name\": \"input\",\n                  \"description\": null,\n                  \"type\": {\n                    \"kind\": \"NON_NULL\",\n                    \"name\": null,\n                    \"ofType\": {\n                      \"kind\": \"INPUT_OBJECT\",\n                      \"name\": \"AddProjectCardInput\",\n                      \"ofType\": null\n                    }\n                  },\n                  \"defaultValue\": null\n                }\n              ],\n              \"type\": {\n                \"kind\": \"OBJECT\",\n                \"name\": \"AddProjectCardPayload\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"addProjectColumn\",\n              \"description\": \"Adds a column to a Project.\",\n              \"args\": [\n                {\n                  \"name\": \"input\",\n                  \"description\": null,\n                  \"type\": {\n                    \"kind\": \"NON_NULL\",\n                    \"name\": null,\n                    \"ofType\": {\n                      \"kind\": \"INPUT_OBJECT\",\n                      \"name\": \"AddProjectColumnInput\",\n                      \"ofType\": null\n                    }\n                  },\n                  \"defaultValue\": null\n                }\n              ],\n              \"type\": {\n                \"kind\": \"OBJECT\",\n                \"name\": \"AddProjectColumnPayload\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"addPullRequestReview\",\n              \"description\": \"Adds a review to a Pull Request.\",\n              \"args\": [\n                {\n                  \"name\": \"input\",\n                  \"description\": null,\n                  \"type\": {\n                    \"kind\": \"NON_NULL\",\n                    \"name\": null,\n                    \"ofType\": {\n                      \"kind\": \"INPUT_OBJECT\",\n                      \"name\": \"AddPullRequestReviewInput\",\n                      \"ofType\": null\n                    }\n                  },\n                  \"defaultValue\": null\n                }\n              ],\n              \"type\": {\n                \"kind\": \"OBJECT\",\n                \"name\": \"AddPullRequestReviewPayload\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"addPullRequestReviewComment\",\n              \"description\": \"Adds a comment to a review.\",\n              \"args\": [\n                {\n                  \"name\": \"input\",\n                  \"description\": null,\n                  \"type\": {\n                    \"kind\": \"NON_NULL\",\n                    \"name\": null,\n                    \"ofType\": {\n                      \"kind\": \"INPUT_OBJECT\",\n                      \"name\": \"AddPullRequestReviewCommentInput\",\n                      \"ofType\": null\n                    }\n                  },\n                  \"defaultValue\": null\n                }\n              ],\n              \"type\": {\n                \"kind\": \"OBJECT\",\n                \"name\": \"AddPullRequestReviewCommentPayload\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"addReaction\",\n              \"description\": \"Adds a reaction to a subject.\",\n              \"args\": [\n                {\n                  \"name\": \"input\",\n                  \"description\": null,\n                  \"type\": {\n                    \"kind\": \"NON_NULL\",\n                    \"name\": null,\n                    \"ofType\": {\n                      \"kind\": \"INPUT_OBJECT\",\n                      \"name\": \"AddReactionInput\",\n                      \"ofType\": null\n                    }\n                  },\n                  \"defaultValue\": null\n                }\n              ],\n              \"type\": {\n                \"kind\": \"OBJECT\",\n                \"name\": \"AddReactionPayload\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"createProject\",\n              \"description\": \"Creates a new project.\",\n              \"args\": [\n                {\n                  \"name\": \"input\",\n                  \"description\": null,\n                  \"type\": {\n                    \"kind\": \"NON_NULL\",\n                    \"name\": null,\n                    \"ofType\": {\n                      \"kind\": \"INPUT_OBJECT\",\n                      \"name\": \"CreateProjectInput\",\n                      \"ofType\": null\n                    }\n                  },\n                  \"defaultValue\": null\n                }\n              ],\n              \"type\": {\n                \"kind\": \"OBJECT\",\n                \"name\": \"CreateProjectPayload\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"deleteProject\",\n              \"description\": \"Deletes a project.\",\n              \"args\": [\n                {\n                  \"name\": \"input\",\n                  \"description\": null,\n                  \"type\": {\n                    \"kind\": \"NON_NULL\",\n                    \"name\": null,\n                    \"ofType\": {\n                      \"kind\": \"INPUT_OBJECT\",\n                      \"name\": \"DeleteProjectInput\",\n                      \"ofType\": null\n                    }\n                  },\n                  \"defaultValue\": null\n                }\n              ],\n              \"type\": {\n                \"kind\": \"OBJECT\",\n                \"name\": \"DeleteProjectPayload\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"deleteProjectCard\",\n              \"description\": \"Deletes a project card.\",\n              \"args\": [\n                {\n                  \"name\": \"input\",\n                  \"description\": null,\n                  \"type\": {\n                    \"kind\": \"NON_NULL\",\n                    \"name\": null,\n                    \"ofType\": {\n                      \"kind\": \"INPUT_OBJECT\",\n                      \"name\": \"DeleteProjectCardInput\",\n                      \"ofType\": null\n                    }\n                  },\n                  \"defaultValue\": null\n                }\n              ],\n              \"type\": {\n                \"kind\": \"OBJECT\",\n                \"name\": \"DeleteProjectCardPayload\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"deleteProjectColumn\",\n              \"description\": \"Deletes a project column.\",\n              \"args\": [\n                {\n                  \"name\": \"input\",\n                  \"description\": null,\n                  \"type\": {\n                    \"kind\": \"NON_NULL\",\n                    \"name\": null,\n                    \"ofType\": {\n                      \"kind\": \"INPUT_OBJECT\",\n                      \"name\": \"DeleteProjectColumnInput\",\n                      \"ofType\": null\n                    }\n                  },\n                  \"defaultValue\": null\n                }\n              ],\n              \"type\": {\n                \"kind\": \"OBJECT\",\n                \"name\": \"DeleteProjectColumnPayload\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"deletePullRequestReview\",\n              \"description\": \"Deletes a pull request review.\",\n              \"args\": [\n                {\n                  \"name\": \"input\",\n                  \"description\": null,\n                  \"type\": {\n                    \"kind\": \"NON_NULL\",\n                    \"name\": null,\n                    \"ofType\": {\n                      \"kind\": \"INPUT_OBJECT\",\n                      \"name\": \"DeletePullRequestReviewInput\",\n                      \"ofType\": null\n                    }\n                  },\n                  \"defaultValue\": null\n                }\n              ],\n              \"type\": {\n                \"kind\": \"OBJECT\",\n                \"name\": \"DeletePullRequestReviewPayload\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"dismissPullRequestReview\",\n              \"description\": \"Dismisses an approved or rejected pull request review.\",\n              \"args\": [\n                {\n                  \"name\": \"input\",\n                  \"description\": null,\n                  \"type\": {\n                    \"kind\": \"NON_NULL\",\n                    \"name\": null,\n                    \"ofType\": {\n                      \"kind\": \"INPUT_OBJECT\",\n                      \"name\": \"DismissPullRequestReviewInput\",\n                      \"ofType\": null\n                    }\n                  },\n                  \"defaultValue\": null\n                }\n              ],\n              \"type\": {\n                \"kind\": \"OBJECT\",\n                \"name\": \"DismissPullRequestReviewPayload\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"moveProjectCard\",\n              \"description\": \"Moves a project card to another place.\",\n              \"args\": [\n                {\n                  \"name\": \"input\",\n                  \"description\": null,\n                  \"type\": {\n                    \"kind\": \"NON_NULL\",\n                    \"name\": null,\n                    \"ofType\": {\n                      \"kind\": \"INPUT_OBJECT\",\n                      \"name\": \"MoveProjectCardInput\",\n                      \"ofType\": null\n                    }\n                  },\n                  \"defaultValue\": null\n                }\n              ],\n              \"type\": {\n                \"kind\": \"OBJECT\",\n                \"name\": \"MoveProjectCardPayload\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"moveProjectColumn\",\n              \"description\": \"Moves a project column to another place.\",\n              \"args\": [\n                {\n                  \"name\": \"input\",\n                  \"description\": null,\n                  \"type\": {\n                    \"kind\": \"NON_NULL\",\n                    \"name\": null,\n                    \"ofType\": {\n                      \"kind\": \"INPUT_OBJECT\",\n                      \"name\": \"MoveProjectColumnInput\",\n                      \"ofType\": null\n                    }\n                  },\n                  \"defaultValue\": null\n                }\n              ],\n              \"type\": {\n                \"kind\": \"OBJECT\",\n                \"name\": \"MoveProjectColumnPayload\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"removeOutsideCollaborator\",\n              \"description\": \"Removes outside collaborator from all repositories in an organization.\",\n              \"args\": [\n                {\n                  \"name\": \"input\",\n                  \"description\": null,\n                  \"type\": {\n                    \"kind\": \"NON_NULL\",\n                    \"name\": null,\n                    \"ofType\": {\n                      \"kind\": \"INPUT_OBJECT\",\n                      \"name\": \"RemoveOutsideCollaboratorInput\",\n                      \"ofType\": null\n                    }\n                  },\n                  \"defaultValue\": null\n                }\n              ],\n              \"type\": {\n                \"kind\": \"OBJECT\",\n                \"name\": \"RemoveOutsideCollaboratorPayload\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"removeReaction\",\n              \"description\": \"Removes a reaction from a subject.\",\n              \"args\": [\n                {\n                  \"name\": \"input\",\n                  \"description\": null,\n                  \"type\": {\n                    \"kind\": \"NON_NULL\",\n                    \"name\": null,\n                    \"ofType\": {\n                      \"kind\": \"INPUT_OBJECT\",\n                      \"name\": \"RemoveReactionInput\",\n                      \"ofType\": null\n                    }\n                  },\n                  \"defaultValue\": null\n                }\n              ],\n              \"type\": {\n                \"kind\": \"OBJECT\",\n                \"name\": \"RemoveReactionPayload\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"requestReviews\",\n              \"description\": \"Set review requests on a pull request.\",\n              \"args\": [\n                {\n                  \"name\": \"input\",\n                  \"description\": null,\n                  \"type\": {\n                    \"kind\": \"NON_NULL\",\n                    \"name\": null,\n                    \"ofType\": {\n                      \"kind\": \"INPUT_OBJECT\",\n                      \"name\": \"RequestReviewsInput\",\n                      \"ofType\": null\n                    }\n                  },\n                  \"defaultValue\": null\n                }\n              ],\n              \"type\": {\n                \"kind\": \"OBJECT\",\n                \"name\": \"RequestReviewsPayload\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"submitPullRequestReview\",\n              \"description\": \"Submits a pending pull request review.\",\n              \"args\": [\n                {\n                  \"name\": \"input\",\n                  \"description\": null,\n                  \"type\": {\n                    \"kind\": \"NON_NULL\",\n                    \"name\": null,\n                    \"ofType\": {\n                      \"kind\": \"INPUT_OBJECT\",\n                      \"name\": \"SubmitPullRequestReviewInput\",\n                      \"ofType\": null\n                    }\n                  },\n                  \"defaultValue\": null\n                }\n              ],\n              \"type\": {\n                \"kind\": \"OBJECT\",\n                \"name\": \"SubmitPullRequestReviewPayload\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"updateProject\",\n              \"description\": \"Updates an existing project.\",\n              \"args\": [\n                {\n                  \"name\": \"input\",\n                  \"description\": null,\n                  \"type\": {\n                    \"kind\": \"NON_NULL\",\n                    \"name\": null,\n                    \"ofType\": {\n                      \"kind\": \"INPUT_OBJECT\",\n                      \"name\": \"UpdateProjectInput\",\n                      \"ofType\": null\n                    }\n                  },\n                  \"defaultValue\": null\n                }\n              ],\n              \"type\": {\n                \"kind\": \"OBJECT\",\n                \"name\": \"UpdateProjectPayload\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"updateProjectCard\",\n              \"description\": \"Updates an existing project card.\",\n              \"args\": [\n                {\n                  \"name\": \"input\",\n                  \"description\": null,\n                  \"type\": {\n                    \"kind\": \"NON_NULL\",\n                    \"name\": null,\n                    \"ofType\": {\n                      \"kind\": \"INPUT_OBJECT\",\n                      \"name\": \"UpdateProjectCardInput\",\n                      \"ofType\": null\n                    }\n                  },\n                  \"defaultValue\": null\n                }\n              ],\n              \"type\": {\n                \"kind\": \"OBJECT\",\n                \"name\": \"UpdateProjectCardPayload\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"updateProjectColumn\",\n              \"description\": \"Updates an existing project column.\",\n              \"args\": [\n                {\n                  \"name\": \"input\",\n                  \"description\": null,\n                  \"type\": {\n                    \"kind\": \"NON_NULL\",\n                    \"name\": null,\n                    \"ofType\": {\n                      \"kind\": \"INPUT_OBJECT\",\n                      \"name\": \"UpdateProjectColumnInput\",\n                      \"ofType\": null\n                    }\n                  },\n                  \"defaultValue\": null\n                }\n              ],\n              \"type\": {\n                \"kind\": \"OBJECT\",\n                \"name\": \"UpdateProjectColumnPayload\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"updatePullRequestReview\",\n              \"description\": \"Updates the body of a pull request review.\",\n              \"args\": [\n                {\n                  \"name\": \"input\",\n                  \"description\": null,\n                  \"type\": {\n                    \"kind\": \"NON_NULL\",\n                    \"name\": null,\n                    \"ofType\": {\n                      \"kind\": \"INPUT_OBJECT\",\n                      \"name\": \"UpdatePullRequestReviewInput\",\n                      \"ofType\": null\n                    }\n                  },\n                  \"defaultValue\": null\n                }\n              ],\n              \"type\": {\n                \"kind\": \"OBJECT\",\n                \"name\": \"UpdatePullRequestReviewPayload\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"updatePullRequestReviewComment\",\n              \"description\": \"Updates a pull request review comment.\",\n              \"args\": [\n                {\n                  \"name\": \"input\",\n                  \"description\": null,\n                  \"type\": {\n                    \"kind\": \"NON_NULL\",\n                    \"name\": null,\n                    \"ofType\": {\n                      \"kind\": \"INPUT_OBJECT\",\n                      \"name\": \"UpdatePullRequestReviewCommentInput\",\n                      \"ofType\": null\n                    }\n                  },\n                  \"defaultValue\": null\n                }\n              ],\n              \"type\": {\n                \"kind\": \"OBJECT\",\n                \"name\": \"UpdatePullRequestReviewCommentPayload\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"updateSubscription\",\n              \"description\": \"Updates viewers repository subscription state.\",\n              \"args\": [\n                {\n                  \"name\": \"input\",\n                  \"description\": null,\n                  \"type\": {\n                    \"kind\": \"NON_NULL\",\n                    \"name\": null,\n                    \"ofType\": {\n                      \"kind\": \"INPUT_OBJECT\",\n                      \"name\": \"UpdateSubscriptionInput\",\n                      \"ofType\": null\n                    }\n                  },\n                  \"defaultValue\": null\n                }\n              ],\n              \"type\": {\n                \"kind\": \"OBJECT\",\n                \"name\": \"UpdateSubscriptionPayload\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"inputFields\": null,\n          \"interfaces\": [],\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"OBJECT\",\n          \"name\": \"AddReactionPayload\",\n          \"description\": \"Autogenerated return type of AddReaction\",\n          \"fields\": [\n            {\n              \"name\": \"clientMutationId\",\n              \"description\": \"A unique identifier for the client performing the mutation.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"String\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"reaction\",\n              \"description\": \"The reaction object.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"Reaction\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"subject\",\n              \"description\": \"The reactable subject.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"INTERFACE\",\n                  \"name\": \"Reactable\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"inputFields\": null,\n          \"interfaces\": [],\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"INPUT_OBJECT\",\n          \"name\": \"AddReactionInput\",\n          \"description\": \"Autogenerated input type of AddReaction\",\n          \"fields\": null,\n          \"inputFields\": [\n            {\n              \"name\": \"clientMutationId\",\n              \"description\": \"A unique identifier for the client performing the mutation.\",\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"String\",\n                \"ofType\": null\n              },\n              \"defaultValue\": null\n            },\n            {\n              \"name\": \"subjectId\",\n              \"description\": \"The Node ID of the subject to modify.\",\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"ID\",\n                  \"ofType\": null\n                }\n              },\n              \"defaultValue\": null\n            },\n            {\n              \"name\": \"content\",\n              \"description\": \"The name of the emoji to react with.\",\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"ENUM\",\n                  \"name\": \"ReactionContent\",\n                  \"ofType\": null\n                }\n              },\n              \"defaultValue\": null\n            }\n          ],\n          \"interfaces\": null,\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"OBJECT\",\n          \"name\": \"RemoveReactionPayload\",\n          \"description\": \"Autogenerated return type of RemoveReaction\",\n          \"fields\": [\n            {\n              \"name\": \"clientMutationId\",\n              \"description\": \"A unique identifier for the client performing the mutation.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"String\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"reaction\",\n              \"description\": \"The reaction object.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"Reaction\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"subject\",\n              \"description\": \"The reactable subject.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"INTERFACE\",\n                  \"name\": \"Reactable\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"inputFields\": null,\n          \"interfaces\": [],\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"INPUT_OBJECT\",\n          \"name\": \"RemoveReactionInput\",\n          \"description\": \"Autogenerated input type of RemoveReaction\",\n          \"fields\": null,\n          \"inputFields\": [\n            {\n              \"name\": \"clientMutationId\",\n              \"description\": \"A unique identifier for the client performing the mutation.\",\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"String\",\n                \"ofType\": null\n              },\n              \"defaultValue\": null\n            },\n            {\n              \"name\": \"subjectId\",\n              \"description\": \"The Node ID of the subject to modify.\",\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"ID\",\n                  \"ofType\": null\n                }\n              },\n              \"defaultValue\": null\n            },\n            {\n              \"name\": \"content\",\n              \"description\": \"The name of the emoji to react with.\",\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"ENUM\",\n                  \"name\": \"ReactionContent\",\n                  \"ofType\": null\n                }\n              },\n              \"defaultValue\": null\n            }\n          ],\n          \"interfaces\": null,\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"OBJECT\",\n          \"name\": \"AddCommentPayload\",\n          \"description\": \"Autogenerated return type of AddComment\",\n          \"fields\": [\n            {\n              \"name\": \"clientMutationId\",\n              \"description\": \"A unique identifier for the client performing the mutation.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"String\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"commentEdge\",\n              \"description\": \"The edge from the subject's comment connection.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"IssueCommentEdge\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"subject\",\n              \"description\": \"The subject\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"INTERFACE\",\n                  \"name\": \"Node\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"timelineEdge\",\n              \"description\": \"The edge from the subject's timeline connection.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"IssueTimelineItemEdge\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"inputFields\": null,\n          \"interfaces\": [],\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"INPUT_OBJECT\",\n          \"name\": \"AddCommentInput\",\n          \"description\": \"Autogenerated input type of AddComment\",\n          \"fields\": null,\n          \"inputFields\": [\n            {\n              \"name\": \"clientMutationId\",\n              \"description\": \"A unique identifier for the client performing the mutation.\",\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"String\",\n                \"ofType\": null\n              },\n              \"defaultValue\": null\n            },\n            {\n              \"name\": \"subjectId\",\n              \"description\": \"The Node ID of the subject to modify.\",\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"ID\",\n                  \"ofType\": null\n                }\n              },\n              \"defaultValue\": null\n            },\n            {\n              \"name\": \"body\",\n              \"description\": \"The contents of the comment.\",\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"String\",\n                  \"ofType\": null\n                }\n              },\n              \"defaultValue\": null\n            }\n          ],\n          \"interfaces\": null,\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"OBJECT\",\n          \"name\": \"UpdateSubscriptionPayload\",\n          \"description\": \"Autogenerated return type of UpdateSubscription\",\n          \"fields\": [\n            {\n              \"name\": \"clientMutationId\",\n              \"description\": \"A unique identifier for the client performing the mutation.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"String\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"subscribable\",\n              \"description\": \"The input subscribable entity.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"INTERFACE\",\n                  \"name\": \"Subscribable\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"inputFields\": null,\n          \"interfaces\": [],\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"INPUT_OBJECT\",\n          \"name\": \"UpdateSubscriptionInput\",\n          \"description\": \"Autogenerated input type of UpdateSubscription\",\n          \"fields\": null,\n          \"inputFields\": [\n            {\n              \"name\": \"clientMutationId\",\n              \"description\": \"A unique identifier for the client performing the mutation.\",\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"String\",\n                \"ofType\": null\n              },\n              \"defaultValue\": null\n            },\n            {\n              \"name\": \"subscribableId\",\n              \"description\": \"The Node ID of the subscribable object to modify.\",\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"ID\",\n                  \"ofType\": null\n                }\n              },\n              \"defaultValue\": null\n            },\n            {\n              \"name\": \"state\",\n              \"description\": \"The new state of the subscription.\",\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"ENUM\",\n                  \"name\": \"SubscriptionState\",\n                  \"ofType\": null\n                }\n              },\n              \"defaultValue\": null\n            }\n          ],\n          \"interfaces\": null,\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"OBJECT\",\n          \"name\": \"CreateProjectPayload\",\n          \"description\": \"Autogenerated return type of CreateProject\",\n          \"fields\": [\n            {\n              \"name\": \"clientMutationId\",\n              \"description\": \"A unique identifier for the client performing the mutation.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"String\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"project\",\n              \"description\": \"The new project.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"Project\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"inputFields\": null,\n          \"interfaces\": [],\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"INPUT_OBJECT\",\n          \"name\": \"CreateProjectInput\",\n          \"description\": \"Autogenerated input type of CreateProject\",\n          \"fields\": null,\n          \"inputFields\": [\n            {\n              \"name\": \"clientMutationId\",\n              \"description\": \"A unique identifier for the client performing the mutation.\",\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"String\",\n                \"ofType\": null\n              },\n              \"defaultValue\": null\n            },\n            {\n              \"name\": \"ownerId\",\n              \"description\": \"The owner ID to create the project under.\",\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"ID\",\n                  \"ofType\": null\n                }\n              },\n              \"defaultValue\": null\n            },\n            {\n              \"name\": \"name\",\n              \"description\": \"The name of project.\",\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"String\",\n                  \"ofType\": null\n                }\n              },\n              \"defaultValue\": null\n            },\n            {\n              \"name\": \"body\",\n              \"description\": \"The description of project.\",\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"String\",\n                \"ofType\": null\n              },\n              \"defaultValue\": null\n            }\n          ],\n          \"interfaces\": null,\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"OBJECT\",\n          \"name\": \"UpdateProjectPayload\",\n          \"description\": \"Autogenerated return type of UpdateProject\",\n          \"fields\": [\n            {\n              \"name\": \"clientMutationId\",\n              \"description\": \"A unique identifier for the client performing the mutation.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"String\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"project\",\n              \"description\": \"The updated project.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"Project\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"inputFields\": null,\n          \"interfaces\": [],\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"INPUT_OBJECT\",\n          \"name\": \"UpdateProjectInput\",\n          \"description\": \"Autogenerated input type of UpdateProject\",\n          \"fields\": null,\n          \"inputFields\": [\n            {\n              \"name\": \"clientMutationId\",\n              \"description\": \"A unique identifier for the client performing the mutation.\",\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"String\",\n                \"ofType\": null\n              },\n              \"defaultValue\": null\n            },\n            {\n              \"name\": \"projectId\",\n              \"description\": \"The Project ID to update.\",\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"ID\",\n                  \"ofType\": null\n                }\n              },\n              \"defaultValue\": null\n            },\n            {\n              \"name\": \"name\",\n              \"description\": \"The name of project.\",\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"String\",\n                  \"ofType\": null\n                }\n              },\n              \"defaultValue\": null\n            },\n            {\n              \"name\": \"body\",\n              \"description\": \"The description of project.\",\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"String\",\n                \"ofType\": null\n              },\n              \"defaultValue\": null\n            }\n          ],\n          \"interfaces\": null,\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"OBJECT\",\n          \"name\": \"DeleteProjectPayload\",\n          \"description\": \"Autogenerated return type of DeleteProject\",\n          \"fields\": [\n            {\n              \"name\": \"clientMutationId\",\n              \"description\": \"A unique identifier for the client performing the mutation.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"String\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"owner\",\n              \"description\": \"The repository or organization the project was removed from.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"INTERFACE\",\n                  \"name\": \"ProjectOwner\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"inputFields\": null,\n          \"interfaces\": [],\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"INPUT_OBJECT\",\n          \"name\": \"DeleteProjectInput\",\n          \"description\": \"Autogenerated input type of DeleteProject\",\n          \"fields\": null,\n          \"inputFields\": [\n            {\n              \"name\": \"clientMutationId\",\n              \"description\": \"A unique identifier for the client performing the mutation.\",\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"String\",\n                \"ofType\": null\n              },\n              \"defaultValue\": null\n            },\n            {\n              \"name\": \"projectId\",\n              \"description\": \"The Project ID to update.\",\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"ID\",\n                  \"ofType\": null\n                }\n              },\n              \"defaultValue\": null\n            }\n          ],\n          \"interfaces\": null,\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"OBJECT\",\n          \"name\": \"AddProjectColumnPayload\",\n          \"description\": \"Autogenerated return type of AddProjectColumn\",\n          \"fields\": [\n            {\n              \"name\": \"clientMutationId\",\n              \"description\": \"A unique identifier for the client performing the mutation.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"String\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"columnEdge\",\n              \"description\": \"The edge from the project's column connection.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"ProjectColumnEdge\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"project\",\n              \"description\": \"The project\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"Project\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"inputFields\": null,\n          \"interfaces\": [],\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"INPUT_OBJECT\",\n          \"name\": \"AddProjectColumnInput\",\n          \"description\": \"Autogenerated input type of AddProjectColumn\",\n          \"fields\": null,\n          \"inputFields\": [\n            {\n              \"name\": \"clientMutationId\",\n              \"description\": \"A unique identifier for the client performing the mutation.\",\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"String\",\n                \"ofType\": null\n              },\n              \"defaultValue\": null\n            },\n            {\n              \"name\": \"projectId\",\n              \"description\": \"The Node ID of the project.\",\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"ID\",\n                  \"ofType\": null\n                }\n              },\n              \"defaultValue\": null\n            },\n            {\n              \"name\": \"name\",\n              \"description\": \"The name of the column.\",\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"String\",\n                  \"ofType\": null\n                }\n              },\n              \"defaultValue\": null\n            }\n          ],\n          \"interfaces\": null,\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"OBJECT\",\n          \"name\": \"MoveProjectColumnPayload\",\n          \"description\": \"Autogenerated return type of MoveProjectColumn\",\n          \"fields\": [\n            {\n              \"name\": \"clientMutationId\",\n              \"description\": \"A unique identifier for the client performing the mutation.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"String\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"columnEdge\",\n              \"description\": \"The new edge of the moved column.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"ProjectColumnEdge\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"inputFields\": null,\n          \"interfaces\": [],\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"INPUT_OBJECT\",\n          \"name\": \"MoveProjectColumnInput\",\n          \"description\": \"Autogenerated input type of MoveProjectColumn\",\n          \"fields\": null,\n          \"inputFields\": [\n            {\n              \"name\": \"clientMutationId\",\n              \"description\": \"A unique identifier for the client performing the mutation.\",\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"String\",\n                \"ofType\": null\n              },\n              \"defaultValue\": null\n            },\n            {\n              \"name\": \"columnId\",\n              \"description\": \"The id of the column to move.\",\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"ID\",\n                  \"ofType\": null\n                }\n              },\n              \"defaultValue\": null\n            },\n            {\n              \"name\": \"afterColumnId\",\n              \"description\": \"Place the new column after the column with this id. Pass null to place it at the front.\",\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"ID\",\n                \"ofType\": null\n              },\n              \"defaultValue\": null\n            }\n          ],\n          \"interfaces\": null,\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"OBJECT\",\n          \"name\": \"UpdateProjectColumnPayload\",\n          \"description\": \"Autogenerated return type of UpdateProjectColumn\",\n          \"fields\": [\n            {\n              \"name\": \"clientMutationId\",\n              \"description\": \"A unique identifier for the client performing the mutation.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"String\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"projectColumn\",\n              \"description\": \"The updated project column.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"ProjectColumn\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"inputFields\": null,\n          \"interfaces\": [],\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"INPUT_OBJECT\",\n          \"name\": \"UpdateProjectColumnInput\",\n          \"description\": \"Autogenerated input type of UpdateProjectColumn\",\n          \"fields\": null,\n          \"inputFields\": [\n            {\n              \"name\": \"clientMutationId\",\n              \"description\": \"A unique identifier for the client performing the mutation.\",\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"String\",\n                \"ofType\": null\n              },\n              \"defaultValue\": null\n            },\n            {\n              \"name\": \"projectColumnId\",\n              \"description\": \"The ProjectColumn ID to update.\",\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"ID\",\n                  \"ofType\": null\n                }\n              },\n              \"defaultValue\": null\n            },\n            {\n              \"name\": \"name\",\n              \"description\": \"The name of project column.\",\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"String\",\n                  \"ofType\": null\n                }\n              },\n              \"defaultValue\": null\n            }\n          ],\n          \"interfaces\": null,\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"OBJECT\",\n          \"name\": \"DeleteProjectColumnPayload\",\n          \"description\": \"Autogenerated return type of DeleteProjectColumn\",\n          \"fields\": [\n            {\n              \"name\": \"clientMutationId\",\n              \"description\": \"A unique identifier for the client performing the mutation.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"String\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"deletedColumnId\",\n              \"description\": \"The deleted column ID.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"ID\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"project\",\n              \"description\": \"The project the deleted column was in.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"Project\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"inputFields\": null,\n          \"interfaces\": [],\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"INPUT_OBJECT\",\n          \"name\": \"DeleteProjectColumnInput\",\n          \"description\": \"Autogenerated input type of DeleteProjectColumn\",\n          \"fields\": null,\n          \"inputFields\": [\n            {\n              \"name\": \"clientMutationId\",\n              \"description\": \"A unique identifier for the client performing the mutation.\",\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"String\",\n                \"ofType\": null\n              },\n              \"defaultValue\": null\n            },\n            {\n              \"name\": \"columnId\",\n              \"description\": \"The id of the column to delete.\",\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"ID\",\n                  \"ofType\": null\n                }\n              },\n              \"defaultValue\": null\n            }\n          ],\n          \"interfaces\": null,\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"OBJECT\",\n          \"name\": \"AddProjectCardPayload\",\n          \"description\": \"Autogenerated return type of AddProjectCard\",\n          \"fields\": [\n            {\n              \"name\": \"cardEdge\",\n              \"description\": \"The edge from the ProjectColumn's card connection.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"ProjectCardEdge\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"clientMutationId\",\n              \"description\": \"A unique identifier for the client performing the mutation.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"String\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"projectColumn\",\n              \"description\": \"The ProjectColumn\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"Project\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"inputFields\": null,\n          \"interfaces\": [],\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"INPUT_OBJECT\",\n          \"name\": \"AddProjectCardInput\",\n          \"description\": \"Autogenerated input type of AddProjectCard\",\n          \"fields\": null,\n          \"inputFields\": [\n            {\n              \"name\": \"clientMutationId\",\n              \"description\": \"A unique identifier for the client performing the mutation.\",\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"String\",\n                \"ofType\": null\n              },\n              \"defaultValue\": null\n            },\n            {\n              \"name\": \"projectColumnId\",\n              \"description\": \"The Node ID of the ProjectColumn.\",\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"ID\",\n                  \"ofType\": null\n                }\n              },\n              \"defaultValue\": null\n            },\n            {\n              \"name\": \"contentId\",\n              \"description\": \"The content of the card. Must be a member of the ProjectCardItem union\",\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"ID\",\n                \"ofType\": null\n              },\n              \"defaultValue\": null\n            },\n            {\n              \"name\": \"note\",\n              \"description\": \"The note on the card.\",\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"String\",\n                \"ofType\": null\n              },\n              \"defaultValue\": null\n            }\n          ],\n          \"interfaces\": null,\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"OBJECT\",\n          \"name\": \"UpdateProjectCardPayload\",\n          \"description\": \"Autogenerated return type of UpdateProjectCard\",\n          \"fields\": [\n            {\n              \"name\": \"clientMutationId\",\n              \"description\": \"A unique identifier for the client performing the mutation.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"String\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"projectCard\",\n              \"description\": \"The updated ProjectCard.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"ProjectCard\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"inputFields\": null,\n          \"interfaces\": [],\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"INPUT_OBJECT\",\n          \"name\": \"UpdateProjectCardInput\",\n          \"description\": \"Autogenerated input type of UpdateProjectCard\",\n          \"fields\": null,\n          \"inputFields\": [\n            {\n              \"name\": \"clientMutationId\",\n              \"description\": \"A unique identifier for the client performing the mutation.\",\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"String\",\n                \"ofType\": null\n              },\n              \"defaultValue\": null\n            },\n            {\n              \"name\": \"projectCardId\",\n              \"description\": \"The ProjectCard ID to update.\",\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"ID\",\n                  \"ofType\": null\n                }\n              },\n              \"defaultValue\": null\n            },\n            {\n              \"name\": \"note\",\n              \"description\": \"The note of ProjectCard.\",\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"String\",\n                  \"ofType\": null\n                }\n              },\n              \"defaultValue\": null\n            }\n          ],\n          \"interfaces\": null,\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"OBJECT\",\n          \"name\": \"MoveProjectCardPayload\",\n          \"description\": \"Autogenerated return type of MoveProjectCard\",\n          \"fields\": [\n            {\n              \"name\": \"cardEdge\",\n              \"description\": \"The new edge of the moved card.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"ProjectCardEdge\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"clientMutationId\",\n              \"description\": \"A unique identifier for the client performing the mutation.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"String\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"inputFields\": null,\n          \"interfaces\": [],\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"INPUT_OBJECT\",\n          \"name\": \"MoveProjectCardInput\",\n          \"description\": \"Autogenerated input type of MoveProjectCard\",\n          \"fields\": null,\n          \"inputFields\": [\n            {\n              \"name\": \"clientMutationId\",\n              \"description\": \"A unique identifier for the client performing the mutation.\",\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"String\",\n                \"ofType\": null\n              },\n              \"defaultValue\": null\n            },\n            {\n              \"name\": \"cardId\",\n              \"description\": \"The id of the card to move.\",\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"ID\",\n                  \"ofType\": null\n                }\n              },\n              \"defaultValue\": null\n            },\n            {\n              \"name\": \"columnId\",\n              \"description\": \"The id of the column to move it into.\",\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"ID\",\n                  \"ofType\": null\n                }\n              },\n              \"defaultValue\": null\n            },\n            {\n              \"name\": \"afterCardId\",\n              \"description\": \"Place the new card after the card with this id. Pass null to place it at the top.\",\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"ID\",\n                \"ofType\": null\n              },\n              \"defaultValue\": null\n            }\n          ],\n          \"interfaces\": null,\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"OBJECT\",\n          \"name\": \"DeleteProjectCardPayload\",\n          \"description\": \"Autogenerated return type of DeleteProjectCard\",\n          \"fields\": [\n            {\n              \"name\": \"clientMutationId\",\n              \"description\": \"A unique identifier for the client performing the mutation.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"String\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"column\",\n              \"description\": \"The column the deleted card was in.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"ProjectColumn\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"deletedCardId\",\n              \"description\": \"The deleted card ID.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"ID\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"inputFields\": null,\n          \"interfaces\": [],\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"INPUT_OBJECT\",\n          \"name\": \"DeleteProjectCardInput\",\n          \"description\": \"Autogenerated input type of DeleteProjectCard\",\n          \"fields\": null,\n          \"inputFields\": [\n            {\n              \"name\": \"clientMutationId\",\n              \"description\": \"A unique identifier for the client performing the mutation.\",\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"String\",\n                \"ofType\": null\n              },\n              \"defaultValue\": null\n            },\n            {\n              \"name\": \"cardId\",\n              \"description\": \"The id of the card to delete.\",\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"ID\",\n                  \"ofType\": null\n                }\n              },\n              \"defaultValue\": null\n            }\n          ],\n          \"interfaces\": null,\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"OBJECT\",\n          \"name\": \"AddPullRequestReviewPayload\",\n          \"description\": \"Autogenerated return type of AddPullRequestReview\",\n          \"fields\": [\n            {\n              \"name\": \"clientMutationId\",\n              \"description\": \"A unique identifier for the client performing the mutation.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"String\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"pullRequestReview\",\n              \"description\": \"The newly created pull request review.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"PullRequestReview\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"reviewEdge\",\n              \"description\": \"The edge from the pull request's review connection.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"PullRequestReviewEdge\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"inputFields\": null,\n          \"interfaces\": [],\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"INPUT_OBJECT\",\n          \"name\": \"AddPullRequestReviewInput\",\n          \"description\": \"Autogenerated input type of AddPullRequestReview\",\n          \"fields\": null,\n          \"inputFields\": [\n            {\n              \"name\": \"clientMutationId\",\n              \"description\": \"A unique identifier for the client performing the mutation.\",\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"String\",\n                \"ofType\": null\n              },\n              \"defaultValue\": null\n            },\n            {\n              \"name\": \"pullRequestId\",\n              \"description\": \"The Node ID of the pull request to modify.\",\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"ID\",\n                  \"ofType\": null\n                }\n              },\n              \"defaultValue\": null\n            },\n            {\n              \"name\": \"body\",\n              \"description\": \"The contents of the review body comment.\",\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"String\",\n                \"ofType\": null\n              },\n              \"defaultValue\": null\n            },\n            {\n              \"name\": \"event\",\n              \"description\": \"The event to perform on the pull request review.\",\n              \"type\": {\n                \"kind\": \"ENUM\",\n                \"name\": \"PullRequestReviewEvent\",\n                \"ofType\": null\n              },\n              \"defaultValue\": null\n            },\n            {\n              \"name\": \"comments\",\n              \"description\": \"The review line comments.\",\n              \"type\": {\n                \"kind\": \"LIST\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"INPUT_OBJECT\",\n                  \"name\": \"DraftPullRequestReviewComment\",\n                  \"ofType\": null\n                }\n              },\n              \"defaultValue\": null\n            }\n          ],\n          \"interfaces\": null,\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"ENUM\",\n          \"name\": \"PullRequestReviewEvent\",\n          \"description\": \"The possible events to perform on a pull request review.\",\n          \"fields\": null,\n          \"inputFields\": null,\n          \"interfaces\": null,\n          \"enumValues\": [\n            {\n              \"name\": \"COMMENT\",\n              \"description\": \"Submit general feedback without explicit approval.\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"APPROVE\",\n              \"description\": \"Submit feedback and approve merging these changes.\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"REQUEST_CHANGES\",\n              \"description\": \"Submit feedback that must be addressed before merging.\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"DISMISS\",\n              \"description\": \"Dismiss review so it now longer effects merging.\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"INPUT_OBJECT\",\n          \"name\": \"DraftPullRequestReviewComment\",\n          \"description\": \"Specifies a review comment to be left with a Pull Request Review.\",\n          \"fields\": null,\n          \"inputFields\": [\n            {\n              \"name\": \"path\",\n              \"description\": \"Path to the file being commented on.\",\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"String\",\n                  \"ofType\": null\n                }\n              },\n              \"defaultValue\": null\n            },\n            {\n              \"name\": \"position\",\n              \"description\": \"Position in the file to leave a comment on.\",\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"Int\",\n                  \"ofType\": null\n                }\n              },\n              \"defaultValue\": null\n            },\n            {\n              \"name\": \"body\",\n              \"description\": \"Body of the comment to leave.\",\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"String\",\n                  \"ofType\": null\n                }\n              },\n              \"defaultValue\": null\n            }\n          ],\n          \"interfaces\": null,\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"OBJECT\",\n          \"name\": \"SubmitPullRequestReviewPayload\",\n          \"description\": \"Autogenerated return type of SubmitPullRequestReview\",\n          \"fields\": [\n            {\n              \"name\": \"clientMutationId\",\n              \"description\": \"A unique identifier for the client performing the mutation.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"String\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"pullRequestReview\",\n              \"description\": \"The submitted pull request review.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"PullRequestReview\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"inputFields\": null,\n          \"interfaces\": [],\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"INPUT_OBJECT\",\n          \"name\": \"SubmitPullRequestReviewInput\",\n          \"description\": \"Autogenerated input type of SubmitPullRequestReview\",\n          \"fields\": null,\n          \"inputFields\": [\n            {\n              \"name\": \"clientMutationId\",\n              \"description\": \"A unique identifier for the client performing the mutation.\",\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"String\",\n                \"ofType\": null\n              },\n              \"defaultValue\": null\n            },\n            {\n              \"name\": \"pullRequestReviewId\",\n              \"description\": \"The Pull Request Review ID to submit.\",\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"ID\",\n                  \"ofType\": null\n                }\n              },\n              \"defaultValue\": null\n            },\n            {\n              \"name\": \"event\",\n              \"description\": \"The event to send to the Pull Request Review.\",\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"ENUM\",\n                  \"name\": \"PullRequestReviewEvent\",\n                  \"ofType\": null\n                }\n              },\n              \"defaultValue\": null\n            },\n            {\n              \"name\": \"body\",\n              \"description\": \"The text field to set on the Pull Request Review.\",\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"String\",\n                \"ofType\": null\n              },\n              \"defaultValue\": null\n            }\n          ],\n          \"interfaces\": null,\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"OBJECT\",\n          \"name\": \"UpdatePullRequestReviewPayload\",\n          \"description\": \"Autogenerated return type of UpdatePullRequestReview\",\n          \"fields\": [\n            {\n              \"name\": \"clientMutationId\",\n              \"description\": \"A unique identifier for the client performing the mutation.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"String\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"pullRequestReview\",\n              \"description\": \"The updated pull request review.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"PullRequestReview\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"inputFields\": null,\n          \"interfaces\": [],\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"INPUT_OBJECT\",\n          \"name\": \"UpdatePullRequestReviewInput\",\n          \"description\": \"Autogenerated input type of UpdatePullRequestReview\",\n          \"fields\": null,\n          \"inputFields\": [\n            {\n              \"name\": \"clientMutationId\",\n              \"description\": \"A unique identifier for the client performing the mutation.\",\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"String\",\n                \"ofType\": null\n              },\n              \"defaultValue\": null\n            },\n            {\n              \"name\": \"pullRequestReviewId\",\n              \"description\": \"The Node ID of the pull request review to modify.\",\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"ID\",\n                  \"ofType\": null\n                }\n              },\n              \"defaultValue\": null\n            },\n            {\n              \"name\": \"body\",\n              \"description\": \"The contents of the pull request review body.\",\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"String\",\n                  \"ofType\": null\n                }\n              },\n              \"defaultValue\": null\n            }\n          ],\n          \"interfaces\": null,\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"OBJECT\",\n          \"name\": \"DismissPullRequestReviewPayload\",\n          \"description\": \"Autogenerated return type of DismissPullRequestReview\",\n          \"fields\": [\n            {\n              \"name\": \"clientMutationId\",\n              \"description\": \"A unique identifier for the client performing the mutation.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"String\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"pullRequestReview\",\n              \"description\": \"The dismissed pull request review.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"PullRequestReview\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"inputFields\": null,\n          \"interfaces\": [],\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"INPUT_OBJECT\",\n          \"name\": \"DismissPullRequestReviewInput\",\n          \"description\": \"Autogenerated input type of DismissPullRequestReview\",\n          \"fields\": null,\n          \"inputFields\": [\n            {\n              \"name\": \"clientMutationId\",\n              \"description\": \"A unique identifier for the client performing the mutation.\",\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"String\",\n                \"ofType\": null\n              },\n              \"defaultValue\": null\n            },\n            {\n              \"name\": \"pullRequestReviewId\",\n              \"description\": \"The Node ID of the pull request review to modify.\",\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"ID\",\n                  \"ofType\": null\n                }\n              },\n              \"defaultValue\": null\n            },\n            {\n              \"name\": \"message\",\n              \"description\": \"The contents of the pull request review dismissal message.\",\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"String\",\n                  \"ofType\": null\n                }\n              },\n              \"defaultValue\": null\n            }\n          ],\n          \"interfaces\": null,\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"OBJECT\",\n          \"name\": \"DeletePullRequestReviewPayload\",\n          \"description\": \"Autogenerated return type of DeletePullRequestReview\",\n          \"fields\": [\n            {\n              \"name\": \"clientMutationId\",\n              \"description\": \"A unique identifier for the client performing the mutation.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"String\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"pullRequestReview\",\n              \"description\": \"The deleted pull request review.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"PullRequestReview\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"inputFields\": null,\n          \"interfaces\": [],\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"INPUT_OBJECT\",\n          \"name\": \"DeletePullRequestReviewInput\",\n          \"description\": \"Autogenerated input type of DeletePullRequestReview\",\n          \"fields\": null,\n          \"inputFields\": [\n            {\n              \"name\": \"clientMutationId\",\n              \"description\": \"A unique identifier for the client performing the mutation.\",\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"String\",\n                \"ofType\": null\n              },\n              \"defaultValue\": null\n            },\n            {\n              \"name\": \"pullRequestReviewId\",\n              \"description\": \"The Node ID of the pull request review to delete.\",\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"ID\",\n                  \"ofType\": null\n                }\n              },\n              \"defaultValue\": null\n            }\n          ],\n          \"interfaces\": null,\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"OBJECT\",\n          \"name\": \"AddPullRequestReviewCommentPayload\",\n          \"description\": \"Autogenerated return type of AddPullRequestReviewComment\",\n          \"fields\": [\n            {\n              \"name\": \"clientMutationId\",\n              \"description\": \"A unique identifier for the client performing the mutation.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"String\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"comment\",\n              \"description\": \"The newly created comment.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"PullRequestReviewComment\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"commentEdge\",\n              \"description\": \"The edge from the review's comment connection.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"PullRequestReviewCommentEdge\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"inputFields\": null,\n          \"interfaces\": [],\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"INPUT_OBJECT\",\n          \"name\": \"AddPullRequestReviewCommentInput\",\n          \"description\": \"Autogenerated input type of AddPullRequestReviewComment\",\n          \"fields\": null,\n          \"inputFields\": [\n            {\n              \"name\": \"clientMutationId\",\n              \"description\": \"A unique identifier for the client performing the mutation.\",\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"String\",\n                \"ofType\": null\n              },\n              \"defaultValue\": null\n            },\n            {\n              \"name\": \"pullRequestReviewId\",\n              \"description\": \"The Node ID of the review to modify.\",\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"ID\",\n                  \"ofType\": null\n                }\n              },\n              \"defaultValue\": null\n            },\n            {\n              \"name\": \"commitOID\",\n              \"description\": \"The SHA of the commit to comment on.\",\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"GitObjectID\",\n                \"ofType\": null\n              },\n              \"defaultValue\": null\n            },\n            {\n              \"name\": \"body\",\n              \"description\": \"The text of the comment.\",\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"String\",\n                  \"ofType\": null\n                }\n              },\n              \"defaultValue\": null\n            },\n            {\n              \"name\": \"path\",\n              \"description\": \"The relative path of the file to comment on.\",\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"String\",\n                \"ofType\": null\n              },\n              \"defaultValue\": null\n            },\n            {\n              \"name\": \"position\",\n              \"description\": \"The line index in the diff to comment on.\",\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"Int\",\n                \"ofType\": null\n              },\n              \"defaultValue\": null\n            },\n            {\n              \"name\": \"inReplyTo\",\n              \"description\": \"The comment id to reply to.\",\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"ID\",\n                \"ofType\": null\n              },\n              \"defaultValue\": null\n            }\n          ],\n          \"interfaces\": null,\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"OBJECT\",\n          \"name\": \"UpdatePullRequestReviewCommentPayload\",\n          \"description\": \"Autogenerated return type of UpdatePullRequestReviewComment\",\n          \"fields\": [\n            {\n              \"name\": \"clientMutationId\",\n              \"description\": \"A unique identifier for the client performing the mutation.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"String\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"pullRequestReviewComment\",\n              \"description\": \"The updated comment.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"PullRequestReviewComment\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"inputFields\": null,\n          \"interfaces\": [],\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"INPUT_OBJECT\",\n          \"name\": \"UpdatePullRequestReviewCommentInput\",\n          \"description\": \"Autogenerated input type of UpdatePullRequestReviewComment\",\n          \"fields\": null,\n          \"inputFields\": [\n            {\n              \"name\": \"clientMutationId\",\n              \"description\": \"A unique identifier for the client performing the mutation.\",\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"String\",\n                \"ofType\": null\n              },\n              \"defaultValue\": null\n            },\n            {\n              \"name\": \"pullRequestReviewCommentId\",\n              \"description\": \"The Node ID of the comment to modify.\",\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"ID\",\n                  \"ofType\": null\n                }\n              },\n              \"defaultValue\": null\n            },\n            {\n              \"name\": \"body\",\n              \"description\": \"The text of the comment.\",\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"String\",\n                  \"ofType\": null\n                }\n              },\n              \"defaultValue\": null\n            }\n          ],\n          \"interfaces\": null,\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"OBJECT\",\n          \"name\": \"RemoveOutsideCollaboratorPayload\",\n          \"description\": \"Autogenerated return type of RemoveOutsideCollaborator\",\n          \"fields\": [\n            {\n              \"name\": \"clientMutationId\",\n              \"description\": \"A unique identifier for the client performing the mutation.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"String\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"removedUser\",\n              \"description\": \"The user that was removed as an outside collaborator.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"User\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"inputFields\": null,\n          \"interfaces\": [],\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"INPUT_OBJECT\",\n          \"name\": \"RemoveOutsideCollaboratorInput\",\n          \"description\": \"Autogenerated input type of RemoveOutsideCollaborator\",\n          \"fields\": null,\n          \"inputFields\": [\n            {\n              \"name\": \"clientMutationId\",\n              \"description\": \"A unique identifier for the client performing the mutation.\",\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"String\",\n                \"ofType\": null\n              },\n              \"defaultValue\": null\n            },\n            {\n              \"name\": \"userId\",\n              \"description\": \"The ID of the outside collaborator to remove.\",\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"ID\",\n                  \"ofType\": null\n                }\n              },\n              \"defaultValue\": null\n            },\n            {\n              \"name\": \"organizationId\",\n              \"description\": \"The ID of the organization to remove the outside collaborator from.\",\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"ID\",\n                  \"ofType\": null\n                }\n              },\n              \"defaultValue\": null\n            }\n          ],\n          \"interfaces\": null,\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"OBJECT\",\n          \"name\": \"RequestReviewsPayload\",\n          \"description\": \"Autogenerated return type of RequestReviews\",\n          \"fields\": [\n            {\n              \"name\": \"clientMutationId\",\n              \"description\": \"A unique identifier for the client performing the mutation.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"String\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"pullRequest\",\n              \"description\": \"The pull request that is getting requests.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"PullRequest\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"requestedReviewersEdge\",\n              \"description\": \"The edge from the pull request to the requested reviewers.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"UserEdge\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"inputFields\": null,\n          \"interfaces\": [],\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"INPUT_OBJECT\",\n          \"name\": \"RequestReviewsInput\",\n          \"description\": \"Autogenerated input type of RequestReviews\",\n          \"fields\": null,\n          \"inputFields\": [\n            {\n              \"name\": \"clientMutationId\",\n              \"description\": \"A unique identifier for the client performing the mutation.\",\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"String\",\n                \"ofType\": null\n              },\n              \"defaultValue\": null\n            },\n            {\n              \"name\": \"pullRequestId\",\n              \"description\": \"The Node ID of the pull request to modify.\",\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"ID\",\n                  \"ofType\": null\n                }\n              },\n              \"defaultValue\": null\n            },\n            {\n              \"name\": \"userIds\",\n              \"description\": \"The Node IDs of the users to request.\",\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"LIST\",\n                  \"name\": null,\n                  \"ofType\": {\n                    \"kind\": \"NON_NULL\",\n                    \"name\": null,\n                    \"ofType\": {\n                      \"kind\": \"SCALAR\",\n                      \"name\": \"ID\",\n                      \"ofType\": null\n                    }\n                  }\n                }\n              },\n              \"defaultValue\": null\n            },\n            {\n              \"name\": \"union\",\n              \"description\": \"Add users to the set rather than replace.\",\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"Boolean\",\n                \"ofType\": null\n              },\n              \"defaultValue\": null\n            }\n          ],\n          \"interfaces\": null,\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"OBJECT\",\n          \"name\": \"__Schema\",\n          \"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.\",\n          \"fields\": [\n            {\n              \"name\": \"directives\",\n              \"description\": \"A list of all directives supported by this server.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"LIST\",\n                  \"name\": null,\n                  \"ofType\": {\n                    \"kind\": \"NON_NULL\",\n                    \"name\": null,\n                    \"ofType\": {\n                      \"kind\": \"OBJECT\",\n                      \"name\": \"__Directive\",\n                      \"ofType\": null\n                    }\n                  }\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"mutationType\",\n              \"description\": \"If this server supports mutation, the type that mutation operations will be rooted at.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"OBJECT\",\n                \"name\": \"__Type\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"queryType\",\n              \"description\": \"The type that query operations will be rooted at.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"__Type\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"subscriptionType\",\n              \"description\": \"If this server support subscription, the type that subscription operations will be rooted at.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"OBJECT\",\n                \"name\": \"__Type\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"types\",\n              \"description\": \"A list of all types supported by this server.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"LIST\",\n                  \"name\": null,\n                  \"ofType\": {\n                    \"kind\": \"NON_NULL\",\n                    \"name\": null,\n                    \"ofType\": {\n                      \"kind\": \"OBJECT\",\n                      \"name\": \"__Type\",\n                      \"ofType\": null\n                    }\n                  }\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"inputFields\": null,\n          \"interfaces\": [],\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"OBJECT\",\n          \"name\": \"__Type\",\n          \"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 and description, 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.\",\n          \"fields\": [\n            {\n              \"name\": \"description\",\n              \"description\": null,\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"String\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"enumValues\",\n              \"description\": null,\n              \"args\": [\n                {\n                  \"name\": \"includeDeprecated\",\n                  \"description\": null,\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"Boolean\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": \"false\"\n                }\n              ],\n              \"type\": {\n                \"kind\": \"LIST\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"NON_NULL\",\n                  \"name\": null,\n                  \"ofType\": {\n                    \"kind\": \"OBJECT\",\n                    \"name\": \"__EnumValue\",\n                    \"ofType\": null\n                  }\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"fields\",\n              \"description\": null,\n              \"args\": [\n                {\n                  \"name\": \"includeDeprecated\",\n                  \"description\": null,\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"Boolean\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": \"false\"\n                }\n              ],\n              \"type\": {\n                \"kind\": \"LIST\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"NON_NULL\",\n                  \"name\": null,\n                  \"ofType\": {\n                    \"kind\": \"OBJECT\",\n                    \"name\": \"__Field\",\n                    \"ofType\": null\n                  }\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"inputFields\",\n              \"description\": null,\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"LIST\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"NON_NULL\",\n                  \"name\": null,\n                  \"ofType\": {\n                    \"kind\": \"OBJECT\",\n                    \"name\": \"__InputValue\",\n                    \"ofType\": null\n                  }\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"interfaces\",\n              \"description\": null,\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"LIST\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"NON_NULL\",\n                  \"name\": null,\n                  \"ofType\": {\n                    \"kind\": \"OBJECT\",\n                    \"name\": \"__Type\",\n                    \"ofType\": null\n                  }\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"kind\",\n              \"description\": null,\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"ENUM\",\n                  \"name\": \"__TypeKind\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"name\",\n              \"description\": null,\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"String\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"ofType\",\n              \"description\": null,\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"OBJECT\",\n                \"name\": \"__Type\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"possibleTypes\",\n              \"description\": null,\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"LIST\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"NON_NULL\",\n                  \"name\": null,\n                  \"ofType\": {\n                    \"kind\": \"OBJECT\",\n                    \"name\": \"__Type\",\n                    \"ofType\": null\n                  }\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"inputFields\": null,\n          \"interfaces\": [],\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"ENUM\",\n          \"name\": \"__TypeKind\",\n          \"description\": \"An enum describing what kind of type a given `__Type` is.\",\n          \"fields\": null,\n          \"inputFields\": null,\n          \"interfaces\": null,\n          \"enumValues\": [\n            {\n              \"name\": \"SCALAR\",\n              \"description\": \"Indicates this type is a scalar.\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"OBJECT\",\n              \"description\": \"Indicates this type is an object. `fields` and `interfaces` are valid fields.\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"INTERFACE\",\n              \"description\": \"Indicates this type is an interface. `fields` and `possibleTypes` are valid fields.\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"UNION\",\n              \"description\": \"Indicates this type is a union. `possibleTypes` is a valid field.\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"ENUM\",\n              \"description\": \"Indicates this type is an enum. `enumValues` is a valid field.\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"INPUT_OBJECT\",\n              \"description\": \"Indicates this type is an input object. `inputFields` is a valid field.\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"LIST\",\n              \"description\": \"Indicates this type is a list. `ofType` is a valid field.\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"NON_NULL\",\n              \"description\": \"Indicates this type is a non-null. `ofType` is a valid field.\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"OBJECT\",\n          \"name\": \"__Field\",\n          \"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.\",\n          \"fields\": [\n            {\n              \"name\": \"args\",\n              \"description\": null,\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"LIST\",\n                  \"name\": null,\n                  \"ofType\": {\n                    \"kind\": \"NON_NULL\",\n                    \"name\": null,\n                    \"ofType\": {\n                      \"kind\": \"OBJECT\",\n                      \"name\": \"__InputValue\",\n                      \"ofType\": null\n                    }\n                  }\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"deprecationReason\",\n              \"description\": null,\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"String\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"description\",\n              \"description\": null,\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"String\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"isDeprecated\",\n              \"description\": null,\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"Boolean\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"name\",\n              \"description\": null,\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"String\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"type\",\n              \"description\": null,\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"__Type\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"inputFields\": null,\n          \"interfaces\": [],\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"OBJECT\",\n          \"name\": \"__InputValue\",\n          \"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.\",\n          \"fields\": [\n            {\n              \"name\": \"defaultValue\",\n              \"description\": \"A GraphQL-formatted string representing the default value for this input value.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"String\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"description\",\n              \"description\": null,\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"String\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"name\",\n              \"description\": null,\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"String\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"type\",\n              \"description\": null,\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"__Type\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"inputFields\": null,\n          \"interfaces\": [],\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"OBJECT\",\n          \"name\": \"__EnumValue\",\n          \"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.\",\n          \"fields\": [\n            {\n              \"name\": \"deprecationReason\",\n              \"description\": null,\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"String\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"description\",\n              \"description\": null,\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"String\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"isDeprecated\",\n              \"description\": null,\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"Boolean\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"name\",\n              \"description\": null,\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"String\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"inputFields\": null,\n          \"interfaces\": [],\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"OBJECT\",\n          \"name\": \"__Directive\",\n          \"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.\",\n          \"fields\": [\n            {\n              \"name\": \"args\",\n              \"description\": null,\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"LIST\",\n                  \"name\": null,\n                  \"ofType\": {\n                    \"kind\": \"NON_NULL\",\n                    \"name\": null,\n                    \"ofType\": {\n                      \"kind\": \"OBJECT\",\n                      \"name\": \"__InputValue\",\n                      \"ofType\": null\n                    }\n                  }\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"description\",\n              \"description\": null,\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"String\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"locations\",\n              \"description\": null,\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"LIST\",\n                  \"name\": null,\n                  \"ofType\": {\n                    \"kind\": \"NON_NULL\",\n                    \"name\": null,\n                    \"ofType\": {\n                      \"kind\": \"ENUM\",\n                      \"name\": \"__DirectiveLocation\",\n                      \"ofType\": null\n                    }\n                  }\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"name\",\n              \"description\": null,\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"String\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"onField\",\n              \"description\": null,\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"Boolean\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": true,\n              \"deprecationReason\": \"Use `locations`.\"\n            },\n            {\n              \"name\": \"onFragment\",\n              \"description\": null,\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"Boolean\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": true,\n              \"deprecationReason\": \"Use `locations`.\"\n            },\n            {\n              \"name\": \"onOperation\",\n              \"description\": null,\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"Boolean\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": true,\n              \"deprecationReason\": \"Use `locations`.\"\n            }\n          ],\n          \"inputFields\": null,\n          \"interfaces\": [],\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"ENUM\",\n          \"name\": \"__DirectiveLocation\",\n          \"description\": \"A Directive can be adjacent to many parts of the GraphQL language, a __DirectiveLocation describes one such possible adjacencies.\",\n          \"fields\": null,\n          \"inputFields\": null,\n          \"interfaces\": null,\n          \"enumValues\": [\n            {\n              \"name\": \"QUERY\",\n              \"description\": \"Location adjacent to a query operation.\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"MUTATION\",\n              \"description\": \"Location adjacent to a mutation operation.\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"SUBSCRIPTION\",\n              \"description\": \"Location adjacent to a subscription operation.\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"FIELD\",\n              \"description\": \"Location adjacent to a field.\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"FRAGMENT_DEFINITION\",\n              \"description\": \"Location adjacent to a fragment definition.\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"FRAGMENT_SPREAD\",\n              \"description\": \"Location adjacent to a fragment spread.\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"INLINE_FRAGMENT\",\n              \"description\": \"Location adjacent to an inline fragment.\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"SCHEMA\",\n              \"description\": \"Location adjacent to a schema definition.\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"SCALAR\",\n              \"description\": \"Location adjacent to a scalar definition.\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"OBJECT\",\n              \"description\": \"Location adjacent to an object type definition.\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"FIELD_DEFINITION\",\n              \"description\": \"Location adjacent to a field definition.\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"ARGUMENT_DEFINITION\",\n              \"description\": \"Location adjacent to an argument definition.\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"INTERFACE\",\n              \"description\": \"Location adjacent to an interface definition.\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"UNION\",\n              \"description\": \"Location adjacent to a union definition.\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"ENUM\",\n              \"description\": \"Location adjacent to an enum definition.\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"ENUM_VALUE\",\n              \"description\": \"Location adjacent to an enum value definition.\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"INPUT_OBJECT\",\n              \"description\": \"Location adjacent to an input object type definition.\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"INPUT_FIELD_DEFINITION\",\n              \"description\": \"Location adjacent to an input object field definition.\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"possibleTypes\": null\n        }\n      ],\n      \"directives\": [\n        {\n          \"name\": \"include\",\n          \"description\": \"Directs the executor to include this field or fragment only when the `if` argument is true.\",\n          \"locations\": [\"FIELD\", \"FRAGMENT_SPREAD\", \"INLINE_FRAGMENT\"],\n          \"args\": [\n            {\n              \"name\": \"if\",\n              \"description\": \"Included when true.\",\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"Boolean\",\n                  \"ofType\": null\n                }\n              },\n              \"defaultValue\": null\n            }\n          ]\n        },\n        {\n          \"name\": \"skip\",\n          \"description\": \"Directs the executor to skip this field or fragment when the `if` argument is true.\",\n          \"locations\": [\"FIELD\", \"FRAGMENT_SPREAD\", \"INLINE_FRAGMENT\"],\n          \"args\": [\n            {\n              \"name\": \"if\",\n              \"description\": \"Skipped when true.\",\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"Boolean\",\n                  \"ofType\": null\n                }\n              },\n              \"defaultValue\": null\n            }\n          ]\n        },\n        {\n          \"name\": \"deprecated\",\n          \"description\": \"Marks an element of a GraphQL schema as no longer supported.\",\n          \"locations\": [\"FIELD_DEFINITION\", \"ENUM_VALUE\"],\n          \"args\": [\n            {\n              \"name\": \"reason\",\n              \"description\": \"Explains why this element was deprecated, usually also including a suggestion for how to access supported similar data. Formatted in [Markdown](https://daringfireball.net/projects/markdown/).\",\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"String\",\n                \"ofType\": null\n              },\n              \"defaultValue\": \"\\\"No longer supported\\\"\"\n            }\n          ]\n        }\n      ]\n    }\n  }\n}\n"
  },
  {
    "path": "demo/presets/shopify_introspection.json",
    "content": "{\n  \"data\": {\n    \"__schema\": {\n      \"queryType\": {\n        \"name\": \"QueryRoot\"\n      },\n      \"mutationType\": {\n        \"name\": \"Mutation\"\n      },\n      \"subscriptionType\": null,\n      \"types\": [\n        {\n          \"kind\": \"OBJECT\",\n          \"name\": \"QueryRoot\",\n          \"description\": \"The schema’s entry-point for queries. This acts as the public, top-level API from which all queries must start.\",\n          \"fields\": [\n            {\n              \"name\": \"customer\",\n              \"description\": null,\n              \"args\": [\n                {\n                  \"name\": \"customerAccessToken\",\n                  \"description\": \"The customer access token\",\n                  \"type\": {\n                    \"kind\": \"NON_NULL\",\n                    \"name\": null,\n                    \"ofType\": {\n                      \"kind\": \"SCALAR\",\n                      \"name\": \"String\",\n                      \"ofType\": null\n                    }\n                  },\n                  \"defaultValue\": null\n                }\n              ],\n              \"type\": {\n                \"kind\": \"OBJECT\",\n                \"name\": \"Customer\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"node\",\n              \"description\": null,\n              \"args\": [\n                {\n                  \"name\": \"id\",\n                  \"description\": null,\n                  \"type\": {\n                    \"kind\": \"NON_NULL\",\n                    \"name\": null,\n                    \"ofType\": {\n                      \"kind\": \"SCALAR\",\n                      \"name\": \"ID\",\n                      \"ofType\": null\n                    }\n                  },\n                  \"defaultValue\": null\n                }\n              ],\n              \"type\": {\n                \"kind\": \"INTERFACE\",\n                \"name\": \"Node\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"nodes\",\n              \"description\": null,\n              \"args\": [\n                {\n                  \"name\": \"ids\",\n                  \"description\": null,\n                  \"type\": {\n                    \"kind\": \"NON_NULL\",\n                    \"name\": null,\n                    \"ofType\": {\n                      \"kind\": \"LIST\",\n                      \"name\": null,\n                      \"ofType\": {\n                        \"kind\": \"NON_NULL\",\n                        \"name\": null,\n                        \"ofType\": {\n                          \"kind\": \"SCALAR\",\n                          \"name\": \"ID\",\n                          \"ofType\": null\n                        }\n                      }\n                    }\n                  },\n                  \"defaultValue\": null\n                }\n              ],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"LIST\",\n                  \"name\": null,\n                  \"ofType\": {\n                    \"kind\": \"INTERFACE\",\n                    \"name\": \"Node\",\n                    \"ofType\": null\n                  }\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"shop\",\n              \"description\": null,\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"Shop\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"inputFields\": null,\n          \"interfaces\": [],\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"INTERFACE\",\n          \"name\": \"Node\",\n          \"description\": \"An object with an ID to support global identification.\",\n          \"fields\": [\n            {\n              \"name\": \"id\",\n              \"description\": \"Globally unique identifier.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"ID\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"inputFields\": null,\n          \"interfaces\": null,\n          \"enumValues\": null,\n          \"possibleTypes\": [\n            {\n              \"kind\": \"OBJECT\",\n              \"name\": \"AppliedGiftCard\",\n              \"ofType\": null\n            },\n            {\n              \"kind\": \"OBJECT\",\n              \"name\": \"Article\",\n              \"ofType\": null\n            },\n            {\n              \"kind\": \"OBJECT\",\n              \"name\": \"Blog\",\n              \"ofType\": null\n            },\n            {\n              \"kind\": \"OBJECT\",\n              \"name\": \"Checkout\",\n              \"ofType\": null\n            },\n            {\n              \"kind\": \"OBJECT\",\n              \"name\": \"CheckoutLineItem\",\n              \"ofType\": null\n            },\n            {\n              \"kind\": \"OBJECT\",\n              \"name\": \"Collection\",\n              \"ofType\": null\n            },\n            {\n              \"kind\": \"OBJECT\",\n              \"name\": \"Comment\",\n              \"ofType\": null\n            },\n            {\n              \"kind\": \"OBJECT\",\n              \"name\": \"MailingAddress\",\n              \"ofType\": null\n            },\n            {\n              \"kind\": \"OBJECT\",\n              \"name\": \"Order\",\n              \"ofType\": null\n            },\n            {\n              \"kind\": \"OBJECT\",\n              \"name\": \"Payment\",\n              \"ofType\": null\n            },\n            {\n              \"kind\": \"OBJECT\",\n              \"name\": \"Product\",\n              \"ofType\": null\n            },\n            {\n              \"kind\": \"OBJECT\",\n              \"name\": \"ProductOption\",\n              \"ofType\": null\n            },\n            {\n              \"kind\": \"OBJECT\",\n              \"name\": \"ProductVariant\",\n              \"ofType\": null\n            },\n            {\n              \"kind\": \"OBJECT\",\n              \"name\": \"ShopPolicy\",\n              \"ofType\": null\n            }\n          ]\n        },\n        {\n          \"kind\": \"SCALAR\",\n          \"name\": \"ID\",\n          \"description\": \"Represents a unique identifier. It is often used to refetch an object or as key for a cache.\",\n          \"fields\": null,\n          \"inputFields\": null,\n          \"interfaces\": null,\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"OBJECT\",\n          \"name\": \"Customer\",\n          \"description\": \"A customer represents a customer account with the shop. Customer accounts store contact information for the customer, saving logged-in customers the trouble of having to provide it at every checkout.\",\n          \"fields\": [\n            {\n              \"name\": \"acceptsMarketing\",\n              \"description\": \"Indicates whether the customer has consented to be sent marketing material via email.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"Boolean\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"addresses\",\n              \"description\": \"A list of addresses for the customer.\",\n              \"args\": [\n                {\n                  \"name\": \"first\",\n                  \"description\": null,\n                  \"type\": {\n                    \"kind\": \"NON_NULL\",\n                    \"name\": null,\n                    \"ofType\": {\n                      \"kind\": \"SCALAR\",\n                      \"name\": \"Int\",\n                      \"ofType\": null\n                    }\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"after\",\n                  \"description\": null,\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"String\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"reverse\",\n                  \"description\": null,\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"Boolean\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": \"false\"\n                }\n              ],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"MailingAddressConnection\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"createdAt\",\n              \"description\": \"The date and time when the customer was created.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"DateTime\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"defaultAddress\",\n              \"description\": \"The customer’s default address.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"OBJECT\",\n                \"name\": \"MailingAddress\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"displayName\",\n              \"description\": \"The customer’s name, email or phone number.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"String\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"email\",\n              \"description\": \"The customer’s email address.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"String\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"firstName\",\n              \"description\": \"The customer’s first name.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"String\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"id\",\n              \"description\": \"A unique identifier for the customer.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"ID\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"lastName\",\n              \"description\": \"The customer’s last name.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"String\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"orders\",\n              \"description\": \"The orders associated with the customer.\",\n              \"args\": [\n                {\n                  \"name\": \"first\",\n                  \"description\": null,\n                  \"type\": {\n                    \"kind\": \"NON_NULL\",\n                    \"name\": null,\n                    \"ofType\": {\n                      \"kind\": \"SCALAR\",\n                      \"name\": \"Int\",\n                      \"ofType\": null\n                    }\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"after\",\n                  \"description\": null,\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"String\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"query\",\n                  \"description\": \"Supported filter parameters:\\n - `processed_at`\",\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"String\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"sortKey\",\n                  \"description\": null,\n                  \"type\": {\n                    \"kind\": \"ENUM\",\n                    \"name\": \"OrderSortKeys\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": \"ID\"\n                },\n                {\n                  \"name\": \"reverse\",\n                  \"description\": null,\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"Boolean\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": \"false\"\n                }\n              ],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"OrderConnection\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"phone\",\n              \"description\": \"The customer’s phone number.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"String\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"updatedAt\",\n              \"description\": \"The date and time when the customer information was updated.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"DateTime\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"inputFields\": null,\n          \"interfaces\": [],\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"SCALAR\",\n          \"name\": \"String\",\n          \"description\": \"Represents textual data as UTF-8 character sequences. This type is most often used by GraphQL to represent free-form human-readable text.\",\n          \"fields\": null,\n          \"inputFields\": null,\n          \"interfaces\": null,\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"SCALAR\",\n          \"name\": \"Boolean\",\n          \"description\": \"Represents `true` or `false` values.\",\n          \"fields\": null,\n          \"inputFields\": null,\n          \"interfaces\": null,\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"SCALAR\",\n          \"name\": \"DateTime\",\n          \"description\": \"An ISO-8601 encoded UTC date string.\",\n          \"fields\": null,\n          \"inputFields\": null,\n          \"interfaces\": null,\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"OBJECT\",\n          \"name\": \"MailingAddress\",\n          \"description\": \"Represents a mailing address for customers and shipping.\",\n          \"fields\": [\n            {\n              \"name\": \"address1\",\n              \"description\": null,\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"String\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"address2\",\n              \"description\": null,\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"String\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"city\",\n              \"description\": null,\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"String\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"company\",\n              \"description\": null,\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"String\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"country\",\n              \"description\": null,\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"String\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"countryCode\",\n              \"description\": null,\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"String\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"firstName\",\n              \"description\": null,\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"String\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"formatted\",\n              \"description\": null,\n              \"args\": [\n                {\n                  \"name\": \"withName\",\n                  \"description\": null,\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"Boolean\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": \"false\"\n                },\n                {\n                  \"name\": \"withCompany\",\n                  \"description\": null,\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"Boolean\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": \"true\"\n                }\n              ],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"LIST\",\n                  \"name\": null,\n                  \"ofType\": {\n                    \"kind\": \"NON_NULL\",\n                    \"name\": null,\n                    \"ofType\": {\n                      \"kind\": \"SCALAR\",\n                      \"name\": \"String\",\n                      \"ofType\": null\n                    }\n                  }\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"formattedArea\",\n              \"description\": null,\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"String\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"id\",\n              \"description\": \"Globally unique identifier.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"ID\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"lastName\",\n              \"description\": null,\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"String\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"latitude\",\n              \"description\": null,\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"Float\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"longitude\",\n              \"description\": null,\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"Float\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"name\",\n              \"description\": null,\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"String\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"phone\",\n              \"description\": null,\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"String\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"province\",\n              \"description\": null,\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"String\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"provinceCode\",\n              \"description\": null,\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"String\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"zip\",\n              \"description\": null,\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"String\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"inputFields\": null,\n          \"interfaces\": [\n            {\n              \"kind\": \"INTERFACE\",\n              \"name\": \"Node\",\n              \"ofType\": null\n            }\n          ],\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"SCALAR\",\n          \"name\": \"Float\",\n          \"description\": \"Represents signed double-precision fractional values as specified by [IEEE 754](http://en.wikipedia.org/wiki/IEEE_floating_point).\",\n          \"fields\": null,\n          \"inputFields\": null,\n          \"interfaces\": null,\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"OBJECT\",\n          \"name\": \"MailingAddressConnection\",\n          \"description\": null,\n          \"fields\": [\n            {\n              \"name\": \"edges\",\n              \"description\": \"A list of edges.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"LIST\",\n                  \"name\": null,\n                  \"ofType\": {\n                    \"kind\": \"NON_NULL\",\n                    \"name\": null,\n                    \"ofType\": {\n                      \"kind\": \"OBJECT\",\n                      \"name\": \"MailingAddressEdge\",\n                      \"ofType\": null\n                    }\n                  }\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"pageInfo\",\n              \"description\": \"Information to aid in pagination.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"PageInfo\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"inputFields\": null,\n          \"interfaces\": [],\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"OBJECT\",\n          \"name\": \"PageInfo\",\n          \"description\": \"Information about pagination in a connection.\",\n          \"fields\": [\n            {\n              \"name\": \"hasNextPage\",\n              \"description\": \"Indicates if there are more pages to fetch.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"Boolean\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"hasPreviousPage\",\n              \"description\": \"Indicates if there are any pages prior to the current page.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"Boolean\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"inputFields\": null,\n          \"interfaces\": [],\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"OBJECT\",\n          \"name\": \"MailingAddressEdge\",\n          \"description\": null,\n          \"fields\": [\n            {\n              \"name\": \"cursor\",\n              \"description\": \"A cursor for use in pagination.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"String\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"node\",\n              \"description\": \"The item at the end of MailingAddressEdge.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"MailingAddress\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"inputFields\": null,\n          \"interfaces\": [],\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"SCALAR\",\n          \"name\": \"Int\",\n          \"description\": \"Represents non-fractional signed whole numeric values. Int can represent values between -(2^31) and 2^31 - 1.\",\n          \"fields\": null,\n          \"inputFields\": null,\n          \"interfaces\": null,\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"OBJECT\",\n          \"name\": \"OrderConnection\",\n          \"description\": null,\n          \"fields\": [\n            {\n              \"name\": \"edges\",\n              \"description\": \"A list of edges.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"LIST\",\n                  \"name\": null,\n                  \"ofType\": {\n                    \"kind\": \"NON_NULL\",\n                    \"name\": null,\n                    \"ofType\": {\n                      \"kind\": \"OBJECT\",\n                      \"name\": \"OrderEdge\",\n                      \"ofType\": null\n                    }\n                  }\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"pageInfo\",\n              \"description\": \"Information to aid in pagination.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"PageInfo\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"inputFields\": null,\n          \"interfaces\": [],\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"OBJECT\",\n          \"name\": \"OrderEdge\",\n          \"description\": null,\n          \"fields\": [\n            {\n              \"name\": \"cursor\",\n              \"description\": \"A cursor for use in pagination.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"String\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"node\",\n              \"description\": \"The item at the end of OrderEdge.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"Order\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"inputFields\": null,\n          \"interfaces\": [],\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"OBJECT\",\n          \"name\": \"Order\",\n          \"description\": \"An order is a customer’s completed request to purchase one or more products from a shop. An order is created when a customer completes the checkout process, during which time they provides an email address, billing address and payment information.\",\n          \"fields\": [\n            {\n              \"name\": \"currencyCode\",\n              \"description\": \"The code of the currency used for the payment.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"ENUM\",\n                  \"name\": \"CurrencyCode\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"customerLocale\",\n              \"description\": \"The locale code in which this specific order happened.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"String\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"customerUrl\",\n              \"description\": \"The order’s URL for a customer.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"URL\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"email\",\n              \"description\": \"The customer's email address.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"String\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"id\",\n              \"description\": \"Globally unique identifier.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"ID\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"lineItems\",\n              \"description\": \"List of the order’s line items.\",\n              \"args\": [\n                {\n                  \"name\": \"first\",\n                  \"description\": null,\n                  \"type\": {\n                    \"kind\": \"NON_NULL\",\n                    \"name\": null,\n                    \"ofType\": {\n                      \"kind\": \"SCALAR\",\n                      \"name\": \"Int\",\n                      \"ofType\": null\n                    }\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"after\",\n                  \"description\": null,\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"String\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"reverse\",\n                  \"description\": null,\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"Boolean\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": \"false\"\n                }\n              ],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"OrderLineItemConnection\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"orderNumber\",\n              \"description\": \"A unique numeric identifier for the order for use by shop owner and customer.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"Int\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"phone\",\n              \"description\": \"The customer's phone number.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"String\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"processedAt\",\n              \"description\": \"The date and time when the order was imported.\\nThis value can be set to dates in the past when importing from other systems.\\nIf no value is provided, it will be auto-generated based on current date and time.\\n\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"DateTime\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"shippingAddress\",\n              \"description\": \"The address to where the order will be shipped.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"OBJECT\",\n                \"name\": \"MailingAddress\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"subtotalPrice\",\n              \"description\": \"Price of the order before shipping and taxes.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"Money\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"totalPrice\",\n              \"description\": \"The sum of all the prices of all the items in the order, taxes and discounts included (must be positive).\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"Money\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"totalRefunded\",\n              \"description\": \"The total amount that has been refunded.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"Money\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"totalShippingPrice\",\n              \"description\": \"The total cost of shipping.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"Money\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"totalTax\",\n              \"description\": \"The total cost of taxes.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"Money\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"inputFields\": null,\n          \"interfaces\": [\n            {\n              \"kind\": \"INTERFACE\",\n              \"name\": \"Node\",\n              \"ofType\": null\n            }\n          ],\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"SCALAR\",\n          \"name\": \"Money\",\n          \"description\": \"A monetary value string.\",\n          \"fields\": null,\n          \"inputFields\": null,\n          \"interfaces\": null,\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"ENUM\",\n          \"name\": \"CurrencyCode\",\n          \"description\": \"Currency codes\",\n          \"fields\": null,\n          \"inputFields\": null,\n          \"interfaces\": null,\n          \"enumValues\": [\n            {\n              \"name\": \"USD\",\n              \"description\": \"United States Dollars (USD)\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"EUR\",\n              \"description\": \"Euro (EUR)\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"GBP\",\n              \"description\": \"United Kingdom Pounds (GBP)\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"CAD\",\n              \"description\": \"Canadian Dollars (CAD)\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"AFN\",\n              \"description\": \"Afghan Afghani (AFN)\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"ALL\",\n              \"description\": \"Albanian Lek (ALL)\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"DZD\",\n              \"description\": \"Algerian Dinar (DZD)\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"AOA\",\n              \"description\": \"Angolan Kwanza (AOA)\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"ARS\",\n              \"description\": \"Argentine Pesos (ARS)\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"AMD\",\n              \"description\": \"Armenian Dram (AMD)\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"AWG\",\n              \"description\": \"Aruban Florin (AWG)\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"AUD\",\n              \"description\": \"Australian Dollars (AUD)\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"BBD\",\n              \"description\": \"Barbadian Dollar (BBD)\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"AZN\",\n              \"description\": \"Azerbaijani Manat (AZN)\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"BDT\",\n              \"description\": \"Bangladesh Taka (BDT)\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"BSD\",\n              \"description\": \"Bahamian Dollar (BSD)\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"BHD\",\n              \"description\": \"Bahraini Dinar (BHD)\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"BYR\",\n              \"description\": \"Belarusian Ruble (BYR)\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"BZD\",\n              \"description\": \"Belize Dollar (BZD)\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"BTN\",\n              \"description\": \"Bhutanese Ngultrum (BTN)\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"BAM\",\n              \"description\": \"Bosnia and Herzegovina Convertible Mark (BAM)\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"BRL\",\n              \"description\": \"Brazilian Real (BRL)\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"BOB\",\n              \"description\": \"Bolivian Boliviano (BOB)\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"BWP\",\n              \"description\": \"Botswana Pula (BWP)\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"BND\",\n              \"description\": \"Brunei Dollar (BND)\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"BGN\",\n              \"description\": \"Bulgarian Lev (BGN)\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"MMK\",\n              \"description\": \"Burmese Kyat (MMK)\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"KHR\",\n              \"description\": \"Cambodian Riel\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"CVE\",\n              \"description\": \"Cape Verdean escudo (CVE)\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"KYD\",\n              \"description\": \"Cayman Dollars (KYD)\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"XAF\",\n              \"description\": \"Central African CFA Franc (XAF)\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"CLP\",\n              \"description\": \"Chilean Peso (CLP)\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"CNY\",\n              \"description\": \"Chinese Yuan Renminbi (CNY)\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"COP\",\n              \"description\": \"Colombian Peso (COP)\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"KMF\",\n              \"description\": \"Comorian Franc (KMF)\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"CDF\",\n              \"description\": \"Congolese franc (CDF)\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"CRC\",\n              \"description\": \"Costa Rican Colones (CRC)\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"HRK\",\n              \"description\": \"Croatian Kuna (HRK)\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"CZK\",\n              \"description\": \"Czech Koruny (CZK)\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"DKK\",\n              \"description\": \"Danish Kroner (DKK)\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"DOP\",\n              \"description\": \"Dominican Peso (DOP)\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"XCD\",\n              \"description\": \"East Caribbean Dollar (XCD)\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"EGP\",\n              \"description\": \"Egyptian Pound (EGP)\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"ETB\",\n              \"description\": \"Ethiopian Birr (ETB)\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"XPF\",\n              \"description\": \"CFP Franc (XPF)\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"FJD\",\n              \"description\": \"Fijian Dollars (FJD)\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"GMD\",\n              \"description\": \"Gambian Dalasi (GMD)\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"GHS\",\n              \"description\": \"Ghanaian Cedi (GHS)\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"GTQ\",\n              \"description\": \"Guatemalan Quetzal (GTQ)\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"GYD\",\n              \"description\": \"Guyanese Dollar (GYD)\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"GEL\",\n              \"description\": \"Georgian Lari (GEL)\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"HTG\",\n              \"description\": \"Haitian Gourde (HTG)\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"HNL\",\n              \"description\": \"Honduran Lempira (HNL)\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"HKD\",\n              \"description\": \"Hong Kong Dollars (HKD)\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"HUF\",\n              \"description\": \"Hungarian Forint (HUF)\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"ISK\",\n              \"description\": \"Icelandic Kronur (ISK)\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"INR\",\n              \"description\": \"Indian Rupees (INR)\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"IDR\",\n              \"description\": \"Indonesian Rupiah (IDR)\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"ILS\",\n              \"description\": \"Israeli New Shekel (NIS)\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"JMD\",\n              \"description\": \"Jamaican Dollars (JMD)\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"JPY\",\n              \"description\": \"Japanese Yen (JPY)\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"JEP\",\n              \"description\": \"Jersey Pound\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"JOD\",\n              \"description\": \"Jordanian Dinar (JOD)\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"KZT\",\n              \"description\": \"Kazakhstani Tenge (KZT)\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"KES\",\n              \"description\": \"Kenyan Shilling (KES)\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"KWD\",\n              \"description\": \"Kuwaiti Dinar (KWD)\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"KGS\",\n              \"description\": \"Kyrgyzstani Som (KGS)\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"LAK\",\n              \"description\": \"Laotian Kip (LAK)\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"LVL\",\n              \"description\": \"Latvian Lati (LVL)\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"LBP\",\n              \"description\": \"Lebanese Pounds (LBP)\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"LSL\",\n              \"description\": \"Lesotho Loti (LSL)\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"LRD\",\n              \"description\": \"Liberian Dollar (LRD)\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"LTL\",\n              \"description\": \"Lithuanian Litai (LTL)\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"MGA\",\n              \"description\": \"Malagasy Ariary (MGA)\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"MKD\",\n              \"description\": \"Macedonia Denar (MKD)\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"MOP\",\n              \"description\": \"Macanese Pataca (MOP)\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"MWK\",\n              \"description\": \"Malawian Kwacha (MWK)\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"MVR\",\n              \"description\": \"Maldivian Rufiyaa (MVR)\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"MXN\",\n              \"description\": \"Mexican Pesos (MXN)\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"MYR\",\n              \"description\": \"Malaysian Ringgits (MYR)\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"MUR\",\n              \"description\": \"Mauritian Rupee (MUR)\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"MDL\",\n              \"description\": \"Moldovan Leu (MDL)\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"MAD\",\n              \"description\": \"Moroccan Dirham\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"MNT\",\n              \"description\": \"Mongolian Tugrik\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"MZN\",\n              \"description\": \"Mozambican Metical\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"NAD\",\n              \"description\": \"Namibian Dollar\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"NPR\",\n              \"description\": \"Nepalese Rupee (NPR)\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"ANG\",\n              \"description\": \"Netherlands Antillean Guilder\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"NZD\",\n              \"description\": \"New Zealand Dollars (NZD)\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"NIO\",\n              \"description\": \"Nicaraguan Córdoba (NIO)\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"NGN\",\n              \"description\": \"Nigerian Naira (NGN)\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"NOK\",\n              \"description\": \"Norwegian Kroner (NOK)\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"OMR\",\n              \"description\": \"Omani Rial (OMR)\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"PKR\",\n              \"description\": \"Pakistani Rupee (PKR)\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"PGK\",\n              \"description\": \"Papua New Guinean Kina (PGK)\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"PYG\",\n              \"description\": \"Paraguayan Guarani (PYG)\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"PEN\",\n              \"description\": \"Peruvian Nuevo Sol (PEN)\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"PHP\",\n              \"description\": \"Philippine Peso (PHP)\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"PLN\",\n              \"description\": \"Polish Zlotych (PLN)\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"QAR\",\n              \"description\": \"Qatari Rial (QAR)\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"RON\",\n              \"description\": \"Romanian Lei (RON)\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"RUB\",\n              \"description\": \"Russian Rubles (RUB)\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"RWF\",\n              \"description\": \"Rwandan Franc (RWF)\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"WST\",\n              \"description\": \"Samoan Tala (WST)\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"SAR\",\n              \"description\": \"Saudi Riyal (SAR)\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"STD\",\n              \"description\": \"Sao Tome And Principe Dobra (STD)\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"RSD\",\n              \"description\": \"Serbian dinar (RSD)\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"SCR\",\n              \"description\": \"Seychellois Rupee (SCR)\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"SGD\",\n              \"description\": \"Singapore Dollars (SGD)\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"SDG\",\n              \"description\": \"Sudanese Pound (SDG)\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"SYP\",\n              \"description\": \"Syrian Pound (SYP)\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"ZAR\",\n              \"description\": \"South African Rand (ZAR)\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"KRW\",\n              \"description\": \"South Korean Won (KRW)\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"SSP\",\n              \"description\": \"South Sudanese Pound (SSP)\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"SBD\",\n              \"description\": \"Solomon Islands Dollar (SBD)\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"LKR\",\n              \"description\": \"Sri Lankan Rupees (LKR)\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"SRD\",\n              \"description\": \"Surinamese Dollar (SRD)\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"SEK\",\n              \"description\": \"Swedish Kronor (SEK)\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"CHF\",\n              \"description\": \"Swiss Francs (CHF)\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"TWD\",\n              \"description\": \"Taiwan Dollars (TWD)\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"THB\",\n              \"description\": \"Thai baht (THB)\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"TZS\",\n              \"description\": \"Tanzanian Shilling (TZS)\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"TTD\",\n              \"description\": \"Trinidad and Tobago Dollars (TTD)\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"TND\",\n              \"description\": \"Tunisian Dinar (TND)\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"TRY\",\n              \"description\": \"Turkish Lira (TRY)\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"TMT\",\n              \"description\": \"Turkmenistani Manat (TMT)\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"UGX\",\n              \"description\": \"Ugandan Shilling (UGX)\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"UAH\",\n              \"description\": \"Ukrainian Hryvnia (UAH)\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"AED\",\n              \"description\": \"United Arab Emirates Dirham (AED)\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"UYU\",\n              \"description\": \"Uruguayan Pesos (UYU)\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"UZS\",\n              \"description\": \"Uzbekistan som (UZS)\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"VUV\",\n              \"description\": \"Vanuatu Vatu (VUV)\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"VEF\",\n              \"description\": \"Venezuelan Bolivares (VEF)\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"VND\",\n              \"description\": \"Vietnamese đồng (VND)\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"XOF\",\n              \"description\": \"West African CFA franc (XOF)\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"YER\",\n              \"description\": \"Yemeni Rial (YER)\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"ZMW\",\n              \"description\": \"Zambian Kwacha (ZMW)\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"SCALAR\",\n          \"name\": \"URL\",\n          \"description\": \"An RFC 3986 and RFC 3987 compliant URI string.\",\n          \"fields\": null,\n          \"inputFields\": null,\n          \"interfaces\": null,\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"OBJECT\",\n          \"name\": \"OrderLineItemConnection\",\n          \"description\": null,\n          \"fields\": [\n            {\n              \"name\": \"edges\",\n              \"description\": \"A list of edges.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"LIST\",\n                  \"name\": null,\n                  \"ofType\": {\n                    \"kind\": \"NON_NULL\",\n                    \"name\": null,\n                    \"ofType\": {\n                      \"kind\": \"OBJECT\",\n                      \"name\": \"OrderLineItemEdge\",\n                      \"ofType\": null\n                    }\n                  }\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"pageInfo\",\n              \"description\": \"Information to aid in pagination.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"PageInfo\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"inputFields\": null,\n          \"interfaces\": [],\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"OBJECT\",\n          \"name\": \"OrderLineItemEdge\",\n          \"description\": null,\n          \"fields\": [\n            {\n              \"name\": \"cursor\",\n              \"description\": \"A cursor for use in pagination.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"String\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"node\",\n              \"description\": \"The item at the end of OrderLineItemEdge.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"OrderLineItem\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"inputFields\": null,\n          \"interfaces\": [],\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"OBJECT\",\n          \"name\": \"OrderLineItem\",\n          \"description\": \"Represents a single line in an order. There is one line item for each distinct product variant.\",\n          \"fields\": [\n            {\n              \"name\": \"customAttributes\",\n              \"description\": \"List of custom attributes associated to the line item.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"LIST\",\n                  \"name\": null,\n                  \"ofType\": {\n                    \"kind\": \"NON_NULL\",\n                    \"name\": null,\n                    \"ofType\": {\n                      \"kind\": \"OBJECT\",\n                      \"name\": \"Attribute\",\n                      \"ofType\": null\n                    }\n                  }\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"quantity\",\n              \"description\": \"The number of products variants associated to the line item.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"Int\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"title\",\n              \"description\": \"The title of the product combined with title of the variant.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"String\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"variant\",\n              \"description\": \"The product variant object associated to the line item.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"OBJECT\",\n                \"name\": \"ProductVariant\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"inputFields\": null,\n          \"interfaces\": [],\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"OBJECT\",\n          \"name\": \"ProductVariant\",\n          \"description\": \"A product variant represents a different version of a product, such as differing sizes or differing colors.\",\n          \"fields\": [\n            {\n              \"name\": \"available\",\n              \"description\": \"Indicates if the product variant is in stock.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"Boolean\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": true,\n              \"deprecationReason\": \"Use `availableForSale` instead\"\n            },\n            {\n              \"name\": \"availableForSale\",\n              \"description\": \"Indicates if the product variant is available for sale.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"Boolean\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"compareAtPrice\",\n              \"description\": \"The compare at price of the variant. This can be used to mark a variant as on sale, when `compareAtPrice` is higher than `price`.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"Money\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"id\",\n              \"description\": \"Globally unique identifier.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"ID\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"image\",\n              \"description\": \"Image associated with the product variant.\",\n              \"args\": [\n                {\n                  \"name\": \"maxWidth\",\n                  \"description\": \"Image width in pixels between 1 and 2048\",\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"Int\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"maxHeight\",\n                  \"description\": \"Image height in pixels between 1 and 2048\",\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"Int\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"crop\",\n                  \"description\": \"If specified, crop the image keeping the specified region\",\n                  \"type\": {\n                    \"kind\": \"ENUM\",\n                    \"name\": \"CropRegion\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"scale\",\n                  \"description\": \"Image size multiplier retina displays. Must be between 1 and 3\",\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"Int\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": \"1\"\n                }\n              ],\n              \"type\": {\n                \"kind\": \"OBJECT\",\n                \"name\": \"Image\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"price\",\n              \"description\": \"The product variant’s price.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"Money\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"product\",\n              \"description\": \"The product object that the product variant belongs to.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"Product\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"selectedOptions\",\n              \"description\": \"List of product options applied to the variant.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"LIST\",\n                  \"name\": null,\n                  \"ofType\": {\n                    \"kind\": \"NON_NULL\",\n                    \"name\": null,\n                    \"ofType\": {\n                      \"kind\": \"OBJECT\",\n                      \"name\": \"SelectedOption\",\n                      \"ofType\": null\n                    }\n                  }\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"sku\",\n              \"description\": \"The SKU (Stock Keeping Unit) associated with the variant.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"String\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"title\",\n              \"description\": \"The product variant’s title.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"String\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"weight\",\n              \"description\": \"The weight of the product variant in the unit system specified with `weight_unit`.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"Float\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"weightUnit\",\n              \"description\": \"Unit of measurement for weight.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"ENUM\",\n                  \"name\": \"WeightUnit\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"inputFields\": null,\n          \"interfaces\": [\n            {\n              \"kind\": \"INTERFACE\",\n              \"name\": \"Node\",\n              \"ofType\": null\n            }\n          ],\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"ENUM\",\n          \"name\": \"WeightUnit\",\n          \"description\": \"Units of measurements for weight.\",\n          \"fields\": null,\n          \"inputFields\": null,\n          \"interfaces\": null,\n          \"enumValues\": [\n            {\n              \"name\": \"KILOGRAMS\",\n              \"description\": \"1 equals 1000 grams\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"GRAMS\",\n              \"description\": \"Metric system unit of mass\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"POUNDS\",\n              \"description\": \"1 equals 16 ounces\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"OUNCES\",\n              \"description\": \"Imperial system unit of mass\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"OBJECT\",\n          \"name\": \"Image\",\n          \"description\": \"Represents an image resource.\",\n          \"fields\": [\n            {\n              \"name\": \"altText\",\n              \"description\": \"A word or phrase to share the nature or contents of an image.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"String\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"id\",\n              \"description\": \"A unique identifier for the image.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"ID\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"src\",\n              \"description\": \"The location of the image as a URL.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"URL\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"inputFields\": null,\n          \"interfaces\": [],\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"ENUM\",\n          \"name\": \"CropRegion\",\n          \"description\": \"The part of the image that should remain after cropping.\",\n          \"fields\": null,\n          \"inputFields\": null,\n          \"interfaces\": null,\n          \"enumValues\": [\n            {\n              \"name\": \"CENTER\",\n              \"description\": \"Keep the center of the image\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"TOP\",\n              \"description\": \"Keep the top of the image\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"BOTTOM\",\n              \"description\": \"Keep the bottom of the image\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"LEFT\",\n              \"description\": \"Keep the left of the image\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"RIGHT\",\n              \"description\": \"Keep the right of the image\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"OBJECT\",\n          \"name\": \"SelectedOption\",\n          \"description\": \"Custom properties that a shop owner can use to define product variants.\\nMultiple options can exist. Options are represented as: option1, option2, option3, etc.\\n\",\n          \"fields\": [\n            {\n              \"name\": \"name\",\n              \"description\": \"The product option’s name.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"String\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"value\",\n              \"description\": \"The product option’s value.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"String\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"inputFields\": null,\n          \"interfaces\": [],\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"OBJECT\",\n          \"name\": \"Product\",\n          \"description\": \"A product represents an individual item for sale in a Shopify store. Products are often physical, but they don't have to be. \\nFor example, a digital download (such as a movie, music or ebook file) also qualifies as a product, as do services (such as equipment rental, work for hire, customization of another product or an extended warranty).\",\n          \"fields\": [\n            {\n              \"name\": \"collections\",\n              \"description\": \"List of collections a product belongs to.\",\n              \"args\": [\n                {\n                  \"name\": \"first\",\n                  \"description\": null,\n                  \"type\": {\n                    \"kind\": \"NON_NULL\",\n                    \"name\": null,\n                    \"ofType\": {\n                      \"kind\": \"SCALAR\",\n                      \"name\": \"Int\",\n                      \"ofType\": null\n                    }\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"after\",\n                  \"description\": null,\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"String\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"reverse\",\n                  \"description\": null,\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"Boolean\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": \"false\"\n                }\n              ],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"CollectionConnection\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"createdAt\",\n              \"description\": \"The date and time when the product was created.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"DateTime\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"description\",\n              \"description\": \"Stripped description of the product, single line with HTML tags removed.\",\n              \"args\": [\n                {\n                  \"name\": \"truncateAt\",\n                  \"description\": \"Truncates string after the given length.\",\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"Int\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                }\n              ],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"String\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"descriptionHtml\",\n              \"description\": \"The description of the product, complete with HTML formatting.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"HTML\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"handle\",\n              \"description\": \"A human-friendly unique string for the Product automatically generated from its title.\\nThey are used by the Liquid templating language to refer to objects.\\n\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"String\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"id\",\n              \"description\": \"Globally unique identifier.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"ID\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"images\",\n              \"description\": \"List of images associated with the product.\",\n              \"args\": [\n                {\n                  \"name\": \"first\",\n                  \"description\": null,\n                  \"type\": {\n                    \"kind\": \"NON_NULL\",\n                    \"name\": null,\n                    \"ofType\": {\n                      \"kind\": \"SCALAR\",\n                      \"name\": \"Int\",\n                      \"ofType\": null\n                    }\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"after\",\n                  \"description\": null,\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"String\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"sortKey\",\n                  \"description\": null,\n                  \"type\": {\n                    \"kind\": \"ENUM\",\n                    \"name\": \"ProductImageSortKeys\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": \"POSITION\"\n                },\n                {\n                  \"name\": \"reverse\",\n                  \"description\": null,\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"Boolean\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": \"false\"\n                },\n                {\n                  \"name\": \"maxWidth\",\n                  \"description\": \"Image width in pixels between 1 and 2048\",\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"Int\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"maxHeight\",\n                  \"description\": \"Image height in pixels between 1 and 2048\",\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"Int\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"crop\",\n                  \"description\": \"If specified, crop the image keeping the specified region\",\n                  \"type\": {\n                    \"kind\": \"ENUM\",\n                    \"name\": \"CropRegion\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"scale\",\n                  \"description\": \"Image size multiplier retina displays. Must be between 1 and 3\",\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"Int\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": \"1\"\n                }\n              ],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"ImageConnection\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"options\",\n              \"description\": \"Lst of custom product options (maximum of 3 per product).\",\n              \"args\": [\n                {\n                  \"name\": \"first\",\n                  \"description\": \"Truncate the array result to this size\",\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"Int\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                }\n              ],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"LIST\",\n                  \"name\": null,\n                  \"ofType\": {\n                    \"kind\": \"NON_NULL\",\n                    \"name\": null,\n                    \"ofType\": {\n                      \"kind\": \"OBJECT\",\n                      \"name\": \"ProductOption\",\n                      \"ofType\": null\n                    }\n                  }\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"productType\",\n              \"description\": \"A categorization that a product can be tagged with, commonly used for filtering and searching.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"String\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"publishedAt\",\n              \"description\": \"The date and time when the product was published to the Online Store channel.\\nA value of `null` indicates that the product is not published to Online Store.\\n\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"DateTime\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"tags\",\n              \"description\": \"A categorization that a product can be tagged with, commonly used for filtering and searching.\\nEach comma-separated tag has a character limit of 255.\\n\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"LIST\",\n                  \"name\": null,\n                  \"ofType\": {\n                    \"kind\": \"NON_NULL\",\n                    \"name\": null,\n                    \"ofType\": {\n                      \"kind\": \"SCALAR\",\n                      \"name\": \"String\",\n                      \"ofType\": null\n                    }\n                  }\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"title\",\n              \"description\": \"The product’s title.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"String\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"updatedAt\",\n              \"description\": \"The date and time when the product was last modified.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"DateTime\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"variantBySelectedOptions\",\n              \"description\": \"Find a product’s variant based on its selected options.\\nThis is useful for converting a user’s selection of product options into a single matching variant.\\nIf there is not a variant for the selected options, `null` will be returned.\\n\",\n              \"args\": [\n                {\n                  \"name\": \"selectedOptions\",\n                  \"description\": null,\n                  \"type\": {\n                    \"kind\": \"NON_NULL\",\n                    \"name\": null,\n                    \"ofType\": {\n                      \"kind\": \"LIST\",\n                      \"name\": null,\n                      \"ofType\": {\n                        \"kind\": \"NON_NULL\",\n                        \"name\": null,\n                        \"ofType\": {\n                          \"kind\": \"INPUT_OBJECT\",\n                          \"name\": \"SelectedOptionInput\",\n                          \"ofType\": null\n                        }\n                      }\n                    }\n                  },\n                  \"defaultValue\": null\n                }\n              ],\n              \"type\": {\n                \"kind\": \"OBJECT\",\n                \"name\": \"ProductVariant\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"variants\",\n              \"description\": \"List of the product’s variants.\",\n              \"args\": [\n                {\n                  \"name\": \"first\",\n                  \"description\": null,\n                  \"type\": {\n                    \"kind\": \"NON_NULL\",\n                    \"name\": null,\n                    \"ofType\": {\n                      \"kind\": \"SCALAR\",\n                      \"name\": \"Int\",\n                      \"ofType\": null\n                    }\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"after\",\n                  \"description\": null,\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"String\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"reverse\",\n                  \"description\": null,\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"Boolean\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": \"false\"\n                }\n              ],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"ProductVariantConnection\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"vendor\",\n              \"description\": \"The product’s vendor name.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"String\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"inputFields\": null,\n          \"interfaces\": [\n            {\n              \"kind\": \"INTERFACE\",\n              \"name\": \"Node\",\n              \"ofType\": null\n            }\n          ],\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"OBJECT\",\n          \"name\": \"CollectionConnection\",\n          \"description\": null,\n          \"fields\": [\n            {\n              \"name\": \"edges\",\n              \"description\": \"A list of edges.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"LIST\",\n                  \"name\": null,\n                  \"ofType\": {\n                    \"kind\": \"NON_NULL\",\n                    \"name\": null,\n                    \"ofType\": {\n                      \"kind\": \"OBJECT\",\n                      \"name\": \"CollectionEdge\",\n                      \"ofType\": null\n                    }\n                  }\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"pageInfo\",\n              \"description\": \"Information to aid in pagination.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"PageInfo\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"inputFields\": null,\n          \"interfaces\": [],\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"OBJECT\",\n          \"name\": \"CollectionEdge\",\n          \"description\": null,\n          \"fields\": [\n            {\n              \"name\": \"cursor\",\n              \"description\": \"A cursor for use in pagination.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"String\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"node\",\n              \"description\": \"The item at the end of CollectionEdge.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"Collection\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"inputFields\": null,\n          \"interfaces\": [],\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"OBJECT\",\n          \"name\": \"Collection\",\n          \"description\": \"A collection represents a grouping of products that a shop owner can create to organize them or make their shops easier to browse.\",\n          \"fields\": [\n            {\n              \"name\": \"description\",\n              \"description\": \"Stripped description of the collection, single line with HTML tags removed.\",\n              \"args\": [\n                {\n                  \"name\": \"truncateAt\",\n                  \"description\": \"Truncates string after the given length.\",\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"Int\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                }\n              ],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"String\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"descriptionHtml\",\n              \"description\": \"The description of the collection, complete with HTML formatting.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"HTML\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"handle\",\n              \"description\": \"A human-friendly unique string for the collection automatically generated from its title.\\nLimit of 255 characters.\\n\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"String\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"id\",\n              \"description\": \"Globally unique identifier.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"ID\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"image\",\n              \"description\": \"Image associated with the collection.\",\n              \"args\": [\n                {\n                  \"name\": \"maxWidth\",\n                  \"description\": \"Image width in pixels between 1 and 2048\",\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"Int\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"maxHeight\",\n                  \"description\": \"Image height in pixels between 1 and 2048\",\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"Int\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"crop\",\n                  \"description\": \"If specified, crop the image keeping the specified region\",\n                  \"type\": {\n                    \"kind\": \"ENUM\",\n                    \"name\": \"CropRegion\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"scale\",\n                  \"description\": \"Image size multiplier retina displays. Must be between 1 and 3\",\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"Int\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": \"1\"\n                }\n              ],\n              \"type\": {\n                \"kind\": \"OBJECT\",\n                \"name\": \"Image\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"products\",\n              \"description\": \"List of products in the collection.\",\n              \"args\": [\n                {\n                  \"name\": \"first\",\n                  \"description\": null,\n                  \"type\": {\n                    \"kind\": \"NON_NULL\",\n                    \"name\": null,\n                    \"ofType\": {\n                      \"kind\": \"SCALAR\",\n                      \"name\": \"Int\",\n                      \"ofType\": null\n                    }\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"after\",\n                  \"description\": null,\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"String\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"sortKey\",\n                  \"description\": null,\n                  \"type\": {\n                    \"kind\": \"ENUM\",\n                    \"name\": \"ProductCollectionSortKeys\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": \"COLLECTION_DEFAULT\"\n                },\n                {\n                  \"name\": \"reverse\",\n                  \"description\": null,\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"Boolean\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": \"false\"\n                }\n              ],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"ProductConnection\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"title\",\n              \"description\": \"The collection’s name. Limit of 255 characters.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"String\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"updatedAt\",\n              \"description\": \"The date and time when the collection was last modified.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"DateTime\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"inputFields\": null,\n          \"interfaces\": [\n            {\n              \"kind\": \"INTERFACE\",\n              \"name\": \"Node\",\n              \"ofType\": null\n            }\n          ],\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"SCALAR\",\n          \"name\": \"HTML\",\n          \"description\": \"A string containing HTML code.\",\n          \"fields\": null,\n          \"inputFields\": null,\n          \"interfaces\": null,\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"OBJECT\",\n          \"name\": \"ProductConnection\",\n          \"description\": null,\n          \"fields\": [\n            {\n              \"name\": \"edges\",\n              \"description\": \"A list of edges.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"LIST\",\n                  \"name\": null,\n                  \"ofType\": {\n                    \"kind\": \"NON_NULL\",\n                    \"name\": null,\n                    \"ofType\": {\n                      \"kind\": \"OBJECT\",\n                      \"name\": \"ProductEdge\",\n                      \"ofType\": null\n                    }\n                  }\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"pageInfo\",\n              \"description\": \"Information to aid in pagination.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"PageInfo\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"inputFields\": null,\n          \"interfaces\": [],\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"OBJECT\",\n          \"name\": \"ProductEdge\",\n          \"description\": null,\n          \"fields\": [\n            {\n              \"name\": \"cursor\",\n              \"description\": \"A cursor for use in pagination.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"String\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"node\",\n              \"description\": \"The item at the end of ProductEdge.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"Product\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"inputFields\": null,\n          \"interfaces\": [],\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"ENUM\",\n          \"name\": \"ProductCollectionSortKeys\",\n          \"description\": \"The set of valid sort keys for the products query.\",\n          \"fields\": null,\n          \"inputFields\": null,\n          \"interfaces\": null,\n          \"enumValues\": [\n            {\n              \"name\": \"MANUAL\",\n              \"description\": null,\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"BEST_SELLING\",\n              \"description\": null,\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"TITLE\",\n              \"description\": null,\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"PRICE\",\n              \"description\": null,\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"CREATED\",\n              \"description\": null,\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"COLLECTION_DEFAULT\",\n              \"description\": null,\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"ID\",\n              \"description\": null,\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"RELEVANCE\",\n              \"description\": null,\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"OBJECT\",\n          \"name\": \"ImageConnection\",\n          \"description\": null,\n          \"fields\": [\n            {\n              \"name\": \"edges\",\n              \"description\": \"A list of edges.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"LIST\",\n                  \"name\": null,\n                  \"ofType\": {\n                    \"kind\": \"NON_NULL\",\n                    \"name\": null,\n                    \"ofType\": {\n                      \"kind\": \"OBJECT\",\n                      \"name\": \"ImageEdge\",\n                      \"ofType\": null\n                    }\n                  }\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"pageInfo\",\n              \"description\": \"Information to aid in pagination.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"PageInfo\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"inputFields\": null,\n          \"interfaces\": [],\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"OBJECT\",\n          \"name\": \"ImageEdge\",\n          \"description\": null,\n          \"fields\": [\n            {\n              \"name\": \"cursor\",\n              \"description\": \"A cursor for use in pagination.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"String\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"node\",\n              \"description\": \"The item at the end of ImageEdge.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"Image\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"inputFields\": null,\n          \"interfaces\": [],\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"ENUM\",\n          \"name\": \"ProductImageSortKeys\",\n          \"description\": \"The set of valid sort keys for the images query.\",\n          \"fields\": null,\n          \"inputFields\": null,\n          \"interfaces\": null,\n          \"enumValues\": [\n            {\n              \"name\": \"CREATED_AT\",\n              \"description\": null,\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"POSITION\",\n              \"description\": null,\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"ID\",\n              \"description\": null,\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"RELEVANCE\",\n              \"description\": null,\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"INPUT_OBJECT\",\n          \"name\": \"SelectedOptionInput\",\n          \"description\": \"Specifies the input fields required for a selected option.\",\n          \"fields\": null,\n          \"inputFields\": [\n            {\n              \"name\": \"name\",\n              \"description\": \"The product option’s name.\",\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"String\",\n                  \"ofType\": null\n                }\n              },\n              \"defaultValue\": null\n            },\n            {\n              \"name\": \"value\",\n              \"description\": \"The product option’s value.\",\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"String\",\n                  \"ofType\": null\n                }\n              },\n              \"defaultValue\": null\n            }\n          ],\n          \"interfaces\": null,\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"OBJECT\",\n          \"name\": \"ProductOption\",\n          \"description\": \"Custom product property names like \\\"Size\\\", \\\"Color\\\", and \\\"Material\\\".\\nProducts are based on permutations of these options.\\nA product may have a maximum of 3 options.\\n255 characters limit each.\\n\",\n          \"fields\": [\n            {\n              \"name\": \"id\",\n              \"description\": \"Globally unique identifier.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"ID\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"name\",\n              \"description\": \"The product option’s name.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"String\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"values\",\n              \"description\": \"The corresponding value to the product option name.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"LIST\",\n                  \"name\": null,\n                  \"ofType\": {\n                    \"kind\": \"NON_NULL\",\n                    \"name\": null,\n                    \"ofType\": {\n                      \"kind\": \"SCALAR\",\n                      \"name\": \"String\",\n                      \"ofType\": null\n                    }\n                  }\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"inputFields\": null,\n          \"interfaces\": [\n            {\n              \"kind\": \"INTERFACE\",\n              \"name\": \"Node\",\n              \"ofType\": null\n            }\n          ],\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"OBJECT\",\n          \"name\": \"ProductVariantConnection\",\n          \"description\": null,\n          \"fields\": [\n            {\n              \"name\": \"edges\",\n              \"description\": \"A list of edges.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"LIST\",\n                  \"name\": null,\n                  \"ofType\": {\n                    \"kind\": \"NON_NULL\",\n                    \"name\": null,\n                    \"ofType\": {\n                      \"kind\": \"OBJECT\",\n                      \"name\": \"ProductVariantEdge\",\n                      \"ofType\": null\n                    }\n                  }\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"pageInfo\",\n              \"description\": \"Information to aid in pagination.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"PageInfo\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"inputFields\": null,\n          \"interfaces\": [],\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"OBJECT\",\n          \"name\": \"ProductVariantEdge\",\n          \"description\": null,\n          \"fields\": [\n            {\n              \"name\": \"cursor\",\n              \"description\": \"A cursor for use in pagination.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"String\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"node\",\n              \"description\": \"The item at the end of ProductVariantEdge.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"ProductVariant\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"inputFields\": null,\n          \"interfaces\": [],\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"OBJECT\",\n          \"name\": \"Attribute\",\n          \"description\": \"Represents a generic custom attribute.\",\n          \"fields\": [\n            {\n              \"name\": \"key\",\n              \"description\": \"Key or name of the attribute.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"String\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"value\",\n              \"description\": \"Value of the attribute.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"String\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"inputFields\": null,\n          \"interfaces\": [],\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"ENUM\",\n          \"name\": \"OrderSortKeys\",\n          \"description\": \"The set of valid sort keys for the orders query.\",\n          \"fields\": null,\n          \"inputFields\": null,\n          \"interfaces\": null,\n          \"enumValues\": [\n            {\n              \"name\": \"PROCESSED_AT\",\n              \"description\": null,\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"TOTAL_PRICE\",\n              \"description\": null,\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"ID\",\n              \"description\": null,\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"RELEVANCE\",\n              \"description\": null,\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"OBJECT\",\n          \"name\": \"Shop\",\n          \"description\": \"Shop represents a collection of the general settings and information about the shop.\",\n          \"fields\": [\n            {\n              \"name\": \"articles\",\n              \"description\": \"List of the shop' articles.\",\n              \"args\": [\n                {\n                  \"name\": \"first\",\n                  \"description\": null,\n                  \"type\": {\n                    \"kind\": \"NON_NULL\",\n                    \"name\": null,\n                    \"ofType\": {\n                      \"kind\": \"SCALAR\",\n                      \"name\": \"Int\",\n                      \"ofType\": null\n                    }\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"after\",\n                  \"description\": null,\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"String\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"query\",\n                  \"description\": \"Supported filter parameters:\\n - `author`\\n - `updated_at`\\n - `created_at`\\n - `blog_title`\\n - `tag`\",\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"String\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"sortKey\",\n                  \"description\": null,\n                  \"type\": {\n                    \"kind\": \"ENUM\",\n                    \"name\": \"ArticleSortKeys\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": \"ID\"\n                },\n                {\n                  \"name\": \"reverse\",\n                  \"description\": null,\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"Boolean\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": \"false\"\n                }\n              ],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"ArticleConnection\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"blogs\",\n              \"description\": \"List of the shop' blogs.\",\n              \"args\": [\n                {\n                  \"name\": \"first\",\n                  \"description\": null,\n                  \"type\": {\n                    \"kind\": \"NON_NULL\",\n                    \"name\": null,\n                    \"ofType\": {\n                      \"kind\": \"SCALAR\",\n                      \"name\": \"Int\",\n                      \"ofType\": null\n                    }\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"after\",\n                  \"description\": null,\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"String\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"query\",\n                  \"description\": \"Supported filter parameters:\\n - `handle`\\n - `title`\\n - `updated_at`\\n - `created_at`\",\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"String\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"sortKey\",\n                  \"description\": null,\n                  \"type\": {\n                    \"kind\": \"ENUM\",\n                    \"name\": \"BlogSortKeys\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": \"ID\"\n                },\n                {\n                  \"name\": \"reverse\",\n                  \"description\": null,\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"Boolean\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": \"false\"\n                }\n              ],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"BlogConnection\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"cardVaultUrl\",\n              \"description\": \"The url pointing to the endpoint to vault credit cards.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"URL\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": true,\n              \"deprecationReason\": \"Use `paymentSettings` instead\"\n            },\n            {\n              \"name\": \"collectionByHandle\",\n              \"description\": \"Find a collection by its handle.\",\n              \"args\": [\n                {\n                  \"name\": \"handle\",\n                  \"description\": null,\n                  \"type\": {\n                    \"kind\": \"NON_NULL\",\n                    \"name\": null,\n                    \"ofType\": {\n                      \"kind\": \"SCALAR\",\n                      \"name\": \"String\",\n                      \"ofType\": null\n                    }\n                  },\n                  \"defaultValue\": null\n                }\n              ],\n              \"type\": {\n                \"kind\": \"OBJECT\",\n                \"name\": \"Collection\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"collections\",\n              \"description\": \"List of the shop’s collections.\",\n              \"args\": [\n                {\n                  \"name\": \"first\",\n                  \"description\": null,\n                  \"type\": {\n                    \"kind\": \"NON_NULL\",\n                    \"name\": null,\n                    \"ofType\": {\n                      \"kind\": \"SCALAR\",\n                      \"name\": \"Int\",\n                      \"ofType\": null\n                    }\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"after\",\n                  \"description\": null,\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"String\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"query\",\n                  \"description\": \"Supported filter parameters:\\n - `title`\\n - `collection_type`\\n - `updated_at`\",\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"String\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"sortKey\",\n                  \"description\": null,\n                  \"type\": {\n                    \"kind\": \"ENUM\",\n                    \"name\": \"CollectionSortKeys\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": \"ID\"\n                },\n                {\n                  \"name\": \"reverse\",\n                  \"description\": null,\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"Boolean\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": \"false\"\n                }\n              ],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"CollectionConnection\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"currencyCode\",\n              \"description\": \"The three-letter code for the currency that the shop accepts.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"ENUM\",\n                  \"name\": \"CurrencyCode\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": true,\n              \"deprecationReason\": \"Use `paymentSettings` instead\"\n            },\n            {\n              \"name\": \"description\",\n              \"description\": \"A description of the shop.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"String\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"moneyFormat\",\n              \"description\": \"A string representing the way currency is formatted when the currency isn’t specified.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"String\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"name\",\n              \"description\": \"The shop’s name.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"String\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"paymentSettings\",\n              \"description\": \"Settings related to payments.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"PaymentSettings\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"primaryDomain\",\n              \"description\": \"The shop’s primary domain.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"Domain\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"privacyPolicy\",\n              \"description\": \"The shop’s privacy policy.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"OBJECT\",\n                \"name\": \"ShopPolicy\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"productByHandle\",\n              \"description\": \"Find a product by its handle.\",\n              \"args\": [\n                {\n                  \"name\": \"handle\",\n                  \"description\": null,\n                  \"type\": {\n                    \"kind\": \"NON_NULL\",\n                    \"name\": null,\n                    \"ofType\": {\n                      \"kind\": \"SCALAR\",\n                      \"name\": \"String\",\n                      \"ofType\": null\n                    }\n                  },\n                  \"defaultValue\": null\n                }\n              ],\n              \"type\": {\n                \"kind\": \"OBJECT\",\n                \"name\": \"Product\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"productTypes\",\n              \"description\": \"List of the shop’s product types.\",\n              \"args\": [\n                {\n                  \"name\": \"first\",\n                  \"description\": null,\n                  \"type\": {\n                    \"kind\": \"NON_NULL\",\n                    \"name\": null,\n                    \"ofType\": {\n                      \"kind\": \"SCALAR\",\n                      \"name\": \"Int\",\n                      \"ofType\": null\n                    }\n                  },\n                  \"defaultValue\": null\n                }\n              ],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"StringConnection\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"products\",\n              \"description\": \"List of the shop’s products.\",\n              \"args\": [\n                {\n                  \"name\": \"first\",\n                  \"description\": null,\n                  \"type\": {\n                    \"kind\": \"NON_NULL\",\n                    \"name\": null,\n                    \"ofType\": {\n                      \"kind\": \"SCALAR\",\n                      \"name\": \"Int\",\n                      \"ofType\": null\n                    }\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"after\",\n                  \"description\": null,\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"String\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"query\",\n                  \"description\": \"Supported filter parameters:\\n - `title`\\n - `product_type`\\n - `vendor`\\n - `created_at`\\n - `updated_at`\\n - `tag`\",\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"String\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"sortKey\",\n                  \"description\": null,\n                  \"type\": {\n                    \"kind\": \"ENUM\",\n                    \"name\": \"ProductSortKeys\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": \"ID\"\n                },\n                {\n                  \"name\": \"reverse\",\n                  \"description\": null,\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"Boolean\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": \"false\"\n                }\n              ],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"ProductConnection\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"refundPolicy\",\n              \"description\": \"The shop’s refund policy.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"OBJECT\",\n                \"name\": \"ShopPolicy\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"shopifyPaymentsAccountId\",\n              \"description\": \"The shop’s Shopify Payments account id.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"String\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": true,\n              \"deprecationReason\": \"Use `paymentSettings` instead\"\n            },\n            {\n              \"name\": \"termsOfService\",\n              \"description\": \"The shop’s terms of service.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"OBJECT\",\n                \"name\": \"ShopPolicy\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"inputFields\": null,\n          \"interfaces\": [],\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"OBJECT\",\n          \"name\": \"PaymentSettings\",\n          \"description\": \"Settings related to payments.\",\n          \"fields\": [\n            {\n              \"name\": \"acceptedCardBrands\",\n              \"description\": \"List of the card brands which the shop accepts.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"LIST\",\n                  \"name\": null,\n                  \"ofType\": {\n                    \"kind\": \"NON_NULL\",\n                    \"name\": null,\n                    \"ofType\": {\n                      \"kind\": \"ENUM\",\n                      \"name\": \"CardBrand\",\n                      \"ofType\": null\n                    }\n                  }\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"cardVaultUrl\",\n              \"description\": \"The url pointing to the endpoint to vault credit cards.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"URL\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"countryCode\",\n              \"description\": \"The country where the shop is located.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"ENUM\",\n                  \"name\": \"CountryCode\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"currencyCode\",\n              \"description\": \"The three-letter code for the currency that the shop accepts.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"ENUM\",\n                  \"name\": \"CurrencyCode\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"shopifyPaymentsAccountId\",\n              \"description\": \"The shop’s Shopify Payments account id.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"String\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"supportedDigitalWallets\",\n              \"description\": \"List of the digital wallets which the shop supports.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"LIST\",\n                  \"name\": null,\n                  \"ofType\": {\n                    \"kind\": \"NON_NULL\",\n                    \"name\": null,\n                    \"ofType\": {\n                      \"kind\": \"ENUM\",\n                      \"name\": \"DigitalWallet\",\n                      \"ofType\": null\n                    }\n                  }\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"inputFields\": null,\n          \"interfaces\": [],\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"ENUM\",\n          \"name\": \"CountryCode\",\n          \"description\": \"ISO 3166-1 alpha-2 country codes with some differences.\",\n          \"fields\": null,\n          \"inputFields\": null,\n          \"interfaces\": null,\n          \"enumValues\": [\n            {\n              \"name\": \"CA\",\n              \"description\": \"Canada\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"US\",\n              \"description\": \"United States\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"GB\",\n              \"description\": \"United Kingdom\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"AF\",\n              \"description\": \"Afghanistan\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"AL\",\n              \"description\": \"Albania\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"DZ\",\n              \"description\": \"Algeria\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"AD\",\n              \"description\": \"Andorra\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"AO\",\n              \"description\": \"Angola\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"AG\",\n              \"description\": \"Antigua And Barbuda\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"AR\",\n              \"description\": \"Argentina\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"AM\",\n              \"description\": \"Armenia\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"AW\",\n              \"description\": \"Aruba\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"AU\",\n              \"description\": \"Australia\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"AT\",\n              \"description\": \"Austria\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"AZ\",\n              \"description\": \"Azerbaijan\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"BS\",\n              \"description\": \"Bahamas\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"BH\",\n              \"description\": \"Bahrain\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"BD\",\n              \"description\": \"Bangladesh\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"BB\",\n              \"description\": \"Barbados\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"BY\",\n              \"description\": \"Belarus\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"BE\",\n              \"description\": \"Belgium\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"BZ\",\n              \"description\": \"Belize\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"BJ\",\n              \"description\": \"Benin\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"BM\",\n              \"description\": \"Bermuda\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"BT\",\n              \"description\": \"Bhutan\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"BO\",\n              \"description\": \"Bolivia\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"BA\",\n              \"description\": \"Bosnia And Herzegovina\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"BW\",\n              \"description\": \"Botswana\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"BR\",\n              \"description\": \"Brazil\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"BN\",\n              \"description\": \"Brunei\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"BG\",\n              \"description\": \"Bulgaria\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"NC\",\n              \"description\": \"New Caledonia\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"KH\",\n              \"description\": \"Cambodia\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"CM\",\n              \"description\": \"Republic of Cameroon\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"CV\",\n              \"description\": \"Cape Verde\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"KY\",\n              \"description\": \"Cayman Islands\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"CL\",\n              \"description\": \"Chile\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"CN\",\n              \"description\": \"China\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"CO\",\n              \"description\": \"Colombia\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"KM\",\n              \"description\": \"Comoros\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"CG\",\n              \"description\": \"Congo\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"CD\",\n              \"description\": \"Congo, The Democratic Republic Of The\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"CR\",\n              \"description\": \"Costa Rica\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"CI\",\n              \"description\": \"Côte d'Ivoire\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"HR\",\n              \"description\": \"Croatia\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"CW\",\n              \"description\": \"Curaçao\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"CY\",\n              \"description\": \"Cyprus\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"CZ\",\n              \"description\": \"Czech Republic\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"DK\",\n              \"description\": \"Denmark\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"DM\",\n              \"description\": \"Dominica\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"DO\",\n              \"description\": \"Dominican Republic\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"EC\",\n              \"description\": \"Ecuador\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"EG\",\n              \"description\": \"Egypt\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"SV\",\n              \"description\": \"El Salvador\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"EE\",\n              \"description\": \"Estonia\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"ET\",\n              \"description\": \"Ethiopia\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"GQ\",\n              \"description\": \"Equatorial Guinea\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"FO\",\n              \"description\": \"Faroe Islands\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"FJ\",\n              \"description\": \"Fiji\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"FI\",\n              \"description\": \"Finland\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"FR\",\n              \"description\": \"France\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"PF\",\n              \"description\": \"French Polynesia\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"GA\",\n              \"description\": \"Gabon\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"GM\",\n              \"description\": \"Gambia\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"GE\",\n              \"description\": \"Georgia\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"DE\",\n              \"description\": \"Germany\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"GH\",\n              \"description\": \"Ghana\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"GI\",\n              \"description\": \"Gibraltar\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"GR\",\n              \"description\": \"Greece\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"GL\",\n              \"description\": \"Greenland\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"GD\",\n              \"description\": \"Grenada\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"GP\",\n              \"description\": \"Guadeloupe\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"GT\",\n              \"description\": \"Guatemala\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"GG\",\n              \"description\": \"Guernsey\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"GY\",\n              \"description\": \"Guyana\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"HT\",\n              \"description\": \"Haiti\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"HN\",\n              \"description\": \"Honduras\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"HK\",\n              \"description\": \"Hong Kong\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"HU\",\n              \"description\": \"Hungary\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"IS\",\n              \"description\": \"Iceland\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"IN\",\n              \"description\": \"India\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"ID\",\n              \"description\": \"Indonesia\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"IE\",\n              \"description\": \"Ireland\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"IM\",\n              \"description\": \"Isle Of Man\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"IL\",\n              \"description\": \"Israel\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"IT\",\n              \"description\": \"Italy\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"JM\",\n              \"description\": \"Jamaica\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"JP\",\n              \"description\": \"Japan\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"JE\",\n              \"description\": \"Jersey\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"JO\",\n              \"description\": \"Jordan\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"KZ\",\n              \"description\": \"Kazakhstan\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"KE\",\n              \"description\": \"Kenya\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"XK\",\n              \"description\": \"Kosovo\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"KW\",\n              \"description\": \"Kuwait\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"KG\",\n              \"description\": \"Kyrgyzstan\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"LA\",\n              \"description\": \"Lao People's Democratic Republic\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"LV\",\n              \"description\": \"Latvia\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"LB\",\n              \"description\": \"Lebanon\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"LS\",\n              \"description\": \"Lesotho\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"LR\",\n              \"description\": \"Liberia\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"LI\",\n              \"description\": \"Liechtenstein\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"LT\",\n              \"description\": \"Lithuania\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"LU\",\n              \"description\": \"Luxembourg\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"MO\",\n              \"description\": \"Macao\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"MK\",\n              \"description\": \"Macedonia, Republic Of\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"MG\",\n              \"description\": \"Madagascar\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"MW\",\n              \"description\": \"Malawi\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"MY\",\n              \"description\": \"Malaysia\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"MV\",\n              \"description\": \"Maldives\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"MT\",\n              \"description\": \"Malta\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"MQ\",\n              \"description\": \"Martinique\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"MU\",\n              \"description\": \"Mauritius\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"YT\",\n              \"description\": \"Mayotte\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"MX\",\n              \"description\": \"Mexico\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"MD\",\n              \"description\": \"Moldova, Republic of\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"MC\",\n              \"description\": \"Monaco\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"MN\",\n              \"description\": \"Mongolia\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"ME\",\n              \"description\": \"Montenegro\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"MA\",\n              \"description\": \"Morocco\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"MZ\",\n              \"description\": \"Mozambique\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"MM\",\n              \"description\": \"Myanmar\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"NA\",\n              \"description\": \"Namibia\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"NP\",\n              \"description\": \"Nepal\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"AN\",\n              \"description\": \"Netherlands Antilles\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"NL\",\n              \"description\": \"Netherlands\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"NZ\",\n              \"description\": \"New Zealand\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"NI\",\n              \"description\": \"Nicaragua\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"NE\",\n              \"description\": \"Niger\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"NG\",\n              \"description\": \"Nigeria\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"NO\",\n              \"description\": \"Norway\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"OM\",\n              \"description\": \"Oman\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"PK\",\n              \"description\": \"Pakistan\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"PS\",\n              \"description\": \"Palestinian Territory, Occupied\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"PA\",\n              \"description\": \"Panama\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"PG\",\n              \"description\": \"Papua New Guinea\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"PY\",\n              \"description\": \"Paraguay\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"PE\",\n              \"description\": \"Peru\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"PH\",\n              \"description\": \"Philippines\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"PL\",\n              \"description\": \"Poland\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"PT\",\n              \"description\": \"Portugal\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"QA\",\n              \"description\": \"Qatar\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"RE\",\n              \"description\": \"Reunion\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"RO\",\n              \"description\": \"Romania\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"RU\",\n              \"description\": \"Russia\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"RW\",\n              \"description\": \"Rwanda\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"KN\",\n              \"description\": \"Saint Kitts And Nevis\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"LC\",\n              \"description\": \"Saint Lucia\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"MF\",\n              \"description\": \"Saint Martin\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"ST\",\n              \"description\": \"Sao Tome And Principe\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"WS\",\n              \"description\": \"Samoa\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"SA\",\n              \"description\": \"Saudi Arabia\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"SN\",\n              \"description\": \"Senegal\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"RS\",\n              \"description\": \"Serbia\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"SC\",\n              \"description\": \"Seychelles\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"SG\",\n              \"description\": \"Singapore\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"SX\",\n              \"description\": \"Sint Maarten\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"SK\",\n              \"description\": \"Slovakia\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"SI\",\n              \"description\": \"Slovenia\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"SB\",\n              \"description\": \"Solomon Islands\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"ZA\",\n              \"description\": \"South Africa\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"KR\",\n              \"description\": \"South Korea\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"SS\",\n              \"description\": \"South Sudan\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"ES\",\n              \"description\": \"Spain\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"LK\",\n              \"description\": \"Sri Lanka\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"VC\",\n              \"description\": \"St. Vincent\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"SD\",\n              \"description\": \"Sudan\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"SR\",\n              \"description\": \"Suriname\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"SE\",\n              \"description\": \"Sweden\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"CH\",\n              \"description\": \"Switzerland\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"SY\",\n              \"description\": \"Syria\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"TW\",\n              \"description\": \"Taiwan\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"TZ\",\n              \"description\": \"Tanzania, United Republic Of\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"TH\",\n              \"description\": \"Thailand\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"TT\",\n              \"description\": \"Trinidad and Tobago\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"TN\",\n              \"description\": \"Tunisia\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"TR\",\n              \"description\": \"Turkey\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"TM\",\n              \"description\": \"Turkmenistan\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"TC\",\n              \"description\": \"Turks and Caicos Islands\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"UG\",\n              \"description\": \"Uganda\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"UA\",\n              \"description\": \"Ukraine\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"AE\",\n              \"description\": \"United Arab Emirates\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"UY\",\n              \"description\": \"Uruguay\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"UZ\",\n              \"description\": \"Uzbekistan\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"VU\",\n              \"description\": \"Vanuatu\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"VE\",\n              \"description\": \"Venezuela\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"VN\",\n              \"description\": \"Vietnam\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"VG\",\n              \"description\": \"Virgin Islands, British\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"YE\",\n              \"description\": \"Yemen\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"ZM\",\n              \"description\": \"Zambia\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"ZW\",\n              \"description\": \"Zimbabwe\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"AX\",\n              \"description\": \"Aland Islands\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"AI\",\n              \"description\": \"Anguilla\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"BV\",\n              \"description\": \"Bouvet Island\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"IO\",\n              \"description\": \"British Indian Ocean Territory\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"BF\",\n              \"description\": \"Burkina Faso\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"BI\",\n              \"description\": \"Burundi\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"CF\",\n              \"description\": \"Central African Republic\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"TD\",\n              \"description\": \"Chad\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"CX\",\n              \"description\": \"Christmas Island\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"CC\",\n              \"description\": \"Cocos (Keeling) Islands\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"CK\",\n              \"description\": \"Cook Islands\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"CU\",\n              \"description\": \"Cuba\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"DJ\",\n              \"description\": \"Djibouti\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"ER\",\n              \"description\": \"Eritrea\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"FK\",\n              \"description\": \"Falkland Islands (Malvinas)\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"GF\",\n              \"description\": \"French Guiana\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"TF\",\n              \"description\": \"French Southern Territories\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"GN\",\n              \"description\": \"Guinea\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"GW\",\n              \"description\": \"Guinea Bissau\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"HM\",\n              \"description\": \"Heard Island And Mcdonald Islands\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"VA\",\n              \"description\": \"Holy See (Vatican City State)\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"IR\",\n              \"description\": \"Iran, Islamic Republic Of\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"IQ\",\n              \"description\": \"Iraq\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"KI\",\n              \"description\": \"Kiribati\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"KP\",\n              \"description\": \"Korea, Democratic People's Republic Of\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"LY\",\n              \"description\": \"Libyan Arab Jamahiriya\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"ML\",\n              \"description\": \"Mali\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"MR\",\n              \"description\": \"Mauritania\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"MS\",\n              \"description\": \"Montserrat\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"NR\",\n              \"description\": \"Nauru\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"NU\",\n              \"description\": \"Niue\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"NF\",\n              \"description\": \"Norfolk Island\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"PN\",\n              \"description\": \"Pitcairn\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"BL\",\n              \"description\": \"Saint Barthélemy\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"SH\",\n              \"description\": \"Saint Helena\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"PM\",\n              \"description\": \"Saint Pierre And Miquelon\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"SM\",\n              \"description\": \"San Marino\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"SL\",\n              \"description\": \"Sierra Leone\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"SO\",\n              \"description\": \"Somalia\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"GS\",\n              \"description\": \"South Georgia And The South Sandwich Islands\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"SJ\",\n              \"description\": \"Svalbard And Jan Mayen\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"SZ\",\n              \"description\": \"Swaziland\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"TJ\",\n              \"description\": \"Tajikistan\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"TL\",\n              \"description\": \"Timor Leste\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"TG\",\n              \"description\": \"Togo\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"TK\",\n              \"description\": \"Tokelau\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"TO\",\n              \"description\": \"Tonga\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"TV\",\n              \"description\": \"Tuvalu\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"UM\",\n              \"description\": \"United States Minor Outlying Islands\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"WF\",\n              \"description\": \"Wallis And Futuna\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"EH\",\n              \"description\": \"Western Sahara\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"ENUM\",\n          \"name\": \"CardBrand\",\n          \"description\": \"Card brand, such as Visa or Mastercard, which can be used for payments.\",\n          \"fields\": null,\n          \"inputFields\": null,\n          \"interfaces\": null,\n          \"enumValues\": [\n            {\n              \"name\": \"VISA\",\n              \"description\": \"Visa\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"MASTERCARD\",\n              \"description\": \"Mastercard\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"DISCOVER\",\n              \"description\": \"Discover\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"AMERICAN_EXPRESS\",\n              \"description\": \"American Express\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"DINERS_CLUB\",\n              \"description\": \"Diners Club\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"JCB\",\n              \"description\": \"JCB\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"ENUM\",\n          \"name\": \"DigitalWallet\",\n          \"description\": \"Digital wallet, such as Apple Pay, which can be used for accelerated checkouts.\",\n          \"fields\": null,\n          \"inputFields\": null,\n          \"interfaces\": null,\n          \"enumValues\": [\n            {\n              \"name\": \"APPLE_PAY\",\n              \"description\": \"Apple Pay\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"ANDROID_PAY\",\n              \"description\": \"Android Pay\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"SHOPIFY_PAY\",\n              \"description\": \"Shopify Pay\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"OBJECT\",\n          \"name\": \"Domain\",\n          \"description\": \"Represents a web address.\",\n          \"fields\": [\n            {\n              \"name\": \"host\",\n              \"description\": \"The host name of the domain (eg: `example.com`).\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"String\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"sslEnabled\",\n              \"description\": \"Whether SSL is enabled or not.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"Boolean\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"url\",\n              \"description\": \"The URL of the domain (eg: `https://example.com`).\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"URL\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"inputFields\": null,\n          \"interfaces\": [],\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"OBJECT\",\n          \"name\": \"ShopPolicy\",\n          \"description\": \"Policy that a merchant has configured for their store, such as their refund or privacy policy.\",\n          \"fields\": [\n            {\n              \"name\": \"body\",\n              \"description\": \"Policy text, maximum size of 64kb.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"String\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"id\",\n              \"description\": \"Globally unique identifier.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"ID\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"title\",\n              \"description\": \"Policy’s title.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"String\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"url\",\n              \"description\": \"Public URL to the policy.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"URL\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"inputFields\": null,\n          \"interfaces\": [\n            {\n              \"kind\": \"INTERFACE\",\n              \"name\": \"Node\",\n              \"ofType\": null\n            }\n          ],\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"OBJECT\",\n          \"name\": \"BlogConnection\",\n          \"description\": null,\n          \"fields\": [\n            {\n              \"name\": \"edges\",\n              \"description\": \"A list of edges.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"LIST\",\n                  \"name\": null,\n                  \"ofType\": {\n                    \"kind\": \"NON_NULL\",\n                    \"name\": null,\n                    \"ofType\": {\n                      \"kind\": \"OBJECT\",\n                      \"name\": \"BlogEdge\",\n                      \"ofType\": null\n                    }\n                  }\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"pageInfo\",\n              \"description\": \"Information to aid in pagination.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"PageInfo\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"inputFields\": null,\n          \"interfaces\": [],\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"OBJECT\",\n          \"name\": \"BlogEdge\",\n          \"description\": null,\n          \"fields\": [\n            {\n              \"name\": \"cursor\",\n              \"description\": \"A cursor for use in pagination.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"String\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"node\",\n              \"description\": \"The item at the end of BlogEdge.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"Blog\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"inputFields\": null,\n          \"interfaces\": [],\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"OBJECT\",\n          \"name\": \"Blog\",\n          \"description\": null,\n          \"fields\": [\n            {\n              \"name\": \"articles\",\n              \"description\": \"List of the blog's articles.\",\n              \"args\": [\n                {\n                  \"name\": \"first\",\n                  \"description\": null,\n                  \"type\": {\n                    \"kind\": \"NON_NULL\",\n                    \"name\": null,\n                    \"ofType\": {\n                      \"kind\": \"SCALAR\",\n                      \"name\": \"Int\",\n                      \"ofType\": null\n                    }\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"after\",\n                  \"description\": null,\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"String\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"reverse\",\n                  \"description\": null,\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"Boolean\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": \"false\"\n                }\n              ],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"ArticleConnection\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"id\",\n              \"description\": \"Globally unique identifier.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"ID\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"title\",\n              \"description\": \"The blogs’s title.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"String\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"url\",\n              \"description\": \"The url pointing to the blog accessible from the web.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"URL\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"inputFields\": null,\n          \"interfaces\": [\n            {\n              \"kind\": \"INTERFACE\",\n              \"name\": \"Node\",\n              \"ofType\": null\n            }\n          ],\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"OBJECT\",\n          \"name\": \"ArticleConnection\",\n          \"description\": null,\n          \"fields\": [\n            {\n              \"name\": \"edges\",\n              \"description\": \"A list of edges.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"LIST\",\n                  \"name\": null,\n                  \"ofType\": {\n                    \"kind\": \"NON_NULL\",\n                    \"name\": null,\n                    \"ofType\": {\n                      \"kind\": \"OBJECT\",\n                      \"name\": \"ArticleEdge\",\n                      \"ofType\": null\n                    }\n                  }\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"pageInfo\",\n              \"description\": \"Information to aid in pagination.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"PageInfo\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"inputFields\": null,\n          \"interfaces\": [],\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"OBJECT\",\n          \"name\": \"ArticleEdge\",\n          \"description\": null,\n          \"fields\": [\n            {\n              \"name\": \"cursor\",\n              \"description\": \"A cursor for use in pagination.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"String\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"node\",\n              \"description\": \"The item at the end of ArticleEdge.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"Article\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"inputFields\": null,\n          \"interfaces\": [],\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"OBJECT\",\n          \"name\": \"Article\",\n          \"description\": null,\n          \"fields\": [\n            {\n              \"name\": \"author\",\n              \"description\": \"The article's author.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"ArticleAuthor\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"blog\",\n              \"description\": \"The blog that the article belongs to.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"Blog\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"comments\",\n              \"description\": \"List of comments posted on the article.\",\n              \"args\": [\n                {\n                  \"name\": \"first\",\n                  \"description\": null,\n                  \"type\": {\n                    \"kind\": \"NON_NULL\",\n                    \"name\": null,\n                    \"ofType\": {\n                      \"kind\": \"SCALAR\",\n                      \"name\": \"Int\",\n                      \"ofType\": null\n                    }\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"after\",\n                  \"description\": null,\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"String\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"reverse\",\n                  \"description\": null,\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"Boolean\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": \"false\"\n                }\n              ],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"CommentConnection\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"content\",\n              \"description\": \"Stripped content of the article, single line with HTML tags removed.\",\n              \"args\": [\n                {\n                  \"name\": \"truncateAt\",\n                  \"description\": \"Truncates string after the given length.\",\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"Int\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                }\n              ],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"String\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"contentHtml\",\n              \"description\": \"The content of the article, complete with HTML formatting.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"HTML\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"excerpt\",\n              \"description\": \"Stripped excerpt of the article, single line with HTML tags removed.\",\n              \"args\": [\n                {\n                  \"name\": \"truncateAt\",\n                  \"description\": \"Truncates string after the given length.\",\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"Int\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                }\n              ],\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"String\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"excerptHtml\",\n              \"description\": \"The excerpt of the article, complete with HTML formatting.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"HTML\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"id\",\n              \"description\": \"Globally unique identifier.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"ID\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"image\",\n              \"description\": \"The image associated with the article.\",\n              \"args\": [\n                {\n                  \"name\": \"maxWidth\",\n                  \"description\": \"Image width in pixels between 1 and 2048\",\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"Int\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"maxHeight\",\n                  \"description\": \"Image height in pixels between 1 and 2048\",\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"Int\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"crop\",\n                  \"description\": \"If specified, crop the image keeping the specified region\",\n                  \"type\": {\n                    \"kind\": \"ENUM\",\n                    \"name\": \"CropRegion\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"scale\",\n                  \"description\": \"Image size multiplier retina displays. Must be between 1 and 3\",\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"Int\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": \"1\"\n                }\n              ],\n              \"type\": {\n                \"kind\": \"OBJECT\",\n                \"name\": \"Image\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"publishedAt\",\n              \"description\": \"The date and time when the article was published.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"DateTime\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"tags\",\n              \"description\": \"A categorization that a article can be tagged with.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"LIST\",\n                  \"name\": null,\n                  \"ofType\": {\n                    \"kind\": \"NON_NULL\",\n                    \"name\": null,\n                    \"ofType\": {\n                      \"kind\": \"SCALAR\",\n                      \"name\": \"String\",\n                      \"ofType\": null\n                    }\n                  }\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"title\",\n              \"description\": \"The article’s name.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"String\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"url\",\n              \"description\": \"The url pointing to the article accessible from the web.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"URL\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"inputFields\": null,\n          \"interfaces\": [\n            {\n              \"kind\": \"INTERFACE\",\n              \"name\": \"Node\",\n              \"ofType\": null\n            }\n          ],\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"OBJECT\",\n          \"name\": \"ArticleAuthor\",\n          \"description\": null,\n          \"fields\": [\n            {\n              \"name\": \"bio\",\n              \"description\": \"The author's bio.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"String\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"email\",\n              \"description\": \"The author’s email.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"String\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"firstName\",\n              \"description\": \"The author's first name.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"String\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"lastName\",\n              \"description\": \"The author's last name.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"String\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"name\",\n              \"description\": \"The author's full name\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"String\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"inputFields\": null,\n          \"interfaces\": [],\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"OBJECT\",\n          \"name\": \"CommentConnection\",\n          \"description\": null,\n          \"fields\": [\n            {\n              \"name\": \"edges\",\n              \"description\": \"A list of edges.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"LIST\",\n                  \"name\": null,\n                  \"ofType\": {\n                    \"kind\": \"NON_NULL\",\n                    \"name\": null,\n                    \"ofType\": {\n                      \"kind\": \"OBJECT\",\n                      \"name\": \"CommentEdge\",\n                      \"ofType\": null\n                    }\n                  }\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"pageInfo\",\n              \"description\": \"Information to aid in pagination.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"PageInfo\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"inputFields\": null,\n          \"interfaces\": [],\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"OBJECT\",\n          \"name\": \"CommentEdge\",\n          \"description\": null,\n          \"fields\": [\n            {\n              \"name\": \"cursor\",\n              \"description\": \"A cursor for use in pagination.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"String\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"node\",\n              \"description\": \"The item at the end of CommentEdge.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"Comment\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"inputFields\": null,\n          \"interfaces\": [],\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"OBJECT\",\n          \"name\": \"Comment\",\n          \"description\": null,\n          \"fields\": [\n            {\n              \"name\": \"author\",\n              \"description\": \"The comment’s author.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"CommentAuthor\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"content\",\n              \"description\": \"Stripped content of the comment, single line with HTML tags removed.\",\n              \"args\": [\n                {\n                  \"name\": \"truncateAt\",\n                  \"description\": \"Truncates string after the given length.\",\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"Int\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                }\n              ],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"String\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"contentHtml\",\n              \"description\": \"The content of the comment, complete with HTML formatting.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"HTML\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"id\",\n              \"description\": \"Globally unique identifier.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"ID\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"inputFields\": null,\n          \"interfaces\": [\n            {\n              \"kind\": \"INTERFACE\",\n              \"name\": \"Node\",\n              \"ofType\": null\n            }\n          ],\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"OBJECT\",\n          \"name\": \"CommentAuthor\",\n          \"description\": null,\n          \"fields\": [\n            {\n              \"name\": \"email\",\n              \"description\": \"The author's email.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"String\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"name\",\n              \"description\": \"The author’s name.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"String\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"inputFields\": null,\n          \"interfaces\": [],\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"ENUM\",\n          \"name\": \"BlogSortKeys\",\n          \"description\": \"The set of valid sort keys for the blogs query.\",\n          \"fields\": null,\n          \"inputFields\": null,\n          \"interfaces\": null,\n          \"enumValues\": [\n            {\n              \"name\": \"HANDLE\",\n              \"description\": null,\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"TITLE\",\n              \"description\": null,\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"ID\",\n              \"description\": null,\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"RELEVANCE\",\n              \"description\": null,\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"ENUM\",\n          \"name\": \"ArticleSortKeys\",\n          \"description\": \"The set of valid sort keys for the articles query.\",\n          \"fields\": null,\n          \"inputFields\": null,\n          \"interfaces\": null,\n          \"enumValues\": [\n            {\n              \"name\": \"TITLE\",\n              \"description\": null,\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"BLOG_TITLE\",\n              \"description\": null,\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"AUTHOR\",\n              \"description\": null,\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"UPDATED_AT\",\n              \"description\": null,\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"ID\",\n              \"description\": null,\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"RELEVANCE\",\n              \"description\": null,\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"ENUM\",\n          \"name\": \"CollectionSortKeys\",\n          \"description\": \"The set of valid sort keys for the collections query.\",\n          \"fields\": null,\n          \"inputFields\": null,\n          \"interfaces\": null,\n          \"enumValues\": [\n            {\n              \"name\": \"TITLE\",\n              \"description\": null,\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"UPDATED_AT\",\n              \"description\": null,\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"ID\",\n              \"description\": null,\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"RELEVANCE\",\n              \"description\": null,\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"ENUM\",\n          \"name\": \"ProductSortKeys\",\n          \"description\": \"The set of valid sort keys for the products query.\",\n          \"fields\": null,\n          \"inputFields\": null,\n          \"interfaces\": null,\n          \"enumValues\": [\n            {\n              \"name\": \"TITLE\",\n              \"description\": null,\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"PRODUCT_TYPE\",\n              \"description\": null,\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"VENDOR\",\n              \"description\": null,\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"UPDATED_AT\",\n              \"description\": null,\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"CREATED_AT\",\n              \"description\": null,\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"ID\",\n              \"description\": null,\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"RELEVANCE\",\n              \"description\": null,\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"OBJECT\",\n          \"name\": \"StringConnection\",\n          \"description\": null,\n          \"fields\": [\n            {\n              \"name\": \"edges\",\n              \"description\": \"A list of edges.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"LIST\",\n                  \"name\": null,\n                  \"ofType\": {\n                    \"kind\": \"NON_NULL\",\n                    \"name\": null,\n                    \"ofType\": {\n                      \"kind\": \"OBJECT\",\n                      \"name\": \"StringEdge\",\n                      \"ofType\": null\n                    }\n                  }\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"pageInfo\",\n              \"description\": \"Information to aid in pagination.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"PageInfo\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"inputFields\": null,\n          \"interfaces\": [],\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"OBJECT\",\n          \"name\": \"StringEdge\",\n          \"description\": null,\n          \"fields\": [\n            {\n              \"name\": \"cursor\",\n              \"description\": \"A cursor for use in pagination.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"String\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"node\",\n              \"description\": \"The item at the end of StringEdge.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"String\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"inputFields\": null,\n          \"interfaces\": [],\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"OBJECT\",\n          \"name\": \"Mutation\",\n          \"description\": \"The schema’s entry-point for mutations. This acts as the public, top-level API from which all mutation queries must start.\",\n          \"fields\": [\n            {\n              \"name\": \"checkoutAttributesUpdate\",\n              \"description\": \"Updates the attributes of a checkout.\",\n              \"args\": [\n                {\n                  \"name\": \"checkoutId\",\n                  \"description\": \"The ID of the checkout.\",\n                  \"type\": {\n                    \"kind\": \"NON_NULL\",\n                    \"name\": null,\n                    \"ofType\": {\n                      \"kind\": \"SCALAR\",\n                      \"name\": \"ID\",\n                      \"ofType\": null\n                    }\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"input\",\n                  \"description\": null,\n                  \"type\": {\n                    \"kind\": \"NON_NULL\",\n                    \"name\": null,\n                    \"ofType\": {\n                      \"kind\": \"INPUT_OBJECT\",\n                      \"name\": \"CheckoutAttributesUpdateInput\",\n                      \"ofType\": null\n                    }\n                  },\n                  \"defaultValue\": null\n                }\n              ],\n              \"type\": {\n                \"kind\": \"OBJECT\",\n                \"name\": \"CheckoutAttributesUpdatePayload\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"checkoutCompleteFree\",\n              \"description\": null,\n              \"args\": [\n                {\n                  \"name\": \"checkoutId\",\n                  \"description\": \"The ID of the checkout.\",\n                  \"type\": {\n                    \"kind\": \"NON_NULL\",\n                    \"name\": null,\n                    \"ofType\": {\n                      \"kind\": \"SCALAR\",\n                      \"name\": \"ID\",\n                      \"ofType\": null\n                    }\n                  },\n                  \"defaultValue\": null\n                }\n              ],\n              \"type\": {\n                \"kind\": \"OBJECT\",\n                \"name\": \"CheckoutCompleteFreePayload\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"checkoutCompleteWithCreditCard\",\n              \"description\": \"Completes a checkout using a credit card token from Shopify's Vault.\",\n              \"args\": [\n                {\n                  \"name\": \"checkoutId\",\n                  \"description\": \"The ID of the checkout.\",\n                  \"type\": {\n                    \"kind\": \"NON_NULL\",\n                    \"name\": null,\n                    \"ofType\": {\n                      \"kind\": \"SCALAR\",\n                      \"name\": \"ID\",\n                      \"ofType\": null\n                    }\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"payment\",\n                  \"description\": null,\n                  \"type\": {\n                    \"kind\": \"NON_NULL\",\n                    \"name\": null,\n                    \"ofType\": {\n                      \"kind\": \"INPUT_OBJECT\",\n                      \"name\": \"CreditCardPaymentInput\",\n                      \"ofType\": null\n                    }\n                  },\n                  \"defaultValue\": null\n                }\n              ],\n              \"type\": {\n                \"kind\": \"OBJECT\",\n                \"name\": \"CheckoutCompleteWithCreditCardPayload\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"checkoutCompleteWithTokenizedPayment\",\n              \"description\": \"Completes a checkout with a tokenized payment.\",\n              \"args\": [\n                {\n                  \"name\": \"checkoutId\",\n                  \"description\": \"The ID of the checkout.\",\n                  \"type\": {\n                    \"kind\": \"NON_NULL\",\n                    \"name\": null,\n                    \"ofType\": {\n                      \"kind\": \"SCALAR\",\n                      \"name\": \"ID\",\n                      \"ofType\": null\n                    }\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"payment\",\n                  \"description\": null,\n                  \"type\": {\n                    \"kind\": \"NON_NULL\",\n                    \"name\": null,\n                    \"ofType\": {\n                      \"kind\": \"INPUT_OBJECT\",\n                      \"name\": \"TokenizedPaymentInput\",\n                      \"ofType\": null\n                    }\n                  },\n                  \"defaultValue\": null\n                }\n              ],\n              \"type\": {\n                \"kind\": \"OBJECT\",\n                \"name\": \"CheckoutCompleteWithTokenizedPaymentPayload\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"checkoutCreate\",\n              \"description\": \"Creates a new checkout.\",\n              \"args\": [\n                {\n                  \"name\": \"input\",\n                  \"description\": null,\n                  \"type\": {\n                    \"kind\": \"NON_NULL\",\n                    \"name\": null,\n                    \"ofType\": {\n                      \"kind\": \"INPUT_OBJECT\",\n                      \"name\": \"CheckoutCreateInput\",\n                      \"ofType\": null\n                    }\n                  },\n                  \"defaultValue\": null\n                }\n              ],\n              \"type\": {\n                \"kind\": \"OBJECT\",\n                \"name\": \"CheckoutCreatePayload\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"checkoutCustomerAssociate\",\n              \"description\": \"Associates a customer to the checkout.\",\n              \"args\": [\n                {\n                  \"name\": \"checkoutId\",\n                  \"description\": \"The ID of the checkout.\",\n                  \"type\": {\n                    \"kind\": \"NON_NULL\",\n                    \"name\": null,\n                    \"ofType\": {\n                      \"kind\": \"SCALAR\",\n                      \"name\": \"ID\",\n                      \"ofType\": null\n                    }\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"customerAccessToken\",\n                  \"description\": \"The customer access token of the customer to associate.\",\n                  \"type\": {\n                    \"kind\": \"NON_NULL\",\n                    \"name\": null,\n                    \"ofType\": {\n                      \"kind\": \"SCALAR\",\n                      \"name\": \"String\",\n                      \"ofType\": null\n                    }\n                  },\n                  \"defaultValue\": null\n                }\n              ],\n              \"type\": {\n                \"kind\": \"OBJECT\",\n                \"name\": \"CheckoutCustomerAssociatePayload\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"checkoutCustomerDisassociate\",\n              \"description\": \"Disassociates the current checkout customer from the checkout.\",\n              \"args\": [\n                {\n                  \"name\": \"checkoutId\",\n                  \"description\": \"The ID of the checkout.\",\n                  \"type\": {\n                    \"kind\": \"NON_NULL\",\n                    \"name\": null,\n                    \"ofType\": {\n                      \"kind\": \"SCALAR\",\n                      \"name\": \"ID\",\n                      \"ofType\": null\n                    }\n                  },\n                  \"defaultValue\": null\n                }\n              ],\n              \"type\": {\n                \"kind\": \"OBJECT\",\n                \"name\": \"CheckoutCustomerDisassociatePayload\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"checkoutEmailUpdate\",\n              \"description\": \"Updates the email on an existing checkout.\",\n              \"args\": [\n                {\n                  \"name\": \"checkoutId\",\n                  \"description\": \"The ID of the checkout.\",\n                  \"type\": {\n                    \"kind\": \"NON_NULL\",\n                    \"name\": null,\n                    \"ofType\": {\n                      \"kind\": \"SCALAR\",\n                      \"name\": \"ID\",\n                      \"ofType\": null\n                    }\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"email\",\n                  \"description\": \"The email to update the checkout with.\",\n                  \"type\": {\n                    \"kind\": \"NON_NULL\",\n                    \"name\": null,\n                    \"ofType\": {\n                      \"kind\": \"SCALAR\",\n                      \"name\": \"String\",\n                      \"ofType\": null\n                    }\n                  },\n                  \"defaultValue\": null\n                }\n              ],\n              \"type\": {\n                \"kind\": \"OBJECT\",\n                \"name\": \"CheckoutEmailUpdatePayload\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"checkoutGiftCardApply\",\n              \"description\": \"Applies a gift card to an existing checkout using a gift card code.\",\n              \"args\": [\n                {\n                  \"name\": \"giftCardCode\",\n                  \"description\": \"The code of the gift card to apply on the checkout.\",\n                  \"type\": {\n                    \"kind\": \"NON_NULL\",\n                    \"name\": null,\n                    \"ofType\": {\n                      \"kind\": \"SCALAR\",\n                      \"name\": \"String\",\n                      \"ofType\": null\n                    }\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"checkoutId\",\n                  \"description\": \"The ID of the checkout.\",\n                  \"type\": {\n                    \"kind\": \"NON_NULL\",\n                    \"name\": null,\n                    \"ofType\": {\n                      \"kind\": \"SCALAR\",\n                      \"name\": \"ID\",\n                      \"ofType\": null\n                    }\n                  },\n                  \"defaultValue\": null\n                }\n              ],\n              \"type\": {\n                \"kind\": \"OBJECT\",\n                \"name\": \"CheckoutGiftCardApplyPayload\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"checkoutGiftCardRemove\",\n              \"description\": \"Removes an applied gift card from the checkout.\",\n              \"args\": [\n                {\n                  \"name\": \"appliedGiftCardId\",\n                  \"description\": \"The ID of the Applied Gift Card to remove from the Checkout\",\n                  \"type\": {\n                    \"kind\": \"NON_NULL\",\n                    \"name\": null,\n                    \"ofType\": {\n                      \"kind\": \"SCALAR\",\n                      \"name\": \"ID\",\n                      \"ofType\": null\n                    }\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"checkoutId\",\n                  \"description\": \"The ID of the Checkout\",\n                  \"type\": {\n                    \"kind\": \"NON_NULL\",\n                    \"name\": null,\n                    \"ofType\": {\n                      \"kind\": \"SCALAR\",\n                      \"name\": \"ID\",\n                      \"ofType\": null\n                    }\n                  },\n                  \"defaultValue\": null\n                }\n              ],\n              \"type\": {\n                \"kind\": \"OBJECT\",\n                \"name\": \"CheckoutGiftCardRemovePayload\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"checkoutLineItemsAdd\",\n              \"description\": \"Adds a list of line items to a checkout.\",\n              \"args\": [\n                {\n                  \"name\": \"lineItems\",\n                  \"description\": \"A list of line item objects to add to the checkout.\",\n                  \"type\": {\n                    \"kind\": \"NON_NULL\",\n                    \"name\": null,\n                    \"ofType\": {\n                      \"kind\": \"LIST\",\n                      \"name\": null,\n                      \"ofType\": {\n                        \"kind\": \"NON_NULL\",\n                        \"name\": null,\n                        \"ofType\": {\n                          \"kind\": \"INPUT_OBJECT\",\n                          \"name\": \"CheckoutLineItemInput\",\n                          \"ofType\": null\n                        }\n                      }\n                    }\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"checkoutId\",\n                  \"description\": \"The ID of the checkout.\",\n                  \"type\": {\n                    \"kind\": \"NON_NULL\",\n                    \"name\": null,\n                    \"ofType\": {\n                      \"kind\": \"SCALAR\",\n                      \"name\": \"ID\",\n                      \"ofType\": null\n                    }\n                  },\n                  \"defaultValue\": null\n                }\n              ],\n              \"type\": {\n                \"kind\": \"OBJECT\",\n                \"name\": \"CheckoutLineItemsAddPayload\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"checkoutLineItemsRemove\",\n              \"description\": \"Removes line items from an existing checkout\",\n              \"args\": [\n                {\n                  \"name\": \"checkoutId\",\n                  \"description\": \"the checkout on which to remove line items\",\n                  \"type\": {\n                    \"kind\": \"NON_NULL\",\n                    \"name\": null,\n                    \"ofType\": {\n                      \"kind\": \"SCALAR\",\n                      \"name\": \"ID\",\n                      \"ofType\": null\n                    }\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"lineItemIds\",\n                  \"description\": \"line item ids to remove\",\n                  \"type\": {\n                    \"kind\": \"NON_NULL\",\n                    \"name\": null,\n                    \"ofType\": {\n                      \"kind\": \"LIST\",\n                      \"name\": null,\n                      \"ofType\": {\n                        \"kind\": \"NON_NULL\",\n                        \"name\": null,\n                        \"ofType\": {\n                          \"kind\": \"SCALAR\",\n                          \"name\": \"ID\",\n                          \"ofType\": null\n                        }\n                      }\n                    }\n                  },\n                  \"defaultValue\": null\n                }\n              ],\n              \"type\": {\n                \"kind\": \"OBJECT\",\n                \"name\": \"CheckoutLineItemsRemovePayload\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"checkoutLineItemsUpdate\",\n              \"description\": \"Updates line items on a checkout.\",\n              \"args\": [\n                {\n                  \"name\": \"checkoutId\",\n                  \"description\": \"the checkout on which to update line items.\",\n                  \"type\": {\n                    \"kind\": \"NON_NULL\",\n                    \"name\": null,\n                    \"ofType\": {\n                      \"kind\": \"SCALAR\",\n                      \"name\": \"ID\",\n                      \"ofType\": null\n                    }\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"lineItems\",\n                  \"description\": \"line items to update.\",\n                  \"type\": {\n                    \"kind\": \"NON_NULL\",\n                    \"name\": null,\n                    \"ofType\": {\n                      \"kind\": \"LIST\",\n                      \"name\": null,\n                      \"ofType\": {\n                        \"kind\": \"NON_NULL\",\n                        \"name\": null,\n                        \"ofType\": {\n                          \"kind\": \"INPUT_OBJECT\",\n                          \"name\": \"CheckoutLineItemUpdateInput\",\n                          \"ofType\": null\n                        }\n                      }\n                    }\n                  },\n                  \"defaultValue\": null\n                }\n              ],\n              \"type\": {\n                \"kind\": \"OBJECT\",\n                \"name\": \"CheckoutLineItemsUpdatePayload\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"checkoutShippingAddressUpdate\",\n              \"description\": \"Updates the shipping address of an existing checkout.\",\n              \"args\": [\n                {\n                  \"name\": \"shippingAddress\",\n                  \"description\": \"The shipping address to where the line items will be shipped.\",\n                  \"type\": {\n                    \"kind\": \"NON_NULL\",\n                    \"name\": null,\n                    \"ofType\": {\n                      \"kind\": \"INPUT_OBJECT\",\n                      \"name\": \"MailingAddressInput\",\n                      \"ofType\": null\n                    }\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"checkoutId\",\n                  \"description\": \"The ID of the checkout.\",\n                  \"type\": {\n                    \"kind\": \"NON_NULL\",\n                    \"name\": null,\n                    \"ofType\": {\n                      \"kind\": \"SCALAR\",\n                      \"name\": \"ID\",\n                      \"ofType\": null\n                    }\n                  },\n                  \"defaultValue\": null\n                }\n              ],\n              \"type\": {\n                \"kind\": \"OBJECT\",\n                \"name\": \"CheckoutShippingAddressUpdatePayload\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"checkoutShippingLineUpdate\",\n              \"description\": \"Updates the shipping lines on an existing checkout.\",\n              \"args\": [\n                {\n                  \"name\": \"checkoutId\",\n                  \"description\": \"The ID of the checkout.\",\n                  \"type\": {\n                    \"kind\": \"NON_NULL\",\n                    \"name\": null,\n                    \"ofType\": {\n                      \"kind\": \"SCALAR\",\n                      \"name\": \"ID\",\n                      \"ofType\": null\n                    }\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"shippingRateHandle\",\n                  \"description\": \"A concatenation of a Checkout’s shipping provider, price, and title, enabling the customer to select the availableShippingRates.\",\n                  \"type\": {\n                    \"kind\": \"NON_NULL\",\n                    \"name\": null,\n                    \"ofType\": {\n                      \"kind\": \"SCALAR\",\n                      \"name\": \"String\",\n                      \"ofType\": null\n                    }\n                  },\n                  \"defaultValue\": null\n                }\n              ],\n              \"type\": {\n                \"kind\": \"OBJECT\",\n                \"name\": \"CheckoutShippingLineUpdatePayload\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"customerAccessTokenCreate\",\n              \"description\": \"Creates a customer access token.\\nThe customer access token is required to modify the customer object in any way.\\n\",\n              \"args\": [\n                {\n                  \"name\": \"input\",\n                  \"description\": null,\n                  \"type\": {\n                    \"kind\": \"NON_NULL\",\n                    \"name\": null,\n                    \"ofType\": {\n                      \"kind\": \"INPUT_OBJECT\",\n                      \"name\": \"CustomerAccessTokenCreateInput\",\n                      \"ofType\": null\n                    }\n                  },\n                  \"defaultValue\": null\n                }\n              ],\n              \"type\": {\n                \"kind\": \"OBJECT\",\n                \"name\": \"CustomerAccessTokenCreatePayload\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"customerAccessTokenDelete\",\n              \"description\": \"Permanently destroys a customer access token.\",\n              \"args\": [\n                {\n                  \"name\": \"customerAccessToken\",\n                  \"description\": \"The access token used to identify the customer.\",\n                  \"type\": {\n                    \"kind\": \"NON_NULL\",\n                    \"name\": null,\n                    \"ofType\": {\n                      \"kind\": \"SCALAR\",\n                      \"name\": \"String\",\n                      \"ofType\": null\n                    }\n                  },\n                  \"defaultValue\": null\n                }\n              ],\n              \"type\": {\n                \"kind\": \"OBJECT\",\n                \"name\": \"CustomerAccessTokenDeletePayload\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"customerAccessTokenRenew\",\n              \"description\": \"Renews a customer access token.\",\n              \"args\": [\n                {\n                  \"name\": \"customerAccessToken\",\n                  \"description\": \"The access token used to identify the customer.\",\n                  \"type\": {\n                    \"kind\": \"NON_NULL\",\n                    \"name\": null,\n                    \"ofType\": {\n                      \"kind\": \"SCALAR\",\n                      \"name\": \"String\",\n                      \"ofType\": null\n                    }\n                  },\n                  \"defaultValue\": null\n                }\n              ],\n              \"type\": {\n                \"kind\": \"OBJECT\",\n                \"name\": \"CustomerAccessTokenRenewPayload\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"customerActivate\",\n              \"description\": \"Activates a customer.\",\n              \"args\": [\n                {\n                  \"name\": \"id\",\n                  \"description\": \"Specifies the customer to activate.\",\n                  \"type\": {\n                    \"kind\": \"NON_NULL\",\n                    \"name\": null,\n                    \"ofType\": {\n                      \"kind\": \"SCALAR\",\n                      \"name\": \"ID\",\n                      \"ofType\": null\n                    }\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"input\",\n                  \"description\": null,\n                  \"type\": {\n                    \"kind\": \"NON_NULL\",\n                    \"name\": null,\n                    \"ofType\": {\n                      \"kind\": \"INPUT_OBJECT\",\n                      \"name\": \"CustomerActivateInput\",\n                      \"ofType\": null\n                    }\n                  },\n                  \"defaultValue\": null\n                }\n              ],\n              \"type\": {\n                \"kind\": \"OBJECT\",\n                \"name\": \"CustomerActivatePayload\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"customerAddressCreate\",\n              \"description\": \"Creates a new address for a customer.\",\n              \"args\": [\n                {\n                  \"name\": \"customerAccessToken\",\n                  \"description\": \"The access token used to identify the customer.\",\n                  \"type\": {\n                    \"kind\": \"NON_NULL\",\n                    \"name\": null,\n                    \"ofType\": {\n                      \"kind\": \"SCALAR\",\n                      \"name\": \"String\",\n                      \"ofType\": null\n                    }\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"address\",\n                  \"description\": \"The customer mailing address to create.\",\n                  \"type\": {\n                    \"kind\": \"NON_NULL\",\n                    \"name\": null,\n                    \"ofType\": {\n                      \"kind\": \"INPUT_OBJECT\",\n                      \"name\": \"MailingAddressInput\",\n                      \"ofType\": null\n                    }\n                  },\n                  \"defaultValue\": null\n                }\n              ],\n              \"type\": {\n                \"kind\": \"OBJECT\",\n                \"name\": \"CustomerAddressCreatePayload\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"customerAddressDelete\",\n              \"description\": \"Permanently deletes the address of an existing customer.\",\n              \"args\": [\n                {\n                  \"name\": \"id\",\n                  \"description\": \"Specifies the address to delete.\",\n                  \"type\": {\n                    \"kind\": \"NON_NULL\",\n                    \"name\": null,\n                    \"ofType\": {\n                      \"kind\": \"SCALAR\",\n                      \"name\": \"ID\",\n                      \"ofType\": null\n                    }\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"customerAccessToken\",\n                  \"description\": \"The access token used to identify the customer.\",\n                  \"type\": {\n                    \"kind\": \"NON_NULL\",\n                    \"name\": null,\n                    \"ofType\": {\n                      \"kind\": \"SCALAR\",\n                      \"name\": \"String\",\n                      \"ofType\": null\n                    }\n                  },\n                  \"defaultValue\": null\n                }\n              ],\n              \"type\": {\n                \"kind\": \"OBJECT\",\n                \"name\": \"CustomerAddressDeletePayload\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"customerAddressUpdate\",\n              \"description\": \"Updates the address of an existing customer.\",\n              \"args\": [\n                {\n                  \"name\": \"customerAccessToken\",\n                  \"description\": \"The access token used to identify the customer.\",\n                  \"type\": {\n                    \"kind\": \"NON_NULL\",\n                    \"name\": null,\n                    \"ofType\": {\n                      \"kind\": \"SCALAR\",\n                      \"name\": \"String\",\n                      \"ofType\": null\n                    }\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"id\",\n                  \"description\": \"Specifies the customer address to update.\",\n                  \"type\": {\n                    \"kind\": \"NON_NULL\",\n                    \"name\": null,\n                    \"ofType\": {\n                      \"kind\": \"SCALAR\",\n                      \"name\": \"ID\",\n                      \"ofType\": null\n                    }\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"address\",\n                  \"description\": \"The customer’s mailing address.\",\n                  \"type\": {\n                    \"kind\": \"NON_NULL\",\n                    \"name\": null,\n                    \"ofType\": {\n                      \"kind\": \"INPUT_OBJECT\",\n                      \"name\": \"MailingAddressInput\",\n                      \"ofType\": null\n                    }\n                  },\n                  \"defaultValue\": null\n                }\n              ],\n              \"type\": {\n                \"kind\": \"OBJECT\",\n                \"name\": \"CustomerAddressUpdatePayload\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"customerCreate\",\n              \"description\": \"Creates a new customer.\",\n              \"args\": [\n                {\n                  \"name\": \"input\",\n                  \"description\": null,\n                  \"type\": {\n                    \"kind\": \"NON_NULL\",\n                    \"name\": null,\n                    \"ofType\": {\n                      \"kind\": \"INPUT_OBJECT\",\n                      \"name\": \"CustomerCreateInput\",\n                      \"ofType\": null\n                    }\n                  },\n                  \"defaultValue\": null\n                }\n              ],\n              \"type\": {\n                \"kind\": \"OBJECT\",\n                \"name\": \"CustomerCreatePayload\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"customerRecover\",\n              \"description\": \"Sends a reset password email to the customer, as the first step in the reset password process.\",\n              \"args\": [\n                {\n                  \"name\": \"email\",\n                  \"description\": \"The email address of the customer to recover.\",\n                  \"type\": {\n                    \"kind\": \"NON_NULL\",\n                    \"name\": null,\n                    \"ofType\": {\n                      \"kind\": \"SCALAR\",\n                      \"name\": \"String\",\n                      \"ofType\": null\n                    }\n                  },\n                  \"defaultValue\": null\n                }\n              ],\n              \"type\": {\n                \"kind\": \"OBJECT\",\n                \"name\": \"CustomerRecoverPayload\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"customerReset\",\n              \"description\": \"Resets a customer’s password with a token received from `CustomerRecover`.\",\n              \"args\": [\n                {\n                  \"name\": \"id\",\n                  \"description\": \"Specifies the customer to reset.\",\n                  \"type\": {\n                    \"kind\": \"NON_NULL\",\n                    \"name\": null,\n                    \"ofType\": {\n                      \"kind\": \"SCALAR\",\n                      \"name\": \"ID\",\n                      \"ofType\": null\n                    }\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"input\",\n                  \"description\": null,\n                  \"type\": {\n                    \"kind\": \"NON_NULL\",\n                    \"name\": null,\n                    \"ofType\": {\n                      \"kind\": \"INPUT_OBJECT\",\n                      \"name\": \"CustomerResetInput\",\n                      \"ofType\": null\n                    }\n                  },\n                  \"defaultValue\": null\n                }\n              ],\n              \"type\": {\n                \"kind\": \"OBJECT\",\n                \"name\": \"CustomerResetPayload\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"customerUpdate\",\n              \"description\": \"Updates an existing customer.\",\n              \"args\": [\n                {\n                  \"name\": \"customerAccessToken\",\n                  \"description\": \"The access token used to identify the customer.\",\n                  \"type\": {\n                    \"kind\": \"NON_NULL\",\n                    \"name\": null,\n                    \"ofType\": {\n                      \"kind\": \"SCALAR\",\n                      \"name\": \"String\",\n                      \"ofType\": null\n                    }\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"customer\",\n                  \"description\": \"The customer object input.\",\n                  \"type\": {\n                    \"kind\": \"NON_NULL\",\n                    \"name\": null,\n                    \"ofType\": {\n                      \"kind\": \"INPUT_OBJECT\",\n                      \"name\": \"CustomerUpdateInput\",\n                      \"ofType\": null\n                    }\n                  },\n                  \"defaultValue\": null\n                }\n              ],\n              \"type\": {\n                \"kind\": \"OBJECT\",\n                \"name\": \"CustomerUpdatePayload\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"inputFields\": null,\n          \"interfaces\": [],\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"OBJECT\",\n          \"name\": \"CheckoutAttributesUpdatePayload\",\n          \"description\": null,\n          \"fields\": [\n            {\n              \"name\": \"checkout\",\n              \"description\": \"The updated checkout object.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"Checkout\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"userErrors\",\n              \"description\": \"List of errors that occurred executing the mutation.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"LIST\",\n                  \"name\": null,\n                  \"ofType\": {\n                    \"kind\": \"NON_NULL\",\n                    \"name\": null,\n                    \"ofType\": {\n                      \"kind\": \"OBJECT\",\n                      \"name\": \"UserError\",\n                      \"ofType\": null\n                    }\n                  }\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"inputFields\": null,\n          \"interfaces\": [],\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"OBJECT\",\n          \"name\": \"UserError\",\n          \"description\": \"Represents an error in the input of a mutation.\",\n          \"fields\": [\n            {\n              \"name\": \"field\",\n              \"description\": \"Path to input field which caused the error.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"LIST\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"NON_NULL\",\n                  \"name\": null,\n                  \"ofType\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"String\",\n                    \"ofType\": null\n                  }\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"message\",\n              \"description\": \"The error message.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"String\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"inputFields\": null,\n          \"interfaces\": [],\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"OBJECT\",\n          \"name\": \"Checkout\",\n          \"description\": \"A container for all the information required to checkout items and pay.\",\n          \"fields\": [\n            {\n              \"name\": \"appliedGiftCards\",\n              \"description\": null,\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"LIST\",\n                  \"name\": null,\n                  \"ofType\": {\n                    \"kind\": \"NON_NULL\",\n                    \"name\": null,\n                    \"ofType\": {\n                      \"kind\": \"OBJECT\",\n                      \"name\": \"AppliedGiftCard\",\n                      \"ofType\": null\n                    }\n                  }\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"availableShippingRates\",\n              \"description\": \"The available shipping rates for this Checkout.\\nShould only be used when checkout `requiresShipping` is `true` and\\nthe shipping address is valid.\\n\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"OBJECT\",\n                \"name\": \"AvailableShippingRates\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"completedAt\",\n              \"description\": \"The date and time when the checkout was completed.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"DateTime\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"createdAt\",\n              \"description\": \"The date and time when the checkout was created.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"DateTime\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"currencyCode\",\n              \"description\": \"The currency code for the Checkout.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"ENUM\",\n                  \"name\": \"CurrencyCode\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"customAttributes\",\n              \"description\": \"A list of extra information that is added to the checkout.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"LIST\",\n                  \"name\": null,\n                  \"ofType\": {\n                    \"kind\": \"NON_NULL\",\n                    \"name\": null,\n                    \"ofType\": {\n                      \"kind\": \"OBJECT\",\n                      \"name\": \"Attribute\",\n                      \"ofType\": null\n                    }\n                  }\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"customer\",\n              \"description\": \"The customer associated with the checkout.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"OBJECT\",\n                \"name\": \"Customer\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"email\",\n              \"description\": \"The email attached to this checkout.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"String\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"id\",\n              \"description\": \"Globally unique identifier.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"ID\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"lineItems\",\n              \"description\": \"A list of line item objects, each one containing information about an item in the checkout.\",\n              \"args\": [\n                {\n                  \"name\": \"first\",\n                  \"description\": null,\n                  \"type\": {\n                    \"kind\": \"NON_NULL\",\n                    \"name\": null,\n                    \"ofType\": {\n                      \"kind\": \"SCALAR\",\n                      \"name\": \"Int\",\n                      \"ofType\": null\n                    }\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"after\",\n                  \"description\": null,\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"String\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"reverse\",\n                  \"description\": null,\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"Boolean\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": \"false\"\n                }\n              ],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"CheckoutLineItemConnection\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"note\",\n              \"description\": null,\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"String\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"order\",\n              \"description\": \"The resulting order from a paid checkout.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"OBJECT\",\n                \"name\": \"Order\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"orderStatusUrl\",\n              \"description\": \"The Order Status Page for this Checkout, null when checkout is not completed.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"URL\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"paymentDue\",\n              \"description\": \"The amount left to be paid. This is equal to the cost of the line items, taxes and shipping minus discounts and gift cards.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"Money\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"ready\",\n              \"description\": \"Whether or not the Checkout is ready and can be completed. Checkouts may have asynchronous operations that can take time to finish. If you want to complete a checkout or ensure all the fields are populated and up to date, polling is required until the value is true. \",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"Boolean\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"requiresShipping\",\n              \"description\": \"States whether or not the fulfillment requires shipping.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"Boolean\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"shippingAddress\",\n              \"description\": \"The shipping address to where the line items will be shipped.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"OBJECT\",\n                \"name\": \"MailingAddress\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"shippingLine\",\n              \"description\": \"Once a shipping rate is selected by the customer it is transitioned to a `shipping_line` object.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"OBJECT\",\n                \"name\": \"ShippingRate\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"subtotalPrice\",\n              \"description\": \"Price of the checkout before shipping, taxes, and discounts.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"Money\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"taxExempt\",\n              \"description\": \"Specifies if the Checkout is tax exempt.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"Boolean\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"taxesIncluded\",\n              \"description\": \"Specifies if taxes are included in the line item and shipping line prices.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"Boolean\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"totalPrice\",\n              \"description\": \"The sum of all the prices of all the items in the checkout, taxes and discounts included.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"Money\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"totalTax\",\n              \"description\": \"The sum of all the taxes applied to the line items and shipping lines in the checkout.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"Money\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"updatedAt\",\n              \"description\": \"The date and time when the checkout was last updated.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"DateTime\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"webUrl\",\n              \"description\": \"The url pointing to the checkout accessible from the web.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"URL\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"inputFields\": null,\n          \"interfaces\": [\n            {\n              \"kind\": \"INTERFACE\",\n              \"name\": \"Node\",\n              \"ofType\": null\n            }\n          ],\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"OBJECT\",\n          \"name\": \"CheckoutLineItemConnection\",\n          \"description\": null,\n          \"fields\": [\n            {\n              \"name\": \"edges\",\n              \"description\": \"A list of edges.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"LIST\",\n                  \"name\": null,\n                  \"ofType\": {\n                    \"kind\": \"NON_NULL\",\n                    \"name\": null,\n                    \"ofType\": {\n                      \"kind\": \"OBJECT\",\n                      \"name\": \"CheckoutLineItemEdge\",\n                      \"ofType\": null\n                    }\n                  }\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"pageInfo\",\n              \"description\": \"Information to aid in pagination.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"PageInfo\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"inputFields\": null,\n          \"interfaces\": [],\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"OBJECT\",\n          \"name\": \"CheckoutLineItemEdge\",\n          \"description\": null,\n          \"fields\": [\n            {\n              \"name\": \"cursor\",\n              \"description\": \"A cursor for use in pagination.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"String\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"node\",\n              \"description\": \"The item at the end of CheckoutLineItemEdge.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"CheckoutLineItem\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"inputFields\": null,\n          \"interfaces\": [],\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"OBJECT\",\n          \"name\": \"CheckoutLineItem\",\n          \"description\": \"A single line item in the checkout, grouped by variant and attributes.\",\n          \"fields\": [\n            {\n              \"name\": \"customAttributes\",\n              \"description\": \"Extra information in the form of an array of Key-Value pairs about the line item.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"LIST\",\n                  \"name\": null,\n                  \"ofType\": {\n                    \"kind\": \"NON_NULL\",\n                    \"name\": null,\n                    \"ofType\": {\n                      \"kind\": \"OBJECT\",\n                      \"name\": \"Attribute\",\n                      \"ofType\": null\n                    }\n                  }\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"id\",\n              \"description\": \"Globally unique identifier.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"ID\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"quantity\",\n              \"description\": \"The quantity of the line item.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"Int\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"title\",\n              \"description\": \"Title of the line item. Defaults to the product's title.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"String\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"variant\",\n              \"description\": \"Product variant of the line item.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"OBJECT\",\n                \"name\": \"ProductVariant\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"inputFields\": null,\n          \"interfaces\": [\n            {\n              \"kind\": \"INTERFACE\",\n              \"name\": \"Node\",\n              \"ofType\": null\n            }\n          ],\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"OBJECT\",\n          \"name\": \"ShippingRate\",\n          \"description\": \"A shipping rate to be applied to a checkout.\",\n          \"fields\": [\n            {\n              \"name\": \"handle\",\n              \"description\": \"Human-readable unique identifier for this shipping rate.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"String\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"price\",\n              \"description\": \"Price of this shipping rate.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"Money\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"title\",\n              \"description\": \"Title of this shipping rate.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"String\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"inputFields\": null,\n          \"interfaces\": [],\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"OBJECT\",\n          \"name\": \"AvailableShippingRates\",\n          \"description\": \"A collection of available shipping rates for a checkout.\",\n          \"fields\": [\n            {\n              \"name\": \"ready\",\n              \"description\": \"Whether or not the shipping rates are ready.\\nThe `shippingRates` field is `null` when this value is `false`.\\nThis field should be polled until its value becomes `true`.\\n\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"Boolean\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"shippingRates\",\n              \"description\": \"The fetched shipping rates. `null` until the `ready` field is `true`.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"LIST\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"NON_NULL\",\n                  \"name\": null,\n                  \"ofType\": {\n                    \"kind\": \"OBJECT\",\n                    \"name\": \"ShippingRate\",\n                    \"ofType\": null\n                  }\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"inputFields\": null,\n          \"interfaces\": [],\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"OBJECT\",\n          \"name\": \"AppliedGiftCard\",\n          \"description\": \"Details about the gift card used on the checkout.\",\n          \"fields\": [\n            {\n              \"name\": \"amountUsed\",\n              \"description\": \"The amount that was used taken from the Gift Card by applying it.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"Money\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"balance\",\n              \"description\": \"The amount left on the Gift Card.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"Money\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"id\",\n              \"description\": \"Globally unique identifier.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"ID\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"lastCharacters\",\n              \"description\": \"The last characters of the Gift Card code\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"String\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"inputFields\": null,\n          \"interfaces\": [\n            {\n              \"kind\": \"INTERFACE\",\n              \"name\": \"Node\",\n              \"ofType\": null\n            }\n          ],\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"INPUT_OBJECT\",\n          \"name\": \"CheckoutAttributesUpdateInput\",\n          \"description\": \"Specifies the fields required to update a checkout's attributes.\\n\",\n          \"fields\": null,\n          \"inputFields\": [\n            {\n              \"name\": \"note\",\n              \"description\": \"The text of an optional note that a shop owner can attach to the checkout.\",\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"String\",\n                \"ofType\": null\n              },\n              \"defaultValue\": null\n            },\n            {\n              \"name\": \"customAttributes\",\n              \"description\": \"A list of extra information that is added to the checkout.\",\n              \"type\": {\n                \"kind\": \"LIST\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"NON_NULL\",\n                  \"name\": null,\n                  \"ofType\": {\n                    \"kind\": \"INPUT_OBJECT\",\n                    \"name\": \"AttributeInput\",\n                    \"ofType\": null\n                  }\n                }\n              },\n              \"defaultValue\": null\n            },\n            {\n              \"name\": \"allowPartialAddresses\",\n              \"description\": \"Allows setting partial addresses on a Checkout, skipping the full validation of attributes.\\nThe required attributes are city, province, and country.\\nFull validation of the addresses is still done at complete time.\\n\",\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"Boolean\",\n                \"ofType\": null\n              },\n              \"defaultValue\": \"false\"\n            }\n          ],\n          \"interfaces\": null,\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"INPUT_OBJECT\",\n          \"name\": \"AttributeInput\",\n          \"description\": \"Specifies the input fields required for an attribute.\",\n          \"fields\": null,\n          \"inputFields\": [\n            {\n              \"name\": \"key\",\n              \"description\": null,\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"String\",\n                  \"ofType\": null\n                }\n              },\n              \"defaultValue\": null\n            },\n            {\n              \"name\": \"value\",\n              \"description\": null,\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"String\",\n                  \"ofType\": null\n                }\n              },\n              \"defaultValue\": null\n            }\n          ],\n          \"interfaces\": null,\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"OBJECT\",\n          \"name\": \"CheckoutCompleteFreePayload\",\n          \"description\": null,\n          \"fields\": [\n            {\n              \"name\": \"checkout\",\n              \"description\": \"The updated checkout object.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"OBJECT\",\n                \"name\": \"Checkout\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"userErrors\",\n              \"description\": \"List of errors that occurred executing the mutation.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"LIST\",\n                  \"name\": null,\n                  \"ofType\": {\n                    \"kind\": \"NON_NULL\",\n                    \"name\": null,\n                    \"ofType\": {\n                      \"kind\": \"OBJECT\",\n                      \"name\": \"UserError\",\n                      \"ofType\": null\n                    }\n                  }\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"inputFields\": null,\n          \"interfaces\": [],\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"OBJECT\",\n          \"name\": \"CheckoutCompleteWithCreditCardPayload\",\n          \"description\": null,\n          \"fields\": [\n            {\n              \"name\": \"checkout\",\n              \"description\": \"The checkout on which the payment was applied.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"Checkout\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"payment\",\n              \"description\": \"A representation of the attempted payment.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"OBJECT\",\n                \"name\": \"Payment\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"userErrors\",\n              \"description\": \"List of errors that occurred executing the mutation.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"LIST\",\n                  \"name\": null,\n                  \"ofType\": {\n                    \"kind\": \"NON_NULL\",\n                    \"name\": null,\n                    \"ofType\": {\n                      \"kind\": \"OBJECT\",\n                      \"name\": \"UserError\",\n                      \"ofType\": null\n                    }\n                  }\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"inputFields\": null,\n          \"interfaces\": [],\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"OBJECT\",\n          \"name\": \"Payment\",\n          \"description\": \"A payment applied to a checkout.\",\n          \"fields\": [\n            {\n              \"name\": \"amount\",\n              \"description\": \"The amount of the payment.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"Money\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"billingAddress\",\n              \"description\": \"The billing address for the payment.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"OBJECT\",\n                \"name\": \"MailingAddress\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"checkout\",\n              \"description\": \"The checkout to which the payment belongs.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"Checkout\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"creditCard\",\n              \"description\": \"The credit card used for the payment in the case of direct payments.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"OBJECT\",\n                \"name\": \"CreditCard\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"errorMessage\",\n              \"description\": \"An message describing a processing error during asynchronous processing.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"String\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"id\",\n              \"description\": \"Globally unique identifier.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"ID\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"idempotencyKey\",\n              \"description\": \"A client-side generated token to identify a payment and perform idempotent operations.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"String\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"ready\",\n              \"description\": \"Whether or not the payment is still processing asynchronously.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"Boolean\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"test\",\n              \"description\": \"A flag to indicate if the payment is to be done in test mode for gateways that support it.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"Boolean\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"transaction\",\n              \"description\": \"The actual transaction recorded by Shopify after having processed the payment with the gateway.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"OBJECT\",\n                \"name\": \"Transaction\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"inputFields\": null,\n          \"interfaces\": [\n            {\n              \"kind\": \"INTERFACE\",\n              \"name\": \"Node\",\n              \"ofType\": null\n            }\n          ],\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"OBJECT\",\n          \"name\": \"CreditCard\",\n          \"description\": \"Credit card information used for a payment.\",\n          \"fields\": [\n            {\n              \"name\": \"brand\",\n              \"description\": null,\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"String\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"expiryMonth\",\n              \"description\": null,\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"Int\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"expiryYear\",\n              \"description\": null,\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"Int\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"firstDigits\",\n              \"description\": null,\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"String\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"firstName\",\n              \"description\": null,\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"String\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"lastDigits\",\n              \"description\": null,\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"String\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"lastName\",\n              \"description\": null,\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"String\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"maskedNumber\",\n              \"description\": \"Masked credit card number with only the last 4 digits displayed\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"String\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"inputFields\": null,\n          \"interfaces\": [],\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"OBJECT\",\n          \"name\": \"Transaction\",\n          \"description\": \"An object representing exchange of money for a product or service.\",\n          \"fields\": [\n            {\n              \"name\": \"amount\",\n              \"description\": \"The amount of money that the transaction was for.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"Money\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"kind\",\n              \"description\": \"The kind of the transaction.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"ENUM\",\n                  \"name\": \"TransactionKind\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"status\",\n              \"description\": \"The status of the transaction\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"ENUM\",\n                  \"name\": \"TransactionStatus\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"test\",\n              \"description\": \"Whether the transaction was done in test mode or not\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"Boolean\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"inputFields\": null,\n          \"interfaces\": [],\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"ENUM\",\n          \"name\": \"TransactionKind\",\n          \"description\": null,\n          \"fields\": null,\n          \"inputFields\": null,\n          \"interfaces\": null,\n          \"enumValues\": [\n            {\n              \"name\": \"SALE\",\n              \"description\": null,\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"CAPTURE\",\n              \"description\": null,\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"AUTHORIZATION\",\n              \"description\": null,\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"EMV_AUTHORIZATION\",\n              \"description\": null,\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"CHANGE\",\n              \"description\": null,\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"ENUM\",\n          \"name\": \"TransactionStatus\",\n          \"description\": null,\n          \"fields\": null,\n          \"inputFields\": null,\n          \"interfaces\": null,\n          \"enumValues\": [\n            {\n              \"name\": \"PENDING\",\n              \"description\": null,\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"SUCCESS\",\n              \"description\": null,\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"FAILURE\",\n              \"description\": null,\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"ERROR\",\n              \"description\": null,\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"INPUT_OBJECT\",\n          \"name\": \"CreditCardPaymentInput\",\n          \"description\": \"Specifies the fields required to complete a checkout with\\na Shopify vaulted credit card payment.\\n\",\n          \"fields\": null,\n          \"inputFields\": [\n            {\n              \"name\": \"amount\",\n              \"description\": \"The amount of the payment.\",\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"Money\",\n                  \"ofType\": null\n                }\n              },\n              \"defaultValue\": null\n            },\n            {\n              \"name\": \"idempotencyKey\",\n              \"description\": \"A unique client generated key used to avoid duplicate charges. When a duplicate payment is found, the original is returned instead of creating a new one.\",\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"String\",\n                  \"ofType\": null\n                }\n              },\n              \"defaultValue\": null\n            },\n            {\n              \"name\": \"billingAddress\",\n              \"description\": \"The billing address for the payment.\",\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"INPUT_OBJECT\",\n                  \"name\": \"MailingAddressInput\",\n                  \"ofType\": null\n                }\n              },\n              \"defaultValue\": null\n            },\n            {\n              \"name\": \"vaultId\",\n              \"description\": \"The ID returned by Shopify's Card Vault.\",\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"String\",\n                  \"ofType\": null\n                }\n              },\n              \"defaultValue\": null\n            },\n            {\n              \"name\": \"test\",\n              \"description\": \"Executes the payment in test mode if possible. Defaults to `false`.\",\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"Boolean\",\n                \"ofType\": null\n              },\n              \"defaultValue\": \"false\"\n            }\n          ],\n          \"interfaces\": null,\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"INPUT_OBJECT\",\n          \"name\": \"MailingAddressInput\",\n          \"description\": \"Specifies the fields accepted to create or update a mailing address.\",\n          \"fields\": null,\n          \"inputFields\": [\n            {\n              \"name\": \"address1\",\n              \"description\": null,\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"String\",\n                \"ofType\": null\n              },\n              \"defaultValue\": null\n            },\n            {\n              \"name\": \"address2\",\n              \"description\": null,\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"String\",\n                \"ofType\": null\n              },\n              \"defaultValue\": null\n            },\n            {\n              \"name\": \"city\",\n              \"description\": null,\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"String\",\n                \"ofType\": null\n              },\n              \"defaultValue\": null\n            },\n            {\n              \"name\": \"company\",\n              \"description\": null,\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"String\",\n                \"ofType\": null\n              },\n              \"defaultValue\": null\n            },\n            {\n              \"name\": \"country\",\n              \"description\": null,\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"String\",\n                \"ofType\": null\n              },\n              \"defaultValue\": null\n            },\n            {\n              \"name\": \"firstName\",\n              \"description\": null,\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"String\",\n                \"ofType\": null\n              },\n              \"defaultValue\": null\n            },\n            {\n              \"name\": \"lastName\",\n              \"description\": null,\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"String\",\n                \"ofType\": null\n              },\n              \"defaultValue\": null\n            },\n            {\n              \"name\": \"phone\",\n              \"description\": null,\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"String\",\n                \"ofType\": null\n              },\n              \"defaultValue\": null\n            },\n            {\n              \"name\": \"province\",\n              \"description\": null,\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"String\",\n                \"ofType\": null\n              },\n              \"defaultValue\": null\n            },\n            {\n              \"name\": \"zip\",\n              \"description\": null,\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"String\",\n                \"ofType\": null\n              },\n              \"defaultValue\": null\n            }\n          ],\n          \"interfaces\": null,\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"OBJECT\",\n          \"name\": \"CheckoutCompleteWithTokenizedPaymentPayload\",\n          \"description\": null,\n          \"fields\": [\n            {\n              \"name\": \"checkout\",\n              \"description\": \"The checkout on which the payment was applied.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"Checkout\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"payment\",\n              \"description\": \"A representation of the attempted payment.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"OBJECT\",\n                \"name\": \"Payment\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"userErrors\",\n              \"description\": \"List of errors that occurred executing the mutation.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"LIST\",\n                  \"name\": null,\n                  \"ofType\": {\n                    \"kind\": \"NON_NULL\",\n                    \"name\": null,\n                    \"ofType\": {\n                      \"kind\": \"OBJECT\",\n                      \"name\": \"UserError\",\n                      \"ofType\": null\n                    }\n                  }\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"inputFields\": null,\n          \"interfaces\": [],\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"INPUT_OBJECT\",\n          \"name\": \"TokenizedPaymentInput\",\n          \"description\": \"Specifies the fields required to complete a checkout with\\na tokenized payment.\\n\",\n          \"fields\": null,\n          \"inputFields\": [\n            {\n              \"name\": \"amount\",\n              \"description\": \"The amount of the payment.\",\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"Money\",\n                  \"ofType\": null\n                }\n              },\n              \"defaultValue\": null\n            },\n            {\n              \"name\": \"idempotencyKey\",\n              \"description\": \"A unique client generated key used to avoid duplicate charges. When a duplicate payment is found, the original is returned instead of creating a new one.\",\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"String\",\n                  \"ofType\": null\n                }\n              },\n              \"defaultValue\": null\n            },\n            {\n              \"name\": \"billingAddress\",\n              \"description\": \"The billing address for the payment.\",\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"INPUT_OBJECT\",\n                  \"name\": \"MailingAddressInput\",\n                  \"ofType\": null\n                }\n              },\n              \"defaultValue\": null\n            },\n            {\n              \"name\": \"type\",\n              \"description\": \"The type of payment token.\",\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"String\",\n                  \"ofType\": null\n                }\n              },\n              \"defaultValue\": null\n            },\n            {\n              \"name\": \"paymentData\",\n              \"description\": \"A simple string or JSON containing the required payment data for the tokenized payment.\",\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"String\",\n                  \"ofType\": null\n                }\n              },\n              \"defaultValue\": null\n            },\n            {\n              \"name\": \"test\",\n              \"description\": \"Executes the payment in test mode if possible. Defaults to `false`.\",\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"Boolean\",\n                \"ofType\": null\n              },\n              \"defaultValue\": \"false\"\n            },\n            {\n              \"name\": \"identifier\",\n              \"description\": \"Public Hash Key used for AndroidPay payments only.\",\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"String\",\n                \"ofType\": null\n              },\n              \"defaultValue\": null\n            }\n          ],\n          \"interfaces\": null,\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"OBJECT\",\n          \"name\": \"CheckoutCreatePayload\",\n          \"description\": null,\n          \"fields\": [\n            {\n              \"name\": \"checkout\",\n              \"description\": \"The new checkout object.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"OBJECT\",\n                \"name\": \"Checkout\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"userErrors\",\n              \"description\": \"List of errors that occurred executing the mutation.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"LIST\",\n                  \"name\": null,\n                  \"ofType\": {\n                    \"kind\": \"NON_NULL\",\n                    \"name\": null,\n                    \"ofType\": {\n                      \"kind\": \"OBJECT\",\n                      \"name\": \"UserError\",\n                      \"ofType\": null\n                    }\n                  }\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"inputFields\": null,\n          \"interfaces\": [],\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"INPUT_OBJECT\",\n          \"name\": \"CheckoutCreateInput\",\n          \"description\": \"Specifies the fields required to create a checkout.\\n\",\n          \"fields\": null,\n          \"inputFields\": [\n            {\n              \"name\": \"email\",\n              \"description\": \"The email with which the customer wants to checkout.\",\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"String\",\n                \"ofType\": null\n              },\n              \"defaultValue\": null\n            },\n            {\n              \"name\": \"lineItems\",\n              \"description\": \"A list of line item objects, each one containing information about an item in the checkout.\",\n              \"type\": {\n                \"kind\": \"LIST\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"NON_NULL\",\n                  \"name\": null,\n                  \"ofType\": {\n                    \"kind\": \"INPUT_OBJECT\",\n                    \"name\": \"CheckoutLineItemInput\",\n                    \"ofType\": null\n                  }\n                }\n              },\n              \"defaultValue\": null\n            },\n            {\n              \"name\": \"shippingAddress\",\n              \"description\": \"The shipping address to where the line items will be shipped.\",\n              \"type\": {\n                \"kind\": \"INPUT_OBJECT\",\n                \"name\": \"MailingAddressInput\",\n                \"ofType\": null\n              },\n              \"defaultValue\": null\n            },\n            {\n              \"name\": \"note\",\n              \"description\": \"The text of an optional note that a shop owner can attach to the checkout.\",\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"String\",\n                \"ofType\": null\n              },\n              \"defaultValue\": null\n            },\n            {\n              \"name\": \"customAttributes\",\n              \"description\": \"A list of extra information that is added to the checkout.\",\n              \"type\": {\n                \"kind\": \"LIST\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"NON_NULL\",\n                  \"name\": null,\n                  \"ofType\": {\n                    \"kind\": \"INPUT_OBJECT\",\n                    \"name\": \"AttributeInput\",\n                    \"ofType\": null\n                  }\n                }\n              },\n              \"defaultValue\": null\n            },\n            {\n              \"name\": \"allowPartialAddresses\",\n              \"description\": \"Allows setting partial addresses on a Checkout, skipping the full validation of attributes.\\nThe required attributes are city, province, and country.\\nFull validation of addresses is still done at complete time.\\n\",\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"Boolean\",\n                \"ofType\": null\n              },\n              \"defaultValue\": null\n            }\n          ],\n          \"interfaces\": null,\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"INPUT_OBJECT\",\n          \"name\": \"CheckoutLineItemInput\",\n          \"description\": \"Specifies the input fields to create a line item on a checkout.\",\n          \"fields\": null,\n          \"inputFields\": [\n            {\n              \"name\": \"customAttributes\",\n              \"description\": \"Extra information in the form of an array of Key-Value pairs about the line item.\",\n              \"type\": {\n                \"kind\": \"LIST\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"NON_NULL\",\n                  \"name\": null,\n                  \"ofType\": {\n                    \"kind\": \"INPUT_OBJECT\",\n                    \"name\": \"AttributeInput\",\n                    \"ofType\": null\n                  }\n                }\n              },\n              \"defaultValue\": null\n            },\n            {\n              \"name\": \"quantity\",\n              \"description\": \"The quantity of the line item.\",\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"Int\",\n                  \"ofType\": null\n                }\n              },\n              \"defaultValue\": null\n            },\n            {\n              \"name\": \"variantId\",\n              \"description\": \"The identifier of the product variant for the line item.\",\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"ID\",\n                  \"ofType\": null\n                }\n              },\n              \"defaultValue\": null\n            }\n          ],\n          \"interfaces\": null,\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"OBJECT\",\n          \"name\": \"CheckoutCustomerAssociatePayload\",\n          \"description\": null,\n          \"fields\": [\n            {\n              \"name\": \"checkout\",\n              \"description\": \"The updated checkout object.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"Checkout\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"userErrors\",\n              \"description\": \"List of errors that occurred executing the mutation.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"LIST\",\n                  \"name\": null,\n                  \"ofType\": {\n                    \"kind\": \"NON_NULL\",\n                    \"name\": null,\n                    \"ofType\": {\n                      \"kind\": \"OBJECT\",\n                      \"name\": \"UserError\",\n                      \"ofType\": null\n                    }\n                  }\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"inputFields\": null,\n          \"interfaces\": [],\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"OBJECT\",\n          \"name\": \"CheckoutCustomerDisassociatePayload\",\n          \"description\": null,\n          \"fields\": [\n            {\n              \"name\": \"checkout\",\n              \"description\": \"The updated checkout object.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"Checkout\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"userErrors\",\n              \"description\": \"List of errors that occurred executing the mutation.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"LIST\",\n                  \"name\": null,\n                  \"ofType\": {\n                    \"kind\": \"NON_NULL\",\n                    \"name\": null,\n                    \"ofType\": {\n                      \"kind\": \"OBJECT\",\n                      \"name\": \"UserError\",\n                      \"ofType\": null\n                    }\n                  }\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"inputFields\": null,\n          \"interfaces\": [],\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"OBJECT\",\n          \"name\": \"CheckoutEmailUpdatePayload\",\n          \"description\": null,\n          \"fields\": [\n            {\n              \"name\": \"checkout\",\n              \"description\": \"The checkout object with the updated email.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"Checkout\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"userErrors\",\n              \"description\": \"List of errors that occurred executing the mutation.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"LIST\",\n                  \"name\": null,\n                  \"ofType\": {\n                    \"kind\": \"NON_NULL\",\n                    \"name\": null,\n                    \"ofType\": {\n                      \"kind\": \"OBJECT\",\n                      \"name\": \"UserError\",\n                      \"ofType\": null\n                    }\n                  }\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"inputFields\": null,\n          \"interfaces\": [],\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"OBJECT\",\n          \"name\": \"CheckoutGiftCardApplyPayload\",\n          \"description\": null,\n          \"fields\": [\n            {\n              \"name\": \"checkout\",\n              \"description\": \"The updated checkout object.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"Checkout\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"userErrors\",\n              \"description\": \"List of errors that occurred executing the mutation.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"LIST\",\n                  \"name\": null,\n                  \"ofType\": {\n                    \"kind\": \"NON_NULL\",\n                    \"name\": null,\n                    \"ofType\": {\n                      \"kind\": \"OBJECT\",\n                      \"name\": \"UserError\",\n                      \"ofType\": null\n                    }\n                  }\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"inputFields\": null,\n          \"interfaces\": [],\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"OBJECT\",\n          \"name\": \"CheckoutGiftCardRemovePayload\",\n          \"description\": null,\n          \"fields\": [\n            {\n              \"name\": \"checkout\",\n              \"description\": \"The updated checkout object.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"Checkout\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"userErrors\",\n              \"description\": \"List of errors that occurred executing the mutation.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"LIST\",\n                  \"name\": null,\n                  \"ofType\": {\n                    \"kind\": \"NON_NULL\",\n                    \"name\": null,\n                    \"ofType\": {\n                      \"kind\": \"OBJECT\",\n                      \"name\": \"UserError\",\n                      \"ofType\": null\n                    }\n                  }\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"inputFields\": null,\n          \"interfaces\": [],\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"OBJECT\",\n          \"name\": \"CheckoutLineItemsAddPayload\",\n          \"description\": null,\n          \"fields\": [\n            {\n              \"name\": \"checkout\",\n              \"description\": \"The updated checkout object.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"OBJECT\",\n                \"name\": \"Checkout\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"userErrors\",\n              \"description\": \"List of errors that occurred executing the mutation.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"LIST\",\n                  \"name\": null,\n                  \"ofType\": {\n                    \"kind\": \"NON_NULL\",\n                    \"name\": null,\n                    \"ofType\": {\n                      \"kind\": \"OBJECT\",\n                      \"name\": \"UserError\",\n                      \"ofType\": null\n                    }\n                  }\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"inputFields\": null,\n          \"interfaces\": [],\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"OBJECT\",\n          \"name\": \"CheckoutLineItemsRemovePayload\",\n          \"description\": null,\n          \"fields\": [\n            {\n              \"name\": \"checkout\",\n              \"description\": null,\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"OBJECT\",\n                \"name\": \"Checkout\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"userErrors\",\n              \"description\": \"List of errors that occurred executing the mutation.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"LIST\",\n                  \"name\": null,\n                  \"ofType\": {\n                    \"kind\": \"NON_NULL\",\n                    \"name\": null,\n                    \"ofType\": {\n                      \"kind\": \"OBJECT\",\n                      \"name\": \"UserError\",\n                      \"ofType\": null\n                    }\n                  }\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"inputFields\": null,\n          \"interfaces\": [],\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"OBJECT\",\n          \"name\": \"CheckoutLineItemsUpdatePayload\",\n          \"description\": null,\n          \"fields\": [\n            {\n              \"name\": \"checkout\",\n              \"description\": \"The updated checkout object.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"OBJECT\",\n                \"name\": \"Checkout\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"userErrors\",\n              \"description\": \"List of errors that occurred executing the mutation.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"LIST\",\n                  \"name\": null,\n                  \"ofType\": {\n                    \"kind\": \"NON_NULL\",\n                    \"name\": null,\n                    \"ofType\": {\n                      \"kind\": \"OBJECT\",\n                      \"name\": \"UserError\",\n                      \"ofType\": null\n                    }\n                  }\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"inputFields\": null,\n          \"interfaces\": [],\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"INPUT_OBJECT\",\n          \"name\": \"CheckoutLineItemUpdateInput\",\n          \"description\": \"Specifies the input fields to update a line item on the checkout.\",\n          \"fields\": null,\n          \"inputFields\": [\n            {\n              \"name\": \"id\",\n              \"description\": null,\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"ID\",\n                \"ofType\": null\n              },\n              \"defaultValue\": null\n            },\n            {\n              \"name\": \"variantId\",\n              \"description\": \"The variant identifier of the line item.\",\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"ID\",\n                \"ofType\": null\n              },\n              \"defaultValue\": null\n            },\n            {\n              \"name\": \"quantity\",\n              \"description\": \"The quantity of the line item.\",\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"Int\",\n                \"ofType\": null\n              },\n              \"defaultValue\": null\n            },\n            {\n              \"name\": \"customAttributes\",\n              \"description\": \"Extra information in the form of an array of Key-Value pairs about the line item.\",\n              \"type\": {\n                \"kind\": \"LIST\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"NON_NULL\",\n                  \"name\": null,\n                  \"ofType\": {\n                    \"kind\": \"INPUT_OBJECT\",\n                    \"name\": \"AttributeInput\",\n                    \"ofType\": null\n                  }\n                }\n              },\n              \"defaultValue\": null\n            }\n          ],\n          \"interfaces\": null,\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"OBJECT\",\n          \"name\": \"CheckoutShippingAddressUpdatePayload\",\n          \"description\": null,\n          \"fields\": [\n            {\n              \"name\": \"checkout\",\n              \"description\": \"The updated checkout object.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"Checkout\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"userErrors\",\n              \"description\": \"List of errors that occurred executing the mutation.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"LIST\",\n                  \"name\": null,\n                  \"ofType\": {\n                    \"kind\": \"NON_NULL\",\n                    \"name\": null,\n                    \"ofType\": {\n                      \"kind\": \"OBJECT\",\n                      \"name\": \"UserError\",\n                      \"ofType\": null\n                    }\n                  }\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"inputFields\": null,\n          \"interfaces\": [],\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"OBJECT\",\n          \"name\": \"CheckoutShippingLineUpdatePayload\",\n          \"description\": null,\n          \"fields\": [\n            {\n              \"name\": \"checkout\",\n              \"description\": \"The updated checkout object.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"OBJECT\",\n                \"name\": \"Checkout\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"userErrors\",\n              \"description\": \"List of errors that occurred executing the mutation.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"LIST\",\n                  \"name\": null,\n                  \"ofType\": {\n                    \"kind\": \"NON_NULL\",\n                    \"name\": null,\n                    \"ofType\": {\n                      \"kind\": \"OBJECT\",\n                      \"name\": \"UserError\",\n                      \"ofType\": null\n                    }\n                  }\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"inputFields\": null,\n          \"interfaces\": [],\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"OBJECT\",\n          \"name\": \"CustomerAccessTokenCreatePayload\",\n          \"description\": null,\n          \"fields\": [\n            {\n              \"name\": \"customerAccessToken\",\n              \"description\": \"The newly created customer access token object.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"OBJECT\",\n                \"name\": \"CustomerAccessToken\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"userErrors\",\n              \"description\": \"List of errors that occurred executing the mutation.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"LIST\",\n                  \"name\": null,\n                  \"ofType\": {\n                    \"kind\": \"NON_NULL\",\n                    \"name\": null,\n                    \"ofType\": {\n                      \"kind\": \"OBJECT\",\n                      \"name\": \"UserError\",\n                      \"ofType\": null\n                    }\n                  }\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"inputFields\": null,\n          \"interfaces\": [],\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"OBJECT\",\n          \"name\": \"CustomerAccessToken\",\n          \"description\": \"A CustomerAccessToken represents the unique token required to make modifications to the customer object.\",\n          \"fields\": [\n            {\n              \"name\": \"accessToken\",\n              \"description\": \"The customer’s access token.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"String\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"expiresAt\",\n              \"description\": \"The date and time when the customer access token expires.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"DateTime\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"inputFields\": null,\n          \"interfaces\": [],\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"INPUT_OBJECT\",\n          \"name\": \"CustomerAccessTokenCreateInput\",\n          \"description\": \"Specifies the input fields required to create a customer access token.\",\n          \"fields\": null,\n          \"inputFields\": [\n            {\n              \"name\": \"email\",\n              \"description\": \"The email associated to the customer.\",\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"String\",\n                  \"ofType\": null\n                }\n              },\n              \"defaultValue\": null\n            },\n            {\n              \"name\": \"password\",\n              \"description\": \"The login password to be used by the customer.\",\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"String\",\n                  \"ofType\": null\n                }\n              },\n              \"defaultValue\": null\n            }\n          ],\n          \"interfaces\": null,\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"OBJECT\",\n          \"name\": \"CustomerAccessTokenDeletePayload\",\n          \"description\": null,\n          \"fields\": [\n            {\n              \"name\": \"deletedAccessToken\",\n              \"description\": \"The destroyed access token.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"String\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"deletedCustomerAccessTokenId\",\n              \"description\": \"ID of the destroyed customer access token.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"String\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"userErrors\",\n              \"description\": \"List of errors that occurred executing the mutation.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"LIST\",\n                  \"name\": null,\n                  \"ofType\": {\n                    \"kind\": \"NON_NULL\",\n                    \"name\": null,\n                    \"ofType\": {\n                      \"kind\": \"OBJECT\",\n                      \"name\": \"UserError\",\n                      \"ofType\": null\n                    }\n                  }\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"inputFields\": null,\n          \"interfaces\": [],\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"OBJECT\",\n          \"name\": \"CustomerAccessTokenRenewPayload\",\n          \"description\": null,\n          \"fields\": [\n            {\n              \"name\": \"customerAccessToken\",\n              \"description\": \"The renewed customer access token object.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"OBJECT\",\n                \"name\": \"CustomerAccessToken\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"userErrors\",\n              \"description\": \"List of errors that occurred executing the mutation.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"LIST\",\n                  \"name\": null,\n                  \"ofType\": {\n                    \"kind\": \"NON_NULL\",\n                    \"name\": null,\n                    \"ofType\": {\n                      \"kind\": \"OBJECT\",\n                      \"name\": \"UserError\",\n                      \"ofType\": null\n                    }\n                  }\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"inputFields\": null,\n          \"interfaces\": [],\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"OBJECT\",\n          \"name\": \"CustomerActivatePayload\",\n          \"description\": null,\n          \"fields\": [\n            {\n              \"name\": \"customer\",\n              \"description\": \"The customer object.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"OBJECT\",\n                \"name\": \"Customer\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"userErrors\",\n              \"description\": \"List of errors that occurred executing the mutation.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"LIST\",\n                  \"name\": null,\n                  \"ofType\": {\n                    \"kind\": \"NON_NULL\",\n                    \"name\": null,\n                    \"ofType\": {\n                      \"kind\": \"OBJECT\",\n                      \"name\": \"UserError\",\n                      \"ofType\": null\n                    }\n                  }\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"inputFields\": null,\n          \"interfaces\": [],\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"INPUT_OBJECT\",\n          \"name\": \"CustomerActivateInput\",\n          \"description\": \"Specifies the input fields required to activate a customer.\",\n          \"fields\": null,\n          \"inputFields\": [\n            {\n              \"name\": \"activationToken\",\n              \"description\": \"The activation token required to activate the customer\",\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"String\",\n                  \"ofType\": null\n                }\n              },\n              \"defaultValue\": null\n            },\n            {\n              \"name\": \"password\",\n              \"description\": \"The login password used by the customer.\",\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"String\",\n                  \"ofType\": null\n                }\n              },\n              \"defaultValue\": null\n            }\n          ],\n          \"interfaces\": null,\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"OBJECT\",\n          \"name\": \"CustomerAddressCreatePayload\",\n          \"description\": null,\n          \"fields\": [\n            {\n              \"name\": \"customerAddress\",\n              \"description\": \"The new customer address object.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"OBJECT\",\n                \"name\": \"MailingAddress\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"userErrors\",\n              \"description\": \"List of errors that occurred executing the mutation.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"LIST\",\n                  \"name\": null,\n                  \"ofType\": {\n                    \"kind\": \"NON_NULL\",\n                    \"name\": null,\n                    \"ofType\": {\n                      \"kind\": \"OBJECT\",\n                      \"name\": \"UserError\",\n                      \"ofType\": null\n                    }\n                  }\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"inputFields\": null,\n          \"interfaces\": [],\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"OBJECT\",\n          \"name\": \"CustomerAddressDeletePayload\",\n          \"description\": null,\n          \"fields\": [\n            {\n              \"name\": \"deletedCustomerAddressId\",\n              \"description\": \"ID of the deleted customer address.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"String\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"userErrors\",\n              \"description\": \"List of errors that occurred executing the mutation.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"LIST\",\n                  \"name\": null,\n                  \"ofType\": {\n                    \"kind\": \"NON_NULL\",\n                    \"name\": null,\n                    \"ofType\": {\n                      \"kind\": \"OBJECT\",\n                      \"name\": \"UserError\",\n                      \"ofType\": null\n                    }\n                  }\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"inputFields\": null,\n          \"interfaces\": [],\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"OBJECT\",\n          \"name\": \"CustomerAddressUpdatePayload\",\n          \"description\": null,\n          \"fields\": [\n            {\n              \"name\": \"customerAddress\",\n              \"description\": \"The customer’s updated mailing address.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"OBJECT\",\n                \"name\": \"MailingAddress\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"userErrors\",\n              \"description\": \"List of errors that occurred executing the mutation.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"LIST\",\n                  \"name\": null,\n                  \"ofType\": {\n                    \"kind\": \"NON_NULL\",\n                    \"name\": null,\n                    \"ofType\": {\n                      \"kind\": \"OBJECT\",\n                      \"name\": \"UserError\",\n                      \"ofType\": null\n                    }\n                  }\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"inputFields\": null,\n          \"interfaces\": [],\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"OBJECT\",\n          \"name\": \"CustomerCreatePayload\",\n          \"description\": null,\n          \"fields\": [\n            {\n              \"name\": \"customer\",\n              \"description\": \"The created customer object.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"OBJECT\",\n                \"name\": \"Customer\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"userErrors\",\n              \"description\": \"List of errors that occurred executing the mutation.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"LIST\",\n                  \"name\": null,\n                  \"ofType\": {\n                    \"kind\": \"NON_NULL\",\n                    \"name\": null,\n                    \"ofType\": {\n                      \"kind\": \"OBJECT\",\n                      \"name\": \"UserError\",\n                      \"ofType\": null\n                    }\n                  }\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"inputFields\": null,\n          \"interfaces\": [],\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"INPUT_OBJECT\",\n          \"name\": \"CustomerCreateInput\",\n          \"description\": \"Specifies the fields required to create a new Customer.\",\n          \"fields\": null,\n          \"inputFields\": [\n            {\n              \"name\": \"firstName\",\n              \"description\": \"The customer’s first name.\",\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"String\",\n                \"ofType\": null\n              },\n              \"defaultValue\": null\n            },\n            {\n              \"name\": \"lastName\",\n              \"description\": \"The customer’s last name.\",\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"String\",\n                \"ofType\": null\n              },\n              \"defaultValue\": null\n            },\n            {\n              \"name\": \"email\",\n              \"description\": \"The customer’s email.\",\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"String\",\n                  \"ofType\": null\n                }\n              },\n              \"defaultValue\": null\n            },\n            {\n              \"name\": \"phone\",\n              \"description\": \"The customer’s phone number.\",\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"String\",\n                \"ofType\": null\n              },\n              \"defaultValue\": null\n            },\n            {\n              \"name\": \"password\",\n              \"description\": \"The login password used by the customer.\",\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"String\",\n                  \"ofType\": null\n                }\n              },\n              \"defaultValue\": null\n            },\n            {\n              \"name\": \"acceptsMarketing\",\n              \"description\": \"Indicates whether the customer has consented to be sent marketing material via email.\",\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"Boolean\",\n                \"ofType\": null\n              },\n              \"defaultValue\": null\n            }\n          ],\n          \"interfaces\": null,\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"OBJECT\",\n          \"name\": \"CustomerRecoverPayload\",\n          \"description\": null,\n          \"fields\": [\n            {\n              \"name\": \"userErrors\",\n              \"description\": \"List of errors that occurred executing the mutation.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"LIST\",\n                  \"name\": null,\n                  \"ofType\": {\n                    \"kind\": \"NON_NULL\",\n                    \"name\": null,\n                    \"ofType\": {\n                      \"kind\": \"OBJECT\",\n                      \"name\": \"UserError\",\n                      \"ofType\": null\n                    }\n                  }\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"inputFields\": null,\n          \"interfaces\": [],\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"OBJECT\",\n          \"name\": \"CustomerResetPayload\",\n          \"description\": null,\n          \"fields\": [\n            {\n              \"name\": \"customer\",\n              \"description\": \"The customer object which was reset.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"OBJECT\",\n                \"name\": \"Customer\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"userErrors\",\n              \"description\": \"List of errors that occurred executing the mutation.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"LIST\",\n                  \"name\": null,\n                  \"ofType\": {\n                    \"kind\": \"NON_NULL\",\n                    \"name\": null,\n                    \"ofType\": {\n                      \"kind\": \"OBJECT\",\n                      \"name\": \"UserError\",\n                      \"ofType\": null\n                    }\n                  }\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"inputFields\": null,\n          \"interfaces\": [],\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"INPUT_OBJECT\",\n          \"name\": \"CustomerResetInput\",\n          \"description\": \"Specifies the fields required to reset a Customer’s password.\",\n          \"fields\": null,\n          \"inputFields\": [\n            {\n              \"name\": \"resetToken\",\n              \"description\": \"The reset token required to reset the customer’s password.\",\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"String\",\n                  \"ofType\": null\n                }\n              },\n              \"defaultValue\": null\n            },\n            {\n              \"name\": \"password\",\n              \"description\": \"New password that will be set as part of the reset password process.\",\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"String\",\n                  \"ofType\": null\n                }\n              },\n              \"defaultValue\": null\n            }\n          ],\n          \"interfaces\": null,\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"OBJECT\",\n          \"name\": \"CustomerUpdatePayload\",\n          \"description\": null,\n          \"fields\": [\n            {\n              \"name\": \"customer\",\n              \"description\": \"The updated customer object.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"OBJECT\",\n                \"name\": \"Customer\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"userErrors\",\n              \"description\": \"List of errors that occurred executing the mutation.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"LIST\",\n                  \"name\": null,\n                  \"ofType\": {\n                    \"kind\": \"NON_NULL\",\n                    \"name\": null,\n                    \"ofType\": {\n                      \"kind\": \"OBJECT\",\n                      \"name\": \"UserError\",\n                      \"ofType\": null\n                    }\n                  }\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"inputFields\": null,\n          \"interfaces\": [],\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"INPUT_OBJECT\",\n          \"name\": \"CustomerUpdateInput\",\n          \"description\": \"Specifies the fields required to update the Customer information.\",\n          \"fields\": null,\n          \"inputFields\": [\n            {\n              \"name\": \"firstName\",\n              \"description\": \"The customer’s first name.\",\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"String\",\n                \"ofType\": null\n              },\n              \"defaultValue\": null\n            },\n            {\n              \"name\": \"lastName\",\n              \"description\": \"The customer’s last name.\",\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"String\",\n                \"ofType\": null\n              },\n              \"defaultValue\": null\n            },\n            {\n              \"name\": \"email\",\n              \"description\": \"The customer’s email.\",\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"String\",\n                \"ofType\": null\n              },\n              \"defaultValue\": null\n            },\n            {\n              \"name\": \"phone\",\n              \"description\": \"The customer’s phone number.\",\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"String\",\n                \"ofType\": null\n              },\n              \"defaultValue\": null\n            },\n            {\n              \"name\": \"password\",\n              \"description\": \"The login password used by the customer.\",\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"String\",\n                \"ofType\": null\n              },\n              \"defaultValue\": null\n            },\n            {\n              \"name\": \"acceptsMarketing\",\n              \"description\": \"Indicates whether the customer has consented to be sent marketing material via email.\",\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"Boolean\",\n                \"ofType\": null\n              },\n              \"defaultValue\": null\n            }\n          ],\n          \"interfaces\": null,\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"OBJECT\",\n          \"name\": \"__Schema\",\n          \"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.\",\n          \"fields\": [\n            {\n              \"name\": \"directives\",\n              \"description\": \"A list of all directives supported by this server.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"LIST\",\n                  \"name\": null,\n                  \"ofType\": {\n                    \"kind\": \"NON_NULL\",\n                    \"name\": null,\n                    \"ofType\": {\n                      \"kind\": \"OBJECT\",\n                      \"name\": \"__Directive\",\n                      \"ofType\": null\n                    }\n                  }\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"mutationType\",\n              \"description\": \"If this server supports mutation, the type that mutation operations will be rooted at.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"OBJECT\",\n                \"name\": \"__Type\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"queryType\",\n              \"description\": \"The type that query operations will be rooted at.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"__Type\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"subscriptionType\",\n              \"description\": \"If this server support subscription, the type that subscription operations will be rooted at.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"OBJECT\",\n                \"name\": \"__Type\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"types\",\n              \"description\": \"A list of all types supported by this server.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"LIST\",\n                  \"name\": null,\n                  \"ofType\": {\n                    \"kind\": \"NON_NULL\",\n                    \"name\": null,\n                    \"ofType\": {\n                      \"kind\": \"OBJECT\",\n                      \"name\": \"__Type\",\n                      \"ofType\": null\n                    }\n                  }\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"inputFields\": null,\n          \"interfaces\": [],\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"OBJECT\",\n          \"name\": \"__Type\",\n          \"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 and description, 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.\",\n          \"fields\": [\n            {\n              \"name\": \"description\",\n              \"description\": null,\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"String\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"enumValues\",\n              \"description\": null,\n              \"args\": [\n                {\n                  \"name\": \"includeDeprecated\",\n                  \"description\": null,\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"Boolean\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": \"false\"\n                }\n              ],\n              \"type\": {\n                \"kind\": \"LIST\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"NON_NULL\",\n                  \"name\": null,\n                  \"ofType\": {\n                    \"kind\": \"OBJECT\",\n                    \"name\": \"__EnumValue\",\n                    \"ofType\": null\n                  }\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"fields\",\n              \"description\": null,\n              \"args\": [\n                {\n                  \"name\": \"includeDeprecated\",\n                  \"description\": null,\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"Boolean\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": \"false\"\n                }\n              ],\n              \"type\": {\n                \"kind\": \"LIST\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"NON_NULL\",\n                  \"name\": null,\n                  \"ofType\": {\n                    \"kind\": \"OBJECT\",\n                    \"name\": \"__Field\",\n                    \"ofType\": null\n                  }\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"inputFields\",\n              \"description\": null,\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"LIST\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"NON_NULL\",\n                  \"name\": null,\n                  \"ofType\": {\n                    \"kind\": \"OBJECT\",\n                    \"name\": \"__InputValue\",\n                    \"ofType\": null\n                  }\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"interfaces\",\n              \"description\": null,\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"LIST\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"NON_NULL\",\n                  \"name\": null,\n                  \"ofType\": {\n                    \"kind\": \"OBJECT\",\n                    \"name\": \"__Type\",\n                    \"ofType\": null\n                  }\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"kind\",\n              \"description\": null,\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"ENUM\",\n                  \"name\": \"__TypeKind\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"name\",\n              \"description\": null,\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"String\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"ofType\",\n              \"description\": null,\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"OBJECT\",\n                \"name\": \"__Type\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"possibleTypes\",\n              \"description\": null,\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"LIST\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"NON_NULL\",\n                  \"name\": null,\n                  \"ofType\": {\n                    \"kind\": \"OBJECT\",\n                    \"name\": \"__Type\",\n                    \"ofType\": null\n                  }\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"inputFields\": null,\n          \"interfaces\": [],\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"ENUM\",\n          \"name\": \"__TypeKind\",\n          \"description\": \"An enum describing what kind of type a given `__Type` is.\",\n          \"fields\": null,\n          \"inputFields\": null,\n          \"interfaces\": null,\n          \"enumValues\": [\n            {\n              \"name\": \"SCALAR\",\n              \"description\": \"Indicates this type is a scalar.\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"OBJECT\",\n              \"description\": \"Indicates this type is an object. `fields` and `interfaces` are valid fields.\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"INTERFACE\",\n              \"description\": \"Indicates this type is an interface. `fields` and `possibleTypes` are valid fields.\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"UNION\",\n              \"description\": \"Indicates this type is a union. `possibleTypes` is a valid field.\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"ENUM\",\n              \"description\": \"Indicates this type is an enum. `enumValues` is a valid field.\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"INPUT_OBJECT\",\n              \"description\": \"Indicates this type is an input object. `inputFields` is a valid field.\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"LIST\",\n              \"description\": \"Indicates this type is a list. `ofType` is a valid field.\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"NON_NULL\",\n              \"description\": \"Indicates this type is a non-null. `ofType` is a valid field.\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"OBJECT\",\n          \"name\": \"__Field\",\n          \"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.\",\n          \"fields\": [\n            {\n              \"name\": \"accessRestrictedReason\",\n              \"description\": null,\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"String\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"args\",\n              \"description\": null,\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"LIST\",\n                  \"name\": null,\n                  \"ofType\": {\n                    \"kind\": \"NON_NULL\",\n                    \"name\": null,\n                    \"ofType\": {\n                      \"kind\": \"OBJECT\",\n                      \"name\": \"__InputValue\",\n                      \"ofType\": null\n                    }\n                  }\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"deprecationReason\",\n              \"description\": null,\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"String\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"description\",\n              \"description\": null,\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"String\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"isAccessRestricted\",\n              \"description\": null,\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"Boolean\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"isDeprecated\",\n              \"description\": null,\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"Boolean\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"name\",\n              \"description\": null,\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"String\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"type\",\n              \"description\": null,\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"__Type\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"inputFields\": null,\n          \"interfaces\": [],\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"OBJECT\",\n          \"name\": \"__InputValue\",\n          \"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.\",\n          \"fields\": [\n            {\n              \"name\": \"defaultValue\",\n              \"description\": \"A GraphQL-formatted string representing the default value for this input value.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"String\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"description\",\n              \"description\": null,\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"String\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"name\",\n              \"description\": null,\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"String\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"type\",\n              \"description\": null,\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"__Type\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"inputFields\": null,\n          \"interfaces\": [],\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"OBJECT\",\n          \"name\": \"__EnumValue\",\n          \"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.\",\n          \"fields\": [\n            {\n              \"name\": \"deprecationReason\",\n              \"description\": null,\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"String\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"description\",\n              \"description\": null,\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"String\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"isDeprecated\",\n              \"description\": null,\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"Boolean\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"name\",\n              \"description\": null,\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"String\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"inputFields\": null,\n          \"interfaces\": [],\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"OBJECT\",\n          \"name\": \"__Directive\",\n          \"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.\",\n          \"fields\": [\n            {\n              \"name\": \"args\",\n              \"description\": null,\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"LIST\",\n                  \"name\": null,\n                  \"ofType\": {\n                    \"kind\": \"NON_NULL\",\n                    \"name\": null,\n                    \"ofType\": {\n                      \"kind\": \"OBJECT\",\n                      \"name\": \"__InputValue\",\n                      \"ofType\": null\n                    }\n                  }\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"description\",\n              \"description\": null,\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"String\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"locations\",\n              \"description\": null,\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"LIST\",\n                  \"name\": null,\n                  \"ofType\": {\n                    \"kind\": \"NON_NULL\",\n                    \"name\": null,\n                    \"ofType\": {\n                      \"kind\": \"ENUM\",\n                      \"name\": \"__DirectiveLocation\",\n                      \"ofType\": null\n                    }\n                  }\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"name\",\n              \"description\": null,\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"String\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"onField\",\n              \"description\": null,\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"Boolean\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": true,\n              \"deprecationReason\": \"Use `locations`.\"\n            },\n            {\n              \"name\": \"onFragment\",\n              \"description\": null,\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"Boolean\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": true,\n              \"deprecationReason\": \"Use `locations`.\"\n            },\n            {\n              \"name\": \"onOperation\",\n              \"description\": null,\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"Boolean\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": true,\n              \"deprecationReason\": \"Use `locations`.\"\n            }\n          ],\n          \"inputFields\": null,\n          \"interfaces\": [],\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"ENUM\",\n          \"name\": \"__DirectiveLocation\",\n          \"description\": \"A Directive can be adjacent to many parts of the GraphQL language, a __DirectiveLocation describes one such possible adjacencies.\",\n          \"fields\": null,\n          \"inputFields\": null,\n          \"interfaces\": null,\n          \"enumValues\": [\n            {\n              \"name\": \"QUERY\",\n              \"description\": \"Location adjacent to a query operation.\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"MUTATION\",\n              \"description\": \"Location adjacent to a mutation operation.\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"SUBSCRIPTION\",\n              \"description\": \"Location adjacent to a subscription operation.\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"FIELD\",\n              \"description\": \"Location adjacent to a field.\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"FRAGMENT_DEFINITION\",\n              \"description\": \"Location adjacent to a fragment definition.\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"FRAGMENT_SPREAD\",\n              \"description\": \"Location adjacent to a fragment spread.\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"INLINE_FRAGMENT\",\n              \"description\": \"Location adjacent to an inline fragment.\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"SCHEMA\",\n              \"description\": \"Location adjacent to a schema definition.\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"SCALAR\",\n              \"description\": \"Location adjacent to a scalar definition.\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"OBJECT\",\n              \"description\": \"Location adjacent to an object type definition.\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"FIELD_DEFINITION\",\n              \"description\": \"Location adjacent to a field definition.\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"ARGUMENT_DEFINITION\",\n              \"description\": \"Location adjacent to an argument definition.\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"INTERFACE\",\n              \"description\": \"Location adjacent to an interface definition.\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"UNION\",\n              \"description\": \"Location adjacent to a union definition.\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"ENUM\",\n              \"description\": \"Location adjacent to an enum definition.\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"ENUM_VALUE\",\n              \"description\": \"Location adjacent to an enum value definition.\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"INPUT_OBJECT\",\n              \"description\": \"Location adjacent to an input object type definition.\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"INPUT_FIELD_DEFINITION\",\n              \"description\": \"Location adjacent to an input object field definition.\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"possibleTypes\": null\n        }\n      ],\n      \"directives\": [\n        {\n          \"name\": \"include\",\n          \"description\": \"Directs the executor to include this field or fragment only when the `if` argument is true.\",\n          \"locations\": [\"FIELD\", \"FRAGMENT_SPREAD\", \"INLINE_FRAGMENT\"],\n          \"args\": [\n            {\n              \"name\": \"if\",\n              \"description\": \"Included when true.\",\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"Boolean\",\n                  \"ofType\": null\n                }\n              },\n              \"defaultValue\": null\n            }\n          ]\n        },\n        {\n          \"name\": \"skip\",\n          \"description\": \"Directs the executor to skip this field or fragment when the `if` argument is true.\",\n          \"locations\": [\"FIELD\", \"FRAGMENT_SPREAD\", \"INLINE_FRAGMENT\"],\n          \"args\": [\n            {\n              \"name\": \"if\",\n              \"description\": \"Skipped when true.\",\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"Boolean\",\n                  \"ofType\": null\n                }\n              },\n              \"defaultValue\": null\n            }\n          ]\n        },\n        {\n          \"name\": \"deprecated\",\n          \"description\": \"Marks an element of a GraphQL schema as no longer supported.\",\n          \"locations\": [\"FIELD_DEFINITION\", \"ENUM_VALUE\"],\n          \"args\": [\n            {\n              \"name\": \"reason\",\n              \"description\": \"Explains why this element was deprecated, usually also including a suggestion for how to access supported similar data. Formatted in [Markdown](https://daringfireball.net/projects/markdown/).\",\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"String\",\n                \"ofType\": null\n              },\n              \"defaultValue\": \"\\\"No longer supported\\\"\"\n            }\n          ]\n        },\n        {\n          \"name\": \"accessRestricted\",\n          \"description\": \"Marks an element of a GraphQL schema as having restricted access.\",\n          \"locations\": [\"FIELD_DEFINITION\"],\n          \"args\": [\n            {\n              \"name\": \"reason\",\n              \"description\": \"Explains the reason around this restriction\",\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"String\",\n                \"ofType\": null\n              },\n              \"defaultValue\": \"null\"\n            }\n          ]\n        }\n      ]\n    }\n  }\n}\n"
  },
  {
    "path": "demo/presets/swapi_introspection.json",
    "content": "{\n  \"data\": {\n    \"__schema\": {\n      \"queryType\": {\n        \"name\": \"Root\"\n      },\n      \"mutationType\": null,\n      \"subscriptionType\": null,\n      \"types\": [\n        {\n          \"kind\": \"OBJECT\",\n          \"name\": \"Root\",\n          \"description\": null,\n          \"fields\": [\n            {\n              \"name\": \"allFilms\",\n              \"description\": null,\n              \"args\": [\n                {\n                  \"name\": \"after\",\n                  \"description\": null,\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"String\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"first\",\n                  \"description\": null,\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"Int\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"before\",\n                  \"description\": null,\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"String\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"last\",\n                  \"description\": null,\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"Int\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                }\n              ],\n              \"type\": {\n                \"kind\": \"OBJECT\",\n                \"name\": \"FilmsConnection\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"film\",\n              \"description\": null,\n              \"args\": [\n                {\n                  \"name\": \"id\",\n                  \"description\": null,\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"ID\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"filmID\",\n                  \"description\": null,\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"ID\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                }\n              ],\n              \"type\": {\n                \"kind\": \"OBJECT\",\n                \"name\": \"Film\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"allPeople\",\n              \"description\": null,\n              \"args\": [\n                {\n                  \"name\": \"after\",\n                  \"description\": null,\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"String\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"first\",\n                  \"description\": null,\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"Int\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"before\",\n                  \"description\": null,\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"String\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"last\",\n                  \"description\": null,\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"Int\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                }\n              ],\n              \"type\": {\n                \"kind\": \"OBJECT\",\n                \"name\": \"PeopleConnection\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"person\",\n              \"description\": null,\n              \"args\": [\n                {\n                  \"name\": \"id\",\n                  \"description\": null,\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"ID\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"personID\",\n                  \"description\": null,\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"ID\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                }\n              ],\n              \"type\": {\n                \"kind\": \"OBJECT\",\n                \"name\": \"Person\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"allPlanets\",\n              \"description\": null,\n              \"args\": [\n                {\n                  \"name\": \"after\",\n                  \"description\": null,\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"String\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"first\",\n                  \"description\": null,\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"Int\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"before\",\n                  \"description\": null,\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"String\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"last\",\n                  \"description\": null,\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"Int\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                }\n              ],\n              \"type\": {\n                \"kind\": \"OBJECT\",\n                \"name\": \"PlanetsConnection\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"planet\",\n              \"description\": null,\n              \"args\": [\n                {\n                  \"name\": \"id\",\n                  \"description\": null,\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"ID\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"planetID\",\n                  \"description\": null,\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"ID\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                }\n              ],\n              \"type\": {\n                \"kind\": \"OBJECT\",\n                \"name\": \"Planet\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"allSpecies\",\n              \"description\": null,\n              \"args\": [\n                {\n                  \"name\": \"after\",\n                  \"description\": null,\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"String\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"first\",\n                  \"description\": null,\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"Int\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"before\",\n                  \"description\": null,\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"String\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"last\",\n                  \"description\": null,\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"Int\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                }\n              ],\n              \"type\": {\n                \"kind\": \"OBJECT\",\n                \"name\": \"SpeciesConnection\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"species\",\n              \"description\": null,\n              \"args\": [\n                {\n                  \"name\": \"id\",\n                  \"description\": null,\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"ID\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"speciesID\",\n                  \"description\": null,\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"ID\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                }\n              ],\n              \"type\": {\n                \"kind\": \"OBJECT\",\n                \"name\": \"Species\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"allStarships\",\n              \"description\": null,\n              \"args\": [\n                {\n                  \"name\": \"after\",\n                  \"description\": null,\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"String\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"first\",\n                  \"description\": null,\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"Int\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"before\",\n                  \"description\": null,\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"String\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"last\",\n                  \"description\": null,\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"Int\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                }\n              ],\n              \"type\": {\n                \"kind\": \"OBJECT\",\n                \"name\": \"StarshipsConnection\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"starship\",\n              \"description\": null,\n              \"args\": [\n                {\n                  \"name\": \"id\",\n                  \"description\": null,\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"ID\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"starshipID\",\n                  \"description\": null,\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"ID\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                }\n              ],\n              \"type\": {\n                \"kind\": \"OBJECT\",\n                \"name\": \"Starship\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"allVehicles\",\n              \"description\": null,\n              \"args\": [\n                {\n                  \"name\": \"after\",\n                  \"description\": null,\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"String\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"first\",\n                  \"description\": null,\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"Int\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"before\",\n                  \"description\": null,\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"String\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"last\",\n                  \"description\": null,\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"Int\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                }\n              ],\n              \"type\": {\n                \"kind\": \"OBJECT\",\n                \"name\": \"VehiclesConnection\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"vehicle\",\n              \"description\": null,\n              \"args\": [\n                {\n                  \"name\": \"id\",\n                  \"description\": null,\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"ID\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"vehicleID\",\n                  \"description\": null,\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"ID\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                }\n              ],\n              \"type\": {\n                \"kind\": \"OBJECT\",\n                \"name\": \"Vehicle\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"node\",\n              \"description\": \"Fetches an object given its ID\",\n              \"args\": [\n                {\n                  \"name\": \"id\",\n                  \"description\": \"The ID of an object\",\n                  \"type\": {\n                    \"kind\": \"NON_NULL\",\n                    \"name\": null,\n                    \"ofType\": {\n                      \"kind\": \"SCALAR\",\n                      \"name\": \"ID\",\n                      \"ofType\": null\n                    }\n                  },\n                  \"defaultValue\": null\n                }\n              ],\n              \"type\": {\n                \"kind\": \"INTERFACE\",\n                \"name\": \"Node\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"inputFields\": null,\n          \"interfaces\": [],\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"SCALAR\",\n          \"name\": \"String\",\n          \"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.\",\n          \"fields\": null,\n          \"inputFields\": null,\n          \"interfaces\": null,\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"SCALAR\",\n          \"name\": \"Int\",\n          \"description\": \"The `Int` scalar type represents non-fractional signed whole numeric values. Int can represent values between -(2^31) and 2^31 - 1. \",\n          \"fields\": null,\n          \"inputFields\": null,\n          \"interfaces\": null,\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"OBJECT\",\n          \"name\": \"FilmsConnection\",\n          \"description\": \"A connection to a list of items.\",\n          \"fields\": [\n            {\n              \"name\": \"pageInfo\",\n              \"description\": \"Information to aid in pagination.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"PageInfo\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"edges\",\n              \"description\": \"A list of edges.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"LIST\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"FilmsEdge\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"totalCount\",\n              \"description\": \"A count of the total number of objects in this connection, ignoring pagination.\\nThis allows a client to fetch the first five objects by passing \\\"5\\\" as the\\nargument to \\\"first\\\", then fetch the total count so it could display \\\"5 of 83\\\",\\nfor example.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"Int\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"films\",\n              \"description\": \"A list of all of the objects returned in the connection. This is a convenience\\nfield provided for quickly exploring the API; rather than querying for\\n\\\"{ edges { node } }\\\" when no edge data is needed, this field can be be used\\ninstead. Note that when clients like Relay need to fetch the \\\"cursor\\\" field on\\nthe edge to enable efficient pagination, this shortcut cannot be used, and the\\nfull \\\"{ edges { node } }\\\" version should be used instead.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"LIST\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"Film\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"inputFields\": null,\n          \"interfaces\": [],\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"OBJECT\",\n          \"name\": \"PageInfo\",\n          \"description\": \"Information about pagination in a connection.\",\n          \"fields\": [\n            {\n              \"name\": \"hasNextPage\",\n              \"description\": \"When paginating forwards, are there more items?\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"Boolean\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"hasPreviousPage\",\n              \"description\": \"When paginating backwards, are there more items?\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"Boolean\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"startCursor\",\n              \"description\": \"When paginating backwards, the cursor to continue.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"String\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"endCursor\",\n              \"description\": \"When paginating forwards, the cursor to continue.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"String\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"inputFields\": null,\n          \"interfaces\": [],\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"SCALAR\",\n          \"name\": \"Boolean\",\n          \"description\": \"The `Boolean` scalar type represents `true` or `false`.\",\n          \"fields\": null,\n          \"inputFields\": null,\n          \"interfaces\": null,\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"OBJECT\",\n          \"name\": \"FilmsEdge\",\n          \"description\": \"An edge in a connection.\",\n          \"fields\": [\n            {\n              \"name\": \"node\",\n              \"description\": \"The item at the end of the edge\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"OBJECT\",\n                \"name\": \"Film\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"cursor\",\n              \"description\": \"A cursor for use in pagination\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"String\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"inputFields\": null,\n          \"interfaces\": [],\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"OBJECT\",\n          \"name\": \"Film\",\n          \"description\": \"A single film.\",\n          \"fields\": [\n            {\n              \"name\": \"title\",\n              \"description\": \"The title of this film.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"String\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"episodeID\",\n              \"description\": \"The episode number of this film.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"Int\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"openingCrawl\",\n              \"description\": \"The opening paragraphs at the beginning of this film.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"String\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"director\",\n              \"description\": \"The name of the director of this film.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"String\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"producers\",\n              \"description\": \"The name(s) of the producer(s) of this film.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"LIST\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"String\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"releaseDate\",\n              \"description\": \"The ISO 8601 date format of film release at original creator country.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"String\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"speciesConnection\",\n              \"description\": null,\n              \"args\": [\n                {\n                  \"name\": \"after\",\n                  \"description\": null,\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"String\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"first\",\n                  \"description\": null,\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"Int\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"before\",\n                  \"description\": null,\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"String\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"last\",\n                  \"description\": null,\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"Int\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                }\n              ],\n              \"type\": {\n                \"kind\": \"OBJECT\",\n                \"name\": \"FilmSpeciesConnection\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"starshipConnection\",\n              \"description\": null,\n              \"args\": [\n                {\n                  \"name\": \"after\",\n                  \"description\": null,\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"String\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"first\",\n                  \"description\": null,\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"Int\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"before\",\n                  \"description\": null,\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"String\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"last\",\n                  \"description\": null,\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"Int\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                }\n              ],\n              \"type\": {\n                \"kind\": \"OBJECT\",\n                \"name\": \"FilmStarshipsConnection\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"vehicleConnection\",\n              \"description\": null,\n              \"args\": [\n                {\n                  \"name\": \"after\",\n                  \"description\": null,\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"String\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"first\",\n                  \"description\": null,\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"Int\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"before\",\n                  \"description\": null,\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"String\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"last\",\n                  \"description\": null,\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"Int\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                }\n              ],\n              \"type\": {\n                \"kind\": \"OBJECT\",\n                \"name\": \"FilmVehiclesConnection\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"characterConnection\",\n              \"description\": null,\n              \"args\": [\n                {\n                  \"name\": \"after\",\n                  \"description\": null,\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"String\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"first\",\n                  \"description\": null,\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"Int\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"before\",\n                  \"description\": null,\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"String\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"last\",\n                  \"description\": null,\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"Int\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                }\n              ],\n              \"type\": {\n                \"kind\": \"OBJECT\",\n                \"name\": \"FilmCharactersConnection\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"planetConnection\",\n              \"description\": null,\n              \"args\": [\n                {\n                  \"name\": \"after\",\n                  \"description\": null,\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"String\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"first\",\n                  \"description\": null,\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"Int\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"before\",\n                  \"description\": null,\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"String\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"last\",\n                  \"description\": null,\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"Int\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                }\n              ],\n              \"type\": {\n                \"kind\": \"OBJECT\",\n                \"name\": \"FilmPlanetsConnection\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"created\",\n              \"description\": \"The ISO 8601 date format of the time that this resource was created.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"String\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"edited\",\n              \"description\": \"The ISO 8601 date format of the time that this resource was edited.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"String\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"id\",\n              \"description\": \"The ID of an object\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"ID\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"inputFields\": null,\n          \"interfaces\": [\n            {\n              \"kind\": \"INTERFACE\",\n              \"name\": \"Node\",\n              \"ofType\": null\n            }\n          ],\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"INTERFACE\",\n          \"name\": \"Node\",\n          \"description\": \"An object with an ID\",\n          \"fields\": [\n            {\n              \"name\": \"id\",\n              \"description\": \"The id of the object.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"ID\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"inputFields\": null,\n          \"interfaces\": null,\n          \"enumValues\": null,\n          \"possibleTypes\": [\n            {\n              \"kind\": \"OBJECT\",\n              \"name\": \"Film\",\n              \"ofType\": null\n            },\n            {\n              \"kind\": \"OBJECT\",\n              \"name\": \"Species\",\n              \"ofType\": null\n            },\n            {\n              \"kind\": \"OBJECT\",\n              \"name\": \"Planet\",\n              \"ofType\": null\n            },\n            {\n              \"kind\": \"OBJECT\",\n              \"name\": \"Person\",\n              \"ofType\": null\n            },\n            {\n              \"kind\": \"OBJECT\",\n              \"name\": \"Starship\",\n              \"ofType\": null\n            },\n            {\n              \"kind\": \"OBJECT\",\n              \"name\": \"Vehicle\",\n              \"ofType\": null\n            }\n          ]\n        },\n        {\n          \"kind\": \"SCALAR\",\n          \"name\": \"ID\",\n          \"description\": \"The `ID` scalar type represents a unique identifier, often used to refetch an object or as key for a cache. The ID type appears in a JSON response as a String; however, it is not intended to be human-readable. When expected as an input type, any string (such as `\\\"4\\\"`) or integer (such as `4`) input value will be accepted as an ID.\",\n          \"fields\": null,\n          \"inputFields\": null,\n          \"interfaces\": null,\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"OBJECT\",\n          \"name\": \"FilmSpeciesConnection\",\n          \"description\": \"A connection to a list of items.\",\n          \"fields\": [\n            {\n              \"name\": \"pageInfo\",\n              \"description\": \"Information to aid in pagination.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"PageInfo\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"edges\",\n              \"description\": \"A list of edges.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"LIST\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"FilmSpeciesEdge\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"totalCount\",\n              \"description\": \"A count of the total number of objects in this connection, ignoring pagination.\\nThis allows a client to fetch the first five objects by passing \\\"5\\\" as the\\nargument to \\\"first\\\", then fetch the total count so it could display \\\"5 of 83\\\",\\nfor example.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"Int\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"species\",\n              \"description\": \"A list of all of the objects returned in the connection. This is a convenience\\nfield provided for quickly exploring the API; rather than querying for\\n\\\"{ edges { node } }\\\" when no edge data is needed, this field can be be used\\ninstead. Note that when clients like Relay need to fetch the \\\"cursor\\\" field on\\nthe edge to enable efficient pagination, this shortcut cannot be used, and the\\nfull \\\"{ edges { node } }\\\" version should be used instead.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"LIST\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"Species\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"inputFields\": null,\n          \"interfaces\": [],\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"OBJECT\",\n          \"name\": \"FilmSpeciesEdge\",\n          \"description\": \"An edge in a connection.\",\n          \"fields\": [\n            {\n              \"name\": \"node\",\n              \"description\": \"The item at the end of the edge\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"OBJECT\",\n                \"name\": \"Species\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"cursor\",\n              \"description\": \"A cursor for use in pagination\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"String\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"inputFields\": null,\n          \"interfaces\": [],\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"OBJECT\",\n          \"name\": \"Species\",\n          \"description\": \"A type of person or character within the Star Wars Universe.\",\n          \"fields\": [\n            {\n              \"name\": \"name\",\n              \"description\": \"The name of this species.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"String\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"classification\",\n              \"description\": \"The classification of this species, such as \\\"mammal\\\" or \\\"reptile\\\".\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"String\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"designation\",\n              \"description\": \"The designation of this species, such as \\\"sentient\\\".\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"String\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"averageHeight\",\n              \"description\": \"The average height of this species in centimeters.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"Float\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"averageLifespan\",\n              \"description\": \"The average lifespan of this species in years, null if unknown.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"Int\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"eyeColors\",\n              \"description\": \"Common eye colors for this species, null if this species does not typically\\nhave eyes.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"LIST\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"String\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"hairColors\",\n              \"description\": \"Common hair colors for this species, null if this species does not typically\\nhave hair.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"LIST\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"String\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"skinColors\",\n              \"description\": \"Common skin colors for this species, null if this species does not typically\\nhave skin.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"LIST\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"String\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"language\",\n              \"description\": \"The language commonly spoken by this species.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"String\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"homeworld\",\n              \"description\": \"A planet that this species originates from.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"OBJECT\",\n                \"name\": \"Planet\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"personConnection\",\n              \"description\": null,\n              \"args\": [\n                {\n                  \"name\": \"after\",\n                  \"description\": null,\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"String\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"first\",\n                  \"description\": null,\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"Int\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"before\",\n                  \"description\": null,\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"String\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"last\",\n                  \"description\": null,\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"Int\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                }\n              ],\n              \"type\": {\n                \"kind\": \"OBJECT\",\n                \"name\": \"SpeciesPeopleConnection\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"filmConnection\",\n              \"description\": null,\n              \"args\": [\n                {\n                  \"name\": \"after\",\n                  \"description\": null,\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"String\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"first\",\n                  \"description\": null,\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"Int\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"before\",\n                  \"description\": null,\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"String\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"last\",\n                  \"description\": null,\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"Int\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                }\n              ],\n              \"type\": {\n                \"kind\": \"OBJECT\",\n                \"name\": \"SpeciesFilmsConnection\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"created\",\n              \"description\": \"The ISO 8601 date format of the time that this resource was created.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"String\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"edited\",\n              \"description\": \"The ISO 8601 date format of the time that this resource was edited.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"String\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"id\",\n              \"description\": \"The ID of an object\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"ID\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"inputFields\": null,\n          \"interfaces\": [\n            {\n              \"kind\": \"INTERFACE\",\n              \"name\": \"Node\",\n              \"ofType\": null\n            }\n          ],\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"SCALAR\",\n          \"name\": \"Float\",\n          \"description\": \"The `Float` scalar type represents signed double-precision fractional values as specified by [IEEE 754](http://en.wikipedia.org/wiki/IEEE_floating_point). \",\n          \"fields\": null,\n          \"inputFields\": null,\n          \"interfaces\": null,\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"OBJECT\",\n          \"name\": \"Planet\",\n          \"description\": \"A large mass, planet or planetoid in the Star Wars Universe, at the time of\\n0 ABY.\",\n          \"fields\": [\n            {\n              \"name\": \"name\",\n              \"description\": \"The name of this planet.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"String\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"diameter\",\n              \"description\": \"The diameter of this planet in kilometers.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"Int\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"rotationPeriod\",\n              \"description\": \"The number of standard hours it takes for this planet to complete a single\\nrotation on its axis.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"Int\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"orbitalPeriod\",\n              \"description\": \"The number of standard days it takes for this planet to complete a single orbit\\nof its local star.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"Int\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"gravity\",\n              \"description\": \"A number denoting the gravity of this planet, where \\\"1\\\" is normal or 1 standard\\nG. \\\"2\\\" is twice or 2 standard Gs. \\\"0.5\\\" is half or 0.5 standard Gs.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"String\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"population\",\n              \"description\": \"The average population of sentient beings inhabiting this planet.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"Int\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"climates\",\n              \"description\": \"The climates of this planet.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"LIST\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"String\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"terrains\",\n              \"description\": \"The terrains of this planet.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"LIST\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"String\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"surfaceWater\",\n              \"description\": \"The percentage of the planet surface that is naturally occuring water or bodies\\nof water.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"Float\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"residentConnection\",\n              \"description\": null,\n              \"args\": [\n                {\n                  \"name\": \"after\",\n                  \"description\": null,\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"String\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"first\",\n                  \"description\": null,\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"Int\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"before\",\n                  \"description\": null,\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"String\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"last\",\n                  \"description\": null,\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"Int\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                }\n              ],\n              \"type\": {\n                \"kind\": \"OBJECT\",\n                \"name\": \"PlanetResidentsConnection\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"filmConnection\",\n              \"description\": null,\n              \"args\": [\n                {\n                  \"name\": \"after\",\n                  \"description\": null,\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"String\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"first\",\n                  \"description\": null,\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"Int\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"before\",\n                  \"description\": null,\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"String\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"last\",\n                  \"description\": null,\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"Int\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                }\n              ],\n              \"type\": {\n                \"kind\": \"OBJECT\",\n                \"name\": \"PlanetFilmsConnection\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"created\",\n              \"description\": \"The ISO 8601 date format of the time that this resource was created.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"String\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"edited\",\n              \"description\": \"The ISO 8601 date format of the time that this resource was edited.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"String\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"id\",\n              \"description\": \"The ID of an object\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"ID\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"inputFields\": null,\n          \"interfaces\": [\n            {\n              \"kind\": \"INTERFACE\",\n              \"name\": \"Node\",\n              \"ofType\": null\n            }\n          ],\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"OBJECT\",\n          \"name\": \"PlanetResidentsConnection\",\n          \"description\": \"A connection to a list of items.\",\n          \"fields\": [\n            {\n              \"name\": \"pageInfo\",\n              \"description\": \"Information to aid in pagination.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"PageInfo\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"edges\",\n              \"description\": \"A list of edges.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"LIST\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"PlanetResidentsEdge\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"totalCount\",\n              \"description\": \"A count of the total number of objects in this connection, ignoring pagination.\\nThis allows a client to fetch the first five objects by passing \\\"5\\\" as the\\nargument to \\\"first\\\", then fetch the total count so it could display \\\"5 of 83\\\",\\nfor example.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"Int\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"residents\",\n              \"description\": \"A list of all of the objects returned in the connection. This is a convenience\\nfield provided for quickly exploring the API; rather than querying for\\n\\\"{ edges { node } }\\\" when no edge data is needed, this field can be be used\\ninstead. Note that when clients like Relay need to fetch the \\\"cursor\\\" field on\\nthe edge to enable efficient pagination, this shortcut cannot be used, and the\\nfull \\\"{ edges { node } }\\\" version should be used instead.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"LIST\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"Person\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"inputFields\": null,\n          \"interfaces\": [],\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"OBJECT\",\n          \"name\": \"PlanetResidentsEdge\",\n          \"description\": \"An edge in a connection.\",\n          \"fields\": [\n            {\n              \"name\": \"node\",\n              \"description\": \"The item at the end of the edge\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"OBJECT\",\n                \"name\": \"Person\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"cursor\",\n              \"description\": \"A cursor for use in pagination\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"String\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"inputFields\": null,\n          \"interfaces\": [],\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"OBJECT\",\n          \"name\": \"Person\",\n          \"description\": \"An individual person or character within the Star Wars universe.\",\n          \"fields\": [\n            {\n              \"name\": \"name\",\n              \"description\": \"The name of this person.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"String\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"birthYear\",\n              \"description\": \"The birth year of the person, using the in-universe standard of BBY or ABY -\\nBefore the Battle of Yavin or After the Battle of Yavin. The Battle of Yavin is\\na battle that occurs at the end of Star Wars episode IV: A New Hope.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"String\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"eyeColor\",\n              \"description\": \"The eye color of this person. Will be \\\"unknown\\\" if not known or \\\"n/a\\\" if the\\nperson does not have an eye.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"String\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"gender\",\n              \"description\": \"The gender of this person. Either \\\"Male\\\", \\\"Female\\\" or \\\"unknown\\\",\\n\\\"n/a\\\" if the person does not have a gender.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"String\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"hairColor\",\n              \"description\": \"The hair color of this person. Will be \\\"unknown\\\" if not known or \\\"n/a\\\" if the\\nperson does not have hair.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"String\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"height\",\n              \"description\": \"The height of the person in centimeters.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"Int\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"mass\",\n              \"description\": \"The mass of the person in kilograms.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"Int\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"skinColor\",\n              \"description\": \"The skin color of this person.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"String\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"homeworld\",\n              \"description\": \"A planet that this person was born on or inhabits.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"OBJECT\",\n                \"name\": \"Planet\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"filmConnection\",\n              \"description\": null,\n              \"args\": [\n                {\n                  \"name\": \"after\",\n                  \"description\": null,\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"String\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"first\",\n                  \"description\": null,\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"Int\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"before\",\n                  \"description\": null,\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"String\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"last\",\n                  \"description\": null,\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"Int\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                }\n              ],\n              \"type\": {\n                \"kind\": \"OBJECT\",\n                \"name\": \"PersonFilmsConnection\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"species\",\n              \"description\": \"The species that this person belongs to, or null if unknown.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"OBJECT\",\n                \"name\": \"Species\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"starshipConnection\",\n              \"description\": null,\n              \"args\": [\n                {\n                  \"name\": \"after\",\n                  \"description\": null,\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"String\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"first\",\n                  \"description\": null,\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"Int\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"before\",\n                  \"description\": null,\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"String\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"last\",\n                  \"description\": null,\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"Int\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                }\n              ],\n              \"type\": {\n                \"kind\": \"OBJECT\",\n                \"name\": \"PersonStarshipsConnection\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"vehicleConnection\",\n              \"description\": null,\n              \"args\": [\n                {\n                  \"name\": \"after\",\n                  \"description\": null,\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"String\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"first\",\n                  \"description\": null,\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"Int\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"before\",\n                  \"description\": null,\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"String\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"last\",\n                  \"description\": null,\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"Int\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                }\n              ],\n              \"type\": {\n                \"kind\": \"OBJECT\",\n                \"name\": \"PersonVehiclesConnection\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"created\",\n              \"description\": \"The ISO 8601 date format of the time that this resource was created.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"String\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"edited\",\n              \"description\": \"The ISO 8601 date format of the time that this resource was edited.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"String\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"id\",\n              \"description\": \"The ID of an object\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"ID\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"inputFields\": null,\n          \"interfaces\": [\n            {\n              \"kind\": \"INTERFACE\",\n              \"name\": \"Node\",\n              \"ofType\": null\n            }\n          ],\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"OBJECT\",\n          \"name\": \"PersonFilmsConnection\",\n          \"description\": \"A connection to a list of items.\",\n          \"fields\": [\n            {\n              \"name\": \"pageInfo\",\n              \"description\": \"Information to aid in pagination.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"PageInfo\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"edges\",\n              \"description\": \"A list of edges.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"LIST\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"PersonFilmsEdge\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"totalCount\",\n              \"description\": \"A count of the total number of objects in this connection, ignoring pagination.\\nThis allows a client to fetch the first five objects by passing \\\"5\\\" as the\\nargument to \\\"first\\\", then fetch the total count so it could display \\\"5 of 83\\\",\\nfor example.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"Int\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"films\",\n              \"description\": \"A list of all of the objects returned in the connection. This is a convenience\\nfield provided for quickly exploring the API; rather than querying for\\n\\\"{ edges { node } }\\\" when no edge data is needed, this field can be be used\\ninstead. Note that when clients like Relay need to fetch the \\\"cursor\\\" field on\\nthe edge to enable efficient pagination, this shortcut cannot be used, and the\\nfull \\\"{ edges { node } }\\\" version should be used instead.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"LIST\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"Film\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"inputFields\": null,\n          \"interfaces\": [],\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"OBJECT\",\n          \"name\": \"PersonFilmsEdge\",\n          \"description\": \"An edge in a connection.\",\n          \"fields\": [\n            {\n              \"name\": \"node\",\n              \"description\": \"The item at the end of the edge\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"OBJECT\",\n                \"name\": \"Film\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"cursor\",\n              \"description\": \"A cursor for use in pagination\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"String\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"inputFields\": null,\n          \"interfaces\": [],\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"OBJECT\",\n          \"name\": \"PersonStarshipsConnection\",\n          \"description\": \"A connection to a list of items.\",\n          \"fields\": [\n            {\n              \"name\": \"pageInfo\",\n              \"description\": \"Information to aid in pagination.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"PageInfo\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"edges\",\n              \"description\": \"A list of edges.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"LIST\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"PersonStarshipsEdge\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"totalCount\",\n              \"description\": \"A count of the total number of objects in this connection, ignoring pagination.\\nThis allows a client to fetch the first five objects by passing \\\"5\\\" as the\\nargument to \\\"first\\\", then fetch the total count so it could display \\\"5 of 83\\\",\\nfor example.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"Int\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"starships\",\n              \"description\": \"A list of all of the objects returned in the connection. This is a convenience\\nfield provided for quickly exploring the API; rather than querying for\\n\\\"{ edges { node } }\\\" when no edge data is needed, this field can be be used\\ninstead. Note that when clients like Relay need to fetch the \\\"cursor\\\" field on\\nthe edge to enable efficient pagination, this shortcut cannot be used, and the\\nfull \\\"{ edges { node } }\\\" version should be used instead.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"LIST\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"Starship\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"inputFields\": null,\n          \"interfaces\": [],\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"OBJECT\",\n          \"name\": \"PersonStarshipsEdge\",\n          \"description\": \"An edge in a connection.\",\n          \"fields\": [\n            {\n              \"name\": \"node\",\n              \"description\": \"The item at the end of the edge\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"OBJECT\",\n                \"name\": \"Starship\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"cursor\",\n              \"description\": \"A cursor for use in pagination\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"String\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"inputFields\": null,\n          \"interfaces\": [],\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"OBJECT\",\n          \"name\": \"Starship\",\n          \"description\": \"A single transport craft that has hyperdrive capability.\",\n          \"fields\": [\n            {\n              \"name\": \"name\",\n              \"description\": \"The name of this starship. The common name, such as \\\"Death Star\\\".\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"String\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"model\",\n              \"description\": \"The model or official name of this starship. Such as \\\"T-65 X-wing\\\" or \\\"DS-1\\nOrbital Battle Station\\\".\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"String\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"starshipClass\",\n              \"description\": \"The class of this starship, such as \\\"Starfighter\\\" or \\\"Deep Space Mobile\\nBattlestation\\\"\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"String\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"manufacturers\",\n              \"description\": \"The manufacturers of this starship.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"LIST\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"String\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"costInCredits\",\n              \"description\": \"The cost of this starship new, in galactic credits.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"Float\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"length\",\n              \"description\": \"The length of this starship in meters.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"Float\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"crew\",\n              \"description\": \"The number of personnel needed to run or pilot this starship.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"String\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"passengers\",\n              \"description\": \"The number of non-essential people this starship can transport.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"String\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"maxAtmospheringSpeed\",\n              \"description\": \"The maximum speed of this starship in atmosphere. null if this starship is\\nincapable of atmosphering flight.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"Int\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"hyperdriveRating\",\n              \"description\": \"The class of this starships hyperdrive.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"Float\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"MGLT\",\n              \"description\": \"The Maximum number of Megalights this starship can travel in a standard hour.\\nA \\\"Megalight\\\" is a standard unit of distance and has never been defined before\\nwithin the Star Wars universe. This figure is only really useful for measuring\\nthe difference in speed of starships. We can assume it is similar to AU, the\\ndistance between our Sun (Sol) and Earth.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"Int\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"cargoCapacity\",\n              \"description\": \"The maximum number of kilograms that this starship can transport.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"Float\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"consumables\",\n              \"description\": \"The maximum length of time that this starship can provide consumables for its\\nentire crew without having to resupply.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"String\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"pilotConnection\",\n              \"description\": null,\n              \"args\": [\n                {\n                  \"name\": \"after\",\n                  \"description\": null,\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"String\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"first\",\n                  \"description\": null,\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"Int\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"before\",\n                  \"description\": null,\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"String\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"last\",\n                  \"description\": null,\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"Int\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                }\n              ],\n              \"type\": {\n                \"kind\": \"OBJECT\",\n                \"name\": \"StarshipPilotsConnection\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"filmConnection\",\n              \"description\": null,\n              \"args\": [\n                {\n                  \"name\": \"after\",\n                  \"description\": null,\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"String\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"first\",\n                  \"description\": null,\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"Int\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"before\",\n                  \"description\": null,\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"String\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"last\",\n                  \"description\": null,\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"Int\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                }\n              ],\n              \"type\": {\n                \"kind\": \"OBJECT\",\n                \"name\": \"StarshipFilmsConnection\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"created\",\n              \"description\": \"The ISO 8601 date format of the time that this resource was created.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"String\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"edited\",\n              \"description\": \"The ISO 8601 date format of the time that this resource was edited.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"String\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"id\",\n              \"description\": \"The ID of an object\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"ID\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"inputFields\": null,\n          \"interfaces\": [\n            {\n              \"kind\": \"INTERFACE\",\n              \"name\": \"Node\",\n              \"ofType\": null\n            }\n          ],\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"OBJECT\",\n          \"name\": \"StarshipPilotsConnection\",\n          \"description\": \"A connection to a list of items.\",\n          \"fields\": [\n            {\n              \"name\": \"pageInfo\",\n              \"description\": \"Information to aid in pagination.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"PageInfo\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"edges\",\n              \"description\": \"A list of edges.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"LIST\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"StarshipPilotsEdge\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"totalCount\",\n              \"description\": \"A count of the total number of objects in this connection, ignoring pagination.\\nThis allows a client to fetch the first five objects by passing \\\"5\\\" as the\\nargument to \\\"first\\\", then fetch the total count so it could display \\\"5 of 83\\\",\\nfor example.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"Int\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"pilots\",\n              \"description\": \"A list of all of the objects returned in the connection. This is a convenience\\nfield provided for quickly exploring the API; rather than querying for\\n\\\"{ edges { node } }\\\" when no edge data is needed, this field can be be used\\ninstead. Note that when clients like Relay need to fetch the \\\"cursor\\\" field on\\nthe edge to enable efficient pagination, this shortcut cannot be used, and the\\nfull \\\"{ edges { node } }\\\" version should be used instead.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"LIST\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"Person\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"inputFields\": null,\n          \"interfaces\": [],\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"OBJECT\",\n          \"name\": \"StarshipPilotsEdge\",\n          \"description\": \"An edge in a connection.\",\n          \"fields\": [\n            {\n              \"name\": \"node\",\n              \"description\": \"The item at the end of the edge\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"OBJECT\",\n                \"name\": \"Person\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"cursor\",\n              \"description\": \"A cursor for use in pagination\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"String\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"inputFields\": null,\n          \"interfaces\": [],\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"OBJECT\",\n          \"name\": \"StarshipFilmsConnection\",\n          \"description\": \"A connection to a list of items.\",\n          \"fields\": [\n            {\n              \"name\": \"pageInfo\",\n              \"description\": \"Information to aid in pagination.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"PageInfo\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"edges\",\n              \"description\": \"A list of edges.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"LIST\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"StarshipFilmsEdge\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"totalCount\",\n              \"description\": \"A count of the total number of objects in this connection, ignoring pagination.\\nThis allows a client to fetch the first five objects by passing \\\"5\\\" as the\\nargument to \\\"first\\\", then fetch the total count so it could display \\\"5 of 83\\\",\\nfor example.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"Int\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"films\",\n              \"description\": \"A list of all of the objects returned in the connection. This is a convenience\\nfield provided for quickly exploring the API; rather than querying for\\n\\\"{ edges { node } }\\\" when no edge data is needed, this field can be be used\\ninstead. Note that when clients like Relay need to fetch the \\\"cursor\\\" field on\\nthe edge to enable efficient pagination, this shortcut cannot be used, and the\\nfull \\\"{ edges { node } }\\\" version should be used instead.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"LIST\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"Film\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"inputFields\": null,\n          \"interfaces\": [],\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"OBJECT\",\n          \"name\": \"StarshipFilmsEdge\",\n          \"description\": \"An edge in a connection.\",\n          \"fields\": [\n            {\n              \"name\": \"node\",\n              \"description\": \"The item at the end of the edge\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"OBJECT\",\n                \"name\": \"Film\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"cursor\",\n              \"description\": \"A cursor for use in pagination\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"String\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"inputFields\": null,\n          \"interfaces\": [],\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"OBJECT\",\n          \"name\": \"PersonVehiclesConnection\",\n          \"description\": \"A connection to a list of items.\",\n          \"fields\": [\n            {\n              \"name\": \"pageInfo\",\n              \"description\": \"Information to aid in pagination.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"PageInfo\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"edges\",\n              \"description\": \"A list of edges.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"LIST\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"PersonVehiclesEdge\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"totalCount\",\n              \"description\": \"A count of the total number of objects in this connection, ignoring pagination.\\nThis allows a client to fetch the first five objects by passing \\\"5\\\" as the\\nargument to \\\"first\\\", then fetch the total count so it could display \\\"5 of 83\\\",\\nfor example.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"Int\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"vehicles\",\n              \"description\": \"A list of all of the objects returned in the connection. This is a convenience\\nfield provided for quickly exploring the API; rather than querying for\\n\\\"{ edges { node } }\\\" when no edge data is needed, this field can be be used\\ninstead. Note that when clients like Relay need to fetch the \\\"cursor\\\" field on\\nthe edge to enable efficient pagination, this shortcut cannot be used, and the\\nfull \\\"{ edges { node } }\\\" version should be used instead.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"LIST\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"Vehicle\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"inputFields\": null,\n          \"interfaces\": [],\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"OBJECT\",\n          \"name\": \"PersonVehiclesEdge\",\n          \"description\": \"An edge in a connection.\",\n          \"fields\": [\n            {\n              \"name\": \"node\",\n              \"description\": \"The item at the end of the edge\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"OBJECT\",\n                \"name\": \"Vehicle\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"cursor\",\n              \"description\": \"A cursor for use in pagination\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"String\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"inputFields\": null,\n          \"interfaces\": [],\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"OBJECT\",\n          \"name\": \"Vehicle\",\n          \"description\": \"A single transport craft that does not have hyperdrive capability\",\n          \"fields\": [\n            {\n              \"name\": \"name\",\n              \"description\": \"The name of this vehicle. The common name, such as \\\"Sand Crawler\\\" or \\\"Speeder\\nbike\\\".\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"String\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"model\",\n              \"description\": \"The model or official name of this vehicle. Such as \\\"All-Terrain Attack\\nTransport\\\".\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"String\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"vehicleClass\",\n              \"description\": \"The class of this vehicle, such as \\\"Wheeled\\\" or \\\"Repulsorcraft\\\".\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"String\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"manufacturers\",\n              \"description\": \"The manufacturers of this vehicle.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"LIST\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"String\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"costInCredits\",\n              \"description\": \"The cost of this vehicle new, in Galactic Credits.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"Int\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"length\",\n              \"description\": \"The length of this vehicle in meters.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"Float\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"crew\",\n              \"description\": \"The number of personnel needed to run or pilot this vehicle.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"String\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"passengers\",\n              \"description\": \"The number of non-essential people this vehicle can transport.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"String\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"maxAtmospheringSpeed\",\n              \"description\": \"The maximum speed of this vehicle in atmosphere.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"Int\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"cargoCapacity\",\n              \"description\": \"The maximum number of kilograms that this vehicle can transport.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"Int\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"consumables\",\n              \"description\": \"The maximum length of time that this vehicle can provide consumables for its\\nentire crew without having to resupply.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"String\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"pilotConnection\",\n              \"description\": null,\n              \"args\": [\n                {\n                  \"name\": \"after\",\n                  \"description\": null,\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"String\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"first\",\n                  \"description\": null,\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"Int\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"before\",\n                  \"description\": null,\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"String\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"last\",\n                  \"description\": null,\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"Int\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                }\n              ],\n              \"type\": {\n                \"kind\": \"OBJECT\",\n                \"name\": \"VehiclePilotsConnection\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"filmConnection\",\n              \"description\": null,\n              \"args\": [\n                {\n                  \"name\": \"after\",\n                  \"description\": null,\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"String\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"first\",\n                  \"description\": null,\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"Int\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"before\",\n                  \"description\": null,\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"String\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"last\",\n                  \"description\": null,\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"Int\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                }\n              ],\n              \"type\": {\n                \"kind\": \"OBJECT\",\n                \"name\": \"VehicleFilmsConnection\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"created\",\n              \"description\": \"The ISO 8601 date format of the time that this resource was created.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"String\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"edited\",\n              \"description\": \"The ISO 8601 date format of the time that this resource was edited.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"String\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"id\",\n              \"description\": \"The ID of an object\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"ID\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"inputFields\": null,\n          \"interfaces\": [\n            {\n              \"kind\": \"INTERFACE\",\n              \"name\": \"Node\",\n              \"ofType\": null\n            }\n          ],\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"OBJECT\",\n          \"name\": \"VehiclePilotsConnection\",\n          \"description\": \"A connection to a list of items.\",\n          \"fields\": [\n            {\n              \"name\": \"pageInfo\",\n              \"description\": \"Information to aid in pagination.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"PageInfo\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"edges\",\n              \"description\": \"A list of edges.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"LIST\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"VehiclePilotsEdge\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"totalCount\",\n              \"description\": \"A count of the total number of objects in this connection, ignoring pagination.\\nThis allows a client to fetch the first five objects by passing \\\"5\\\" as the\\nargument to \\\"first\\\", then fetch the total count so it could display \\\"5 of 83\\\",\\nfor example.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"Int\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"pilots\",\n              \"description\": \"A list of all of the objects returned in the connection. This is a convenience\\nfield provided for quickly exploring the API; rather than querying for\\n\\\"{ edges { node } }\\\" when no edge data is needed, this field can be be used\\ninstead. Note that when clients like Relay need to fetch the \\\"cursor\\\" field on\\nthe edge to enable efficient pagination, this shortcut cannot be used, and the\\nfull \\\"{ edges { node } }\\\" version should be used instead.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"LIST\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"Person\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"inputFields\": null,\n          \"interfaces\": [],\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"OBJECT\",\n          \"name\": \"VehiclePilotsEdge\",\n          \"description\": \"An edge in a connection.\",\n          \"fields\": [\n            {\n              \"name\": \"node\",\n              \"description\": \"The item at the end of the edge\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"OBJECT\",\n                \"name\": \"Person\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"cursor\",\n              \"description\": \"A cursor for use in pagination\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"String\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"inputFields\": null,\n          \"interfaces\": [],\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"OBJECT\",\n          \"name\": \"VehicleFilmsConnection\",\n          \"description\": \"A connection to a list of items.\",\n          \"fields\": [\n            {\n              \"name\": \"pageInfo\",\n              \"description\": \"Information to aid in pagination.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"PageInfo\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"edges\",\n              \"description\": \"A list of edges.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"LIST\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"VehicleFilmsEdge\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"totalCount\",\n              \"description\": \"A count of the total number of objects in this connection, ignoring pagination.\\nThis allows a client to fetch the first five objects by passing \\\"5\\\" as the\\nargument to \\\"first\\\", then fetch the total count so it could display \\\"5 of 83\\\",\\nfor example.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"Int\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"films\",\n              \"description\": \"A list of all of the objects returned in the connection. This is a convenience\\nfield provided for quickly exploring the API; rather than querying for\\n\\\"{ edges { node } }\\\" when no edge data is needed, this field can be be used\\ninstead. Note that when clients like Relay need to fetch the \\\"cursor\\\" field on\\nthe edge to enable efficient pagination, this shortcut cannot be used, and the\\nfull \\\"{ edges { node } }\\\" version should be used instead.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"LIST\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"Film\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"inputFields\": null,\n          \"interfaces\": [],\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"OBJECT\",\n          \"name\": \"VehicleFilmsEdge\",\n          \"description\": \"An edge in a connection.\",\n          \"fields\": [\n            {\n              \"name\": \"node\",\n              \"description\": \"The item at the end of the edge\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"OBJECT\",\n                \"name\": \"Film\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"cursor\",\n              \"description\": \"A cursor for use in pagination\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"String\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"inputFields\": null,\n          \"interfaces\": [],\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"OBJECT\",\n          \"name\": \"PlanetFilmsConnection\",\n          \"description\": \"A connection to a list of items.\",\n          \"fields\": [\n            {\n              \"name\": \"pageInfo\",\n              \"description\": \"Information to aid in pagination.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"PageInfo\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"edges\",\n              \"description\": \"A list of edges.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"LIST\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"PlanetFilmsEdge\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"totalCount\",\n              \"description\": \"A count of the total number of objects in this connection, ignoring pagination.\\nThis allows a client to fetch the first five objects by passing \\\"5\\\" as the\\nargument to \\\"first\\\", then fetch the total count so it could display \\\"5 of 83\\\",\\nfor example.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"Int\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"films\",\n              \"description\": \"A list of all of the objects returned in the connection. This is a convenience\\nfield provided for quickly exploring the API; rather than querying for\\n\\\"{ edges { node } }\\\" when no edge data is needed, this field can be be used\\ninstead. Note that when clients like Relay need to fetch the \\\"cursor\\\" field on\\nthe edge to enable efficient pagination, this shortcut cannot be used, and the\\nfull \\\"{ edges { node } }\\\" version should be used instead.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"LIST\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"Film\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"inputFields\": null,\n          \"interfaces\": [],\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"OBJECT\",\n          \"name\": \"PlanetFilmsEdge\",\n          \"description\": \"An edge in a connection.\",\n          \"fields\": [\n            {\n              \"name\": \"node\",\n              \"description\": \"The item at the end of the edge\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"OBJECT\",\n                \"name\": \"Film\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"cursor\",\n              \"description\": \"A cursor for use in pagination\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"String\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"inputFields\": null,\n          \"interfaces\": [],\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"OBJECT\",\n          \"name\": \"SpeciesPeopleConnection\",\n          \"description\": \"A connection to a list of items.\",\n          \"fields\": [\n            {\n              \"name\": \"pageInfo\",\n              \"description\": \"Information to aid in pagination.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"PageInfo\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"edges\",\n              \"description\": \"A list of edges.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"LIST\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"SpeciesPeopleEdge\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"totalCount\",\n              \"description\": \"A count of the total number of objects in this connection, ignoring pagination.\\nThis allows a client to fetch the first five objects by passing \\\"5\\\" as the\\nargument to \\\"first\\\", then fetch the total count so it could display \\\"5 of 83\\\",\\nfor example.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"Int\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"people\",\n              \"description\": \"A list of all of the objects returned in the connection. This is a convenience\\nfield provided for quickly exploring the API; rather than querying for\\n\\\"{ edges { node } }\\\" when no edge data is needed, this field can be be used\\ninstead. Note that when clients like Relay need to fetch the \\\"cursor\\\" field on\\nthe edge to enable efficient pagination, this shortcut cannot be used, and the\\nfull \\\"{ edges { node } }\\\" version should be used instead.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"LIST\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"Person\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"inputFields\": null,\n          \"interfaces\": [],\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"OBJECT\",\n          \"name\": \"SpeciesPeopleEdge\",\n          \"description\": \"An edge in a connection.\",\n          \"fields\": [\n            {\n              \"name\": \"node\",\n              \"description\": \"The item at the end of the edge\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"OBJECT\",\n                \"name\": \"Person\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"cursor\",\n              \"description\": \"A cursor for use in pagination\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"String\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"inputFields\": null,\n          \"interfaces\": [],\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"OBJECT\",\n          \"name\": \"SpeciesFilmsConnection\",\n          \"description\": \"A connection to a list of items.\",\n          \"fields\": [\n            {\n              \"name\": \"pageInfo\",\n              \"description\": \"Information to aid in pagination.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"PageInfo\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"edges\",\n              \"description\": \"A list of edges.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"LIST\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"SpeciesFilmsEdge\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"totalCount\",\n              \"description\": \"A count of the total number of objects in this connection, ignoring pagination.\\nThis allows a client to fetch the first five objects by passing \\\"5\\\" as the\\nargument to \\\"first\\\", then fetch the total count so it could display \\\"5 of 83\\\",\\nfor example.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"Int\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"films\",\n              \"description\": \"A list of all of the objects returned in the connection. This is a convenience\\nfield provided for quickly exploring the API; rather than querying for\\n\\\"{ edges { node } }\\\" when no edge data is needed, this field can be be used\\ninstead. Note that when clients like Relay need to fetch the \\\"cursor\\\" field on\\nthe edge to enable efficient pagination, this shortcut cannot be used, and the\\nfull \\\"{ edges { node } }\\\" version should be used instead.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"LIST\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"Film\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"inputFields\": null,\n          \"interfaces\": [],\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"OBJECT\",\n          \"name\": \"SpeciesFilmsEdge\",\n          \"description\": \"An edge in a connection.\",\n          \"fields\": [\n            {\n              \"name\": \"node\",\n              \"description\": \"The item at the end of the edge\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"OBJECT\",\n                \"name\": \"Film\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"cursor\",\n              \"description\": \"A cursor for use in pagination\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"String\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"inputFields\": null,\n          \"interfaces\": [],\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"OBJECT\",\n          \"name\": \"FilmStarshipsConnection\",\n          \"description\": \"A connection to a list of items.\",\n          \"fields\": [\n            {\n              \"name\": \"pageInfo\",\n              \"description\": \"Information to aid in pagination.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"PageInfo\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"edges\",\n              \"description\": \"A list of edges.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"LIST\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"FilmStarshipsEdge\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"totalCount\",\n              \"description\": \"A count of the total number of objects in this connection, ignoring pagination.\\nThis allows a client to fetch the first five objects by passing \\\"5\\\" as the\\nargument to \\\"first\\\", then fetch the total count so it could display \\\"5 of 83\\\",\\nfor example.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"Int\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"starships\",\n              \"description\": \"A list of all of the objects returned in the connection. This is a convenience\\nfield provided for quickly exploring the API; rather than querying for\\n\\\"{ edges { node } }\\\" when no edge data is needed, this field can be be used\\ninstead. Note that when clients like Relay need to fetch the \\\"cursor\\\" field on\\nthe edge to enable efficient pagination, this shortcut cannot be used, and the\\nfull \\\"{ edges { node } }\\\" version should be used instead.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"LIST\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"Starship\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"inputFields\": null,\n          \"interfaces\": [],\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"OBJECT\",\n          \"name\": \"FilmStarshipsEdge\",\n          \"description\": \"An edge in a connection.\",\n          \"fields\": [\n            {\n              \"name\": \"node\",\n              \"description\": \"The item at the end of the edge\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"OBJECT\",\n                \"name\": \"Starship\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"cursor\",\n              \"description\": \"A cursor for use in pagination\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"String\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"inputFields\": null,\n          \"interfaces\": [],\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"OBJECT\",\n          \"name\": \"FilmVehiclesConnection\",\n          \"description\": \"A connection to a list of items.\",\n          \"fields\": [\n            {\n              \"name\": \"pageInfo\",\n              \"description\": \"Information to aid in pagination.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"PageInfo\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"edges\",\n              \"description\": \"A list of edges.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"LIST\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"FilmVehiclesEdge\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"totalCount\",\n              \"description\": \"A count of the total number of objects in this connection, ignoring pagination.\\nThis allows a client to fetch the first five objects by passing \\\"5\\\" as the\\nargument to \\\"first\\\", then fetch the total count so it could display \\\"5 of 83\\\",\\nfor example.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"Int\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"vehicles\",\n              \"description\": \"A list of all of the objects returned in the connection. This is a convenience\\nfield provided for quickly exploring the API; rather than querying for\\n\\\"{ edges { node } }\\\" when no edge data is needed, this field can be be used\\ninstead. Note that when clients like Relay need to fetch the \\\"cursor\\\" field on\\nthe edge to enable efficient pagination, this shortcut cannot be used, and the\\nfull \\\"{ edges { node } }\\\" version should be used instead.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"LIST\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"Vehicle\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"inputFields\": null,\n          \"interfaces\": [],\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"OBJECT\",\n          \"name\": \"FilmVehiclesEdge\",\n          \"description\": \"An edge in a connection.\",\n          \"fields\": [\n            {\n              \"name\": \"node\",\n              \"description\": \"The item at the end of the edge\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"OBJECT\",\n                \"name\": \"Vehicle\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"cursor\",\n              \"description\": \"A cursor for use in pagination\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"String\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"inputFields\": null,\n          \"interfaces\": [],\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"OBJECT\",\n          \"name\": \"FilmCharactersConnection\",\n          \"description\": \"A connection to a list of items.\",\n          \"fields\": [\n            {\n              \"name\": \"pageInfo\",\n              \"description\": \"Information to aid in pagination.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"PageInfo\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"edges\",\n              \"description\": \"A list of edges.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"LIST\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"FilmCharactersEdge\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"totalCount\",\n              \"description\": \"A count of the total number of objects in this connection, ignoring pagination.\\nThis allows a client to fetch the first five objects by passing \\\"5\\\" as the\\nargument to \\\"first\\\", then fetch the total count so it could display \\\"5 of 83\\\",\\nfor example.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"Int\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"characters\",\n              \"description\": \"A list of all of the objects returned in the connection. This is a convenience\\nfield provided for quickly exploring the API; rather than querying for\\n\\\"{ edges { node } }\\\" when no edge data is needed, this field can be be used\\ninstead. Note that when clients like Relay need to fetch the \\\"cursor\\\" field on\\nthe edge to enable efficient pagination, this shortcut cannot be used, and the\\nfull \\\"{ edges { node } }\\\" version should be used instead.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"LIST\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"Person\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"inputFields\": null,\n          \"interfaces\": [],\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"OBJECT\",\n          \"name\": \"FilmCharactersEdge\",\n          \"description\": \"An edge in a connection.\",\n          \"fields\": [\n            {\n              \"name\": \"node\",\n              \"description\": \"The item at the end of the edge\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"OBJECT\",\n                \"name\": \"Person\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"cursor\",\n              \"description\": \"A cursor for use in pagination\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"String\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"inputFields\": null,\n          \"interfaces\": [],\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"OBJECT\",\n          \"name\": \"FilmPlanetsConnection\",\n          \"description\": \"A connection to a list of items.\",\n          \"fields\": [\n            {\n              \"name\": \"pageInfo\",\n              \"description\": \"Information to aid in pagination.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"PageInfo\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"edges\",\n              \"description\": \"A list of edges.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"LIST\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"FilmPlanetsEdge\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"totalCount\",\n              \"description\": \"A count of the total number of objects in this connection, ignoring pagination.\\nThis allows a client to fetch the first five objects by passing \\\"5\\\" as the\\nargument to \\\"first\\\", then fetch the total count so it could display \\\"5 of 83\\\",\\nfor example.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"Int\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"planets\",\n              \"description\": \"A list of all of the objects returned in the connection. This is a convenience\\nfield provided for quickly exploring the API; rather than querying for\\n\\\"{ edges { node } }\\\" when no edge data is needed, this field can be be used\\ninstead. Note that when clients like Relay need to fetch the \\\"cursor\\\" field on\\nthe edge to enable efficient pagination, this shortcut cannot be used, and the\\nfull \\\"{ edges { node } }\\\" version should be used instead.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"LIST\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"Planet\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"inputFields\": null,\n          \"interfaces\": [],\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"OBJECT\",\n          \"name\": \"FilmPlanetsEdge\",\n          \"description\": \"An edge in a connection.\",\n          \"fields\": [\n            {\n              \"name\": \"node\",\n              \"description\": \"The item at the end of the edge\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"OBJECT\",\n                \"name\": \"Planet\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"cursor\",\n              \"description\": \"A cursor for use in pagination\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"String\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"inputFields\": null,\n          \"interfaces\": [],\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"OBJECT\",\n          \"name\": \"PeopleConnection\",\n          \"description\": \"A connection to a list of items.\",\n          \"fields\": [\n            {\n              \"name\": \"pageInfo\",\n              \"description\": \"Information to aid in pagination.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"PageInfo\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"edges\",\n              \"description\": \"A list of edges.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"LIST\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"PeopleEdge\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"totalCount\",\n              \"description\": \"A count of the total number of objects in this connection, ignoring pagination.\\nThis allows a client to fetch the first five objects by passing \\\"5\\\" as the\\nargument to \\\"first\\\", then fetch the total count so it could display \\\"5 of 83\\\",\\nfor example.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"Int\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"people\",\n              \"description\": \"A list of all of the objects returned in the connection. This is a convenience\\nfield provided for quickly exploring the API; rather than querying for\\n\\\"{ edges { node } }\\\" when no edge data is needed, this field can be be used\\ninstead. Note that when clients like Relay need to fetch the \\\"cursor\\\" field on\\nthe edge to enable efficient pagination, this shortcut cannot be used, and the\\nfull \\\"{ edges { node } }\\\" version should be used instead.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"LIST\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"Person\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"inputFields\": null,\n          \"interfaces\": [],\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"OBJECT\",\n          \"name\": \"PeopleEdge\",\n          \"description\": \"An edge in a connection.\",\n          \"fields\": [\n            {\n              \"name\": \"node\",\n              \"description\": \"The item at the end of the edge\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"OBJECT\",\n                \"name\": \"Person\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"cursor\",\n              \"description\": \"A cursor for use in pagination\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"String\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"inputFields\": null,\n          \"interfaces\": [],\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"OBJECT\",\n          \"name\": \"PlanetsConnection\",\n          \"description\": \"A connection to a list of items.\",\n          \"fields\": [\n            {\n              \"name\": \"pageInfo\",\n              \"description\": \"Information to aid in pagination.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"PageInfo\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"edges\",\n              \"description\": \"A list of edges.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"LIST\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"PlanetsEdge\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"totalCount\",\n              \"description\": \"A count of the total number of objects in this connection, ignoring pagination.\\nThis allows a client to fetch the first five objects by passing \\\"5\\\" as the\\nargument to \\\"first\\\", then fetch the total count so it could display \\\"5 of 83\\\",\\nfor example.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"Int\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"planets\",\n              \"description\": \"A list of all of the objects returned in the connection. This is a convenience\\nfield provided for quickly exploring the API; rather than querying for\\n\\\"{ edges { node } }\\\" when no edge data is needed, this field can be be used\\ninstead. Note that when clients like Relay need to fetch the \\\"cursor\\\" field on\\nthe edge to enable efficient pagination, this shortcut cannot be used, and the\\nfull \\\"{ edges { node } }\\\" version should be used instead.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"LIST\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"Planet\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"inputFields\": null,\n          \"interfaces\": [],\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"OBJECT\",\n          \"name\": \"PlanetsEdge\",\n          \"description\": \"An edge in a connection.\",\n          \"fields\": [\n            {\n              \"name\": \"node\",\n              \"description\": \"The item at the end of the edge\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"OBJECT\",\n                \"name\": \"Planet\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"cursor\",\n              \"description\": \"A cursor for use in pagination\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"String\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"inputFields\": null,\n          \"interfaces\": [],\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"OBJECT\",\n          \"name\": \"SpeciesConnection\",\n          \"description\": \"A connection to a list of items.\",\n          \"fields\": [\n            {\n              \"name\": \"pageInfo\",\n              \"description\": \"Information to aid in pagination.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"PageInfo\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"edges\",\n              \"description\": \"A list of edges.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"LIST\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"SpeciesEdge\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"totalCount\",\n              \"description\": \"A count of the total number of objects in this connection, ignoring pagination.\\nThis allows a client to fetch the first five objects by passing \\\"5\\\" as the\\nargument to \\\"first\\\", then fetch the total count so it could display \\\"5 of 83\\\",\\nfor example.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"Int\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"species\",\n              \"description\": \"A list of all of the objects returned in the connection. This is a convenience\\nfield provided for quickly exploring the API; rather than querying for\\n\\\"{ edges { node } }\\\" when no edge data is needed, this field can be be used\\ninstead. Note that when clients like Relay need to fetch the \\\"cursor\\\" field on\\nthe edge to enable efficient pagination, this shortcut cannot be used, and the\\nfull \\\"{ edges { node } }\\\" version should be used instead.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"LIST\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"Species\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"inputFields\": null,\n          \"interfaces\": [],\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"OBJECT\",\n          \"name\": \"SpeciesEdge\",\n          \"description\": \"An edge in a connection.\",\n          \"fields\": [\n            {\n              \"name\": \"node\",\n              \"description\": \"The item at the end of the edge\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"OBJECT\",\n                \"name\": \"Species\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"cursor\",\n              \"description\": \"A cursor for use in pagination\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"String\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"inputFields\": null,\n          \"interfaces\": [],\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"OBJECT\",\n          \"name\": \"StarshipsConnection\",\n          \"description\": \"A connection to a list of items.\",\n          \"fields\": [\n            {\n              \"name\": \"pageInfo\",\n              \"description\": \"Information to aid in pagination.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"PageInfo\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"edges\",\n              \"description\": \"A list of edges.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"LIST\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"StarshipsEdge\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"totalCount\",\n              \"description\": \"A count of the total number of objects in this connection, ignoring pagination.\\nThis allows a client to fetch the first five objects by passing \\\"5\\\" as the\\nargument to \\\"first\\\", then fetch the total count so it could display \\\"5 of 83\\\",\\nfor example.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"Int\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"starships\",\n              \"description\": \"A list of all of the objects returned in the connection. This is a convenience\\nfield provided for quickly exploring the API; rather than querying for\\n\\\"{ edges { node } }\\\" when no edge data is needed, this field can be be used\\ninstead. Note that when clients like Relay need to fetch the \\\"cursor\\\" field on\\nthe edge to enable efficient pagination, this shortcut cannot be used, and the\\nfull \\\"{ edges { node } }\\\" version should be used instead.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"LIST\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"Starship\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"inputFields\": null,\n          \"interfaces\": [],\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"OBJECT\",\n          \"name\": \"StarshipsEdge\",\n          \"description\": \"An edge in a connection.\",\n          \"fields\": [\n            {\n              \"name\": \"node\",\n              \"description\": \"The item at the end of the edge\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"OBJECT\",\n                \"name\": \"Starship\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"cursor\",\n              \"description\": \"A cursor for use in pagination\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"String\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"inputFields\": null,\n          \"interfaces\": [],\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"OBJECT\",\n          \"name\": \"VehiclesConnection\",\n          \"description\": \"A connection to a list of items.\",\n          \"fields\": [\n            {\n              \"name\": \"pageInfo\",\n              \"description\": \"Information to aid in pagination.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"PageInfo\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"edges\",\n              \"description\": \"A list of edges.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"LIST\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"VehiclesEdge\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"totalCount\",\n              \"description\": \"A count of the total number of objects in this connection, ignoring pagination.\\nThis allows a client to fetch the first five objects by passing \\\"5\\\" as the\\nargument to \\\"first\\\", then fetch the total count so it could display \\\"5 of 83\\\",\\nfor example.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"Int\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"vehicles\",\n              \"description\": \"A list of all of the objects returned in the connection. This is a convenience\\nfield provided for quickly exploring the API; rather than querying for\\n\\\"{ edges { node } }\\\" when no edge data is needed, this field can be be used\\ninstead. Note that when clients like Relay need to fetch the \\\"cursor\\\" field on\\nthe edge to enable efficient pagination, this shortcut cannot be used, and the\\nfull \\\"{ edges { node } }\\\" version should be used instead.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"LIST\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"Vehicle\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"inputFields\": null,\n          \"interfaces\": [],\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"OBJECT\",\n          \"name\": \"VehiclesEdge\",\n          \"description\": \"An edge in a connection.\",\n          \"fields\": [\n            {\n              \"name\": \"node\",\n              \"description\": \"The item at the end of the edge\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"OBJECT\",\n                \"name\": \"Vehicle\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"cursor\",\n              \"description\": \"A cursor for use in pagination\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"String\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"inputFields\": null,\n          \"interfaces\": [],\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"OBJECT\",\n          \"name\": \"__Schema\",\n          \"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.\",\n          \"fields\": [\n            {\n              \"name\": \"types\",\n              \"description\": \"A list of all types supported by this server.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"LIST\",\n                  \"name\": null,\n                  \"ofType\": {\n                    \"kind\": \"NON_NULL\",\n                    \"name\": null,\n                    \"ofType\": {\n                      \"kind\": \"OBJECT\",\n                      \"name\": \"__Type\",\n                      \"ofType\": null\n                    }\n                  }\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"queryType\",\n              \"description\": \"The type that query operations will be rooted at.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"__Type\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"mutationType\",\n              \"description\": \"If this server supports mutation, the type that mutation operations will be rooted at.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"OBJECT\",\n                \"name\": \"__Type\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"subscriptionType\",\n              \"description\": \"If this server support subscription, the type that subscription operations will be rooted at.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"OBJECT\",\n                \"name\": \"__Type\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"directives\",\n              \"description\": \"A list of all directives supported by this server.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"LIST\",\n                  \"name\": null,\n                  \"ofType\": {\n                    \"kind\": \"NON_NULL\",\n                    \"name\": null,\n                    \"ofType\": {\n                      \"kind\": \"OBJECT\",\n                      \"name\": \"__Directive\",\n                      \"ofType\": null\n                    }\n                  }\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"inputFields\": null,\n          \"interfaces\": [],\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"OBJECT\",\n          \"name\": \"__Type\",\n          \"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 and description, 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.\",\n          \"fields\": [\n            {\n              \"name\": \"kind\",\n              \"description\": null,\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"ENUM\",\n                  \"name\": \"__TypeKind\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"name\",\n              \"description\": null,\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"String\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"description\",\n              \"description\": null,\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"String\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"fields\",\n              \"description\": null,\n              \"args\": [\n                {\n                  \"name\": \"includeDeprecated\",\n                  \"description\": null,\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"Boolean\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": \"false\"\n                }\n              ],\n              \"type\": {\n                \"kind\": \"LIST\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"NON_NULL\",\n                  \"name\": null,\n                  \"ofType\": {\n                    \"kind\": \"OBJECT\",\n                    \"name\": \"__Field\",\n                    \"ofType\": null\n                  }\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"interfaces\",\n              \"description\": null,\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"LIST\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"NON_NULL\",\n                  \"name\": null,\n                  \"ofType\": {\n                    \"kind\": \"OBJECT\",\n                    \"name\": \"__Type\",\n                    \"ofType\": null\n                  }\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"possibleTypes\",\n              \"description\": null,\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"LIST\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"NON_NULL\",\n                  \"name\": null,\n                  \"ofType\": {\n                    \"kind\": \"OBJECT\",\n                    \"name\": \"__Type\",\n                    \"ofType\": null\n                  }\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"enumValues\",\n              \"description\": null,\n              \"args\": [\n                {\n                  \"name\": \"includeDeprecated\",\n                  \"description\": null,\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"Boolean\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": \"false\"\n                }\n              ],\n              \"type\": {\n                \"kind\": \"LIST\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"NON_NULL\",\n                  \"name\": null,\n                  \"ofType\": {\n                    \"kind\": \"OBJECT\",\n                    \"name\": \"__EnumValue\",\n                    \"ofType\": null\n                  }\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"inputFields\",\n              \"description\": null,\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"LIST\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"NON_NULL\",\n                  \"name\": null,\n                  \"ofType\": {\n                    \"kind\": \"OBJECT\",\n                    \"name\": \"__InputValue\",\n                    \"ofType\": null\n                  }\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"ofType\",\n              \"description\": null,\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"OBJECT\",\n                \"name\": \"__Type\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"inputFields\": null,\n          \"interfaces\": [],\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"ENUM\",\n          \"name\": \"__TypeKind\",\n          \"description\": \"An enum describing what kind of type a given `__Type` is.\",\n          \"fields\": null,\n          \"inputFields\": null,\n          \"interfaces\": null,\n          \"enumValues\": [\n            {\n              \"name\": \"SCALAR\",\n              \"description\": \"Indicates this type is a scalar.\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"OBJECT\",\n              \"description\": \"Indicates this type is an object. `fields` and `interfaces` are valid fields.\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"INTERFACE\",\n              \"description\": \"Indicates this type is an interface. `fields` and `possibleTypes` are valid fields.\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"UNION\",\n              \"description\": \"Indicates this type is a union. `possibleTypes` is a valid field.\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"ENUM\",\n              \"description\": \"Indicates this type is an enum. `enumValues` is a valid field.\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"INPUT_OBJECT\",\n              \"description\": \"Indicates this type is an input object. `inputFields` is a valid field.\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"LIST\",\n              \"description\": \"Indicates this type is a list. `ofType` is a valid field.\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"NON_NULL\",\n              \"description\": \"Indicates this type is a non-null. `ofType` is a valid field.\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"OBJECT\",\n          \"name\": \"__Field\",\n          \"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.\",\n          \"fields\": [\n            {\n              \"name\": \"name\",\n              \"description\": null,\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"String\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"description\",\n              \"description\": null,\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"String\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"args\",\n              \"description\": null,\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"LIST\",\n                  \"name\": null,\n                  \"ofType\": {\n                    \"kind\": \"NON_NULL\",\n                    \"name\": null,\n                    \"ofType\": {\n                      \"kind\": \"OBJECT\",\n                      \"name\": \"__InputValue\",\n                      \"ofType\": null\n                    }\n                  }\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"type\",\n              \"description\": null,\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"__Type\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"isDeprecated\",\n              \"description\": null,\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"Boolean\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"deprecationReason\",\n              \"description\": null,\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"String\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"inputFields\": null,\n          \"interfaces\": [],\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"OBJECT\",\n          \"name\": \"__InputValue\",\n          \"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.\",\n          \"fields\": [\n            {\n              \"name\": \"name\",\n              \"description\": null,\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"String\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"description\",\n              \"description\": null,\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"String\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"type\",\n              \"description\": null,\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"__Type\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"defaultValue\",\n              \"description\": \"A GraphQL-formatted string representing the default value for this input value.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"String\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"inputFields\": null,\n          \"interfaces\": [],\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"OBJECT\",\n          \"name\": \"__EnumValue\",\n          \"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.\",\n          \"fields\": [\n            {\n              \"name\": \"name\",\n              \"description\": null,\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"String\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"description\",\n              \"description\": null,\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"String\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"isDeprecated\",\n              \"description\": null,\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"Boolean\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"deprecationReason\",\n              \"description\": null,\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"String\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"inputFields\": null,\n          \"interfaces\": [],\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"OBJECT\",\n          \"name\": \"__Directive\",\n          \"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.\",\n          \"fields\": [\n            {\n              \"name\": \"name\",\n              \"description\": null,\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"String\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"description\",\n              \"description\": null,\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"String\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"locations\",\n              \"description\": null,\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"LIST\",\n                  \"name\": null,\n                  \"ofType\": {\n                    \"kind\": \"NON_NULL\",\n                    \"name\": null,\n                    \"ofType\": {\n                      \"kind\": \"ENUM\",\n                      \"name\": \"__DirectiveLocation\",\n                      \"ofType\": null\n                    }\n                  }\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"args\",\n              \"description\": null,\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"LIST\",\n                  \"name\": null,\n                  \"ofType\": {\n                    \"kind\": \"NON_NULL\",\n                    \"name\": null,\n                    \"ofType\": {\n                      \"kind\": \"OBJECT\",\n                      \"name\": \"__InputValue\",\n                      \"ofType\": null\n                    }\n                  }\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"onOperation\",\n              \"description\": null,\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"Boolean\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": true,\n              \"deprecationReason\": \"Use `locations`.\"\n            },\n            {\n              \"name\": \"onFragment\",\n              \"description\": null,\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"Boolean\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": true,\n              \"deprecationReason\": \"Use `locations`.\"\n            },\n            {\n              \"name\": \"onField\",\n              \"description\": null,\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"Boolean\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": true,\n              \"deprecationReason\": \"Use `locations`.\"\n            }\n          ],\n          \"inputFields\": null,\n          \"interfaces\": [],\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"ENUM\",\n          \"name\": \"__DirectiveLocation\",\n          \"description\": \"A Directive can be adjacent to many parts of the GraphQL language, a __DirectiveLocation describes one such possible adjacencies.\",\n          \"fields\": null,\n          \"inputFields\": null,\n          \"interfaces\": null,\n          \"enumValues\": [\n            {\n              \"name\": \"QUERY\",\n              \"description\": \"Location adjacent to a query operation.\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"MUTATION\",\n              \"description\": \"Location adjacent to a mutation operation.\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"SUBSCRIPTION\",\n              \"description\": \"Location adjacent to a subscription operation.\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"FIELD\",\n              \"description\": \"Location adjacent to a field.\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"FRAGMENT_DEFINITION\",\n              \"description\": \"Location adjacent to a fragment definition.\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"FRAGMENT_SPREAD\",\n              \"description\": \"Location adjacent to a fragment spread.\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"INLINE_FRAGMENT\",\n              \"description\": \"Location adjacent to an inline fragment.\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"SCHEMA\",\n              \"description\": \"Location adjacent to a schema definition.\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"SCALAR\",\n              \"description\": \"Location adjacent to a scalar definition.\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"OBJECT\",\n              \"description\": \"Location adjacent to an object type definition.\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"FIELD_DEFINITION\",\n              \"description\": \"Location adjacent to a field definition.\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"ARGUMENT_DEFINITION\",\n              \"description\": \"Location adjacent to an argument definition.\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"INTERFACE\",\n              \"description\": \"Location adjacent to an interface definition.\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"UNION\",\n              \"description\": \"Location adjacent to a union definition.\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"ENUM\",\n              \"description\": \"Location adjacent to an enum definition.\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"ENUM_VALUE\",\n              \"description\": \"Location adjacent to an enum value definition.\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"INPUT_OBJECT\",\n              \"description\": \"Location adjacent to an input object type definition.\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"INPUT_FIELD_DEFINITION\",\n              \"description\": \"Location adjacent to an input object field definition.\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"possibleTypes\": null\n        }\n      ],\n      \"directives\": [\n        {\n          \"name\": \"include\",\n          \"description\": \"Directs the executor to include this field or fragment only when the `if` argument is true.\",\n          \"locations\": [\"FIELD\", \"FRAGMENT_SPREAD\", \"INLINE_FRAGMENT\"],\n          \"args\": [\n            {\n              \"name\": \"if\",\n              \"description\": \"Included when true.\",\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"Boolean\",\n                  \"ofType\": null\n                }\n              },\n              \"defaultValue\": null\n            }\n          ]\n        },\n        {\n          \"name\": \"skip\",\n          \"description\": \"Directs the executor to skip this field or fragment when the `if` argument is true.\",\n          \"locations\": [\"FIELD\", \"FRAGMENT_SPREAD\", \"INLINE_FRAGMENT\"],\n          \"args\": [\n            {\n              \"name\": \"if\",\n              \"description\": \"Skipped when true.\",\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"Boolean\",\n                  \"ofType\": null\n                }\n              },\n              \"defaultValue\": null\n            }\n          ]\n        },\n        {\n          \"name\": \"deprecated\",\n          \"description\": \"Marks an element of a GraphQL schema as no longer supported.\",\n          \"locations\": [\"FIELD_DEFINITION\", \"ENUM_VALUE\"],\n          \"args\": [\n            {\n              \"name\": \"reason\",\n              \"description\": \"Explains why this element was deprecated, usually also including a suggestion for how to access supported similar data. Formatted in [Markdown](https://daringfireball.net/projects/markdown/).\",\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"String\",\n                \"ofType\": null\n              },\n              \"defaultValue\": \"\\\"No longer supported\\\"\"\n            }\n          ]\n        }\n      ]\n    }\n  }\n}\n"
  },
  {
    "path": "demo/presets/yelp_introspection.json",
    "content": "{\n  \"data\": {\n    \"__schema\": {\n      \"queryType\": {\n        \"name\": \"Query\"\n      },\n      \"mutationType\": null,\n      \"subscriptionType\": null,\n      \"types\": [\n        {\n          \"kind\": \"OBJECT\",\n          \"name\": \"Query\",\n          \"description\": null,\n          \"fields\": [\n            {\n              \"name\": \"business\",\n              \"description\": null,\n              \"args\": [\n                {\n                  \"name\": \"id\",\n                  \"description\": null,\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"String\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"locale\",\n                  \"description\": null,\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"String\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                }\n              ],\n              \"type\": {\n                \"kind\": \"OBJECT\",\n                \"name\": \"Business\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"reviews\",\n              \"description\": null,\n              \"args\": [\n                {\n                  \"name\": \"business\",\n                  \"description\": null,\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"String\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"locale\",\n                  \"description\": null,\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"String\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                }\n              ],\n              \"type\": {\n                \"kind\": \"OBJECT\",\n                \"name\": \"Reviews\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"phone_search\",\n              \"description\": null,\n              \"args\": [\n                {\n                  \"name\": \"phone\",\n                  \"description\": null,\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"String\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                }\n              ],\n              \"type\": {\n                \"kind\": \"OBJECT\",\n                \"name\": \"Businesses\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"search\",\n              \"description\": null,\n              \"args\": [\n                {\n                  \"name\": \"term\",\n                  \"description\": null,\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"String\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"location\",\n                  \"description\": null,\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"String\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"country\",\n                  \"description\": null,\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"String\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"offset\",\n                  \"description\": null,\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"Int\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"limit\",\n                  \"description\": null,\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"Int\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"sort_by\",\n                  \"description\": null,\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"String\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"locale\",\n                  \"description\": null,\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"String\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"longitude\",\n                  \"description\": null,\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"Float\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"latitude\",\n                  \"description\": null,\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"Float\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"categories\",\n                  \"description\": null,\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"String\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"open_now\",\n                  \"description\": null,\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"String\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"open_at\",\n                  \"description\": null,\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"String\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"price\",\n                  \"description\": null,\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"String\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"attributes\",\n                  \"description\": null,\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"String\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                },\n                {\n                  \"name\": \"radius\",\n                  \"description\": null,\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"Float\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": null\n                }\n              ],\n              \"type\": {\n                \"kind\": \"OBJECT\",\n                \"name\": \"Businesses\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"inputFields\": null,\n          \"interfaces\": [],\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"OBJECT\",\n          \"name\": \"Business\",\n          \"description\": null,\n          \"fields\": [\n            {\n              \"name\": \"name\",\n              \"description\": null,\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"String\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"id\",\n              \"description\": null,\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"String\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"is_claimed\",\n              \"description\": null,\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"Boolean\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"is_closed\",\n              \"description\": null,\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"Boolean\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"url\",\n              \"description\": null,\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"String\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"phone\",\n              \"description\": null,\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"String\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"display_phone\",\n              \"description\": null,\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"String\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"review_count\",\n              \"description\": null,\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"Int\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"categories\",\n              \"description\": null,\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"LIST\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"Category\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"rating\",\n              \"description\": null,\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"Float\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"location\",\n              \"description\": null,\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"OBJECT\",\n                \"name\": \"Location\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"coordinates\",\n              \"description\": null,\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"OBJECT\",\n                \"name\": \"Coordinates\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"photos\",\n              \"description\": null,\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"LIST\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"String\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"hours\",\n              \"description\": null,\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"LIST\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"Hours\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"reviews\",\n              \"description\": null,\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"LIST\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"Review\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"inputFields\": null,\n          \"interfaces\": [],\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"SCALAR\",\n          \"name\": \"String\",\n          \"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.\",\n          \"fields\": null,\n          \"inputFields\": null,\n          \"interfaces\": null,\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"SCALAR\",\n          \"name\": \"Boolean\",\n          \"description\": \"The `Boolean` scalar type represents `true` or `false`.\",\n          \"fields\": null,\n          \"inputFields\": null,\n          \"interfaces\": null,\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"SCALAR\",\n          \"name\": \"Int\",\n          \"description\": \"The `Int` scalar type represents non-fractional signed whole numeric values. Int can represent values between -(2^53 - 1) and 2^53 - 1 since represented in JSON as double-precision floating point numbers specifiedby [IEEE 754](http://en.wikipedia.org/wiki/IEEE_floating_point).\",\n          \"fields\": null,\n          \"inputFields\": null,\n          \"interfaces\": null,\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"OBJECT\",\n          \"name\": \"Category\",\n          \"description\": null,\n          \"fields\": [\n            {\n              \"name\": \"title\",\n              \"description\": null,\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"String\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"alias\",\n              \"description\": null,\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"String\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"inputFields\": null,\n          \"interfaces\": [],\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"SCALAR\",\n          \"name\": \"Float\",\n          \"description\": \"The `Float` scalar type represents signed double-precision fractional values as specified by [IEEE 754](http://en.wikipedia.org/wiki/IEEE_floating_point). \",\n          \"fields\": null,\n          \"inputFields\": null,\n          \"interfaces\": null,\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"OBJECT\",\n          \"name\": \"Location\",\n          \"description\": null,\n          \"fields\": [\n            {\n              \"name\": \"address1\",\n              \"description\": null,\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"String\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"address2\",\n              \"description\": null,\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"String\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"address3\",\n              \"description\": null,\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"String\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"city\",\n              \"description\": null,\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"String\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"state\",\n              \"description\": null,\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"String\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"zip_code\",\n              \"description\": null,\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"String\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"country\",\n              \"description\": null,\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"String\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"formatted_address\",\n              \"description\": null,\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"String\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"inputFields\": null,\n          \"interfaces\": [],\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"OBJECT\",\n          \"name\": \"Coordinates\",\n          \"description\": null,\n          \"fields\": [\n            {\n              \"name\": \"latitude\",\n              \"description\": null,\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"Float\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"longitude\",\n              \"description\": null,\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"Float\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"inputFields\": null,\n          \"interfaces\": [],\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"OBJECT\",\n          \"name\": \"Hours\",\n          \"description\": null,\n          \"fields\": [\n            {\n              \"name\": \"hours_type\",\n              \"description\": null,\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"String\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"open\",\n              \"description\": null,\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"LIST\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"OpenHours\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"is_open_now\",\n              \"description\": null,\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"Boolean\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"inputFields\": null,\n          \"interfaces\": [],\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"OBJECT\",\n          \"name\": \"OpenHours\",\n          \"description\": null,\n          \"fields\": [\n            {\n              \"name\": \"is_overnight\",\n              \"description\": null,\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"Boolean\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"end\",\n              \"description\": null,\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"String\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"start\",\n              \"description\": null,\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"String\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"day\",\n              \"description\": null,\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"Int\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"inputFields\": null,\n          \"interfaces\": [],\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"OBJECT\",\n          \"name\": \"Review\",\n          \"description\": null,\n          \"fields\": [\n            {\n              \"name\": \"rating\",\n              \"description\": null,\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"Int\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"user\",\n              \"description\": null,\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"OBJECT\",\n                \"name\": \"User\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"text\",\n              \"description\": null,\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"String\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"time_created\",\n              \"description\": null,\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"String\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"url\",\n              \"description\": null,\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"String\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"inputFields\": null,\n          \"interfaces\": [],\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"OBJECT\",\n          \"name\": \"User\",\n          \"description\": null,\n          \"fields\": [\n            {\n              \"name\": \"image_url\",\n              \"description\": null,\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"String\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"name\",\n              \"description\": null,\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"String\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"inputFields\": null,\n          \"interfaces\": [],\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"OBJECT\",\n          \"name\": \"Reviews\",\n          \"description\": null,\n          \"fields\": [\n            {\n              \"name\": \"review\",\n              \"description\": null,\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"LIST\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"Review\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"total\",\n              \"description\": null,\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"Int\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"inputFields\": null,\n          \"interfaces\": [],\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"OBJECT\",\n          \"name\": \"Businesses\",\n          \"description\": null,\n          \"fields\": [\n            {\n              \"name\": \"business\",\n              \"description\": null,\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"LIST\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"Business\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"total\",\n              \"description\": null,\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"Int\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"inputFields\": null,\n          \"interfaces\": [],\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"OBJECT\",\n          \"name\": \"__Schema\",\n          \"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.\",\n          \"fields\": [\n            {\n              \"name\": \"types\",\n              \"description\": \"A list of all types supported by this server.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"LIST\",\n                  \"name\": null,\n                  \"ofType\": {\n                    \"kind\": \"NON_NULL\",\n                    \"name\": null,\n                    \"ofType\": {\n                      \"kind\": \"OBJECT\",\n                      \"name\": \"__Type\",\n                      \"ofType\": null\n                    }\n                  }\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"queryType\",\n              \"description\": \"The type that query operations will be rooted at.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"__Type\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"mutationType\",\n              \"description\": \"If this server supports mutation, the type that mutation operations will be rooted at.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"OBJECT\",\n                \"name\": \"__Type\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"subscriptionType\",\n              \"description\": \"If this server support subscription, the type that subscription operations will be rooted at.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"OBJECT\",\n                \"name\": \"__Type\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"directives\",\n              \"description\": \"A list of all directives supported by this server.\",\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"LIST\",\n                  \"name\": null,\n                  \"ofType\": {\n                    \"kind\": \"NON_NULL\",\n                    \"name\": null,\n                    \"ofType\": {\n                      \"kind\": \"OBJECT\",\n                      \"name\": \"__Directive\",\n                      \"ofType\": null\n                    }\n                  }\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"inputFields\": null,\n          \"interfaces\": [],\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"OBJECT\",\n          \"name\": \"__Type\",\n          \"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 and description, 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.\",\n          \"fields\": [\n            {\n              \"name\": \"kind\",\n              \"description\": null,\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"ENUM\",\n                  \"name\": \"__TypeKind\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"name\",\n              \"description\": null,\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"String\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"description\",\n              \"description\": null,\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"String\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"fields\",\n              \"description\": null,\n              \"args\": [\n                {\n                  \"name\": \"includeDeprecated\",\n                  \"description\": null,\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"Boolean\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": \"false\"\n                }\n              ],\n              \"type\": {\n                \"kind\": \"LIST\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"NON_NULL\",\n                  \"name\": null,\n                  \"ofType\": {\n                    \"kind\": \"OBJECT\",\n                    \"name\": \"__Field\",\n                    \"ofType\": null\n                  }\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"interfaces\",\n              \"description\": null,\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"LIST\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"NON_NULL\",\n                  \"name\": null,\n                  \"ofType\": {\n                    \"kind\": \"OBJECT\",\n                    \"name\": \"__Type\",\n                    \"ofType\": null\n                  }\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"possibleTypes\",\n              \"description\": null,\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"LIST\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"NON_NULL\",\n                  \"name\": null,\n                  \"ofType\": {\n                    \"kind\": \"OBJECT\",\n                    \"name\": \"__Type\",\n                    \"ofType\": null\n                  }\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"enumValues\",\n              \"description\": null,\n              \"args\": [\n                {\n                  \"name\": \"includeDeprecated\",\n                  \"description\": null,\n                  \"type\": {\n                    \"kind\": \"SCALAR\",\n                    \"name\": \"Boolean\",\n                    \"ofType\": null\n                  },\n                  \"defaultValue\": \"false\"\n                }\n              ],\n              \"type\": {\n                \"kind\": \"LIST\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"NON_NULL\",\n                  \"name\": null,\n                  \"ofType\": {\n                    \"kind\": \"OBJECT\",\n                    \"name\": \"__EnumValue\",\n                    \"ofType\": null\n                  }\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"inputFields\",\n              \"description\": null,\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"LIST\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"NON_NULL\",\n                  \"name\": null,\n                  \"ofType\": {\n                    \"kind\": \"OBJECT\",\n                    \"name\": \"__InputValue\",\n                    \"ofType\": null\n                  }\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"ofType\",\n              \"description\": null,\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"OBJECT\",\n                \"name\": \"__Type\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"inputFields\": null,\n          \"interfaces\": [],\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"ENUM\",\n          \"name\": \"__TypeKind\",\n          \"description\": \"An enum describing what kind of type a given `__Type` is\",\n          \"fields\": null,\n          \"inputFields\": null,\n          \"interfaces\": null,\n          \"enumValues\": [\n            {\n              \"name\": \"SCALAR\",\n              \"description\": \"Indicates this type is a scalar.\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"OBJECT\",\n              \"description\": \"Indicates this type is an object. `fields` and `interfaces` are valid fields.\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"INTERFACE\",\n              \"description\": \"Indicates this type is an interface. `fields` and `possibleTypes` are valid fields.\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"UNION\",\n              \"description\": \"Indicates this type is a union. `possibleTypes` is a valid field.\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"ENUM\",\n              \"description\": \"Indicates this type is an enum. `enumValues` is a valid field.\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"INPUT_OBJECT\",\n              \"description\": \"Indicates this type is an input object. `inputFields` is a valid field.\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"LIST\",\n              \"description\": \"Indicates this type is a list. `ofType` is a valid field.\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"NON_NULL\",\n              \"description\": \"Indicates this type is a non-null. `ofType` is a valid field.\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"OBJECT\",\n          \"name\": \"__Field\",\n          \"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.\",\n          \"fields\": [\n            {\n              \"name\": \"name\",\n              \"description\": null,\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"String\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"description\",\n              \"description\": null,\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"String\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"args\",\n              \"description\": null,\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"LIST\",\n                  \"name\": null,\n                  \"ofType\": {\n                    \"kind\": \"NON_NULL\",\n                    \"name\": null,\n                    \"ofType\": {\n                      \"kind\": \"OBJECT\",\n                      \"name\": \"__InputValue\",\n                      \"ofType\": null\n                    }\n                  }\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"type\",\n              \"description\": null,\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"__Type\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"isDeprecated\",\n              \"description\": null,\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"Boolean\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"deprecationReason\",\n              \"description\": null,\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"String\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"inputFields\": null,\n          \"interfaces\": [],\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"OBJECT\",\n          \"name\": \"__InputValue\",\n          \"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.\",\n          \"fields\": [\n            {\n              \"name\": \"name\",\n              \"description\": null,\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"String\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"description\",\n              \"description\": null,\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"String\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"type\",\n              \"description\": null,\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"OBJECT\",\n                  \"name\": \"__Type\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"defaultValue\",\n              \"description\": null,\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"String\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"inputFields\": null,\n          \"interfaces\": [],\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"OBJECT\",\n          \"name\": \"__EnumValue\",\n          \"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.\",\n          \"fields\": [\n            {\n              \"name\": \"name\",\n              \"description\": null,\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"String\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"description\",\n              \"description\": null,\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"String\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"isDeprecated\",\n              \"description\": null,\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"Boolean\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"deprecationReason\",\n              \"description\": null,\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"String\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"inputFields\": null,\n          \"interfaces\": [],\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"OBJECT\",\n          \"name\": \"__Directive\",\n          \"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.\",\n          \"fields\": [\n            {\n              \"name\": \"name\",\n              \"description\": null,\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"String\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"description\",\n              \"description\": null,\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"SCALAR\",\n                \"name\": \"String\",\n                \"ofType\": null\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"locations\",\n              \"description\": null,\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"LIST\",\n                  \"name\": null,\n                  \"ofType\": {\n                    \"kind\": \"NON_NULL\",\n                    \"name\": null,\n                    \"ofType\": {\n                      \"kind\": \"ENUM\",\n                      \"name\": \"__DirectiveLocation\",\n                      \"ofType\": null\n                    }\n                  }\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"args\",\n              \"description\": null,\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"LIST\",\n                  \"name\": null,\n                  \"ofType\": {\n                    \"kind\": \"NON_NULL\",\n                    \"name\": null,\n                    \"ofType\": {\n                      \"kind\": \"OBJECT\",\n                      \"name\": \"__InputValue\",\n                      \"ofType\": null\n                    }\n                  }\n                }\n              },\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"onOperation\",\n              \"description\": null,\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"Boolean\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": true,\n              \"deprecationReason\": \"Use `locations`.\"\n            },\n            {\n              \"name\": \"onFragment\",\n              \"description\": null,\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"Boolean\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": true,\n              \"deprecationReason\": \"Use `locations`.\"\n            },\n            {\n              \"name\": \"onField\",\n              \"description\": null,\n              \"args\": [],\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"Boolean\",\n                  \"ofType\": null\n                }\n              },\n              \"isDeprecated\": true,\n              \"deprecationReason\": \"Use `locations`.\"\n            }\n          ],\n          \"inputFields\": null,\n          \"interfaces\": [],\n          \"enumValues\": null,\n          \"possibleTypes\": null\n        },\n        {\n          \"kind\": \"ENUM\",\n          \"name\": \"__DirectiveLocation\",\n          \"description\": \"A Directive can be adjacent to many parts of the GraphQL language, a __DirectiveLocation describes one such possible adjacencies.\",\n          \"fields\": null,\n          \"inputFields\": null,\n          \"interfaces\": null,\n          \"enumValues\": [\n            {\n              \"name\": \"QUERY\",\n              \"description\": \"Location adjacent to a query operation.\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"MUTATION\",\n              \"description\": \"Location adjacent to a mutation operation.\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"SUBSCRIPTION\",\n              \"description\": \"Location adjacent to a subscription operation.\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"FIELD\",\n              \"description\": \"Location adjacent to a field.\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"FRAGMENT_DEFINITION\",\n              \"description\": \"Location adjacent to a fragment definition.\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"FRAGMENT_SPREAD\",\n              \"description\": \"Location adjacent to a fragment spread.\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"INLINE_FRAGMENT\",\n              \"description\": \"Location adjacent to an inline fragment.\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"SCHEMA\",\n              \"description\": \"Location adjacent to a schema definition.\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"SCALAR\",\n              \"description\": \"Location adjacent to a scalar definition.\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"OBJECT\",\n              \"description\": \"Location adjacent to an object definition.\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"FIELD_DEFINITION\",\n              \"description\": \"Location adjacent to a field definition.\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"ARGUMENT_DEFINITION\",\n              \"description\": \"Location adjacent to an argument definition.\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"INTERFACE\",\n              \"description\": \"Location adjacent to an interface definition.\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"UNION\",\n              \"description\": \"Location adjacent to a union definition.\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"ENUM\",\n              \"description\": \"Location adjacent to an enum definition.\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"ENUM_VALUE\",\n              \"description\": \"Location adjacent to an enum value definition.\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"INPUT_OBJECT\",\n              \"description\": \"Location adjacent to an input object definition.\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            },\n            {\n              \"name\": \"INPUT_FIELD_DEFINITION\",\n              \"description\": \"Location adjacent to an input object field definition.\",\n              \"isDeprecated\": false,\n              \"deprecationReason\": null\n            }\n          ],\n          \"possibleTypes\": null\n        }\n      ],\n      \"directives\": [\n        {\n          \"name\": \"include\",\n          \"description\": \"Directs the executor to include this field or fragment only when the `if` argument is true.\",\n          \"locations\": [\"FIELD\", \"FRAGMENT_SPREAD\", \"INLINE_FRAGMENT\"],\n          \"args\": [\n            {\n              \"name\": \"if\",\n              \"description\": \"Included when true.\",\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"Boolean\",\n                  \"ofType\": null\n                }\n              },\n              \"defaultValue\": null\n            }\n          ]\n        },\n        {\n          \"name\": \"skip\",\n          \"description\": \"Directs the executor to skip this field or fragment when the `if` argument is true.\",\n          \"locations\": [\"FIELD\", \"FRAGMENT_SPREAD\", \"INLINE_FRAGMENT\"],\n          \"args\": [\n            {\n              \"name\": \"if\",\n              \"description\": \"Skipped when true.\",\n              \"type\": {\n                \"kind\": \"NON_NULL\",\n                \"name\": null,\n                \"ofType\": {\n                  \"kind\": \"SCALAR\",\n                  \"name\": \"Boolean\",\n                  \"ofType\": null\n                }\n              },\n              \"defaultValue\": null\n            }\n          ]\n        }\n      ]\n    }\n  }\n}\n"
  },
  {
    "path": "docker-compose.yml",
    "content": "services:\n  playwright-server:\n    build:\n      context: .\n      dockerfile: ./tests/Dockerfile\n      args:\n        PLAYWRIGHT_VERSION: ${PLAYWRIGHT_VERSION}\n    ipc: host\n    command: playwright run-server --host=0.0.0.0 --port=3000\n    ports:\n      - '3000:3000'\n"
  },
  {
    "path": "example/README.md",
    "content": "# Example GraphQL-Voyager Install\n\n---\n\n**Attribution:** the contents of this folder was copied from [GraphiQL](https://github.com/graphql/graphiql/tree/main/example) example and modified for GraphQL-Voyager example. See copyright below:\n\n> Copyright (c) Facebook, Inc. All rights reserved. [LICENSE](https://github.com/graphql/graphiql/blob/main/LICENSE)\n\n---\n\nThis example uses the version of GraphQL-Voyager found in the parent directory, rather\nthan depending on npm, so that it is easier to test new changes. In order to use\nthe compiled version of GraphQL-Voyager, first run in the parent directory before\ninstalling and starting the example.\n\n1. Run `npm install && npm run build:release` in the parent directory\n2. Navigate to this directory (example) in Terminal\n3. `npm install`\n4. `npm start`\n5. Open your browser to the address listed in your console. e.g. `Started on http://localhost:49811/`\n"
  },
  {
    "path": "example/cdn/index.html",
    "content": "<!doctype html>\n<html>\n  <head>\n    <style>\n      body {\n        height: 100%;\n        margin: 0;\n        width: 100%;\n        overflow: hidden;\n      }\n\n      #voyager {\n        height: 100vh;\n      }\n    </style>\n\n    <!--\n      These two files are served from jsdelivr CDN, however you may wish to\n      copy them directly into your environment, or perhaps include them in your\n      favored resource bundler.\n     -->\n    <link\n      rel=\"stylesheet\"\n      href=\"https://cdn.jsdelivr.net/npm/graphql-voyager/dist/voyager.css\"\n    />\n    <script src=\"https://cdn.jsdelivr.net/npm/graphql-voyager/dist/voyager.standalone.js\"></script>\n  </head>\n\n  <body>\n    <div id=\"voyager\">Loading...</div>\n    <script type=\"module\">\n      const { voyagerIntrospectionQuery: query } = GraphQLVoyager;\n      const response = await fetch(\n        'https://swapi-graphql.netlify.app/.netlify/functions/index',\n        {\n          method: 'post',\n          headers: {\n            Accept: 'application/json',\n            'Content-Type': 'application/json',\n          },\n          body: JSON.stringify({ query }),\n          credentials: 'omit',\n        },\n      );\n      const introspection = await response.json();\n\n      // Render <Voyager /> into the body.\n      GraphQLVoyager.renderVoyager(document.getElementById('voyager'), {\n        introspection,\n      });\n    </script>\n  </body>\n</html>\n"
  },
  {
    "path": "example/express-server/Dockerfile",
    "content": "# syntax=docker/dockerfile:1\n\nFROM node:20\n\nWORKDIR /app\n\nCOPY ./graphql-voyager-*.tgz graphql-voyager.tgz\n\nCOPY ./example/express-server ./example/express-server\n\nWORKDIR /app/example/express-server\nRUN npm install && npm test\n\nEXPOSE  9090\nCMD [\"npm\", \"start\"]\n"
  },
  {
    "path": "example/express-server/index.ts",
    "content": "import express from 'express';\nimport { createHandler } from 'graphql-http/lib/use/express';\nimport { express as voyagerMiddleware } from 'graphql-voyager/middleware';\n\nimport { schema } from './schema.ts';\n\nconst PORT = 9090;\nconst app = express();\n\napp.use('/graphql', createHandler({ schema }));\napp.use(\n  '/voyager',\n  voyagerMiddleware({\n    endpointUrl: '/graphql',\n    displayOptions: {\n      sortByAlphabet: true,\n    },\n  }),\n);\n\napp.listen(PORT, () => {\n  console.log(`Started on http://localhost:${PORT}/voyager`);\n});\n"
  },
  {
    "path": "example/express-server/package.json",
    "content": "{\n  \"private\": \"true\",\n  \"description\": \"An example using GraphQL-Voyager\",\n  \"type\": \"module\",\n  \"scripts\": {\n    \"start\": \"node index.ts\",\n    \"test\": \"tsc\"\n  },\n  \"dependencies\": {\n    \"express\": \"4.21.0\",\n    \"graphql\": \"16.9.0\",\n    \"graphql-http\": \"1.22.1\",\n    \"graphql-voyager\": \"../../graphql-voyager.tgz\"\n  },\n  \"devDependencies\": {\n    \"@types/express\": \"4.17.21\",\n    \"typescript\": \"5.9.2\"\n  }\n}\n"
  },
  {
    "path": "example/express-server/schema.ts",
    "content": "import { buildSchema } from 'graphql';\n\nexport const schema = buildSchema(`\n  enum TestEnum {\n    \"A rosy color\"\n    RED\n    \"The color of martians and slime\"\n    GREEN\n    \"A feeling you might have if you can't use GraphQL\"\n    BLUE\n  }\n\n  input TestInput {\n    string: String\n    int: Int\n    float: Float\n    boolean: Boolean\n    id: ID\n    enum: TestEnum\n    object: TestInput\n\n    # List\n    listString: [String]\n    listInt: [Int]\n    listFloat: [Float]\n    listBoolean: [Boolean]\n    listID: [ID]\n    listEnum: [TestEnum]\n    listObject: [TestInput]\n  }\n\n  \"The interface\"\n  interface TestInterface {\n    \"Common name string.\"\n    name: String\n  }\n\n  type First implements TestInterface {\n    \"Common name string for First.\"\n    name: String\n\n    first: [TestInterface]\n  }\n\n  type Second implements TestInterface {\n    \"Common name string for Second.\"\n    name: String\n    second: [TestInterface]\n  }\n\n  union TestUnion = First | Second\n\n  type Test {\n    \"\\`test\\` field from \\`Test\\` type.\"\n    test: Test\n\n    \"> union field from Test type, block-quoted.\"\n    union: TestUnion\n\n    \"id field from Test type.\"\n    id: ID\n\n    \"Is this a test schema? Sure it is.\"\n    isTest: Boolean\n\n    hasArgs(\n      string: String\n      int: Int\n      float: Float\n      boolean: Boolean\n      id: ID\n      enum: TestEnum\n      object: TestInput\n\n      # List\n      listString: [String]\n      listInt: [Int]\n      listFloat: [Float]\n      listBoolean: [Boolean]\n      listID: [ID]\n      listEnum: [TestEnum]\n      listObject: [TestInput]\n    ): String\n  }\n\n  \"This is a simple mutation type\"\n  type MutationType {\n    \"Set the string field\"\n    setString(value: String): String\n  }\n\n  \"This is a simple subscription type\"\n  type SubscriptionType {\n    \"Subscribe to the test type\"\n    subscribeToTest(id: String): Test\n  }\n\n  schema {\n    query: Test\n    mutation: MutationType\n    subscription: SubscriptionType\n  }\n`);\n"
  },
  {
    "path": "example/express-server/tsconfig.json",
    "content": "{\n  \"compilerOptions\": {\n    \"strict\": true,\n    \"noEmit\": true,\n    \"module\": \"nodenext\",\n    \"moduleResolution\": \"nodenext\",\n    \"allowImportingTsExtensions\": true,\n    \"esModuleInterop\": true,\n    \"target\": \"es2021\"\n  },\n  \"include\": [\"./index.ts\"]\n}\n"
  },
  {
    "path": "example/webpack/Dockerfile",
    "content": "# syntax=docker/dockerfile:1\n\nFROM node:24\n\nWORKDIR /app\n\nCOPY ./graphql-voyager-*.tgz graphql-voyager.tgz\n\nCOPY ./example/webpack ./example/webpack\n\nWORKDIR /app/example/webpack\nRUN npm install && npm test\n\nEXPOSE  9090\nCMD [\"npm\", \"start\"]\n"
  },
  {
    "path": "example/webpack/README.md",
    "content": "# Example GraphQL-Voyager Install\n\nThis example uses the version of GraphQL-Voyager found in the parent directory, rather\nthan depending on npm, so that it is easier to test new changes. In order to use\nthe compiled version of GraphQL-Voyager, first run in the parent directory before\ninstalling and starting the example.\n\n1. Run `npm install && npm run build:release` in the root repo directory\n2. Navigate to this directory (example) in Terminal\n3. `npm install`\n4. `npm start`\n5. Open your browser to the address listed in your console. e.g. `Project is running at http://localhost:9090/`\n"
  },
  {
    "path": "example/webpack/index.html",
    "content": "<!doctype html>\n<html>\n  <head>\n    <style>\n      body {\n        height: 100%;\n        margin: 0;\n        width: 100%;\n        overflow: hidden;\n      }\n      #voyager {\n        height: 100vh;\n      }\n    </style>\n    <link\n      rel=\"stylesheet\"\n      href=\"../node_modules/graphql-voyager/dist/voyager.css\"\n    />\n  </head>\n  <body>\n    <div id=\"voyager\">Loading...</div>\n    <script type=\"module\" src=\"/main.js\"></script>\n  </body>\n</html>\n"
  },
  {
    "path": "example/webpack/index.tsx",
    "content": "import { Voyager, voyagerIntrospectionQuery } from 'graphql-voyager';\nimport { StrictMode } from 'react';\nimport * as ReactDOMClient from 'react-dom/client';\n\nconst response = await fetch('https://swapi-graphql.netlify.app/graphql', {\n  method: 'post',\n  headers: {\n    Accept: 'application/json',\n    'Content-Type': 'application/json',\n  },\n  body: JSON.stringify({ query: voyagerIntrospectionQuery }),\n  credentials: 'omit',\n});\nconst introspection = await response.json();\n\nconst reactRoot = ReactDOMClient.createRoot(\n  document.getElementById('voyager')!,\n);\nreactRoot.render(\n  <StrictMode>\n    <Voyager\n      introspection={introspection}\n      displayOptions={{ skipRelay: false, showLeafFields: true }}\n    />\n  </StrictMode>,\n);\n"
  },
  {
    "path": "example/webpack/package.json",
    "content": "{\n  \"private\": \"true\",\n  \"description\": \"An example using GraphQL-Voyager\",\n  \"scripts\": {\n    \"start\": \"webpack-dev-server --config webpack.config.js --mode=production\",\n    \"test\": \"tsc\"\n  },\n  \"type\": \"module\",\n  \"dependencies\": {\n    \"graphql-voyager\": \"../../graphql-voyager.tgz\"\n  },\n  \"devDependencies\": {\n    \"@types/react\": \"18.3.8\",\n    \"@types/react-dom\": \"18.3.0\",\n    \"ts-loader\": \"5.3.3\",\n    \"typescript\": \"5.9.2\",\n    \"webpack\": \"5.99.9\",\n    \"webpack-cli\": \"6.0.1\",\n    \"webpack-dev-server\": \"5.2.2\"\n  }\n}\n"
  },
  {
    "path": "example/webpack/tsconfig.json",
    "content": "{\n  \"compilerOptions\": {\n    \"strict\": true,\n    \"noEmit\": true,\n    \"module\": \"nodenext\",\n    \"moduleResolution\": \"nodenext\",\n    \"target\": \"es2021\",\n    \"jsx\": \"react-jsx\"\n  },\n  \"include\": [\"./index.tsx\"]\n}\n"
  },
  {
    "path": "example/webpack/webpack.config.js",
    "content": "import path from 'node:path';\n\nconst config = {\n  devServer: {\n    port: 9090,\n    allowedHosts: 'all',\n    static: { directory: import.meta.dirname },\n    // needed to prevent info messages during integration tests\n    client: { logging: 'warn' },\n  },\n  // disable hints since Voyager is too big :(\n  performance: { hints: false },\n  entry: ['./index.tsx'],\n  output: {\n    path: path.resolve(import.meta.dirname, 'dist'),\n    filename: 'main.js',\n  },\n  module: {\n    rules: [\n      {\n        test: /\\.tsx?$/,\n        use: {\n          loader: 'ts-loader',\n          options: { compilerOptions: { noEmit: false } },\n        },\n        exclude: /node_modules/,\n      },\n    ],\n  },\n};\n\nexport default config;\n"
  },
  {
    "path": "manual-types.d.ts",
    "content": "declare module '*.svg' {\n  import React from 'react';\n  const SVG: React.FC<React.SVGProps<SVGSVGElement>>;\n  export default SVG;\n}\n\ndeclare module '*?raw' {\n  const content: string;\n  export default content;\n}\n\ndeclare module '*.css' {\n  const content: any;\n  export default content;\n}\n"
  },
  {
    "path": "package.json",
    "content": "{\n  \"name\": \"graphql-voyager\",\n  \"version\": \"2.1.0\",\n  \"description\": \"GraphQL introspection viewer\",\n  \"author\": \"IvanGoncharov <ivan.goncharov.ua@gmail.com>\",\n  \"license\": \"MIT\",\n  \"homepage\": \"https://apis.guru/graphql-voyager\",\n  \"repository\": {\n    \"type\": \"git\",\n    \"url\": \"git+https://github.com/APIs-guru/graphql-voyager.git\"\n  },\n  \"funding\": \"https://github.com/APIs-guru/graphql-voyager?sponsor=1\",\n  \"bugs\": {\n    \"url\": \"https://github.com/APIs-guru/graphql-voyager/issues\"\n  },\n  \"engines\": {\n    \"node\": \">=25.2.0\"\n  },\n  \"type\": \"module\",\n  \"exports\": {\n    \".\": {\n      \"import\": \"./dist/voyager.lib.js\",\n      \"browser\": \"./dist/voyager.lib.js\",\n      \"types\": \"./dist/index.d.ts\"\n    },\n    \"./*\": {\n      \"import\": \"./dist/*\",\n      \"browser\": \"./dist/*\",\n      \"types\": \"./dist/*\"\n    },\n    \"./middleware\": {\n      \"import\": \"./dist/middleware/index.js\",\n      \"types\": \"./dist/middleware/index.d.ts\"\n    }\n  },\n  \"scripts\": {\n    \"preversion\": \"npm ci --ignore-scripts && npm test\",\n    \"changelog\": \"node scripts/gen-changelog.ts\",\n    \"test\": \"npm run lint && npm run check && npm run testonly && npm run prettier:check && npm run check:spell\",\n    \"start\": \"webpack serve --mode=development\",\n    \"serve\": \"node ./scripts/serve-directory.ts -p 9090 demo-dist/graphql-voyager\",\n    \"bundle\": \"rm -rf dist && webpack --mode=production\",\n    \"build:ts\": \"tsc --project tsconfig.build.json\",\n    \"build:release\": \"npm run bundle && npm run build:ts\",\n    \"build:demo\": \"npm run build:release && rm -rf demo-dist && mkdir demo-dist && cp -R demo/ demo-dist/graphql-voyager/ && cp dist/voyager.css* dist/voyager.standalone.js* demo-dist/graphql-voyager/\",\n    \"stats\": \"NODE_ENV=production webpack --json --mode=production > stats.json\",\n    \"lint\": \"eslint --cache --max-warnings 0 .\",\n    \"check\": \"tsc\",\n    \"prettier\": \"prettier --write --list-different . **/*.svg\",\n    \"prettier:check\": \"prettier --check . **/*.svg\",\n    \"check:spell\": \"cspell --cache --no-progress '**/*'\",\n    \"testonly\": \"npm run build:demo && npm pack && playwright test\",\n    \"update-snapshots\": \"npm run build:demo && npm pack && playwright test --update-snapshots\",\n    \"deploy\": \"wrangler deploy\"\n  },\n  \"peerDependencies\": {\n    \"graphql\": \">=16.5.0\",\n    \"react\": \">=18.0.0\"\n  },\n  \"dependencies\": {\n    \"@emotion/react\": \"11.14.0\",\n    \"@emotion/styled\": \"11.14.0\",\n    \"@mui/icons-material\": \"7.1.1\",\n    \"@mui/lab\": \"7.0.0-beta.13\",\n    \"@mui/material\": \"7.1.1\",\n    \"commonmark\": \"0.31.2\",\n    \"dotviz\": \"0.0.7\",\n    \"svg-pan-zoom\": \"3.6.2\"\n  },\n  \"devDependencies\": {\n    \"@svgr/webpack\": \"8.1.0\",\n    \"@types/commonmark\": \"0.27.9\",\n    \"@types/node\": \"24.0.1\",\n    \"@types/react\": \"19.1.8\",\n    \"@types/react-dom\": \"19.1.6\",\n    \"@typescript-eslint/eslint-plugin\": \"8.16.0\",\n    \"@typescript-eslint/parser\": \"8.16.0\",\n    \"cspell\": \"9.4.0\",\n    \"css-loader\": \"7.1.2\",\n    \"eslint\": \"8.57.1\",\n    \"eslint-plugin-import\": \"2.31.0\",\n    \"eslint-plugin-playwright\": \"1.6.2\",\n    \"eslint-plugin-react\": \"7.37.1\",\n    \"eslint-plugin-react-hooks\": \"4.6.2\",\n    \"eslint-plugin-simple-import-sort\": \"12.1.1\",\n    \"graphql\": \"16.11.0\",\n    \"mini-css-extract-plugin\": \"2.9.2\",\n    \"playwright\": \"1.53.0\",\n    \"postcss-cssnext\": \"3.1.1\",\n    \"postcss-import\": \"16.1.0\",\n    \"postcss-loader\": \"8.1.1\",\n    \"postcss-variables-loader\": \"6.0.0\",\n    \"prettier\": \"3.5.3\",\n    \"react\": \"19.1.0\",\n    \"react-dom\": \"19.1.0\",\n    \"style-loader\": \"4.0.0\",\n    \"ts-loader\": \"9.5.2\",\n    \"ts-node\": \"10.9.2\",\n    \"typescript\": \"5.7.3\",\n    \"webpack\": \"5.103.0\",\n    \"webpack-cli\": \"6.0.1\",\n    \"webpack-dev-server\": \"5.2.2\",\n    \"wrangler\": \"4.33.1\"\n  }\n}\n"
  },
  {
    "path": "playwright.config.ts",
    "content": "import playwrightPackage from 'playwright/package.json' with { type: 'json' };\nimport { devices, type PlaywrightTestConfig } from 'playwright/test';\n\nconst isCI = !!process.env['CI'];\n/**\n * See https://playwright.dev/docs/test-configuration.\n */\nconst config: PlaywrightTestConfig = {\n  testDir: './tests',\n  // FIXME: remove '-linux'\n  snapshotPathTemplate:\n    '{snapshotDir}/{testFileDir}/{testFileName}-snapshots/{arg}{-projectName}-linux{ext}',\n  /* Maximum time one test can run for. */\n  timeout: 20 * 1000,\n  expect: {\n    /**\n     * Maximum time expect() should wait for the condition to be met.\n     * For example in `await expect(locator).toHaveText();`\n     */\n    timeout: 10000,\n  },\n  /* Run tests in files in parallel */\n  fullyParallel: true,\n  /* Fail the build on CI if you accidentally left test.only in the source code. */\n  forbidOnly: isCI,\n  /* Retry on CI only */\n  retries: isCI ? 2 : 0,\n  /* Opt out of parallel tests on CI. */\n  workers: isCI ? 1 : undefined,\n  /* Reporter to use. See https://playwright.dev/docs/test-reporters */\n  reporter: [['html', { open: 'never' }]],\n  /* Shared settings for all the projects below. See https://playwright.dev/docs/api/class-testoptions. */\n  use: {\n    ...devices['Desktop Chrome'],\n    viewport: { width: 1920, height: 1001 },\n\n    permissions: ['clipboard-read', 'clipboard-write'],\n\n    /* Maximum time each action such as `click()` can take. Defaults to 0 (no limit). */\n    actionTimeout: 0,\n\n    /* Collect trace when retrying the failed test. See https://playwright.dev/docs/trace-viewer */\n    trace: 'retain-on-failure',\n\n    connectOptions: {\n      wsEndpoint: 'ws://127.0.0.1:3000/',\n      exposeNetwork: '<loopback>',\n    },\n  },\n  projects: [\n    {\n      name: 'Demo',\n      testMatch: 'Demo.spec.ts',\n      use: { baseURL: 'http://127.0.0.1:9090' },\n    },\n    {\n      name: 'WebpackExample',\n      testMatch: 'webpack.spec.ts',\n      use: { baseURL: 'http://serve-webpack-example:9090' },\n    },\n    {\n      name: 'ExpressExample',\n      testMatch: 'express.spec.ts',\n      use: { baseURL: 'http://serve-express-example:9090' },\n    },\n  ],\n  outputDir: 'test-results/',\n  webServer: [\n    {\n      name: 'playwright-server',\n      env: { PLAYWRIGHT_VERSION: playwrightPackage.version },\n      command:\n        'docker compose up --abort-on-container-exit --build playwright-server',\n      url: 'http://127.0.0.1:3000/',\n      stdout: 'pipe',\n      timeout: 120 * 1000,\n      gracefulShutdown: {\n        signal: 'SIGINT',\n        timeout: 120 * 1000,\n      },\n    },\n    {\n      name: 'npm run serve',\n      command: 'npm run serve',\n      url: 'http://localhost:9090/',\n    },\n  ],\n};\n\nexport default config;\n"
  },
  {
    "path": "scripts/gen-changelog.ts",
    "content": "import packageJSON from '../package.json' with { type: 'json' };\nimport { git } from './utils.ts';\n\nconst labelsConfig: { [label: string]: { section: string; fold?: boolean } } = {\n  'PR: breaking change 💥': {\n    section: 'Breaking Change 💥',\n  },\n  'PR: deprecation ⚠': {\n    section: 'Deprecation ⚠',\n  },\n  'PR: feature 🚀': {\n    section: 'New Feature 🚀',\n  },\n  'PR: bug fix 🐞': {\n    section: 'Bug Fix 🐞',\n  },\n  'PR: docs 📝': {\n    section: 'Docs 📝',\n    fold: true,\n  },\n  'PR: polish 💅': {\n    section: 'Polish 💅',\n    fold: true,\n  },\n  'PR: internal 🏠': {\n    section: 'Internal 🏠',\n    fold: true,\n  },\n  'PR: dependency 📦': {\n    section: 'Dependency 📦',\n    fold: true,\n  },\n};\nconst { GITHUB_TOKEN } = process.env;\n\nif (GITHUB_TOKEN == null) {\n  console.error('Must provide GITHUB_TOKEN as environment variable!');\n  process.exit(1);\n}\n\nif (!packageJSON.repository || typeof packageJSON.repository.url !== 'string') {\n  console.error('package.json is missing repository.url string!');\n  process.exit(1);\n}\n\nconst repoURLMatch =\n  /https:\\/\\/github.com\\/(?<githubOrg>[^/]+)\\/(?<githubRepo>[^/]+).git/.exec(\n    packageJSON.repository.url,\n  );\nif (repoURLMatch?.groups == null) {\n  console.error('Cannot extract organization and repo name from repo URL!');\n  process.exit(1);\n}\nconst { githubOrg, githubRepo } = repoURLMatch.groups;\n\ngenChangeLog()\n  .then((result) => process.stdout.write(result))\n  .catch((e) => {\n    console.error(e);\n    process.exit(1);\n  });\n\nasync function genChangeLog(): Promise<string> {\n  const { version } = packageJSON;\n\n  let tag: string | null = null;\n  let commitsList = git().revList('--reverse', `v${version}..`);\n  if (commitsList.length === 0) {\n    const parentPackageJSON = git().catFile('blob', 'HEAD~1:package.json');\n    const parentVersion = JSON.parse(parentPackageJSON).version;\n    commitsList = git().revList('--reverse', `v${parentVersion}..HEAD~1`);\n    tag = `v${version}`;\n  }\n\n  const allPRs = await getPRsInfo(commitsList);\n  const date = git().log('-1', '--format=%cd', '--date=short');\n\n  const byLabel: { [label: string]: Array<PRInfo> } = {};\n  const committersByLogin: { [login: string]: AuthorInfo } = {};\n\n  for (const pr of allPRs) {\n    const labels = pr.labels.nodes\n      .map((label) => label.name)\n      .filter((label) => label.startsWith('PR: '));\n\n    const label = labels[0];\n    if (label == null) {\n      throw new Error(`PR is missing label. See ${pr.url}`);\n    }\n    if (labels.length > 1) {\n      throw new Error(\n        `PR has conflicting labels: ${labels.join('\\n')}\\nSee ${pr.url}`,\n      );\n    }\n\n    if (labelsConfig[label] == null) {\n      throw new Error(`Unknown label: ${label}. See ${pr.url}`);\n    }\n    byLabel[label] ??= [];\n    byLabel[label].push(pr);\n    committersByLogin[pr.author.login] = pr.author;\n  }\n\n  let changelog = `## ${tag ?? 'Unreleased'} (${date})\\n`;\n  for (const [label, config] of Object.entries(labelsConfig)) {\n    const prs = byLabel[label];\n    if (prs != null) {\n      const shouldFold = config.fold && prs.length > 1;\n\n      changelog += `\\n#### ${config.section}\\n`;\n      if (shouldFold) {\n        changelog += '<details>\\n';\n        changelog += `<summary> ${prs.length} PRs were merged </summary>\\n\\n`;\n      }\n\n      for (const pr of prs) {\n        const { number, url, author } = pr;\n        changelog += `* [#${number}](${url}) ${pr.title} ([@${author.login}](${author.url}))\\n`;\n      }\n\n      if (shouldFold) {\n        changelog += '</details>\\n';\n      }\n    }\n  }\n\n  const committers = Object.values(committersByLogin).sort((a, b) =>\n    (a.name || a.login).localeCompare(b.name || b.login),\n  );\n  changelog += `\\n#### Committers: ${committers.length}\\n`;\n  for (const committer of committers) {\n    changelog += `* ${committer.name}([@${committer.login}](${committer.url}))\\n`;\n  }\n\n  return changelog;\n}\n\nasync function graphqlRequest(query: string) {\n  const response = await fetch('https://api.github.com/graphql', {\n    method: 'POST',\n    headers: {\n      Authorization: 'bearer ' + GITHUB_TOKEN,\n      'Content-Type': 'application/json',\n      'User-Agent': 'gen-changelog',\n    },\n    body: JSON.stringify({ query }),\n  });\n\n  if (!response.ok) {\n    throw new Error(\n      `GitHub responded with ${response.status}: ${response.statusText}\\n` +\n        (await response.text()),\n    );\n  }\n\n  const json = await response.json();\n  if (json.errors != null) {\n    throw new Error('Errors: ' + JSON.stringify(json.errors, null, 2));\n  }\n  return json.data;\n}\n\ninterface CommitInfo {\n  oid: string;\n  message: string;\n  associatedPullRequests: {\n    nodes: ReadonlyArray<{\n      number: number;\n      repository: {\n        nameWithOwner: string;\n      };\n    }>;\n  };\n}\n\nasync function batchCommitToPR(\n  commits: ReadonlyArray<string>,\n): Promise<ReadonlyArray<number>> {\n  let commitsSubQuery = '';\n  for (const oid of commits) {\n    commitsSubQuery += `\n        commit_${oid}: object(oid: \"${oid}\") {\n          ... on Commit {\n            oid\n            message\n            associatedPullRequests(first: 10) {\n              nodes {\n                number\n                repository {\n                  nameWithOwner\n                }\n              }\n            }\n          }\n        }\n    `;\n  }\n\n  const response = await graphqlRequest(`\n    {\n      repository(owner: \"${githubOrg}\", name: \"${githubRepo}\") {\n        ${commitsSubQuery}\n      }\n    }\n  `);\n\n  const prNumbers = [];\n  for (const oid of commits) {\n    const commitInfo: CommitInfo = response.repository['commit_' + oid];\n    prNumbers.push(commitInfoToPR(commitInfo));\n  }\n  return prNumbers;\n}\n\ninterface AuthorInfo {\n  login: string;\n  url: string;\n  name: string;\n}\n\ninterface PRInfo {\n  number: number;\n  title: string;\n  url: string;\n  author: AuthorInfo;\n  labels: {\n    nodes: ReadonlyArray<{\n      name: string;\n    }>;\n  };\n}\n\nasync function batchPRInfo(\n  prNumbers: ReadonlyArray<number>,\n): Promise<Array<PRInfo>> {\n  let prsSubQuery = '';\n  for (const number of prNumbers) {\n    prsSubQuery += `\n        pr_${number}: pullRequest(number: ${number}) {\n          number\n          title\n          url\n          author {\n            login\n            url\n            ... on User {\n              name\n            }\n          }\n          labels(first: 10) {\n            nodes {\n              name\n            }\n          }\n        }\n    `;\n  }\n\n  const response = await graphqlRequest(`\n    {\n      repository(owner: \"${githubOrg}\", name: \"${githubRepo}\") {\n        ${prsSubQuery}\n      }\n    }\n  `);\n\n  const prsInfo = [];\n  for (const number of prNumbers) {\n    prsInfo.push(response.repository['pr_' + number]);\n  }\n  return prsInfo;\n}\n\nfunction commitInfoToPR(commit: CommitInfo): number {\n  const associatedPRs = commit.associatedPullRequests.nodes.filter(\n    (pr) => pr.repository.nameWithOwner === `${githubOrg}/${githubRepo}`,\n  );\n\n  if (associatedPRs.length > 1) {\n    throw new Error(\n      `Commit ${commit.oid} is associated with multiple PRs: ${commit.message}`,\n    );\n  }\n\n  const associatedPR = associatedPRs[0];\n  if (associatedPR == null) {\n    const match = / \\(#(?<prNumber>[0-9]+)\\)$/m.exec(commit.message);\n    const { prNumber } = match?.groups ?? {};\n\n    if (prNumber != null) {\n      return parseInt(prNumber, 10);\n    }\n    throw new Error(\n      `Commit ${commit.oid} has no associated PR: ${commit.message}`,\n    );\n  }\n\n  return associatedPR.number;\n}\n\nasync function getPRsInfo(\n  commits: ReadonlyArray<string>,\n): Promise<ReadonlyArray<PRInfo>> {\n  let prNumbers = await splitBatches(commits, batchCommitToPR);\n  prNumbers = Array.from(new Set(prNumbers)); // Remove duplicates\n\n  return splitBatches(prNumbers, batchPRInfo);\n}\n\n// Split commits into batches of 50 to prevent timeouts\nasync function splitBatches<I, R>(\n  array: ReadonlyArray<I>,\n  batchFn: (array: ReadonlyArray<I>) => Promise<ReadonlyArray<R>>,\n): Promise<ReadonlyArray<R>> {\n  const promises = [];\n  for (let i = 0; i < array.length; i += 50) {\n    const batchItems = array.slice(i, i + 50);\n    promises.push(batchFn(batchItems));\n  }\n\n  return (await Promise.all(promises)).flat();\n}\n"
  },
  {
    "path": "scripts/serve-directory.ts",
    "content": "// Copied from https://developer.mozilla.org/en-US/docs/Learn/Server-side/Node_server_without_framework\nimport * as fs from 'node:fs';\nimport * as http from 'node:http';\nimport * as path from 'node:path';\nimport * as util from 'node:util';\n\nconst parsedArgs = util.parseArgs({\n  strict: true,\n  allowPositionals: true,\n  options: {\n    port: {\n      type: 'string',\n      short: 'p',\n    },\n  },\n});\n\nconst options = {\n  directory: parsedArgs.positionals[0],\n  port: parsedArgs.values.port,\n};\n\nfunction consoleError(msg: string) {\n  console.error('\\x1b[31m%s\\x1b[0m', msg);\n}\n\nhttp\n  .createServer((request, response) => {\n    const url = new URL(request.url!, 'file:');\n    let filePath = url.pathname;\n    if (filePath === '/') {\n      filePath = '/index.html';\n    }\n    filePath = path.join(options.directory, filePath);\n\n    const extname = String(path.extname(filePath)).toLowerCase();\n    const mimeTypes: { [ext: string]: string } = {\n      '.html': 'text/html',\n      '.js': 'text/javascript',\n      '.css': 'text/css',\n      '.json': 'application/json',\n      '.png': 'image/png',\n      '.jpg': 'image/jpg',\n      '.svg': 'image/svg+xml',\n      '.wasm': 'application/wasm',\n      '.map': 'application/json',\n    };\n\n    const contentType = mimeTypes[extname] ?? 'application/octet-stream';\n\n    fs.readFile(filePath, (error, content) => {\n      if (error) {\n        if (error.code === 'ENOENT') {\n          consoleError(`${request.url} => 404`);\n          response.writeHead(404);\n          response.end('Sorry, missing file ..\\n');\n        } else {\n          consoleError(`${request.url} => 500`);\n          response.writeHead(500);\n          response.end(\n            `Sorry, check with the site admin for error: ${error.code} ..\\n`,\n          );\n        }\n      } else {\n        console.log(`${request.url} => ${contentType}`);\n        response.writeHead(200, { 'Content-Type': contentType });\n        response.end(content, 'utf-8');\n      }\n    });\n  })\n  .listen(options.port);\n\nconsole.log(`Server running at http://127.0.0.1:${options.port}/`);\n"
  },
  {
    "path": "scripts/utils.ts",
    "content": "import childProcess from 'node:child_process';\n\ninterface GITOptions extends SpawnOptions {\n  quiet?: boolean;\n}\n\nexport function git(options?: GITOptions) {\n  const cmdOptions = options?.quiet === true ? ['--quiet'] : [];\n  return {\n    clone(...args: ReadonlyArray<string>): void {\n      spawn('git', ['clone', ...cmdOptions, ...args], options);\n    },\n    checkout(...args: ReadonlyArray<string>): void {\n      spawn('git', ['checkout', ...cmdOptions, ...args], options);\n    },\n    revParse(...args: ReadonlyArray<string>): string {\n      return spawnOutput('git', ['rev-parse', ...cmdOptions, ...args], options);\n    },\n    revList(...args: ReadonlyArray<string>): Array<string> {\n      const allArgs = ['rev-list', ...cmdOptions, ...args];\n      const result = spawnOutput('git', allArgs, options);\n      return result === '' ? [] : result.split('\\n');\n    },\n    catFile(...args: ReadonlyArray<string>): string {\n      return spawnOutput('git', ['cat-file', ...cmdOptions, ...args], options);\n    },\n    log(...args: ReadonlyArray<string>): string {\n      return spawnOutput('git', ['log', ...cmdOptions, ...args], options);\n    },\n  };\n}\n\ninterface SpawnOptions {\n  cwd?: string;\n  env?: typeof process.env;\n}\n\nexport function spawnOutput(\n  command: string,\n  args: ReadonlyArray<string>,\n  options?: SpawnOptions,\n): string {\n  const result = childProcess.spawnSync(command, args, {\n    maxBuffer: 10 * 1024 * 1024, // 10MB\n    stdio: ['inherit', 'pipe', 'inherit'],\n    encoding: 'utf-8',\n    ...options,\n  });\n\n  if (result.status !== 0) {\n    throw new Error(`Command failed: ${command} ${args.join(' ')}`);\n  }\n\n  return result.stdout.toString().trimEnd();\n}\n\nfunction spawn(\n  command: string,\n  args: ReadonlyArray<string>,\n  options?: SpawnOptions,\n): void {\n  const result = childProcess.spawnSync(command, args, {\n    stdio: 'inherit',\n    ...options,\n  });\n  if (result.status !== 0) {\n    throw new Error(`Command failed: ${command} ${args.join(' ')}`);\n  }\n}\n"
  },
  {
    "path": "src/components/GraphViewport.tsx",
    "content": "import Box from '@mui/material/Box';\nimport IconButton from '@mui/material/IconButton';\nimport Stack from '@mui/material/Stack';\nimport { GraphQLNamedType } from 'graphql';\nimport { Component, createRef } from 'react';\n\nimport { renderSvg } from '../graph/svg-renderer.ts';\nimport { TypeGraph } from '../graph/type-graph.ts';\nimport { Viewport } from '../graph/viewport.ts';\nimport { extractTypeName, typeObjToId } from '../introspection/utils.ts';\nimport ZoomInIcon from './icons/zoom-in.svg';\nimport ZoomOutIcon from './icons/zoom-out.svg';\nimport ZoomResetIcon from './icons/zoom-reset.svg';\nimport LoadingAnimation from './utils/LoadingAnimation.tsx';\nimport { type NavStack } from './Voyager.tsx';\n\ninterface GraphViewportProps {\n  navStack: NavStack | null;\n  onSelectNode: (type: GraphQLNamedType | null) => void;\n  onSelectEdge: (\n    edgeID: string,\n    fromType: GraphQLNamedType,\n    toType: GraphQLNamedType,\n  ) => void;\n}\n\ninterface GraphViewportState {\n  typeGraph: TypeGraph | null | undefined;\n  svgViewport: Viewport | null;\n}\n\nexport default class GraphViewport extends Component<\n  GraphViewportProps,\n  GraphViewportState\n> {\n  state: GraphViewportState = { typeGraph: null, svgViewport: null };\n\n  _containerRef = createRef<HTMLDivElement>();\n  // Handle async graph rendering based on this example\n  // https://gist.github.com/bvaughn/982ab689a41097237f6e9860db7ca8d6\n  _currentTypeGraph: TypeGraph | null = null;\n\n  static getDerivedStateFromProps(\n    props: GraphViewportProps,\n    state: GraphViewportState,\n  ): GraphViewportState | null {\n    const typeGraph = props.navStack?.typeGraph;\n\n    if (typeGraph !== state.typeGraph) {\n      return { typeGraph, svgViewport: null };\n    }\n\n    return null;\n  }\n\n  componentDidMount() {\n    this._renderSvgAsync(this.props.navStack?.typeGraph);\n  }\n\n  componentDidUpdate(\n    prevProps: GraphViewportProps,\n    prevState: GraphViewportState,\n  ) {\n    const navStack = this.props.navStack;\n    const prevNavStack = prevProps.navStack;\n    const { svgViewport } = this.state;\n\n    if (svgViewport == null) {\n      this._renderSvgAsync(navStack?.typeGraph);\n      return;\n    }\n\n    const isJustRendered = prevState.svgViewport == null;\n\n    if (prevNavStack?.type !== navStack?.type || isJustRendered) {\n      const nodeId = navStack?.type == null ? null : typeObjToId(navStack.type);\n      svgViewport.selectNodeById(nodeId);\n    }\n\n    if (\n      prevNavStack?.selectedEdgeID !== navStack?.selectedEdgeID ||\n      isJustRendered\n    ) {\n      svgViewport.selectEdgeById(navStack?.selectedEdgeID);\n    }\n  }\n\n  componentWillUnmount() {\n    this._currentTypeGraph = null;\n    this._cleanupSvgViewport();\n  }\n\n  _renderSvgAsync(typeGraph: TypeGraph | null | undefined) {\n    if (typeGraph == null) {\n      return; // Nothing to render\n    }\n\n    if (typeGraph === this._currentTypeGraph) {\n      return; // Already rendering in background\n    }\n\n    this._currentTypeGraph = typeGraph;\n\n    const { onSelectNode, onSelectEdge } = this.props;\n    renderSvg(typeGraph)\n      .then((svg) => {\n        if (typeGraph !== this._currentTypeGraph) {\n          return; // One of the past rendering jobs finished\n        }\n\n        this._cleanupSvgViewport();\n        const svgViewport = new Viewport(\n          svg,\n          this._containerRef.current!,\n          (nodeId: string | null) => {\n            if (nodeId == null) {\n              return onSelectNode(null);\n            }\n            const type = typeGraph.nodes.get(extractTypeName(nodeId));\n            if (type != null) {\n              onSelectNode(type);\n            }\n          },\n          (edgeID: string, toID: string) => {\n            const fromType = typeGraph.nodes.get(extractTypeName(edgeID));\n            const toType = typeGraph.nodes.get(extractTypeName(toID));\n            if (fromType != null && toType != null) {\n              onSelectEdge(edgeID, fromType, toType);\n            }\n          },\n        );\n        this.setState({ svgViewport });\n      })\n      .catch((rawError) => {\n        this._currentTypeGraph = null;\n\n        const error =\n          rawError instanceof Error\n            ? rawError\n            : new Error('Unknown error: ' + String(rawError));\n        this.setState(() => {\n          throw error;\n        });\n      });\n  }\n\n  render() {\n    const isLoading = this.state.svgViewport == null;\n    const { svgViewport } = this.state;\n    return (\n      <>\n        <Box\n          role=\"img\"\n          aria-label=\"Visual representation of the GraphQL schema\"\n          ref={this._containerRef}\n          sx={{\n            height: '100%',\n            '& > svg': {\n              height: '100%',\n              width: '100%',\n            },\n          }}\n        />\n        {!isLoading && (\n          <Stack\n            alignItems=\"center\"\n            spacing={0.8}\n            padding={1}\n            position=\"absolute\"\n            bottom={0}\n            right={0}\n          >\n            <IconButton\n              aria-label=\"Zoom in\"\n              color=\"secondary\"\n              sx={{ width: 18 }}\n              onClick={() => svgViewport?.zoomIn()}\n            >\n              <ZoomInIcon />\n            </IconButton>\n            <IconButton\n              aria-label=\"Reset zoom\"\n              color=\"secondary\"\n              sx={{ width: 55 }}\n              onClick={() => svgViewport?.reset()}\n            >\n              <ZoomResetIcon />\n            </IconButton>\n            <IconButton\n              aria-label=\"Zoom out\"\n              color=\"secondary\"\n              sx={{ width: 18 }}\n              onClick={() => svgViewport?.zoomOut()}\n            >\n              <ZoomOutIcon />\n            </IconButton>\n          </Stack>\n        )}\n        {isLoading && <LoadingAnimation />}\n      </>\n    );\n  }\n\n  focusNode(type: GraphQLNamedType): void {\n    const { svgViewport } = this.state;\n    if (svgViewport) {\n      svgViewport.focusElement(typeObjToId(type));\n    }\n  }\n\n  _cleanupSvgViewport() {\n    const { svgViewport } = this.state;\n    if (svgViewport) {\n      svgViewport.destroy();\n    }\n  }\n}\n"
  },
  {
    "path": "src/components/IntrospectionModal.tsx",
    "content": "import ContentCopyIcon from '@mui/icons-material/ContentCopy';\nimport TabContext from '@mui/lab/TabContext';\nimport TabList from '@mui/lab/TabList';\nimport TabPanel from '@mui/lab/TabPanel';\nimport Button from '@mui/material/Button';\nimport Dialog from '@mui/material/Dialog';\nimport DialogActions from '@mui/material/DialogActions';\nimport DialogContent from '@mui/material/DialogContent';\nimport Grid from '@mui/material/Grid';\nimport Stack from '@mui/material/Stack';\nimport Tab from '@mui/material/Tab';\nimport TextField from '@mui/material/TextField';\nimport Tooltip from '@mui/material/Tooltip';\nimport Typography from '@mui/material/Typography';\nimport { buildClientSchema } from 'graphql/utilities';\nimport { ReactElement, useState } from 'react';\n\nimport { voyagerIntrospectionQuery } from '../utils/introspection-query.ts';\nimport { sdlToSchema } from '../utils/sdl-to-introspection.ts';\n\nenum InputType {\n  Presets = 'Presets',\n  SDL = 'SDL',\n  Introspection = 'Introspection',\n}\n\ninterface IntrospectionModalProps {\n  open: boolean;\n  presets?: { [name: string]: any };\n  onClose: () => void;\n  onChange: (introspection: any) => void;\n}\n\nexport function IntrospectionModal(props: IntrospectionModalProps) {\n  const { open, presets, onChange, onClose } = props;\n  const hasPresets = presets != null;\n  const presetNames = hasPresets ? Object.keys(presets) : [];\n\n  const [submitted, setSubmitted] = useState({\n    inputType: hasPresets ? InputType.Presets : InputType.SDL,\n    activePreset: presetNames.at(0) ?? '',\n    sdlText: '',\n    jsonText: '',\n  });\n\n  const [inputType, setInputType] = useState(submitted.inputType);\n  const [sdlText, setSDLText] = useState(submitted.sdlText);\n  const [jsonText, setJSONText] = useState(submitted.jsonText);\n  const [activePreset, setActivePreset] = useState(submitted.activePreset);\n\n  return (\n    <IntrospectionDialog\n      open={open}\n      onCancel={handleCancel}\n      onSubmit={handleSubmit}\n    >\n      <TabContext value={inputType}>\n        <TabList\n          variant=\"fullWidth\"\n          indicatorColor=\"primary\"\n          textColor=\"primary\"\n          onChange={(_, activeTab) => setInputType(activeTab)}\n        >\n          {hasPresets && (\n            <Tab value={InputType.Presets} label={InputType.Presets} />\n          )}\n          <Tab value={InputType.SDL} label={InputType.SDL} />\n          <Tab\n            value={InputType.Introspection}\n            label={InputType.Introspection}\n          />\n        </TabList>\n        {hasPresets && (\n          <TabPanel value={InputType.Presets}>\n            <PresetsTab\n              presets={presets}\n              activePreset={activePreset}\n              onPresetChange={setActivePreset}\n            />\n          </TabPanel>\n        )}\n        <TabPanel value={InputType.SDL}>\n          <SDLTab sdlText={sdlText} onSDLTextChange={setSDLText} />\n        </TabPanel>\n        <TabPanel value={InputType.Introspection}>\n          <IntrospectionTab\n            jsonText={jsonText}\n            onJSONTextChange={setJSONText}\n          />\n        </TabPanel>\n      </TabContext>\n    </IntrospectionDialog>\n  );\n\n  function handleCancel() {\n    setInputType(submitted.inputType);\n    setSDLText(submitted.sdlText);\n    setJSONText(submitted.jsonText);\n    setActivePreset(submitted.activePreset);\n    onClose();\n  }\n\n  function handleSubmit() {\n    switch (inputType) {\n      case InputType.Presets:\n        onChange(buildClientSchema(presets?.[activePreset].data));\n        break;\n      case InputType.Introspection:\n        // check for errors and check if valid\n        onChange(buildClientSchema(JSON.parse(jsonText).data));\n        break;\n      case InputType.SDL:\n        onChange(sdlToSchema(sdlText));\n        break;\n    }\n    setSubmitted({ inputType, sdlText, jsonText, activePreset });\n    onClose();\n  }\n}\n\ninterface IntrospectionDialogProps {\n  open: boolean;\n  onCancel: () => void;\n  onSubmit: () => void;\n  children: ReactElement;\n}\n\nfunction IntrospectionDialog(props: IntrospectionDialogProps) {\n  const { open, onCancel, onSubmit, children } = props;\n  return (\n    <Dialog\n      open={open}\n      onClose={onCancel}\n      scroll=\"paper\"\n      PaperProps={{\n        sx: {\n          '&': {\n            width: 0.9,\n            height: 0.9,\n            maxWidth: 800,\n            maxHeight: 400,\n          },\n        },\n      }}\n    >\n      <DialogContent style={{ paddingTop: 10, paddingBottom: 0 }}>\n        {children}\n      </DialogContent>\n      <DialogActions>\n        <Button\n          variant=\"contained\"\n          style={{ background: '#eeeeee' }}\n          onClick={onCancel}\n        >\n          Cancel\n        </Button>\n        <Button\n          variant=\"contained\"\n          style={{ color: 'white' }}\n          onClick={onSubmit}\n        >\n          Display\n        </Button>\n      </DialogActions>\n    </Dialog>\n  );\n}\n\ninterface PresetsTabProps {\n  presets: { [name: string]: any };\n  activePreset: string;\n  onPresetChange: (presetName: string) => void;\n}\n\nfunction PresetsTab(props: PresetsTabProps) {\n  const { presets, activePreset, onPresetChange } = props;\n  const presetNames = Object.keys(presets);\n\n  return (\n    <Grid container spacing={4}>\n      {presetNames.map((name) => (\n        <Grid size={{ xs: 12, sm: 6 }} key={name}>\n          <Button\n            fullWidth\n            variant=\"outlined\"\n            onClick={() => onPresetChange(name)}\n            sx={({ palette }) => ({\n              color: activePreset === name ? palette.primary.main : 'darkgrey',\n              height: { sm: 100 },\n              border: 'none',\n              boxShadow: '0px 0 8px 2px',\n              textTransform: 'none',\n            })}\n          >\n            <Typography component=\"span\" variant=\"h5\">\n              {name}\n            </Typography>\n          </Button>\n        </Grid>\n      ))}\n    </Grid>\n  );\n}\n\ninterface SDLTabProps {\n  sdlText: string;\n  onSDLTextChange: (sdl: string) => void;\n}\n\nfunction SDLTab(props: SDLTabProps) {\n  const { sdlText, onSDLTextChange } = props;\n  return (\n    <Stack spacing={1} justifyContent=\"flex-start\" alignItems=\"center\">\n      <TextField\n        required\n        multiline\n        fullWidth\n        rows={9}\n        value={sdlText}\n        placeholder=\"Paste SDL Here\"\n        onChange={(event) => onSDLTextChange(event.target.value)}\n      />\n      <PrivacyNote />\n    </Stack>\n  );\n}\n\ninterface IntrospectionTabProps {\n  jsonText: string;\n  onJSONTextChange: (json: string) => void;\n}\n\nfunction IntrospectionTab(props: IntrospectionTabProps) {\n  const { jsonText, onJSONTextChange } = props;\n  const [isCopied, setIsCopied] = useState(false);\n  return (\n    <Stack spacing={1} justifyContent=\"flex-start\" alignItems=\"center\">\n      <Typography>\n        Run the introspection query against a GraphQL endpoint. Paste the result\n        into the textarea below to view the model relationships.\n      </Typography>\n      <Tooltip\n        title=\"Copied!\"\n        open={isCopied}\n        onClose={() => setIsCopied(false)}\n        leaveDelay={1500}\n      >\n        <Button\n          variant=\"outlined\"\n          startIcon={<ContentCopyIcon />}\n          color=\"primary\"\n          size=\"small\"\n          // eslint-disable-next-line @typescript-eslint/no-misused-promises\n          onClick={async () => {\n            await navigator.clipboard.writeText(voyagerIntrospectionQuery);\n            setIsCopied(true);\n          }}\n        >\n          Copy Introspection Query\n        </Button>\n      </Tooltip>\n      <TextField\n        required\n        multiline\n        fullWidth\n        rows={4}\n        value={jsonText}\n        placeholder=\"Paste Introspection Here\"\n        onChange={(event) => onJSONTextChange(event.target.value)}\n      />\n      <PrivacyNote />\n    </Stack>\n  );\n}\n\nfunction PrivacyNote() {\n  return (\n    <Typography>\n      <b>Privacy note: </b>\n      Your schema is processed within browser and is not transmitted to external\n      servers or third parties.\n    </Typography>\n  );\n}\n"
  },
  {
    "path": "src/components/MUITheme.tsx",
    "content": "import { cyan } from '@mui/material/colors';\nimport { createTheme } from '@mui/material/styles';\n\nimport variables from './variables.css';\n\ndeclare module '@mui/material/styles' {\n  interface Palette {\n    shadowColor: Palette['primary'];\n  }\n  interface PaletteOptions {\n    shadowColor: PaletteOptions['primary'];\n  }\n\n  interface Theme {\n    panelSpacing?: string;\n  }\n  interface ThemeOptions {\n    panelSpacing?: string;\n  }\n}\n\nexport const theme = createTheme({\n  palette: {\n    primary: cyan,\n    secondary: { main: '#548f9e' },\n    shadowColor: { main: 'rgba(0, 0, 0, 0.1)' },\n  },\n  typography: {\n    fontSize: 12,\n    fontFamily: 'helvetica neue, helvetica, arial, sans-serif',\n  },\n  panelSpacing: '15px',\n  components: {\n    MuiCheckbox: {\n      styleOverrides: {\n        root: {\n          width: '30px',\n          height: '15px',\n          padding: 0,\n        },\n      },\n    },\n    MuiIconButton: {\n      styleOverrides: {\n        root: {\n          width: variables.iconsSize,\n          height: variables.iconSize,\n          padding: 0,\n        },\n      },\n    },\n    MuiInput: {\n      styleOverrides: {\n        root: {\n          marginBottom: '10px',\n        },\n      },\n    },\n    MuiTooltip: {\n      styleOverrides: {\n        tooltip: {\n          fontSize: variables.baseFontSize - 2,\n        },\n      },\n    },\n    MuiMenuItem: {\n      styleOverrides: {\n        root: {\n          padding: '11px 16px',\n        },\n      },\n    },\n    MuiSnackbar: {\n      styleOverrides: {\n        anchorOriginBottomLeft: {\n          [variables.bigViewport]: {\n            left: '340px',\n            right: '20px',\n            bottom: '20px',\n          },\n        },\n      },\n    },\n    MuiSnackbarContent: {\n      styleOverrides: {\n        root: {\n          width: '50%',\n          backgroundColor: variables.alertColor,\n        },\n      },\n    },\n  },\n});\n"
  },
  {
    "path": "src/components/Voyager.css",
    "content": "@import './variables.css';\n\n/* fix height of element */\n[data-reactroot] {\n  height: 100%;\n}\n\n.graphql-voyager {\n  font: var(--base-font-size) var(--base-font-family);\n  display: flex;\n  height: 100%;\n\n  @media (--small-viewport) {\n    flex-direction: column;\n  }\n\n  & > .doc-panel {\n    width: var(--doc-panel-width);\n    min-width: var(--doc-panel-width);\n    background: var(--doc-panel-bg-color);\n    box-sizing: border-box;\n    position: relative;\n    z-index: 10;\n  }\n\n  @media (--small-viewport) {\n    & > .doc-panel {\n      height: 50%;\n      width: 100%;\n      max-width: none;\n    }\n  }\n}\n"
  },
  {
    "path": "src/components/Voyager.tsx",
    "content": "import './Voyager.css';\nimport './viewport.css';\n\nimport Box from '@mui/material/Box';\nimport Button from '@mui/material/Button';\nimport Stack from '@mui/material/Stack';\nimport { ThemeProvider } from '@mui/material/styles';\nimport { ExecutionResult } from 'graphql/execution';\nimport { GraphQLNamedType, GraphQLSchema } from 'graphql/type';\nimport { buildClientSchema, IntrospectionQuery } from 'graphql/utilities';\nimport {\n  Children,\n  type ReactNode,\n  useCallback,\n  useEffect,\n  useMemo,\n  useRef,\n  useState,\n} from 'react';\n\nimport { getTypeGraph, TypeGraph } from '../graph/type-graph.ts';\nimport { getSchema } from '../introspection/introspection.ts';\nimport { MaybePromise, usePromise } from '../utils/usePromise.ts';\nimport DocExplorer from './doc-explorer/DocExplorer.tsx';\nimport GraphViewport from './GraphViewport.tsx';\nimport { IntrospectionModal } from './IntrospectionModal.tsx';\nimport { theme } from './MUITheme.tsx';\nimport Settings from './settings/Settings.tsx';\nimport PoweredBy from './utils/PoweredBy.tsx';\nimport { VoyagerLogo } from './utils/VoyagerLogo.tsx';\n\nexport interface VoyagerDisplayOptions {\n  rootType?: string;\n  skipRelay?: boolean;\n  skipDeprecated?: boolean;\n  showLeafFields?: boolean;\n  sortByAlphabet?: boolean;\n  hideRoot?: boolean;\n}\n\nexport interface VoyagerProps {\n  introspection?: MaybePromise<\n    ExecutionResult<IntrospectionQuery> | GraphQLSchema\n  >;\n  displayOptions?: VoyagerDisplayOptions;\n  introspectionPresets?: { [name: string]: any };\n  allowToChangeSchema?: boolean;\n  hideDocs?: boolean;\n  hideSettings?: boolean;\n  hideVoyagerLogo?: boolean;\n\n  children?: ReactNode;\n}\n\ninterface NavStackTypeList {\n  prev: null;\n  typeGraph: TypeGraph;\n  type: null;\n  selectedEdgeID: null;\n  searchValue: string;\n}\n\ninterface NavStackType {\n  prev: NavStack;\n  typeGraph: TypeGraph;\n  type: GraphQLNamedType;\n  selectedEdgeID: string | null;\n  searchValue: string;\n}\n\nexport type NavStack = NavStackTypeList | NavStackType;\n\nexport default function Voyager(props: VoyagerProps) {\n  const initialDisplayOptions = useMemo(\n    () => ({\n      rootType: undefined,\n      skipRelay: true,\n      skipDeprecated: true,\n      sortByAlphabet: false,\n      showLeafFields: true,\n      hideRoot: false,\n      ...props.displayOptions,\n    }),\n    [props.displayOptions],\n  );\n\n  const [introspectionModalOpen, setIntrospectionModalOpen] = useState(\n    props.introspection == null,\n  );\n  const [introspectionResult, resolveIntrospectionResult] = usePromise(\n    props.introspection,\n  );\n  const [displayOptions, setDisplayOptions] = useState(initialDisplayOptions);\n\n  useEffect(() => {\n    setDisplayOptions(initialDisplayOptions);\n  }, [introspectionResult, initialDisplayOptions]);\n\n  const [navStack, setNavStack] = useState<NavStack | null>(null);\n  useEffect(() => {\n    if (introspectionResult.loading || introspectionResult.value == null) {\n      return; // FIXME: display introspectionResult.error\n    }\n\n    let introspectionSchema;\n    if (introspectionResult.value instanceof GraphQLSchema) {\n      introspectionSchema = introspectionResult.value;\n    } else {\n      if (\n        introspectionResult.value.errors != null ||\n        introspectionResult.value.data == null\n      ) {\n        return; // FIXME: display errors\n      }\n      introspectionSchema = buildClientSchema(introspectionResult.value.data);\n    }\n\n    const schema = getSchema(introspectionSchema, displayOptions);\n    const typeGraph = getTypeGraph(schema, displayOptions);\n\n    setNavStack(() => ({\n      prev: null,\n      typeGraph,\n      type: null,\n      selectedEdgeID: null,\n      searchValue: '',\n    }));\n  }, [introspectionResult, displayOptions]);\n\n  const {\n    allowToChangeSchema = false,\n    hideDocs = false,\n    hideSettings = false,\n    // TODO: switch to false in the next major version\n    hideVoyagerLogo = true,\n  } = props;\n\n  const viewportRef = useRef<GraphViewport>(null);\n\n  const handleNavigationBack = useCallback(() => {\n    setNavStack((old) => {\n      if (old?.prev == null) {\n        return old;\n      }\n      return old.prev;\n    });\n  }, []);\n\n  const handleSearch = useCallback((searchValue: string) => {\n    setNavStack((old) => {\n      if (old == null) {\n        return old;\n      }\n      return { ...old, searchValue };\n    });\n  }, []);\n\n  const handleSelectNode = useCallback((type: GraphQLNamedType | null) => {\n    setNavStack((old) => {\n      if (old == null) {\n        return old;\n      }\n      if (type == null) {\n        let first = old;\n        while (first.prev != null) {\n          first = first.prev;\n        }\n        return first;\n      }\n      return {\n        prev: old,\n        typeGraph: old.typeGraph,\n        type,\n        selectedEdgeID: null,\n        searchValue: '',\n      };\n    });\n  }, []);\n\n  const handleSelectEdge = useCallback(\n    (edgeID: string, fromType: GraphQLNamedType, _toType: GraphQLNamedType) => {\n      setNavStack((old) => {\n        if (old == null) {\n          return old;\n        }\n        if (fromType === old.type) {\n          // deselect if click again\n          return edgeID === old.selectedEdgeID\n            ? { ...old, selectedEdgeID: null }\n            : { ...old, selectedEdgeID: edgeID };\n        }\n        return {\n          prev: old,\n          typeGraph: old.typeGraph,\n          type: fromType,\n          selectedEdgeID: edgeID,\n          searchValue: '',\n        };\n      });\n    },\n    [],\n  );\n\n  return (\n    <ThemeProvider theme={theme}>\n      <div className=\"graphql-voyager\">\n        {!hideDocs && renderPanel()}\n        {renderGraphViewport()}\n        {allowToChangeSchema && renderIntrospectionModal()}\n      </div>\n    </ThemeProvider>\n  );\n\n  function renderIntrospectionModal() {\n    return (\n      <IntrospectionModal\n        open={introspectionModalOpen}\n        presets={props.introspectionPresets}\n        onClose={() => setIntrospectionModalOpen(false)}\n        onChange={resolveIntrospectionResult}\n      />\n    );\n  }\n\n  function renderPanel() {\n    const children = Children.toArray(props.children);\n    const panelHeader = children.find(\n      (child) =>\n        typeof child === 'object' &&\n        'type' in child &&\n        child.type === Voyager.PanelHeader,\n    );\n\n    return (\n      <div className=\"doc-panel\">\n        <div className=\"contents\">\n          {!hideVoyagerLogo && <VoyagerLogo />}\n          {allowToChangeSchema && renderChangeSchemaButton()}\n          {panelHeader}\n          <DocExplorer\n            navStack={navStack}\n            onNavigationBack={handleNavigationBack}\n            onSearch={handleSearch}\n            onFocusNode={(type) => viewportRef.current?.focusNode(type)}\n            onSelectNode={handleSelectNode}\n            onSelectEdge={handleSelectEdge}\n          />\n          <PoweredBy />\n        </div>\n      </div>\n    );\n  }\n\n  function renderChangeSchemaButton() {\n    // TODO: generalize padding by applying it to the whole panel\n    return (\n      <Stack padding={({ panelSpacing }) => `0 ${panelSpacing}`}>\n        <Button\n          color=\"primary\"\n          style={{ color: 'white' }}\n          variant=\"contained\"\n          onClick={() => setIntrospectionModalOpen(true)}\n        >\n          Change Schema\n        </Button>\n      </Stack>\n    );\n  }\n\n  function renderGraphViewport() {\n    return (\n      <Box\n        sx={(theme) => ({\n          flex: 1,\n          position: 'relative',\n          display: 'inline-block',\n          width: '100%',\n          height: '100%',\n          maxHeight: '100%',\n\n          [theme.breakpoints.down('md')]: {\n            height: '50%',\n            maxWidth: 'none',\n          },\n        })}\n      >\n        {!hideSettings && (\n          <Settings\n            options={displayOptions}\n            typeGraph={navStack?.typeGraph}\n            onChange={(options) =>\n              setDisplayOptions((oldOptions) => ({ ...oldOptions, ...options }))\n            }\n          />\n        )}\n        <GraphViewport\n          navStack={navStack}\n          onSelectNode={handleSelectNode}\n          onSelectEdge={handleSelectEdge}\n          ref={viewportRef}\n        />\n      </Box>\n    );\n  }\n}\n\nfunction PanelHeader(props: { children: ReactNode }) {\n  return <>{props.children}</>;\n}\nVoyager.PanelHeader = PanelHeader;\n"
  },
  {
    "path": "src/components/doc-explorer/Argument.css",
    "content": "@import '../variables.css';\n\n.args-wrap {\n  &:before {\n    content: '( ';\n    display: inline;\n  }\n\n  &:after {\n    content: ' )';\n    display: inline;\n  }\n\n  &.-empty {\n    &:before,\n    &:after {\n      display: none !important;\n    }\n  }\n}\n\n.arg-wrap {\n  & > .arg {\n    display: inline;\n\n    &:after {\n      content: ', ';\n    }\n\n    & > .default-value {\n      color: var(--arg-default-color);\n    }\n  }\n\n  &:last-child .arg:after {\n    content: '';\n  }\n\n  & > .arg-description,\n  & .arg > .wrapped-type-name {\n    display: none;\n  }\n}\n\n.arg-wrap.-expanded {\n  &:before,\n  &:after {\n    display: none;\n  }\n\n  & .arg {\n    display: block;\n    margin: var(--spacing-unit) 0;\n  }\n\n  & .arg-description {\n    display: block;\n    color: var(--text-color);\n  }\n\n  & .wrapped-type-name {\n    display: inline-block;\n  }\n\n  & .arg-description > p {\n    margin: 0;\n  }\n\n  & .arg-description:before {\n    display: block;\n    content: '#';\n    float: left;\n    margin-right: var(--spacing-unit);\n  }\n}\n"
  },
  {
    "path": "src/components/doc-explorer/Argument.tsx",
    "content": "import './Argument.css';\n\nimport { GraphQLArgument, GraphQLNamedType } from 'graphql/type';\n\nimport { highlightTerm } from '../../utils/highlight.tsx';\nimport Markdown from '../utils/Markdown.tsx';\nimport WrappedTypeName from './WrappedTypeName.tsx';\n\ninterface ArgumentProps {\n  arg: GraphQLArgument;\n  filter: string;\n  expanded: boolean;\n  onTypeLink: (type: GraphQLNamedType) => void;\n}\n\nexport default function Argument(props: ArgumentProps) {\n  const { arg, filter, expanded, onTypeLink } = props;\n\n  return (\n    <span className={`arg-wrap ${expanded ? '-expanded' : ''}`}>\n      <Markdown text={arg.description} className=\"arg-description\" />\n      <span className=\"arg\">\n        <span className=\"arg-name\">{highlightTerm(arg.name, filter)}</span>\n        <WrappedTypeName container={arg} onTypeLink={onTypeLink} />\n        {arg.defaultValue != null && (\n          <span>\n            {' = '}\n            <span className=\"default-value\">\n              {JSON.stringify(arg.defaultValue)}\n            </span>\n          </span>\n        )}\n      </span>\n    </span>\n  );\n}\n"
  },
  {
    "path": "src/components/doc-explorer/Description.css",
    "content": "@import '../variables.css';\n\n.description-box {\n  & blockquote {\n    border-left: 2px solid color(var(--secondary-color) a(50%));\n    margin: var(--spacing-unit) calc(var(--spacing-unit) * 3);\n    padding-left: calc(var(--spacing-unit) * 2);\n  }\n\n  & a {\n    word-break: break-all;\n  }\n\n  & p:first-child {\n    margin-top: 0;\n  }\n\n  &.-no-description {\n    font-style: italic;\n    color: var(--text-color);\n  }\n\n  &.-linked-type,\n  &.-field,\n  &.-enum-value {\n    & p {\n      margin: 0;\n    }\n  }\n\n  &.-enum-value {\n    padding: var(--spacing-unit) 0 0 var(--spacing-unit);\n  }\n}\n"
  },
  {
    "path": "src/components/doc-explorer/Description.tsx",
    "content": "import './Description.css';\n\nimport Markdown from '../utils/Markdown.tsx';\n\ninterface DescriptionProps {\n  text: string | undefined | null;\n  className: string;\n}\n\nexport default function Description(props: DescriptionProps) {\n  const { text, className } = props;\n\n  if (text)\n    return <Markdown text={text} className={`description-box ${className}`} />;\n\n  return (\n    <div className={`description-box ${className} -no-description`}>\n      <p>No Description</p>\n    </div>\n  );\n}\n"
  },
  {
    "path": "src/components/doc-explorer/DocExplorer.css",
    "content": "@import '../variables.css';\n\n.doc-wrapper {\n  position: relative;\n  z-index: 1;\n  background: white;\n}\n\n.doc-panel {\n  & > .contents {\n    display: flex;\n    flex-direction: column;\n    background: var(--doc-panel-bg-color);\n    position: relative;\n    z-index: 5;\n    border-right: 1px solid var(--shadow-color);\n    height: 100%;\n  }\n}\n\n.doc-navigation {\n  min-height: var(--icons-size);\n  border-bottom: 1px solid var(--shadow-color);\n  display: flex;\n  justify-content: space-between;\n\n  & > span {\n    display: inline-block;\n    vertical-align: middle;\n    white-space: nowrap;\n    line-height: var(--icons-size);\n  }\n\n  & > .back {\n    color: var(--field-name-color);\n    cursor: pointer;\n    overflow-x: hidden;\n    text-overflow: ellipsis;\n    white-space: nowrap;\n    padding-left: 2px;\n    font-weight: normal;\n\n    &:before {\n      border-left: 2px solid var(--field-name-color);\n      border-top: 2px solid var(--field-name-color);\n      content: '';\n      display: inline-block;\n      height: 9px;\n      margin: 0 3px -1px 0;\n      position: relative;\n      transform: rotate(-45deg);\n      width: 9px;\n    }\n  }\n\n  & > .active {\n    font-weight: bold;\n    color: var(--primary-color);\n    font-weight: bold;\n    overflow: hidden;\n    text-overflow: ellipsis;\n  }\n\n  & > .header {\n    font-weight: bold;\n    color: var(--text-color);\n  }\n}\n"
  },
  {
    "path": "src/components/doc-explorer/DocExplorer.tsx",
    "content": "import './DocExplorer.css';\n\nimport { type GraphQLNamedType } from 'graphql/type';\nimport { useCallback, useEffect, useState } from 'react';\n\nimport SearchBox from '../utils/SearchBox.tsx';\nimport { type NavStack } from '../Voyager.tsx';\nimport FocusTypeButton from './FocusTypeButton.tsx';\nimport OtherSearchResults from './OtherSearchResults.tsx';\nimport TypeDoc from './TypeDoc.tsx';\nimport TypeInfoPopover from './TypeInfoPopover.tsx';\nimport TypeList from './TypeList.tsx';\n\ninterface DocExplorerProps {\n  navStack: NavStack | null;\n  onNavigationBack: () => void;\n  onSearch: (searchValue: string) => void;\n  onFocusNode: (type: GraphQLNamedType) => void;\n  onSelectNode: (type: GraphQLNamedType | null) => void;\n  onSelectEdge: (\n    edgeID: string,\n    fromType: GraphQLNamedType,\n    toType: GraphQLNamedType,\n  ) => void;\n}\n\nconst TYPE_LIST = 'Type List';\n\nexport default function DocExplorer(props: DocExplorerProps) {\n  const {\n    navStack,\n    onNavigationBack,\n    onSearch,\n    onFocusNode,\n    onSelectNode,\n    onSelectEdge,\n  } = props;\n\n  const [typeForInfoPopover, setTypeForInfoPopover] =\n    useState<GraphQLNamedType | null>(null);\n  useEffect(() => setTypeForInfoPopover(null), [navStack]);\n\n  const handleTypeLink = useCallback(\n    (type: GraphQLNamedType) => {\n      if (navStack?.typeGraph.nodes.has(type.name)) {\n        onFocusNode(type);\n        onSelectNode(type);\n      } else {\n        setTypeForInfoPopover(type);\n      }\n    },\n    [navStack, onFocusNode, onSelectNode, setTypeForInfoPopover],\n  );\n\n  const handleSelectEdge = useCallback(\n    (fieldID: string, fromType: GraphQLNamedType, toType: GraphQLNamedType) => {\n      if (fromType !== navStack?.type) {\n        onFocusNode(fromType);\n      }\n      onSelectEdge(fieldID, fromType, toType);\n    },\n    [navStack, onFocusNode, onSelectEdge],\n  );\n\n  const handleNavBack = useCallback(() => {\n    const previousType = navStack?.prev?.type;\n    if (previousType != null) {\n      onFocusNode(previousType);\n    }\n    onNavigationBack();\n  }, [navStack, onNavigationBack, onFocusNode]);\n\n  if (navStack == null) {\n    return (\n      <div className=\"type-doc\" key={0}>\n        <span className=\"loading\"> Loading... </span>\n      </div>\n    );\n  }\n\n  return (\n    <div className=\"type-doc\">\n      {navStack.prev == null ? (\n        <div className=\"doc-navigation\">\n          <span className=\"header\">{TYPE_LIST}</span>\n        </div>\n      ) : (\n        <div className=\"doc-navigation\">\n          <span className=\"back\" onClick={handleNavBack}>\n            {navStack.prev.type?.name ?? TYPE_LIST}\n          </span>\n          <span className=\"active\" title={navStack.type.name}>\n            {navStack.type.name}\n            <FocusTypeButton onClick={() => onFocusNode(navStack.type)} />\n          </span>\n        </div>\n      )}\n      <SearchBox\n        placeholder={`Search ${navStack.type?.name ?? 'Schema'}...`}\n        value={navStack.searchValue}\n        onSearch={onSearch}\n      />\n      <div className=\"scroll-area\">\n        {navStack.type == null ? (\n          <TypeList\n            typeGraph={navStack.typeGraph}\n            filter={navStack.searchValue}\n            onTypeLink={handleTypeLink}\n            onFocusType={onFocusNode}\n          />\n        ) : (\n          <TypeDoc\n            selectedType={navStack.type}\n            selectedEdgeID={navStack.selectedEdgeID}\n            typeGraph={navStack.typeGraph}\n            filter={navStack.searchValue}\n            onTypeLink={handleTypeLink}\n            onSelectEdge={handleSelectEdge}\n          />\n        )}\n        <OtherSearchResults\n          typeGraph={navStack.typeGraph}\n          withinType={navStack.type}\n          searchValue={navStack.searchValue}\n          onTypeLink={handleTypeLink}\n          onFieldLink={handleSelectEdge}\n        />\n      </div>\n      {typeForInfoPopover && (\n        <TypeInfoPopover\n          type={typeForInfoPopover}\n          onChange={setTypeForInfoPopover}\n        />\n      )}\n    </div>\n  );\n}\n"
  },
  {
    "path": "src/components/doc-explorer/EnumValue.tsx",
    "content": "import { GraphQLEnumValue } from 'graphql/type';\n\nimport Markdown from '../utils/Markdown.tsx';\n\ninterface EnumValueProps {\n  value: GraphQLEnumValue;\n}\n\nexport default function EnumValue(props: EnumValueProps) {\n  const { value } = props;\n\n  return (\n    <div className=\"item\">\n      <div className=\"enum-value\">{value.name}</div>\n      <Markdown\n        className=\"description-box -enum-value\"\n        text={value.description}\n      />\n      {value.deprecationReason && (\n        <Markdown className=\"doc-deprecation\" text={value.deprecationReason} />\n      )}\n    </div>\n  );\n}\n"
  },
  {
    "path": "src/components/doc-explorer/FocusTypeButton.css",
    "content": "@import '../variables.css';\n\n.eye-button {\n  height: var(--icons-size);\n  width: var(--icons-size);\n  min-width: var(--icons-size);\n  padding: 0;\n  vertical-align: middle;\n\n  & svg {\n    line-height: var(--icons-size);\n    height: var(--icons-size);\n\n    & path:not([fill]) {\n      fill: var(--primary-color);\n    }\n  }\n}\n"
  },
  {
    "path": "src/components/doc-explorer/FocusTypeButton.tsx",
    "content": "import './FocusTypeButton.css';\n\nimport IconButton from '@mui/material/IconButton';\n\nimport EyeIcon from '../icons/remove-red-eye.svg';\n\nfunction FocusTypeButton(props: { onClick: () => void }) {\n  return (\n    <IconButton className=\"eye-button\" onClick={props.onClick} color=\"primary\">\n      <EyeIcon />\n    </IconButton>\n  );\n}\n\nexport default FocusTypeButton;\n"
  },
  {
    "path": "src/components/doc-explorer/OtherSearchResults.tsx",
    "content": "import { getNamedType, GraphQLNamedType } from 'graphql/type';\n\nimport { TypeGraph } from '../../graph/type-graph.ts';\nimport { mapFields } from '../../introspection/utils.ts';\nimport { highlightTerm } from '../../utils/highlight.tsx';\nimport { isMatch } from '../../utils/is-match.ts';\n\ninterface OtherSearchResultsProps {\n  typeGraph: TypeGraph;\n  withinType: GraphQLNamedType | null;\n  searchValue: string;\n  onTypeLink: (type: GraphQLNamedType) => void;\n  onFieldLink: (\n    fieldID: string,\n    parent: GraphQLNamedType,\n    fieldType: GraphQLNamedType,\n  ) => void;\n}\n\nexport default function OtherSearchResults(props: OtherSearchResultsProps) {\n  const { typeGraph, withinType, searchValue, onTypeLink, onFieldLink } = props;\n\n  if (searchValue == '') {\n    return null;\n  }\n\n  const types = Array.from(typeGraph.nodes.values()).filter(\n    (type) => type !== withinType,\n  );\n\n  const matchedTypes = [];\n  if (withinType != null) {\n    for (const type of types) {\n      if (isMatch(type.name, searchValue)) {\n        matchedTypes.push(\n          <div\n            className=\"item\"\n            key={type.name}\n            onClick={() => onTypeLink(type)}\n          >\n            <span className=\"type-name\">\n              {highlightTerm(type.name, searchValue)}\n            </span>\n          </div>,\n        );\n      }\n    }\n  }\n\n  const matchedFields = [];\n  for (const type of types) {\n    if (matchedFields.length >= 100) {\n      break;\n    }\n\n    matchedFields.push(\n      ...mapFields(type, (fieldID, field) => {\n        const matchingArgs = Object.values(field.args).filter((arg) =>\n          isMatch(arg.name, searchValue),\n        );\n\n        if (!isMatch(field.name, searchValue) && matchingArgs.length === 0) {\n          return null;\n        }\n\n        return (\n          <div\n            className=\"item\"\n            key={fieldID}\n            onClick={() => onFieldLink(fieldID, type, getNamedType(field.type))}\n          >\n            <span className=\"type-name\">{type.name}</span>\n            <span className=\"field-name\">\n              {highlightTerm(field.name, searchValue)}\n            </span>\n            {matchingArgs.length > 0 && (\n              <span className=\"args args-wrap\">\n                {matchingArgs.map((arg) => (\n                  <span key={arg.name} className=\"arg-wrap\">\n                    <span className=\"arg arg-name\">\n                      {highlightTerm(arg.name, searchValue)}\n                    </span>\n                  </span>\n                ))}\n              </span>\n            )}\n          </div>\n        );\n      }),\n    );\n  }\n\n  return (\n    <div className=\"other-search-results doc-category\">\n      <div className=\"title\">other results</div>\n      {matchedTypes.length + matchedFields.length === 0 ? (\n        <div className=\"doc-alert-text -search\">No results found.</div>\n      ) : (\n        <>\n          {matchedTypes}\n          {matchedFields}\n        </>\n      )}\n    </div>\n  );\n}\n"
  },
  {
    "path": "src/components/doc-explorer/TypeDetails.css",
    "content": ".type-details {\n  display: flex;\n  flex-direction: column;\n  height: 100%;\n\n  & > .doc-categories {\n    flex: 1;\n    overflow-y: auto;\n  }\n}\n"
  },
  {
    "path": "src/components/doc-explorer/TypeDetails.tsx",
    "content": "import {\n  GraphQLEnumType,\n  GraphQLInputObjectType,\n  GraphQLNamedType,\n  isEnumType,\n  isInputObjectType,\n} from 'graphql/type';\n\nimport Markdown from '../utils/Markdown.tsx';\nimport Description from './Description.tsx';\nimport EnumValue from './EnumValue.tsx';\nimport WrappedTypeName from './WrappedTypeName.tsx';\n\ninterface TypeDetailsProps {\n  type: GraphQLNamedType;\n  onTypeLink: (type: GraphQLNamedType) => void;\n}\n\nexport default function TypeDetails(props: TypeDetailsProps) {\n  const { type, onTypeLink } = props;\n\n  return (\n    <div className=\"type-details\">\n      <header>\n        <h3>{type.name}</h3>\n        <Description className=\"-doc-type\" text={type.description} />\n      </header>\n      <div className=\"doc-categories\">\n        {isInputObjectType(type) && renderFields(type)}\n        {isEnumType(type) && renderEnumValues(type)}\n      </div>\n    </div>\n  );\n\n  function renderFields(type: GraphQLInputObjectType) {\n    const inputFields = Object.values(type.getFields());\n    if (inputFields.length === 0) return null;\n\n    return (\n      <div className=\"doc-category\">\n        <div className=\"title\">fields</div>\n        {inputFields.map((field) => {\n          return (\n            <div key={field.name} className=\"item\">\n              <a className=\"field-name\">{field.name}</a>\n              <WrappedTypeName container={field} onTypeLink={onTypeLink} />\n              <Markdown\n                text={field.description}\n                className=\"description-box -field\"\n              />\n            </div>\n          );\n        })}\n      </div>\n    );\n  }\n\n  function renderEnumValues(type: GraphQLEnumType) {\n    const enumValues = type.getValues();\n    if (enumValues.length === 0) return null;\n\n    return (\n      <div className=\"doc-category\">\n        <div className=\"title\">values</div>\n        {enumValues.map((value) => (\n          <EnumValue key={value.name} value={value} />\n        ))}\n      </div>\n    );\n  }\n}\n"
  },
  {
    "path": "src/components/doc-explorer/TypeDoc.css",
    "content": "@import '../variables.css';\n\n/* common type doc styling */\n.field-name {\n  color: var(--field-name-color);\n}\n\n.type-name + .field-name {\n  &::before {\n    content: '.';\n    color: var(--text-color);\n  }\n}\n\n.doc-alert-text {\n  color: var(--alert-color);\n  font-family: var(--monospace-font-family);\n  font-size: 13px;\n\n  &.-search {\n    padding: var(--panel-items-spacing) var(--panel-spacing);\n  }\n}\n\n.value-name {\n  color: var(--arg-default-color);\n}\n\n.arg-name {\n  color: var(--arg-name-color);\n}\n\n.type-doc {\n  display: flex;\n  flex-direction: column;\n  flex: 1;\n  margin-top: var(--panel-spacing);\n  position: relative;\n\n  /* Overwrite min-height: https://drafts.csswg.org/css-flexbox/#min-size-auto */\n  min-height: 0;\n\n  & > div {\n    position: relative;\n    z-index: 1;\n    background: white;\n  }\n\n  & > .loading {\n    padding: 0 var(--panel-spacing);\n    font-weight: bold;\n    color: var(--text-color);\n  }\n\n  & a {\n    cursor: pointer;\n    text-decoration: none;\n  }\n\n  & > .scroll-area {\n    padding-top: var(--panel-spacing);\n    overflow-y: auto;\n    flex-grow: 1;\n\n    & .description-box.-doc-type {\n      padding: 0 var(--panel-spacing);\n    }\n  }\n\n  & > .doc-navigation {\n    padding: var(--spacing-unit)\n      calc(var(--panel-spacing) + var(--spacing-unit)) var(--spacing-unit) 18px;\n  }\n}\n\n.doc-category {\n  margin: var(--panel-spacing) 0 0;\n  cursor: pointer;\n\n  & > .item {\n    padding: var(--panel-items-spacing) var(--panel-spacing);\n    color: var(--text-color);\n    position: relative;\n    border-left: 3px solid transparent;\n\n    & > .description-box {\n      margin-top: 5px;\n    }\n  }\n\n  & > .title {\n    border-bottom: 1px solid #e0e0e0;\n    padding: 0 15px;\n    color: var(--text-color);\n    cursor: default;\n    font-size: 14px;\n    font-variant: small-caps;\n    font-weight: bold;\n    letter-spacing: 1px;\n    margin: 0 -15px 10px 0;\n    user-select: none;\n    box-sizing: border-box;\n    width: 100%;\n  }\n\n  & > .item {\n    &:nth-child(odd) {\n      background-color: var(--doc-panel-item-stripe-color);\n    }\n\n    &:hover {\n      background-color: var(--doc-panel-item-hover-color);\n    }\n\n    &.-with-args {\n      &:before {\n        width: 0;\n        height: 0;\n        border-left: var(--spacing-unit) solid transparent;\n        border-right: var(--spacing-unit) solid transparent;\n        border-top: var(--spacing-unit) solid var(--field-name-color);\n        display: block;\n        content: '';\n        float: right;\n        margin-top: var(--panel-items-spacing);\n        margin-right: calc(- var(--panel-items-spacing));\n        transition: all 0.3s ease;\n        opacity: 0;\n      }\n\n      &:hover:before,\n      &.-selected:before {\n        opacity: 1;\n      }\n\n      &.-selected:before {\n        transform: rotateZ(180deg);\n      }\n    }\n\n    &.-selected {\n      background-color: color(var(--doc-panel-item-hover-color) a(+ 0.15));\n      border-left: 3px solid var(--primary-color);\n\n      & .args {\n        display: block;\n        padding-left: var(--panel-spacing);\n      }\n    }\n  }\n}\n"
  },
  {
    "path": "src/components/doc-explorer/TypeDoc.tsx",
    "content": "import './TypeDoc.css';\n\nimport { getNamedType, GraphQLField, GraphQLNamedType } from 'graphql/type';\nimport React, { Component, ReactElement } from 'react';\n\nimport { TypeGraph } from '../../graph/type-graph.ts';\nimport {\n  mapDerivedTypes,\n  mapFields,\n  mapInterfaces,\n  mapPossibleTypes,\n} from '../../introspection/utils.ts';\nimport { highlightTerm } from '../../utils/highlight.tsx';\nimport { isMatch } from '../../utils/is-match.ts';\nimport Markdown from '../utils/Markdown.tsx';\nimport Argument from './Argument.tsx';\nimport Description from './Description.tsx';\nimport TypeLink from './TypeLink.tsx';\nimport WrappedTypeName from './WrappedTypeName.tsx';\n\ninterface TypeDocProps {\n  selectedType: GraphQLNamedType;\n  selectedEdgeID: string | null;\n  typeGraph: TypeGraph;\n  filter: string;\n  onSelectEdge: (\n    edgeID: string,\n    fromType: GraphQLNamedType,\n    toType: GraphQLNamedType,\n  ) => void;\n  onTypeLink: (type: GraphQLNamedType) => void;\n}\n\nexport default class TypeDoc extends Component<TypeDocProps> {\n  private selectedItemRef = React.createRef<HTMLDivElement>();\n\n  componentDidUpdate(prevProps: TypeDocProps) {\n    if (this.props.selectedEdgeID !== prevProps.selectedEdgeID) {\n      this.ensureActiveVisible();\n    }\n  }\n\n  componentDidMount() {\n    this.ensureActiveVisible();\n  }\n\n  ensureActiveVisible() {\n    const itemComponent = this.selectedItemRef.current;\n    if (!itemComponent) return;\n\n    itemComponent.scrollIntoView();\n  }\n\n  render() {\n    const {\n      selectedType,\n      selectedEdgeID,\n      typeGraph,\n      filter,\n      onSelectEdge,\n      onTypeLink,\n    } = this.props;\n    const { selectedItemRef } = this;\n\n    return (\n      <>\n        <Description className=\"-doc-type\" text={selectedType.description} />\n        {renderDocCategory(\n          'possible types',\n          mapPossibleTypes(selectedType, renderTypesDef),\n        )}\n        {renderDocCategory(\n          'implementations',\n          mapDerivedTypes(typeGraph.schema, selectedType, renderTypesDef),\n        )}\n        {renderDocCategory(\n          'implements',\n          mapInterfaces(selectedType, renderTypesDef),\n        )}\n        {renderDocCategory('fields', mapFields(selectedType, renderField))}\n      </>\n    );\n\n    function renderDocCategory(title: string, items: Array<ReactElement>) {\n      if (items.length === 0) return null;\n\n      return (\n        <div className=\"doc-category\">\n          <div className=\"title\">{title}</div>\n          {items}\n        </div>\n      );\n    }\n\n    function renderTypesDef(id: string, type: GraphQLNamedType) {\n      if (!isMatch(type.name, filter)) {\n        return null;\n      }\n\n      const isSelected = id === selectedEdgeID;\n      const className = `item ${isSelected ? '-selected' : ''}`;\n      return (\n        <div\n          key={type.name}\n          className={className}\n          onClick={() => onSelectEdge(id, selectedType, type)}\n          ref={isSelected ? selectedItemRef : undefined}\n        >\n          <TypeLink type={type} onClick={onTypeLink} filter={filter} />\n          <Description text={type.description} className=\"-linked-type\" />\n        </div>\n      );\n    }\n\n    function isMatchingField(field: GraphQLField<any, any>): boolean {\n      const matchingArgs = field.args.filter((arg) =>\n        isMatch(arg.name, filter),\n      );\n\n      return isMatch(field.name, filter) || matchingArgs.length > 0;\n    }\n\n    function renderField(fieldID: string, field: GraphQLField<any, any>) {\n      if (!isMatchingField(field)) {\n        return null;\n      }\n\n      const hasArgs = field.args.length !== 0;\n      const isSelected = fieldID === selectedEdgeID;\n\n      const className = `item ${isSelected ? '-selected' : ''} ${\n        hasArgs ? '-with-args' : ''\n      }`;\n      return (\n        <div\n          key={field.name}\n          className={className}\n          onClick={() =>\n            onSelectEdge(fieldID, selectedType, getNamedType(field.type))\n          }\n          ref={isSelected ? selectedItemRef : undefined}\n        >\n          <a className=\"field-name\">{highlightTerm(field.name, filter)}</a>\n          <span className={`args-wrap ${hasArgs ? '' : '-empty'}`}>\n            {hasArgs && (\n              <span key=\"args\" className=\"args\">\n                {field.args.map((arg) => (\n                  <Argument\n                    key={arg.name}\n                    arg={arg}\n                    filter={filter}\n                    expanded={isSelected}\n                    onTypeLink={onTypeLink}\n                  />\n                ))}\n              </span>\n            )}\n          </span>\n          <WrappedTypeName container={field} onTypeLink={onTypeLink} />\n          {field.deprecationReason && (\n            <span className=\"doc-alert-text\"> DEPRECATED </span>\n          )}\n          <Markdown\n            text={field.description}\n            className=\"description-box -field\"\n          />\n        </div>\n      );\n    }\n  }\n}\n"
  },
  {
    "path": "src/components/doc-explorer/TypeInfoPopover.css",
    "content": "@import '../variables.css';\n\n.type-doc > .type-info-popover {\n  z-index: 0;\n  position: absolute;\n}\n\n.type-info-popover {\n  left: var(--doc-panel-width);\n  top: calc(var(--icons-size) + (var(--spacing-unit) * 2) + 1px);\n  bottom: 75px;\n  overflow-y: auto;\n\n  transform: translateX(-110%);\n  box-sizing: border-box;\n  width: var(--type-info-popover-width);\n  padding: calc(var(--spacing-unit) * 2) var(--panel-spacing);\n  position: absolute;\n  background: white;\n  box-shadow: 0px 0 10px 3px var(--shadow-color);\n  border: 1px solid var(--shadow-color);\n  border-left: 0px;\n\n  transition: all 0.45s ease-out;\n  &.-opened {\n    transform: none;\n  }\n  & > button {\n    position: absolute;\n    right: calc(var(--spacing-unit) * 2);\n  }\n}\n"
  },
  {
    "path": "src/components/doc-explorer/TypeInfoPopover.tsx",
    "content": "import './TypeInfoPopover.css';\n\nimport IconButton from '@mui/material/IconButton';\nimport { GraphQLNamedType } from 'graphql/type';\nimport { Component } from 'react';\n\nimport TypeDetails from '../doc-explorer/TypeDetails.tsx';\nimport CloseIcon from '../icons/close-black.svg';\n\ninterface ScalarDetailsProps {\n  type: GraphQLNamedType;\n  onChange: (type: GraphQLNamedType | null) => void;\n}\n\ninterface ScalarDetailsState {\n  localType: GraphQLNamedType | null;\n}\n\nexport default class ScalarDetails extends Component<\n  ScalarDetailsProps,\n  ScalarDetailsState\n> {\n  constructor(props: ScalarDetailsProps) {\n    super(props);\n    this.state = { localType: null };\n  }\n  close() {\n    this.props.onChange(null);\n    setTimeout(() => {\n      this.setState({ localType: null });\n    }, 450);\n  }\n  render() {\n    const { type, onChange } = this.props;\n\n    //FIXME: implement animation correctly\n    //https://facebook.github.io/react/docs/animation.html\n    const { localType } = this.state;\n    if (type && (!localType || type !== localType)) {\n      setTimeout(() => {\n        this.setState({ localType: type });\n      });\n    }\n    return (\n      <div className={`type-info-popover ${type != null ? '-opened' : ''}`}>\n        <IconButton className=\"closeButton\" onClick={() => this.close()}>\n          <CloseIcon />\n        </IconButton>\n        {(type ?? localType) && (\n          <TypeDetails type={type ?? localType} onTypeLink={onChange} />\n        )}\n      </div>\n    );\n  }\n}\n"
  },
  {
    "path": "src/components/doc-explorer/TypeLink.css",
    "content": "@import '../variables.css';\n\n.type-link {\n  fill: var(--link-color);\n}\n\n.type-link:hover {\n  fill: var(--link-hover-color);\n}\n\n.type-name {\n  &.-input-obj,\n  &.-object {\n    color: var(--link-color);\n\n    &:hover {\n      color: var(--link-hover-color);\n    }\n  }\n\n  &.-scalar,\n  &.-built-in {\n    color: var(--builtin-color);\n\n    &:hover {\n      color: color(var(--builtin-color) l(- 10%));\n    }\n  }\n}\n"
  },
  {
    "path": "src/components/doc-explorer/TypeLink.tsx",
    "content": "import './TypeLink.css';\n\nimport {\n  GraphQLNamedType,\n  isInputObjectType,\n  isScalarType,\n  isSpecifiedScalarType,\n} from 'graphql/type';\n\nimport { highlightTerm } from '../../utils/highlight.tsx';\n\ninterface TypeLinkProps {\n  type: GraphQLNamedType;\n  onClick: (type: GraphQLNamedType) => void;\n  filter: string;\n}\n\nexport default function TypeLink(props: TypeLinkProps) {\n  const { type, onClick, filter } = props;\n\n  let className: string;\n  if (isSpecifiedScalarType(type)) className = '-built-in';\n  else if (isScalarType(type)) className = '-scalar';\n  else if (isInputObjectType(type)) className = '-input-obj';\n  else className = '-object';\n\n  return (\n    <a\n      className={`type-name ${className}`}\n      onClick={(event) => {\n        event.stopPropagation();\n        onClick(type);\n      }}\n    >\n      {highlightTerm(type.name, filter)}\n    </a>\n  );\n}\n"
  },
  {
    "path": "src/components/doc-explorer/TypeList.css",
    "content": "@import '../variables.css';\n\n.typelist-item > .type-name {\n  padding-left: var(--panel-spacing);\n}\n\n.typelist-item.-root .type-name:after {\n  content: 'root';\n  display: inline-block;\n  vertical-align: middle;\n  background: var(--primary-color);\n  color: white;\n  padding: 0 var(--spacing-unit);\n  margin-left: var(--spacing-unit);\n  font-size: 0.9em;\n}\n"
  },
  {
    "path": "src/components/doc-explorer/TypeList.tsx",
    "content": "import './TypeList.css';\n\nimport { GraphQLNamedType } from 'graphql/type';\n\nimport { TypeGraph } from '../../graph/type-graph.ts';\nimport { isMatch } from '../../utils/is-match.ts';\nimport Description from './Description.tsx';\nimport FocusTypeButton from './FocusTypeButton.tsx';\nimport TypeLink from './TypeLink.tsx';\n\ninterface TypeListProps {\n  typeGraph: TypeGraph;\n  filter: string;\n  onFocusType: (type: GraphQLNamedType) => void;\n  onTypeLink: (type: GraphQLNamedType) => void;\n}\n\nexport default function TypeList(props: TypeListProps) {\n  const { typeGraph, filter, onFocusType, onTypeLink } = props;\n\n  const types = Array.from(typeGraph.nodes.values()).filter((type) =>\n    isMatch(type.name, filter),\n  );\n\n  // sort alphabetically but root is always be first\n  types.sort((a, b) => (isRoot(b) ? 1 : a.name.localeCompare(b.name)));\n\n  return (\n    <div className=\"doc-explorer-type-list\">\n      {types.map((type) => {\n        const className = isRoot(type)\n          ? 'typelist-item -root'\n          : 'typelist-item';\n\n        return (\n          <div key={type.name} className={className}>\n            <TypeLink type={type} onClick={onTypeLink} filter={filter} />\n            <FocusTypeButton onClick={() => onFocusType(type)} />\n            <Description className=\"-doc-type\" text={type.description} />\n          </div>\n        );\n      })}\n    </div>\n  );\n\n  function isRoot(type: GraphQLNamedType) {\n    return type === typeGraph.rootType;\n  }\n}\n"
  },
  {
    "path": "src/components/doc-explorer/WrappedTypeName.css",
    "content": "@import '../variables.css';\n\n.wrapped-type-name::before {\n  content: ': ';\n}\n\n.relay-icon {\n  height: var(--icons-size);\n  line-height: var(--icons-size);\n  width: var(--icons-size);\n  margin-left: var(--spacing-unit);\n\n  & svg {\n    height: var(--icons-size);\n    line-height: var(--icons-size);\n    width: var(--icons-size);\n    min-height: var(--icons-size);\n  }\n}\n"
  },
  {
    "path": "src/components/doc-explorer/WrappedTypeName.tsx",
    "content": "import './WrappedTypeName.css';\n\nimport IconButton from '@mui/material/IconButton';\nimport Tooltip from '@mui/material/Tooltip';\nimport {\n  getNamedType,\n  GraphQLArgument,\n  GraphQLField,\n  GraphQLInputField,\n  GraphQLNamedType,\n} from 'graphql/type';\n\nimport { stringifyTypeWrappers } from '../../utils/stringify-type-wrappers.ts';\nimport RelayIcon from '../icons/relay-icon.svg';\nimport TypeLink from './TypeLink.tsx';\n\ninterface WrappedTypeNameProps {\n  container: GraphQLField<any, any> | GraphQLArgument | GraphQLInputField;\n  onTypeLink: (type: GraphQLNamedType) => void;\n}\n\nexport default function WrappedTypeName(props: WrappedTypeNameProps) {\n  const { container, onTypeLink } = props;\n\n  const type = getNamedType(container.type);\n  const [leftWrap, rightWrap] = stringifyTypeWrappers(container.type);\n\n  return (\n    <span className=\"wrapped-type-name\">\n      <>\n        {leftWrap}\n        <TypeLink type={type} onClick={onTypeLink} filter=\"\" />\n        {rightWrap} {container.extensions.isRelayField && wrapRelayIcon()}\n      </>\n    </span>\n  );\n}\n\nfunction wrapRelayIcon() {\n  return (\n    <Tooltip title=\"Relay Connection\" placement=\"top\">\n      <IconButton className=\"relay-icon\">\n        <RelayIcon />\n      </IconButton>\n    </Tooltip>\n  );\n}\n"
  },
  {
    "path": "src/components/settings/RootSelector.tsx",
    "content": "import MenuItem from '@mui/material/MenuItem';\nimport Select from '@mui/material/Select';\nimport { GraphQLNamedType } from 'graphql/type';\n\nimport { isNode, TypeGraph } from '../../graph/type-graph.ts';\n\ninterface RootSelectorProps {\n  typeGraph: TypeGraph;\n  onChange: (rootType: string) => void;\n}\n\nexport default function RootSelector(props: RootSelectorProps) {\n  const { typeGraph, onChange } = props;\n  const { schema } = typeGraph;\n  const rootType = typeGraph.rootType.name;\n\n  const types = Object.values(schema.getTypeMap())\n    .filter((type) => isNode(type) && !isOperationRootType(type))\n    .sort((a, b) => a.name.localeCompare(b.name));\n\n  const subscriptionRoot = schema.getSubscriptionType();\n  if (subscriptionRoot) {\n    types.unshift(subscriptionRoot);\n  }\n\n  const mutationRoot = schema.getMutationType();\n  if (mutationRoot) {\n    types.unshift(mutationRoot);\n  }\n\n  const queryRoot = schema.getQueryType();\n  if (queryRoot) {\n    types.unshift(queryRoot);\n  }\n\n  return (\n    <Select\n      fullWidth\n      variant=\"standard\"\n      onChange={({ target }) => onChange(target.value)}\n      value={rootType}\n    >\n      {types.map((type) => (\n        <MenuItem value={type.name} key={type.name}>\n          {isOperationRootType(type) ? <strong>{type.name}</strong> : type.name}\n        </MenuItem>\n      ))}\n    </Select>\n  );\n\n  function isOperationRootType(type: GraphQLNamedType) {\n    return (\n      type === schema.getQueryType() ||\n      type === schema.getMutationType() ||\n      type === schema.getSubscriptionType()\n    );\n  }\n}\n"
  },
  {
    "path": "src/components/settings/Settings.tsx",
    "content": "import Checkbox from '@mui/material/Checkbox';\nimport Stack from '@mui/material/Stack';\n\nimport { TypeGraph } from '../../graph/type-graph.ts';\nimport { VoyagerDisplayOptions } from '../Voyager.tsx';\nimport RootSelector from './RootSelector.tsx';\n\ninterface SettingsProps {\n  typeGraph: TypeGraph | null | undefined;\n  options: VoyagerDisplayOptions;\n  onChange: (options: VoyagerDisplayOptions) => void;\n}\n\nexport default function Settings(props: SettingsProps) {\n  const { typeGraph, options, onChange } = props;\n  if (typeGraph == null) {\n    return null;\n  }\n\n  return (\n    <Stack\n      sx={(theme) => ({\n        position: 'absolute',\n        opacity: 1,\n        overflow: 'hidden',\n        background: theme.palette.background.default,\n        margin: 2,\n        border: 1,\n        borderColor: theme.palette.shadowColor.main,\n        boxShadow: 2,\n        padding: 1,\n        // left-bottom corner\n        left: 0,\n        bottom: 0,\n      })}\n    >\n      <RootSelector\n        typeGraph={typeGraph}\n        onChange={(rootType) => onChange({ rootType })}\n      />\n      <Stack direction=\"row\" className=\"setting-other-options\">\n        <Checkbox\n          id=\"sort\"\n          checked={!!options.sortByAlphabet}\n          onChange={(event) =>\n            onChange({ sortByAlphabet: event.target.checked })\n          }\n        />\n        <label htmlFor=\"sort\">Sort by Alphabet</label>\n        <Checkbox\n          id=\"skip\"\n          checked={!!options.skipRelay}\n          onChange={(event) => onChange({ skipRelay: event.target.checked })}\n        />\n        <label htmlFor=\"skip\">Skip Relay</label>\n        <Checkbox\n          id=\"deprecated\"\n          checked={!!options.skipDeprecated}\n          onChange={(event) =>\n            onChange({ skipDeprecated: event.target.checked })\n          }\n        />\n        <label htmlFor=\"deprecated\">Skip deprecated</label>\n        <Checkbox\n          id=\"showLeafFields\"\n          checked={!!options.showLeafFields}\n          onChange={(event) =>\n            onChange({ showLeafFields: event.target.checked })\n          }\n        />\n        <label htmlFor=\"showLeafFields\">Show leaf fields</label>\n      </Stack>\n    </Stack>\n  );\n}\n"
  },
  {
    "path": "src/components/utils/LoadingAnimation.tsx",
    "content": "import { SvgIcon, Typography } from '@mui/material';\nimport Stack from '@mui/material/Stack';\n\nimport VoyagerIcon from '../icons/logo-with-signals.svg';\n\nexport default function LoadingAnimation() {\n  return (\n    <Stack\n      role=\"status\"\n      alignItems=\"center\"\n      justifyContent=\"center\"\n      sx={{\n        position: 'absolute',\n        top: 0,\n        left: 0,\n        background: 'rgba(0, 0, 0, 0.8)',\n        zIndex: 10,\n\n        color: 'white',\n        height: '100%',\n        width: '100%',\n      }}\n    >\n      <SvgIcon\n        inheritViewBox\n        component={VoyagerIcon}\n        color=\"secondary\"\n        sx={{ width: 180, height: 180 }}\n      />\n      <Typography\n        variant=\"h4\"\n        color=\"secondary\"\n        letterSpacing={4}\n        fontWeight=\"medium\"\n      >\n        Transmitting...\n      </Typography>\n    </Stack>\n  );\n}\n"
  },
  {
    "path": "src/components/utils/Markdown.tsx",
    "content": "import { HtmlRenderer, Parser } from 'commonmark';\n\nconst parser = new Parser();\nconst renderer = new HtmlRenderer({ safe: true });\n\ninterface MarkdownProps {\n  text: string | null | undefined;\n  className: string;\n}\n\nexport default function Markdown(props: MarkdownProps) {\n  const { text, className } = props;\n\n  if (!text) return null;\n\n  const __html = renderer.render(parser.parse(text));\n  return <div className={className} dangerouslySetInnerHTML={{ __html }} />;\n}\n"
  },
  {
    "path": "src/components/utils/PoweredBy.tsx",
    "content": "import Link from '@mui/material/Link';\nimport Typography from '@mui/material/Typography';\n\nexport default function PoweredBy() {\n  return (\n    <Typography\n      textAlign=\"center\"\n      padding={1}\n      color=\"secondary.dark\"\n      borderTop=\"1px solid\"\n      borderColor=\"shadowColor.main\"\n    >\n      🛰 Powered by{' '}\n      <Link\n        href=\"https://github.com/APIs-guru/graphql-voyager\"\n        target=\"_blank\"\n        rel=\"noreferrer\"\n      >\n        GraphQL Voyager\n      </Link>\n    </Typography>\n  );\n}\n"
  },
  {
    "path": "src/components/utils/SearchBox.tsx",
    "content": "import CloseIcon from '@mui/icons-material/Close';\nimport Box from '@mui/material/Box';\nimport IconButton from '@mui/material/IconButton';\nimport Input from '@mui/material/Input';\nimport InputAdornment from '@mui/material/InputAdornment';\nimport { useEffect, useState } from 'react';\n\ninterface SearchBoxProps {\n  placeholder: string;\n  value: string;\n  onSearch: (value: string) => void;\n}\n\nexport default function SearchBox(props: SearchBoxProps) {\n  const { placeholder, onSearch, value } = props;\n  const [localValue, setLocalValue] = useState(value);\n\n  useEffect(() => setLocalValue(value), [value]);\n  useEffect(() => {\n    if (localValue === value) return;\n    const timeout = setTimeout(() => onSearch(localValue), 200);\n    return () => clearTimeout(timeout);\n  }, [onSearch, value, localValue]);\n\n  return (\n    <Box paddingLeft={2} paddingRight={2}>\n      <Input\n        fullWidth\n        placeholder={placeholder}\n        value={localValue}\n        onChange={(event) => setLocalValue(event.target.value)}\n        type=\"text\"\n        endAdornment={\n          localValue && (\n            <InputAdornment position=\"end\">\n              <IconButton onClick={() => setLocalValue('')}>\n                <CloseIcon fontSize=\"small\" sx={{ opacity: 0.8 }} />\n              </IconButton>\n            </InputAdornment>\n          )\n        }\n      />\n    </Box>\n  );\n}\n"
  },
  {
    "path": "src/components/utils/VoyagerLogo.tsx",
    "content": "import Box from '@mui/material/Box';\nimport Link from '@mui/material/Link';\nimport Stack from '@mui/material/Stack';\nimport SvgIcon from '@mui/material/SvgIcon';\nimport Typography from '@mui/material/Typography';\n\nimport LogoIcon from '../icons/logo-small.svg';\n\nexport function VoyagerLogo() {\n  return (\n    <Link\n      href=\"https://github.com/APIs-guru/graphql-voyager\"\n      target=\"_blank\"\n      rel=\"noreferrer\"\n      color=\"secondary.dark\"\n      underline=\"none\"\n      margin={2}\n    >\n      <Stack direction=\"row\" justifyContent=\"center\" spacing={1}>\n        <Box>\n          <SvgIcon\n            inheritViewBox\n            component={LogoIcon}\n            sx={{ width: 50, height: 50, transform: 'rotateZ(16deg)' }}\n          />\n        </Box>\n        <Stack\n          alignItems=\"center\"\n          justifyContent=\"center\"\n          textTransform=\"uppercase\"\n        >\n          <Typography fontSize=\"21px\" lineHeight={1} fontWeight=\"bold\">\n            GraphQL\n          </Typography>\n          <Typography fontSize=\"15px\" lineHeight={1} letterSpacing={5}>\n            Voyager\n          </Typography>\n        </Stack>\n      </Stack>\n    </Link>\n  );\n}\n"
  },
  {
    "path": "src/components/variables.css",
    "content": ":root {\n  --monospace-font-family:\n    'Consolas', 'Inconsolata', 'Droid Sans Mono', 'Monaco', monospace;\n  --base-font-family: 'helvetica neue', helvetica, arial, sans-serif;\n  --base-font-size: 14px;\n  --spacing-unit: 5px;\n  --panel-items-spacing: 8px;\n  --panel-spacing: 15px;\n  --icons-size: 24px;\n\n  --primary-color: #00bcd4;\n  --background-color: #fff;\n  --dark-bg-color: #0b2840;\n  --highlight-color: var(--primary-color);\n  --secondary-color: #548f9e;\n  --link-color: #42a0dd;\n  --link-hover-color: #0262a0;\n  --field-name-color: #224d6f;\n  --builtin-color: #711c1c;\n  --text-color: #666;\n  --shadow-color: rgba(0, 0, 0, 0.1);\n  --alert-color: #b71c1c;\n\n  --modal-bg-color: var(--dark-bg-color);\n\n  --doc-panel-width: 320px;\n  --type-info-popover-width: 320px;\n  --doc-panel-bg-color: var(--background-color);\n  --doc-panel-item-stripe-color: rgba(158, 158, 158, 0.07);\n  --doc-panel-item-hover-color: rgba(214, 236, 238, 0.6);\n\n  --arg-default-color: #0b7fc7;\n  --arg-name-color: #c77f53;\n\n  --node-fill-color: #f6f8f8;\n  --node-header-color: var(--secondary-color);\n  --node-header-text-color: white;\n\n  --edge-color: color(var(--secondary-color) l(- 15%));\n  --selected-edge-color: red;\n  --selected-field-bg: rgba(255, 0, 0, 0.18);\n}\n\n/* match mui md breakpoint,\n   see https://mui.com/material-ui/customization/breakpoints/#default-breakpoints */\n@custom-media --small-viewport (max-width: 900px);\n@custom-media --big-viewport (min-width: 901px);\n"
  },
  {
    "path": "src/components/viewport.css",
    "content": "@import './variables.css';\n\ng.graph > polygon {\n  fill: transparent;\n}\n\n/* Nodes Styling */\n.node {\n  pointer-events: bounding-box;\n  cursor: pointer;\n\n  & polygon {\n    stroke: var(--node-header-color);\n    fill: var(--node-fill-color);\n  }\n\n  & .type-title {\n    & polygon {\n      fill: var(--node-header-color);\n    }\n\n    & text {\n      fill: var(--node-header-text-color);\n    }\n  }\n\n  &.selected polygon {\n    stroke: var(--highlight-color);\n    stroke-width: 3;\n  }\n\n  &.selected .type-title polygon {\n    fill: var(--highlight-color);\n  }\n}\n\n/* field */\n.field.selected {\n  & > polygon {\n    fill: var(--selected-field-bg);\n  }\n}\n\n/* Edges Styling */\n\n.edge {\n  cursor: pointer;\n\n  & path {\n    stroke: var(--edge-color);\n    stroke-width: 2;\n\n    &.hover-path {\n      stroke: transparent;\n      stroke-width: 15;\n    }\n  }\n\n  &.highlighted,\n  &.hovered,\n  &:hover {\n    & path:not(.hover-path) {\n      stroke: var(--highlight-color);\n      stroke-width: 3;\n    }\n\n    & polygon {\n      stroke: color(var(--highlight-color) l(- 20%));\n      fill: color(var(--highlight-color) l(- 20%));\n      opacity: 1;\n    }\n  }\n\n  & polygon {\n    fill: color(var(--edge-color) l(- 5%));\n    stroke: color(var(--edge-color) l(- 5%));\n  }\n\n  & text {\n    font-family: var(--base-font-family);\n    fill: var(--field-name-color);\n\n    display: none;\n  }\n\n  &:hover,\n  &.highlighted,\n  &.hovered {\n    & text {\n      display: block;\n    }\n  }\n\n  &.selected {\n    & path:not(.hover-path) {\n      stroke: var(--selected-edge-color);\n    }\n\n    & polygon {\n      stroke: color(var(--selected-edge-color) l(- 10%));\n      fill: color(var(--selected-edge-color) l(- 10%));\n    }\n  }\n}\n\n/* selection fade */\n.selection-active {\n  & .edge,\n  & .node {\n    opacity: 0.2;\n  }\n\n  & .node.selected-reachable,\n  & .node.selected,\n  & .edge.highlighted {\n    opacity: 1;\n  }\n}\n"
  },
  {
    "path": "src/graph/dot.ts",
    "content": "// eslint-disable-next-line import/no-unresolved\nimport { Edge, Graph, Node } from 'dotviz';\nimport {\n  getNamedType,\n  GraphQLField,\n  GraphQLNamedType,\n  isEnumType,\n  isInputObjectType,\n  isInterfaceType,\n  isObjectType,\n  isScalarType,\n  isUnionType,\n} from 'graphql/type';\n\nimport {\n  mapDerivedTypes,\n  mapFields,\n  mapPossibleTypes,\n  typeObjToId,\n} from '../introspection/utils.ts';\nimport { stringifyTypeWrappers } from '../utils/stringify-type-wrappers.ts';\nimport { unreachable } from '../utils/unreachable.ts';\nimport { TypeGraph } from './type-graph.ts';\n\nexport function getDot(typeGraph: TypeGraph): Graph {\n  const { schema } = typeGraph;\n\n  const nodes: Array<Node> = [];\n  const edges: Array<Edge> = [];\n  for (const type of typeGraph.nodes.values()) {\n    const fields = mapFields<string>(type, (id, field) => {\n      const fieldType = getNamedType(field.type);\n      if (isNode(fieldType)) {\n        edges.push({\n          tail: type.name,\n          head: fieldType.name,\n          attributes: {\n            tailport: field.name,\n            id: `${id} => ${typeObjToId(fieldType)}`,\n            label: `${type.name}:${field.name}`,\n          },\n        });\n        return fieldLabel(id, field);\n      }\n      return typeGraph.showLeafFields ? fieldLabel(id, field) : '';\n    }).join('');\n\n    const possibleTypes = mapPossibleTypes<string>(type, (id, possibleType) => {\n      edges.push({\n        tail: type.name,\n        head: possibleType.name,\n        attributes: {\n          tailport: possibleType.name,\n          id: `${id} => ${typeObjToId(possibleType)}`,\n          style: 'dashed',\n        },\n      });\n      return `\n        <TR>\n          <TD ${HtmlId(id)} ALIGN=\"LEFT\" PORT=\"${possibleType.name}\">${possibleType.name}</TD>\n        </TR>\n      `;\n    }).join('');\n\n    const derivedTypes = mapDerivedTypes<string>(\n      schema,\n      type,\n      (id, derivedType) => {\n        edges.push({\n          tail: type.name,\n          head: derivedType.name,\n          attributes: {\n            tailport: derivedType.name,\n            id: `${id} => ${typeObjToId(derivedType)}`,\n            style: 'dotted',\n          },\n        });\n        return `\n          <TR>\n            <TD ${HtmlId(id)} ALIGN=\"LEFT\" PORT=\"${derivedType.name}\">${derivedType.name}</TD>\n          </TR>\n        `;\n      },\n    ).join('');\n\n    const htmlID = HtmlId('TYPE_TITLE::' + type.name);\n    const kindLabel = isObjectType(type)\n      ? ''\n      : '&lt;&lt;' + typeToKind(type).toLowerCase() + '&gt;&gt;';\n\n    const html = `\n      <TABLE ALIGN=\"LEFT\" BORDER=\"0\" CELLBORDER=\"1\" CELLSPACING=\"0\" CELLPADDING=\"5\">\n        <TR>\n          <TD CELLPADDING=\"4\" ${htmlID}><FONT POINT-SIZE=\"18\">${type.name}</FONT><BR/>${kindLabel}</TD>\n        </TR>\n        ${fields}\n        ${possibleTypes !== '' ? '<TR><TD>possible types</TD></TR>\\n' + possibleTypes : ''}\n        ${derivedTypes !== '' ? '<TR><TD>implementations</TD></TR>\\n' + derivedTypes : ''}\n      </TABLE>\n    `;\n    nodes.push({\n      name: type.name,\n      attributes: {\n        id: typeObjToId(type),\n        label: { html },\n      },\n    });\n  }\n\n  return {\n    directed: true,\n    graphAttributes: {\n      rankdir: 'LR',\n      ranksep: 2.0,\n    },\n    nodeAttributes: {\n      fontsize: '16',\n      fontname: 'helvetica',\n      shape: 'plaintext',\n    },\n    nodes,\n    edges,\n  };\n\n  function isNode(type: GraphQLNamedType): boolean {\n    return typeGraph.nodes.has(type.name);\n  }\n\n  function fieldLabel(id: string, field: GraphQLField<any, any>): string {\n    const namedType = getNamedType(field.type);\n    const parts = stringifyTypeWrappers(field.type).map(TEXT);\n    const relayIcon = field.extensions.isRelayField ? TEXT('{R}') : '';\n    const deprecatedIcon = field.deprecationReason != null ? TEXT('{D}') : '';\n    return `\n      <TR>\n        <TD ${HtmlId(id)} ALIGN=\"LEFT\" PORT=\"${field.name}\">\n          <TABLE CELLPADDING=\"0\" CELLSPACING=\"0\" BORDER=\"0\">\n            <TR>\n              <TD ALIGN=\"LEFT\">${field.name}<FONT>  </FONT></TD>\n              <TD ALIGN=\"RIGHT\">${deprecatedIcon}${relayIcon}${parts[0]}${\n                namedType.name\n              }${parts[1]}</TD>\n            </TR>\n          </TABLE>\n        </TD>\n      </TR>\n    `;\n  }\n}\n\nfunction HtmlId(id: string) {\n  return 'HREF=\"remove_me_url\" ID=\"' + id + '\"';\n}\n\nfunction TEXT(str: string) {\n  if (str === '') return '';\n  str = str.replace(/]/, '&#93;');\n  return '<FONT>' + str + '</FONT>';\n}\n\nfunction typeToKind(type: GraphQLNamedType): string {\n  if (isInterfaceType(type)) {\n    return 'INTERFACE';\n  }\n  if (isObjectType(type)) {\n    return 'OBJECT';\n  }\n  if (isScalarType(type)) {\n    return 'SCALAR';\n  }\n  if (isUnionType(type)) {\n    return 'UNION';\n  }\n  if (isEnumType(type)) {\n    return 'UNION';\n  }\n  if (isInputObjectType(type)) {\n    return 'INPUT_OBJECT';\n  }\n  unreachable(type);\n}\n"
  },
  {
    "path": "src/graph/graphviz-worker.ts",
    "content": "import {\n  type Graph,\n  RenderOptions,\n  type RenderResult,\n  WASM_HASH as DotVizWorkerHash,\n  // eslint-disable-next-line import/no-unresolved\n} from 'dotviz';\nimport DotVizWorkerSource from 'dotviz/dotviz-inline-worker';\nimport { type RenderResponse } from 'dotviz/dotviz-worker';\n\nimport { computeHash } from '../utils/compute-hash.ts';\nimport { LocalStorageLRUCache } from '../utils/local-storage-lru-cache.ts';\n\nexport interface RenderArgs {\n  input: string | Graph;\n  options: RenderOptions;\n}\n\nexport class VizWorker {\n  private _cache = new LocalStorageLRUCache({\n    localStorageKey: 'VoyagerSVGCache',\n    maxSize: 10,\n  });\n  private _worker: Worker;\n  private _listeners: Map<number, (result: RenderResult) => void> = new Map();\n\n  constructor() {\n    const blob = new Blob([DotVizWorkerSource], {\n      type: 'application/javascript',\n    });\n    const url = URL.createObjectURL(blob);\n    this._worker = new Worker(url, {\n      name: 'graphql-voyager-worker',\n      type: 'module',\n    });\n    URL.revokeObjectURL(url);\n\n    this._worker.addEventListener('error', (event) => {\n      // FIXME: better error handling\n      console.error('unexpected error from dotviz worker: ', event);\n    });\n    this._worker.addEventListener('message', (event) => {\n      const { id, result } = event.data as RenderResponse;\n\n      this._listeners.get(id)?.(result);\n      this._listeners.delete(id);\n    });\n  }\n\n  async render(renderArgs: RenderArgs): Promise<string> {\n    const cacheKey = await this.generateCacheKey(renderArgs);\n\n    if (cacheKey != null) {\n      try {\n        const cachedSVG = this._cache.get(cacheKey);\n        if (cachedSVG != null) {\n          console.log('graphql-voyager: SVG cached');\n          return decompressFromDataURL(cachedSVG);\n        }\n      } catch (err) {\n        console.warn('graphql-voyager: Can not read cache: ', err);\n      }\n    }\n\n    const svg = await this._render(renderArgs);\n\n    if (cacheKey != null) {\n      try {\n        this._cache.set(cacheKey, await compressToDataURL(svg));\n      } catch (err) {\n        console.warn('graphql-voyager: Can not write cache: ', err);\n      }\n    }\n    return svg;\n  }\n\n  async generateCacheKey(renderArgs: RenderArgs): Promise<string | null> {\n    const dotHash = await computeHash(JSON.stringify(renderArgs));\n    return dotHash == null ? null : `worker:${DotVizWorkerHash}:dot:${dotHash}`;\n  }\n\n  _render(renderArgs: RenderArgs): Promise<string> {\n    return new Promise((resolve, reject) => {\n      const id = this._listeners.size;\n      this._listeners.set(id, RenderResponseListener);\n\n      console.time('graphql-voyager: Rendering SVG');\n      this._worker.postMessage({ id, ...renderArgs });\n\n      function RenderResponseListener(result: RenderResult): void {\n        console.timeEnd('graphql-voyager: Rendering SVG');\n        if (result.errors.length !== 0) {\n          return reject(\n            new AggregateError(\n              result.errors.map(\n                (error) => new Error(`${error.level} : ${error.message}`),\n              ),\n            ),\n          );\n        }\n        if (result.status === 'success') {\n          return resolve(result.output);\n        }\n        return reject(new Error('invalid response from dotviz worker'));\n      }\n    });\n  }\n}\n\nasync function decompressFromDataURL(dataURL: string): Promise<string> {\n  const response = await fetch(dataURL);\n  const blob = await response.blob();\n  switch (blob.type) {\n    case 'application/gzip': {\n      const stream = blob.stream().pipeThrough(new DecompressionStream('gzip'));\n      const decompressedBlob = await streamToBlob(stream, 'text/plain');\n      return decompressedBlob.text();\n    }\n    case 'text/plain':\n      return blob.text();\n    default:\n      throw new Error('Can not convert data url with MIME type:' + blob.type);\n  }\n}\n\nasync function compressToDataURL(str: string): Promise<string> {\n  try {\n    const blob = new Blob([str], { type: 'text/plain' });\n    const stream = blob.stream().pipeThrough(new CompressionStream('gzip'));\n    const compressedBlob = await streamToBlob(stream, 'application/gzip');\n    return blobToDataURL(compressedBlob);\n  } catch (err) {\n    console.warn('graphql-voyager: Can not compress string: ', err);\n    return `data:text/plain;charset=utf-8,${encodeURIComponent(str)}`;\n  }\n}\n\nfunction blobToDataURL(blob: Blob): Promise<string> {\n  const fileReader = new FileReader();\n\n  return new Promise((resolve, reject) => {\n    try {\n      fileReader.onload = function (event) {\n        // eslint-disable-next-line @typescript-eslint/no-base-to-string\n        const dataURL = event.target!.result!.toString();\n        resolve(dataURL);\n      };\n      fileReader.readAsDataURL(blob);\n    } catch (err) {\n      // eslint-disable-next-line @typescript-eslint/prefer-promise-reject-errors\n      reject(err);\n    }\n  });\n}\n\nfunction streamToBlob(stream: ReadableStream, mimeType: string): Promise<Blob> {\n  const response = new Response(stream, {\n    headers: { 'Content-Type': mimeType },\n  });\n  return response.blob();\n}\n"
  },
  {
    "path": "src/graph/svg-renderer.ts",
    "content": "// eslint-disable-next-line import/no-unresolved\nimport DeprecatedIconSvg from '../components/icons/deprecated-icon.svg?raw';\n// eslint-disable-next-line import/no-unresolved\nimport RelayIconSvg from '../components/icons/relay-icon.svg?raw';\nimport { stringToSvg } from '../utils/dom-helpers.ts';\nimport { getDot } from './dot.ts';\nimport { VizWorker } from './graphviz-worker.ts';\nimport { TypeGraph } from './type-graph.ts';\n\nconst vizWorker = new VizWorker();\n\nexport async function renderSvg(typeGraph: TypeGraph) {\n  const dot = getDot(typeGraph);\n  const rawSVG = await vizWorker.render({\n    input: dot,\n    options: { engine: 'dot', format: 'svg' },\n  });\n  const svg = preprocessVizSVG(rawSVG);\n  return svg;\n}\n\nconst svgNS = 'http://www.w3.org/2000/svg';\nconst xlinkNS = 'http://www.w3.org/1999/xlink';\n\nfunction preprocessVizSVG(svgString: string): string {\n  const svg = stringToSvg(svgString);\n\n  //Add Relay and Deprecated icons\n  let defs = svg.querySelector('defs');\n  if (!defs) {\n    defs = document.createElementNS(svgNS, 'defs');\n    svg.insertBefore(defs, svg.firstChild);\n  }\n  defs.appendChild(svgToSymbol(DeprecatedIconSvg, 'DeprecatedIcon'));\n  defs.appendChild(svgToSymbol(RelayIconSvg, 'RelayIcon'));\n\n  for (const $a of svg.querySelectorAll('a')) {\n    const $g = $a.parentNode!;\n\n    const $docFrag = document.createDocumentFragment();\n    while ($a.firstChild) {\n      const $child = $a.firstChild;\n      $docFrag.appendChild($child);\n    }\n\n    $g.replaceChild($docFrag, $a);\n\n    // @ts-expect-error We know for sure `id` is present here\n    $g.id = $g.id.replace(/^a_/, '');\n  }\n\n  for (const $el of svg.querySelectorAll('title')) {\n    $el.remove();\n  }\n\n  const edgesSources = new Set<string>();\n  for (const $edge of svg.querySelectorAll('.edge')) {\n    const [from, to] = $edge.id.split(' => ');\n    $edge.removeAttribute('id');\n    $edge.setAttribute('data-from', from);\n    $edge.setAttribute('data-to', to);\n    edgesSources.add(from);\n  }\n\n  for (const $el of svg.querySelectorAll('[id*=\\\\:\\\\:]')) {\n    const [tag] = $el.id.split('::');\n    $el.classList.add(tag.toLowerCase().replace(/_/, '-'));\n  }\n\n  for (const $path of svg.querySelectorAll('g.edge path')) {\n    const $newPath = $path.cloneNode() as HTMLElement;\n    $newPath.classList.add('hover-path');\n    $newPath.removeAttribute('stroke-dasharray');\n    $path.parentNode?.appendChild($newPath);\n  }\n\n  for (const $field of svg.querySelectorAll('.field')) {\n    const texts = $field.querySelectorAll('text');\n    texts[0].classList.add('field-name');\n    //Remove spaces used for text alignment\n    texts[1].remove();\n\n    if (edgesSources.has($field.id)) $field.classList.add('edge-source');\n\n    for (let i = 2; i < texts.length; ++i) {\n      const str = texts[i].innerHTML;\n      if (str === '{R}' || str == '{D}') {\n        const $iconPlaceholder = texts[i];\n        const height = 22;\n        const width = 22;\n        const $useIcon = document.createElementNS(svgNS, 'use');\n        $useIcon.setAttributeNS(\n          xlinkNS,\n          'href',\n          str === '{R}' ? '#RelayIcon' : '#DeprecatedIcon',\n        );\n        $useIcon.setAttribute('width', `${width}px`);\n        $useIcon.setAttribute('height', `${height}px`);\n\n        //FIXME: remove hardcoded offset\n        const y = parseInt($iconPlaceholder.getAttribute('y')!) - 15;\n        $useIcon.setAttribute('x', $iconPlaceholder.getAttribute('x')!);\n        $useIcon.setAttribute('y', y.toString());\n        $field.replaceChild($useIcon, $iconPlaceholder);\n        continue;\n      }\n\n      texts[i].classList.add('field-type');\n      if (edgesSources.has($field.id) && !/[[\\]!]/.test(str))\n        texts[i].classList.add('type-link');\n    }\n  }\n\n  for (const $derivedType of svg.querySelectorAll('.derived-type')) {\n    $derivedType.classList.add('edge-source');\n    $derivedType.querySelector('text')?.classList.add('type-link');\n  }\n\n  for (const $possibleType of svg.querySelectorAll('.possible-type')) {\n    $possibleType.classList.add('edge-source');\n    $possibleType.querySelector('text')?.classList.add('type-link');\n  }\n\n  const serializer = new XMLSerializer();\n  return serializer.serializeToString(svg);\n}\n\nfunction svgToSymbol(svg: string, id: string): SVGSymbolElement {\n  const $svg = stringToSvg(svg);\n  const $symbol = document.createElementNS(svgNS, 'symbol');\n\n  // Transfer supported attributes <svg> to the <symbol>.\n  const attributes = ['viewBox', 'height', 'width', 'preserveAspectRatio'];\n  attributes.forEach(function (attr) {\n    const value = $svg.getAttribute(attr);\n    if (value != null) {\n      $symbol.setAttribute(attr, value);\n    }\n  });\n  $symbol.setAttribute('id', id);\n\n  // Move all child nodes from <svg> to the <symbol>\n  $symbol.append(...$svg.children);\n\n  return $symbol;\n}\n"
  },
  {
    "path": "src/graph/type-graph.ts",
    "content": "import {\n  assertCompositeType,\n  getNamedType,\n  GraphQLCompositeType,\n  GraphQLNamedOutputType,\n  GraphQLNamedType,\n  GraphQLSchema,\n  isCompositeType,\n  isInterfaceType,\n  isUnionType,\n} from 'graphql/type';\n\nimport { VoyagerDisplayOptions } from '../components/Voyager.tsx';\n\nexport interface TypeGraph {\n  schema: GraphQLSchema;\n  rootType: GraphQLCompositeType;\n  nodes: Map<string, GraphQLNamedType>;\n  showLeafFields: boolean;\n}\n\nexport function isNode(type: GraphQLNamedType): type is GraphQLCompositeType {\n  return (\n    isCompositeType(type) &&\n    type.extensions.isRelayType !== true &&\n    !type.name.startsWith('__')\n  );\n}\n\nexport function getTypeGraph(\n  schema: GraphQLSchema,\n  displayOptions: VoyagerDisplayOptions,\n): TypeGraph {\n  const rootType = assertCompositeType(\n    schema.getType(displayOptions.rootType ?? schema.getQueryType()!.name),\n  );\n\n  const nodeMap = new Map<string, GraphQLCompositeType>();\n  nodeMap.set(rootType.name, rootType);\n\n  for (const type of nodeMap.values()) {\n    for (const edgeTarget of getEdgeTargets(type)) {\n      if (isNode(edgeTarget)) {\n        nodeMap.set(edgeTarget.name, edgeTarget);\n      }\n    }\n  }\n\n  if (displayOptions.hideRoot === true) {\n    nodeMap.delete(rootType.name);\n  }\n\n  return {\n    schema,\n    rootType,\n    nodes: nodeMap,\n    showLeafFields: displayOptions.showLeafFields ?? false,\n  };\n\n  function getEdgeTargets(\n    type: GraphQLCompositeType,\n  ): ReadonlyArray<GraphQLNamedOutputType> {\n    if (isUnionType(type)) {\n      return type.getTypes();\n    }\n\n    const fieldTypes = Object.values(type.getFields()).map((field) =>\n      getNamedType(field.type),\n    );\n\n    if (isInterfaceType(type)) {\n      const implementations = schema.getImplementations(type);\n      return [\n        ...fieldTypes,\n        ...implementations.interfaces,\n        ...implementations.objects,\n      ];\n    }\n\n    return fieldTypes;\n  }\n}\n"
  },
  {
    "path": "src/graph/viewport.ts",
    "content": "import svgPanZoom from 'svg-pan-zoom';\n\nimport { typeNameToId } from '../introspection/utils.ts';\nimport { stringToSvg } from '../utils/dom-helpers.ts';\n\n// FIXME: we are waiting for this [PR](https://github.com/ariutta/svg-pan-zoom/pull/379), after that this two interfaces might be removed in favor to `import { Instance, Point } from 'svg-pan-zoom'`\ninterface Point {\n  x: number;\n  y: number;\n}\n\ninterface Instance {\n  resize(): Instance;\n  zoom(scale: number): void;\n  zoomIn(): void;\n  zoomOut(): void;\n  reset(): void;\n  getPan(): Point;\n  getZoom(): number;\n  pan(point: Point): Instance;\n  destroy(): void;\n}\n\nexport class Viewport {\n  $svg: SVGSVGElement;\n  // @ts-expect-error FIXME: Consider for future fix\n  zoomer: Instance;\n  // @ts-expect-error FIXME: Consider for future fix\n  offsetLeft: number;\n  // @ts-expect-error FIXME: Consider for future fix\n  offsetTop: number;\n  // @ts-expect-error FIXME: Consider for future fix\n  maxZoom: number;\n  resizeObserver: ResizeObserver;\n\n  constructor(\n    svgString: string,\n    public container: HTMLElement,\n    public onSelectNode: (id: string | null) => void,\n    public onSelectEdge: (fromID: string, toID: string) => void,\n  ) {\n    this.container.innerHTML = '';\n    this.$svg = stringToSvg(svgString);\n    this.container.appendChild(this.$svg);\n\n    // Allow the SVG dimensions to be computed\n    // Quick fix for SVG manipulation issues.\n    setTimeout(() => this.enableZoom(), 0);\n    this.bindClick();\n    this.bindHover();\n\n    this.resizeObserver = new ResizeObserver(() => {\n      const bbRect = this.container.getBoundingClientRect();\n      this.offsetLeft = bbRect.left;\n      this.offsetTop = bbRect.top;\n      if (this.zoomer !== undefined) {\n        this.zoomer.resize();\n      }\n    });\n    this.resizeObserver.observe(this.container);\n  }\n\n  enableZoom() {\n    const svgHeight = this.$svg['height'].baseVal.value;\n    const svgWidth = this.$svg['width'].baseVal.value;\n    const bbRect = this.container.getBoundingClientRect();\n    this.maxZoom = Math.max(svgHeight / bbRect.height, svgWidth / bbRect.width);\n\n    this.zoomer = svgPanZoom(this.$svg, {\n      zoomScaleSensitivity: 0.25,\n      minZoom: 0.95,\n      maxZoom: this.maxZoom,\n    });\n    this.zoomer.zoom(0.95);\n  }\n\n  bindClick() {\n    let dragged = false;\n\n    const moveHandler = () => (dragged = true);\n    this.$svg.addEventListener('mousedown', () => {\n      dragged = false;\n      setTimeout(() => this.$svg.addEventListener('mousemove', moveHandler));\n    });\n    this.$svg.addEventListener('mouseup', (event) => {\n      this.$svg.removeEventListener('mousemove', moveHandler);\n      if (dragged) return;\n\n      const target = event.target as SVGElement;\n      if (isLink(target)) {\n        const typeId = typeNameToId(target.textContent!);\n        this.focusElement(typeId);\n      } else if (isNode(target)) {\n        const $node = getParent(target, 'node')!;\n        this.onSelectNode($node.id);\n      } else if (isEdge(target)) {\n        const $edge = getParent(target, 'edge')!;\n        this.onSelectEdge(edgeSource($edge).id, edgeTarget($edge).id);\n      } else if (!isControl(target)) {\n        this.onSelectNode(null);\n      }\n    });\n  }\n\n  bindHover() {\n    let $prevHovered: SVGElement | null = null;\n    let $prevHoveredEdge: SVGElement | null = null;\n\n    function clearSelection() {\n      if ($prevHovered) $prevHovered.classList.remove('hovered');\n      if ($prevHoveredEdge) $prevHoveredEdge.classList.remove('hovered');\n    }\n\n    this.$svg.addEventListener('mousemove', (event) => {\n      const target = event.target as SVGElement;\n      if (isEdgeSource(target)) {\n        const $sourceGroup = getParent(target, 'edge-source')!;\n        if ($sourceGroup.classList.contains('hovered')) return;\n        clearSelection();\n        $sourceGroup.classList.add('hovered');\n        $prevHovered = $sourceGroup;\n        const $edge = edgeFrom($sourceGroup.id);\n        $edge.classList.add('hovered');\n        $prevHoveredEdge = $edge;\n      } else {\n        clearSelection();\n      }\n    });\n  }\n\n  selectNodeById(id: string | null) {\n    this.removeClass('.node.selected', 'selected');\n    this.removeClass('.highlighted', 'highlighted');\n    this.removeClass('.selected-reachable', 'selected-reachable');\n\n    if (id === null) {\n      this.$svg.classList.remove('selection-active');\n      return;\n    }\n\n    this.$svg.classList.add('selection-active');\n    // @ts-expect-error https://github.com/microsoft/TypeScript/issues/4689#issuecomment-690503791\n    const $selected = document.getElementById(id) as SVGElement;\n    this.selectNode($selected);\n  }\n\n  selectNode(node: SVGElement) {\n    node.classList.add('selected');\n\n    for (const $edge of edgesFromNode(node)) {\n      $edge.classList.add('highlighted');\n      edgeTarget($edge).classList.add('selected-reachable');\n    }\n\n    for (const $edge of edgesTo(node.id)) {\n      $edge.classList.add('highlighted');\n      edgeSource($edge).parentElement!.classList.add('selected-reachable');\n    }\n  }\n\n  selectEdgeById(id: string | null | undefined) {\n    this.removeClass('.edge.selected', 'selected');\n    this.removeClass('.edge-source.selected', 'selected');\n    this.removeClass('.field.selected', 'selected');\n\n    if (id == null) return;\n\n    const $selected = document.getElementById(id);\n    if ($selected) {\n      const $edge = edgeFrom($selected.id);\n      if ($edge) $edge.classList.add('selected');\n      $selected.classList.add('selected');\n    }\n  }\n\n  removeClass(selector: string, className: string) {\n    for (const node of this.$svg.querySelectorAll(selector)) {\n      node.classList.remove(className);\n    }\n  }\n\n  focusElement(id: string) {\n    const bbBox = document.getElementById(id)!.getBoundingClientRect();\n    const currentPan = this.zoomer.getPan();\n    const viewPortSizes = (this.zoomer as any).getSizes();\n\n    currentPan.x += viewPortSizes.width / 2 - bbBox.width / 2;\n    currentPan.y += viewPortSizes.height / 2 - bbBox.height / 2;\n\n    const zoomUpdateToFit =\n      1.2 *\n      Math.max(\n        bbBox.height / viewPortSizes.height,\n        bbBox.width / viewPortSizes.width,\n      );\n    let newZoom = this.zoomer.getZoom() / zoomUpdateToFit;\n    const recommendedZoom = this.maxZoom * 0.6;\n    if (newZoom > recommendedZoom) newZoom = recommendedZoom;\n\n    const newX = currentPan.x - bbBox.left + this.offsetLeft;\n    const newY = currentPan.y - bbBox.top + this.offsetTop;\n    this.animatePanAndZoom(newX, newY, newZoom);\n  }\n\n  animatePanAndZoom(x: number, y: number, zoomEnd: number) {\n    const pan = this.zoomer.getPan();\n    const panEnd = { x, y };\n    animate(pan, panEnd, (props) => {\n      this.zoomer.pan({ x: props.x, y: props.y });\n      if (props === panEnd) {\n        const zoom = this.zoomer.getZoom();\n        animate({ zoom }, { zoom: zoomEnd }, (props) => {\n          this.zoomer.zoom(props.zoom);\n        });\n      }\n    });\n  }\n\n  zoomIn() {\n    this.zoomer.zoomIn();\n  }\n\n  zoomOut() {\n    this.zoomer.zoomOut();\n  }\n\n  reset() {\n    this.zoomer.reset();\n  }\n\n  destroy() {\n    this.resizeObserver.disconnect();\n    try {\n      this.zoomer.destroy();\n    } catch {\n      // skip\n    }\n  }\n}\n\nfunction getParent(elem: SVGElement, className: string): SVGElement | null {\n  while (elem && elem.tagName !== 'svg') {\n    if (elem.classList.contains(className)) return elem;\n    elem = elem.parentNode as SVGElement;\n  }\n  return null;\n}\n\nfunction isNode(elem: SVGElement): boolean {\n  return getParent(elem, 'node') != null;\n}\n\nfunction isEdge(elem: SVGElement): boolean {\n  return getParent(elem, 'edge') != null;\n}\n\nfunction isLink(elem: SVGElement): boolean {\n  return elem.classList.contains('type-link');\n}\n\nfunction isEdgeSource(elem: SVGElement): boolean {\n  return getParent(elem, 'edge-source') != null;\n}\n\nfunction isControl(elem: SVGElement) {\n  if (!(elem instanceof SVGElement)) return false;\n  return elem.className.baseVal.startsWith('svg-pan-zoom');\n}\n\nfunction edgeSource(edge: SVGElement): SVGElement {\n  // @ts-expect-error FIXME: Consider for future fix\n  return document.getElementById(edge['dataset']['from']);\n}\n\nfunction edgeTarget(edge: SVGElement): SVGElement {\n  // @ts-expect-error FIXME: Consider for future fix\n  return document.getElementById(edge['dataset']['to']);\n}\n\nfunction edgeFrom(id: string): SVGElement {\n  // @ts-expect-error FIXME: Consider for future fix\n  return document.querySelector(`.edge[data-from='${id}']`);\n}\n\nfunction edgesFromNode($node: SVGElement) {\n  const edges = [];\n  for (const $source of $node.querySelectorAll('.edge-source')) {\n    const $edge = edgeFrom($source.id);\n    edges.push($edge);\n  }\n  return edges;\n}\n\nfunction edgesTo(id: string): NodeListOf<SVGElement> {\n  return document.querySelectorAll(`.edge[data-to='${id}']`);\n}\n\nfunction animate<OBJ extends { [key: string]: number }>(\n  startObj: OBJ,\n  endObj: OBJ,\n  render: (obj: OBJ) => void,\n) {\n  const defaultDuration = 350;\n  const fps60 = 1000 / 60;\n  const totalFrames = defaultDuration / fps60;\n  const startTime = new Date().getTime();\n\n  window.requestAnimationFrame(ticker);\n\n  function ticker() {\n    const timeElapsed = new Date().getTime() - startTime;\n    const framesElapsed = timeElapsed / fps60;\n\n    if (totalFrames - framesElapsed < 1) {\n      render(endObj);\n      return;\n    }\n\n    const t = framesElapsed / totalFrames;\n\n    const frame = Object.fromEntries(\n      Object.keys(startObj).map((key) => {\n        const start = startObj[key];\n        const end = endObj[key];\n\n        return [key, start + t * (end - start)];\n      }),\n    ) as OBJ;\n\n    render(frame);\n\n    window.requestAnimationFrame(ticker);\n  }\n}\n"
  },
  {
    "path": "src/index.ts",
    "content": "export {\n  default as Voyager,\n  type VoyagerProps,\n} from './components/Voyager.tsx';\nexport { voyagerIntrospectionQuery } from './utils/introspection-query.ts';\nexport { sdlToSchema } from './utils/sdl-to-introspection.ts';\n"
  },
  {
    "path": "src/introspection/introspection.ts",
    "content": "import {\n  getNamedType,\n  getNullableType,\n  GraphQLFieldConfig,\n  GraphQLFieldConfigMap,\n  GraphQLInputFieldConfig,\n  GraphQLInputObjectType,\n  GraphQLInterfaceType,\n  GraphQLList,\n  GraphQLNamedType,\n  GraphQLNonNull,\n  GraphQLObjectType,\n  GraphQLOutputType,\n  GraphQLSchema,\n  isInputObjectType,\n  isInterfaceType,\n  isNonNullType,\n  isObjectType,\n  lexicographicSortSchema,\n} from 'graphql';\n\nimport { VoyagerDisplayOptions } from '../components/Voyager.tsx';\nimport { collectDirectlyReferencedTypes } from '../utils/collect-referenced-types.ts';\nimport { mapValues } from '../utils/mapValues.ts';\nimport { transformSchema } from '../utils/transformSchema.ts';\n\ndeclare module 'graphql' {\n  interface GraphQLFieldExtensions<_TSource, _TContext, _TArgs> {\n    isRelayField?: boolean;\n  }\n\n  interface GraphQLObjectTypeExtensions<_TSource, _TContext> {\n    isRelayType?: boolean;\n  }\n\n  interface GraphQLInterfaceTypeExtensions {\n    isRelayType?: boolean;\n  }\n}\n\n// https://graphql.org/learn/global-object-identification/\n// https://relay.dev/graphql/connections.htm\nfunction removeRelayTypes(schema: GraphQLSchema) {\n  const nodeType = getNodeType();\n  const pageInfoType = getPageInfoType();\n  const relayTypes = new Set<GraphQLNamedType>();\n  const relayTypeToNodeMap = new Map<GraphQLObjectType, GraphQLOutputType>();\n\n  if (nodeType != null) {\n    relayTypes.add(nodeType);\n  }\n  if (pageInfoType != null) {\n    relayTypes.add(pageInfoType);\n  }\n  for (const type of Object.values(schema.getTypeMap())) {\n    if (isInterfaceType(type) || isObjectType(type)) {\n      for (const field of Object.values(type.getFields())) {\n        const connectionType = getNamedType(field.type);\n\n        if (\n          !isObjectType(connectionType) ||\n          !/.Connection$/.test(connectionType.name)\n        ) {\n          continue;\n        }\n\n        const connectionFields = connectionType.getFields();\n        const edgeType = getNamedType(connectionFields['edges']?.type);\n        if (!isObjectType(edgeType) || connectionFields['pageInfo'] == null) {\n          continue;\n        }\n\n        const edgeFields = edgeType.getFields();\n        const nodeType = edgeFields['node']?.type;\n        if (nodeType == null || edgeFields['cursor'] == null) {\n          continue;\n        }\n\n        relayTypes.add(connectionType);\n        relayTypes.add(edgeType);\n        relayTypeToNodeMap.set(connectionType, new GraphQLList(nodeType));\n        // GitHub uses edge type in mutations\n        relayTypeToNodeMap.set(edgeType, getNullableType(nodeType));\n      }\n    }\n  }\n\n  // Dry run changeType and collect all referenced types to eliminate unused Relay types\n  const allReferenceTypes = new Set<GraphQLNamedType>();\n  for (const oldType of Object.values(schema.getTypeMap())) {\n    if (!relayTypes.has(oldType)) {\n      const newType = changeType(oldType);\n      collectDirectlyReferencedTypes(newType, allReferenceTypes);\n    }\n  }\n\n  return (type: GraphQLNamedType) => {\n    if (relayTypes.has(type) && !allReferenceTypes.has(type)) {\n      return null;\n    }\n    return changeType(type);\n  };\n\n  function changeType(type: GraphQLNamedType) {\n    if (isInterfaceType(type)) {\n      const config = type.toConfig();\n      return new GraphQLInterfaceType({\n        ...config,\n        ...type.toConfig(),\n        fields: changeFields(type),\n        interfaces: config.interfaces.filter((type) => type !== nodeType),\n        extensions: {\n          ...config.extensions,\n          isRelayType: relayTypes.has(type),\n        },\n      });\n    }\n    if (isObjectType(type)) {\n      const config = type.toConfig();\n      return new GraphQLObjectType({\n        ...config,\n        fields: changeFields(type),\n        interfaces: config.interfaces.filter((type) => type !== nodeType),\n        extensions: {\n          ...config.extensions,\n          isRelayType: relayTypes.has(type),\n        },\n      });\n    }\n    return type;\n  }\n\n  function changeFields(\n    type: GraphQLObjectType | GraphQLInterfaceType,\n  ): GraphQLFieldConfigMap<any, any> {\n    return mapValues(type.toConfig().fields, (field, fieldName) => {\n      if (type === schema.getQueryType()) {\n        switch (fieldName) {\n          case 'relay':\n            if (getNamedType(field.type) === type) {\n              return null; // delete field\n            }\n            break;\n          case 'node':\n          // falls through since GitHub use `nodes` instead of `node`.\n          case 'nodes':\n            if (getNamedType(field.type) === nodeType) {\n              return null; // delete field\n            }\n            break;\n        }\n      }\n\n      const relayConnection = getNullableType(field.type);\n      if (isObjectType(relayConnection)) {\n        const relayNode = relayTypeToNodeMap.get(relayConnection);\n        if (relayNode !== undefined) {\n          return {\n            ...field,\n            type: isNonNullType(field.type)\n              ? new GraphQLNonNull(relayNode)\n              : relayNode,\n            // FIXME: field from toConfig always has args\n            args: mapValues(field.args ?? {}, (arg, argName) =>\n              isRelayArgumentName(argName) ? null : arg,\n            ),\n            extensions: {\n              ...field.extensions,\n              isRelayField: true,\n            },\n          };\n        }\n      }\n\n      return {\n        ...field,\n        extensions: {\n          ...field.extensions,\n          isRelayField: relayTypes.has(getNamedType(field.type)),\n        },\n      };\n    });\n  }\n\n  function isRelayArgumentName(name: string) {\n    switch (name) {\n      case 'first':\n      case 'last':\n      case 'before':\n      case 'after':\n        return true;\n      default:\n        return false;\n    }\n  }\n\n  function getNodeType(): GraphQLInterfaceType | null {\n    const nodeType = schema.getType('Node');\n    return isInterfaceType(nodeType) ? nodeType : null;\n  }\n\n  function getPageInfoType() {\n    const pageInfo = schema.getType('PageInfo');\n    return isObjectType(pageInfo) ? pageInfo : null;\n  }\n}\n\nfunction removeDeprecated(type: GraphQLNamedType) {\n  // We can't remove types that end up being empty because we cannot be sure that\n  // the @deprecated directives where consistently added to the schema we're handling.\n  //\n  // Entities may have non deprecated fields pointing towards entities which are deprecated.\n\n  if (isObjectType(type)) {\n    const config = type.toConfig();\n    return new GraphQLObjectType({\n      ...config,\n      fields: Object.fromEntries(\n        Object.entries(config.fields).filter(notDeprecated),\n      ),\n    });\n  }\n  if (isInterfaceType(type)) {\n    const config = type.toConfig();\n    return new GraphQLInterfaceType({\n      ...config,\n      fields: Object.fromEntries(\n        Object.entries(config.fields).filter(notDeprecated),\n      ),\n    });\n  }\n  if (isInputObjectType(type)) {\n    const config = type.toConfig();\n    return new GraphQLInputObjectType({\n      ...config,\n      fields: Object.fromEntries(\n        Object.entries(config.fields).filter(notDeprecated),\n      ),\n    });\n  }\n\n  return type;\n\n  function notDeprecated([, field]: [\n    string,\n    GraphQLFieldConfig<any, any> | GraphQLInputFieldConfig,\n  ]) {\n    return field.deprecationReason == null;\n  }\n}\n\nexport function getSchema(\n  introspectionSchema: GraphQLSchema,\n  displayOptions: VoyagerDisplayOptions,\n): GraphQLSchema {\n  const { sortByAlphabet, skipRelay, skipDeprecated } = displayOptions;\n  let schema = introspectionSchema;\n\n  if (sortByAlphabet) {\n    schema = lexicographicSortSchema(schema);\n  }\n\n  const typeTransformers = [];\n  if (skipRelay === true) {\n    typeTransformers.push(removeRelayTypes(schema));\n  }\n  if (skipDeprecated === true) {\n    typeTransformers.push(removeDeprecated);\n  }\n\n  return transformSchema(schema, typeTransformers);\n}\n"
  },
  {
    "path": "src/introspection/utils.ts",
    "content": "import {\n  GraphQLField,\n  GraphQLInterfaceType,\n  GraphQLNamedType,\n  GraphQLObjectType,\n  GraphQLSchema,\n  isInterfaceType,\n  isObjectType,\n  isUnionType,\n} from 'graphql/type';\n\nexport function typeObjToId(type: GraphQLNamedType) {\n  return typeNameToId(type.name);\n}\n\nexport function typeNameToId(name: string) {\n  return `TYPE::${name}`;\n}\n\nexport function extractTypeName(typeID: string): string {\n  const [, type] = typeID.split('::');\n  return type;\n}\n\nexport function mapFields<R>(\n  type: GraphQLNamedType,\n  fn: (id: string, field: GraphQLField<any, any>) => R | null,\n): Array<R> {\n  const array = [];\n  if (isInterfaceType(type) || isObjectType(type)) {\n    for (const field of Object.values(type.getFields())) {\n      const id = `FIELD::${type.name}::${field.name}`;\n      const result = fn(id, field);\n      if (result != null) {\n        array.push(result);\n      }\n    }\n  }\n  return array;\n}\n\nexport function mapPossibleTypes<R>(\n  type: GraphQLNamedType,\n  fn: (id: string, type: GraphQLObjectType) => R | null,\n): Array<R> {\n  const array = [];\n  if (isUnionType(type)) {\n    for (const possibleType of type.getTypes()) {\n      const id = `POSSIBLE_TYPE::${type.name}::${possibleType.name}`;\n      const result = fn(id, possibleType);\n      if (result != null) {\n        array.push(result);\n      }\n    }\n  }\n  return array;\n}\n\nexport function mapDerivedTypes<R>(\n  schema: GraphQLSchema,\n  type: GraphQLNamedType,\n  fn: (id: string, type: GraphQLObjectType | GraphQLInterfaceType) => R | null,\n): Array<R> {\n  const array = [];\n  if (isInterfaceType(type)) {\n    const { interfaces, objects } = schema.getImplementations(type);\n    for (const derivedType of [...interfaces, ...objects]) {\n      const id = `DERIVED_TYPE::${type.name}::${derivedType.name}`;\n      const result = fn(id, derivedType);\n      if (result != null) {\n        array.push(result);\n      }\n    }\n  }\n  return array;\n}\n\nexport function mapInterfaces<R>(\n  type: GraphQLNamedType,\n  fn: (id: string, type: GraphQLInterfaceType) => R | null,\n): Array<R> {\n  const array = [];\n  if (isInterfaceType(type) || isObjectType(type)) {\n    for (const baseType of type.getInterfaces()) {\n      const id = `INTERFACE::${type.name}::${baseType.name}`;\n      const result = fn(id, baseType);\n      if (result != null) {\n        array.push(result);\n      }\n    }\n  }\n  return array;\n}\n"
  },
  {
    "path": "src/middleware/express.ts",
    "content": "import renderVoyagerPage, { MiddlewareOptions } from './render-voyager-page.ts';\n\nexport default function expressMiddleware(options: MiddlewareOptions) {\n  return (_req: any, res: any) => {\n    res.setHeader('Content-Type', 'text/html');\n    res.write(renderVoyagerPage(options));\n    res.end();\n  };\n}\n"
  },
  {
    "path": "src/middleware/hapi.ts",
    "content": "import renderVoyagerPage, { MiddlewareOptions } from './render-voyager-page.ts';\n\n// eslint-disable-next-line @typescript-eslint/no-require-imports\nconst pkg = require('../package.json');\n\nconst hapi = {\n  pkg,\n  register(server: any, options: any) {\n    if (arguments.length !== 2) {\n      throw new Error(\n        `Voyager middleware expects exactly 3 arguments, got ${arguments.length}`,\n      );\n    }\n\n    const { path, route: config = {}, ...middlewareOptions } = options;\n\n    server.route({\n      method: 'GET',\n      path,\n      config,\n      handler: (_request: any, h: any) =>\n        h.response(renderVoyagerPage(middlewareOptions as MiddlewareOptions)),\n    });\n  },\n};\n\nexport default hapi;\n"
  },
  {
    "path": "src/middleware/index.ts",
    "content": "import { default as express } from './express.ts';\nimport { default as hapi } from './hapi.ts';\nimport { default as koa } from './koa.ts';\nimport { default as renderVoyagerPage } from './render-voyager-page.ts';\n\nexport { express, hapi, koa, renderVoyagerPage };\n"
  },
  {
    "path": "src/middleware/koa.ts",
    "content": "import renderVoyagerPage, { MiddlewareOptions } from './render-voyager-page.ts';\n\nexport default function koaMiddleware(\n  options: MiddlewareOptions,\n): (ctx: any, next: any) => Promise<void> {\n  return async function voyager(ctx, next) {\n    try {\n      ctx.body = renderVoyagerPage(options);\n      await next();\n    } catch (err: any) {\n      ctx.body = { message: err.message };\n      ctx.status = err.status || 500;\n    }\n  };\n}\n"
  },
  {
    "path": "src/middleware/render-voyager-page.ts",
    "content": "import { readFileSync } from 'node:fs';\n\nconst voyagerCSS = readFileSync(require.resolve('../voyager.css'), 'utf-8');\nconst voyagerStandaloneJS = readFileSync(\n  require.resolve('../voyager.standalone.js'),\n  'utf-8',\n);\n\nexport interface MiddlewareOptions {\n  endpointUrl: string;\n  displayOptions?: object;\n  headersJS?: string;\n}\n\nexport default function renderVoyagerPage(options: MiddlewareOptions) {\n  const { endpointUrl, displayOptions } = options;\n  const headersJS = options.headersJS ? options.headersJS : '{}';\n  return `\n<!DOCTYPE html>\n<html>\n<head>\n  <meta charset=utf-8 />\n  <meta name=\"viewport\" content=\"user-scalable=no, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0\">\n  <title>GraphQL Voyager</title>\n  <style>\n    body {\n      padding: 0;\n      margin: 0;\n      width: 100%;\n      height: 100vh;\n      overflow: hidden;\n    }\n    #voyager {\n      height: 100vh;\n    }\n    ${voyagerCSS}\n  </style>\n  <script>\n    ${voyagerStandaloneJS}\n  </script>\n</head>\n<body>\n  <main id=\"voyager\">\n    <h1 style=\"text-align: center; color: #5d7e86;\"> Loading... </h1>\n  </main>\n  <script>\n    window.addEventListener('load', function (event) {\n      const introspection = fetch('${endpointUrl}', {\n        method: 'post',\n        headers: {\n          Accept: 'application/json',\n          'Content-Type': 'application/json',\n          ...(${headersJS})\n        },\n        body: JSON.stringify({\n          query: GraphQLVoyager.voyagerIntrospectionQuery,\n        }),\n        credentials: 'include',\n      })\n        .then((response) => {\n          GraphQLVoyager.renderVoyager(document.getElementById('voyager'), {\n            introspection: response.json(),\n            displayOptions: ${JSON.stringify(displayOptions)},\n          })\n        })\n    })\n  </script>\n</body>\n</html>\n`;\n}\n"
  },
  {
    "path": "src/standalone.ts",
    "content": "/* eslint-disable import/no-extraneous-dependencies */\n// All dependencies are bundled for this entry point\n\nimport * as React from 'react';\nimport * as ReactDOMClient from 'react-dom/client';\n\nimport { Voyager, type VoyagerProps } from './index.ts';\n\nexport function renderVoyager(rootElement: HTMLElement, props: VoyagerProps) {\n  const reactRoot = ReactDOMClient.createRoot(rootElement);\n  reactRoot.render(React.createElement(Voyager, props));\n}\n\nexport * from './index.ts';\n"
  },
  {
    "path": "src/utils/collect-referenced-types.ts",
    "content": "import {\n  getNamedType,\n  GraphQLNamedType,\n  GraphQLType,\n  isInputObjectType,\n  isInterfaceType,\n  isObjectType,\n  isUnionType,\n} from 'graphql/type';\n\nexport function collectDirectlyReferencedTypes(\n  type: GraphQLType,\n  typeSet: Set<GraphQLNamedType>,\n): Set<GraphQLNamedType> {\n  const namedType = getNamedType(type);\n\n  if (isUnionType(namedType)) {\n    for (const memberType of namedType.getTypes()) {\n      typeSet.add(memberType);\n    }\n  } else if (isObjectType(namedType) || isInterfaceType(namedType)) {\n    for (const interfaceType of namedType.getInterfaces()) {\n      typeSet.add(interfaceType);\n    }\n\n    for (const field of Object.values(namedType.getFields())) {\n      typeSet.add(getNamedType(field.type));\n      for (const arg of field.args) {\n        typeSet.add(getNamedType(arg.type));\n      }\n    }\n  } else if (isInputObjectType(namedType)) {\n    for (const field of Object.values(namedType.getFields())) {\n      typeSet.add(getNamedType(field.type));\n    }\n  }\n\n  return typeSet;\n}\n"
  },
  {
    "path": "src/utils/compute-hash.ts",
    "content": "const textEncoder = new TextEncoder();\n\nexport async function computeHash(str: string): Promise<string | null> {\n  if (crypto?.subtle?.digest == null) {\n    return null;\n  }\n\n  const data = textEncoder.encode(str);\n  const hashBuffer = await crypto.subtle.digest('SHA-256', data);\n\n  const hashArray = Array.from(new Uint8Array(hashBuffer));\n  const hashHex = hashArray\n    .map((b) => b.toString(16).padStart(2, '0'))\n    .join('');\n\n  return hashHex;\n}\n"
  },
  {
    "path": "src/utils/dom-helpers.ts",
    "content": "export function stringToSvg(svgString: string): SVGSVGElement {\n  const svgDoc = new DOMParser().parseFromString(svgString, 'image/svg+xml');\n  // @ts-expect-error not sure how to properly type it\n  return document.importNode(svgDoc.documentElement, true);\n}\n"
  },
  {
    "path": "src/utils/highlight.tsx",
    "content": "import { Fragment } from 'react';\n\nexport function highlightTerm(content: string, term: string) {\n  if (term === '') {\n    return content;\n  }\n\n  const re = new RegExp('(' + escapeRegExp(term) + ')', 'gi');\n  return content.split(re).map(\n    // Apply highlight to all odd elements\n    (value, index) => (\n      <Fragment key={index}>\n        {index % 2 === 1 ? <mark>{value}</mark> : value}\n      </Fragment>\n    ),\n  );\n}\n\n// http://ecma-international.org/ecma-262/7.0/#sec-patterns).\nconst reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g;\nfunction escapeRegExp(string: string) {\n  return string.replace(reRegExpChar, '\\\\$&');\n}\n"
  },
  {
    "path": "src/utils/introspection-query.ts",
    "content": "import { getIntrospectionQuery } from 'graphql/utilities';\n\nexport const voyagerIntrospectionQuery: string = getIntrospectionQuery();\n"
  },
  {
    "path": "src/utils/is-match.ts",
    "content": "export function isMatch(sourceText: string, searchValue: string) {\n  if (searchValue === '') {\n    return true;\n  }\n\n  try {\n    const escaped = searchValue.replace(/[^_0-9A-Za-z]/g, (ch) => '\\\\' + ch);\n    return sourceText.search(new RegExp(escaped, 'i')) !== -1;\n  } catch {\n    return sourceText.toLowerCase().includes(searchValue.toLowerCase());\n  }\n}\n"
  },
  {
    "path": "src/utils/local-storage-lru-cache.ts",
    "content": "export class LocalStorageLRUCache {\n  private _localStorageKey;\n  private _maxSize;\n\n  constructor(options: { localStorageKey: string; maxSize: number }) {\n    this._localStorageKey = options.localStorageKey;\n    this._maxSize = options.maxSize;\n  }\n\n  public set(key: string, value: string): void {\n    const lru = this.readLRU();\n    lru.delete(key);\n    lru.set(key, value);\n    this.writeLRU(lru);\n  }\n\n  public get(key: string): string | null {\n    const lru = this.readLRU();\n    const cachedValue = lru.get(key);\n    if (cachedValue === undefined) {\n      return null;\n    }\n\n    lru.delete(key);\n    lru.set(key, cachedValue);\n    this.writeLRU(lru);\n    return cachedValue;\n  }\n\n  private readLRU(): Map<string, string> {\n    const rawData = localStorage.getItem(this._localStorageKey);\n    const data = JSON.parse(rawData ?? '{}');\n    return new Map(Array.isArray(data) ? data : []);\n  }\n\n  private writeLRU(lru: Map<string, string>): void {\n    let maxSize = this._maxSize;\n    for (;;) {\n      try {\n        const trimmedPairs = Array.from(lru).slice(-maxSize);\n        const rawData = JSON.stringify(trimmedPairs);\n        localStorage.setItem(this._localStorageKey, rawData);\n        this._maxSize = maxSize;\n        break;\n      } catch (error) {\n        if (maxSize <= 1) {\n          throw error;\n        }\n        console.warn(\n          `Can't write LRU cache with ${maxSize} entries. Retrying...`,\n        );\n        maxSize -= 1;\n      }\n    }\n  }\n}\n"
  },
  {
    "path": "src/utils/mapValues.ts",
    "content": "export function mapValues<T, R>(\n  obj: { [key: string]: T },\n  mapper: (value: T, key: string) => R | null,\n): { [key: string]: R } {\n  return Object.fromEntries(\n    Object.entries(obj)\n      .map(([key, value]) => [key, mapper(value, key)])\n      .filter(([, value]) => value != null),\n  );\n}\n"
  },
  {
    "path": "src/utils/sdl-to-introspection.ts",
    "content": "import { parse } from 'graphql/language';\nimport { buildSchema } from 'graphql/utilities';\nimport { KnownDirectivesRule } from 'graphql/validation';\n// eslint-disable-next-line import/no-unresolved\nimport { specifiedSDLRules } from 'graphql/validation/specifiedRules.ts';\n// eslint-disable-next-line import/no-unresolved\nimport { validateSDL } from 'graphql/validation/validate.ts';\n\nconst validationRules = specifiedSDLRules.filter(\n  // Many consumes/produces SDL files with custom directives and without defining them.\n  // This practice is contradict spec but is very widespread at the same time.\n  (rule) => rule !== KnownDirectivesRule,\n);\n\nexport function sdlToSchema(sdl: string) {\n  const documentAST = parse(sdl);\n  const errors = validateSDL(documentAST, null, validationRules);\n  if (errors.length !== 0) {\n    throw new Error(errors.map((error) => error.message).join('\\n\\n'));\n  }\n\n  return buildSchema(sdl, { assumeValidSDL: true });\n}\n"
  },
  {
    "path": "src/utils/stringify-type-wrappers.ts",
    "content": "import {\n  GraphQLType,\n  isListType,\n  isNamedType,\n  isNonNullType,\n} from 'graphql/type';\n\nimport { unreachable } from './unreachable.ts';\n\nexport function stringifyTypeWrappers(type: GraphQLType): [string, string] {\n  if (isNamedType(type)) {\n    return ['', ''];\n  }\n\n  const [left, right] = stringifyTypeWrappers(type.ofType);\n  if (isNonNullType(type)) {\n    return [left, right + '!'];\n  }\n  if (isListType(type)) {\n    return ['[' + left, right + ']'];\n  }\n  unreachable(type);\n}\n"
  },
  {
    "path": "src/utils/transformSchema.ts",
    "content": "import {\n  assertNamedType,\n  GraphQLDirective,\n  GraphQLEnumType,\n  GraphQLFieldConfigArgumentMap,\n  GraphQLFieldConfigMap,\n  GraphQLInputFieldConfigMap,\n  GraphQLInputObjectType,\n  GraphQLInterfaceType,\n  GraphQLList,\n  GraphQLNamedType,\n  GraphQLNonNull,\n  GraphQLObjectType,\n  GraphQLSchema,\n  GraphQLType,\n  GraphQLUnionType,\n  isEnumType,\n  isInputObjectType,\n  isInterfaceType,\n  isIntrospectionType,\n  isListType,\n  isNonNullType,\n  isObjectType,\n  isSpecifiedScalarType,\n  isUnionType,\n} from 'graphql/type';\n\nimport { mapValues } from './mapValues.ts';\n\n// FIXME: Contribute to graphql-js\nexport type NamedTypeTransformer = (\n  type: GraphQLNamedType,\n) => GraphQLNamedType | null;\n\nexport type DirectiveTransformer = (\n  directive: GraphQLDirective,\n) => GraphQLDirective | null;\n\nexport function transformSchema(\n  schema: GraphQLSchema,\n  namedTypeTransformers: ReadonlyArray<NamedTypeTransformer>,\n  directiveTransformers: ReadonlyArray<DirectiveTransformer> = [],\n): GraphQLSchema {\n  const schemaConfig = schema.toConfig();\n\n  const typeMap = new Map<string, GraphQLNamedType>();\n  for (const oldType of schemaConfig.types) {\n    const newType = transformNamedType(oldType);\n    if (newType != null) {\n      typeMap.set(newType.name, newType);\n    }\n  }\n\n  const directives = [];\n  for (const oldDirective of schemaConfig.directives) {\n    const newDirective = transformDirective(oldDirective);\n    if (newDirective != null) {\n      directives.push(newDirective);\n    }\n  }\n\n  return new GraphQLSchema({\n    ...schemaConfig,\n    types: Array.from(typeMap.values()),\n    directives,\n    query: replaceMaybeType(schemaConfig.query),\n    mutation: replaceMaybeType(schemaConfig.mutation),\n    subscription: replaceMaybeType(schemaConfig.subscription),\n  });\n\n  function transformDirective(\n    oldDirective: GraphQLDirective,\n  ): GraphQLDirective | null {\n    let newDirective = oldDirective;\n    for (const fn of directiveTransformers) {\n      const resultDirective = fn(newDirective);\n      if (resultDirective === null) {\n        return null;\n      }\n      newDirective = resultDirective;\n    }\n\n    const config = newDirective.toConfig();\n    return new GraphQLDirective({\n      ...config,\n      args: transformArgs(config.args),\n    });\n  }\n\n  function transformNamedType(\n    oldType: GraphQLNamedType,\n  ): GraphQLNamedType | null {\n    if (isIntrospectionType(oldType) || isSpecifiedScalarType(oldType)) {\n      return oldType;\n    }\n\n    let newType = oldType;\n    for (const fn of namedTypeTransformers) {\n      const resultType = fn(newType);\n      if (resultType === null) {\n        return null;\n      }\n      newType = resultType;\n    }\n\n    if (isObjectType(newType)) {\n      const config = newType.toConfig();\n      return new GraphQLObjectType({\n        ...config,\n        interfaces: () => replaceTypes(config.interfaces),\n        fields: () => transformFields(config.fields),\n      });\n    }\n    if (isInterfaceType(newType)) {\n      const config = newType.toConfig();\n      return new GraphQLInterfaceType({\n        ...config,\n        interfaces: () => replaceTypes(config.interfaces),\n        fields: () => transformFields(config.fields),\n      });\n    }\n    if (isUnionType(newType)) {\n      const config = newType.toConfig();\n      return new GraphQLUnionType({\n        ...config,\n        types: () => replaceTypes(config.types),\n      });\n    }\n    if (isEnumType(newType)) {\n      const config = newType.toConfig();\n      return new GraphQLEnumType({ ...config });\n    }\n    if (isInputObjectType(newType)) {\n      const config = newType.toConfig();\n      return new GraphQLInputObjectType({\n        ...config,\n        fields: () => transformInputFields(config.fields),\n      });\n    }\n    return newType;\n  }\n\n  function replaceType<T extends GraphQLType>(type: T): T {\n    if (isListType(type)) {\n      // @ts-expect-error Type mismatch\n      return new GraphQLList(replaceType(type.ofType));\n    } else if (isNonNullType(type)) {\n      // @ts-expect-error Type mismatch\n      return new GraphQLNonNull(replaceType(type.ofType));\n    }\n    // @ts-expect-error Type mismatch\n    return assertNamedType(replaceNamedType(type));\n  }\n\n  function replaceMaybeType<T extends GraphQLNamedType>(\n    maybeType: T | null | undefined,\n  ): T | null | undefined {\n    return maybeType && (replaceNamedType(maybeType) as T);\n  }\n\n  function replaceTypes<T extends GraphQLNamedType>(\n    array: ReadonlyArray<T>,\n  ): Array<T> {\n    const result = [];\n\n    for (const oldType of array) {\n      const newType = replaceNamedType(oldType);\n      if (newType != null) {\n        result.push(newType);\n      }\n    }\n    return result as Array<T>;\n  }\n\n  function replaceNamedType(\n    type: GraphQLNamedType,\n  ): GraphQLNamedType | undefined {\n    return typeMap.get(type.name);\n  }\n\n  function transformArgs(args: GraphQLFieldConfigArgumentMap) {\n    return mapValues(args, (arg) => ({\n      ...arg,\n      type: replaceType(arg.type),\n    }));\n  }\n\n  function transformFields(fieldsMap: GraphQLFieldConfigMap<unknown, unknown>) {\n    return mapValues(fieldsMap, (field) => ({\n      ...field,\n      type: replaceType(field.type),\n      args: field.args && transformArgs(field.args),\n    }));\n  }\n\n  function transformInputFields(fieldsMap: GraphQLInputFieldConfigMap) {\n    return mapValues(fieldsMap, (field) => ({\n      ...field,\n      type: replaceType(field.type),\n    }));\n  }\n}\n"
  },
  {
    "path": "src/utils/unreachable.ts",
    "content": "export function unreachable(_: never): never {\n  throw Error('graphql-voyager: Unreachable code triggered!');\n}\n"
  },
  {
    "path": "src/utils/usePromise.ts",
    "content": "import { useCallback, useEffect, useState } from 'react';\n\ntype PromiseState<T> =\n  | { loading: true; error: null; value: undefined }\n  | { loading: false; error: null; value: T }\n  | { loading: false; error: unknown; value: undefined };\n\nexport type MaybePromise<T> = Promise<T> | T;\n\nexport function usePromise<T>(\n  maybePromise: MaybePromise<T>,\n): [PromiseState<T>, (value: T) => void] {\n  const [state, setState] = useState<PromiseState<T>>({\n    loading: true,\n    error: null,\n    value: undefined,\n  });\n\n  useEffect(() => {\n    let isMounted = true;\n\n    setState({ loading: true, error: null, value: undefined });\n    Promise.resolve(maybePromise).then(\n      (value) => {\n        if (isMounted) {\n          setState((oldState) =>\n            oldState.loading // update only if unresolved\n              ? { loading: false, error: null, value }\n              : oldState,\n          );\n        }\n      },\n      (error) => {\n        if (isMounted) {\n          setState((oldState) =>\n            oldState.loading // update only if unresolved\n              ? { loading: false, error, value: undefined }\n              : oldState,\n          );\n        }\n      },\n    );\n\n    return () => {\n      isMounted = false;\n    };\n  }, [maybePromise]);\n\n  const resolveValue = useCallback((value: T) => {\n    setState({ loading: false, error: null, value });\n  }, []);\n\n  return [state, resolveValue];\n}\n"
  },
  {
    "path": "tests/Dockerfile",
    "content": "# syntax=docker/dockerfile:1\nFROM node:24\n\nARG PLAYWRIGHT_VERSION=\"missing PLAYWRIGHT_VERSION arg\"\nRUN npm -g install \"playwright@$PLAYWRIGHT_VERSION\" && playwright install --with-deps chromium\n"
  },
  {
    "path": "tests/PageObjectModel.ts",
    "content": "import { type Locator, type Page } from 'playwright/test';\nimport { format } from 'prettier';\n\ninterface VoyagerURLParams {\n  path?: string;\n  url?: string;\n  withCredential?: boolean;\n}\n\nexport async function gotoVoyagerPage(\n  page: Page,\n  searchParams?: VoyagerURLParams,\n) {\n  // Add error/console checkers before we open Voyager page to track errors during loading\n  page.on('pageerror', (error) => {\n    throw error;\n  });\n  page.on('requestfailed', (request) => {\n    throw new Error(request.url() + ' ' + request.failure()?.errorText);\n  });\n  page.on('response', (response) => {\n    if (response.status() != 200) {\n      throw new Error(\n        `${response.url()}: ${response.status()} ${response.statusText()}`,\n      );\n    }\n  });\n  page.on('console', (message) => {\n    const type = message.type();\n    const text = message.text();\n    const { url, lineNumber } = message.location();\n    const location = `${url}:${lineNumber}`;\n\n    switch (type) {\n      case 'timeEnd':\n        if (text.startsWith('graphql-voyager: Rendering SVG:')) {\n          return;\n        }\n        break;\n      case 'log':\n        if (text.startsWith('graphql-voyager: SVG cached')) {\n          return;\n        }\n        break;\n    }\n    throw new Error(`[${type.toUpperCase()}] at '${location}': ${text}`);\n  });\n\n  const search = new URLSearchParams();\n  if (searchParams?.url != null) {\n    search.append('url', searchParams.url);\n  }\n  if (searchParams?.withCredential != null) {\n    search.append('withCredential', searchParams.withCredential.toString());\n  }\n\n  const response = await page.goto(\n    (searchParams?.path || '/') + '?' + search.toString(),\n  );\n  if (response == null) {\n    throw new Error('Can not load voyager main page');\n  } else if (response.status() != 200) {\n    throw new Error(\n      `${response.url()}: ${response.status()} ${response.statusText()}`,\n    );\n  }\n\n  return new PlaywrightVoyagerPage(page);\n}\n\nclass PlaywrightVoyagerPage {\n  readonly page: Page;\n  readonly graphLoadingAnimation: Locator;\n  readonly svgContainer: Locator;\n\n  readonly changeSchemaDialog: PlaywrightChangeSchemaDialog;\n\n  constructor(page: Page) {\n    this.page = page;\n\n    this.graphLoadingAnimation = page\n      .getByRole('status')\n      .getByText('Transmitting...');\n    this.svgContainer = this.page.getByRole('img', {\n      name: 'Visual representation of the GraphQL schema',\n    });\n\n    this.changeSchemaDialog = new PlaywrightChangeSchemaDialog(page);\n  }\n\n  async waitForGraphToBeLoaded(): Promise<void> {\n    await this.svgContainer.waitFor({ state: 'visible' });\n    await this.graphLoadingAnimation.waitFor({ state: 'hidden' });\n  }\n\n  async getGraphSVG(): Promise<string> {\n    let svg = await this.svgContainer.innerHTML();\n    svg = await format(svg, { parser: 'html' });\n    return svg.replace(/id=\"viewport-.*?\"/, 'id=\"viewport-{datetime}\"');\n  }\n\n  async submitSDL(sdl: string) {\n    const { changeSchemaDialog } = this;\n    const { sdlTab } = changeSchemaDialog;\n\n    await changeSchemaDialog.openButton.click();\n    await sdlTab.tab.click();\n    await sdlTab.sdlTextArea.fill(sdl);\n    await changeSchemaDialog.displayButton.click();\n    await this.waitForGraphToBeLoaded();\n  }\n}\n\nclass PlaywrightChangeSchemaDialog {\n  readonly dialog: Locator;\n  readonly openButton: Locator;\n\n  readonly presetsTab: PlaywrightChangeSchemaPresetsTab;\n  readonly sdlTab: PlaywrightChangeSchemaSDLTab;\n  readonly introspectionTab: PlaywrightChangeSchemaIntrospectionTab;\n\n  readonly displayButton: Locator;\n  readonly cancelButton: Locator;\n\n  constructor(page: Page) {\n    this.dialog = page.getByRole('dialog');\n    this.openButton = page.getByRole('button', {\n      name: 'Change Schema',\n    });\n\n    this.presetsTab = new PlaywrightChangeSchemaPresetsTab(this.dialog);\n    this.sdlTab = new PlaywrightChangeSchemaSDLTab(this.dialog);\n    this.introspectionTab = new PlaywrightChangeSchemaIntrospectionTab(\n      this.dialog,\n    );\n\n    this.displayButton = this.dialog.getByRole('button', { name: 'Display' });\n    this.cancelButton = this.dialog.getByRole('button', { name: 'Cancel' });\n  }\n}\n\nclass PlaywrightChangeSchemaBaseTab {\n  readonly tab: Locator;\n  readonly tabPanel: Locator;\n\n  constructor(dialog: Locator, name: string) {\n    this.tab = dialog.getByRole('tab', { name });\n    this.tabPanel = dialog.getByRole('tabpanel', { name });\n  }\n}\n\nexport const SchemaPresets = [\n  'Star Wars',\n  'Yelp',\n  'Shopify Storefront',\n  'GitHub',\n] as const;\nclass PlaywrightChangeSchemaPresetsTab extends PlaywrightChangeSchemaBaseTab {\n  readonly presetButtons: { [name in (typeof SchemaPresets)[number]]: Locator };\n\n  constructor(dialog: Locator) {\n    super(dialog, 'Presets');\n\n    this.presetButtons = {} as any;\n    for (const name of SchemaPresets) {\n      this.presetButtons[name] = this.tabPanel.getByRole('button', { name });\n    }\n  }\n}\n\nclass PlaywrightChangeSchemaSDLTab extends PlaywrightChangeSchemaBaseTab {\n  readonly sdlTextArea: Locator;\n\n  constructor(dialog: Locator) {\n    super(dialog, 'SDL');\n\n    this.sdlTextArea = this.tabPanel.getByPlaceholder('Paste SDL Here');\n  }\n}\n\nclass PlaywrightChangeSchemaIntrospectionTab extends PlaywrightChangeSchemaBaseTab {\n  readonly introspectionTextArea: Locator;\n  readonly copyIntrospectionQueryButton: Locator;\n\n  constructor(dialog: Locator) {\n    super(dialog, 'Introspection');\n\n    this.introspectionTextArea = this.tabPanel.getByPlaceholder(\n      'Paste Introspection Here',\n    );\n    this.copyIntrospectionQueryButton = this.tabPanel.getByRole('button', {\n      name: 'Copied!',\n    });\n  }\n}\n"
  },
  {
    "path": "tests/demo.spec.ts",
    "content": "import { buildSchema, graphqlSync } from 'graphql';\nimport { expect, test } from 'playwright/test';\n\nimport { gotoVoyagerPage, SchemaPresets } from './PageObjectModel.ts';\n\ntest('open demo', async ({ page }) => {\n  const voyagerPage = await gotoVoyagerPage(page);\n\n  await voyagerPage.waitForGraphToBeLoaded();\n  expect\n    .soft(await voyagerPage.getGraphSVG())\n    .toMatchSnapshot('demo-graph.svg');\n  await expect(voyagerPage.page).toHaveScreenshot('loaded-demo.png');\n});\n\ntest('resize screen', async ({ page }) => {\n  await page.setViewportSize({ width: 1920, height: 1080 });\n\n  const voyagerPage = await gotoVoyagerPage(page);\n\n  await voyagerPage.waitForGraphToBeLoaded();\n  expect\n    .soft(await voyagerPage.getGraphSVG())\n    .toMatchSnapshot('graph-before-resize.svg');\n  await expect(voyagerPage.page).toHaveScreenshot('demo-before-resize.png');\n\n  await page.setViewportSize({ width: 1024, height: 768 });\n  expect\n    .soft(await voyagerPage.getGraphSVG())\n    .toMatchSnapshot('graph-after-resize.svg');\n  await expect(voyagerPage.page).toHaveScreenshot('demo-after-resize.png');\n});\n\nfor (const name of SchemaPresets) {\n  test(`use ${name} preset`, async ({ page }) => {\n    const voyagerPage = await gotoVoyagerPage(page);\n    const { changeSchemaDialog } = voyagerPage;\n    const { presetsTab } = changeSchemaDialog;\n\n    await changeSchemaDialog.openButton.click();\n    await expect(voyagerPage.page).toHaveScreenshot('open-dialog.png');\n\n    await presetsTab.tab.click();\n    await expect(voyagerPage.page).toHaveScreenshot(\n      'switch-to-presets-tab.png',\n    );\n\n    const slug = name.toLowerCase().replaceAll(' ', '-');\n    await presetsTab.presetButtons[name].click();\n    await expect(voyagerPage.page).toHaveScreenshot(\n      `choose-${slug}-preset.png`,\n    );\n\n    await changeSchemaDialog.displayButton.click();\n\n    // eslint-disable-next-line playwright/no-wait-for-timeout\n    await page.waitForTimeout(200); // FIXME\n    await voyagerPage.waitForGraphToBeLoaded();\n    expect\n      .soft(await voyagerPage.getGraphSVG())\n      .toMatchSnapshot(`${slug}-graph.svg`);\n    await expect(voyagerPage.page).toHaveScreenshot(`show-${slug}-preset.png`);\n  });\n}\n\ntest('check loading animation', async ({ page }) => {\n  const voyagerPage = await gotoVoyagerPage(page);\n  const { changeSchemaDialog } = voyagerPage;\n  const { presetsTab } = changeSchemaDialog;\n\n  await changeSchemaDialog.openButton.click();\n  await presetsTab.tab.click();\n  await presetsTab.presetButtons['GitHub'].click();\n  await changeSchemaDialog.displayButton.click();\n\n  await expect(voyagerPage.page).toHaveScreenshot('loading-animation.png', {\n    animations: 'disabled',\n  });\n\n  await voyagerPage.waitForGraphToBeLoaded();\n  await expect(voyagerPage.page).toHaveScreenshot('show-github-preset.png');\n});\n\ntest('use custom SDL', async ({ page }) => {\n  const voyagerPage = await gotoVoyagerPage(page);\n  const { changeSchemaDialog } = voyagerPage;\n  const { sdlTab } = changeSchemaDialog;\n  await voyagerPage.waitForGraphToBeLoaded();\n\n  await changeSchemaDialog.openButton.click();\n  await expect(voyagerPage.page).toHaveScreenshot('open-dialog.png');\n\n  await sdlTab.tab.click();\n  await expect(voyagerPage.page).toHaveScreenshot('switch-to-sdl-tab.png');\n\n  await sdlTab.sdlTextArea.fill('type Query { foo: String }');\n  await expect(voyagerPage.page).toHaveScreenshot('fill-sdl.png');\n\n  await changeSchemaDialog.displayButton.click();\n  await voyagerPage.waitForGraphToBeLoaded();\n  expect\n    .soft(await voyagerPage.getGraphSVG())\n    .toMatchSnapshot('custom-sdl-graph.svg');\n  await expect(voyagerPage.page).toHaveScreenshot('display-sdl.png');\n});\n\ntest('use custom SDL with custom directives', async ({ page }) => {\n  const voyagerPage = await gotoVoyagerPage(page);\n  await voyagerPage.submitSDL('type Query @foo { bar: String @baz }');\n\n  expect\n    .soft(await voyagerPage.getGraphSVG())\n    .toMatchSnapshot('custom-sdl-with-unknown-directives-graph.svg');\n  await expect(voyagerPage.page).toHaveScreenshot(\n    'display-sdl-with-unknown-directives.png',\n  );\n});\n\n/* FIXME: need a way to disable \"Skip deprecated\" (uncheck it in UI) in tests\ntest('use custom SDL with deprecated fields', async ({ page }) => {\n  const voyagerPage = await gotoVoyagerPage(page);\n  // TODO: test deprecated args and input fields\n  await voyagerPage.submitSDL(`\n    type Query {\n      foo: String @deprecated\n      bar: Int @deprecated(reason: \"Just because\")\n    }\n  `);\n\n  expect\n    .soft(await voyagerPage.getGraphSVG())\n    .toMatchSnapshot('custom-sdl-with-deprecated-graph.svg');\n  await expect(voyagerPage.page).toHaveScreenshot(\n    'display-sdl-with-deprecated.png',\n  );\n});\n*/\n\ntest('use custom introspection', async ({ page }) => {\n  test.slow();\n\n  const voyagerPage = await gotoVoyagerPage(page);\n  const { changeSchemaDialog } = voyagerPage;\n  const { introspectionTab } = changeSchemaDialog;\n  await voyagerPage.waitForGraphToBeLoaded();\n\n  await changeSchemaDialog.openButton.click();\n  await expect(voyagerPage.page).toHaveScreenshot('open-dialog.png');\n\n  await introspectionTab.tab.click();\n  await expect(voyagerPage.page).toHaveScreenshot(\n    'switch-to-introspection-tab.png',\n  );\n\n  await introspectionTab.copyIntrospectionQueryButton.click();\n  await expect(voyagerPage.page).toHaveScreenshot(\n    'copy-introspection-button-click.png',\n  );\n\n  const clipboardText = await page.evaluate<string>(\n    'navigator.clipboard.readText()',\n  );\n  const schema = buildSchema('type Query { foo: String }');\n  const result = graphqlSync({ source: clipboardText, schema });\n  const jsonResult = JSON.stringify(result, null, 2);\n\n  await introspectionTab.introspectionTextArea.fill(jsonResult);\n  await expect(voyagerPage.page).toHaveScreenshot('fill-introspection.png');\n\n  await changeSchemaDialog.displayButton.click();\n  await voyagerPage.waitForGraphToBeLoaded();\n  expect\n    .soft(await voyagerPage.getGraphSVG())\n    .toMatchSnapshot('custom-introspection-graph.svg');\n  await expect(voyagerPage.page).toHaveScreenshot('display-introspection.png');\n});\n\ntest('use search params to pass url', async ({ page }) => {\n  const url = 'https://example.com/graphql';\n  const schema = buildSchema('type Query { foo: String }');\n\n  await page.route(url, async (route, request) => {\n    const { query: source } = request.postDataJSON();\n    const json = graphqlSync({ source, schema });\n    await route.fulfill({ json });\n  });\n\n  const voyagerPage = await gotoVoyagerPage(page, { url });\n  await voyagerPage.waitForGraphToBeLoaded();\n\n  expect\n    .soft(await voyagerPage.getGraphSVG())\n    .toMatchSnapshot('schema-from-url-graph.svg');\n  await expect(voyagerPage.page).toHaveScreenshot(\n    'display-schema-from-url.png',\n  );\n});\n"
  },
  {
    "path": "tests/express.spec.ts",
    "content": "import { expect, test } from 'playwright/test';\n\nimport { gotoVoyagerPage } from './PageObjectModel.ts';\n\ntest.fixme('open express example', async ({ page }) => {\n  const voyagerPage = await gotoVoyagerPage(page, { path: '/voyager' });\n\n  await voyagerPage.waitForGraphToBeLoaded();\n  await expect(voyagerPage.page).toHaveScreenshot('loaded-express-example.png');\n});\n"
  },
  {
    "path": "tests/webpack.spec.ts",
    "content": "import { expect, test } from 'playwright/test';\n\nimport { gotoVoyagerPage } from './PageObjectModel.ts';\n\ntest.fixme('open webpack example', async ({ page }) => {\n  const voyagerPage = await gotoVoyagerPage(page);\n\n  await voyagerPage.waitForGraphToBeLoaded();\n  await expect(voyagerPage.page).toHaveScreenshot('loaded-webpack-example.png');\n});\n"
  },
  {
    "path": "tsconfig.build.json",
    "content": "{\n  \"extends\": \"./tsconfig.json\",\n  \"compilerOptions\": {\n    \"noEmit\": false,\n    \"rootDir\": \"src\",\n    \"outDir\": \"dist\",\n    \"declaration\": true,\n    \"sourceMap\": true,\n    \"pretty\": true\n  },\n  \"include\": [\"./src/**/*.ts\", \"./src/**/*.tsx\", \"./manual-types.d.ts\"]\n}\n"
  },
  {
    "path": "tsconfig.json",
    "content": "{\n  \"compilerOptions\": {\n    // copy of https://github.com/tsconfig/bases/blob/main/bases/strictest.json\n    \"strict\": true,\n    \"allowUnusedLabels\": false,\n    \"allowUnreachableCode\": false,\n    // FIXME: \"exactOptionalPropertyTypes\": true,\n    \"noFallthroughCasesInSwitch\": true,\n    // FIXME: \"noImplicitOverride\": true,\n    \"noImplicitReturns\": true,\n    \"noPropertyAccessFromIndexSignature\": true,\n    // FIXME: \"noUncheckedIndexedAccess\": true,\n    \"noUnusedLocals\": true,\n    \"noUnusedParameters\": true,\n\n    \"isolatedModules\": true,\n\n    \"checkJs\": true,\n\n    // FIXME: \"esModuleInterop\": true,\n    \"skipLibCheck\": true,\n    // end copy\n\n    \"resolveJsonModule\": true,\n    \"allowImportingTsExtensions\": true,\n    \"rewriteRelativeImportExtensions\": true,\n    \"module\": \"nodenext\",\n    \"moduleResolution\": \"nodenext\",\n    \"target\": \"es2021\",\n    \"allowSyntheticDefaultImports\": true,\n    \"noEmit\": true,\n    \"lib\": [\"es2022\", \"dom\", \"dom.iterable\"],\n    \"jsx\": \"react-jsx\"\n  },\n  \"compileOnSave\": false,\n  \"exclude\": [\"node_modules\", \".tmp\", \"dist\", \"demo-dist\"],\n  \"include\": [\n    \"./src/**/*.ts\",\n    \"./src/**/*.tsx\",\n    \"./manual-types.d.ts\",\n    \"tests/**/*.ts\",\n    \"scripts/**/*.ts\",\n    \"playwright.config.ts\",\n    \"webpack.config.ts\"\n  ]\n}\n"
  },
  {
    "path": "webpack.config.ts",
    "content": "import 'webpack-dev-server';\n\nimport path from 'node:path';\n\nimport MiniCssExtractPlugin from 'mini-css-extract-plugin';\nimport type { ExternalItemFunctionData } from 'webpack';\nimport webpack from 'webpack';\n\nimport packageJSON from './package.json' with { type: 'json' };\nconst BANNER = `GraphQL Voyager - Represent any GraphQL API as an interactive graph\n-------------------------------------------------------------\n  Version: ${packageJSON.version}\n  Repo: ${packageJSON.repository.url}`;\n\nconst baseConfig: webpack.Configuration = {\n  devtool: 'source-map',\n  // disable hints since Voyager is too big :(\n  performance: { hints: false },\n  resolve: {\n    extensionAlias: {\n      '.js': ['.ts', '.tsx', '.mjs', '.js'],\n      '.ts': ['.mjs', '.js', '.ts'],\n    },\n    extensions: ['.js', '.json', '.css', '.svg'],\n  },\n  output: {\n    path: path.join(import.meta.dirname, 'dist'),\n    sourceMapFilename: '[file].map',\n  },\n  module: {\n    rules: [\n      {\n        resourceQuery: /raw/,\n        type: 'asset/source',\n      },\n      {\n        test: /\\.tsx?$/,\n        use: {\n          loader: 'ts-loader',\n          options: {\n            transpileOnly: true,\n            compilerOptions: { noEmit: false },\n          },\n        },\n        exclude: [/\\.(spec|e2e)\\.ts$/],\n      },\n      {\n        test: /\\.css$/,\n        exclude: /variables\\.css$/,\n        use: [\n          MiniCssExtractPlugin.loader,\n          {\n            loader: 'css-loader',\n            options: { sourceMap: true },\n          },\n          {\n            loader: 'postcss-loader',\n            options: {\n              sourceMap: true,\n              postcssOptions: {\n                plugins: ['postcss-import', 'postcss-cssnext'],\n              },\n            },\n          },\n        ],\n      },\n      {\n        test: /variables\\.css$/,\n        use: [{ loader: 'postcss-variables-loader?es5=1' }],\n      },\n      {\n        test: /\\.svg$/,\n        issuer: /\\.tsx?$/,\n        resourceQuery: { not: [/raw/] },\n        use: [\n          {\n            loader: '@svgr/webpack',\n            options: { typescript: true, ext: 'tsx' },\n          },\n        ],\n      },\n    ],\n  },\n\n  plugins: [\n    new MiniCssExtractPlugin({\n      filename: 'voyager.css',\n    }),\n\n    new webpack.BannerPlugin({\n      banner: BANNER,\n      stage: webpack.Compilation.PROCESS_ASSETS_STAGE_REPORT,\n    }),\n  ],\n};\n\nconst config: Array<webpack.Configuration> = [\n  {\n    ...baseConfig,\n    entry: './src/index.ts',\n    externalsType: 'module',\n    externals,\n    output: {\n      ...baseConfig.output,\n      filename: 'voyager.lib.js',\n      library: { type: 'modern-module' },\n      libraryTarget: 'modern-module',\n    },\n    experiments: { outputModule: true },\n  },\n  {\n    ...baseConfig,\n    entry: './src/standalone.ts',\n    externals: undefined,\n    output: {\n      ...baseConfig.output,\n      filename: 'voyager.standalone.js',\n      library: 'GraphQLVoyager',\n      libraryTarget: 'umd',\n      umdNamedDefine: true,\n    },\n    devServer: {\n      port: 9090,\n      static: {\n        directory: path.join(import.meta.dirname, 'demo'),\n      },\n      liveReload: true,\n    },\n  },\n];\nexport default config;\n\nfunction externals({ request }: ExternalItemFunctionData) {\n  return Promise.resolve(\n    [\n      ...Object.keys(packageJSON.peerDependencies),\n      ...Object.keys(packageJSON.dependencies),\n    ].some((pkg) => request === pkg || request?.startsWith(pkg + '/')),\n  );\n}\n"
  },
  {
    "path": "wrangler.toml",
    "content": "name = \"graphql-voyager\"\ncompatibility_date = \"2025-08-26\"\n\n[[routes]]\npattern = \"apis.guru/graphql-voyager*\"\nzone_name = \"apis.guru\"\n\n[assets]\ndirectory = \"./demo-dist\"\nrun_worker_first = false\n"
  }
]