Isn't a valid override of...

Bug description
In my generated graph_ql.graphql.api file I see "Isn't a valid override" errors in a lot of places so I can't run my app. The error looks like this:
'CheckoutById$QueryRoot$Node$Checkout$CheckoutLineItemConnection$CheckoutLineItemEdge$CheckoutLineItem$ProductVariant$MetafieldConnection$MetafieldEdge.node=' ('void Function(CheckoutById$QueryRoot$Node$Checkout$CheckoutLineItemConnection$CheckoutLineItemEdge$CheckoutLineItem$ProductVariant$MetafieldConnection$MetafieldEdge$Metafield)') isn't a valid override of 'CheckoutById$QueryRoot$Node$Checkout$CheckoutLineItemConnection$CheckoutLineItemEdge.node=' ('void Function(CheckoutById$QueryRoot$Node$Checkout$CheckoutLineItemConnection$CheckoutLineItemEdge$CheckoutLineItem)'). (Documentation)

The problem seems to be, that node is already defined in a parent class and that's because in the graph ql query a node {...} statement is nested in another node {...} statement like this:
...
node {
    ...
    node {
        ....
    }
    ...
}
...

Any ideas how to solve this?
Specs
Artemis version: 7.0.0-beta.2

build.yaml:
targets:
  $default:
    builders:
      artemis:
        options:
          schema_mapping:
            - output: lib/shopify/graphql_output/graphql_api.dart
              schema: lib/shopify/shopify.schema.graphql
              queries_glob: lib/shopify/*/*/*.graphql
          scalar_mapping:
            - graphql_type: Money
              dart_type: double
            - graphql_type: Decimal
              dart_type: double
            - graphql_type: URL
              dart_type: String
            - graphql_type: DateTime
              dart_type: DateTime

GraphQL query:
```
  query checkoutById($checkoutId: ID!) {
    node(id: $checkoutId) {
      __typename
      ...on Checkout {
        id
        webUrl
        totalPriceV2 {
          amount
          currencyCode
        }
        discountApplications(first: 10) {
          edges {
            node {
              __typename
              ...on DiscountCodeApplication {
                applicable
                code
                value {
                  __typename
                  ...on PricingPercentageValue {
                    percentage
                  }
                }
              }
            }
          }
        }
        lineItems(first: 250) {
          edges {
            node {
              id
              quantity
              title
              variant {
                id
                quantityAvailable
                product {
                  id
                  title
                  description
                  availableForSale
                  publishedAt
                  vendor
                  productType
                  images(first: 5) {
                    edges {
                      node {
                        originalSrc
                      }
                    }
                  }
                  variants(first: 1) {
                    pageInfo {
                      hasNextPage
                    }
                    edges {
                      node {
                        id
                        title
                        priceV2 {
                          amount
                          currencyCode
                        }
                        quantityAvailable
                        metafields(first: 20) {
                          edges {
                            node {
                              key
                              value
                            }
                          }
                        }
                      }
                    }
                  }
                }
                priceV2 {
                  amount
                  currencyCode
                }
                metafields(first: 20) {
                  edges {
                    node {
                      key
                      value
                    }
                  }
                }
              }
            }
          }
        }
      }
    }
  }
```

Artemis output:
[  +85 ms] executing: [/Users/janosch/flutter/flutter_stable/] git -c log.showSignature=false log -n 1 --pretty=format:%H
[  +41 ms] Exit code 0 from: git -c log.showSignature=false log -n 1 --pretty=format:%H
[        ] b1395592de68cc8ac4522094ae59956dd21a91db
[        ] executing: [/Users/janosch/flutter/flutter_stable/] git tag --points-at b1395592de68cc8ac4522094ae59956dd21a91db
[  +18 ms] Exit code 0 from: git tag --points-at b1395592de68cc8ac4522094ae59956dd21a91db
[        ] 2.0.4
[  +46 ms] executing: [/Users/janosch/flutter/flutter_stable/] git rev-parse --abbrev-ref --symbolic @{u}
[   +6 ms] Exit code 0 from: git rev-parse --abbrev-ref --symbolic @{u}
[        ] origin/stable
[        ] executing: [/Users/janosch/flutter/flutter_stable/] git ls-remote --get-url origin
[   +6 ms] Exit code 0 from: git ls-remote --get-url origin
[        ] https://github.com/flutter/flutter.git
[  +49 ms] executing: [/Users/janosch/flutter/flutter_stable/] git rev-parse --abbrev-ref HEAD
[  +10 ms] Exit code 0 from: git rev-parse --abbrev-ref HEAD
[        ] stable
[   +8 ms] executing: sw_vers -productName
[  +17 ms] Exit code 0 from: sw_vers -productName
[   +1 ms] macOS
[        ] executing: sw_vers -productVersion
[  +21 ms] Exit code 0 from: sw_vers -productVersion
[   +1 ms] 11.2.3
[        ] executing: sw_vers -buildVersion
[  +20 ms] Exit code 0 from: sw_vers -buildVersion
[   +1 ms] 20D91
[   +8 ms] executing: sysctl hw.optional.arm64
[   +7 ms] Exit code 1 from: sysctl hw.optional.arm64
[        ] sysctl: unknown oid 'hw.optional.arm64'
[  +49 ms] Artifact Instance of 'AndroidGenSnapshotArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'AndroidInternalBuildArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'IOSEngineArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'FlutterWebSdk' is not required, skipping update.
[   +2 ms] Artifact Instance of 'WindowsEngineArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'MacOSEngineArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'LinuxEngineArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'LinuxFuchsiaSDKArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'MacOSFuchsiaSDKArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'FlutterRunnerSDKArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'FlutterRunnerDebugSymbols' is not required, skipping update.
[  +53 ms] Artifact Instance of 'MaterialFonts' is not required, skipping update.
[        ] Artifact Instance of 'GradleWrapper' is not required, skipping update.
[        ] Artifact Instance of 'AndroidGenSnapshotArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'AndroidInternalBuildArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'IOSEngineArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'FlutterWebSdk' is not required, skipping update.
[        ] Artifact Instance of 'FlutterSdk' is not required, skipping update.
[        ] Artifact Instance of 'WindowsEngineArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'MacOSEngineArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'LinuxEngineArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'LinuxFuchsiaSDKArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'MacOSFuchsiaSDKArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'FlutterRunnerSDKArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'FlutterRunnerDebugSymbols' is not required, skipping update.
[        ] Artifact Instance of 'IosUsbArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'IosUsbArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'IosUsbArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'IosUsbArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'IosUsbArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'FontSubsetArtifacts' is not required, skipping update.
[        ] Artifact Instance of 'PubDependencies' is not required, skipping update.
[  +41 ms] executing: /Users/janosch/flutter/flutter_stable/bin/cache/dart-sdk/bin/pub run build_runner build --verbose
[INFO] Generating build script...
[INFO] Generating build script completed, took 395ms

[INFO] BuildDefinition:Initializing inputs
[INFO] BuildDefinition:Reading cached asset graph...
[INFO] BuildDefinition:Reading cached asset graph completed, took 83ms

[INFO] BuildDefinition:Checking for updates since last build...
[INFO] BuildDefinition:Checking for updates since last build completed, took 457ms

[INFO] Build:Running build...
[FINE] artemis:artemis on lib/$lib$:-> Enum
[FINE] artemis:artemis on lib/$lib$:<- Generated enum ArticleSortKeys.
[FINE] artemis:artemis on lib/$lib$:-> Enum
[FINE] artemis:artemis on lib/$lib$:<- Generated enum BlogSortKeys.
[FINE] artemis:artemis on lib/$lib$:-> Enum
[FINE] artemis:artemis on lib/$lib$:<- Generated enum CardBrand.
[FINE] artemis:artemis on lib/$lib$:-> Enum
[FINE] artemis:artemis on lib/$lib$:<- Generated enum CheckoutErrorCode.
[FINE] artemis:artemis on lib/$lib$:-> Enum
[FINE] artemis:artemis on lib/$lib$:<- Generated enum CollectionSortKeys.
[FINE] artemis:artemis on lib/$lib$:-> Enum
[FINE] artemis:artemis on lib/$lib$:<- Generated enum CountryCode.
[FINE] artemis:artemis on lib/$lib$:-> Enum
[FINE] artemis:artemis on lib/$lib$:<- Generated enum CropRegion.
[FINE] artemis:artemis on lib/$lib$:-> Enum
[FINE] artemis:artemis on lib/$lib$:<- Generated enum CurrencyCode.
[FINE] artemis:artemis on lib/$lib$:-> Enum
[FINE] artemis:artemis on lib/$lib$:<- Generated enum CustomerErrorCode.
[FINE] artemis:artemis on lib/$lib$:-> Enum
[FINE] artemis:artemis on lib/$lib$:<- Generated enum DigitalWallet.
[FINE] artemis:artemis on lib/$lib$:-> Enum
[FINE] artemis:artemis on lib/$lib$:<- Generated enum DiscountApplicationAllocationMethod.
[FINE] artemis:artemis on lib/$lib$:-> Enum
[FINE] artemis:artemis on lib/$lib$:<- Generated enum DiscountApplicationTargetSelection.
[FINE] artemis:artemis on lib/$lib$:-> Enum
[FINE] artemis:artemis on lib/$lib$:<- Generated enum DiscountApplicationTargetType.
[FINE] artemis:artemis on lib/$lib$:-> Enum
[FINE] artemis:artemis on lib/$lib$:<- Generated enum ImageContentType.
[FINE] artemis:artemis on lib/$lib$:-> Enum
[FINE] artemis:artemis on lib/$lib$:<- Generated enum MediaContentType.
[FINE] artemis:artemis on lib/$lib$:-> Enum
[FINE] artemis:artemis on lib/$lib$:<- Generated enum MetafieldValueType.
[FINE] artemis:artemis on lib/$lib$:-> Enum
[FINE] artemis:artemis on lib/$lib$:<- Generated enum OrderCancelReason.
[FINE] artemis:artemis on lib/$lib$:-> Enum
[FINE] artemis:artemis on lib/$lib$:<- Generated enum OrderFinancialStatus.
[FINE] artemis:artemis on lib/$lib$:-> Enum
[FINE] artemis:artemis on lib/$lib$:<- Generated enum OrderFulfillmentStatus.
[FINE] artemis:artemis on lib/$lib$:-> Enum
[FINE] artemis:artemis on lib/$lib$:<- Generated enum OrderSortKeys.
[FINE] artemis:artemis on lib/$lib$:-> Enum
[FINE] artemis:artemis on lib/$lib$:<- Generated enum PageSortKeys.
[FINE] artemis:artemis on lib/$lib$:-> Enum
[FINE] artemis:artemis on lib/$lib$:<- Generated enum PaymentTokenType.
[FINE] artemis:artemis on lib/$lib$:-> Enum
[FINE] artemis:artemis on lib/$lib$:<- Generated enum ProductCollectionSortKeys.
[FINE] artemis:artemis on lib/$lib$:-> Enum
[FINE] artemis:artemis on lib/$lib$:<- Generated enum ProductImageSortKeys.
[FINE] artemis:artemis on lib/$lib$:-> Enum
[FINE] artemis:artemis on lib/$lib$:<- Generated enum ProductSortKeys.
[FINE] artemis:artemis on lib/$lib$:-> Enum
[FINE] artemis:artemis on lib/$lib$:<- Generated enum ProductVariantSortKeys.
[FINE] artemis:artemis on lib/$lib$:-> Enum
[FINE] artemis:artemis on lib/$lib$:<- Generated enum TransactionKind.
[FINE] artemis:artemis on lib/$lib$:-> Enum
[FINE] artemis:artemis on lib/$lib$:<- Generated enum TransactionStatus.
[FINE] artemis:artemis on lib/$lib$:-> Enum
[FINE] artemis:artemis on lib/$lib$:<- Generated enum UnitPriceMeasurementMeasuredType.
[FINE] artemis:artemis on lib/$lib$:-> Enum
[FINE] artemis:artemis on lib/$lib$:<- Generated enum UnitPriceMeasurementMeasuredUnit.
[FINE] artemis:artemis on lib/$lib$:-> Enum
[FINE] artemis:artemis on lib/$lib$:<- Generated enum WeightUnit.
[FINE] artemis:artemis on lib/$lib$:-> Input class
[FINE] artemis:artemis on lib/$lib$:┌ [][AttributeInput]
[FINE] artemis:artemis on lib/$lib$:|   [][AttributeInput][ClassName(name:r'String') ClassPropertyName(name:r'key')] -> String
[FINE] artemis:artemis on lib/$lib$:|   [][AttributeInput][ClassName(name:r'String') ClassPropertyName(name:r'value')] -> String
[FINE] artemis:artemis on lib/$lib$:└ [][AttributeInput]
[FINE] artemis:artemis on lib/$lib$:<- Generated input class AttributeInput.
[FINE] artemis:artemis on lib/$lib$:-> Input class
[FINE] artemis:artemis on lib/$lib$:┌ [][CheckoutAttributesUpdateInput]
[FINE] artemis:artemis on lib/$lib$:|   [][CheckoutAttributesUpdateInput][ClassName(name:r'Boolean') ClassPropertyName(name:r'allowPartialAddresses')] -> bool?
[FINE] artemis:artemis on lib/$lib$:|   [][CheckoutAttributesUpdateInput][ClassName(name:r'AttributeInput') ClassPropertyName(name:r'customAttributes')] -> List<AttributeInput>?
[FINE] artemis:artemis on lib/$lib$:|   [][CheckoutAttributesUpdateInput][ClassName(name:r'String') ClassPropertyName(name:r'note')] -> String?
[FINE] artemis:artemis on lib/$lib$:└ [][CheckoutAttributesUpdateInput]
[FINE] artemis:artemis on lib/$lib$:<- Generated input class CheckoutAttributesUpdateInput.
[FINE] artemis:artemis on lib/$lib$:-> Input class
[FINE] artemis:artemis on lib/$lib$:┌ [][CheckoutAttributesUpdateV2Input]
[FINE] artemis:artemis on lib/$lib$:|   [][CheckoutAttributesUpdateV2Input][ClassName(name:r'Boolean') ClassPropertyName(name:r'allowPartialAddresses')] -> bool?
[FINE] artemis:artemis on lib/$lib$:|   [][CheckoutAttributesUpdateV2Input][ClassName(name:r'AttributeInput') ClassPropertyName(name:r'customAttributes')] -> List<AttributeInput>?
[FINE] artemis:artemis on lib/$lib$:|   [][CheckoutAttributesUpdateV2Input][ClassName(name:r'String') ClassPropertyName(name:r'note')] -> String?
[FINE] artemis:artemis on lib/$lib$:└ [][CheckoutAttributesUpdateV2Input]
[FINE] artemis:artemis on lib/$lib$:<- Generated input class CheckoutAttributesUpdateV2Input.
[FINE] artemis:artemis on lib/$lib$:-> Input class
[FINE] artemis:artemis on lib/$lib$:┌ [][CheckoutCreateInput]
[FINE] artemis:artemis on lib/$lib$:|   [][CheckoutCreateInput][ClassName(name:r'Boolean') ClassPropertyName(name:r'allowPartialAddresses')] -> bool?
[FINE] artemis:artemis on lib/$lib$:|   [][CheckoutCreateInput][ClassName(name:r'AttributeInput') ClassPropertyName(name:r'customAttributes')] -> List<AttributeInput>?
[FINE] artemis:artemis on lib/$lib$:|   [][CheckoutCreateInput][ClassName(name:r'String') ClassPropertyName(name:r'email')] -> String?
[FINE] artemis:artemis on lib/$lib$:|   [][CheckoutCreateInput][ClassName(name:r'CheckoutLineItemInput') ClassPropertyName(name:r'lineItems')] -> List<CheckoutLineItemInput>?
[FINE] artemis:artemis on lib/$lib$:|   [][CheckoutCreateInput][ClassName(name:r'String') ClassPropertyName(name:r'note')] -> String?
[FINE] artemis:artemis on lib/$lib$:|   [][CheckoutCreateInput][ClassName(name:r'CurrencyCode') ClassPropertyName(name:r'presentmentCurrencyCode')] -> CurrencyCode?
[FINE] artemis:artemis on lib/$lib$:|   [][CheckoutCreateInput][ClassName(name:r'MailingAddressInput') ClassPropertyName(name:r'shippingAddress')] -> MailingAddressInput?
[FINE] artemis:artemis on lib/$lib$:└ [][CheckoutCreateInput]
[FINE] artemis:artemis on lib/$lib$:<- Generated input class CheckoutCreateInput.
[FINE] artemis:artemis on lib/$lib$:-> Input class
[FINE] artemis:artemis on lib/$lib$:┌ [][CheckoutLineItemInput]
[FINE] artemis:artemis on lib/$lib$:|   [][CheckoutLineItemInput][ClassName(name:r'AttributeInput') ClassPropertyName(name:r'customAttributes')] -> List<AttributeInput>?
[FINE] artemis:artemis on lib/$lib$:|   [][CheckoutLineItemInput][ClassName(name:r'Int') ClassPropertyName(name:r'quantity')] -> int
[FINE] artemis:artemis on lib/$lib$:|   [][CheckoutLineItemInput][ClassName(name:r'ID') ClassPropertyName(name:r'variantId')] -> String
[FINE] artemis:artemis on lib/$lib$:└ [][CheckoutLineItemInput]
[FINE] artemis:artemis on lib/$lib$:<- Generated input class CheckoutLineItemInput.
[FINE] artemis:artemis on lib/$lib$:-> Input class
[FINE] artemis:artemis on lib/$lib$:┌ [][CheckoutLineItemUpdateInput]
[FINE] artemis:artemis on lib/$lib$:|   [][CheckoutLineItemUpdateInput][ClassName(name:r'AttributeInput') ClassPropertyName(name:r'customAttributes')] -> List<AttributeInput>?
[FINE] artemis:artemis on lib/$lib$:|   [][CheckoutLineItemUpdateInput][ClassName(name:r'ID') ClassPropertyName(name:r'id')] -> String?
[FINE] artemis:artemis on lib/$lib$:|   [][CheckoutLineItemUpdateInput][ClassName(name:r'Int') ClassPropertyName(name:r'quantity')] -> int?
[FINE] artemis:artemis on lib/$lib$:|   [][CheckoutLineItemUpdateInput][ClassName(name:r'ID') ClassPropertyName(name:r'variantId')] -> String?
[FINE] artemis:artemis on lib/$lib$:└ [][CheckoutLineItemUpdateInput]
[FINE] artemis:artemis on lib/$lib$:<- Generated input class CheckoutLineItemUpdateInput.
[FINE] artemis:artemis on lib/$lib$:-> Input class
[FINE] artemis:artemis on lib/$lib$:┌ [][CreditCardPaymentInput]
[FINE] artemis:artemis on lib/$lib$:|   [][CreditCardPaymentInput][ClassName(name:r'Money') ClassPropertyName(name:r'amount')] -> double
[FINE] artemis:artemis on lib/$lib$:|   [][CreditCardPaymentInput][ClassName(name:r'MailingAddressInput') ClassPropertyName(name:r'billingAddress')] -> MailingAddressInput
[FINE] artemis:artemis on lib/$lib$:|   [][CreditCardPaymentInput][ClassName(name:r'String') ClassPropertyName(name:r'idempotencyKey')] -> String
[FINE] artemis:artemis on lib/$lib$:|   [][CreditCardPaymentInput][ClassName(name:r'Boolean') ClassPropertyName(name:r'test')] -> bool?
[FINE] artemis:artemis on lib/$lib$:|   [][CreditCardPaymentInput][ClassName(name:r'String') ClassPropertyName(name:r'vaultId')] -> String
[FINE] artemis:artemis on lib/$lib$:└ [][CreditCardPaymentInput]
[FINE] artemis:artemis on lib/$lib$:<- Generated input class CreditCardPaymentInput.
[FINE] artemis:artemis on lib/$lib$:-> Input class
[FINE] artemis:artemis on lib/$lib$:┌ [][CreditCardPaymentInputV2]
[FINE] artemis:artemis on lib/$lib$:|   [][CreditCardPaymentInputV2][ClassName(name:r'MailingAddressInput') ClassPropertyName(name:r'billingAddress')] -> MailingAddressInput
[FINE] artemis:artemis on lib/$lib$:|   [][CreditCardPaymentInputV2][ClassName(name:r'String') ClassPropertyName(name:r'idempotencyKey')] -> String
[FINE] artemis:artemis on lib/$lib$:|   [][CreditCardPaymentInputV2][ClassName(name:r'MoneyInput') ClassPropertyName(name:r'paymentAmount')] -> MoneyInput
[FINE] artemis:artemis on lib/$lib$:|   [][CreditCardPaymentInputV2][ClassName(name:r'Boolean') ClassPropertyName(name:r'test')] -> bool?
[FINE] artemis:artemis on lib/$lib$:|   [][CreditCardPaymentInputV2][ClassName(name:r'String') ClassPropertyName(name:r'vaultId')] -> String
[FINE] artemis:artemis on lib/$lib$:└ [][CreditCardPaymentInputV2]
[FINE] artemis:artemis on lib/$lib$:<- Generated input class CreditCardPaymentInputV2.
[FINE] artemis:artemis on lib/$lib$:-> Input class
[FINE] artemis:artemis on lib/$lib$:┌ [][CustomerAccessTokenCreateInput]
[FINE] artemis:artemis on lib/$lib$:|   [][CustomerAccessTokenCreateInput][ClassName(name:r'String') ClassPropertyName(name:r'email')] -> String
[FINE] artemis:artemis on lib/$lib$:|   [][CustomerAccessTokenCreateInput][ClassName(name:r'String') ClassPropertyName(name:r'password')] -> String
[FINE] artemis:artemis on lib/$lib$:└ [][CustomerAccessTokenCreateInput]
[FINE] artemis:artemis on lib/$lib$:<- Generated input class CustomerAccessTokenCreateInput.
[FINE] artemis:artemis on lib/$lib$:-> Input class
[FINE] artemis:artemis on lib/$lib$:┌ [][CustomerActivateInput]
[FINE] artemis:artemis on lib/$lib$:|   [][CustomerActivateInput][ClassName(name:r'String') ClassPropertyName(name:r'activationToken')] -> String
[FINE] artemis:artemis on lib/$lib$:|   [][CustomerActivateInput][ClassName(name:r'String') ClassPropertyName(name:r'password')] -> String
[FINE] artemis:artemis on lib/$lib$:└ [][CustomerActivateInput]
[FINE] artemis:artemis on lib/$lib$:<- Generated input class CustomerActivateInput.
[FINE] artemis:artemis on lib/$lib$:-> Input class
[FINE] artemis:artemis on lib/$lib$:┌ [][CustomerCreateInput]
[FINE] artemis:artemis on lib/$lib$:|   [][CustomerCreateInput][ClassName(name:r'Boolean') ClassPropertyName(name:r'acceptsMarketing')] -> bool?
[FINE] artemis:artemis on lib/$lib$:|   [][CustomerCreateInput][ClassName(name:r'String') ClassPropertyName(name:r'email')] -> String
[FINE] artemis:artemis on lib/$lib$:|   [][CustomerCreateInput][ClassName(name:r'String') ClassPropertyName(name:r'firstName')] -> String?
[FINE] artemis:artemis on lib/$lib$:|   [][CustomerCreateInput][ClassName(name:r'String') ClassPropertyName(name:r'lastName')] -> String?
[FINE] artemis:artemis on lib/$lib$:|   [][CustomerCreateInput][ClassName(name:r'String') ClassPropertyName(name:r'password')] -> String
[FINE] artemis:artemis on lib/$lib$:|   [][CustomerCreateInput][ClassName(name:r'String') ClassPropertyName(name:r'phone')] -> String?
[FINE] artemis:artemis on lib/$lib$:└ [][CustomerCreateInput]
[FINE] artemis:artemis on lib/$lib$:<- Generated input class CustomerCreateInput.
[FINE] artemis:artemis on lib/$lib$:-> Input class
[FINE] artemis:artemis on lib/$lib$:┌ [][CustomerResetInput]
[FINE] artemis:artemis on lib/$lib$:|   [][CustomerResetInput][ClassName(name:r'String') ClassPropertyName(name:r'password')] -> String
[FINE] artemis:artemis on lib/$lib$:|   [][CustomerResetInput][ClassName(name:r'String') ClassPropertyName(name:r'resetToken')] -> String
[FINE] artemis:artemis on lib/$lib$:└ [][CustomerResetInput]
[FINE] artemis:artemis on lib/$lib$:<- Generated input class CustomerResetInput.
[FINE] artemis:artemis on lib/$lib$:-> Input class
[FINE] artemis:artemis on lib/$lib$:┌ [][CustomerUpdateInput]
[FINE] artemis:artemis on lib/$lib$:|   [][CustomerUpdateInput][ClassName(name:r'Boolean') ClassPropertyName(name:r'acceptsMarketing')] -> bool?
[FINE] artemis:artemis on lib/$lib$:|   [][CustomerUpdateInput][ClassName(name:r'String') ClassPropertyName(name:r'email')] -> String?
[FINE] artemis:artemis on lib/$lib$:|   [][CustomerUpdateInput][ClassName(name:r'String') ClassPropertyName(name:r'firstName')] -> String?
[FINE] artemis:artemis on lib/$lib$:|   [][CustomerUpdateInput][ClassName(name:r'String') ClassPropertyName(name:r'lastName')] -> String?
[FINE] artemis:artemis on lib/$lib$:|   [][CustomerUpdateInput][ClassName(name:r'String') ClassPropertyName(name:r'password')] -> String?
[FINE] artemis:artemis on lib/$lib$:|   [][CustomerUpdateInput][ClassName(name:r'String') ClassPropertyName(name:r'phone')] -> String?
[FINE] artemis:artemis on lib/$lib$:└ [][CustomerUpdateInput]
[FINE] artemis:artemis on lib/$lib$:<- Generated input class CustomerUpdateInput.
[FINE] artemis:artemis on lib/$lib$:-> Input class
[FINE] artemis:artemis on lib/$lib$:┌ [][MailingAddressInput]
[FINE] artemis:artemis on lib/$lib$:|   [][MailingAddressInput][ClassName(name:r'String') ClassPropertyName(name:r'address1')] -> String?
[FINE] artemis:artemis on lib/$lib$:|   [][MailingAddressInput][ClassName(name:r'String') ClassPropertyName(name:r'address2')] -> String?
[FINE] artemis:artemis on lib/$lib$:|   [][MailingAddressInput][ClassName(name:r'String') ClassPropertyName(name:r'city')] -> String?
[FINE] artemis:artemis on lib/$lib$:|   [][MailingAddressInput][ClassName(name:r'String') ClassPropertyName(name:r'company')] -> String?
[FINE] artemis:artemis on lib/$lib$:|   [][MailingAddressInput][ClassName(name:r'String') ClassPropertyName(name:r'country')] -> String?
[FINE] artemis:artemis on lib/$lib$:|   [][MailingAddressInput][ClassName(name:r'String') ClassPropertyName(name:r'firstName')] -> String?
[FINE] artemis:artemis on lib/$lib$:|   [][MailingAddressInput][ClassName(name:r'String') ClassPropertyName(name:r'lastName')] -> String?
[FINE] artemis:artemis on lib/$lib$:|   [][MailingAddressInput][ClassName(name:r'String') ClassPropertyName(name:r'phone')] -> String?
[FINE] artemis:artemis on lib/$lib$:|   [][MailingAddressInput][ClassName(name:r'String') ClassPropertyName(name:r'province')] -> String?
[FINE] artemis:artemis on lib/$lib$:|   [][MailingAddressInput][ClassName(name:r'String') ClassPropertyName(name:r'zip')] -> String?
[FINE] artemis:artemis on lib/$lib$:└ [][MailingAddressInput]
[FINE] artemis:artemis on lib/$lib$:<- Generated input class MailingAddressInput.
[FINE] artemis:artemis on lib/$lib$:-> Input class
[FINE] artemis:artemis on lib/$lib$:┌ [][MoneyInput]
[FINE] artemis:artemis on lib/$lib$:|   [][MoneyInput][ClassName(name:r'Decimal') ClassPropertyName(name:r'amount')] -> double
[FINE] artemis:artemis on lib/$lib$:|   [][MoneyInput][ClassName(name:r'CurrencyCode') ClassPropertyName(name:r'currencyCode')] -> CurrencyCode
[FINE] artemis:artemis on lib/$lib$:└ [][MoneyInput]
[FINE] artemis:artemis on lib/$lib$:<- Generated input class MoneyInput.
[FINE] artemis:artemis on lib/$lib$:-> Input class
[FINE] artemis:artemis on lib/$lib$:┌ [][SelectedOptionInput]
[FINE] artemis:artemis on lib/$lib$:|   [][SelectedOptionInput][ClassName(name:r'String') ClassPropertyName(name:r'name')] -> String
[FINE] artemis:artemis on lib/$lib$:|   [][SelectedOptionInput][ClassName(name:r'String') ClassPropertyName(name:r'value')] -> String
[FINE] artemis:artemis on lib/$lib$:└ [][SelectedOptionInput]
[FINE] artemis:artemis on lib/$lib$:<- Generated input class SelectedOptionInput.
[FINE] artemis:artemis on lib/$lib$:-> Input class
[FINE] artemis:artemis on lib/$lib$:┌ [][TokenizedPaymentInput]
[FINE] artemis:artemis on lib/$lib$:|   [][TokenizedPaymentInput][ClassName(name:r'Money') ClassPropertyName(name:r'amount')] -> double
[FINE] artemis:artemis on lib/$lib$:|   [][TokenizedPaymentInput][ClassName(name:r'MailingAddressInput') ClassPropertyName(name:r'billingAddress')] -> MailingAddressInput
[FINE] artemis:artemis on lib/$lib$:|   [][TokenizedPaymentInput][ClassName(name:r'String') ClassPropertyName(name:r'idempotencyKey')] -> String
[FINE] artemis:artemis on lib/$lib$:|   [][TokenizedPaymentInput][ClassName(name:r'String') ClassPropertyName(name:r'identifier')] -> String?
[FINE] artemis:artemis on lib/$lib$:|   [][TokenizedPaymentInput][ClassName(name:r'String') ClassPropertyName(name:r'paymentData')] -> String
[FINE] artemis:artemis on lib/$lib$:|   [][TokenizedPaymentInput][ClassName(name:r'Boolean') ClassPropertyName(name:r'test')] -> bool?
[FINE] artemis:artemis on lib/$lib$:|   [][TokenizedPaymentInput][ClassName(name:r'String') ClassPropertyName(name:r'type')] -> String
[FINE] artemis:artemis on lib/$lib$:└ [][TokenizedPaymentInput]
[FINE] artemis:artemis on lib/$lib$:<- Generated input class TokenizedPaymentInput.
[FINE] artemis:artemis on lib/$lib$:-> Input class
[FINE] artemis:artemis on lib/$lib$:┌ [][TokenizedPaymentInputV2]
[FINE] artemis:artemis on lib/$lib$:|   [][TokenizedPaymentInputV2][ClassName(name:r'MailingAddressInput') ClassPropertyName(name:r'billingAddress')] -> MailingAddressInput
[FINE] artemis:artemis on lib/$lib$:|   [][TokenizedPaymentInputV2][ClassName(name:r'String') ClassPropertyName(name:r'idempotencyKey')] -> String
[FINE] artemis:artemis on lib/$lib$:|   [][TokenizedPaymentInputV2][ClassName(name:r'String') ClassPropertyName(name:r'identifier')] -> String?
[FINE] artemis:artemis on lib/$lib$:|   [][TokenizedPaymentInputV2][ClassName(name:r'MoneyInput') ClassPropertyName(name:r'paymentAmount')] -> MoneyInput
[FINE] artemis:artemis on lib/$lib$:|   [][TokenizedPaymentInputV2][ClassName(name:r'String') ClassPropertyName(name:r'paymentData')] -> String
[FINE] artemis:artemis on lib/$lib$:|   [][TokenizedPaymentInputV2][ClassName(name:r'Boolean') ClassPropertyName(name:r'test')] -> bool?
[FINE] artemis:artemis on lib/$lib$:|   [][TokenizedPaymentInputV2][ClassName(name:r'String') ClassPropertyName(name:r'type')] -> String
[FINE] artemis:artemis on lib/$lib$:└ [][TokenizedPaymentInputV2]
[FINE] artemis:artemis on lib/$lib$:<- Generated input class TokenizedPaymentInputV2.
[FINE] artemis:artemis on lib/$lib$:-> Input class
[FINE] artemis:artemis on lib/$lib$:┌ [][TokenizedPaymentInputV3]
[FINE] artemis:artemis on lib/$lib$:|   [][TokenizedPaymentInputV3][ClassName(name:r'MailingAddressInput') ClassPropertyName(name:r'billingAddress')] -> MailingAddressInput
[FINE] artemis:artemis on lib/$lib$:|   [][TokenizedPaymentInputV3][ClassName(name:r'String') ClassPropertyName(name:r'idempotencyKey')] -> String
[FINE] artemis:artemis on lib/$lib$:|   [][TokenizedPaymentInputV3][ClassName(name:r'String') ClassPropertyName(name:r'identifier')] -> String?
[FINE] artemis:artemis on lib/$lib$:|   [][TokenizedPaymentInputV3][ClassName(name:r'MoneyInput') ClassPropertyName(name:r'paymentAmount')] -> MoneyInput
[FINE] artemis:artemis on lib/$lib$:|   [][TokenizedPaymentInputV3][ClassName(name:r'String') ClassPropertyName(name:r'paymentData')] -> String
[FINE] artemis:artemis on lib/$lib$:|   [][TokenizedPaymentInputV3][ClassName(name:r'Boolean') ClassPropertyName(name:r'test')] -> bool?
[FINE] artemis:artemis on lib/$lib$:|   [][TokenizedPaymentInputV3][ClassName(name:r'PaymentTokenType') ClassPropertyName(name:r'type')] -> PaymentTokenType
[FINE] artemis:artemis on lib/$lib$:└ [][TokenizedPaymentInputV3]
[FINE] artemis:artemis on lib/$lib$:<- Generated input class TokenizedPaymentInputV3.
[FINE] artemis:artemis on lib/$lib$:-> Class
[FINE] artemis:artemis on lib/$lib$:┌ [TypeName(name:r'collections'), TypeName(name:r'QueryRoot')][QueryRoot][null null] ()
[FINE] artemis:artemis on lib/$lib$:|   [TypeName(name:r'collections'), TypeName(name:r'QueryRoot')][QueryRoot][ClassName(name:r'CollectionConnection') ClassPropertyName(name:r'collections')] -> Collections$QueryRoot$CollectionConnection
[FINE] artemis:artemis on lib/$lib$:|   -> Class
[FINE] artemis:artemis on lib/$lib$:|   ┌ [TypeName(name:r'collections'), TypeName(name:r'QueryRoot'), ClassName(name:r'CollectionConnection')][CollectionConnection][null null] ()
[FINE] artemis:artemis on lib/$lib$:|   |   [TypeName(name:r'collections'), TypeName(name:r'QueryRoot'), ClassName(name:r'CollectionConnection')][CollectionConnection][ClassName(name:r'CollectionEdge') ClassPropertyName(name:r'edges')] -> List<Collections$QueryRoot$CollectionConnection$CollectionEdge>
[FINE] artemis:artemis on lib/$lib$:|   |   -> Class
[FINE] artemis:artemis on lib/$lib$:|   |   ┌ [TypeName(name:r'collections'), TypeName(name:r'QueryRoot'), ClassName(name:r'CollectionConnection'), ClassName(name:r'CollectionEdge')][CollectionEdge][null null] ()
[FINE] artemis:artemis on lib/$lib$:|   |   |   [TypeName(name:r'collections'), TypeName(name:r'QueryRoot'), ClassName(name:r'CollectionConnection'), ClassName(name:r'CollectionEdge')][CollectionEdge][ClassName(name:r'String') ClassPropertyName(name:r'cursor')] -> String
[FINE] artemis:artemis on lib/$lib$:|   |   |   [TypeName(name:r'collections'), TypeName(name:r'QueryRoot'), ClassName(name:r'CollectionConnection'), ClassName(name:r'CollectionEdge')][CollectionEdge][ClassName(name:r'Collection') ClassPropertyName(name:r'node')] -> Collections$QueryRoot$CollectionConnection$CollectionEdge$Collection
[FINE] artemis:artemis on lib/$lib$:|   |   |   -> Class
[FINE] artemis:artemis on lib/$lib$:|   |   |   ┌ [TypeName(name:r'collections'), TypeName(name:r'QueryRoot'), ClassName(name:r'CollectionConnection'), ClassName(name:r'CollectionEdge'), ClassName(name:r'Collection')][Collection][null null] ()
[FINE] artemis:artemis on lib/$lib$:|   |   |   |   [TypeName(name:r'collections'), TypeName(name:r'QueryRoot'), ClassName(name:r'CollectionConnection'), ClassName(name:r'CollectionEdge'), ClassName(name:r'Collection')][Collection][ClassName(name:r'ID') ClassPropertyName(name:r'id')] -> String
[FINE] artemis:artemis on lib/$lib$:|   |   |   |   [TypeName(name:r'collections'), TypeName(name:r'QueryRoot'), ClassName(name:r'CollectionConnection'), ClassName(name:r'CollectionEdge'), ClassName(name:r'Collection')][Collection][ClassName(name:r'String') ClassPropertyName(name:r'title')] -> String
[FINE] artemis:artemis on lib/$lib$:|   |   |   |   [TypeName(name:r'collections'), TypeName(name:r'QueryRoot'), ClassName(name:r'CollectionConnection'), ClassName(name:r'CollectionEdge'), ClassName(name:r'Collection')][Collection][ClassName(name:r'String') ClassPropertyName(name:r'handle')] -> String
[FINE] artemis:artemis on lib/$lib$:|   |   |   |   [TypeName(name:r'collections'), TypeName(name:r'QueryRoot'), ClassName(name:r'CollectionConnection'), ClassName(name:r'CollectionEdge'), ClassName(name:r'Collection')][Collection][ClassName(name:r'String') ClassPropertyName(name:r'description')] -> String
[FINE] artemis:artemis on lib/$lib$:|   |   |   └ [TypeName(name:r'collections'), TypeName(name:r'QueryRoot'), ClassName(name:r'CollectionConnection'), ClassName(name:r'CollectionEdge'), ClassName(name:r'Collection')][Collection][null null] ()
[FINE] artemis:artemis on lib/$lib$:|   |   |   <- Generated class Collections$QueryRoot$CollectionConnection$CollectionEdge$Collection.
[FINE] artemis:artemis on lib/$lib$:|   |   └ [TypeName(name:r'collections'), TypeName(name:r'QueryRoot'), ClassName(name:r'CollectionConnection'), ClassName(name:r'CollectionEdge')][CollectionEdge][null null] ()
[FINE] artemis:artemis on lib/$lib$:|   |   <- Generated class Collections$QueryRoot$CollectionConnection$CollectionEdge.
[FINE] artemis:artemis on lib/$lib$:|   └ [TypeName(name:r'collections'), TypeName(name:r'QueryRoot'), ClassName(name:r'CollectionConnection')][CollectionConnection][null null] ()
[FINE] artemis:artemis on lib/$lib$:|   <- Generated class Collections$QueryRoot$CollectionConnection.
[FINE] artemis:artemis on lib/$lib$:└ [TypeName(name:r'collections'), TypeName(name:r'QueryRoot')][QueryRoot][null null] ()
[FINE] artemis:artemis on lib/$lib$:<- Generated class Collections$QueryRoot.
[FINE] artemis:artemis on lib/$lib$:-> Class
[FINE] artemis:artemis on lib/$lib$:┌ [TypeName(name:r'checkoutById'), TypeName(name:r'QueryRoot')][QueryRoot][null null] ()
[FINE] artemis:artemis on lib/$lib$:|   [TypeName(name:r'checkoutById'), TypeName(name:r'QueryRoot')][QueryRoot][ClassName(name:r'Node') ClassPropertyName(name:r'node')] -> CheckoutById$QueryRoot$Node?
[FINE] artemis:artemis on lib/$lib$:|   -> Class
[FINE] artemis:artemis on lib/$lib$:|   ┌ [TypeName(name:r'checkoutById'), TypeName(name:r'QueryRoot'), ClassName(name:r'Node')][Node][null null] ()
[FINE] artemis:artemis on lib/$lib$:|   |   [TypeName(name:r'checkoutById'), TypeName(name:r'QueryRoot'), ClassName(name:r'Node')]: ... on Checkout
[FINE] artemis:artemis on lib/$lib$:|   |   -> Class
[FINE] artemis:artemis on lib/$lib$:|   |   ┌ [TypeName(name:r'checkoutById'), TypeName(name:r'QueryRoot'), ClassName(name:r'Node'), ClassName(name:r'Checkout')][Checkout][null null] ()
[FINE] artemis:artemis on lib/$lib$:|   |   |   [TypeName(name:r'checkoutById'), TypeName(name:r'QueryRoot'), ClassName(name:r'Node'), ClassName(name:r'Checkout')][Checkout][ClassName(name:r'ID') ClassPropertyName(name:r'id')] -> String
[FINE] artemis:artemis on lib/$lib$:|   |   |   [TypeName(name:r'checkoutById'), TypeName(name:r'QueryRoot'), ClassName(name:r'Node'), ClassName(name:r'Checkout')][Checkout][ClassName(name:r'URL') ClassPropertyName(name:r'webUrl')] -> String
[FINE] artemis:artemis on lib/$lib$:|   |   |   [TypeName(name:r'checkoutById'), TypeName(name:r'QueryRoot'), ClassName(name:r'Node'), ClassName(name:r'Checkout')][Checkout][ClassName(name:r'MoneyV2') ClassPropertyName(name:r'totalPriceV2')] -> CheckoutById$QueryRoot$Node$Checkout$MoneyV2
[FINE] artemis:artemis on lib/$lib$:|   |   |   -> Class
[FINE] artemis:artemis on lib/$lib$:|   |   |   ┌ [TypeName(name:r'checkoutById'), TypeName(name:r'QueryRoot'), ClassName(name:r'Node'), ClassName(name:r'Checkout'), ClassName(name:r'MoneyV2')][MoneyV2][null null] ()
[FINE] artemis:artemis on lib/$lib$:|   |   |   |   [TypeName(name:r'checkoutById'), TypeName(name:r'QueryRoot'), ClassName(name:r'Node'), ClassName(name:r'Checkout'), ClassName(name:r'MoneyV2')][MoneyV2][ClassName(name:r'Decimal') ClassPropertyName(name:r'amount')] -> double
[FINE] artemis:artemis on lib/$lib$:|   |   |   |   [TypeName(name:r'checkoutById'), TypeName(name:r'QueryRoot'), ClassName(name:r'Node'), ClassName(name:r'Checkout'), ClassName(name:r'MoneyV2')][MoneyV2][ClassName(name:r'CurrencyCode') ClassPropertyName(name:r'currencyCode')] -> CurrencyCode
[FINE] artemis:artemis on lib/$lib$:|   |   |   └ [TypeName(name:r'checkoutById'), TypeName(name:r'QueryRoot'), ClassName(name:r'Node'), ClassName(name:r'Checkout'), ClassName(name:r'MoneyV2')][MoneyV2][null null] ()
[FINE] artemis:artemis on lib/$lib$:|   |   |   <- Generated class CheckoutById$QueryRoot$Node$Checkout$MoneyV2.

[FINE] artemis:artemis on lib/$lib$:|   |   |   |   |   |   |   └ [TypeName(name:r'checkoutById'), TypeName(name:r'QueryRoot'), ClassName(name:r'Node'), ClassName(name:r'Checkout'), ClassName(name:r'DiscountApplicationConnection'), ClassName(name:r'DiscountApplicationEdge'), ClassName(name:r'DiscountApplication'), ClassName(name:r'DiscountCodeApplication'), ClassName(name:r'PricingValue')][PricingValue][null null] ()
[FINE] artemis:artemis on lib/$lib$:|   |   |   |   |   |   |   <- Generated class CheckoutById$QueryRoot$Node$Checkout$DiscountApplicationConnection$DiscountApplicationEdge$DiscountApplication$DiscountCodeApplication$PricingValue.
[FINE] artemis:artemis on lib/$lib$:|   |   |   |   |   |   └ [TypeName(name:r'checkoutById'), TypeName(name:r'QueryRoot'), ClassName(name:r'Node'), ClassName(name:r'Checkout'), ClassName(name:r'DiscountApplicationConnection'), ClassName(name:r'DiscountApplicationEdge'), ClassName(name:r'DiscountApplication'), ClassName(name:r'DiscountCodeApplication')][DiscountCodeApplication][null null] ()
[FINE] artemis:artemis on lib/$lib$:|   |   |   |   |   |   <- Generated class CheckoutById$QueryRoot$Node$Checkout$DiscountApplicationConnection$DiscountApplicationEdge$DiscountApplication$DiscountCodeApplication.
[FINE] artemis:artemis on lib/$lib$:|   |   |   |   |   └ [TypeName(name:r'checkoutById'), TypeName(name:r'QueryRoot'), ClassName(name:r'Node'), ClassName(name:r'Checkout'), ClassName(name:r'DiscountApplicationConnection'), ClassName(name:r'DiscountApplicationEdge'), ClassName(name:r'DiscountApplication')][DiscountApplication][null null] ()
[FINE] artemis:artemis on lib/$lib$:|   |   |   |   |   <- Generated class CheckoutById$QueryRoot$Node$Checkout$DiscountApplicationConnection$DiscountApplicationEdge$DiscountApplication.
[FINE] artemis:artemis on lib/$lib$:|   |   |   |   └ [TypeName(name:r'checkoutById'), TypeName(name:r'QueryRoot'), ClassName(name:r'Node'), ClassName(name:r'Checkout'), ClassName(name:r'DiscountApplicationConnection'), ClassName(name:r'DiscountApplicationEdge')][DiscountApplicationEdge][null null] ()
[FINE] artemis:artemis on lib/$lib$:|   |   |   |   <- Generated class CheckoutById$QueryRoot$Node$Checkout$DiscountApplicationConnection$DiscountApplicationEdge.
[FINE] artemis:artemis on lib/$lib$:|   |   |   └ [TypeName(name:r'checkoutById'), TypeName(name:r'QueryRoot'), ClassName(name:r'Node'), ClassName(name:r'Checkout'), ClassName(name:r'DiscountApplicationConnection')][DiscountApplicationConnection][null null] ()
[FINE] artemis:artemis on lib/$lib$:|   |   |   <- Generated class CheckoutById$QueryRoot$Node$Checkout$DiscountApplicationConnection.
[FINE] artemis:artemis on lib/$lib$:|   |   |   [TypeName(name:r'checkoutById'), TypeName(name:r'QueryRoot'), ClassName(name:r'Node'), ClassName(name:r'Checkout')][Checkout][ClassName(name:r'CheckoutLineItemConnection') ClassPropertyName(name:r'lineItems')] -> CheckoutById$QueryRoot$Node$Checkout$CheckoutLineItemConnection
[FINE] artemis:artemis on lib/$lib$:|   |   |   -> Class
[FINE] artemis:artemis on lib/$lib$:|   |   |   ┌ [TypeName(name:r'checkoutById'), TypeName(name:r'QueryRoot'), ClassName(name:r'Node'), ClassName(name:r'Checkout'), ClassName(name:r'CheckoutLineItemConnection')][CheckoutLineItemConnection][null null] ()
[FINE] artemis:artemis on lib/$lib$:|   |   |   |   [TypeName(name:r'checkoutById'), TypeName(name:r'QueryRoot'), ClassName(name:r'Node'), ClassName(name:r'Checkout'), ClassName(name:r'CheckoutLineItemConnection')][CheckoutLineItemConnection][ClassName(name:r'CheckoutLineItemEdge') ClassPropertyName(name:r'edges')] -> List<CheckoutById$QueryRoot$Node$Checkout$CheckoutLineItemConnection$CheckoutLineItemEdge>
[FINE] artemis:artemis on lib/$lib$:|   |   |   |   -> Class
[FINE] artemis:artemis on lib/$lib$:|   |   |   |   ┌ [TypeName(name:r'checkoutById'), TypeName(name:r'QueryRoot'), ClassName(name:r'Node'), ClassName(name:r'Checkout'), ClassName(name:r'CheckoutLineItemConnection'), ClassName(name:r'CheckoutLineItemEdge')][CheckoutLineItemEdge][null null] ()
[FINE] artemis:artemis on lib/$lib$:|   |   |   |   |   [TypeName(name:r'checkoutById'), TypeName(name:r'QueryRoot'), ClassName(name:r'Node'), ClassName(name:r'Checkout'), ClassName(name:r'CheckoutLineItemConnection'), ClassName(name:r'CheckoutLineItemEdge')][CheckoutLineItemEdge][ClassName(name:r'CheckoutLineItem') ClassPropertyName(name:r'node')] -> CheckoutById$QueryRoot$Node$Checkout$CheckoutLineItemConnection$CheckoutLineItemEdge$CheckoutLineItem
[FINE] artemis:artemis on lib/$lib$:|   |   |   |   |   -> Class
[FINE] artemis:artemis on lib/$lib$:|   |   |   |   |   ┌ [TypeName(name:r'checkoutById'), TypeName(name:r'QueryRoot'), ClassName(name:r'Node'), ClassName(name:r'Checkout'), ClassName(name:r'CheckoutLineItemConnection'), ClassName(name:r'CheckoutLineItemEdge'), ClassName(name:r'CheckoutLineItem')][CheckoutLineItem][null null] ()
[FINE] artemis:artemis on lib/$lib$:|   |   |   |   |   |   [TypeName(name:r'checkoutById'), TypeName(name:r'QueryRoot'), ClassName(name:r'Node'), ClassName(name:r'Checkout'), ClassName(name:r'CheckoutLineItemConnection'), ClassName(name:r'CheckoutLineItemEdge'), ClassName(name:r'CheckoutLineItem')][CheckoutLineItem][ClassName(name:r'ID') ClassPropertyName(name:r'id')] -> String
[FINE] artemis:artemis on lib/$lib$:|   |   |   |   |   |   [TypeName(name:r'checkoutById'), TypeName(name:r'QueryRoot'), ClassName(name:r'Node'), ClassName(name:r'Checkout'), ClassName(name:r'CheckoutLineItemConnection'), ClassName(name:r'CheckoutLineItemEdge'), ClassName(name:r'CheckoutLineItem')][CheckoutLineItem][ClassName(name:r'Int') ClassPropertyName(name:r'quantity')] -> int
[FINE] artemis:artemis on lib/$lib$:|   |   |   |   |   |   [TypeName(name:r'checkoutById'), TypeName(name:r'QueryRoot'), ClassName(name:r'Node'), ClassName(name:r'Checkout'), ClassName(name:r'CheckoutLineItemConnection'), ClassName(name:r'CheckoutLineItemEdge'), ClassName(name:r'CheckoutLineItem')][CheckoutLineItem][ClassName(name:r'String') ClassPropertyName(name:r'title')] -> String
[FINE] artemis:artemis on lib/$lib$:|   |   |   |   |   |   [TypeName(name:r'checkoutById'), TypeName(name:r'QueryRoot'), ClassName(name:r'Node'), ClassName(name:r'Checkout'), ClassName(name:r'CheckoutLineItemConnection'), ClassName(name:r'CheckoutLineItemEdge'), ClassName(name:r'CheckoutLineItem')][CheckoutLineItem][ClassName(name:r'ProductVariant') ClassPropertyName(name:r'variant')] -> CheckoutById$QueryRoot$Node$Checkout$CheckoutLineItemConnection$CheckoutLineItemEdge$CheckoutLineItem$ProductVariant?

[FINE] artemis:artemis on lib/$lib$:|   |   |   |   |   |   |   └ [TypeName(name:r'checkoutById'), TypeName(name:r'QueryRoot'), ClassName(name:r'Node'), ClassName(name:r'Checkout'), ClassName(name:r'CheckoutLineItemConnection'), ClassName(name:r'CheckoutLineItemEdge'), ClassName(name:r'CheckoutLineItem'), ClassName(name:r'ProductVariant'), ClassName(name:r'Product')][Product][null null] ()
[FINE] artemis:artemis on lib/$lib$:|   |   |   |   |   |   |   <- Generated class CheckoutById$QueryRoot$Node$Checkout$CheckoutLineItemConnection$CheckoutLineItemEdge$CheckoutLineItem$ProductVariant$Product.

[FINE] artemis:artemis on lib/$lib$:|   |   |   |   |   |   |   └ [TypeName(name:r'checkoutById'), TypeName(name:r'QueryRoot'), ClassName(name:r'Node'), ClassName(name:r'Checkout'), ClassName(name:r'CheckoutLineItemConnection'), ClassName(name:r'CheckoutLineItemEdge'), ClassName(name:r'CheckoutLineItem'), ClassName(name:r'ProductVariant'), ClassName(name:r'MetafieldConnection')][MetafieldConnection][null null] ()
[FINE] artemis:artemis on lib/$lib$:|   |   |   |   |   |   |   <- Generated class CheckoutById$QueryRoot$Node$Checkout$CheckoutLineItemConnection$CheckoutLineItemEdge$CheckoutLineItem$ProductVariant$MetafieldConnection.
[FINE] artemis:artemis on lib/$lib$:|   |   |   |   |   |   └ [TypeName(name:r'checkoutById'), TypeName(name:r'QueryRoot'), ClassName(name:r'Node'), ClassName(name:r'Checkout'), ClassName(name:r'CheckoutLineItemConnection'), ClassName(name:r'CheckoutLineItemEdge'), ClassName(name:r'CheckoutLineItem'), ClassName(name:r'ProductVariant')][ProductVariant][null null] ()
[FINE] artemis:artemis on lib/$lib$:|   |   |   |   |   |   <- Generated class CheckoutById$QueryRoot$Node$Checkout$CheckoutLineItemConnection$CheckoutLineItemEdge$CheckoutLineItem$ProductVariant.
[FINE] artemis:artemis on lib/$lib$:|   |   |   |   |   └ [TypeName(name:r'checkoutById'), TypeName(name:r'QueryRoot'), ClassName(name:r'Node'), ClassName(name:r'Checkout'), ClassName(name:r'CheckoutLineItemConnection'), ClassName(name:r'CheckoutLineItemEdge'), ClassName(name:r'CheckoutLineItem')][CheckoutLineItem][null null] ()
[FINE] artemis:artemis on lib/$lib$:|   |   |   |   |   <- Generated class CheckoutById$QueryRoot$Node$Checkout$CheckoutLineItemConnection$CheckoutLineItemEdge$CheckoutLineItem.
[FINE] artemis:artemis on lib/$lib$:|   |   |   |   └ [TypeName(name:r'checkoutById'), TypeName(name:r'QueryRoot'), ClassName(name:r'Node'), ClassName(name:r'Checkout'), ClassName(name:r'CheckoutLineItemConnection'), ClassName(name:r'CheckoutLineItemEdge')][CheckoutLineItemEdge][null null] ()
[FINE] artemis:artemis on lib/$lib$:|   |   |   |   <- Generated class CheckoutById$QueryRoot$Node$Checkout$CheckoutLineItemConnection$CheckoutLineItemEdge.
[FINE] artemis:artemis on lib/$lib$:|   |   |   └ [TypeName(name:r'checkoutById'), TypeName(name:r'QueryRoot'), ClassName(name:r'Node'), ClassName(name:r'Checkout'), ClassName(name:r'CheckoutLineItemConnection')][CheckoutLineItemConnection][null null] ()
[FINE] artemis:artemis on lib/$lib$:|   |   |   <- Generated class CheckoutById$QueryRoot$Node$Checkout$CheckoutLineItemConnection.
[FINE] artemis:artemis on lib/$lib$:|   |   └ [TypeName(name:r'checkoutById'), TypeName(name:r'QueryRoot'), ClassName(name:r'Node'), ClassName(name:r'Checkout')][Checkout][null null] ()
[FINE] artemis:artemis on lib/$lib$:|   |   <- Generated class CheckoutById$QueryRoot$Node$Checkout.
[FINE] artemis:artemis on lib/$lib$:|   └ [TypeName(name:r'checkoutById'), TypeName(name:r'QueryRoot'), ClassName(name:r'Node')][Node][null null] ()
[FINE] artemis:artemis on lib/$lib$:|   <- Generated class CheckoutById$QueryRoot$Node.
[FINE] artemis:artemis on lib/$lib$:└ [TypeName(name:r'checkoutById'), TypeName(name:r'QueryRoot')][QueryRoot][null null] ()
[FINE] artemis:artemis on lib/$lib$:<- Generated class CheckoutById$QueryRoot.
[INFO] Heartbeat:1.7s elapsed, 1/2 actions completed.
[INFO] Heartbeat:3.9s elapsed, 1/2 actions completed.
[INFO] Build:Running build completed, took 4.3s

[INFO] Build:Caching finalized dependency graph...
[INFO] Build:Caching finalized dependency graph completed, took 40ms

[INFO] Build:Succeeded after 4.4s with 3 outputs (2 actions)

[+7383 ms] "flutter run" took 7,488ms.
[ +123 ms] ensureAnalyticsSent: 116ms
[   +4 ms] Running shutdown hooks
[        ] Shutdown hooks complete
[        ] exiting with code 0

GraphQL schema:
# This file was generated based on ".graphqlconfig". Do not edit manually.

schema {
    query: QueryRoot
    mutation: Mutation
}

"""

Discount applications capture the intentions of a discount source at
the time of application.
"""
interface DiscountApplication {
    "The method by which the discount's value is allocated to its entitled items."
    allocationMethod: DiscountApplicationAllocationMethod!
    "Which lines of targetType that the discount is allocated over."
    targetSelection: DiscountApplicationTargetSelection!
    "The type of line that the discount is applicable towards."
    targetType: DiscountApplicationTargetType!
    "The value of the discount application."
    value: PricingValue!
}

"Represents an error in the input of a mutation."
interface DisplayableError {
    "Path to the input field which caused the error."
    field: [String!]
    "The error message."
    message: String!
}

"Represents information about the metafields associated to the specified resource."
interface HasMetafields {
    "The metafield associated with the resource."
    metafield(
        "Identifier for the metafield (maximum of 30 characters)."
        key: String!,
        "Container for a set of metafields (maximum of 20 characters)."
        namespace: String!
    ): Metafield
    "A paginated list of metafields associated with the resource."
    metafields(
        "Returns the elements that come after the specified cursor."
        after: String,
        "Returns the elements that come before the specified cursor."
        before: String,
        "Returns up to the first `n` elements from the list."
        first: Int,
        "Returns up to the last `n` elements from the list."
        last: Int,
        "Container for a set of metafields (maximum of 20 characters)."
        namespace: String,
        "Reverse the order of the underlying list."
        reverse: Boolean = false
    ): MetafieldConnection!
}

"Represents a media interface."
interface Media {
    "A word or phrase to share the nature or contents of a media."
    alt: String
    "The media content type."
    mediaContentType: MediaContentType!
    "The preview image for the media."
    previewImage: Image
}

"An object with an ID to support global identification."
interface Node {
    "Globally unique identifier."
    id: ID!
}

"A resource that the metafield belongs to."
union MetafieldParentResource = Product | ProductVariant

"The price value (fixed or percentage) for a discount application."
union PricingValue = MoneyV2 | PricingPercentageValue

"A version of the API."
type ApiVersion {
    "The human-readable name of the version."
    displayName: String!
    "The unique identifier of an ApiVersion. All supported API versions have a date-based (YYYY-MM) or `unstable` handle."
    handle: String!
    "Whether the version is supported by Shopify."
    supported: Boolean!
}

"Details about the gift card used on the checkout."
type AppliedGiftCard implements Node {
    "The amount that was taken from the gift card by applying it."
    amountUsed: Money! @deprecated(reason : "Use `amountUsedV2` instead")
    "The amount that was taken from the gift card by applying it."
    amountUsedV2: MoneyV2!
    "The amount left on the gift card."
    balance: Money! @deprecated(reason : "Use `balanceV2` instead")
    "The amount left on the gift card."
    balanceV2: MoneyV2!
    "Globally unique identifier."
    id: ID!
    "The last characters of the gift card."
    lastCharacters: String!
    "The amount that was applied to the checkout in its currency."
    presentmentAmountUsed: MoneyV2!
}

"An article in an online store blog."
type Article implements Node {
    "The article's author."
    author: ArticleAuthor! @deprecated(reason : "Use `authorV2` instead")
    "The article's author."
    authorV2: ArticleAuthor
    "The blog that the article belongs to."
    blog: Blog!
    "List of comments posted on the article."
    comments(
        "Returns the elements that come after the specified cursor."
        after: String,
        "Returns the elements that come before the specified cursor."
        before: String,
        "Returns up to the first `n` elements from the list."
        first: Int,
        "Returns up to the last `n` elements from the list."
        last: Int,
        "Reverse the order of the underlying list."
        reverse: Boolean = false
    ): CommentConnection!
    "Stripped content of the article, single line with HTML tags removed."
    content(
        "Truncates string after the given length."
        truncateAt: Int
    ): String!
    "The content of the article, complete with HTML formatting."
    contentHtml: HTML!
    "Stripped excerpt of the article, single line with HTML tags removed."
    excerpt(
        "Truncates string after the given length."
        truncateAt: Int
    ): String
    "The excerpt of the article, complete with HTML formatting."
    excerptHtml: HTML
    """

    A human-friendly unique string for the Article automatically generated from its title.
    """
    handle: String!
    "Globally unique identifier."
    id: ID!
    "The image associated with the article."
    image(
        "Crops the image according to the specified region. This argument is deprecated: Use `crop` on `Image.transformedSrc` instead."
        crop: CropRegion,
        "Image height in pixels between 1 and 2048. This argument is deprecated: Use `maxHeight` on `Image.transformedSrc` instead."
        maxHeight: Int,
        "Image width in pixels between 1 and 2048. This argument is deprecated: Use `maxWidth` on `Image.transformedSrc` instead."
        maxWidth: Int,
        "Image size multiplier for high-resolution retina displays. Must be between 1 and 3. This argument is deprecated: Use `scale` on `Image.transformedSrc` instead."
        scale: Int = 1
    ): Image
    "The date and time when the article was published."
    publishedAt: DateTime!
    "The article’s SEO information."
    seo: SEO
    "A categorization that a article can be tagged with."
    tags: [String!]!
    "The article’s name."
    title: String!
    "The url pointing to the article accessible from the web."
    url: URL!
}

"The author of an article."
type ArticleAuthor {
    "The author's bio."
    bio: String
    "The author’s email."
    email: String!
    "The author's first name."
    firstName: String!
    "The author's last name."
    lastName: String!
    "The author's full name."
    name: String!
}

"""

An auto-generated type for paginating through multiple Articles.
"""
type ArticleConnection {
    "A list of edges."
    edges: [ArticleEdge!]!
    "Information to aid in pagination."
    pageInfo: PageInfo!
}

"""

An auto-generated type which holds one Article and a cursor during pagination.
"""
type ArticleEdge {
    "A cursor for use in pagination."
    cursor: String!
    "The item at the end of ArticleEdge."
    node: Article!
}

"Represents a generic custom attribute."
type Attribute {
    "Key or name of the attribute."
    key: String!
    "Value of the attribute."
    value: String
}

"""

Automatic discount applications capture the intentions of a discount that was automatically applied.
"""
type AutomaticDiscountApplication implements DiscountApplication {
    "The method by which the discount's value is allocated to its entitled items."
    allocationMethod: DiscountApplicationAllocationMethod!
    "Which lines of targetType that the discount is allocated over."
    targetSelection: DiscountApplicationTargetSelection!
    "The type of line that the discount is applicable towards."
    targetType: DiscountApplicationTargetType!
    "The title of the application."
    title: String!
    "The value of the discount application."
    value: PricingValue!
}

"A collection of available shipping rates for a checkout."
type AvailableShippingRates {
    """

    Whether or not the shipping rates are ready.
    The `shippingRates` field is `null` when this value is `false`.
    This field should be polled until its value becomes `true`.
    """
    ready: Boolean!
    "The fetched shipping rates. `null` until the `ready` field is `true`."
    shippingRates: [ShippingRate!]
}

"An online store blog."
type Blog implements Node {
    "Find an article by its handle."
    articleByHandle(
        "The handle of the article."
        handle: String!
    ): Article
    "List of the blog's articles."
    articles(
        "Returns the elements that come after the specified cursor."
        after: String,
        "Returns the elements that come before the specified cursor."
        before: String,
        "Returns up to the first `n` elements from the list."
        first: Int,
        "Returns up to the last `n` elements from the list."
        last: Int,
        """

        Supported filter parameters:
        - `author`
        - `blog_title`
        - `created_at`
        - `tag`
        - `updated_at`

        See the detailed [search syntax](https://help.shopify.com/api/getting-started/search-syntax)
        for more information about using filters.
        """
        query: String,
        "Reverse the order of the underlying list."
        reverse: Boolean = false,
        "Sort the underlying list by the given key."
        sortKey: ArticleSortKeys = ID
    ): ArticleConnection!
    "The authors who have contributed to the blog."
    authors: [ArticleAuthor!]!
    """

    A human-friendly unique string for the Blog automatically generated from its title.
    """
    handle: String!
    "Globally unique identifier."
    id: ID!
    "The blogs’s title."
    title: String!
    "The url pointing to the blog accessible from the web."
    url: URL!
}

"""

An auto-generated type for paginating through multiple Blogs.
"""
type BlogConnection {
    "A list of edges."
    edges: [BlogEdge!]!
    "Information to aid in pagination."
    pageInfo: PageInfo!
}

"""

An auto-generated type which holds one Blog and a cursor during pagination.
"""
type BlogEdge {
    "A cursor for use in pagination."
    cursor: String!
    "The item at the end of BlogEdge."
    node: Blog!
}

"A container for all the information required to checkout items and pay."
type Checkout implements Node {
    "The gift cards used on the checkout."
    appliedGiftCards: [AppliedGiftCard!]!
    """

    The available shipping rates for this Checkout.
    Should only be used when checkout `requiresShipping` is `true` and
    the shipping address is valid.
    """
    availableShippingRates: AvailableShippingRates
    "The date and time when the checkout was completed."
    completedAt: DateTime
    "The date and time when the checkout was created."
    createdAt: DateTime!
    "The currency code for the Checkout."
    currencyCode: CurrencyCode!
    "A list of extra information that is added to the checkout."
    customAttributes: [Attribute!]!
    "The customer associated with the checkout."
    customer: Customer @deprecated(reason : "This field will always return null. If you have an authentication token for the customer, you can use the `customer` field on the query root to retrieve it.")
    "Discounts that have been applied on the checkout."
    discountApplications(
        "Returns the elements that come after the specified cursor."
        after: String,
        "Returns the elements that come before the specified cursor."
        before: String,
        "Returns up to the first `n` elements from the list."
        first: Int,
        "Returns up to the last `n` elements from the list."
        last: Int,
        "Reverse the order of the underlying list."
        reverse: Boolean = false
    ): DiscountApplicationConnection!
    "The email attached to this checkout."
    email: String
    "Globally unique identifier."
    id: ID!
    "A list of line item objects, each one containing information about an item in the checkout."
    lineItems(
        "Returns the elements that come after the specified cursor."
        after: String,
        "Returns the elements that come before the specified cursor."
        before: String,
        "Returns up to the first `n` elements from the list."
        first: Int,
        "Returns up to the last `n` elements from the list."
        last: Int,
        "Reverse the order of the underlying list."
        reverse: Boolean = false
    ): CheckoutLineItemConnection!
    "The sum of all the prices of all the items in the checkout. Duties, taxes, shipping and discounts excluded."
    lineItemsSubtotalPrice: MoneyV2!
    "The note associated with the checkout."
    note: String
    "The resulting order from a paid checkout."
    order: Order
    "The Order Status Page for this Checkout, null when checkout is not completed."
    orderStatusUrl: URL
    "The amount left to be paid. This is equal to the cost of the line items, taxes and shipping minus discounts and gift cards."
    paymentDue: Money! @deprecated(reason : "Use `paymentDueV2` instead")
    "The amount left to be paid. This is equal to the cost of the line items, duties, taxes and shipping minus discounts and gift cards."
    paymentDueV2: MoneyV2!
    """

    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.
    """
    ready: Boolean!
    "States whether or not the fulfillment requires shipping."
    requiresShipping: Boolean!
    "The shipping address to where the line items will be shipped."
    shippingAddress: MailingAddress
    """

    The discounts that have been allocated onto the shipping line by discount applications.
    """
    shippingDiscountAllocations: [DiscountAllocation!]!
    "Once a shipping rate is selected by the customer it is transitioned to a `shipping_line` object."
    shippingLine: ShippingRate
    "Price of the checkout before shipping and taxes."
    subtotalPrice: Money! @deprecated(reason : "Use `subtotalPriceV2` instead")
    "Price of the checkout before duties, shipping and taxes."
    subtotalPriceV2: MoneyV2!
    "Specifies if the Checkout is tax exempt."
    taxExempt: Boolean!
    "Specifies if taxes are included in the line item and shipping line prices."
    taxesIncluded: Boolean!
    "The sum of all the prices of all the items in the checkout, taxes and discounts included."
    totalPrice: Money! @deprecated(reason : "Use `totalPriceV2` instead")
    "The sum of all the prices of all the items in the checkout, duties, taxes and discounts included."
    totalPriceV2: MoneyV2!
    "The sum of all the taxes applied to the line items and shipping lines in the checkout."
    totalTax: Money! @deprecated(reason : "Use `totalTaxV2` instead")
    "The sum of all the taxes applied to the line items and shipping lines in the checkout."
    totalTaxV2: MoneyV2!
    "The date and time when the checkout was last updated."
    updatedAt: DateTime!
    "The url pointing to the checkout accessible from the web."
    webUrl: URL!
}

"Return type for `checkoutAttributesUpdate` mutation."
type CheckoutAttributesUpdatePayload {
    "The updated checkout object."
    checkout: Checkout!
    "List of errors that occurred executing the mutation."
    checkoutUserErrors: [CheckoutUserError!]!
    "List of errors that occurred executing the mutation."
    userErrors: [UserError!]! @deprecated(reason : "Use `checkoutUserErrors` instead")
}

"Return type for `checkoutAttributesUpdateV2` mutation."
type CheckoutAttributesUpdateV2Payload {
    "The updated checkout object."
    checkout: Checkout
    "List of errors that occurred executing the mutation."
    checkoutUserErrors: [CheckoutUserError!]!
    "List of errors that occurred executing the mutation."
    userErrors: [UserError!]! @deprecated(reason : "Use `checkoutUserErrors` instead")
}

"Return type for `checkoutCompleteFree` mutation."
type CheckoutCompleteFreePayload {
    "The updated checkout object."
    checkout: Checkout
    "List of errors that occurred executing the mutation."
    checkoutUserErrors: [CheckoutUserError!]!
    "List of errors that occurred executing the mutation."
    userErrors: [UserError!]! @deprecated(reason : "Use `checkoutUserErrors` instead")
}

"Return type for `checkoutCompleteWithCreditCard` mutation."
type CheckoutCompleteWithCreditCardPayload {
    "The checkout on which the payment was applied."
    checkout: Checkout!
    "List of errors that occurred executing the mutation."
    checkoutUserErrors: [CheckoutUserError!]!
    "A representation of the attempted payment."
    payment: Payment
    "List of errors that occurred executing the mutation."
    userErrors: [UserError!]! @deprecated(reason : "Use `checkoutUserErrors` instead")
}

"Return type for `checkoutCompleteWithCreditCardV2` mutation."
type CheckoutCompleteWithCreditCardV2Payload {
    "The checkout on which the payment was applied."
    checkout: Checkout
    "List of errors that occurred executing the mutation."
    checkoutUserErrors: [CheckoutUserError!]!
    "A representation of the attempted payment."
    payment: Payment
    "List of errors that occurred executing the mutation."
    userErrors: [UserError!]! @deprecated(reason : "Use `checkoutUserErrors` instead")
}

"Return type for `checkoutCompleteWithTokenizedPayment` mutation."
type CheckoutCompleteWithTokenizedPaymentPayload {
    "The checkout on which the payment was applied."
    checkout: Checkout!
    "List of errors that occurred executing the mutation."
    checkoutUserErrors: [CheckoutUserError!]!
    "A representation of the attempted payment."
    payment: Payment
    "List of errors that occurred executing the mutation."
    userErrors: [UserError!]! @deprecated(reason : "Use `checkoutUserErrors` instead")
}

"Return type for `checkoutCompleteWithTokenizedPaymentV2` mutation."
type CheckoutCompleteWithTokenizedPaymentV2Payload {
    "The checkout on which the payment was applied."
    checkout: Checkout
    "List of errors that occurred executing the mutation."
    checkoutUserErrors: [CheckoutUserError!]!
    "A representation of the attempted payment."
    payment: Payment
    "List of errors that occurred executing the mutation."
    userErrors: [UserError!]! @deprecated(reason : "Use `checkoutUserErrors` instead")
}

"Return type for `checkoutCompleteWithTokenizedPaymentV3` mutation."
type CheckoutCompleteWithTokenizedPaymentV3Payload {
    "The checkout on which the payment was applied."
    checkout: Checkout
    "List of errors that occurred executing the mutation."
    checkoutUserErrors: [CheckoutUserError!]!
    "A representation of the attempted payment."
    payment: Payment
    "List of errors that occurred executing the mutation."
    userErrors: [UserError!]! @deprecated(reason : "Use `checkoutUserErrors` instead")
}

"Return type for `checkoutCreate` mutation."
type CheckoutCreatePayload {
    "The new checkout object."
    checkout: Checkout
    "List of errors that occurred executing the mutation."
    checkoutUserErrors: [CheckoutUserError!]!
    "List of errors that occurred executing the mutation."
    userErrors: [UserError!]! @deprecated(reason : "Use `checkoutUserErrors` instead")
}

"Return type for `checkoutCustomerAssociate` mutation."
type CheckoutCustomerAssociatePayload {
    "The updated checkout object."
    checkout: Checkout!
    "The associated customer object."
    customer: Customer
    "List of errors that occurred executing the mutation."
    userErrors: [UserError!]!
}

"Return type for `checkoutCustomerAssociateV2` mutation."
type CheckoutCustomerAssociateV2Payload {
    "The updated checkout object."
    checkout: Checkout
    "List of errors that occurred executing the mutation."
    checkoutUserErrors: [CheckoutUserError!]!
    "The associated customer object."
    customer: Customer
    "List of errors that occurred executing the mutation."
    userErrors: [UserError!]! @deprecated(reason : "Use `checkoutUserErrors` instead")
}

"Return type for `checkoutCustomerDisassociate` mutation."
type CheckoutCustomerDisassociatePayload {
    "The updated checkout object."
    checkout: Checkout!
    "List of errors that occurred executing the mutation."
    checkoutUserErrors: [CheckoutUserError!]!
    "List of errors that occurred executing the mutation."
    userErrors: [UserError!]! @deprecated(reason : "Use `checkoutUserErrors` instead")
}

"Return type for `checkoutCustomerDisassociateV2` mutation."
type CheckoutCustomerDisassociateV2Payload {
    "The updated checkout object."
    checkout: Checkout
    "List of errors that occurred executing the mutation."
    checkoutUserErrors: [CheckoutUserError!]!
    "List of errors that occurred executing the mutation."
    userErrors: [UserError!]! @deprecated(reason : "Use `checkoutUserErrors` instead")
}

"Return type for `checkoutDiscountCodeApply` mutation."
type CheckoutDiscountCodeApplyPayload {
    "The updated checkout object."
    checkout: Checkout!
    "List of errors that occurred executing the mutation."
    checkoutUserErrors: [CheckoutUserError!]!
    "List of errors that occurred executing the mutation."
    userErrors: [UserError!]! @deprecated(reason : "Use `checkoutUserErrors` instead")
}

"Return type for `checkoutDiscountCodeApplyV2` mutation."
type CheckoutDiscountCodeApplyV2Payload {
    "The updated checkout object."
    checkout: Checkout
    "List of errors that occurred executing the mutation."
    checkoutUserErrors: [CheckoutUserError!]!
    "List of errors that occurred executing the mutation."
    userErrors: [UserError!]! @deprecated(reason : "Use `checkoutUserErrors` instead")
}

"Return type for `checkoutDiscountCodeRemove` mutation."
type CheckoutDiscountCodeRemovePayload {
    "The updated checkout object."
    checkout: Checkout
    "List of errors that occurred executing the mutation."
    checkoutUserErrors: [CheckoutUserError!]!
    "List of errors that occurred executing the mutation."
    userErrors: [UserError!]! @deprecated(reason : "Use `checkoutUserErrors` instead")
}

"Return type for `checkoutEmailUpdate` mutation."
type CheckoutEmailUpdatePayload {
    "The checkout object with the updated email."
    checkout: Checkout!
    "List of errors that occurred executing the mutation."
    checkoutUserErrors: [CheckoutUserError!]!
    "List of errors that occurred executing the mutation."
    userErrors: [UserError!]! @deprecated(reason : "Use `checkoutUserErrors` instead")
}

"Return type for `checkoutEmailUpdateV2` mutation."
type CheckoutEmailUpdateV2Payload {
    "The checkout object with the updated email."
    checkout: Checkout
    "List of errors that occurred executing the mutation."
    checkoutUserErrors: [CheckoutUserError!]!
    "List of errors that occurred executing the mutation."
    userErrors: [UserError!]! @deprecated(reason : "Use `checkoutUserErrors` instead")
}

"Return type for `checkoutGiftCardApply` mutation."
type CheckoutGiftCardApplyPayload {
    "The updated checkout object."
    checkout: Checkout!
    "List of errors that occurred executing the mutation."
    checkoutUserErrors: [CheckoutUserError!]!
    "List of errors that occurred executing the mutation."
    userErrors: [UserError!]! @deprecated(reason : "Use `checkoutUserErrors` instead")
}

"Return type for `checkoutGiftCardRemove` mutation."
type CheckoutGiftCardRemovePayload {
    "The updated checkout object."
    checkout: Checkout!
    "List of errors that occurred executing the mutation."
    checkoutUserErrors: [CheckoutUserError!]!
    "List of errors that occurred executing the mutation."
    userErrors: [UserError!]! @deprecated(reason : "Use `checkoutUserErrors` instead")
}

"Return type for `checkoutGiftCardRemoveV2` mutation."
type CheckoutGiftCardRemoveV2Payload {
    "The updated checkout object."
    checkout: Checkout
    "List of errors that occurred executing the mutation."
    checkoutUserErrors: [CheckoutUserError!]!
    "List of errors that occurred executing the mutation."
    userErrors: [UserError!]! @deprecated(reason : "Use `checkoutUserErrors` instead")
}

"Return type for `checkoutGiftCardsAppend` mutation."
type CheckoutGiftCardsAppendPayload {
    "The updated checkout object."
    checkout: Checkout
    "List of errors that occurred executing the mutation."
    checkoutUserErrors: [CheckoutUserError!]!
    "List of errors that occurred executing the mutation."
    userErrors: [UserError!]! @deprecated(reason : "Use `checkoutUserErrors` instead")
}

"A single line item in the checkout, grouped by variant and attributes."
type CheckoutLineItem implements Node {
    "Extra information in the form of an array of Key-Value pairs about the line item."
    customAttributes: [Attribute!]!
    "The discounts that have been allocated onto the checkout line item by discount applications."
    discountAllocations: [DiscountAllocation!]!
    "Globally unique identifier."
    id: ID!
    "The quantity of the line item."
    quantity: Int!
    "Title of the line item. Defaults to the product's title."
    title: String!
    "Unit price of the line item."
    unitPrice: MoneyV2
    "Product variant of the line item."
    variant: ProductVariant
}

"""

An auto-generated type for paginating through multiple CheckoutLineItems.
"""
type CheckoutLineItemConnection {
    "A list of edges."
    edges: [CheckoutLineItemEdge!]!
    "Information to aid in pagination."
    pageInfo: PageInfo!
}

"""

An auto-generated type which holds one CheckoutLineItem and a cursor during pagination.
"""
type CheckoutLineItemEdge {
    "A cursor for use in pagination."
    cursor: String!
    "The item at the end of CheckoutLineItemEdge."
    node: CheckoutLineItem!
}

"Return type for `checkoutLineItemsAdd` mutation."
type CheckoutLineItemsAddPayload {
    "The updated checkout object."
    checkout: Checkout
    "List of errors that occurred executing the mutation."
    checkoutUserErrors: [CheckoutUserError!]!
    "List of errors that occurred executing the mutation."
    userErrors: [UserError!]! @deprecated(reason : "Use `checkoutUserErrors` instead")
}

"Return type for `checkoutLineItemsRemove` mutation."
type CheckoutLineItemsRemovePayload {
    "The updated checkout object."
    checkout: Checkout
    "List of errors that occurred executing the mutation."
    checkoutUserErrors: [CheckoutUserError!]!
    "List of errors that occurred executing the mutation."
    userErrors: [UserError!]! @deprecated(reason : "Use `checkoutUserErrors` instead")
}

"Return type for `checkoutLineItemsReplace` mutation."
type CheckoutLineItemsReplacePayload {
    "The updated checkout object."
    checkout: Checkout
    "List of errors that occurred executing the mutation."
    userErrors: [CheckoutUserError!]!
}

"Return type for `checkoutLineItemsUpdate` mutation."
type CheckoutLineItemsUpdatePayload {
    "The updated checkout object."
    checkout: Checkout
    "List of errors that occurred executing the mutation."
    checkoutUserErrors: [CheckoutUserError!]!
    "List of errors that occurred executing the mutation."
    userErrors: [UserError!]! @deprecated(reason : "Use `checkoutUserErrors` instead")
}

"Return type for `checkoutShippingAddressUpdate` mutation."
type CheckoutShippingAddressUpdatePayload {
    "The updated checkout object."
    checkout: Checkout!
    "List of errors that occurred executing the mutation."
    checkoutUserErrors: [CheckoutUserError!]!
    "List of errors that occurred executing the mutation."
    userErrors: [UserError!]! @deprecated(reason : "Use `checkoutUserErrors` instead")
}

"Return type for `checkoutShippingAddressUpdateV2` mutation."
type CheckoutShippingAddressUpdateV2Payload {
    "The updated checkout object."
    checkout: Checkout
    "List of errors that occurred executing the mutation."
    checkoutUserErrors: [CheckoutUserError!]!
    "List of errors that occurred executing the mutation."
    userErrors: [UserError!]! @deprecated(reason : "Use `checkoutUserErrors` instead")
}

"Return type for `checkoutShippingLineUpdate` mutation."
type CheckoutShippingLineUpdatePayload {
    "The updated checkout object."
    checkout: Checkout
    "List of errors that occurred executing the mutation."
    checkoutUserErrors: [CheckoutUserError!]!
    "List of errors that occurred executing the mutation."
    userErrors: [UserError!]! @deprecated(reason : "Use `checkoutUserErrors` instead")
}

"Represents an error that happens during execution of a checkout mutation."
type CheckoutUserError implements DisplayableError {
    "Error code to uniquely identify the error."
    code: CheckoutErrorCode
    "Path to the input field which caused the error."
    field: [String!]
    "The error message."
    message: String!
}

"A collection represents a grouping of products that a shop owner can create to organize them or make their shops easier to browse."
type Collection implements Node {
    "Stripped description of the collection, single line with HTML tags removed."
    description(
        "Truncates string after the given length."
        truncateAt: Int
    ): String!
    "The description of the collection, complete with HTML formatting."
    descriptionHtml: HTML!
    """

    A human-friendly unique string for the collection automatically generated from its title.
    Limit of 255 characters.
    """
    handle: String!
    "Globally unique identifier."
    id: ID!
    "Image associated with the collection."
    image(
        "Crops the image according to the specified region. This argument is deprecated: Use `crop` on `Image.transformedSrc` instead."
        crop: CropRegion,
        "Image height in pixels between 1 and 2048. This argument is deprecated: Use `maxHeight` on `Image.transformedSrc` instead."
        maxHeight: Int,
        "Image width in pixels between 1 and 2048. This argument is deprecated: Use `maxWidth` on `Image.transformedSrc` instead."
        maxWidth: Int,
        "Image size multiplier for high-resolution retina displays. Must be between 1 and 3. This argument is deprecated: Use `scale` on `Image.transformedSrc` instead."
        scale: Int = 1
    ): Image
    "List of products in the collection."
    products(
        "Returns the elements that come after the specified cursor."
        after: String,
        "Returns the elements that come before the specified cursor."
        before: String,
        "Returns up to the first `n` elements from the list."
        first: Int,
        "Returns up to the last `n` elements from the list."
        last: Int,
        "Reverse the order of the underlying list."
        reverse: Boolean = false,
        "Sort the underlying list by the given key."
        sortKey: ProductCollectionSortKeys = COLLECTION_DEFAULT
    ): ProductConnection!
    "The collection’s name. Limit of 255 characters."
    title: String!
    "The date and time when the collection was last modified."
    updatedAt: DateTime!
}

"""

An auto-generated type for paginating through multiple Collections.
"""
type CollectionConnection {
    "A list of edges."
    edges: [CollectionEdge!]!
    "Information to aid in pagination."
    pageInfo: PageInfo!
}

"""

An auto-generated type which holds one Collection and a cursor during pagination.
"""
type CollectionEdge {
    "A cursor for use in pagination."
    cursor: String!
    "The item at the end of CollectionEdge."
    node: Collection!
}

"A comment on an article."
type Comment implements Node {
    "The comment’s author."
    author: CommentAuthor!
    "Stripped content of the comment, single line with HTML tags removed."
    content(
        "Truncates string after the given length."
        truncateAt: Int
    ): String!
    "The content of the comment, complete with HTML formatting."
    contentHtml: HTML!
    "Globally unique identifier."
    id: ID!
}

"The author of a comment."
type CommentAuthor {
    "The author's email."
    email: String!
    "The author’s name."
    name: String!
}

"""

An auto-generated type for paginating through multiple Comments.
"""
type CommentConnection {
    "A list of edges."
    edges: [CommentEdge!]!
    "Information to aid in pagination."
    pageInfo: PageInfo!
}

"""

An auto-generated type which holds one Comment and a cursor during pagination.
"""
type CommentEdge {
    "A cursor for use in pagination."
    cursor: String!
    "The item at the end of CommentEdge."
    node: Comment!
}

"Credit card information used for a payment."
type CreditCard {
    "The brand of the credit card."
    brand: String
    "The expiry month of the credit card."
    expiryMonth: Int
    "The expiry year of the credit card."
    expiryYear: Int
    "The credit card's BIN number."
    firstDigits: String
    "The first name of the card holder."
    firstName: String
    "The last 4 digits of the credit card."
    lastDigits: String
    "The last name of the card holder."
    lastName: String
    "The masked credit card number with only the last 4 digits displayed."
    maskedNumber: String
}

"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."
type Customer {
    "Indicates whether the customer has consented to be sent marketing material via email."
    acceptsMarketing: Boolean!
    "A list of addresses for the customer."
    addresses(
        "Returns the elements that come after the specified cursor."
        after: String,
        "Returns the elements that come before the specified cursor."
        before: String,
        "Returns up to the first `n` elements from the list."
        first: Int,
        "Returns up to the last `n` elements from the list."
        last: Int,
        "Reverse the order of the underlying list."
        reverse: Boolean = false
    ): MailingAddressConnection!
    "The date and time when the customer was created."
    createdAt: DateTime!
    "The customer’s default address."
    defaultAddress: MailingAddress
    "The customer’s name, email or phone number."
    displayName: String!
    "The customer’s email address."
    email: String
    "The customer’s first name."
    firstName: String
    "A unique identifier for the customer."
    id: ID!
    "The customer's most recently updated, incomplete checkout."
    lastIncompleteCheckout: Checkout
    "The customer’s last name."
    lastName: String
    "The orders associated with the customer."
    orders(
        "Returns the elements that come after the specified cursor."
        after: String,
        "Returns the elements that come before the specified cursor."
        before: String,
        "Returns up to the first `n` elements from the list."
        first: Int,
        "Returns up to the last `n` elements from the list."
        last: Int,
        """

        Supported filter parameters:
        - `processed_at`

        See the detailed [search syntax](https://help.shopify.com/api/getting-started/search-syntax)
        for more information about using filters.
        """
        query: String,
        "Reverse the order of the underlying list."
        reverse: Boolean = false,
        "Sort the underlying list by the given key."
        sortKey: OrderSortKeys = ID
    ): OrderConnection!
    "The customer’s phone number."
    phone: String
    """

    A comma separated list of tags that have been added to the customer.
    Additional access scope required: unauthenticated_read_customer_tags.
    """
    tags: [String!]!
    "The date and time when the customer information was updated."
    updatedAt: DateTime!
}

"A CustomerAccessToken represents the unique token required to make modifications to the customer object."
type CustomerAccessToken {
    "The customer’s access token."
    accessToken: String!
    "The date and time when the customer access token expires."
    expiresAt: DateTime!
}

"Return type for `customerAccessTokenCreate` mutation."
type CustomerAccessTokenCreatePayload {
    "The newly created customer access token object."
    customerAccessToken: CustomerAccessToken
    "List of errors that occurred executing the mutation."
    customerUserErrors: [CustomerUserError!]!
    "List of errors that occurred executing the mutation."
    userErrors: [UserError!]! @deprecated(reason : "Use `customerUserErrors` instead")
}

"Return type for `customerAccessTokenCreateWithMultipass` mutation."
type CustomerAccessTokenCreateWithMultipassPayload {
    "An access token object associated with the customer."
    customerAccessToken: CustomerAccessToken
    "List of errors that occurred executing the mutation."
    customerUserErrors: [CustomerUserError!]!
}

"Return type for `customerAccessTokenDelete` mutation."
type CustomerAccessTokenDeletePayload {
    "The destroyed access token."
    deletedAccessToken: String
    "ID of the destroyed customer access token."
    deletedCustomerAccessTokenId: String
    "List of errors that occurred executing the mutation."
    userErrors: [UserError!]!
}

"Return type for `customerAccessTokenRenew` mutation."
type CustomerAccessTokenRenewPayload {
    "The renewed customer access token object."
    customerAccessToken: CustomerAccessToken
    "List of errors that occurred executing the mutation."
    userErrors: [UserError!]!
}

"Return type for `customerActivateByUrl` mutation."
type CustomerActivateByUrlPayload {
    "The customer that was activated."
    customer: Customer
    "A new customer access token for the customer."
    customerAccessToken: CustomerAccessToken
    "List of errors that occurred executing the mutation."
    customerUserErrors: [CustomerUserError!]!
}

"Return type for `customerActivate` mutation."
type CustomerActivatePayload {
    "The customer object."
    customer: Customer
    "A newly created customer access token object for the customer."
    customerAccessToken: CustomerAccessToken
    "List of errors that occurred executing the mutation."
    customerUserErrors: [CustomerUserError!]!
    "List of errors that occurred executing the mutation."
    userErrors: [UserError!]! @deprecated(reason : "Use `customerUserErrors` instead")
}

"Return type for `customerAddressCreate` mutation."
type CustomerAddressCreatePayload {
    "The new customer address object."
    customerAddress: MailingAddress
    "List of errors that occurred executing the mutation."
    customerUserErrors: [CustomerUserError!]!
    "List of errors that occurred executing the mutation."
    userErrors: [UserError!]! @deprecated(reason : "Use `customerUserErrors` instead")
}

"Return type for `customerAddressDelete` mutation."
type CustomerAddressDeletePayload {
    "List of errors that occurred executing the mutation."
    customerUserErrors: [CustomerUserError!]!
    "ID of the deleted customer address."
    deletedCustomerAddressId: String
    "List of errors that occurred executing the mutation."
    userErrors: [UserError!]! @deprecated(reason : "Use `customerUserErrors` instead")
}

"Return type for `customerAddressUpdate` mutation."
type CustomerAddressUpdatePayload {
    "The customer’s updated mailing address."
    customerAddress: MailingAddress
    "List of errors that occurred executing the mutation."
    customerUserErrors: [CustomerUserError!]!
    "List of errors that occurred executing the mutation."
    userErrors: [UserError!]! @deprecated(reason : "Use `customerUserErrors` instead")
}

"Return type for `customerCreate` mutation."
type CustomerCreatePayload {
    "The created customer object."
    customer: Customer
    "List of errors that occurred executing the mutation."
    customerUserErrors: [CustomerUserError!]!
    "List of errors that occurred executing the mutation."
    userErrors: [UserError!]! @deprecated(reason : "Use `customerUserErrors` instead")
}

"Return type for `customerDefaultAddressUpdate` mutation."
type CustomerDefaultAddressUpdatePayload {
    "The updated customer object."
    customer: Customer
    "List of errors that occurred executing the mutation."
    customerUserErrors: [CustomerUserError!]!
    "List of errors that occurred executing the mutation."
    userErrors: [UserError!]! @deprecated(reason : "Use `customerUserErrors` instead")
}

"Return type for `customerRecover` mutation."
type CustomerRecoverPayload {
    "List of errors that occurred executing the mutation."
    customerUserErrors: [CustomerUserError!]!
    "List of errors that occurred executing the mutation."
    userErrors: [UserError!]! @deprecated(reason : "Use `customerUserErrors` instead")
}

"Return type for `customerResetByUrl` mutation."
type CustomerResetByUrlPayload {
    "The customer object which was reset."
    customer: Customer
    "A newly created customer access token object for the customer."
    customerAccessToken: CustomerAccessToken
    "List of errors that occurred executing the mutation."
    customerUserErrors: [CustomerUserError!]!
    "List of errors that occurred executing the mutation."
    userErrors: [UserError!]! @deprecated(reason : "Use `customerUserErrors` instead")
}

"Return type for `customerReset` mutation."
type CustomerResetPayload {
    "The customer object which was reset."
    customer: Customer
    "A newly created customer access token object for the customer."
    customerAccessToken: CustomerAccessToken
    "List of errors that occurred executing the mutation."
    customerUserErrors: [CustomerUserError!]!
    "List of errors that occurred executing the mutation."
    userErrors: [UserError!]! @deprecated(reason : "Use `customerUserErrors` instead")
}

"Return type for `customerUpdate` mutation."
type CustomerUpdatePayload {
    "The updated customer object."
    customer: Customer
    """

    The newly created customer access token. If the customer's password is updated, all previous access tokens
    (including the one used to perform this mutation) become invalid, and a new token is generated.
    """
    customerAccessToken: CustomerAccessToken
    "List of errors that occurred executing the mutation."
    customerUserErrors: [CustomerUserError!]!
    "List of errors that occurred executing the mutation."
    userErrors: [UserError!]! @deprecated(reason : "Use `customerUserErrors` instead")
}

"Represents an error that happens during execution of a customer mutation."
type CustomerUserError implements DisplayableError {
    "Error code to uniquely identify the error."
    code: CustomerErrorCode
    "Path to the input field which caused the error."
    field: [String!]
    "The error message."
    message: String!
}

"""

An amount discounting the line that has been allocated by a discount.
"""
type DiscountAllocation {
    "Amount of discount allocated."
    allocatedAmount: MoneyV2!
    "The discount this allocated amount originated from."
    discountApplication: DiscountApplication!
}

"""

An auto-generated type for paginating through multiple DiscountApplications.
"""
type DiscountApplicationConnection {
    "A list of edges."
    edges: [DiscountApplicationEdge!]!
    "Information to aid in pagination."
    pageInfo: PageInfo!
}

"""

An auto-generated type which holds one DiscountApplication and a cursor during pagination.
"""
type DiscountApplicationEdge {
    "A cursor for use in pagination."
    cursor: String!
    "The item at the end of DiscountApplicationEdge."
    node: DiscountApplication!
}

"""

Discount code applications capture the intentions of a discount code at
the time that it is applied.
"""
type DiscountCodeApplication implements DiscountApplication {
    "The method by which the discount's value is allocated to its entitled items."
    allocationMethod: DiscountApplicationAllocationMethod!
    "Specifies whether the discount code was applied successfully."
    applicable: Boolean!
    "The string identifying the discount code that was used at the time of application."
    code: String!
    "Which lines of targetType that the discount is allocated over."
    targetSelection: DiscountApplicationTargetSelection!
    "The type of line that the discount is applicable towards."
    targetType: DiscountApplicationTargetType!
    "The value of the discount application."
    value: PricingValue!
}

"Represents a web address."
type Domain {
    "The host name of the domain (eg: `example.com`)."
    host: String!
    "Whether SSL is enabled or not."
    sslEnabled: Boolean!
    "The URL of the domain (eg: `https://example.com`)."
    url: URL!
}

"Represents a video hosted outside of Shopify."
type ExternalVideo implements Media & Node {
    "A word or phrase to share the nature or contents of a media."
    alt: String
    "The URL."
    embeddedUrl: URL!
    "Globally unique identifier."
    id: ID!
    "The media content type."
    mediaContentType: MediaContentType!
    "The preview image for the media."
    previewImage: Image
}

"Represents a single fulfillment in an order."
type Fulfillment {
    "List of the fulfillment's line items."
    fulfillmentLineItems(
        "Returns the elements that come after the specified cursor."
        after: String,
        "Returns the elements that come before the specified cursor."
        before: String,
        "Returns up to the first `n` elements from the list."
        first: Int,
        "Returns up to the last `n` elements from the list."
        last: Int,
        "Reverse the order of the underlying list."
        reverse: Boolean = false
    ): FulfillmentLineItemConnection!
    "The name of the tracking company."
    trackingCompany: String
    """

    Tracking information associated with the fulfillment,
    such as the tracking number and tracking URL.
    """
    trackingInfo(
        "Truncate the array result to this size."
        first: Int
    ): [FulfillmentTrackingInfo!]!
}

"Represents a single line item in a fulfillment. There is at most one fulfillment line item for each order line item."
type FulfillmentLineItem {
    "The associated order's line item."
    lineItem: OrderLineItem!
    "The amount fulfilled in this fulfillment."
    quantity: Int!
}

"""

An auto-generated type for paginating through multiple FulfillmentLineItems.
"""
type FulfillmentLineItemConnection {
    "A list of edges."
    edges: [FulfillmentLineItemEdge!]!
    "Information to aid in pagination."
    pageInfo: PageInfo!
}

"""

An auto-generated type which holds one FulfillmentLineItem and a cursor during pagination.
"""
type FulfillmentLineItemEdge {
    "A cursor for use in pagination."
    cursor: String!
    "The item at the end of FulfillmentLineItemEdge."
    node: FulfillmentLineItem!
}

"Tracking information associated with the fulfillment."
type FulfillmentTrackingInfo {
    "The tracking number of the fulfillment."
    number: String
    "The URL to track the fulfillment."
    url: URL
}

"Represents an image resource."
type Image {
    "A word or phrase to share the nature or contents of an image."
    altText: String
    "A unique identifier for the image."
    id: ID
    """

    The location of the original image as a URL.

    If there are any existing transformations in the original source URL, they will remain and not be stripped.
    """
    originalSrc: URL!
    "The location of the image as a URL."
    src: URL! @deprecated(reason : "Previously an image had a single `src` field. This could either return the original image\nlocation or a URL that contained transformations such as sizing or scale.\n\nThese transformations were specified by arguments on the parent field.\n\nNow an image has two distinct URL fields: `originalSrc` and `transformedSrc`.\n\n* `originalSrc` - the original unmodified image URL\n* `transformedSrc` - the image URL with the specified transformations included\n\nTo migrate to the new fields, image transformations should be moved from the parent field to `transformedSrc`.\n\nBefore:\n```graphql\n{\n  shop {\n    productImages(maxWidth: 200, scale: 2) {\n      edges {\n        node {\n          src\n        }\n      }\n    }\n  }\n}\n```\n\nAfter:\n```graphql\n{\n  shop {\n    productImages {\n      edges {\n        node {\n          transformedSrc(maxWidth: 200, scale: 2)\n        }\n      }\n    }\n  }\n}\n```\n")
    """

    The location of the transformed image as a URL.

    All transformation arguments are considered "best-effort". If they can be applied to an image, they will be.
    Otherwise any transformations which an image type does not support will be ignored.
    """
    transformedSrc(
        "Crops the image according to the specified region."
        crop: CropRegion,
        "Image height in pixels between 1 and 5760."
        maxHeight: Int,
        "Image width in pixels between 1 and 5760."
        maxWidth: Int,
        "Best effort conversion of image into content type (SVG -> PNG, Anything -> JGP, Anything -> WEBP are supported)."
        preferredContentType: ImageContentType,
        "Image size multiplier for high-resolution retina displays. Must be between 1 and 3."
        scale: Int = 1
    ): URL!
}

"""

An auto-generated type for paginating through multiple Images.
"""
type ImageConnection {
    "A list of edges."
    edges: [ImageEdge!]!
    "Information to aid in pagination."
    pageInfo: PageInfo!
}

"""

An auto-generated type which holds one Image and a cursor during pagination.
"""
type ImageEdge {
    "A cursor for use in pagination."
    cursor: String!
    "The item at the end of ImageEdge."
    node: Image!
}

"Represents a mailing address for customers and shipping."
type MailingAddress implements Node {
    """

    The first line of the address. Typically the street address or PO Box number.
    """
    address1: String
    """

    The second line of the address. Typically the number of the apartment, suite, or unit.
    """
    address2: String
    """

    The name of the city, district, village, or town.
    """
    city: String
    """

    The name of the customer's company or organization.
    """
    company: String
    """

    The name of the country.
    """
    country: String
    """

    The two-letter code for the country of the address.

    For example, US.
    """
    countryCode: String @deprecated(reason : "Use `countryCodeV2` instead")
    """

    The two-letter code for the country of the address.

    For example, US.
    """
    countryCodeV2: CountryCode
    "The first name of the customer."
    firstName: String
    "A formatted version of the address, customized by the provided arguments."
    formatted(
        "Whether to include the customer's company in the formatted address."
        withCompany: Boolean = true,
        "Whether to include the customer's name in the formatted address."
        withName: Boolean = false
    ): [String!]!
    "A comma-separated list of the values for city, province, and country."
    formattedArea: String
    "Globally unique identifier."
    id: ID!
    "The last name of the customer."
    lastName: String
    "The latitude coordinate of the customer address."
    latitude: Float
    "The longitude coordinate of the customer address."
    longitude: Float
    """

    The full name of the customer, based on firstName and lastName.
    """
    name: String
    """

    A unique phone number for the customer.

    Formatted using E.164 standard. For example, _+16135551111_.
    """
    phone: String
    "The region of the address, such as the province, state, or district."
    province: String
    """

    The two-letter code for the region.

    For example, ON.
    """
    provinceCode: String
    "The zip or postal code of the address."
    zip: String
}

"""

An auto-generated type for paginating through multiple MailingAddresses.
"""
type MailingAddressConnection {
    "A list of edges."
    edges: [MailingAddressEdge!]!
    "Information to aid in pagination."
    pageInfo: PageInfo!
}

"""

An auto-generated type which holds one MailingAddress and a cursor during pagination.
"""
type MailingAddressEdge {
    "A cursor for use in pagination."
    cursor: String!
    "The item at the end of MailingAddressEdge."
    node: MailingAddress!
}

"""

Manual discount applications capture the intentions of a discount that was manually created.
"""
type ManualDiscountApplication implements DiscountApplication {
    "The method by which the discount's value is allocated to its entitled items."
    allocationMethod: DiscountApplicationAllocationMethod!
    "The description of the application."
    description: String
    "Which lines of targetType that the discount is allocated over."
    targetSelection: DiscountApplicationTargetSelection!
    "The type of line that the discount is applicable towards."
    targetType: DiscountApplicationTargetType!
    "The title of the application."
    title: String!
    "The value of the discount application."
    value: PricingValue!
}

"""

An auto-generated type for paginating through multiple Media.
"""
type MediaConnection {
    "A list of edges."
    edges: [MediaEdge!]!
    "Information to aid in pagination."
    pageInfo: PageInfo!
}

"""

An auto-generated type which holds one Media and a cursor during pagination.
"""
type MediaEdge {
    "A cursor for use in pagination."
    cursor: String!
    "The item at the end of MediaEdge."
    node: Media!
}

"Represents a Shopify hosted image."
type MediaImage implements Media & Node {
    "A word or phrase to share the nature or contents of a media."
    alt: String
    "Globally unique identifier."
    id: ID!
    "The image for the media."
    image: Image
    "The media content type."
    mediaContentType: MediaContentType!
    "The preview image for the media."
    previewImage: Image
}

"""

Metafields represent custom metadata attached to a resource. Metafields can be sorted into namespaces and are
comprised of keys, values, and value types.
"""
type Metafield implements Node {
    "The date and time when the storefront metafield was created."
    createdAt: DateTime!
    "The description of a metafield."
    description: String
    "Globally unique identifier."
    id: ID!
    "The key name for a metafield."
    key: String!
    "The namespace for a metafield."
    namespace: String!
    "The parent object that the metafield belongs to."
    parentResource: MetafieldParentResource!
    "The date and time when the storefront metafield was updated."
    updatedAt: DateTime!
    "The value of a metafield."
    value: String!
    "Represents the metafield value type."
    valueType: MetafieldValueType!
}

"""

An auto-generated type for paginating through multiple Metafields.
"""
type MetafieldConnection {
    "A list of edges."
    edges: [MetafieldEdge!]!
    "Information to aid in pagination."
    pageInfo: PageInfo!
}

"""

An auto-generated type which holds one Metafield and a cursor during pagination.
"""
type MetafieldEdge {
    "A cursor for use in pagination."
    cursor: String!
    "The item at the end of MetafieldEdge."
    node: Metafield!
}

"Represents a Shopify hosted 3D model."
type Model3d implements Media & Node {
    "A word or phrase to share the nature or contents of a media."
    alt: String
    "Globally unique identifier."
    id: ID!
    "The media content type."
    mediaContentType: MediaContentType!
    "The preview image for the media."
    previewImage: Image
    "The sources for a 3d model."
    sources: [Model3dSource!]!
}

"Represents a source for a Shopify hosted 3d model."
type Model3dSource {
    "The filesize of the 3d model."
    filesize: Int!
    "The format of the 3d model."
    format: String!
    "The MIME type of the 3d model."
    mimeType: String!
    "The URL of the 3d model."
    url: String!
}

"""

A monetary value with currency.

To format currencies, combine this type's amount and currencyCode fields with your client's locale.

For example, in JavaScript you could use Intl.NumberFormat:

```js
new Intl.NumberFormat(locale, {
style: 'currency',
currency: currencyCode
}).format(amount);

Other formatting libraries include:

iOS - NumberFormatter
Android - NumberFormat
PHP - NumberFormatter

For a more general solution, the [Unicode CLDR number formatting database] is available with many implementations
(such as TwitterCldr).
"""
type MoneyV2 {
"Decimal money amount."
amount: Decimal!
"Currency of the money."
currencyCode: CurrencyCode!
}
"""
An auto-generated type for paginating through multiple MoneyV2s.
"""
type MoneyV2Connection {
"A list of edges."
edges: [MoneyV2Edge!]!
"Information to aid in pagination."
pageInfo: PageInfo!
}
"""
An auto-generated type which holds one MoneyV2 and a cursor during pagination.
"""
type MoneyV2Edge {
"A cursor for use in pagination."
cursor: String!
"The item at the end of MoneyV2Edge."
node: MoneyV2!
}
"The schema’s entry-point for mutations. This acts as the public, top-level API from which all mutation queries must start."
type Mutation {
"Updates the attributes of a checkout."
checkoutAttributesUpdate(
"The ID of the checkout."
checkoutId: ID!,
"The fields used to update a checkout's attributes."
input: CheckoutAttributesUpdateInput!
): CheckoutAttributesUpdatePayload @deprecated(reason : "Use checkoutAttributesUpdateV2 instead")
"Updates the attributes of a checkout."
checkoutAttributesUpdateV2(
"The ID of the checkout."
checkoutId: ID!,
"The checkout attributes to update."
input: CheckoutAttributesUpdateV2Input!
): CheckoutAttributesUpdateV2Payload
"Completes a checkout without providing payment information. You can use this mutation for free items or items whose purchase price is covered by a gift card."
checkoutCompleteFree(
"The ID of the checkout."
checkoutId: ID!
): CheckoutCompleteFreePayload
"Completes a checkout using a credit card token from Shopify's Vault."
checkoutCompleteWithCreditCard(
"The ID of the checkout."
checkoutId: ID!,
"The credit card info to apply as a payment."
payment: CreditCardPaymentInput!
): CheckoutCompleteWithCreditCardPayload @deprecated(reason : "Use checkoutCompleteWithCreditCardV2 instead")
"Completes a checkout using a credit card token from Shopify's card vault. Before you can complete checkouts using CheckoutCompleteWithCreditCardV2, you need to  request payment processing."
checkoutCompleteWithCreditCardV2(
"The ID of the checkout."
checkoutId: ID!,
"The credit card info to apply as a payment."
payment: CreditCardPaymentInputV2!
): CheckoutCompleteWithCreditCardV2Payload
"Completes a checkout with a tokenized payment."
checkoutCompleteWithTokenizedPayment(
"The ID of the checkout."
checkoutId: ID!,
"The info to apply as a tokenized payment."
payment: TokenizedPaymentInput!
): CheckoutCompleteWithTokenizedPaymentPayload @deprecated(reason : "Use checkoutCompleteWithTokenizedPaymentV2 instead")
"Completes a checkout with a tokenized payment."
checkoutCompleteWithTokenizedPaymentV2(
"The ID of the checkout."
checkoutId: ID!,
"The info to apply as a tokenized payment."
payment: TokenizedPaymentInputV2!
): CheckoutCompleteWithTokenizedPaymentV2Payload @deprecated(reason : "Use checkoutCompleteWithTokenizedPaymentV3 instead")
"Completes a checkout with a tokenized payment."
checkoutCompleteWithTokenizedPaymentV3(
"The ID of the checkout."
checkoutId: ID!,
"The info to apply as a tokenized payment."
payment: TokenizedPaymentInputV3!
): CheckoutCompleteWithTokenizedPaymentV3Payload
"Creates a new checkout."
checkoutCreate(
"The fields used to create a checkout."
input: CheckoutCreateInput!
): CheckoutCreatePayload
"Associates a customer to the checkout."
checkoutCustomerAssociate(
"The ID of the checkout."
checkoutId: ID!,
"The customer access token of the customer to associate."
customerAccessToken: String!
): CheckoutCustomerAssociatePayload @deprecated(reason : "Use checkoutCustomerAssociateV2 instead")
"Associates a customer to the checkout."
checkoutCustomerAssociateV2(
"The ID of the checkout."
checkoutId: ID!,
"The customer access token of the customer to associate."
customerAccessToken: String!
): CheckoutCustomerAssociateV2Payload
"Disassociates the current checkout customer from the checkout."
checkoutCustomerDisassociate(
"The ID of the checkout."
checkoutId: ID!
): CheckoutCustomerDisassociatePayload @deprecated(reason : "Use checkoutCustomerDisassociateV2 instead")
"Disassociates the current checkout customer from the checkout."
checkoutCustomerDisassociateV2(
"The ID of the checkout."
checkoutId: ID!
): CheckoutCustomerDisassociateV2Payload
"Applies a discount to an existing checkout using a discount code."
checkoutDiscountCodeApply(
"The ID of the checkout."
checkoutId: ID!,
"The discount code to apply to the checkout."
discountCode: String!
): CheckoutDiscountCodeApplyPayload @deprecated(reason : "Use checkoutDiscountCodeApplyV2 instead")
"Applies a discount to an existing checkout using a discount code."
checkoutDiscountCodeApplyV2(
"The ID of the checkout."
checkoutId: ID!,
"The discount code to apply to the checkout."
discountCode: String!
): CheckoutDiscountCodeApplyV2Payload
"Removes the applied discount from an existing checkout."
checkoutDiscountCodeRemove(
"The ID of the checkout."
checkoutId: ID!
): CheckoutDiscountCodeRemovePayload
"Updates the email on an existing checkout."
checkoutEmailUpdate(
"The ID of the checkout."
checkoutId: ID!,
"The email to update the checkout with."
email: String!
): CheckoutEmailUpdatePayload @deprecated(reason : "Use checkoutEmailUpdateV2 instead")
"Updates the email on an existing checkout."
checkoutEmailUpdateV2(
"The ID of the checkout."
checkoutId: ID!,
"The email to update the checkout with."
email: String!
): CheckoutEmailUpdateV2Payload
"Applies a gift card to an existing checkout using a gift card code. This will replace all currently applied gift cards."
checkoutGiftCardApply(
"The ID of the checkout."
checkoutId: ID!,
"The code of the gift card to apply on the checkout."
giftCardCode: String!
): CheckoutGiftCardApplyPayload @deprecated(reason : "Use checkoutGiftCardsAppend instead")
"Removes an applied gift card from the checkout."
checkoutGiftCardRemove(
"The ID of the Applied Gift Card to remove from the Checkout."
appliedGiftCardId: ID!,
"The ID of the checkout."
checkoutId: ID!
): CheckoutGiftCardRemovePayload @deprecated(reason : "Use checkoutGiftCardRemoveV2 instead")
"Removes an applied gift card from the checkout."
checkoutGiftCardRemoveV2(
"The ID of the Applied Gift Card to remove from the Checkout."
appliedGiftCardId: ID!,
"The ID of the checkout."
checkoutId: ID!
): CheckoutGiftCardRemoveV2Payload
"Appends gift cards to an existing checkout."
checkoutGiftCardsAppend(
"The ID of the checkout."
checkoutId: ID!,
"A list of gift card codes to append to the checkout."
giftCardCodes: [String!]!
): CheckoutGiftCardsAppendPayload
"Adds a list of line items to a checkout."
checkoutLineItemsAdd(
"The ID of the checkout."
checkoutId: ID!,
"A list of line item objects to add to the checkout."
lineItems: [CheckoutLineItemInput!]!
): CheckoutLineItemsAddPayload
"Removes line items from an existing checkout."
checkoutLineItemsRemove(
"The checkout on which to remove line items."
checkoutId: ID!,
"Line item ids to remove."
lineItemIds: [ID!]!
): CheckoutLineItemsRemovePayload
"Sets a list of line items to a checkout."
checkoutLineItemsReplace(
"The ID of the checkout."
checkoutId: ID!,
"A list of line item objects to set on the checkout."
lineItems: [CheckoutLineItemInput!]!
): CheckoutLineItemsReplacePayload
"Updates line items on a checkout."
checkoutLineItemsUpdate(
"The checkout on which to update line items."
checkoutId: ID!,
"Line items to update."
lineItems: [CheckoutLineItemUpdateInput!]!
): CheckoutLineItemsUpdatePayload
"Updates the shipping address of an existing checkout."
checkoutShippingAddressUpdate(
"The ID of the checkout."
checkoutId: ID!,
"The shipping address to where the line items will be shipped."
shippingAddress: MailingAddressInput!
): CheckoutShippingAddressUpdatePayload @deprecated(reason : "Use checkoutShippingAddressUpdateV2 instead")
"Updates the shipping address of an existing checkout."
checkoutShippingAddressUpdateV2(
"The ID of the checkout."
checkoutId: ID!,
"The shipping address to where the line items will be shipped."
shippingAddress: MailingAddressInput!
): CheckoutShippingAddressUpdateV2Payload
"Updates the shipping lines on an existing checkout."
checkoutShippingLineUpdate(
"The ID of the checkout."
checkoutId: ID!,
"A unique identifier to a Checkout’s shipping provider, price, and title combination, enabling the customer to select the availableShippingRates."
shippingRateHandle: String!
): CheckoutShippingLineUpdatePayload
"""
Creates a customer access token.
The customer access token is required to modify the customer object in any way.
"""
customerAccessTokenCreate(
    "The fields used to create a customer access token."
    input: CustomerAccessTokenCreateInput!
): CustomerAccessTokenCreatePayload
"""

Creates a customer access token using a multipass token instead of email and password.
A customer record is created if customer does not exist. If a customer record already
exists but the record is disabled, then it's enabled.
"""
customerAccessTokenCreateWithMultipass(
    "A valid multipass token to be authenticated."
    multipassToken: String!
): CustomerAccessTokenCreateWithMultipassPayload
"Permanently destroys a customer access token."
customerAccessTokenDelete(
    "The access token used to identify the customer."
    customerAccessToken: String!
): CustomerAccessTokenDeletePayload
"""

Renews a customer access token.

Access token renewal must happen *before* a token expires.
If a token has already expired, a new one should be created instead via `customerAccessTokenCreate`.
"""
customerAccessTokenRenew(
    "The access token used to identify the customer."
    customerAccessToken: String!
): CustomerAccessTokenRenewPayload
"Activates a customer."
customerActivate(
    "Specifies the customer to activate."
    id: ID!,
    "The fields used to activate a customer."
    input: CustomerActivateInput!
): CustomerActivatePayload
"Activates a customer with the activation url received from `customerCreate`."
customerActivateByUrl(
    "The customer activation URL."
    activationUrl: URL!,
    "A new password set during activation."
    password: String!
): CustomerActivateByUrlPayload
"Creates a new address for a customer."
customerAddressCreate(
    "The customer mailing address to create."
    address: MailingAddressInput!,
    "The access token used to identify the customer."
    customerAccessToken: String!
): CustomerAddressCreatePayload
"Permanently deletes the address of an existing customer."
customerAddressDelete(
    "The access token used to identify the customer."
    customerAccessToken: String!,
    "Specifies the address to delete."
    id: ID!
): CustomerAddressDeletePayload
"Updates the address of an existing customer."
customerAddressUpdate(
    "The customer’s mailing address."
    address: MailingAddressInput!,
    "The access token used to identify the customer."
    customerAccessToken: String!,
    "Specifies the customer address to update."
    id: ID!
): CustomerAddressUpdatePayload
"Creates a new customer."
customerCreate(
    "The fields used to create a new customer."
    input: CustomerCreateInput!
): CustomerCreatePayload
"Updates the default address of an existing customer."
customerDefaultAddressUpdate(
    "ID of the address to set as the new default for the customer."
    addressId: ID!,
    "The access token used to identify the customer."
    customerAccessToken: String!
): CustomerDefaultAddressUpdatePayload
"Sends a reset password email to the customer, as the first step in the reset password process."
customerRecover(
    "The email address of the customer to recover."
    email: String!
): CustomerRecoverPayload
"Resets a customer’s password with a token received from `CustomerRecover`."
customerReset(
    "Specifies the customer to reset."
    id: ID!,
    "The fields used to reset a customer’s password."
    input: CustomerResetInput!
): CustomerResetPayload
"Resets a customer’s password with the reset password url received from `CustomerRecover`."
customerResetByUrl(
    "New password that will be set as part of the reset password process."
    password: String!,
    "The customer's reset password url."
    resetUrl: URL!
): CustomerResetByUrlPayload
"Updates an existing customer."
customerUpdate(
    "The customer object input."
    customer: CustomerUpdateInput!,
    "The access token used to identify the customer."
    customerAccessToken: String!
): CustomerUpdatePayload

}
"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."
type Order implements Node {
"The reason for the order's cancellation. Returns null if the order wasn't canceled."
cancelReason: OrderCancelReason
"The date and time when the order was canceled. Returns null if the order wasn't canceled."
canceledAt: DateTime
"The code of the currency used for the payment."
currencyCode: CurrencyCode!
"The subtotal of line items and their discounts, excluding line items that have been removed. Does not contain order-level discounts, duties, shipping costs, or shipping discounts. Taxes are not included unless the order is a taxes-included order."
currentSubtotalPrice: MoneyV2!
"The total amount of the order, including duties, taxes and discounts, minus amounts for line items that have been removed."
currentTotalPrice: MoneyV2!
"The total of all taxes applied to the order, excluding taxes for returned line items."
currentTotalTax: MoneyV2!
"The locale code in which this specific order happened."
customerLocale: String
"The unique URL that the customer can use to access the order."
customerUrl: URL
"Discounts that have been applied on the order."
discountApplications(
"Returns the elements that come after the specified cursor."
after: String,
"Returns the elements that come before the specified cursor."
before: String,
"Returns up to the first n elements from the list."
first: Int,
"Returns up to the last n elements from the list."
last: Int,
"Reverse the order of the underlying list."
reverse: Boolean = false
): DiscountApplicationConnection!
"Whether the order has had any edits applied or not."
edited: Boolean!
"The customer's email address."
email: String
"The financial status of the order."
financialStatus: OrderFinancialStatus
"The fulfillment status for the order."
fulfillmentStatus: OrderFulfillmentStatus!
"Globally unique identifier."
id: ID!
"List of the order’s line items."
lineItems(
"Returns the elements that come after the specified cursor."
after: String,
"Returns the elements that come before the specified cursor."
before: String,
"Returns up to the first n elements from the list."
first: Int,
"Returns up to the last n elements from the list."
last: Int,
"Reverse the order of the underlying list."
reverse: Boolean = false
): OrderLineItemConnection!
"""
Unique identifier for the order that appears on the order.
For example, _#1000_ or _Store1001.
"""
name: String!
"A unique numeric identifier for the order for use by shop owner and customer."
orderNumber: Int!
"The total price of the order before any applied edits."
originalTotalPrice: MoneyV2!
"The customer's phone number for receiving SMS notifications."
phone: String
"""

The date and time when the order was imported.
This value can be set to dates in the past when importing from other systems.
If no value is provided, it will be auto-generated based on current date and time.
"""
processedAt: DateTime!
"The address to where the order will be shipped."
shippingAddress: MailingAddress
"""

The discounts that have been allocated onto the shipping line by discount applications.
"""
shippingDiscountAllocations: [DiscountAllocation!]!
"The unique URL for the order's status page."
statusUrl: URL!
"Price of the order before shipping and taxes."
subtotalPrice: Money @deprecated(reason : "Use `subtotalPriceV2` instead")
"Price of the order before duties, shipping and taxes."
subtotalPriceV2: MoneyV2
"List of the order’s successful fulfillments."
successfulFulfillments(
    "Truncate the array result to this size."
    first: Int
): [Fulfillment!]
"The sum of all the prices of all the items in the order, taxes and discounts included (must be positive)."
totalPrice: Money! @deprecated(reason : "Use `totalPriceV2` instead")
"The sum of all the prices of all the items in the order, duties, taxes and discounts included (must be positive)."
totalPriceV2: MoneyV2!
"The total amount that has been refunded."
totalRefunded: Money! @deprecated(reason : "Use `totalRefundedV2` instead")
"The total amount that has been refunded."
totalRefundedV2: MoneyV2!
"The total cost of shipping."
totalShippingPrice: Money! @deprecated(reason : "Use `totalShippingPriceV2` instead")
"The total cost of shipping."
totalShippingPriceV2: MoneyV2!
"The total cost of taxes."
totalTax: Money @deprecated(reason : "Use `totalTaxV2` instead")
"The total cost of taxes."
totalTaxV2: MoneyV2

}
"""
An auto-generated type for paginating through multiple Orders.
"""
type OrderConnection {
"A list of edges."
edges: [OrderEdge!]!
"Information to aid in pagination."
pageInfo: PageInfo!
}
"""
An auto-generated type which holds one Order and a cursor during pagination.
"""
type OrderEdge {
"A cursor for use in pagination."
cursor: String!
"The item at the end of OrderEdge."
node: Order!
}
"Represents a single line in an order. There is one line item for each distinct product variant."
type OrderLineItem {
"The number of entries associated to the line item minus the items that have been removed."
currentQuantity: Int!
"List of custom attributes associated to the line item."
customAttributes: [Attribute!]!
"The discounts that have been allocated onto the order line item by discount applications."
discountAllocations: [DiscountAllocation!]!
"The total price of the line item, including discounts, and displayed in the presentment currency."
discountedTotalPrice: MoneyV2!
"The total price of the line item, not including any discounts. The total price is calculated using the original unit price multiplied by the quantity, and it is displayed in the presentment currency."
originalTotalPrice: MoneyV2!
"The number of products variants associated to the line item."
quantity: Int!
"The title of the product combined with title of the variant."
title: String!
"The product variant object associated to the line item."
variant: ProductVariant
}
"""
An auto-generated type for paginating through multiple OrderLineItems.
"""
type OrderLineItemConnection {
"A list of edges."
edges: [OrderLineItemEdge!]!
"Information to aid in pagination."
pageInfo: PageInfo!
}
"""
An auto-generated type which holds one OrderLineItem and a cursor during pagination.
"""
type OrderLineItemEdge {
"A cursor for use in pagination."
cursor: String!
"The item at the end of OrderLineItemEdge."
node: OrderLineItem!
}
"Shopify merchants can create pages to hold static HTML content. Each Page object represents a custom page on the online store."
type Page implements Node {
"The description of the page, complete with HTML formatting."
body: HTML!
"Summary of the page body."
bodySummary: String!
"The timestamp of the page creation."
createdAt: DateTime!
"A human-friendly unique string for the page automatically generated from its title."
handle: String!
"Globally unique identifier."
id: ID!
"The title of the page."
title: String!
"The timestamp of the latest page update."
updatedAt: DateTime!
"The url pointing to the page accessible from the web."
url: URL!
}
"""
An auto-generated type for paginating through multiple Pages.
"""
type PageConnection {
"A list of edges."
edges: [PageEdge!]!
"Information to aid in pagination."
pageInfo: PageInfo!
}
"""
An auto-generated type which holds one Page and a cursor during pagination.
"""
type PageEdge {
"A cursor for use in pagination."
cursor: String!
"The item at the end of PageEdge."
node: Page!
}
"Information about pagination in a connection."
type PageInfo {
"Indicates if there are more pages to fetch."
hasNextPage: Boolean!
"Indicates if there are any pages prior to the current page."
hasPreviousPage: Boolean!
}
"A payment applied to a checkout."
type Payment implements Node {
"The amount of the payment."
amount: Money! @deprecated(reason : "Use amountV2 instead")
"The amount of the payment."
amountV2: MoneyV2!
"The billing address for the payment."
billingAddress: MailingAddress
"The checkout to which the payment belongs."
checkout: Checkout!
"The credit card used for the payment in the case of direct payments."
creditCard: CreditCard
"A message describing a processing error during asynchronous processing."
errorMessage: String
"Globally unique identifier."
id: ID!
"""
A client-side generated token to identify a payment and perform idempotent operations.
For more information, refer to
[Idempotent requests](https://shopify.dev/concepts/about-apis/idempotent-requests).
"""
idempotencyKey: String
"The URL where the customer needs to be redirected so they can complete the 3D Secure payment flow."
nextActionUrl: URL
"Whether or not the payment is still processing asynchronously."
ready: Boolean!
"A flag to indicate if the payment is to be done in test mode for gateways that support it."
test: Boolean!
"The actual transaction recorded by Shopify after having processed the payment with the gateway."
transaction: Transaction

}
"Settings related to payments."
type PaymentSettings {
"List of the card brands which the shop accepts."
acceptedCardBrands: [CardBrand!]!
"The url pointing to the endpoint to vault credit cards."
cardVaultUrl: URL!
"The country where the shop is located."
countryCode: CountryCode!
"The three-letter code for the shop's primary currency."
currencyCode: CurrencyCode!
"A list of enabled currencies (ISO 4217 format) that the shop accepts. Merchants can enable currencies from their Shopify Payments settings in the Shopify admin."
enabledPresentmentCurrencies: [CurrencyCode!]!
"The shop’s Shopify Payments account id."
shopifyPaymentsAccountId: String
"List of the digital wallets which the shop supports."
supportedDigitalWallets: [DigitalWallet!]!
}
"The value of the percentage pricing object."
type PricingPercentageValue {
"The percentage value of the object."
percentage: Float!
}
"""
A product represents an individual item for sale in a Shopify store. Products are often physical, but they don't have to be.
For 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).
"""
type Product implements HasMetafields & Node {
"Indicates if at least one product variant is available for sale."
availableForSale: Boolean!
"List of collections a product belongs to."
collections(
"Returns the elements that come after the specified cursor."
after: String,
"Returns the elements that come before the specified cursor."
before: String,
"Returns up to the first n elements from the list."
first: Int,
"Returns up to the last n elements from the list."
last: Int,
"Reverse the order of the underlying list."
reverse: Boolean = false
): CollectionConnection!