@plasmicpkgs/commerce-shopify 0.0.217 → 0.0.218
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/commerce-shopify.cjs.development.js +95 -124
- package/dist/commerce-shopify.cjs.development.js.map +1 -1
- package/dist/commerce-shopify.cjs.production.min.js +1 -1
- package/dist/commerce-shopify.cjs.production.min.js.map +1 -1
- package/dist/commerce-shopify.esm.js +95 -124
- package/dist/commerce-shopify.esm.js.map +1 -1
- package/package.json +4 -4
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"commerce-shopify.esm.js","sources":["../src/graphql-config.ts","../src/const.ts","../src/utils/graphql/gen/graphql.ts","../src/utils/graphql/gen/gql.ts","../src/utils/mutations/cart.ts","../src/utils/colors.ts","../src/utils/normalize.ts","../src/utils/cart-create.ts","../src/utils/get-cart-id.ts","../src/utils/queries/get-cart-query.ts","../src/cart/use-cart.tsx","../src/cart/use-add-item.tsx","../src/cart/use-remove-item.tsx","../src/cart/use-update-item.tsx","../src/fetcher.ts","../src/utils/queries/get-product-query.ts","../src/product/use-product.tsx","../src/utils/get-sort-variables.ts","../src/utils/get-search-variables.ts","../src/utils/queries/get-all-products-query.ts","../src/utils/queries/get-collection-products-query.ts","../src/product/use-search.tsx","../src/utils/queries/get-all-product-vendors-query.ts","../src/site/use-brands.tsx","../src/utils/queries/get-all-collections-query.ts","../src/utils/queries/get-collection-query.ts","../src/site/use-categories.tsx","../src/provider.ts","../src/shopify.tsx","../src/registerCommerceProvider.tsx","../src/index.tsx"],"sourcesContent":["import type { CodegenConfig } from \"@graphql-codegen/cli\";\n\nexport const defaultStoreDomain = \"next-js-store.myshopify.com\";\nexport const defaultAccessToken = \"ef7d41c7bf7e1c214074d0d3047bcd7b\";\nexport const shopifyApiVersion = \"2025-01\";\n\nconst config: CodegenConfig = {\n schema: {\n [`https://${defaultStoreDomain}/api/${shopifyApiVersion}/graphql.json`]: {\n headers: {\n \"X-Shopify-Storefront-Access-Token\": defaultAccessToken,\n },\n },\n },\n generates: {\n \"./src/utils/graphql/gen/\": {\n preset: \"client\",\n presetConfig: {\n fragmentMasking: false,\n },\n config: {\n documentMode: \"string\",\n },\n },\n },\n documents: [\n \"./src/utils/fragments/*.{ts,tsx}\",\n \"./src/utils/mutations/*.{ts,tsx}\",\n \"./src/utils/queries/*.{ts,tsx}\",\n ],\n};\n\nexport default config;\n","export const SHOPIFY_CART_ID_COOKIE = \"shopify_cartId\";\nexport const SHOPIFY_CHECKOUT_URL_COOKIE = \"shopify_checkoutUrl\";\nexport const SHOPIFY_CUSTOMER_TOKEN_COOKIE = \"shopify_customerToken\";\nexport const SHOPIFY_COOKIE_EXPIRE = 30;\n","/* eslint-disable */\nimport { DocumentTypeDecoration } from \"@graphql-typed-document-node/core\";\nexport type Maybe<T> = T | null;\nexport type InputMaybe<T> = Maybe<T>;\nexport type Exact<T extends { [key: string]: unknown }> = {\n [K in keyof T]: T[K];\n};\nexport type MakeOptional<T, K extends keyof T> = Omit<T, K> & {\n [SubKey in K]?: Maybe<T[SubKey]>;\n};\nexport type MakeMaybe<T, K extends keyof T> = Omit<T, K> & {\n [SubKey in K]: Maybe<T[SubKey]>;\n};\nexport type MakeEmpty<\n T extends { [key: string]: unknown },\n K extends keyof T\n> = { [_ in K]?: never };\nexport type Incremental<T> =\n | T\n | {\n [P in keyof T]?: P extends \" $fragmentName\" | \"__typename\" ? T[P] : never;\n };\n/** All built-in and custom scalars, mapped to their actual values */\nexport type Scalars = {\n ID: { input: string; output: string };\n String: { input: string; output: string };\n Boolean: { input: boolean; output: boolean };\n Int: { input: number; output: number };\n Float: { input: number; output: number };\n /**\n * A string containing a hexadecimal representation of a color.\n *\n * For example, \"#6A8D48\".\n *\n */\n Color: { input: any; output: any };\n /**\n * Represents an [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601)-encoded date and time string.\n * For example, 3:50 pm on September 7, 2019 in the time zone of UTC (Coordinated Universal Time) is\n * represented as `\"2019-09-07T15:50:00Z`\".\n *\n */\n DateTime: { input: any; output: any };\n /**\n * A signed decimal number, which supports arbitrary precision and is serialized as a string.\n *\n * Example values: `\"29.99\"`, `\"29.999\"`.\n *\n */\n Decimal: { input: any; output: any };\n /**\n * A string containing HTML code. Refer to the [HTML spec](https://html.spec.whatwg.org/#elements-3) for a\n * complete list of HTML elements.\n *\n * Example value: `\"<p>Grey cotton knit sweater.</p>\"`\n *\n */\n HTML: { input: any; output: any };\n /** An ISO 8601-encoded datetime */\n ISO8601DateTime: { input: any; output: any };\n /**\n * A [JSON](https://www.json.org/json-en.html) object.\n *\n * Example value:\n * `{\n * \"product\": {\n * \"id\": \"gid://shopify/Product/1346443542550\",\n * \"title\": \"White T-shirt\",\n * \"options\": [{\n * \"name\": \"Size\",\n * \"values\": [\"M\", \"L\"]\n * }]\n * }\n * }`\n *\n */\n JSON: { input: any; output: any };\n /**\n * Represents an [RFC 3986](https://datatracker.ietf.org/doc/html/rfc3986) and\n * [RFC 3987](https://datatracker.ietf.org/doc/html/rfc3987)-compliant URI string.\n *\n * For example, `\"https://example.myshopify.com\"` is a valid URL. It includes a scheme (`https`) and a host\n * (`example.myshopify.com`).\n *\n */\n URL: { input: any; output: any };\n /**\n * An unsigned 64-bit integer. Represents whole numeric values between 0 and 2^64 - 1 encoded as a string of base-10 digits.\n *\n * Example value: `\"50\"`.\n *\n */\n UnsignedInt64: { input: any; output: any };\n};\n\n/**\n * A version of the API, as defined by [Shopify API versioning](https://shopify.dev/api/usage/versioning).\n * Versions are commonly referred to by their handle (for example, `2021-10`).\n *\n */\nexport type ApiVersion = {\n __typename?: \"ApiVersion\";\n /** The human-readable name of the version. */\n displayName: Scalars[\"String\"][\"output\"];\n /** The unique identifier of an ApiVersion. All supported API versions have a date-based (YYYY-MM) or `unstable` handle. */\n handle: Scalars[\"String\"][\"output\"];\n /** Whether the version is actively supported by Shopify. Supported API versions are guaranteed to be stable. Unsupported API versions include unstable, release candidate, and end-of-life versions that are marked as unsupported. For more information, refer to [Versioning](https://shopify.dev/api/usage/versioning). */\n supported: Scalars[\"Boolean\"][\"output\"];\n};\n\n/**\n * The input fields for submitting Apple Pay payment method information for checkout.\n *\n */\nexport type ApplePayWalletContentInput = {\n /** The customer's billing address. */\n billingAddress: MailingAddressInput;\n /** The data for the Apple Pay wallet. */\n data: Scalars[\"String\"][\"input\"];\n /** The header data for the Apple Pay wallet. */\n header: ApplePayWalletHeaderInput;\n /** The last digits of the card used to create the payment. */\n lastDigits?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n /** The signature for the Apple Pay wallet. */\n signature: Scalars[\"String\"][\"input\"];\n /** The version for the Apple Pay wallet. */\n version: Scalars[\"String\"][\"input\"];\n};\n\n/**\n * The input fields for submitting wallet payment method information for checkout.\n *\n */\nexport type ApplePayWalletHeaderInput = {\n /** The application data for the Apple Pay wallet. */\n applicationData?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n /** The ephemeral public key for the Apple Pay wallet. */\n ephemeralPublicKey: Scalars[\"String\"][\"input\"];\n /** The public key hash for the Apple Pay wallet. */\n publicKeyHash: Scalars[\"String\"][\"input\"];\n /** The transaction ID for the Apple Pay wallet. */\n transactionId: Scalars[\"String\"][\"input\"];\n};\n\n/** Details about the gift card used on the checkout. */\nexport type AppliedGiftCard = Node & {\n __typename?: \"AppliedGiftCard\";\n /** The amount that was taken from the gift card by applying it. */\n amountUsed: MoneyV2;\n /**\n * The amount that was taken from the gift card by applying it.\n * @deprecated Use `amountUsed` instead.\n */\n amountUsedV2: MoneyV2;\n /** The amount left on the gift card. */\n balance: MoneyV2;\n /**\n * The amount left on the gift card.\n * @deprecated Use `balance` instead.\n */\n balanceV2: MoneyV2;\n /** A globally-unique ID. */\n id: Scalars[\"ID\"][\"output\"];\n /** The last characters of the gift card. */\n lastCharacters: Scalars[\"String\"][\"output\"];\n /** The amount that was applied to the checkout in its currency. */\n presentmentAmountUsed: MoneyV2;\n};\n\n/** An article in an online store blog. */\nexport type Article = HasMetafields &\n Node &\n OnlineStorePublishable &\n Trackable & {\n __typename?: \"Article\";\n /**\n * The article's author.\n * @deprecated Use `authorV2` instead.\n */\n author: ArticleAuthor;\n /** The article's author. */\n authorV2?: Maybe<ArticleAuthor>;\n /** The blog that the article belongs to. */\n blog: Blog;\n /** List of comments posted on the article. */\n comments: CommentConnection;\n /** Stripped content of the article, single line with HTML tags removed. */\n content: Scalars[\"String\"][\"output\"];\n /** The content of the article, complete with HTML formatting. */\n contentHtml: Scalars[\"HTML\"][\"output\"];\n /** Stripped excerpt of the article, single line with HTML tags removed. */\n excerpt?: Maybe<Scalars[\"String\"][\"output\"]>;\n /** The excerpt of the article, complete with HTML formatting. */\n excerptHtml?: Maybe<Scalars[\"HTML\"][\"output\"]>;\n /** A human-friendly unique string for the Article automatically generated from its title. */\n handle: Scalars[\"String\"][\"output\"];\n /** A globally-unique ID. */\n id: Scalars[\"ID\"][\"output\"];\n /** The image associated with the article. */\n image?: Maybe<Image>;\n /** A [custom field](https://shopify.dev/docs/apps/build/custom-data), including its `namespace` and `key`, that's associated with a Shopify resource for the purposes of adding and storing additional information. */\n metafield?: Maybe<Metafield>;\n /** A list of [custom fields](/docs/apps/build/custom-data) that a merchant associates with a Shopify resource. */\n metafields: Array<Maybe<Metafield>>;\n /** The URL used for viewing the resource on the shop's Online Store. Returns `null` if the resource is currently not published to the Online Store sales channel. */\n onlineStoreUrl?: Maybe<Scalars[\"URL\"][\"output\"]>;\n /** The date and time when the article was published. */\n publishedAt: Scalars[\"DateTime\"][\"output\"];\n /** The article’s SEO information. */\n seo?: Maybe<Seo>;\n /**\n * A categorization that a article can be tagged with.\n *\n */\n tags: Array<Scalars[\"String\"][\"output\"]>;\n /** The article’s name. */\n title: Scalars[\"String\"][\"output\"];\n /** URL parameters to be added to a page URL to track the origin of on-site search traffic for [analytics reporting](https://help.shopify.com/manual/reports-and-analytics/shopify-reports/report-types/default-reports/behaviour-reports). Returns a result when accessed through the [search](https://shopify.dev/docs/api/storefront/current/queries/search) or [predictiveSearch](https://shopify.dev/docs/api/storefront/current/queries/predictiveSearch) queries, otherwise returns null. */\n trackingParameters?: Maybe<Scalars[\"String\"][\"output\"]>;\n };\n\n/** An article in an online store blog. */\nexport type ArticleCommentsArgs = {\n after?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n before?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n first?: InputMaybe<Scalars[\"Int\"][\"input\"]>;\n last?: InputMaybe<Scalars[\"Int\"][\"input\"]>;\n reverse?: InputMaybe<Scalars[\"Boolean\"][\"input\"]>;\n};\n\n/** An article in an online store blog. */\nexport type ArticleContentArgs = {\n truncateAt?: InputMaybe<Scalars[\"Int\"][\"input\"]>;\n};\n\n/** An article in an online store blog. */\nexport type ArticleExcerptArgs = {\n truncateAt?: InputMaybe<Scalars[\"Int\"][\"input\"]>;\n};\n\n/** An article in an online store blog. */\nexport type ArticleMetafieldArgs = {\n key: Scalars[\"String\"][\"input\"];\n namespace?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n};\n\n/** An article in an online store blog. */\nexport type ArticleMetafieldsArgs = {\n identifiers: Array<HasMetafieldsIdentifier>;\n};\n\n/** The author of an article. */\nexport type ArticleAuthor = {\n __typename?: \"ArticleAuthor\";\n /** The author's bio. */\n bio?: Maybe<Scalars[\"String\"][\"output\"]>;\n /** The author’s email. */\n email: Scalars[\"String\"][\"output\"];\n /** The author's first name. */\n firstName: Scalars[\"String\"][\"output\"];\n /** The author's last name. */\n lastName: Scalars[\"String\"][\"output\"];\n /** The author's full name. */\n name: Scalars[\"String\"][\"output\"];\n};\n\n/**\n * An auto-generated type for paginating through multiple Articles.\n *\n */\nexport type ArticleConnection = {\n __typename?: \"ArticleConnection\";\n /** A list of edges. */\n edges: Array<ArticleEdge>;\n /** A list of the nodes contained in ArticleEdge. */\n nodes: Array<Article>;\n /** Information to aid in pagination. */\n pageInfo: PageInfo;\n};\n\n/**\n * An auto-generated type which holds one Article and a cursor during pagination.\n *\n */\nexport type ArticleEdge = {\n __typename?: \"ArticleEdge\";\n /** A cursor for use in pagination. */\n cursor: Scalars[\"String\"][\"output\"];\n /** The item at the end of ArticleEdge. */\n node: Article;\n};\n\n/** The set of valid sort keys for the Article query. */\nexport enum ArticleSortKeys {\n /** Sort by the `author` value. */\n Author = \"AUTHOR\",\n /** Sort by the `blog_title` value. */\n BlogTitle = \"BLOG_TITLE\",\n /** Sort by the `id` value. */\n Id = \"ID\",\n /** Sort by the `published_at` value. */\n PublishedAt = \"PUBLISHED_AT\",\n /**\n * Sort by relevance to the search terms when the `query` parameter is specified on the connection.\n * Don't use this sort key when no search query is specified.\n *\n */\n Relevance = \"RELEVANCE\",\n /** Sort by the `title` value. */\n Title = \"TITLE\",\n /** Sort by the `updated_at` value. */\n UpdatedAt = \"UPDATED_AT\",\n}\n\n/** Represents a generic custom attribute, such as whether an order is a customer's first. */\nexport type Attribute = {\n __typename?: \"Attribute\";\n /**\n * The key or name of the attribute. For example, `\"customersFirstOrder\"`.\n *\n */\n key: Scalars[\"String\"][\"output\"];\n /**\n * The value of the attribute. For example, `\"true\"`.\n *\n */\n value?: Maybe<Scalars[\"String\"][\"output\"]>;\n};\n\n/** The input fields for an attribute. */\nexport type AttributeInput = {\n /** Key or name of the attribute. */\n key: Scalars[\"String\"][\"input\"];\n /** Value of the attribute. */\n value: Scalars[\"String\"][\"input\"];\n};\n\n/**\n * Automatic discount applications capture the intentions of a discount that was automatically applied.\n *\n */\nexport type AutomaticDiscountApplication = DiscountApplication & {\n __typename?: \"AutomaticDiscountApplication\";\n /** The method by which the discount's value is allocated to its entitled items. */\n allocationMethod: DiscountApplicationAllocationMethod;\n /** Which lines of targetType that the discount is allocated over. */\n targetSelection: DiscountApplicationTargetSelection;\n /** The type of line that the discount is applicable towards. */\n targetType: DiscountApplicationTargetType;\n /** The title of the application. */\n title: Scalars[\"String\"][\"output\"];\n /** The value of the discount application. */\n value: PricingValue;\n};\n\n/** Represents a cart line common fields. */\nexport type BaseCartLine = {\n /** An attribute associated with the cart line. */\n attribute?: Maybe<Attribute>;\n /** The attributes associated with the cart line. Attributes are represented as key-value pairs. */\n attributes: Array<Attribute>;\n /** The cost of the merchandise that the buyer will pay for at checkout. The costs are subject to change and changes will be reflected at checkout. */\n cost: CartLineCost;\n /** The discounts that have been applied to the cart line. */\n discountAllocations: Array<CartDiscountAllocation>;\n /**\n * The estimated cost of the merchandise that the buyer will pay for at checkout. The estimated costs are subject to change and changes will be reflected at checkout.\n * @deprecated Use `cost` instead.\n */\n estimatedCost: CartLineEstimatedCost;\n /** A globally-unique ID. */\n id: Scalars[\"ID\"][\"output\"];\n /** The merchandise that the buyer intends to purchase. */\n merchandise: Merchandise;\n /** The quantity of the merchandise that the customer intends to purchase. */\n quantity: Scalars[\"Int\"][\"output\"];\n /** The selling plan associated with the cart line and the effect that each selling plan has on variants when they're purchased. */\n sellingPlanAllocation?: Maybe<SellingPlanAllocation>;\n};\n\n/** Represents a cart line common fields. */\nexport type BaseCartLineAttributeArgs = {\n key: Scalars[\"String\"][\"input\"];\n};\n\n/**\n * An auto-generated type for paginating through multiple BaseCartLines.\n *\n */\nexport type BaseCartLineConnection = {\n __typename?: \"BaseCartLineConnection\";\n /** A list of edges. */\n edges: Array<BaseCartLineEdge>;\n /** A list of the nodes contained in BaseCartLineEdge. */\n nodes: Array<BaseCartLine>;\n /** Information to aid in pagination. */\n pageInfo: PageInfo;\n};\n\n/**\n * An auto-generated type which holds one BaseCartLine and a cursor during pagination.\n *\n */\nexport type BaseCartLineEdge = {\n __typename?: \"BaseCartLineEdge\";\n /** A cursor for use in pagination. */\n cursor: Scalars[\"String\"][\"output\"];\n /** The item at the end of BaseCartLineEdge. */\n node: BaseCartLine;\n};\n\n/** An online store blog. */\nexport type Blog = HasMetafields &\n Node &\n OnlineStorePublishable & {\n __typename?: \"Blog\";\n /** Find an article by its handle. */\n articleByHandle?: Maybe<Article>;\n /** List of the blog's articles. */\n articles: ArticleConnection;\n /** The authors who have contributed to the blog. */\n authors: Array<ArticleAuthor>;\n /**\n * A human-friendly unique string for the Blog automatically generated from its title.\n *\n */\n handle: Scalars[\"String\"][\"output\"];\n /** A globally-unique ID. */\n id: Scalars[\"ID\"][\"output\"];\n /** A [custom field](https://shopify.dev/docs/apps/build/custom-data), including its `namespace` and `key`, that's associated with a Shopify resource for the purposes of adding and storing additional information. */\n metafield?: Maybe<Metafield>;\n /** A list of [custom fields](/docs/apps/build/custom-data) that a merchant associates with a Shopify resource. */\n metafields: Array<Maybe<Metafield>>;\n /** The URL used for viewing the resource on the shop's Online Store. Returns `null` if the resource is currently not published to the Online Store sales channel. */\n onlineStoreUrl?: Maybe<Scalars[\"URL\"][\"output\"]>;\n /** The blog's SEO information. */\n seo?: Maybe<Seo>;\n /** The blogs’s title. */\n title: Scalars[\"String\"][\"output\"];\n };\n\n/** An online store blog. */\nexport type BlogArticleByHandleArgs = {\n handle: Scalars[\"String\"][\"input\"];\n};\n\n/** An online store blog. */\nexport type BlogArticlesArgs = {\n after?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n before?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n first?: InputMaybe<Scalars[\"Int\"][\"input\"]>;\n last?: InputMaybe<Scalars[\"Int\"][\"input\"]>;\n query?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n reverse?: InputMaybe<Scalars[\"Boolean\"][\"input\"]>;\n sortKey?: InputMaybe<ArticleSortKeys>;\n};\n\n/** An online store blog. */\nexport type BlogMetafieldArgs = {\n key: Scalars[\"String\"][\"input\"];\n namespace?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n};\n\n/** An online store blog. */\nexport type BlogMetafieldsArgs = {\n identifiers: Array<HasMetafieldsIdentifier>;\n};\n\n/**\n * An auto-generated type for paginating through multiple Blogs.\n *\n */\nexport type BlogConnection = {\n __typename?: \"BlogConnection\";\n /** A list of edges. */\n edges: Array<BlogEdge>;\n /** A list of the nodes contained in BlogEdge. */\n nodes: Array<Blog>;\n /** Information to aid in pagination. */\n pageInfo: PageInfo;\n};\n\n/**\n * An auto-generated type which holds one Blog and a cursor during pagination.\n *\n */\nexport type BlogEdge = {\n __typename?: \"BlogEdge\";\n /** A cursor for use in pagination. */\n cursor: Scalars[\"String\"][\"output\"];\n /** The item at the end of BlogEdge. */\n node: Blog;\n};\n\n/** The set of valid sort keys for the Blog query. */\nexport enum BlogSortKeys {\n /** Sort by the `handle` value. */\n Handle = \"HANDLE\",\n /** Sort by the `id` value. */\n Id = \"ID\",\n /**\n * Sort by relevance to the search terms when the `query` parameter is specified on the connection.\n * Don't use this sort key when no search query is specified.\n *\n */\n Relevance = \"RELEVANCE\",\n /** Sort by the `title` value. */\n Title = \"TITLE\",\n}\n\n/**\n * The store's [branding configuration](https://help.shopify.com/en/manual/promoting-marketing/managing-brand-assets).\n *\n */\nexport type Brand = {\n __typename?: \"Brand\";\n /** The colors of the store's brand. */\n colors: BrandColors;\n /** The store's cover image. */\n coverImage?: Maybe<MediaImage>;\n /** The store's default logo. */\n logo?: Maybe<MediaImage>;\n /** The store's short description. */\n shortDescription?: Maybe<Scalars[\"String\"][\"output\"]>;\n /** The store's slogan. */\n slogan?: Maybe<Scalars[\"String\"][\"output\"]>;\n /** The store's preferred logo for square UI elements. */\n squareLogo?: Maybe<MediaImage>;\n};\n\n/**\n * A group of related colors for the shop's brand.\n *\n */\nexport type BrandColorGroup = {\n __typename?: \"BrandColorGroup\";\n /** The background color. */\n background?: Maybe<Scalars[\"Color\"][\"output\"]>;\n /** The foreground color. */\n foreground?: Maybe<Scalars[\"Color\"][\"output\"]>;\n};\n\n/**\n * The colors of the shop's brand.\n *\n */\nexport type BrandColors = {\n __typename?: \"BrandColors\";\n /** The shop's primary brand colors. */\n primary: Array<BrandColorGroup>;\n /** The shop's secondary brand colors. */\n secondary: Array<BrandColorGroup>;\n};\n\n/**\n * The input fields for obtaining the buyer's identity.\n *\n */\nexport type BuyerInput = {\n /** The identifier of the company location. */\n companyLocationId?: InputMaybe<Scalars[\"ID\"][\"input\"]>;\n /** The customer access token retrieved from the [Customer Accounts API](https://shopify.dev/docs/api/customer#step-obtain-access-token). */\n customerAccessToken: Scalars[\"String\"][\"input\"];\n};\n\n/** Card brand, such as Visa or Mastercard, which can be used for payments. */\nexport enum CardBrand {\n /** American Express. */\n AmericanExpress = \"AMERICAN_EXPRESS\",\n /** Diners Club. */\n DinersClub = \"DINERS_CLUB\",\n /** Discover. */\n Discover = \"DISCOVER\",\n /** JCB. */\n Jcb = \"JCB\",\n /** Mastercard. */\n Mastercard = \"MASTERCARD\",\n /** Visa. */\n Visa = \"VISA\",\n}\n\n/**\n * A cart represents the merchandise that a buyer intends to purchase,\n * and the estimated cost associated with the cart. Learn how to\n * [interact with a cart](https://shopify.dev/custom-storefronts/internationalization/international-pricing)\n * during a customer's session.\n *\n */\nexport type Cart = HasMetafields &\n Node & {\n __typename?: \"Cart\";\n /** The gift cards that have been applied to the cart. */\n appliedGiftCards: Array<AppliedGiftCard>;\n /** An attribute associated with the cart. */\n attribute?: Maybe<Attribute>;\n /** The attributes associated with the cart. Attributes are represented as key-value pairs. */\n attributes: Array<Attribute>;\n /** Information about the buyer that's interacting with the cart. */\n buyerIdentity: CartBuyerIdentity;\n /** The URL of the checkout for the cart. */\n checkoutUrl: Scalars[\"URL\"][\"output\"];\n /** The estimated costs that the buyer will pay at checkout. The costs are subject to change and changes will be reflected at checkout. The `cost` field uses the `buyerIdentity` field to determine [international pricing](https://shopify.dev/custom-storefronts/internationalization/international-pricing). */\n cost: CartCost;\n /** The date and time when the cart was created. */\n createdAt: Scalars[\"DateTime\"][\"output\"];\n /** The delivery properties of the cart. */\n delivery: CartDelivery;\n /**\n * The delivery groups available for the cart, based on the buyer identity default\n * delivery address preference or the default address of the logged-in customer.\n *\n */\n deliveryGroups: CartDeliveryGroupConnection;\n /** The discounts that have been applied to the entire cart. */\n discountAllocations: Array<CartDiscountAllocation>;\n /** The case-insensitive discount codes that the customer added at checkout. */\n discountCodes: Array<CartDiscountCode>;\n /**\n * The estimated costs that the buyer will pay at checkout. The estimated costs are subject to change and changes will be reflected at checkout. The `estimatedCost` field uses the `buyerIdentity` field to determine [international pricing](https://shopify.dev/custom-storefronts/internationalization/international-pricing).\n * @deprecated Use `cost` instead.\n */\n estimatedCost: CartEstimatedCost;\n /** A globally-unique ID. */\n id: Scalars[\"ID\"][\"output\"];\n /** A list of lines containing information about the items the customer intends to purchase. */\n lines: BaseCartLineConnection;\n /** A [custom field](https://shopify.dev/docs/apps/build/custom-data), including its `namespace` and `key`, that's associated with a Shopify resource for the purposes of adding and storing additional information. */\n metafield?: Maybe<Metafield>;\n /** A list of [custom fields](/docs/apps/build/custom-data) that a merchant associates with a Shopify resource. */\n metafields: Array<Maybe<Metafield>>;\n /** A note that's associated with the cart. For example, the note can be a personalized message to the buyer. */\n note?: Maybe<Scalars[\"String\"][\"output\"]>;\n /** The total number of items in the cart. */\n totalQuantity: Scalars[\"Int\"][\"output\"];\n /** The date and time when the cart was updated. */\n updatedAt: Scalars[\"DateTime\"][\"output\"];\n };\n\n/**\n * A cart represents the merchandise that a buyer intends to purchase,\n * and the estimated cost associated with the cart. Learn how to\n * [interact with a cart](https://shopify.dev/custom-storefronts/internationalization/international-pricing)\n * during a customer's session.\n *\n */\nexport type CartAttributeArgs = {\n key: Scalars[\"String\"][\"input\"];\n};\n\n/**\n * A cart represents the merchandise that a buyer intends to purchase,\n * and the estimated cost associated with the cart. Learn how to\n * [interact with a cart](https://shopify.dev/custom-storefronts/internationalization/international-pricing)\n * during a customer's session.\n *\n */\nexport type CartDeliveryGroupsArgs = {\n after?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n before?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n first?: InputMaybe<Scalars[\"Int\"][\"input\"]>;\n last?: InputMaybe<Scalars[\"Int\"][\"input\"]>;\n reverse?: InputMaybe<Scalars[\"Boolean\"][\"input\"]>;\n withCarrierRates?: InputMaybe<Scalars[\"Boolean\"][\"input\"]>;\n};\n\n/**\n * A cart represents the merchandise that a buyer intends to purchase,\n * and the estimated cost associated with the cart. Learn how to\n * [interact with a cart](https://shopify.dev/custom-storefronts/internationalization/international-pricing)\n * during a customer's session.\n *\n */\nexport type CartLinesArgs = {\n after?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n before?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n first?: InputMaybe<Scalars[\"Int\"][\"input\"]>;\n last?: InputMaybe<Scalars[\"Int\"][\"input\"]>;\n reverse?: InputMaybe<Scalars[\"Boolean\"][\"input\"]>;\n};\n\n/**\n * A cart represents the merchandise that a buyer intends to purchase,\n * and the estimated cost associated with the cart. Learn how to\n * [interact with a cart](https://shopify.dev/custom-storefronts/internationalization/international-pricing)\n * during a customer's session.\n *\n */\nexport type CartMetafieldArgs = {\n key: Scalars[\"String\"][\"input\"];\n namespace?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n};\n\n/**\n * A cart represents the merchandise that a buyer intends to purchase,\n * and the estimated cost associated with the cart. Learn how to\n * [interact with a cart](https://shopify.dev/custom-storefronts/internationalization/international-pricing)\n * during a customer's session.\n *\n */\nexport type CartMetafieldsArgs = {\n identifiers: Array<HasMetafieldsIdentifier>;\n};\n\n/** A delivery address of the buyer that is interacting with the cart. */\nexport type CartAddress = CartDeliveryAddress;\n\n/** The input fields to provide exactly one of a variety of delivery address types. */\nexport type CartAddressInput = {\n /** Copies details from the customer address to an address on this cart. */\n copyFromCustomerAddressId?: InputMaybe<Scalars[\"ID\"][\"input\"]>;\n /** A delivery address stored on this cart. */\n deliveryAddress?: InputMaybe<CartDeliveryAddressInput>;\n};\n\n/** Return type for `cartAttributesUpdate` mutation. */\nexport type CartAttributesUpdatePayload = {\n __typename?: \"CartAttributesUpdatePayload\";\n /** The updated cart. */\n cart?: Maybe<Cart>;\n /** The list of errors that occurred from executing the mutation. */\n userErrors: Array<CartUserError>;\n /** A list of warnings that occurred during the mutation. */\n warnings: Array<CartWarning>;\n};\n\n/** The discounts automatically applied to the cart line based on prerequisites that have been met. */\nexport type CartAutomaticDiscountAllocation = CartDiscountAllocation & {\n __typename?: \"CartAutomaticDiscountAllocation\";\n /** The discount that have been applied on the cart line. */\n discountApplication: CartDiscountApplication;\n /** The discounted amount that has been applied to the cart line. */\n discountedAmount: MoneyV2;\n /** The type of line that the discount is applicable towards. */\n targetType: DiscountApplicationTargetType;\n /** The title of the allocated discount. */\n title: Scalars[\"String\"][\"output\"];\n};\n\n/** Return type for `cartBillingAddressUpdate` mutation. */\nexport type CartBillingAddressUpdatePayload = {\n __typename?: \"CartBillingAddressUpdatePayload\";\n /** The updated cart. */\n cart?: Maybe<Cart>;\n /** The list of errors that occurred from executing the mutation. */\n userErrors: Array<CartUserError>;\n /** A list of warnings that occurred during the mutation. */\n warnings: Array<CartWarning>;\n};\n\n/** Represents information about the buyer that is interacting with the cart. */\nexport type CartBuyerIdentity = {\n __typename?: \"CartBuyerIdentity\";\n /** The country where the buyer is located. */\n countryCode?: Maybe<CountryCode>;\n /** The customer account associated with the cart. */\n customer?: Maybe<Customer>;\n /**\n * An ordered set of delivery addresses tied to the buyer that is interacting with the cart.\n * The rank of the preferences is determined by the order of the addresses in the array. Preferences\n * can be used to populate relevant fields in the checkout flow.\n *\n * As of the `2025-01` release, `buyerIdentity.deliveryAddressPreferences` is deprecated.\n * Delivery addresses are now part of the `CartDelivery` object and managed with three new mutations:\n * - `cartDeliveryAddressAdd`\n * - `cartDeliveryAddressUpdate`\n * - `cartDeliveryAddressDelete`\n *\n * @deprecated Use `cart.delivery` instead.\n */\n deliveryAddressPreferences: Array<DeliveryAddress>;\n /** The email address of the buyer that's interacting with the cart. */\n email?: Maybe<Scalars[\"String\"][\"output\"]>;\n /** The phone number of the buyer that's interacting with the cart. */\n phone?: Maybe<Scalars[\"String\"][\"output\"]>;\n /**\n * A set of preferences tied to the buyer interacting with the cart. Preferences are used to prefill fields in at checkout to streamline information collection.\n * Preferences are not synced back to the cart if they are overwritten.\n *\n */\n preferences?: Maybe<CartPreferences>;\n /** The purchasing company associated with the cart. */\n purchasingCompany?: Maybe<PurchasingCompany>;\n};\n\n/**\n * Specifies the input fields to update the buyer information associated with a cart.\n * Buyer identity is used to determine\n * [international pricing](https://shopify.dev/custom-storefronts/internationalization/international-pricing)\n * and should match the customer's shipping address.\n *\n */\nexport type CartBuyerIdentityInput = {\n /** The company location of the buyer that is interacting with the cart. */\n companyLocationId?: InputMaybe<Scalars[\"ID\"][\"input\"]>;\n /** The country where the buyer is located. */\n countryCode?: InputMaybe<CountryCode>;\n /** The access token used to identify the customer associated with the cart. */\n customerAccessToken?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n /** The email address of the buyer that is interacting with the cart. */\n email?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n /** The phone number of the buyer that is interacting with the cart. */\n phone?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n /**\n * A set of preferences tied to the buyer interacting with the cart. Preferences are used to prefill fields in at checkout to streamline information collection.\n * Preferences are not synced back to the cart if they are overwritten.\n *\n */\n preferences?: InputMaybe<CartPreferencesInput>;\n};\n\n/** Return type for `cartBuyerIdentityUpdate` mutation. */\nexport type CartBuyerIdentityUpdatePayload = {\n __typename?: \"CartBuyerIdentityUpdatePayload\";\n /** The updated cart. */\n cart?: Maybe<Cart>;\n /** The list of errors that occurred from executing the mutation. */\n userErrors: Array<CartUserError>;\n /** A list of warnings that occurred during the mutation. */\n warnings: Array<CartWarning>;\n};\n\n/**\n * Represents how credit card details are provided for a direct payment.\n *\n */\nexport enum CartCardSource {\n /**\n * The credit card was provided by a third party and vaulted on their system.\n * Using this value requires a separate permission from Shopify.\n *\n */\n SavedCreditCard = \"SAVED_CREDIT_CARD\",\n}\n\n/** The discount that has been applied to the cart line using a discount code. */\nexport type CartCodeDiscountAllocation = CartDiscountAllocation & {\n __typename?: \"CartCodeDiscountAllocation\";\n /** The code used to apply the discount. */\n code: Scalars[\"String\"][\"output\"];\n /** The discount that have been applied on the cart line. */\n discountApplication: CartDiscountApplication;\n /** The discounted amount that has been applied to the cart line. */\n discountedAmount: MoneyV2;\n /** The type of line that the discount is applicable towards. */\n targetType: DiscountApplicationTargetType;\n};\n\n/** The completion action to checkout a cart. */\nexport type CartCompletionAction = CompletePaymentChallenge;\n\n/** The required completion action to checkout a cart. */\nexport type CartCompletionActionRequired = {\n __typename?: \"CartCompletionActionRequired\";\n /** The action required to complete the cart completion attempt. */\n action?: Maybe<CartCompletionAction>;\n /** The ID of the cart completion attempt. */\n id: Scalars[\"String\"][\"output\"];\n};\n\n/** The result of a cart completion attempt. */\nexport type CartCompletionAttemptResult =\n | CartCompletionActionRequired\n | CartCompletionFailed\n | CartCompletionProcessing\n | CartCompletionSuccess;\n\n/** A failed completion to checkout a cart. */\nexport type CartCompletionFailed = {\n __typename?: \"CartCompletionFailed\";\n /** The errors that caused the checkout to fail. */\n errors: Array<CompletionError>;\n /** The ID of the cart completion attempt. */\n id: Scalars[\"String\"][\"output\"];\n};\n\n/** A cart checkout completion that's still processing. */\nexport type CartCompletionProcessing = {\n __typename?: \"CartCompletionProcessing\";\n /** The ID of the cart completion attempt. */\n id: Scalars[\"String\"][\"output\"];\n /** The number of milliseconds to wait before polling again. */\n pollDelay: Scalars[\"Int\"][\"output\"];\n};\n\n/** A successful completion to checkout a cart and a created order. */\nexport type CartCompletionSuccess = {\n __typename?: \"CartCompletionSuccess\";\n /** The date and time when the job completed. */\n completedAt?: Maybe<Scalars[\"DateTime\"][\"output\"]>;\n /** The ID of the cart completion attempt. */\n id: Scalars[\"String\"][\"output\"];\n /** The ID of the order that's created in Shopify. */\n orderId: Scalars[\"ID\"][\"output\"];\n /** The URL of the order confirmation in Shopify. */\n orderUrl: Scalars[\"URL\"][\"output\"];\n};\n\n/**\n * The costs that the buyer will pay at checkout.\n * The cart cost uses [`CartBuyerIdentity`](https://shopify.dev/api/storefront/reference/cart/cartbuyeridentity) to determine\n * [international pricing](https://shopify.dev/custom-storefronts/internationalization/international-pricing).\n *\n */\nexport type CartCost = {\n __typename?: \"CartCost\";\n /** The estimated amount, before taxes and discounts, for the customer to pay at checkout. The checkout charge amount doesn't include any deferred payments that'll be paid at a later date. If the cart has no deferred payments, then the checkout charge amount is equivalent to `subtotalAmount`. */\n checkoutChargeAmount: MoneyV2;\n /** The amount, before taxes and cart-level discounts, for the customer to pay. */\n subtotalAmount: MoneyV2;\n /** Whether the subtotal amount is estimated. */\n subtotalAmountEstimated: Scalars[\"Boolean\"][\"output\"];\n /** The total amount for the customer to pay. */\n totalAmount: MoneyV2;\n /** Whether the total amount is estimated. */\n totalAmountEstimated: Scalars[\"Boolean\"][\"output\"];\n /**\n * The duty amount for the customer to pay at checkout.\n * @deprecated Tax and duty amounts are no longer available and will be removed in a future version.\n * Please see [the changelog](https://shopify.dev/changelog/tax-and-duties-are-deprecated-in-storefront-cart-api)\n * for more information.\n *\n */\n totalDutyAmount?: Maybe<MoneyV2>;\n /**\n * Whether the total duty amount is estimated.\n * @deprecated Tax and duty amounts are no longer available and will be removed in a future version.\n * Please see [the changelog](https://shopify.dev/changelog/tax-and-duties-are-deprecated-in-storefront-cart-api)\n * for more information.\n *\n */\n totalDutyAmountEstimated: Scalars[\"Boolean\"][\"output\"];\n /**\n * The tax amount for the customer to pay at checkout.\n * @deprecated Tax and duty amounts are no longer available and will be removed in a future version.\n * Please see [the changelog](https://shopify.dev/changelog/tax-and-duties-are-deprecated-in-storefront-cart-api)\n * for more information.\n *\n */\n totalTaxAmount?: Maybe<MoneyV2>;\n /**\n * Whether the total tax amount is estimated.\n * @deprecated Tax and duty amounts are no longer available and will be removed in a future version.\n * Please see [the changelog](https://shopify.dev/changelog/tax-and-duties-are-deprecated-in-storefront-cart-api)\n * for more information.\n *\n */\n totalTaxAmountEstimated: Scalars[\"Boolean\"][\"output\"];\n};\n\n/** Return type for `cartCreate` mutation. */\nexport type CartCreatePayload = {\n __typename?: \"CartCreatePayload\";\n /** The new cart. */\n cart?: Maybe<Cart>;\n /** The list of errors that occurred from executing the mutation. */\n userErrors: Array<CartUserError>;\n /** A list of warnings that occurred during the mutation. */\n warnings: Array<CartWarning>;\n};\n\n/** The discounts automatically applied to the cart line based on prerequisites that have been met. */\nexport type CartCustomDiscountAllocation = CartDiscountAllocation & {\n __typename?: \"CartCustomDiscountAllocation\";\n /** The discount that have been applied on the cart line. */\n discountApplication: CartDiscountApplication;\n /** The discounted amount that has been applied to the cart line. */\n discountedAmount: MoneyV2;\n /** The type of line that the discount is applicable towards. */\n targetType: DiscountApplicationTargetType;\n /** The title of the allocated discount. */\n title: Scalars[\"String\"][\"output\"];\n};\n\n/**\n * The delivery properties of the cart.\n *\n */\nexport type CartDelivery = {\n __typename?: \"CartDelivery\";\n /** Selectable addresses to present to the buyer on the cart. */\n addresses: Array<CartSelectableAddress>;\n};\n\n/**\n * The delivery properties of the cart.\n *\n */\nexport type CartDeliveryAddressesArgs = {\n selected?: InputMaybe<Scalars[\"Boolean\"][\"input\"]>;\n};\n\n/** Represents a mailing address for customers and shipping. */\nexport type CartDeliveryAddress = {\n __typename?: \"CartDeliveryAddress\";\n /** The first line of the address. Typically the street address or PO Box number. */\n address1?: Maybe<Scalars[\"String\"][\"output\"]>;\n /**\n * The second line of the address. Typically the number of the apartment, suite, or unit.\n *\n */\n address2?: Maybe<Scalars[\"String\"][\"output\"]>;\n /** The name of the city, district, village, or town. */\n city?: Maybe<Scalars[\"String\"][\"output\"]>;\n /** The name of the customer's company or organization. */\n company?: Maybe<Scalars[\"String\"][\"output\"]>;\n /**\n * The two-letter code for the country of the address.\n *\n * For example, US.\n *\n */\n countryCode?: Maybe<Scalars[\"String\"][\"output\"]>;\n /** The first name of the customer. */\n firstName?: Maybe<Scalars[\"String\"][\"output\"]>;\n /** A formatted version of the address, customized by the provided arguments. */\n formatted: Array<Scalars[\"String\"][\"output\"]>;\n /** A comma-separated list of the values for city, province, and country. */\n formattedArea?: Maybe<Scalars[\"String\"][\"output\"]>;\n /** The last name of the customer. */\n lastName?: Maybe<Scalars[\"String\"][\"output\"]>;\n /** The latitude coordinate of the customer address. */\n latitude?: Maybe<Scalars[\"Float\"][\"output\"]>;\n /** The longitude coordinate of the customer address. */\n longitude?: Maybe<Scalars[\"Float\"][\"output\"]>;\n /** The full name of the customer, based on firstName and lastName. */\n name?: Maybe<Scalars[\"String\"][\"output\"]>;\n /**\n * A unique phone number for the customer.\n *\n * Formatted using E.164 standard. For example, _+16135551111_.\n *\n */\n phone?: Maybe<Scalars[\"String\"][\"output\"]>;\n /**\n * The alphanumeric code for the region.\n *\n * For example, ON.\n *\n */\n provinceCode?: Maybe<Scalars[\"String\"][\"output\"]>;\n /** The zip or postal code of the address. */\n zip?: Maybe<Scalars[\"String\"][\"output\"]>;\n};\n\n/** Represents a mailing address for customers and shipping. */\nexport type CartDeliveryAddressFormattedArgs = {\n withCompany?: InputMaybe<Scalars[\"Boolean\"][\"input\"]>;\n withName?: InputMaybe<Scalars[\"Boolean\"][\"input\"]>;\n};\n\n/** The input fields to create or update a cart address. */\nexport type CartDeliveryAddressInput = {\n /**\n * The first line of the address. Typically the street address or PO Box number.\n *\n */\n address1?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n /**\n * The second line of the address. Typically the number of the apartment, suite, or unit.\n *\n */\n address2?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n /**\n * The name of the city, district, village, or town.\n *\n */\n city?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n /**\n * The name of the customer's company or organization.\n *\n */\n company?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n /** The name of the country. */\n countryCode?: InputMaybe<CountryCode>;\n /** The first name of the customer. */\n firstName?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n /** The last name of the customer. */\n lastName?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n /**\n * A unique phone number for the customer.\n *\n * Formatted using E.164 standard. For example, _+16135551111_.\n *\n */\n phone?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n /** The region of the address, such as the province, state, or district. */\n provinceCode?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n /** The zip or postal code of the address. */\n zip?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n};\n\n/** Return type for `cartDeliveryAddressesAdd` mutation. */\nexport type CartDeliveryAddressesAddPayload = {\n __typename?: \"CartDeliveryAddressesAddPayload\";\n /** The updated cart. */\n cart?: Maybe<Cart>;\n /** The list of errors that occurred from executing the mutation. */\n userErrors: Array<CartUserError>;\n /** A list of warnings that occurred during the mutation. */\n warnings: Array<CartWarning>;\n};\n\n/** Return type for `cartDeliveryAddressesRemove` mutation. */\nexport type CartDeliveryAddressesRemovePayload = {\n __typename?: \"CartDeliveryAddressesRemovePayload\";\n /** The updated cart. */\n cart?: Maybe<Cart>;\n /** The list of errors that occurred from executing the mutation. */\n userErrors: Array<CartUserError>;\n /** A list of warnings that occurred during the mutation. */\n warnings: Array<CartWarning>;\n};\n\n/** Return type for `cartDeliveryAddressesUpdate` mutation. */\nexport type CartDeliveryAddressesUpdatePayload = {\n __typename?: \"CartDeliveryAddressesUpdatePayload\";\n /** The updated cart. */\n cart?: Maybe<Cart>;\n /** The list of errors that occurred from executing the mutation. */\n userErrors: Array<CartUserError>;\n /** A list of warnings that occurred during the mutation. */\n warnings: Array<CartWarning>;\n};\n\n/** Preferred location used to find the closest pick up point based on coordinates. */\nexport type CartDeliveryCoordinatesPreference = {\n __typename?: \"CartDeliveryCoordinatesPreference\";\n /**\n * The two-letter code for the country of the preferred location.\n *\n * For example, US.\n *\n */\n countryCode: CountryCode;\n /** The geographic latitude for a given location. Coordinates are required in order to set pickUpHandle for pickup points. */\n latitude: Scalars[\"Float\"][\"output\"];\n /** The geographic longitude for a given location. Coordinates are required in order to set pickUpHandle for pickup points. */\n longitude: Scalars[\"Float\"][\"output\"];\n};\n\n/** Preferred location used to find the closest pick up point based on coordinates. */\nexport type CartDeliveryCoordinatesPreferenceInput = {\n /**\n * The two-letter code for the country of the preferred location.\n *\n * For example, US.\n *\n */\n countryCode: CountryCode;\n /** The geographic latitude for a given location. Coordinates are required in order to set pickUpHandle for pickup points. */\n latitude: Scalars[\"Float\"][\"input\"];\n /** The geographic longitude for a given location. Coordinates are required in order to set pickUpHandle for pickup points. */\n longitude: Scalars[\"Float\"][\"input\"];\n};\n\n/** Information about the options available for one or more line items to be delivered to a specific address. */\nexport type CartDeliveryGroup = {\n __typename?: \"CartDeliveryGroup\";\n /** A list of cart lines for the delivery group. */\n cartLines: BaseCartLineConnection;\n /** The destination address for the delivery group. */\n deliveryAddress: MailingAddress;\n /** The delivery options available for the delivery group. */\n deliveryOptions: Array<CartDeliveryOption>;\n /** The type of merchandise in the delivery group. */\n groupType: CartDeliveryGroupType;\n /** The ID for the delivery group. */\n id: Scalars[\"ID\"][\"output\"];\n /** The selected delivery option for the delivery group. */\n selectedDeliveryOption?: Maybe<CartDeliveryOption>;\n};\n\n/** Information about the options available for one or more line items to be delivered to a specific address. */\nexport type CartDeliveryGroupCartLinesArgs = {\n after?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n before?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n first?: InputMaybe<Scalars[\"Int\"][\"input\"]>;\n last?: InputMaybe<Scalars[\"Int\"][\"input\"]>;\n reverse?: InputMaybe<Scalars[\"Boolean\"][\"input\"]>;\n};\n\n/**\n * An auto-generated type for paginating through multiple CartDeliveryGroups.\n *\n */\nexport type CartDeliveryGroupConnection = {\n __typename?: \"CartDeliveryGroupConnection\";\n /** A list of edges. */\n edges: Array<CartDeliveryGroupEdge>;\n /** A list of the nodes contained in CartDeliveryGroupEdge. */\n nodes: Array<CartDeliveryGroup>;\n /** Information to aid in pagination. */\n pageInfo: PageInfo;\n};\n\n/**\n * An auto-generated type which holds one CartDeliveryGroup and a cursor during pagination.\n *\n */\nexport type CartDeliveryGroupEdge = {\n __typename?: \"CartDeliveryGroupEdge\";\n /** A cursor for use in pagination. */\n cursor: Scalars[\"String\"][\"output\"];\n /** The item at the end of CartDeliveryGroupEdge. */\n node: CartDeliveryGroup;\n};\n\n/**\n * Defines what type of merchandise is in the delivery group.\n *\n */\nexport enum CartDeliveryGroupType {\n /**\n * The delivery group only contains merchandise that is either a one time purchase or a first delivery of\n * subscription merchandise.\n *\n */\n OneTimePurchase = \"ONE_TIME_PURCHASE\",\n /** The delivery group only contains subscription merchandise. */\n Subscription = \"SUBSCRIPTION\",\n}\n\n/** The input fields for the cart's delivery properties. */\nexport type CartDeliveryInput = {\n /**\n * Selectable addresses to present to the buyer on the cart.\n *\n * The input must not contain more than `250` values.\n */\n addresses?: InputMaybe<Array<CartSelectableAddressInput>>;\n};\n\n/** Information about a delivery option. */\nexport type CartDeliveryOption = {\n __typename?: \"CartDeliveryOption\";\n /** The code of the delivery option. */\n code?: Maybe<Scalars[\"String\"][\"output\"]>;\n /** The method for the delivery option. */\n deliveryMethodType: DeliveryMethodType;\n /** The description of the delivery option. */\n description?: Maybe<Scalars[\"String\"][\"output\"]>;\n /** The estimated cost for the delivery option. */\n estimatedCost: MoneyV2;\n /** The unique identifier of the delivery option. */\n handle: Scalars[\"String\"][\"output\"];\n /** The title of the delivery option. */\n title?: Maybe<Scalars[\"String\"][\"output\"]>;\n};\n\n/**\n * A set of preferences tied to the buyer interacting with the cart. Preferences are used to prefill fields in at checkout to streamline information collection.\n * Preferences are not synced back to the cart if they are overwritten.\n *\n */\nexport type CartDeliveryPreference = {\n __typename?: \"CartDeliveryPreference\";\n /** Preferred location used to find the closest pick up point based on coordinates. */\n coordinates?: Maybe<CartDeliveryCoordinatesPreference>;\n /** The preferred delivery methods such as shipping, local pickup or through pickup points. */\n deliveryMethod: Array<PreferenceDeliveryMethodType>;\n /**\n * The pickup handle prefills checkout fields with the location for either local pickup or pickup points delivery methods.\n * It accepts both location ID for local pickup and external IDs for pickup points.\n *\n */\n pickupHandle: Array<Scalars[\"String\"][\"output\"]>;\n};\n\n/** Delivery preferences can be used to prefill the delivery section at checkout. */\nexport type CartDeliveryPreferenceInput = {\n /** The coordinates of a delivery location in order of preference. */\n coordinates?: InputMaybe<CartDeliveryCoordinatesPreferenceInput>;\n /**\n * The preferred delivery methods such as shipping, local pickup or through pickup points.\n *\n * The input must not contain more than `250` values.\n */\n deliveryMethod?: InputMaybe<Array<PreferenceDeliveryMethodType>>;\n /**\n * The pickup handle prefills checkout fields with the location for either local pickup or pickup points delivery methods.\n * It accepts both location ID for local pickup and external IDs for pickup points.\n *\n * The input must not contain more than `250` values.\n */\n pickupHandle?: InputMaybe<Array<Scalars[\"String\"][\"input\"]>>;\n};\n\n/**\n * The input fields for submitting direct payment method information for checkout.\n *\n */\nexport type CartDirectPaymentMethodInput = {\n /** Indicates if the customer has accepted the subscription terms. Defaults to false. */\n acceptedSubscriptionTerms?: InputMaybe<Scalars[\"Boolean\"][\"input\"]>;\n /** The customer's billing address. */\n billingAddress: MailingAddressInput;\n /** The source of the credit card payment. */\n cardSource?: InputMaybe<CartCardSource>;\n /** The session ID for the direct payment method used to create the payment. */\n sessionId: Scalars[\"String\"][\"input\"];\n};\n\n/** The discounts that have been applied to the cart line. */\nexport type CartDiscountAllocation = {\n /** The discount that have been applied on the cart line. */\n discountApplication: CartDiscountApplication;\n /** The discounted amount that has been applied to the cart line. */\n discountedAmount: MoneyV2;\n /** The type of line that the discount is applicable towards. */\n targetType: DiscountApplicationTargetType;\n};\n\n/**\n * The discount application capture the intentions of a discount source at\n * the time of application.\n */\nexport type CartDiscountApplication = {\n __typename?: \"CartDiscountApplication\";\n /** The method by which the discount's value is allocated to its entitled items. */\n allocationMethod: DiscountApplicationAllocationMethod;\n /** Which lines of targetType that the discount is allocated over. */\n targetSelection: DiscountApplicationTargetSelection;\n /** The type of line that the discount is applicable towards. */\n targetType: DiscountApplicationTargetType;\n /** The value of the discount application. */\n value: PricingValue;\n};\n\n/** The discount codes applied to the cart. */\nexport type CartDiscountCode = {\n __typename?: \"CartDiscountCode\";\n /** Whether the discount code is applicable to the cart's current contents. */\n applicable: Scalars[\"Boolean\"][\"output\"];\n /** The code for the discount. */\n code: Scalars[\"String\"][\"output\"];\n};\n\n/** Return type for `cartDiscountCodesUpdate` mutation. */\nexport type CartDiscountCodesUpdatePayload = {\n __typename?: \"CartDiscountCodesUpdatePayload\";\n /** The updated cart. */\n cart?: Maybe<Cart>;\n /** The list of errors that occurred from executing the mutation. */\n userErrors: Array<CartUserError>;\n /** A list of warnings that occurred during the mutation. */\n warnings: Array<CartWarning>;\n};\n\n/** Possible error codes that can be returned by `CartUserError`. */\nexport enum CartErrorCode {\n /** The specified address field contains emojis. */\n AddressFieldContainsEmojis = \"ADDRESS_FIELD_CONTAINS_EMOJIS\",\n /** The specified address field contains HTML tags. */\n AddressFieldContainsHtmlTags = \"ADDRESS_FIELD_CONTAINS_HTML_TAGS\",\n /** The specified address field contains a URL. */\n AddressFieldContainsUrl = \"ADDRESS_FIELD_CONTAINS_URL\",\n /** The specified address field does not match the expected pattern. */\n AddressFieldDoesNotMatchExpectedPattern = \"ADDRESS_FIELD_DOES_NOT_MATCH_EXPECTED_PATTERN\",\n /** The specified address field is required. */\n AddressFieldIsRequired = \"ADDRESS_FIELD_IS_REQUIRED\",\n /** The specified address field is too long. */\n AddressFieldIsTooLong = \"ADDRESS_FIELD_IS_TOO_LONG\",\n /** The input value is invalid. */\n Invalid = \"INVALID\",\n /** Company location not found or not allowed. */\n InvalidCompanyLocation = \"INVALID_COMPANY_LOCATION\",\n /** The delivery address was not found. */\n InvalidDeliveryAddressId = \"INVALID_DELIVERY_ADDRESS_ID\",\n /** Delivery group was not found in cart. */\n InvalidDeliveryGroup = \"INVALID_DELIVERY_GROUP\",\n /** Delivery option was not valid. */\n InvalidDeliveryOption = \"INVALID_DELIVERY_OPTION\",\n /** The quantity must be a multiple of the specified increment. */\n InvalidIncrement = \"INVALID_INCREMENT\",\n /** Merchandise line was not found in cart. */\n InvalidMerchandiseLine = \"INVALID_MERCHANDISE_LINE\",\n /** The metafields were not valid. */\n InvalidMetafields = \"INVALID_METAFIELDS\",\n /** The payment wasn't valid. */\n InvalidPayment = \"INVALID_PAYMENT\",\n /** Cannot update payment on an empty cart */\n InvalidPaymentEmptyCart = \"INVALID_PAYMENT_EMPTY_CART\",\n /** The given zip code is invalid for the provided country. */\n InvalidZipCodeForCountry = \"INVALID_ZIP_CODE_FOR_COUNTRY\",\n /** The given zip code is invalid for the provided province. */\n InvalidZipCodeForProvince = \"INVALID_ZIP_CODE_FOR_PROVINCE\",\n /** The input value should be less than the maximum value allowed. */\n LessThan = \"LESS_THAN\",\n /** The quantity must be below the specified maximum for the item. */\n MaximumExceeded = \"MAXIMUM_EXCEEDED\",\n /** The quantity must be above the specified minimum for the item. */\n MinimumNotMet = \"MINIMUM_NOT_MET\",\n /** The customer access token is required when setting a company location. */\n MissingCustomerAccessToken = \"MISSING_CUSTOMER_ACCESS_TOKEN\",\n /** Missing discount code. */\n MissingDiscountCode = \"MISSING_DISCOUNT_CODE\",\n /** Missing note. */\n MissingNote = \"MISSING_NOTE\",\n /** The note length must be below the specified maximum. */\n NoteTooLong = \"NOTE_TOO_LONG\",\n /** Only one delivery address can be selected. */\n OnlyOneDeliveryAddressCanBeSelected = \"ONLY_ONE_DELIVERY_ADDRESS_CAN_BE_SELECTED\",\n /** The payment method is not supported. */\n PaymentMethodNotSupported = \"PAYMENT_METHOD_NOT_SUPPORTED\",\n /** The given province cannot be found. */\n ProvinceNotFound = \"PROVINCE_NOT_FOUND\",\n /** Too many delivery addresses on Cart. */\n TooManyDeliveryAddresses = \"TOO_MANY_DELIVERY_ADDRESSES\",\n /** A general error occurred during address validation. */\n UnspecifiedAddressError = \"UNSPECIFIED_ADDRESS_ERROR\",\n /** Validation failed. */\n ValidationCustom = \"VALIDATION_CUSTOM\",\n /** The given zip code is unsupported. */\n ZipCodeNotSupported = \"ZIP_CODE_NOT_SUPPORTED\",\n}\n\n/** The estimated costs that the buyer will pay at checkout. The estimated cost uses [`CartBuyerIdentity`](https://shopify.dev/api/storefront/reference/cart/cartbuyeridentity) to determine [international pricing](https://shopify.dev/custom-storefronts/internationalization/international-pricing). */\nexport type CartEstimatedCost = {\n __typename?: \"CartEstimatedCost\";\n /** The estimated amount, before taxes and discounts, for the customer to pay at checkout. The checkout charge amount doesn't include any deferred payments that'll be paid at a later date. If the cart has no deferred payments, then the checkout charge amount is equivalent to`subtotal_amount`. */\n checkoutChargeAmount: MoneyV2;\n /** The estimated amount, before taxes and discounts, for the customer to pay. */\n subtotalAmount: MoneyV2;\n /** The estimated total amount for the customer to pay. */\n totalAmount: MoneyV2;\n /** The estimated duty amount for the customer to pay at checkout. */\n totalDutyAmount?: Maybe<MoneyV2>;\n /** The estimated tax amount for the customer to pay at checkout. */\n totalTaxAmount?: Maybe<MoneyV2>;\n};\n\n/**\n * The input fields for submitting a billing address without a selected payment method.\n *\n */\nexport type CartFreePaymentMethodInput = {\n /** The customer's billing address. */\n billingAddress: MailingAddressInput;\n};\n\n/** Return type for `cartGiftCardCodesRemove` mutation. */\nexport type CartGiftCardCodesRemovePayload = {\n __typename?: \"CartGiftCardCodesRemovePayload\";\n /** The updated cart. */\n cart?: Maybe<Cart>;\n /** The list of errors that occurred from executing the mutation. */\n userErrors: Array<CartUserError>;\n /** A list of warnings that occurred during the mutation. */\n warnings: Array<CartWarning>;\n};\n\n/** Return type for `cartGiftCardCodesUpdate` mutation. */\nexport type CartGiftCardCodesUpdatePayload = {\n __typename?: \"CartGiftCardCodesUpdatePayload\";\n /** The updated cart. */\n cart?: Maybe<Cart>;\n /** The list of errors that occurred from executing the mutation. */\n userErrors: Array<CartUserError>;\n /** A list of warnings that occurred during the mutation. */\n warnings: Array<CartWarning>;\n};\n\n/** The input fields to create a cart. */\nexport type CartInput = {\n /**\n * An array of key-value pairs that contains additional information about the cart.\n *\n * The input must not contain more than `250` values.\n */\n attributes?: InputMaybe<Array<AttributeInput>>;\n /**\n * The customer associated with the cart. Used to determine [international pricing]\n * (https://shopify.dev/custom-storefronts/internationalization/international-pricing).\n * Buyer identity should match the customer's shipping address.\n *\n */\n buyerIdentity?: InputMaybe<CartBuyerIdentityInput>;\n /** The delivery-related fields for the cart. */\n delivery?: InputMaybe<CartDeliveryInput>;\n /**\n * The case-insensitive discount codes that the customer added at checkout.\n *\n * The input must not contain more than `250` values.\n */\n discountCodes?: InputMaybe<Array<Scalars[\"String\"][\"input\"]>>;\n /**\n * The case-insensitive gift card codes.\n *\n * The input must not contain more than `250` values.\n */\n giftCardCodes?: InputMaybe<Array<Scalars[\"String\"][\"input\"]>>;\n /**\n * A list of merchandise lines to add to the cart.\n *\n * The input must not contain more than `250` values.\n */\n lines?: InputMaybe<Array<CartLineInput>>;\n /**\n * The metafields to associate with this cart.\n *\n * The input must not contain more than `250` values.\n */\n metafields?: InputMaybe<Array<CartInputMetafieldInput>>;\n /**\n * A note that's associated with the cart. For example, the note can be a personalized message to the buyer.\n *\n */\n note?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n};\n\n/** The input fields for a cart metafield value to set. */\nexport type CartInputMetafieldInput = {\n /** The key name of the metafield. */\n key: Scalars[\"String\"][\"input\"];\n /**\n * The type of data that the cart metafield stores.\n * The type of data must be a [supported type](https://shopify.dev/apps/metafields/types).\n *\n */\n type: Scalars[\"String\"][\"input\"];\n /**\n * The data to store in the cart metafield. The data is always stored as a string, regardless of the metafield's type.\n *\n */\n value: Scalars[\"String\"][\"input\"];\n};\n\n/** Represents information about the merchandise in the cart. */\nexport type CartLine = BaseCartLine &\n Node & {\n __typename?: \"CartLine\";\n /** An attribute associated with the cart line. */\n attribute?: Maybe<Attribute>;\n /** The attributes associated with the cart line. Attributes are represented as key-value pairs. */\n attributes: Array<Attribute>;\n /** The cost of the merchandise that the buyer will pay for at checkout. The costs are subject to change and changes will be reflected at checkout. */\n cost: CartLineCost;\n /** The discounts that have been applied to the cart line. */\n discountAllocations: Array<CartDiscountAllocation>;\n /**\n * The estimated cost of the merchandise that the buyer will pay for at checkout. The estimated costs are subject to change and changes will be reflected at checkout.\n * @deprecated Use `cost` instead.\n */\n estimatedCost: CartLineEstimatedCost;\n /** A globally-unique ID. */\n id: Scalars[\"ID\"][\"output\"];\n /** The merchandise that the buyer intends to purchase. */\n merchandise: Merchandise;\n /** The quantity of the merchandise that the customer intends to purchase. */\n quantity: Scalars[\"Int\"][\"output\"];\n /** The selling plan associated with the cart line and the effect that each selling plan has on variants when they're purchased. */\n sellingPlanAllocation?: Maybe<SellingPlanAllocation>;\n };\n\n/** Represents information about the merchandise in the cart. */\nexport type CartLineAttributeArgs = {\n key: Scalars[\"String\"][\"input\"];\n};\n\n/** The cost of the merchandise line that the buyer will pay at checkout. */\nexport type CartLineCost = {\n __typename?: \"CartLineCost\";\n /** The amount of the merchandise line. */\n amountPerQuantity: MoneyV2;\n /** The compare at amount of the merchandise line. */\n compareAtAmountPerQuantity?: Maybe<MoneyV2>;\n /** The cost of the merchandise line before line-level discounts. */\n subtotalAmount: MoneyV2;\n /** The total cost of the merchandise line. */\n totalAmount: MoneyV2;\n};\n\n/**\n * The estimated cost of the merchandise line that the buyer will pay at checkout.\n *\n */\nexport type CartLineEstimatedCost = {\n __typename?: \"CartLineEstimatedCost\";\n /** The amount of the merchandise line. */\n amount: MoneyV2;\n /** The compare at amount of the merchandise line. */\n compareAtAmount?: Maybe<MoneyV2>;\n /** The estimated cost of the merchandise line before discounts. */\n subtotalAmount: MoneyV2;\n /** The estimated total cost of the merchandise line. */\n totalAmount: MoneyV2;\n};\n\n/** The input fields to create a merchandise line on a cart. */\nexport type CartLineInput = {\n /**\n * An array of key-value pairs that contains additional information about the merchandise line.\n *\n * The input must not contain more than `250` values.\n */\n attributes?: InputMaybe<Array<AttributeInput>>;\n /** The ID of the merchandise that the buyer intends to purchase. */\n merchandiseId: Scalars[\"ID\"][\"input\"];\n /** The quantity of the merchandise. */\n quantity?: InputMaybe<Scalars[\"Int\"][\"input\"]>;\n /** The ID of the selling plan that the merchandise is being purchased with. */\n sellingPlanId?: InputMaybe<Scalars[\"ID\"][\"input\"]>;\n};\n\n/** The input fields to update a line item on a cart. */\nexport type CartLineUpdateInput = {\n /**\n * An array of key-value pairs that contains additional information about the merchandise line.\n *\n * The input must not contain more than `250` values.\n */\n attributes?: InputMaybe<Array<AttributeInput>>;\n /** The ID of the merchandise line. */\n id: Scalars[\"ID\"][\"input\"];\n /** The ID of the merchandise for the line item. */\n merchandiseId?: InputMaybe<Scalars[\"ID\"][\"input\"]>;\n /** The quantity of the line item. */\n quantity?: InputMaybe<Scalars[\"Int\"][\"input\"]>;\n /** The ID of the selling plan that the merchandise is being purchased with. */\n sellingPlanId?: InputMaybe<Scalars[\"ID\"][\"input\"]>;\n};\n\n/** Return type for `cartLinesAdd` mutation. */\nexport type CartLinesAddPayload = {\n __typename?: \"CartLinesAddPayload\";\n /** The updated cart. */\n cart?: Maybe<Cart>;\n /** The list of errors that occurred from executing the mutation. */\n userErrors: Array<CartUserError>;\n /** A list of warnings that occurred during the mutation. */\n warnings: Array<CartWarning>;\n};\n\n/** Return type for `cartLinesRemove` mutation. */\nexport type CartLinesRemovePayload = {\n __typename?: \"CartLinesRemovePayload\";\n /** The updated cart. */\n cart?: Maybe<Cart>;\n /** The list of errors that occurred from executing the mutation. */\n userErrors: Array<CartUserError>;\n /** A list of warnings that occurred during the mutation. */\n warnings: Array<CartWarning>;\n};\n\n/** Return type for `cartLinesUpdate` mutation. */\nexport type CartLinesUpdatePayload = {\n __typename?: \"CartLinesUpdatePayload\";\n /** The updated cart. */\n cart?: Maybe<Cart>;\n /** The list of errors that occurred from executing the mutation. */\n userErrors: Array<CartUserError>;\n /** A list of warnings that occurred during the mutation. */\n warnings: Array<CartWarning>;\n};\n\n/** The input fields to delete a cart metafield. */\nexport type CartMetafieldDeleteInput = {\n /**\n * The key name of the cart metafield. Can either be a composite key (`namespace.key`) or a simple key\n * that relies on the default app-reserved namespace.\n *\n */\n key: Scalars[\"String\"][\"input\"];\n /** The ID of the cart resource. */\n ownerId: Scalars[\"ID\"][\"input\"];\n};\n\n/** Return type for `cartMetafieldDelete` mutation. */\nexport type CartMetafieldDeletePayload = {\n __typename?: \"CartMetafieldDeletePayload\";\n /** The ID of the deleted cart metafield. */\n deletedId?: Maybe<Scalars[\"ID\"][\"output\"]>;\n /** The list of errors that occurred from executing the mutation. */\n userErrors: Array<MetafieldDeleteUserError>;\n};\n\n/** The input fields for a cart metafield value to set. */\nexport type CartMetafieldsSetInput = {\n /** The key name of the cart metafield. */\n key: Scalars[\"String\"][\"input\"];\n /** The ID of the cart resource. */\n ownerId: Scalars[\"ID\"][\"input\"];\n /**\n * The type of data that the cart metafield stores.\n * The type of data must be a [supported type](https://shopify.dev/apps/metafields/types).\n *\n */\n type: Scalars[\"String\"][\"input\"];\n /**\n * The data to store in the cart metafield. The data is always stored as a string, regardless of the metafield's type.\n *\n */\n value: Scalars[\"String\"][\"input\"];\n};\n\n/** Return type for `cartMetafieldsSet` mutation. */\nexport type CartMetafieldsSetPayload = {\n __typename?: \"CartMetafieldsSetPayload\";\n /** The list of cart metafields that were set. */\n metafields?: Maybe<Array<Metafield>>;\n /** The list of errors that occurred from executing the mutation. */\n userErrors: Array<MetafieldsSetUserError>;\n};\n\n/** Return type for `cartNoteUpdate` mutation. */\nexport type CartNoteUpdatePayload = {\n __typename?: \"CartNoteUpdatePayload\";\n /** The updated cart. */\n cart?: Maybe<Cart>;\n /** The list of errors that occurred from executing the mutation. */\n userErrors: Array<CartUserError>;\n /** A list of warnings that occurred during the mutation. */\n warnings: Array<CartWarning>;\n};\n\n/** An error occurred during the cart operation. */\nexport type CartOperationError = {\n __typename?: \"CartOperationError\";\n /** The error code. */\n code: Scalars[\"String\"][\"output\"];\n /** The error message. */\n message?: Maybe<Scalars[\"String\"][\"output\"]>;\n};\n\n/**\n * The input fields for updating the payment method that will be used to checkout.\n *\n */\nexport type CartPaymentInput = {\n /** The amount that the customer will be charged at checkout. */\n amount: MoneyInput;\n /**\n * The input fields to use when checking out a cart with a direct payment method (like a credit card).\n *\n */\n directPaymentMethod?: InputMaybe<CartDirectPaymentMethodInput>;\n /**\n * The input fields to use to checkout a cart without providing a payment method.\n * Use this payment method input if the total cost of the cart is 0.\n *\n */\n freePaymentMethod?: InputMaybe<CartFreePaymentMethodInput>;\n /**\n * An ID of the order placed on the originating platform.\n * Note that this value doesn't correspond to the Shopify Order ID.\n *\n */\n sourceIdentifier?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n /**\n * The input fields to use when checking out a cart with a wallet payment method (like Shop Pay or Apple Pay).\n *\n */\n walletPaymentMethod?: InputMaybe<CartWalletPaymentMethodInput>;\n};\n\n/** Return type for `cartPaymentUpdate` mutation. */\nexport type CartPaymentUpdatePayload = {\n __typename?: \"CartPaymentUpdatePayload\";\n /** The updated cart. */\n cart?: Maybe<Cart>;\n /** The list of errors that occurred from executing the mutation. */\n userErrors: Array<CartUserError>;\n /** A list of warnings that occurred during the mutation. */\n warnings: Array<CartWarning>;\n};\n\n/**\n * A set of preferences tied to the buyer interacting with the cart. Preferences are used to prefill fields in at checkout to streamline information collection.\n * Preferences are not synced back to the cart if they are overwritten.\n *\n */\nexport type CartPreferences = {\n __typename?: \"CartPreferences\";\n /** Delivery preferences can be used to prefill the delivery section in at checkout. */\n delivery?: Maybe<CartDeliveryPreference>;\n /**\n * Wallet preferences are used to populate relevant payment fields in the checkout flow.\n * Accepted value: `[\"shop_pay\"]`.\n *\n */\n wallet?: Maybe<Array<Scalars[\"String\"][\"output\"]>>;\n};\n\n/** The input fields represent preferences for the buyer that is interacting with the cart. */\nexport type CartPreferencesInput = {\n /** Delivery preferences can be used to prefill the delivery section in at checkout. */\n delivery?: InputMaybe<CartDeliveryPreferenceInput>;\n /**\n * Wallet preferences are used to populate relevant payment fields in the checkout flow.\n * Accepted value: `[\"shop_pay\"]`.\n *\n * The input must not contain more than `250` values.\n */\n wallet?: InputMaybe<Array<Scalars[\"String\"][\"input\"]>>;\n};\n\n/** Return type for `cartPrepareForCompletion` mutation. */\nexport type CartPrepareForCompletionPayload = {\n __typename?: \"CartPrepareForCompletionPayload\";\n /** The result of cart preparation for completion. */\n result?: Maybe<CartPrepareForCompletionResult>;\n /** The list of errors that occurred from executing the mutation. */\n userErrors: Array<CartUserError>;\n};\n\n/** The result of cart preparation. */\nexport type CartPrepareForCompletionResult =\n | CartStatusNotReady\n | CartStatusReady\n | CartThrottled;\n\n/**\n * A selectable delivery address for a cart.\n *\n */\nexport type CartSelectableAddress = {\n __typename?: \"CartSelectableAddress\";\n /** The delivery address. */\n address: CartAddress;\n /** A unique identifier for the address, specific to this cart. */\n id: Scalars[\"ID\"][\"output\"];\n /** This delivery address will not be associated with the buyer after a successful checkout. */\n oneTimeUse: Scalars[\"Boolean\"][\"output\"];\n /** Sets exactly one address as pre-selected for the buyer. */\n selected: Scalars[\"Boolean\"][\"output\"];\n};\n\n/** The input fields for a selectable delivery address in a cart. */\nexport type CartSelectableAddressInput = {\n /** Exactly one kind of delivery address. */\n address: CartAddressInput;\n /** When true, this delivery address will not be associated with the buyer after a successful checkout. */\n oneTimeUse?: InputMaybe<Scalars[\"Boolean\"][\"input\"]>;\n /** Sets exactly one address as pre-selected for the buyer. */\n selected?: InputMaybe<Scalars[\"Boolean\"][\"input\"]>;\n /** Defines what kind of address validation is requested. */\n validationStrategy?: InputMaybe<DeliveryAddressValidationStrategy>;\n};\n\n/** The input fields to update a line item on a cart. */\nexport type CartSelectableAddressUpdateInput = {\n /** Exactly one kind of delivery address. */\n address?: InputMaybe<CartAddressInput>;\n /** The id of the selectable address. */\n id: Scalars[\"ID\"][\"input\"];\n /** When true, this delivery address will not be associated with the buyer after a successful checkout. */\n oneTimeUse?: InputMaybe<Scalars[\"Boolean\"][\"input\"]>;\n /** Sets exactly one address as pre-selected for the buyer. */\n selected?: InputMaybe<Scalars[\"Boolean\"][\"input\"]>;\n /** Defines what kind of address validation is requested. */\n validationStrategy?: InputMaybe<DeliveryAddressValidationStrategy>;\n};\n\n/**\n * The input fields for updating the selected delivery options for a delivery group.\n *\n */\nexport type CartSelectedDeliveryOptionInput = {\n /** The ID of the cart delivery group. */\n deliveryGroupId: Scalars[\"ID\"][\"input\"];\n /** The handle of the selected delivery option. */\n deliveryOptionHandle: Scalars[\"String\"][\"input\"];\n};\n\n/** Return type for `cartSelectedDeliveryOptionsUpdate` mutation. */\nexport type CartSelectedDeliveryOptionsUpdatePayload = {\n __typename?: \"CartSelectedDeliveryOptionsUpdatePayload\";\n /** The updated cart. */\n cart?: Maybe<Cart>;\n /** The list of errors that occurred from executing the mutation. */\n userErrors: Array<CartUserError>;\n /** A list of warnings that occurred during the mutation. */\n warnings: Array<CartWarning>;\n};\n\n/** Cart is not ready for payment update and completion. */\nexport type CartStatusNotReady = {\n __typename?: \"CartStatusNotReady\";\n /** The result of cart preparation for completion. */\n cart?: Maybe<Cart>;\n /** The list of errors that caused the cart to not be ready for payment update and completion. */\n errors: Array<CartOperationError>;\n};\n\n/** Cart is ready for payment update and completion. */\nexport type CartStatusReady = {\n __typename?: \"CartStatusReady\";\n /** The result of cart preparation for completion. */\n cart?: Maybe<Cart>;\n};\n\n/** Return type for `cartSubmitForCompletion` mutation. */\nexport type CartSubmitForCompletionPayload = {\n __typename?: \"CartSubmitForCompletionPayload\";\n /** The result of cart submission for completion. */\n result?: Maybe<CartSubmitForCompletionResult>;\n /** The list of errors that occurred from executing the mutation. */\n userErrors: Array<CartUserError>;\n};\n\n/** The result of cart submit completion. */\nexport type CartSubmitForCompletionResult =\n | SubmitAlreadyAccepted\n | SubmitFailed\n | SubmitSuccess\n | SubmitThrottled;\n\n/**\n * Response signifying that the access to cart request is currently being throttled.\n * The client can retry after `poll_after`.\n *\n */\nexport type CartThrottled = {\n __typename?: \"CartThrottled\";\n /** The polling delay. */\n pollAfter: Scalars[\"DateTime\"][\"output\"];\n};\n\n/** Represents an error that happens during execution of a cart mutation. */\nexport type CartUserError = DisplayableError & {\n __typename?: \"CartUserError\";\n /** The error code. */\n code?: Maybe<CartErrorCode>;\n /** The path to the input field that caused the error. */\n field?: Maybe<Array<Scalars[\"String\"][\"output\"]>>;\n /** The error message. */\n message: Scalars[\"String\"][\"output\"];\n};\n\n/**\n * The input fields for submitting wallet payment method information for checkout.\n *\n */\nexport type CartWalletPaymentMethodInput = {\n /** The payment method information for the Apple Pay wallet. */\n applePayWalletContent?: InputMaybe<ApplePayWalletContentInput>;\n /** The payment method information for the Shop Pay wallet. */\n shopPayWalletContent?: InputMaybe<ShopPayWalletContentInput>;\n};\n\n/** A warning that occurred during a cart mutation. */\nexport type CartWarning = {\n __typename?: \"CartWarning\";\n /** The code of the warning. */\n code: CartWarningCode;\n /** The message text of the warning. */\n message: Scalars[\"String\"][\"output\"];\n /** The target of the warning. */\n target: Scalars[\"ID\"][\"output\"];\n};\n\n/** The code for the cart warning. */\nexport enum CartWarningCode {\n /** A delivery address with the same details already exists on this cart. */\n DuplicateDeliveryAddress = \"DUPLICATE_DELIVERY_ADDRESS\",\n /** The merchandise does not have enough stock. */\n MerchandiseNotEnoughStock = \"MERCHANDISE_NOT_ENOUGH_STOCK\",\n /** The merchandise is out of stock. */\n MerchandiseOutOfStock = \"MERCHANDISE_OUT_OF_STOCK\",\n /** Gift cards are not available as a payment method. */\n PaymentsGiftCardsUnavailable = \"PAYMENTS_GIFT_CARDS_UNAVAILABLE\",\n}\n\n/**\n * A filter used to view a subset of products in a collection matching a specific category value.\n *\n */\nexport type CategoryFilter = {\n /** The id of the category to filter on. */\n id: Scalars[\"String\"][\"input\"];\n};\n\n/**\n * A collection represents a grouping of products that a shop owner can create to\n * organize them or make their shops easier to browse.\n *\n */\nexport type Collection = HasMetafields &\n Node &\n OnlineStorePublishable &\n Trackable & {\n __typename?: \"Collection\";\n /** Stripped description of the collection, single line with HTML tags removed. */\n description: Scalars[\"String\"][\"output\"];\n /** The description of the collection, complete with HTML formatting. */\n descriptionHtml: Scalars[\"HTML\"][\"output\"];\n /**\n * A human-friendly unique string for the collection automatically generated from its title.\n * Limit of 255 characters.\n *\n */\n handle: Scalars[\"String\"][\"output\"];\n /** A globally-unique ID. */\n id: Scalars[\"ID\"][\"output\"];\n /** Image associated with the collection. */\n image?: Maybe<Image>;\n /** A [custom field](https://shopify.dev/docs/apps/build/custom-data), including its `namespace` and `key`, that's associated with a Shopify resource for the purposes of adding and storing additional information. */\n metafield?: Maybe<Metafield>;\n /** A list of [custom fields](/docs/apps/build/custom-data) that a merchant associates with a Shopify resource. */\n metafields: Array<Maybe<Metafield>>;\n /** The URL used for viewing the resource on the shop's Online Store. Returns `null` if the resource is currently not published to the Online Store sales channel. */\n onlineStoreUrl?: Maybe<Scalars[\"URL\"][\"output\"]>;\n /** List of products in the collection. */\n products: ProductConnection;\n /** The collection's SEO information. */\n seo: Seo;\n /** The collection’s name. Limit of 255 characters. */\n title: Scalars[\"String\"][\"output\"];\n /** URL parameters to be added to a page URL to track the origin of on-site search traffic for [analytics reporting](https://help.shopify.com/manual/reports-and-analytics/shopify-reports/report-types/default-reports/behaviour-reports). Returns a result when accessed through the [search](https://shopify.dev/docs/api/storefront/current/queries/search) or [predictiveSearch](https://shopify.dev/docs/api/storefront/current/queries/predictiveSearch) queries, otherwise returns null. */\n trackingParameters?: Maybe<Scalars[\"String\"][\"output\"]>;\n /** The date and time when the collection was last modified. */\n updatedAt: Scalars[\"DateTime\"][\"output\"];\n };\n\n/**\n * A collection represents a grouping of products that a shop owner can create to\n * organize them or make their shops easier to browse.\n *\n */\nexport type CollectionDescriptionArgs = {\n truncateAt?: InputMaybe<Scalars[\"Int\"][\"input\"]>;\n};\n\n/**\n * A collection represents a grouping of products that a shop owner can create to\n * organize them or make their shops easier to browse.\n *\n */\nexport type CollectionMetafieldArgs = {\n key: Scalars[\"String\"][\"input\"];\n namespace?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n};\n\n/**\n * A collection represents a grouping of products that a shop owner can create to\n * organize them or make their shops easier to browse.\n *\n */\nexport type CollectionMetafieldsArgs = {\n identifiers: Array<HasMetafieldsIdentifier>;\n};\n\n/**\n * A collection represents a grouping of products that a shop owner can create to\n * organize them or make their shops easier to browse.\n *\n */\nexport type CollectionProductsArgs = {\n after?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n before?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n filters?: InputMaybe<Array<ProductFilter>>;\n first?: InputMaybe<Scalars[\"Int\"][\"input\"]>;\n last?: InputMaybe<Scalars[\"Int\"][\"input\"]>;\n reverse?: InputMaybe<Scalars[\"Boolean\"][\"input\"]>;\n sortKey?: InputMaybe<ProductCollectionSortKeys>;\n};\n\n/**\n * An auto-generated type for paginating through multiple Collections.\n *\n */\nexport type CollectionConnection = {\n __typename?: \"CollectionConnection\";\n /** A list of edges. */\n edges: Array<CollectionEdge>;\n /** A list of the nodes contained in CollectionEdge. */\n nodes: Array<Collection>;\n /** Information to aid in pagination. */\n pageInfo: PageInfo;\n /** The total count of Collections. */\n totalCount: Scalars[\"UnsignedInt64\"][\"output\"];\n};\n\n/**\n * An auto-generated type which holds one Collection and a cursor during pagination.\n *\n */\nexport type CollectionEdge = {\n __typename?: \"CollectionEdge\";\n /** A cursor for use in pagination. */\n cursor: Scalars[\"String\"][\"output\"];\n /** The item at the end of CollectionEdge. */\n node: Collection;\n};\n\n/** The set of valid sort keys for the Collection query. */\nexport enum CollectionSortKeys {\n /** Sort by the `id` value. */\n Id = \"ID\",\n /**\n * Sort by relevance to the search terms when the `query` parameter is specified on the connection.\n * Don't use this sort key when no search query is specified.\n *\n */\n Relevance = \"RELEVANCE\",\n /** Sort by the `title` value. */\n Title = \"TITLE\",\n /** Sort by the `updated_at` value. */\n UpdatedAt = \"UPDATED_AT\",\n}\n\n/** A comment on an article. */\nexport type Comment = Node & {\n __typename?: \"Comment\";\n /** The comment’s author. */\n author: CommentAuthor;\n /** Stripped content of the comment, single line with HTML tags removed. */\n content: Scalars[\"String\"][\"output\"];\n /** The content of the comment, complete with HTML formatting. */\n contentHtml: Scalars[\"HTML\"][\"output\"];\n /** A globally-unique ID. */\n id: Scalars[\"ID\"][\"output\"];\n};\n\n/** A comment on an article. */\nexport type CommentContentArgs = {\n truncateAt?: InputMaybe<Scalars[\"Int\"][\"input\"]>;\n};\n\n/** The author of a comment. */\nexport type CommentAuthor = {\n __typename?: \"CommentAuthor\";\n /** The author's email. */\n email: Scalars[\"String\"][\"output\"];\n /** The author’s name. */\n name: Scalars[\"String\"][\"output\"];\n};\n\n/**\n * An auto-generated type for paginating through multiple Comments.\n *\n */\nexport type CommentConnection = {\n __typename?: \"CommentConnection\";\n /** A list of edges. */\n edges: Array<CommentEdge>;\n /** A list of the nodes contained in CommentEdge. */\n nodes: Array<Comment>;\n /** Information to aid in pagination. */\n pageInfo: PageInfo;\n};\n\n/**\n * An auto-generated type which holds one Comment and a cursor during pagination.\n *\n */\nexport type CommentEdge = {\n __typename?: \"CommentEdge\";\n /** A cursor for use in pagination. */\n cursor: Scalars[\"String\"][\"output\"];\n /** The item at the end of CommentEdge. */\n node: Comment;\n};\n\n/** Represents information about a company which is also a customer of the shop. */\nexport type Company = HasMetafields &\n Node & {\n __typename?: \"Company\";\n /** The date and time ([ISO 8601 format](http://en.wikipedia.org/wiki/ISO_8601)) at which the company was created in Shopify. */\n createdAt: Scalars[\"DateTime\"][\"output\"];\n /** A unique externally-supplied ID for the company. */\n externalId?: Maybe<Scalars[\"String\"][\"output\"]>;\n /** A globally-unique ID. */\n id: Scalars[\"ID\"][\"output\"];\n /** A [custom field](https://shopify.dev/docs/apps/build/custom-data), including its `namespace` and `key`, that's associated with a Shopify resource for the purposes of adding and storing additional information. */\n metafield?: Maybe<Metafield>;\n /** A list of [custom fields](/docs/apps/build/custom-data) that a merchant associates with a Shopify resource. */\n metafields: Array<Maybe<Metafield>>;\n /** The name of the company. */\n name: Scalars[\"String\"][\"output\"];\n /** The date and time ([ISO 8601 format](http://en.wikipedia.org/wiki/ISO_8601)) at which the company was last modified. */\n updatedAt: Scalars[\"DateTime\"][\"output\"];\n };\n\n/** Represents information about a company which is also a customer of the shop. */\nexport type CompanyMetafieldArgs = {\n key: Scalars[\"String\"][\"input\"];\n namespace?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n};\n\n/** Represents information about a company which is also a customer of the shop. */\nexport type CompanyMetafieldsArgs = {\n identifiers: Array<HasMetafieldsIdentifier>;\n};\n\n/** A company's main point of contact. */\nexport type CompanyContact = Node & {\n __typename?: \"CompanyContact\";\n /** The date and time ([ISO 8601 format](http://en.wikipedia.org/wiki/ISO_8601)) at which the company contact was created in Shopify. */\n createdAt: Scalars[\"DateTime\"][\"output\"];\n /** A globally-unique ID. */\n id: Scalars[\"ID\"][\"output\"];\n /** The company contact's locale (language). */\n locale?: Maybe<Scalars[\"String\"][\"output\"]>;\n /** The company contact's job title. */\n title?: Maybe<Scalars[\"String\"][\"output\"]>;\n /** The date and time ([ISO 8601 format](http://en.wikipedia.org/wiki/ISO_8601)) at which the company contact was last modified. */\n updatedAt: Scalars[\"DateTime\"][\"output\"];\n};\n\n/** A company's location. */\nexport type CompanyLocation = HasMetafields &\n Node & {\n __typename?: \"CompanyLocation\";\n /** The date and time ([ISO 8601 format](http://en.wikipedia.org/wiki/ISO_8601)) at which the company location was created in Shopify. */\n createdAt: Scalars[\"DateTime\"][\"output\"];\n /** A unique externally-supplied ID for the company. */\n externalId?: Maybe<Scalars[\"String\"][\"output\"]>;\n /** A globally-unique ID. */\n id: Scalars[\"ID\"][\"output\"];\n /** The preferred locale of the company location. */\n locale?: Maybe<Scalars[\"String\"][\"output\"]>;\n /** A [custom field](https://shopify.dev/docs/apps/build/custom-data), including its `namespace` and `key`, that's associated with a Shopify resource for the purposes of adding and storing additional information. */\n metafield?: Maybe<Metafield>;\n /** A list of [custom fields](/docs/apps/build/custom-data) that a merchant associates with a Shopify resource. */\n metafields: Array<Maybe<Metafield>>;\n /** The name of the company location. */\n name: Scalars[\"String\"][\"output\"];\n /** The date and time ([ISO 8601 format](http://en.wikipedia.org/wiki/ISO_8601)) at which the company location was last modified. */\n updatedAt: Scalars[\"DateTime\"][\"output\"];\n };\n\n/** A company's location. */\nexport type CompanyLocationMetafieldArgs = {\n key: Scalars[\"String\"][\"input\"];\n namespace?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n};\n\n/** A company's location. */\nexport type CompanyLocationMetafieldsArgs = {\n identifiers: Array<HasMetafieldsIdentifier>;\n};\n\n/** The action for the 3DS payment redirect. */\nexport type CompletePaymentChallenge = {\n __typename?: \"CompletePaymentChallenge\";\n /** The URL for the 3DS payment redirect. */\n redirectUrl?: Maybe<Scalars[\"URL\"][\"output\"]>;\n};\n\n/** An error that occurred during a cart completion attempt. */\nexport type CompletionError = {\n __typename?: \"CompletionError\";\n /** The error code. */\n code: CompletionErrorCode;\n /** The error message. */\n message?: Maybe<Scalars[\"String\"][\"output\"]>;\n};\n\n/** The code of the error that occurred during a cart completion attempt. */\nexport enum CompletionErrorCode {\n Error = \"ERROR\",\n InventoryReservationError = \"INVENTORY_RESERVATION_ERROR\",\n PaymentAmountTooSmall = \"PAYMENT_AMOUNT_TOO_SMALL\",\n PaymentCallIssuer = \"PAYMENT_CALL_ISSUER\",\n PaymentCardDeclined = \"PAYMENT_CARD_DECLINED\",\n PaymentError = \"PAYMENT_ERROR\",\n PaymentGatewayNotEnabledError = \"PAYMENT_GATEWAY_NOT_ENABLED_ERROR\",\n PaymentInsufficientFunds = \"PAYMENT_INSUFFICIENT_FUNDS\",\n PaymentInvalidBillingAddress = \"PAYMENT_INVALID_BILLING_ADDRESS\",\n PaymentInvalidCreditCard = \"PAYMENT_INVALID_CREDIT_CARD\",\n PaymentInvalidCurrency = \"PAYMENT_INVALID_CURRENCY\",\n PaymentInvalidPaymentMethod = \"PAYMENT_INVALID_PAYMENT_METHOD\",\n PaymentTransientError = \"PAYMENT_TRANSIENT_ERROR\",\n}\n\n/** Represents information about the grouped merchandise in the cart. */\nexport type ComponentizableCartLine = BaseCartLine &\n Node & {\n __typename?: \"ComponentizableCartLine\";\n /** An attribute associated with the cart line. */\n attribute?: Maybe<Attribute>;\n /** The attributes associated with the cart line. Attributes are represented as key-value pairs. */\n attributes: Array<Attribute>;\n /** The cost of the merchandise that the buyer will pay for at checkout. The costs are subject to change and changes will be reflected at checkout. */\n cost: CartLineCost;\n /** The discounts that have been applied to the cart line. */\n discountAllocations: Array<CartDiscountAllocation>;\n /**\n * The estimated cost of the merchandise that the buyer will pay for at checkout. The estimated costs are subject to change and changes will be reflected at checkout.\n * @deprecated Use `cost` instead.\n */\n estimatedCost: CartLineEstimatedCost;\n /** A globally-unique ID. */\n id: Scalars[\"ID\"][\"output\"];\n /** The components of the line item. */\n lineComponents: Array<CartLine>;\n /** The merchandise that the buyer intends to purchase. */\n merchandise: Merchandise;\n /** The quantity of the merchandise that the customer intends to purchase. */\n quantity: Scalars[\"Int\"][\"output\"];\n /** The selling plan associated with the cart line and the effect that each selling plan has on variants when they're purchased. */\n sellingPlanAllocation?: Maybe<SellingPlanAllocation>;\n };\n\n/** Represents information about the grouped merchandise in the cart. */\nexport type ComponentizableCartLineAttributeArgs = {\n key: Scalars[\"String\"][\"input\"];\n};\n\n/** Details for count of elements. */\nexport type Count = {\n __typename?: \"Count\";\n /** Count of elements. */\n count: Scalars[\"Int\"][\"output\"];\n /** Precision of count, how exact is the value. */\n precision: CountPrecision;\n};\n\n/** The precision of the value returned by a count field. */\nexport enum CountPrecision {\n /** The count is at least the value. A limit was reached. */\n AtLeast = \"AT_LEAST\",\n /** The count is exactly the value. */\n Exact = \"EXACT\",\n}\n\n/** A country. */\nexport type Country = {\n __typename?: \"Country\";\n /** The languages available for the country. */\n availableLanguages: Array<Language>;\n /** The currency of the country. */\n currency: Currency;\n /** The ISO code of the country. */\n isoCode: CountryCode;\n /** The market that includes this country. */\n market?: Maybe<Market>;\n /** The name of the country. */\n name: Scalars[\"String\"][\"output\"];\n /** The unit system used in the country. */\n unitSystem: UnitSystem;\n};\n\n/**\n * The code designating a country/region, which generally follows ISO 3166-1 alpha-2 guidelines.\n * If a territory doesn't have a country code value in the `CountryCode` enum, then it might be considered a subdivision\n * of another country. For example, the territories associated with Spain are represented by the country code `ES`,\n * and the territories associated with the United States of America are represented by the country code `US`.\n *\n */\nexport enum CountryCode {\n /** Ascension Island. */\n Ac = \"AC\",\n /** Andorra. */\n Ad = \"AD\",\n /** United Arab Emirates. */\n Ae = \"AE\",\n /** Afghanistan. */\n Af = \"AF\",\n /** Antigua & Barbuda. */\n Ag = \"AG\",\n /** Anguilla. */\n Ai = \"AI\",\n /** Albania. */\n Al = \"AL\",\n /** Armenia. */\n Am = \"AM\",\n /** Netherlands Antilles. */\n An = \"AN\",\n /** Angola. */\n Ao = \"AO\",\n /** Argentina. */\n Ar = \"AR\",\n /** Austria. */\n At = \"AT\",\n /** Australia. */\n Au = \"AU\",\n /** Aruba. */\n Aw = \"AW\",\n /** Åland Islands. */\n Ax = \"AX\",\n /** Azerbaijan. */\n Az = \"AZ\",\n /** Bosnia & Herzegovina. */\n Ba = \"BA\",\n /** Barbados. */\n Bb = \"BB\",\n /** Bangladesh. */\n Bd = \"BD\",\n /** Belgium. */\n Be = \"BE\",\n /** Burkina Faso. */\n Bf = \"BF\",\n /** Bulgaria. */\n Bg = \"BG\",\n /** Bahrain. */\n Bh = \"BH\",\n /** Burundi. */\n Bi = \"BI\",\n /** Benin. */\n Bj = \"BJ\",\n /** St. Barthélemy. */\n Bl = \"BL\",\n /** Bermuda. */\n Bm = \"BM\",\n /** Brunei. */\n Bn = \"BN\",\n /** Bolivia. */\n Bo = \"BO\",\n /** Caribbean Netherlands. */\n Bq = \"BQ\",\n /** Brazil. */\n Br = \"BR\",\n /** Bahamas. */\n Bs = \"BS\",\n /** Bhutan. */\n Bt = \"BT\",\n /** Bouvet Island. */\n Bv = \"BV\",\n /** Botswana. */\n Bw = \"BW\",\n /** Belarus. */\n By = \"BY\",\n /** Belize. */\n Bz = \"BZ\",\n /** Canada. */\n Ca = \"CA\",\n /** Cocos (Keeling) Islands. */\n Cc = \"CC\",\n /** Congo - Kinshasa. */\n Cd = \"CD\",\n /** Central African Republic. */\n Cf = \"CF\",\n /** Congo - Brazzaville. */\n Cg = \"CG\",\n /** Switzerland. */\n Ch = \"CH\",\n /** Côte d’Ivoire. */\n Ci = \"CI\",\n /** Cook Islands. */\n Ck = \"CK\",\n /** Chile. */\n Cl = \"CL\",\n /** Cameroon. */\n Cm = \"CM\",\n /** China. */\n Cn = \"CN\",\n /** Colombia. */\n Co = \"CO\",\n /** Costa Rica. */\n Cr = \"CR\",\n /** Cuba. */\n Cu = \"CU\",\n /** Cape Verde. */\n Cv = \"CV\",\n /** Curaçao. */\n Cw = \"CW\",\n /** Christmas Island. */\n Cx = \"CX\",\n /** Cyprus. */\n Cy = \"CY\",\n /** Czechia. */\n Cz = \"CZ\",\n /** Germany. */\n De = \"DE\",\n /** Djibouti. */\n Dj = \"DJ\",\n /** Denmark. */\n Dk = \"DK\",\n /** Dominica. */\n Dm = \"DM\",\n /** Dominican Republic. */\n Do = \"DO\",\n /** Algeria. */\n Dz = \"DZ\",\n /** Ecuador. */\n Ec = \"EC\",\n /** Estonia. */\n Ee = \"EE\",\n /** Egypt. */\n Eg = \"EG\",\n /** Western Sahara. */\n Eh = \"EH\",\n /** Eritrea. */\n Er = \"ER\",\n /** Spain. */\n Es = \"ES\",\n /** Ethiopia. */\n Et = \"ET\",\n /** Finland. */\n Fi = \"FI\",\n /** Fiji. */\n Fj = \"FJ\",\n /** Falkland Islands. */\n Fk = \"FK\",\n /** Faroe Islands. */\n Fo = \"FO\",\n /** France. */\n Fr = \"FR\",\n /** Gabon. */\n Ga = \"GA\",\n /** United Kingdom. */\n Gb = \"GB\",\n /** Grenada. */\n Gd = \"GD\",\n /** Georgia. */\n Ge = \"GE\",\n /** French Guiana. */\n Gf = \"GF\",\n /** Guernsey. */\n Gg = \"GG\",\n /** Ghana. */\n Gh = \"GH\",\n /** Gibraltar. */\n Gi = \"GI\",\n /** Greenland. */\n Gl = \"GL\",\n /** Gambia. */\n Gm = \"GM\",\n /** Guinea. */\n Gn = \"GN\",\n /** Guadeloupe. */\n Gp = \"GP\",\n /** Equatorial Guinea. */\n Gq = \"GQ\",\n /** Greece. */\n Gr = \"GR\",\n /** South Georgia & South Sandwich Islands. */\n Gs = \"GS\",\n /** Guatemala. */\n Gt = \"GT\",\n /** Guinea-Bissau. */\n Gw = \"GW\",\n /** Guyana. */\n Gy = \"GY\",\n /** Hong Kong SAR. */\n Hk = \"HK\",\n /** Heard & McDonald Islands. */\n Hm = \"HM\",\n /** Honduras. */\n Hn = \"HN\",\n /** Croatia. */\n Hr = \"HR\",\n /** Haiti. */\n Ht = \"HT\",\n /** Hungary. */\n Hu = \"HU\",\n /** Indonesia. */\n Id = \"ID\",\n /** Ireland. */\n Ie = \"IE\",\n /** Israel. */\n Il = \"IL\",\n /** Isle of Man. */\n Im = \"IM\",\n /** India. */\n In = \"IN\",\n /** British Indian Ocean Territory. */\n Io = \"IO\",\n /** Iraq. */\n Iq = \"IQ\",\n /** Iran. */\n Ir = \"IR\",\n /** Iceland. */\n Is = \"IS\",\n /** Italy. */\n It = \"IT\",\n /** Jersey. */\n Je = \"JE\",\n /** Jamaica. */\n Jm = \"JM\",\n /** Jordan. */\n Jo = \"JO\",\n /** Japan. */\n Jp = \"JP\",\n /** Kenya. */\n Ke = \"KE\",\n /** Kyrgyzstan. */\n Kg = \"KG\",\n /** Cambodia. */\n Kh = \"KH\",\n /** Kiribati. */\n Ki = \"KI\",\n /** Comoros. */\n Km = \"KM\",\n /** St. Kitts & Nevis. */\n Kn = \"KN\",\n /** North Korea. */\n Kp = \"KP\",\n /** South Korea. */\n Kr = \"KR\",\n /** Kuwait. */\n Kw = \"KW\",\n /** Cayman Islands. */\n Ky = \"KY\",\n /** Kazakhstan. */\n Kz = \"KZ\",\n /** Laos. */\n La = \"LA\",\n /** Lebanon. */\n Lb = \"LB\",\n /** St. Lucia. */\n Lc = \"LC\",\n /** Liechtenstein. */\n Li = \"LI\",\n /** Sri Lanka. */\n Lk = \"LK\",\n /** Liberia. */\n Lr = \"LR\",\n /** Lesotho. */\n Ls = \"LS\",\n /** Lithuania. */\n Lt = \"LT\",\n /** Luxembourg. */\n Lu = \"LU\",\n /** Latvia. */\n Lv = \"LV\",\n /** Libya. */\n Ly = \"LY\",\n /** Morocco. */\n Ma = \"MA\",\n /** Monaco. */\n Mc = \"MC\",\n /** Moldova. */\n Md = \"MD\",\n /** Montenegro. */\n Me = \"ME\",\n /** St. Martin. */\n Mf = \"MF\",\n /** Madagascar. */\n Mg = \"MG\",\n /** North Macedonia. */\n Mk = \"MK\",\n /** Mali. */\n Ml = \"ML\",\n /** Myanmar (Burma). */\n Mm = \"MM\",\n /** Mongolia. */\n Mn = \"MN\",\n /** Macao SAR. */\n Mo = \"MO\",\n /** Martinique. */\n Mq = \"MQ\",\n /** Mauritania. */\n Mr = \"MR\",\n /** Montserrat. */\n Ms = \"MS\",\n /** Malta. */\n Mt = \"MT\",\n /** Mauritius. */\n Mu = \"MU\",\n /** Maldives. */\n Mv = \"MV\",\n /** Malawi. */\n Mw = \"MW\",\n /** Mexico. */\n Mx = \"MX\",\n /** Malaysia. */\n My = \"MY\",\n /** Mozambique. */\n Mz = \"MZ\",\n /** Namibia. */\n Na = \"NA\",\n /** New Caledonia. */\n Nc = \"NC\",\n /** Niger. */\n Ne = \"NE\",\n /** Norfolk Island. */\n Nf = \"NF\",\n /** Nigeria. */\n Ng = \"NG\",\n /** Nicaragua. */\n Ni = \"NI\",\n /** Netherlands. */\n Nl = \"NL\",\n /** Norway. */\n No = \"NO\",\n /** Nepal. */\n Np = \"NP\",\n /** Nauru. */\n Nr = \"NR\",\n /** Niue. */\n Nu = \"NU\",\n /** New Zealand. */\n Nz = \"NZ\",\n /** Oman. */\n Om = \"OM\",\n /** Panama. */\n Pa = \"PA\",\n /** Peru. */\n Pe = \"PE\",\n /** French Polynesia. */\n Pf = \"PF\",\n /** Papua New Guinea. */\n Pg = \"PG\",\n /** Philippines. */\n Ph = \"PH\",\n /** Pakistan. */\n Pk = \"PK\",\n /** Poland. */\n Pl = \"PL\",\n /** St. Pierre & Miquelon. */\n Pm = \"PM\",\n /** Pitcairn Islands. */\n Pn = \"PN\",\n /** Palestinian Territories. */\n Ps = \"PS\",\n /** Portugal. */\n Pt = \"PT\",\n /** Paraguay. */\n Py = \"PY\",\n /** Qatar. */\n Qa = \"QA\",\n /** Réunion. */\n Re = \"RE\",\n /** Romania. */\n Ro = \"RO\",\n /** Serbia. */\n Rs = \"RS\",\n /** Russia. */\n Ru = \"RU\",\n /** Rwanda. */\n Rw = \"RW\",\n /** Saudi Arabia. */\n Sa = \"SA\",\n /** Solomon Islands. */\n Sb = \"SB\",\n /** Seychelles. */\n Sc = \"SC\",\n /** Sudan. */\n Sd = \"SD\",\n /** Sweden. */\n Se = \"SE\",\n /** Singapore. */\n Sg = \"SG\",\n /** St. Helena. */\n Sh = \"SH\",\n /** Slovenia. */\n Si = \"SI\",\n /** Svalbard & Jan Mayen. */\n Sj = \"SJ\",\n /** Slovakia. */\n Sk = \"SK\",\n /** Sierra Leone. */\n Sl = \"SL\",\n /** San Marino. */\n Sm = \"SM\",\n /** Senegal. */\n Sn = \"SN\",\n /** Somalia. */\n So = \"SO\",\n /** Suriname. */\n Sr = \"SR\",\n /** South Sudan. */\n Ss = \"SS\",\n /** São Tomé & Príncipe. */\n St = \"ST\",\n /** El Salvador. */\n Sv = \"SV\",\n /** Sint Maarten. */\n Sx = \"SX\",\n /** Syria. */\n Sy = \"SY\",\n /** Eswatini. */\n Sz = \"SZ\",\n /** Tristan da Cunha. */\n Ta = \"TA\",\n /** Turks & Caicos Islands. */\n Tc = \"TC\",\n /** Chad. */\n Td = \"TD\",\n /** French Southern Territories. */\n Tf = \"TF\",\n /** Togo. */\n Tg = \"TG\",\n /** Thailand. */\n Th = \"TH\",\n /** Tajikistan. */\n Tj = \"TJ\",\n /** Tokelau. */\n Tk = \"TK\",\n /** Timor-Leste. */\n Tl = \"TL\",\n /** Turkmenistan. */\n Tm = \"TM\",\n /** Tunisia. */\n Tn = \"TN\",\n /** Tonga. */\n To = \"TO\",\n /** Türkiye. */\n Tr = \"TR\",\n /** Trinidad & Tobago. */\n Tt = \"TT\",\n /** Tuvalu. */\n Tv = \"TV\",\n /** Taiwan. */\n Tw = \"TW\",\n /** Tanzania. */\n Tz = \"TZ\",\n /** Ukraine. */\n Ua = \"UA\",\n /** Uganda. */\n Ug = \"UG\",\n /** U.S. Outlying Islands. */\n Um = \"UM\",\n /** United States. */\n Us = \"US\",\n /** Uruguay. */\n Uy = \"UY\",\n /** Uzbekistan. */\n Uz = \"UZ\",\n /** Vatican City. */\n Va = \"VA\",\n /** St. Vincent & Grenadines. */\n Vc = \"VC\",\n /** Venezuela. */\n Ve = \"VE\",\n /** British Virgin Islands. */\n Vg = \"VG\",\n /** Vietnam. */\n Vn = \"VN\",\n /** Vanuatu. */\n Vu = \"VU\",\n /** Wallis & Futuna. */\n Wf = \"WF\",\n /** Samoa. */\n Ws = \"WS\",\n /** Kosovo. */\n Xk = \"XK\",\n /** Yemen. */\n Ye = \"YE\",\n /** Mayotte. */\n Yt = \"YT\",\n /** South Africa. */\n Za = \"ZA\",\n /** Zambia. */\n Zm = \"ZM\",\n /** Zimbabwe. */\n Zw = \"ZW\",\n /** Unknown Region. */\n Zz = \"ZZ\",\n}\n\n/** The part of the image that should remain after cropping. */\nexport enum CropRegion {\n /** Keep the bottom of the image. */\n Bottom = \"BOTTOM\",\n /** Keep the center of the image. */\n Center = \"CENTER\",\n /** Keep the left of the image. */\n Left = \"LEFT\",\n /** Keep the right of the image. */\n Right = \"RIGHT\",\n /** Keep the top of the image. */\n Top = \"TOP\",\n}\n\n/** A currency. */\nexport type Currency = {\n __typename?: \"Currency\";\n /** The ISO code of the currency. */\n isoCode: CurrencyCode;\n /** The name of the currency. */\n name: Scalars[\"String\"][\"output\"];\n /** The symbol of the currency. */\n symbol: Scalars[\"String\"][\"output\"];\n};\n\n/**\n * The three-letter currency codes that represent the world currencies used in\n * stores. These include standard ISO 4217 codes, legacy codes,\n * and non-standard codes.\n *\n */\nexport enum CurrencyCode {\n /** United Arab Emirates Dirham (AED). */\n Aed = \"AED\",\n /** Afghan Afghani (AFN). */\n Afn = \"AFN\",\n /** Albanian Lek (ALL). */\n All = \"ALL\",\n /** Armenian Dram (AMD). */\n Amd = \"AMD\",\n /** Netherlands Antillean Guilder. */\n Ang = \"ANG\",\n /** Angolan Kwanza (AOA). */\n Aoa = \"AOA\",\n /** Argentine Pesos (ARS). */\n Ars = \"ARS\",\n /** Australian Dollars (AUD). */\n Aud = \"AUD\",\n /** Aruban Florin (AWG). */\n Awg = \"AWG\",\n /** Azerbaijani Manat (AZN). */\n Azn = \"AZN\",\n /** Bosnia and Herzegovina Convertible Mark (BAM). */\n Bam = \"BAM\",\n /** Barbadian Dollar (BBD). */\n Bbd = \"BBD\",\n /** Bangladesh Taka (BDT). */\n Bdt = \"BDT\",\n /** Bulgarian Lev (BGN). */\n Bgn = \"BGN\",\n /** Bahraini Dinar (BHD). */\n Bhd = \"BHD\",\n /** Burundian Franc (BIF). */\n Bif = \"BIF\",\n /** Bermudian Dollar (BMD). */\n Bmd = \"BMD\",\n /** Brunei Dollar (BND). */\n Bnd = \"BND\",\n /** Bolivian Boliviano (BOB). */\n Bob = \"BOB\",\n /** Brazilian Real (BRL). */\n Brl = \"BRL\",\n /** Bahamian Dollar (BSD). */\n Bsd = \"BSD\",\n /** Bhutanese Ngultrum (BTN). */\n Btn = \"BTN\",\n /** Botswana Pula (BWP). */\n Bwp = \"BWP\",\n /** Belarusian Ruble (BYN). */\n Byn = \"BYN\",\n /**\n * Belarusian Ruble (BYR).\n * @deprecated `BYR` is deprecated. Use `BYN` available from version `2021-01` onwards instead.\n */\n Byr = \"BYR\",\n /** Belize Dollar (BZD). */\n Bzd = \"BZD\",\n /** Canadian Dollars (CAD). */\n Cad = \"CAD\",\n /** Congolese franc (CDF). */\n Cdf = \"CDF\",\n /** Swiss Francs (CHF). */\n Chf = \"CHF\",\n /** Chilean Peso (CLP). */\n Clp = \"CLP\",\n /** Chinese Yuan Renminbi (CNY). */\n Cny = \"CNY\",\n /** Colombian Peso (COP). */\n Cop = \"COP\",\n /** Costa Rican Colones (CRC). */\n Crc = \"CRC\",\n /** Cape Verdean escudo (CVE). */\n Cve = \"CVE\",\n /** Czech Koruny (CZK). */\n Czk = \"CZK\",\n /** Djiboutian Franc (DJF). */\n Djf = \"DJF\",\n /** Danish Kroner (DKK). */\n Dkk = \"DKK\",\n /** Dominican Peso (DOP). */\n Dop = \"DOP\",\n /** Algerian Dinar (DZD). */\n Dzd = \"DZD\",\n /** Egyptian Pound (EGP). */\n Egp = \"EGP\",\n /** Eritrean Nakfa (ERN). */\n Ern = \"ERN\",\n /** Ethiopian Birr (ETB). */\n Etb = \"ETB\",\n /** Euro (EUR). */\n Eur = \"EUR\",\n /** Fijian Dollars (FJD). */\n Fjd = \"FJD\",\n /** Falkland Islands Pounds (FKP). */\n Fkp = \"FKP\",\n /** United Kingdom Pounds (GBP). */\n Gbp = \"GBP\",\n /** Georgian Lari (GEL). */\n Gel = \"GEL\",\n /** Ghanaian Cedi (GHS). */\n Ghs = \"GHS\",\n /** Gibraltar Pounds (GIP). */\n Gip = \"GIP\",\n /** Gambian Dalasi (GMD). */\n Gmd = \"GMD\",\n /** Guinean Franc (GNF). */\n Gnf = \"GNF\",\n /** Guatemalan Quetzal (GTQ). */\n Gtq = \"GTQ\",\n /** Guyanese Dollar (GYD). */\n Gyd = \"GYD\",\n /** Hong Kong Dollars (HKD). */\n Hkd = \"HKD\",\n /** Honduran Lempira (HNL). */\n Hnl = \"HNL\",\n /** Croatian Kuna (HRK). */\n Hrk = \"HRK\",\n /** Haitian Gourde (HTG). */\n Htg = \"HTG\",\n /** Hungarian Forint (HUF). */\n Huf = \"HUF\",\n /** Indonesian Rupiah (IDR). */\n Idr = \"IDR\",\n /** Israeli New Shekel (NIS). */\n Ils = \"ILS\",\n /** Indian Rupees (INR). */\n Inr = \"INR\",\n /** Iraqi Dinar (IQD). */\n Iqd = \"IQD\",\n /** Iranian Rial (IRR). */\n Irr = \"IRR\",\n /** Icelandic Kronur (ISK). */\n Isk = \"ISK\",\n /** Jersey Pound. */\n Jep = \"JEP\",\n /** Jamaican Dollars (JMD). */\n Jmd = \"JMD\",\n /** Jordanian Dinar (JOD). */\n Jod = \"JOD\",\n /** Japanese Yen (JPY). */\n Jpy = \"JPY\",\n /** Kenyan Shilling (KES). */\n Kes = \"KES\",\n /** Kyrgyzstani Som (KGS). */\n Kgs = \"KGS\",\n /** Cambodian Riel. */\n Khr = \"KHR\",\n /** Kiribati Dollar (KID). */\n Kid = \"KID\",\n /** Comorian Franc (KMF). */\n Kmf = \"KMF\",\n /** South Korean Won (KRW). */\n Krw = \"KRW\",\n /** Kuwaiti Dinar (KWD). */\n Kwd = \"KWD\",\n /** Cayman Dollars (KYD). */\n Kyd = \"KYD\",\n /** Kazakhstani Tenge (KZT). */\n Kzt = \"KZT\",\n /** Laotian Kip (LAK). */\n Lak = \"LAK\",\n /** Lebanese Pounds (LBP). */\n Lbp = \"LBP\",\n /** Sri Lankan Rupees (LKR). */\n Lkr = \"LKR\",\n /** Liberian Dollar (LRD). */\n Lrd = \"LRD\",\n /** Lesotho Loti (LSL). */\n Lsl = \"LSL\",\n /** Lithuanian Litai (LTL). */\n Ltl = \"LTL\",\n /** Latvian Lati (LVL). */\n Lvl = \"LVL\",\n /** Libyan Dinar (LYD). */\n Lyd = \"LYD\",\n /** Moroccan Dirham. */\n Mad = \"MAD\",\n /** Moldovan Leu (MDL). */\n Mdl = \"MDL\",\n /** Malagasy Ariary (MGA). */\n Mga = \"MGA\",\n /** Macedonia Denar (MKD). */\n Mkd = \"MKD\",\n /** Burmese Kyat (MMK). */\n Mmk = \"MMK\",\n /** Mongolian Tugrik. */\n Mnt = \"MNT\",\n /** Macanese Pataca (MOP). */\n Mop = \"MOP\",\n /** Mauritanian Ouguiya (MRU). */\n Mru = \"MRU\",\n /** Mauritian Rupee (MUR). */\n Mur = \"MUR\",\n /** Maldivian Rufiyaa (MVR). */\n Mvr = \"MVR\",\n /** Malawian Kwacha (MWK). */\n Mwk = \"MWK\",\n /** Mexican Pesos (MXN). */\n Mxn = \"MXN\",\n /** Malaysian Ringgits (MYR). */\n Myr = \"MYR\",\n /** Mozambican Metical. */\n Mzn = \"MZN\",\n /** Namibian Dollar. */\n Nad = \"NAD\",\n /** Nigerian Naira (NGN). */\n Ngn = \"NGN\",\n /** Nicaraguan Córdoba (NIO). */\n Nio = \"NIO\",\n /** Norwegian Kroner (NOK). */\n Nok = \"NOK\",\n /** Nepalese Rupee (NPR). */\n Npr = \"NPR\",\n /** New Zealand Dollars (NZD). */\n Nzd = \"NZD\",\n /** Omani Rial (OMR). */\n Omr = \"OMR\",\n /** Panamian Balboa (PAB). */\n Pab = \"PAB\",\n /** Peruvian Nuevo Sol (PEN). */\n Pen = \"PEN\",\n /** Papua New Guinean Kina (PGK). */\n Pgk = \"PGK\",\n /** Philippine Peso (PHP). */\n Php = \"PHP\",\n /** Pakistani Rupee (PKR). */\n Pkr = \"PKR\",\n /** Polish Zlotych (PLN). */\n Pln = \"PLN\",\n /** Paraguayan Guarani (PYG). */\n Pyg = \"PYG\",\n /** Qatari Rial (QAR). */\n Qar = \"QAR\",\n /** Romanian Lei (RON). */\n Ron = \"RON\",\n /** Serbian dinar (RSD). */\n Rsd = \"RSD\",\n /** Russian Rubles (RUB). */\n Rub = \"RUB\",\n /** Rwandan Franc (RWF). */\n Rwf = \"RWF\",\n /** Saudi Riyal (SAR). */\n Sar = \"SAR\",\n /** Solomon Islands Dollar (SBD). */\n Sbd = \"SBD\",\n /** Seychellois Rupee (SCR). */\n Scr = \"SCR\",\n /** Sudanese Pound (SDG). */\n Sdg = \"SDG\",\n /** Swedish Kronor (SEK). */\n Sek = \"SEK\",\n /** Singapore Dollars (SGD). */\n Sgd = \"SGD\",\n /** Saint Helena Pounds (SHP). */\n Shp = \"SHP\",\n /** Sierra Leonean Leone (SLL). */\n Sll = \"SLL\",\n /** Somali Shilling (SOS). */\n Sos = \"SOS\",\n /** Surinamese Dollar (SRD). */\n Srd = \"SRD\",\n /** South Sudanese Pound (SSP). */\n Ssp = \"SSP\",\n /**\n * Sao Tome And Principe Dobra (STD).\n * @deprecated `STD` is deprecated. Use `STN` available from version `2022-07` onwards instead.\n */\n Std = \"STD\",\n /** Sao Tome And Principe Dobra (STN). */\n Stn = \"STN\",\n /** Syrian Pound (SYP). */\n Syp = \"SYP\",\n /** Swazi Lilangeni (SZL). */\n Szl = \"SZL\",\n /** Thai baht (THB). */\n Thb = \"THB\",\n /** Tajikistani Somoni (TJS). */\n Tjs = \"TJS\",\n /** Turkmenistani Manat (TMT). */\n Tmt = \"TMT\",\n /** Tunisian Dinar (TND). */\n Tnd = \"TND\",\n /** Tongan Pa'anga (TOP). */\n Top = \"TOP\",\n /** Turkish Lira (TRY). */\n Try = \"TRY\",\n /** Trinidad and Tobago Dollars (TTD). */\n Ttd = \"TTD\",\n /** Taiwan Dollars (TWD). */\n Twd = \"TWD\",\n /** Tanzanian Shilling (TZS). */\n Tzs = \"TZS\",\n /** Ukrainian Hryvnia (UAH). */\n Uah = \"UAH\",\n /** Ugandan Shilling (UGX). */\n Ugx = \"UGX\",\n /** United States Dollars (USD). */\n Usd = \"USD\",\n /** Uruguayan Pesos (UYU). */\n Uyu = \"UYU\",\n /** Uzbekistan som (UZS). */\n Uzs = \"UZS\",\n /** Venezuelan Bolivares (VED). */\n Ved = \"VED\",\n /**\n * Venezuelan Bolivares (VEF).\n * @deprecated `VEF` is deprecated. Use `VES` available from version `2020-10` onwards instead.\n */\n Vef = \"VEF\",\n /** Venezuelan Bolivares Soberanos (VES). */\n Ves = \"VES\",\n /** Vietnamese đồng (VND). */\n Vnd = \"VND\",\n /** Vanuatu Vatu (VUV). */\n Vuv = \"VUV\",\n /** Samoan Tala (WST). */\n Wst = \"WST\",\n /** Central African CFA Franc (XAF). */\n Xaf = \"XAF\",\n /** East Caribbean Dollar (XCD). */\n Xcd = \"XCD\",\n /** West African CFA franc (XOF). */\n Xof = \"XOF\",\n /** CFP Franc (XPF). */\n Xpf = \"XPF\",\n /** Unrecognized currency. */\n Xxx = \"XXX\",\n /** Yemeni Rial (YER). */\n Yer = \"YER\",\n /** South African Rand (ZAR). */\n Zar = \"ZAR\",\n /** Zambian Kwacha (ZMW). */\n Zmw = \"ZMW\",\n}\n\n/** 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. */\nexport type Customer = HasMetafields & {\n __typename?: \"Customer\";\n /** Indicates whether the customer has consented to be sent marketing material via email. */\n acceptsMarketing: Scalars[\"Boolean\"][\"output\"];\n /** A list of addresses for the customer. */\n addresses: MailingAddressConnection;\n /** The date and time when the customer was created. */\n createdAt: Scalars[\"DateTime\"][\"output\"];\n /** The customer’s default address. */\n defaultAddress?: Maybe<MailingAddress>;\n /** The customer’s name, email or phone number. */\n displayName: Scalars[\"String\"][\"output\"];\n /** The customer’s email address. */\n email?: Maybe<Scalars[\"String\"][\"output\"]>;\n /** The customer’s first name. */\n firstName?: Maybe<Scalars[\"String\"][\"output\"]>;\n /** A unique ID for the customer. */\n id: Scalars[\"ID\"][\"output\"];\n /** The customer’s last name. */\n lastName?: Maybe<Scalars[\"String\"][\"output\"]>;\n /** A [custom field](https://shopify.dev/docs/apps/build/custom-data), including its `namespace` and `key`, that's associated with a Shopify resource for the purposes of adding and storing additional information. */\n metafield?: Maybe<Metafield>;\n /** A list of [custom fields](/docs/apps/build/custom-data) that a merchant associates with a Shopify resource. */\n metafields: Array<Maybe<Metafield>>;\n /** The number of orders that the customer has made at the store in their lifetime. */\n numberOfOrders: Scalars[\"UnsignedInt64\"][\"output\"];\n /** The orders associated with the customer. */\n orders: OrderConnection;\n /** The customer’s phone number. */\n phone?: Maybe<Scalars[\"String\"][\"output\"]>;\n /**\n * A comma separated list of tags that have been added to the customer.\n * Additional access scope required: unauthenticated_read_customer_tags.\n *\n */\n tags: Array<Scalars[\"String\"][\"output\"]>;\n /** The date and time when the customer information was updated. */\n updatedAt: Scalars[\"DateTime\"][\"output\"];\n};\n\n/** 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. */\nexport type CustomerAddressesArgs = {\n after?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n before?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n first?: InputMaybe<Scalars[\"Int\"][\"input\"]>;\n last?: InputMaybe<Scalars[\"Int\"][\"input\"]>;\n reverse?: InputMaybe<Scalars[\"Boolean\"][\"input\"]>;\n};\n\n/** 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. */\nexport type CustomerMetafieldArgs = {\n key: Scalars[\"String\"][\"input\"];\n namespace?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n};\n\n/** 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. */\nexport type CustomerMetafieldsArgs = {\n identifiers: Array<HasMetafieldsIdentifier>;\n};\n\n/** 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. */\nexport type CustomerOrdersArgs = {\n after?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n before?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n first?: InputMaybe<Scalars[\"Int\"][\"input\"]>;\n last?: InputMaybe<Scalars[\"Int\"][\"input\"]>;\n query?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n reverse?: InputMaybe<Scalars[\"Boolean\"][\"input\"]>;\n sortKey?: InputMaybe<OrderSortKeys>;\n};\n\n/** A CustomerAccessToken represents the unique token required to make modifications to the customer object. */\nexport type CustomerAccessToken = {\n __typename?: \"CustomerAccessToken\";\n /** The customer’s access token. */\n accessToken: Scalars[\"String\"][\"output\"];\n /** The date and time when the customer access token expires. */\n expiresAt: Scalars[\"DateTime\"][\"output\"];\n};\n\n/** The input fields required to create a customer access token. */\nexport type CustomerAccessTokenCreateInput = {\n /** The email associated to the customer. */\n email: Scalars[\"String\"][\"input\"];\n /** The login password to be used by the customer. */\n password: Scalars[\"String\"][\"input\"];\n};\n\n/** Return type for `customerAccessTokenCreate` mutation. */\nexport type CustomerAccessTokenCreatePayload = {\n __typename?: \"CustomerAccessTokenCreatePayload\";\n /** The newly created customer access token object. */\n customerAccessToken?: Maybe<CustomerAccessToken>;\n /** The list of errors that occurred from executing the mutation. */\n customerUserErrors: Array<CustomerUserError>;\n /**\n * The list of errors that occurred from executing the mutation.\n * @deprecated Use `customerUserErrors` instead.\n */\n userErrors: Array<UserError>;\n};\n\n/** Return type for `customerAccessTokenCreateWithMultipass` mutation. */\nexport type CustomerAccessTokenCreateWithMultipassPayload = {\n __typename?: \"CustomerAccessTokenCreateWithMultipassPayload\";\n /** An access token object associated with the customer. */\n customerAccessToken?: Maybe<CustomerAccessToken>;\n /** The list of errors that occurred from executing the mutation. */\n customerUserErrors: Array<CustomerUserError>;\n};\n\n/** Return type for `customerAccessTokenDelete` mutation. */\nexport type CustomerAccessTokenDeletePayload = {\n __typename?: \"CustomerAccessTokenDeletePayload\";\n /** The destroyed access token. */\n deletedAccessToken?: Maybe<Scalars[\"String\"][\"output\"]>;\n /** ID of the destroyed customer access token. */\n deletedCustomerAccessTokenId?: Maybe<Scalars[\"String\"][\"output\"]>;\n /** The list of errors that occurred from executing the mutation. */\n userErrors: Array<UserError>;\n};\n\n/** Return type for `customerAccessTokenRenew` mutation. */\nexport type CustomerAccessTokenRenewPayload = {\n __typename?: \"CustomerAccessTokenRenewPayload\";\n /** The renewed customer access token object. */\n customerAccessToken?: Maybe<CustomerAccessToken>;\n /** The list of errors that occurred from executing the mutation. */\n userErrors: Array<UserError>;\n};\n\n/** Return type for `customerActivateByUrl` mutation. */\nexport type CustomerActivateByUrlPayload = {\n __typename?: \"CustomerActivateByUrlPayload\";\n /** The customer that was activated. */\n customer?: Maybe<Customer>;\n /** A new customer access token for the customer. */\n customerAccessToken?: Maybe<CustomerAccessToken>;\n /** The list of errors that occurred from executing the mutation. */\n customerUserErrors: Array<CustomerUserError>;\n};\n\n/** The input fields to activate a customer. */\nexport type CustomerActivateInput = {\n /** The activation token required to activate the customer. */\n activationToken: Scalars[\"String\"][\"input\"];\n /** New password that will be set during activation. */\n password: Scalars[\"String\"][\"input\"];\n};\n\n/** Return type for `customerActivate` mutation. */\nexport type CustomerActivatePayload = {\n __typename?: \"CustomerActivatePayload\";\n /** The customer object. */\n customer?: Maybe<Customer>;\n /** A newly created customer access token object for the customer. */\n customerAccessToken?: Maybe<CustomerAccessToken>;\n /** The list of errors that occurred from executing the mutation. */\n customerUserErrors: Array<CustomerUserError>;\n /**\n * The list of errors that occurred from executing the mutation.\n * @deprecated Use `customerUserErrors` instead.\n */\n userErrors: Array<UserError>;\n};\n\n/** Return type for `customerAddressCreate` mutation. */\nexport type CustomerAddressCreatePayload = {\n __typename?: \"CustomerAddressCreatePayload\";\n /** The new customer address object. */\n customerAddress?: Maybe<MailingAddress>;\n /** The list of errors that occurred from executing the mutation. */\n customerUserErrors: Array<CustomerUserError>;\n /**\n * The list of errors that occurred from executing the mutation.\n * @deprecated Use `customerUserErrors` instead.\n */\n userErrors: Array<UserError>;\n};\n\n/** Return type for `customerAddressDelete` mutation. */\nexport type CustomerAddressDeletePayload = {\n __typename?: \"CustomerAddressDeletePayload\";\n /** The list of errors that occurred from executing the mutation. */\n customerUserErrors: Array<CustomerUserError>;\n /** ID of the deleted customer address. */\n deletedCustomerAddressId?: Maybe<Scalars[\"String\"][\"output\"]>;\n /**\n * The list of errors that occurred from executing the mutation.\n * @deprecated Use `customerUserErrors` instead.\n */\n userErrors: Array<UserError>;\n};\n\n/** Return type for `customerAddressUpdate` mutation. */\nexport type CustomerAddressUpdatePayload = {\n __typename?: \"CustomerAddressUpdatePayload\";\n /** The customer’s updated mailing address. */\n customerAddress?: Maybe<MailingAddress>;\n /** The list of errors that occurred from executing the mutation. */\n customerUserErrors: Array<CustomerUserError>;\n /**\n * The list of errors that occurred from executing the mutation.\n * @deprecated Use `customerUserErrors` instead.\n */\n userErrors: Array<UserError>;\n};\n\n/** The input fields to create a new customer. */\nexport type CustomerCreateInput = {\n /** Indicates whether the customer has consented to be sent marketing material via email. */\n acceptsMarketing?: InputMaybe<Scalars[\"Boolean\"][\"input\"]>;\n /** The customer’s email. */\n email: Scalars[\"String\"][\"input\"];\n /** The customer’s first name. */\n firstName?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n /** The customer’s last name. */\n lastName?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n /** The login password used by the customer. */\n password: Scalars[\"String\"][\"input\"];\n /**\n * A unique phone number for the customer.\n *\n * Formatted using E.164 standard. For example, _+16135551111_.\n *\n */\n phone?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n};\n\n/** Return type for `customerCreate` mutation. */\nexport type CustomerCreatePayload = {\n __typename?: \"CustomerCreatePayload\";\n /** The created customer object. */\n customer?: Maybe<Customer>;\n /** The list of errors that occurred from executing the mutation. */\n customerUserErrors: Array<CustomerUserError>;\n /**\n * The list of errors that occurred from executing the mutation.\n * @deprecated Use `customerUserErrors` instead.\n */\n userErrors: Array<UserError>;\n};\n\n/** Return type for `customerDefaultAddressUpdate` mutation. */\nexport type CustomerDefaultAddressUpdatePayload = {\n __typename?: \"CustomerDefaultAddressUpdatePayload\";\n /** The updated customer object. */\n customer?: Maybe<Customer>;\n /** The list of errors that occurred from executing the mutation. */\n customerUserErrors: Array<CustomerUserError>;\n /**\n * The list of errors that occurred from executing the mutation.\n * @deprecated Use `customerUserErrors` instead.\n */\n userErrors: Array<UserError>;\n};\n\n/** Possible error codes that can be returned by `CustomerUserError`. */\nexport enum CustomerErrorCode {\n /** Customer already enabled. */\n AlreadyEnabled = \"ALREADY_ENABLED\",\n /** Input email contains an invalid domain name. */\n BadDomain = \"BAD_DOMAIN\",\n /** The input value is blank. */\n Blank = \"BLANK\",\n /** Input contains HTML tags. */\n ContainsHtmlTags = \"CONTAINS_HTML_TAGS\",\n /** Input contains URL. */\n ContainsUrl = \"CONTAINS_URL\",\n /** Customer is disabled. */\n CustomerDisabled = \"CUSTOMER_DISABLED\",\n /** The input value is invalid. */\n Invalid = \"INVALID\",\n /** Multipass token is not valid. */\n InvalidMultipassRequest = \"INVALID_MULTIPASS_REQUEST\",\n /** Address does not exist. */\n NotFound = \"NOT_FOUND\",\n /** Input password starts or ends with whitespace. */\n PasswordStartsOrEndsWithWhitespace = \"PASSWORD_STARTS_OR_ENDS_WITH_WHITESPACE\",\n /** The input value is already taken. */\n Taken = \"TAKEN\",\n /** Invalid activation token. */\n TokenInvalid = \"TOKEN_INVALID\",\n /** The input value is too long. */\n TooLong = \"TOO_LONG\",\n /** The input value is too short. */\n TooShort = \"TOO_SHORT\",\n /** Unidentified customer. */\n UnidentifiedCustomer = \"UNIDENTIFIED_CUSTOMER\",\n}\n\n/** Return type for `customerRecover` mutation. */\nexport type CustomerRecoverPayload = {\n __typename?: \"CustomerRecoverPayload\";\n /** The list of errors that occurred from executing the mutation. */\n customerUserErrors: Array<CustomerUserError>;\n /**\n * The list of errors that occurred from executing the mutation.\n * @deprecated Use `customerUserErrors` instead.\n */\n userErrors: Array<UserError>;\n};\n\n/** Return type for `customerResetByUrl` mutation. */\nexport type CustomerResetByUrlPayload = {\n __typename?: \"CustomerResetByUrlPayload\";\n /** The customer object which was reset. */\n customer?: Maybe<Customer>;\n /** A newly created customer access token object for the customer. */\n customerAccessToken?: Maybe<CustomerAccessToken>;\n /** The list of errors that occurred from executing the mutation. */\n customerUserErrors: Array<CustomerUserError>;\n /**\n * The list of errors that occurred from executing the mutation.\n * @deprecated Use `customerUserErrors` instead.\n */\n userErrors: Array<UserError>;\n};\n\n/** The input fields to reset a customer's password. */\nexport type CustomerResetInput = {\n /** New password that will be set as part of the reset password process. */\n password: Scalars[\"String\"][\"input\"];\n /** The reset token required to reset the customer’s password. */\n resetToken: Scalars[\"String\"][\"input\"];\n};\n\n/** Return type for `customerReset` mutation. */\nexport type CustomerResetPayload = {\n __typename?: \"CustomerResetPayload\";\n /** The customer object which was reset. */\n customer?: Maybe<Customer>;\n /** A newly created customer access token object for the customer. */\n customerAccessToken?: Maybe<CustomerAccessToken>;\n /** The list of errors that occurred from executing the mutation. */\n customerUserErrors: Array<CustomerUserError>;\n /**\n * The list of errors that occurred from executing the mutation.\n * @deprecated Use `customerUserErrors` instead.\n */\n userErrors: Array<UserError>;\n};\n\n/** The input fields to update the Customer information. */\nexport type CustomerUpdateInput = {\n /** Indicates whether the customer has consented to be sent marketing material via email. */\n acceptsMarketing?: InputMaybe<Scalars[\"Boolean\"][\"input\"]>;\n /** The customer’s email. */\n email?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n /** The customer’s first name. */\n firstName?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n /** The customer’s last name. */\n lastName?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n /** The login password used by the customer. */\n password?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n /**\n * A unique phone number for the customer.\n *\n * Formatted using E.164 standard. For example, _+16135551111_. To remove the phone number, specify `null`.\n *\n */\n phone?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n};\n\n/** Return type for `customerUpdate` mutation. */\nexport type CustomerUpdatePayload = {\n __typename?: \"CustomerUpdatePayload\";\n /** The updated customer object. */\n customer?: Maybe<Customer>;\n /**\n * The newly created customer access token. If the customer's password is updated, all previous access tokens\n * (including the one used to perform this mutation) become invalid, and a new token is generated.\n *\n */\n customerAccessToken?: Maybe<CustomerAccessToken>;\n /** The list of errors that occurred from executing the mutation. */\n customerUserErrors: Array<CustomerUserError>;\n /**\n * The list of errors that occurred from executing the mutation.\n * @deprecated Use `customerUserErrors` instead.\n */\n userErrors: Array<UserError>;\n};\n\n/** Represents an error that happens during execution of a customer mutation. */\nexport type CustomerUserError = DisplayableError & {\n __typename?: \"CustomerUserError\";\n /** The error code. */\n code?: Maybe<CustomerErrorCode>;\n /** The path to the input field that caused the error. */\n field?: Maybe<Array<Scalars[\"String\"][\"output\"]>>;\n /** The error message. */\n message: Scalars[\"String\"][\"output\"];\n};\n\n/** A delivery address of the buyer that is interacting with the cart. */\nexport type DeliveryAddress = MailingAddress;\n\n/**\n * The input fields for delivery address preferences.\n *\n */\nexport type DeliveryAddressInput = {\n /**\n * The ID of a customer address that is associated with the buyer that is interacting with the cart.\n *\n */\n customerAddressId?: InputMaybe<Scalars[\"ID\"][\"input\"]>;\n /** A delivery address preference of a buyer that is interacting with the cart. */\n deliveryAddress?: InputMaybe<MailingAddressInput>;\n /** Defines what kind of address validation is requested. */\n deliveryAddressValidationStrategy?: InputMaybe<DeliveryAddressValidationStrategy>;\n /**\n * Whether the given delivery address is considered to be a one-time use address. One-time use addresses do not\n * get persisted to the buyer's personal addresses when checking out.\n *\n */\n oneTimeUse?: InputMaybe<Scalars[\"Boolean\"][\"input\"]>;\n};\n\n/**\n * Defines the types of available validation strategies for delivery addresses.\n *\n */\nexport enum DeliveryAddressValidationStrategy {\n /** Only the country code is validated. */\n CountryCodeOnly = \"COUNTRY_CODE_ONLY\",\n /**\n * Strict validation is performed, i.e. all fields in the address are validated\n * according to Shopify's checkout rules. If the address fails validation, the cart will not be updated.\n *\n */\n Strict = \"STRICT\",\n}\n\n/** List of different delivery method types. */\nexport enum DeliveryMethodType {\n /** Local Delivery. */\n Local = \"LOCAL\",\n /** None. */\n None = \"NONE\",\n /** Shipping to a Pickup Point. */\n PickupPoint = \"PICKUP_POINT\",\n /** Local Pickup. */\n PickUp = \"PICK_UP\",\n /** Retail. */\n Retail = \"RETAIL\",\n /** Shipping. */\n Shipping = \"SHIPPING\",\n}\n\n/** Digital wallet, such as Apple Pay, which can be used for accelerated checkouts. */\nexport enum DigitalWallet {\n /** Android Pay. */\n AndroidPay = \"ANDROID_PAY\",\n /** Apple Pay. */\n ApplePay = \"APPLE_PAY\",\n /** Google Pay. */\n GooglePay = \"GOOGLE_PAY\",\n /** Shopify Pay. */\n ShopifyPay = \"SHOPIFY_PAY\",\n}\n\n/**\n * An amount discounting the line that has been allocated by a discount.\n *\n */\nexport type DiscountAllocation = {\n __typename?: \"DiscountAllocation\";\n /** Amount of discount allocated. */\n allocatedAmount: MoneyV2;\n /** The discount this allocated amount originated from. */\n discountApplication: DiscountApplication;\n};\n\n/**\n * Discount applications capture the intentions of a discount source at\n * the time of application.\n *\n */\nexport type DiscountApplication = {\n /** The method by which the discount's value is allocated to its entitled items. */\n allocationMethod: DiscountApplicationAllocationMethod;\n /** Which lines of targetType that the discount is allocated over. */\n targetSelection: DiscountApplicationTargetSelection;\n /** The type of line that the discount is applicable towards. */\n targetType: DiscountApplicationTargetType;\n /** The value of the discount application. */\n value: PricingValue;\n};\n\n/** The method by which the discount's value is allocated onto its entitled lines. */\nexport enum DiscountApplicationAllocationMethod {\n /** The value is spread across all entitled lines. */\n Across = \"ACROSS\",\n /** The value is applied onto every entitled line. */\n Each = \"EACH\",\n /**\n * The value is specifically applied onto a particular line.\n * @deprecated Use ACROSS instead.\n */\n One = \"ONE\",\n}\n\n/**\n * An auto-generated type for paginating through multiple DiscountApplications.\n *\n */\nexport type DiscountApplicationConnection = {\n __typename?: \"DiscountApplicationConnection\";\n /** A list of edges. */\n edges: Array<DiscountApplicationEdge>;\n /** A list of the nodes contained in DiscountApplicationEdge. */\n nodes: Array<DiscountApplication>;\n /** Information to aid in pagination. */\n pageInfo: PageInfo;\n};\n\n/**\n * An auto-generated type which holds one DiscountApplication and a cursor during pagination.\n *\n */\nexport type DiscountApplicationEdge = {\n __typename?: \"DiscountApplicationEdge\";\n /** A cursor for use in pagination. */\n cursor: Scalars[\"String\"][\"output\"];\n /** The item at the end of DiscountApplicationEdge. */\n node: DiscountApplication;\n};\n\n/**\n * The lines on the order to which the discount is applied, of the type defined by\n * the discount application's `targetType`. For example, the value `ENTITLED`, combined with a `targetType` of\n * `LINE_ITEM`, applies the discount on all line items that are entitled to the discount.\n * The value `ALL`, combined with a `targetType` of `SHIPPING_LINE`, applies the discount on all shipping lines.\n *\n */\nexport enum DiscountApplicationTargetSelection {\n /** The discount is allocated onto all the lines. */\n All = \"ALL\",\n /** The discount is allocated onto only the lines that it's entitled for. */\n Entitled = \"ENTITLED\",\n /** The discount is allocated onto explicitly chosen lines. */\n Explicit = \"EXPLICIT\",\n}\n\n/**\n * The type of line (i.e. line item or shipping line) on an order that the discount is applicable towards.\n *\n */\nexport enum DiscountApplicationTargetType {\n /** The discount applies onto line items. */\n LineItem = \"LINE_ITEM\",\n /** The discount applies onto shipping lines. */\n ShippingLine = \"SHIPPING_LINE\",\n}\n\n/**\n * Discount code applications capture the intentions of a discount code at\n * the time that it is applied.\n *\n */\nexport type DiscountCodeApplication = DiscountApplication & {\n __typename?: \"DiscountCodeApplication\";\n /** The method by which the discount's value is allocated to its entitled items. */\n allocationMethod: DiscountApplicationAllocationMethod;\n /** Specifies whether the discount code was applied successfully. */\n applicable: Scalars[\"Boolean\"][\"output\"];\n /** The string identifying the discount code that was used at the time of application. */\n code: Scalars[\"String\"][\"output\"];\n /** Which lines of targetType that the discount is allocated over. */\n targetSelection: DiscountApplicationTargetSelection;\n /** The type of line that the discount is applicable towards. */\n targetType: DiscountApplicationTargetType;\n /** The value of the discount application. */\n value: PricingValue;\n};\n\n/** Represents an error in the input of a mutation. */\nexport type DisplayableError = {\n /** The path to the input field that caused the error. */\n field?: Maybe<Array<Scalars[\"String\"][\"output\"]>>;\n /** The error message. */\n message: Scalars[\"String\"][\"output\"];\n};\n\n/** Represents a web address. */\nexport type Domain = {\n __typename?: \"Domain\";\n /** The host name of the domain (eg: `example.com`). */\n host: Scalars[\"String\"][\"output\"];\n /** Whether SSL is enabled or not. */\n sslEnabled: Scalars[\"Boolean\"][\"output\"];\n /** The URL of the domain (eg: `https://example.com`). */\n url: Scalars[\"URL\"][\"output\"];\n};\n\n/** Represents a video hosted outside of Shopify. */\nexport type ExternalVideo = Media &\n Node & {\n __typename?: \"ExternalVideo\";\n /** A word or phrase to share the nature or contents of a media. */\n alt?: Maybe<Scalars[\"String\"][\"output\"]>;\n /** The embed URL of the video for the respective host. */\n embedUrl: Scalars[\"URL\"][\"output\"];\n /**\n * The URL.\n * @deprecated Use `originUrl` instead.\n */\n embeddedUrl: Scalars[\"URL\"][\"output\"];\n /** The host of the external video. */\n host: MediaHost;\n /** A globally-unique ID. */\n id: Scalars[\"ID\"][\"output\"];\n /** The media content type. */\n mediaContentType: MediaContentType;\n /** The origin URL of the video on the respective host. */\n originUrl: Scalars[\"URL\"][\"output\"];\n /** The presentation for a media. */\n presentation?: Maybe<MediaPresentation>;\n /** The preview image for the media. */\n previewImage?: Maybe<Image>;\n };\n\n/** A filter that is supported on the parent field. */\nexport type Filter = {\n __typename?: \"Filter\";\n /** A unique identifier. */\n id: Scalars[\"String\"][\"output\"];\n /** A human-friendly string for this filter. */\n label: Scalars[\"String\"][\"output\"];\n /**\n * Describes how to present the filter values.\n * Returns a value only for filters of type `LIST`. Returns null for other types.\n *\n */\n presentation?: Maybe<FilterPresentation>;\n /** An enumeration that denotes the type of data this filter represents. */\n type: FilterType;\n /** The list of values for this filter. */\n values: Array<FilterValue>;\n};\n\n/**\n * Defines how to present the filter values, specifies the presentation of the filter.\n *\n */\nexport enum FilterPresentation {\n /** Image presentation, filter values display an image. */\n Image = \"IMAGE\",\n /** Swatch presentation, filter values display color or image patterns. */\n Swatch = \"SWATCH\",\n /** Text presentation, no additional visual display for filter values. */\n Text = \"TEXT\",\n}\n\n/**\n * The type of data that the filter group represents.\n *\n * For more information, refer to [Filter products in a collection with the Storefront API]\n * (https://shopify.dev/custom-storefronts/products-collections/filter-products).\n *\n */\nexport enum FilterType {\n /** A boolean value. */\n Boolean = \"BOOLEAN\",\n /** A list of selectable values. */\n List = \"LIST\",\n /** A range of prices. */\n PriceRange = \"PRICE_RANGE\",\n}\n\n/** A selectable value within a filter. */\nexport type FilterValue = {\n __typename?: \"FilterValue\";\n /** The number of results that match this filter value. */\n count: Scalars[\"Int\"][\"output\"];\n /** A unique identifier. */\n id: Scalars[\"String\"][\"output\"];\n /** The visual representation when the filter's presentation is `IMAGE`. */\n image?: Maybe<MediaImage>;\n /**\n * An input object that can be used to filter by this value on the parent field.\n *\n * The value is provided as a helper for building dynamic filtering UI. For\n * example, if you have a list of selected `FilterValue` objects, you can combine\n * their respective `input` values to use in a subsequent query.\n *\n */\n input: Scalars[\"JSON\"][\"output\"];\n /** A human-friendly string for this filter value. */\n label: Scalars[\"String\"][\"output\"];\n /** The visual representation when the filter's presentation is `SWATCH`. */\n swatch?: Maybe<Swatch>;\n};\n\n/** Represents a single fulfillment in an order. */\nexport type Fulfillment = {\n __typename?: \"Fulfillment\";\n /** List of the fulfillment's line items. */\n fulfillmentLineItems: FulfillmentLineItemConnection;\n /** The name of the tracking company. */\n trackingCompany?: Maybe<Scalars[\"String\"][\"output\"]>;\n /**\n * Tracking information associated with the fulfillment,\n * such as the tracking number and tracking URL.\n *\n */\n trackingInfo: Array<FulfillmentTrackingInfo>;\n};\n\n/** Represents a single fulfillment in an order. */\nexport type FulfillmentFulfillmentLineItemsArgs = {\n after?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n before?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n first?: InputMaybe<Scalars[\"Int\"][\"input\"]>;\n last?: InputMaybe<Scalars[\"Int\"][\"input\"]>;\n reverse?: InputMaybe<Scalars[\"Boolean\"][\"input\"]>;\n};\n\n/** Represents a single fulfillment in an order. */\nexport type FulfillmentTrackingInfoArgs = {\n first?: InputMaybe<Scalars[\"Int\"][\"input\"]>;\n};\n\n/** Represents a single line item in a fulfillment. There is at most one fulfillment line item for each order line item. */\nexport type FulfillmentLineItem = {\n __typename?: \"FulfillmentLineItem\";\n /** The associated order's line item. */\n lineItem: OrderLineItem;\n /** The amount fulfilled in this fulfillment. */\n quantity: Scalars[\"Int\"][\"output\"];\n};\n\n/**\n * An auto-generated type for paginating through multiple FulfillmentLineItems.\n *\n */\nexport type FulfillmentLineItemConnection = {\n __typename?: \"FulfillmentLineItemConnection\";\n /** A list of edges. */\n edges: Array<FulfillmentLineItemEdge>;\n /** A list of the nodes contained in FulfillmentLineItemEdge. */\n nodes: Array<FulfillmentLineItem>;\n /** Information to aid in pagination. */\n pageInfo: PageInfo;\n};\n\n/**\n * An auto-generated type which holds one FulfillmentLineItem and a cursor during pagination.\n *\n */\nexport type FulfillmentLineItemEdge = {\n __typename?: \"FulfillmentLineItemEdge\";\n /** A cursor for use in pagination. */\n cursor: Scalars[\"String\"][\"output\"];\n /** The item at the end of FulfillmentLineItemEdge. */\n node: FulfillmentLineItem;\n};\n\n/** Tracking information associated with the fulfillment. */\nexport type FulfillmentTrackingInfo = {\n __typename?: \"FulfillmentTrackingInfo\";\n /** The tracking number of the fulfillment. */\n number?: Maybe<Scalars[\"String\"][\"output\"]>;\n /** The URL to track the fulfillment. */\n url?: Maybe<Scalars[\"URL\"][\"output\"]>;\n};\n\n/** The generic file resource lets you manage files in a merchant’s store. Generic files include any file that doesn’t fit into a designated type such as image or video. Example: PDF, JSON. */\nexport type GenericFile = Node & {\n __typename?: \"GenericFile\";\n /** A word or phrase to indicate the contents of a file. */\n alt?: Maybe<Scalars[\"String\"][\"output\"]>;\n /** A globally-unique ID. */\n id: Scalars[\"ID\"][\"output\"];\n /** The MIME type of the file. */\n mimeType?: Maybe<Scalars[\"String\"][\"output\"]>;\n /** The size of the original file in bytes. */\n originalFileSize?: Maybe<Scalars[\"Int\"][\"output\"]>;\n /** The preview image for the file. */\n previewImage?: Maybe<Image>;\n /** The URL of the file. */\n url?: Maybe<Scalars[\"URL\"][\"output\"]>;\n};\n\n/** The input fields used to specify a geographical location. */\nexport type GeoCoordinateInput = {\n /** The coordinate's latitude value. */\n latitude: Scalars[\"Float\"][\"input\"];\n /** The coordinate's longitude value. */\n longitude: Scalars[\"Float\"][\"input\"];\n};\n\n/** Represents information about the metafields associated to the specified resource. */\nexport type HasMetafields = {\n /** A [custom field](https://shopify.dev/docs/apps/build/custom-data), including its `namespace` and `key`, that's associated with a Shopify resource for the purposes of adding and storing additional information. */\n metafield?: Maybe<Metafield>;\n /** A list of [custom fields](/docs/apps/build/custom-data) that a merchant associates with a Shopify resource. */\n metafields: Array<Maybe<Metafield>>;\n};\n\n/** Represents information about the metafields associated to the specified resource. */\nexport type HasMetafieldsMetafieldArgs = {\n key: Scalars[\"String\"][\"input\"];\n namespace?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n};\n\n/** Represents information about the metafields associated to the specified resource. */\nexport type HasMetafieldsMetafieldsArgs = {\n identifiers: Array<HasMetafieldsIdentifier>;\n};\n\n/** The input fields to identify a metafield on an owner resource by namespace and key. */\nexport type HasMetafieldsIdentifier = {\n /** The identifier for the metafield. */\n key: Scalars[\"String\"][\"input\"];\n /** The container the metafield belongs to. If omitted, the app-reserved namespace will be used. */\n namespace?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n};\n\n/** Represents an image resource. */\nexport type Image = {\n __typename?: \"Image\";\n /** A word or phrase to share the nature or contents of an image. */\n altText?: Maybe<Scalars[\"String\"][\"output\"]>;\n /** The original height of the image in pixels. Returns `null` if the image isn't hosted by Shopify. */\n height?: Maybe<Scalars[\"Int\"][\"output\"]>;\n /** A unique ID for the image. */\n id?: Maybe<Scalars[\"ID\"][\"output\"]>;\n /**\n * The location of the original image as a URL.\n *\n * If there are any existing transformations in the original source URL, they will remain and not be stripped.\n *\n * @deprecated Use `url` instead.\n */\n originalSrc: Scalars[\"URL\"][\"output\"];\n /**\n * The location of the image as a URL.\n * @deprecated Use `url` instead.\n */\n src: Scalars[\"URL\"][\"output\"];\n /**\n * The location of the transformed image as a URL.\n *\n * All transformation arguments are considered \"best-effort\". If they can be applied to an image, they will be.\n * Otherwise any transformations which an image type doesn't support will be ignored.\n *\n * @deprecated Use `url(transform:)` instead\n */\n transformedSrc: Scalars[\"URL\"][\"output\"];\n /**\n * The location of the image as a URL.\n *\n * If no transform options are specified, then the original image will be preserved including any pre-applied transforms.\n *\n * All transformation options are considered \"best-effort\". Any transformation that the original image type doesn't support will be ignored.\n *\n * If you need multiple variations of the same image, then you can use [GraphQL aliases](https://graphql.org/learn/queries/#aliases).\n *\n */\n url: Scalars[\"URL\"][\"output\"];\n /** The original width of the image in pixels. Returns `null` if the image isn't hosted by Shopify. */\n width?: Maybe<Scalars[\"Int\"][\"output\"]>;\n};\n\n/** Represents an image resource. */\nexport type ImageTransformedSrcArgs = {\n crop?: InputMaybe<CropRegion>;\n maxHeight?: InputMaybe<Scalars[\"Int\"][\"input\"]>;\n maxWidth?: InputMaybe<Scalars[\"Int\"][\"input\"]>;\n preferredContentType?: InputMaybe<ImageContentType>;\n scale?: InputMaybe<Scalars[\"Int\"][\"input\"]>;\n};\n\n/** Represents an image resource. */\nexport type ImageUrlArgs = {\n transform?: InputMaybe<ImageTransformInput>;\n};\n\n/**\n * An auto-generated type for paginating through multiple Images.\n *\n */\nexport type ImageConnection = {\n __typename?: \"ImageConnection\";\n /** A list of edges. */\n edges: Array<ImageEdge>;\n /** A list of the nodes contained in ImageEdge. */\n nodes: Array<Image>;\n /** Information to aid in pagination. */\n pageInfo: PageInfo;\n};\n\n/** List of supported image content types. */\nexport enum ImageContentType {\n /** A JPG image. */\n Jpg = \"JPG\",\n /** A PNG image. */\n Png = \"PNG\",\n /** A WEBP image. */\n Webp = \"WEBP\",\n}\n\n/**\n * An auto-generated type which holds one Image and a cursor during pagination.\n *\n */\nexport type ImageEdge = {\n __typename?: \"ImageEdge\";\n /** A cursor for use in pagination. */\n cursor: Scalars[\"String\"][\"output\"];\n /** The item at the end of ImageEdge. */\n node: Image;\n};\n\n/**\n * The available options for transforming an image.\n *\n * All transformation options are considered best effort. Any transformation that\n * the original image type doesn't support will be ignored.\n *\n */\nexport type ImageTransformInput = {\n /**\n * The region of the image to remain after cropping.\n * Must be used in conjunction with the `maxWidth` and/or `maxHeight` fields,\n * where the `maxWidth` and `maxHeight` aren't equal.\n * The `crop` argument should coincide with the smaller value. A smaller `maxWidth` indicates a `LEFT` or `RIGHT` crop, while\n * a smaller `maxHeight` indicates a `TOP` or `BOTTOM` crop. For example, `{\n * maxWidth: 5, maxHeight: 10, crop: LEFT }` will result\n * in an image with a width of 5 and height of 10, where the right side of the image is removed.\n *\n */\n crop?: InputMaybe<CropRegion>;\n /**\n * Image height in pixels between 1 and 5760.\n *\n */\n maxHeight?: InputMaybe<Scalars[\"Int\"][\"input\"]>;\n /**\n * Image width in pixels between 1 and 5760.\n *\n */\n maxWidth?: InputMaybe<Scalars[\"Int\"][\"input\"]>;\n /**\n * Convert the source image into the preferred content type.\n * Supported conversions: `.svg` to `.png`, any file type to `.jpg`, and any file type to `.webp`.\n *\n */\n preferredContentType?: InputMaybe<ImageContentType>;\n /**\n * Image size multiplier for high-resolution retina displays. Must be within 1..3.\n *\n */\n scale?: InputMaybe<Scalars[\"Int\"][\"input\"]>;\n};\n\n/** Provide details about the contexts influenced by the @inContext directive on a field. */\nexport type InContextAnnotation = {\n __typename?: \"InContextAnnotation\";\n description: Scalars[\"String\"][\"output\"];\n type: InContextAnnotationType;\n};\n\n/** This gives information about the type of context that impacts a field. For example, for a query with @inContext(language: \"EN\"), the type would point to the name: LanguageCode and kind: ENUM. */\nexport type InContextAnnotationType = {\n __typename?: \"InContextAnnotationType\";\n kind: Scalars[\"String\"][\"output\"];\n name: Scalars[\"String\"][\"output\"];\n};\n\n/** A language. */\nexport type Language = {\n __typename?: \"Language\";\n /** The name of the language in the language itself. If the language uses capitalization, it is capitalized for a mid-sentence position. */\n endonymName: Scalars[\"String\"][\"output\"];\n /** The ISO code. */\n isoCode: LanguageCode;\n /** The name of the language in the current language. */\n name: Scalars[\"String\"][\"output\"];\n};\n\n/** Language codes supported by Shopify. */\nexport enum LanguageCode {\n /** Afrikaans. */\n Af = \"AF\",\n /** Akan. */\n Ak = \"AK\",\n /** Amharic. */\n Am = \"AM\",\n /** Arabic. */\n Ar = \"AR\",\n /** Assamese. */\n As = \"AS\",\n /** Azerbaijani. */\n Az = \"AZ\",\n /** Belarusian. */\n Be = \"BE\",\n /** Bulgarian. */\n Bg = \"BG\",\n /** Bambara. */\n Bm = \"BM\",\n /** Bangla. */\n Bn = \"BN\",\n /** Tibetan. */\n Bo = \"BO\",\n /** Breton. */\n Br = \"BR\",\n /** Bosnian. */\n Bs = \"BS\",\n /** Catalan. */\n Ca = \"CA\",\n /** Chechen. */\n Ce = \"CE\",\n /** Central Kurdish. */\n Ckb = \"CKB\",\n /** Czech. */\n Cs = \"CS\",\n /** Church Slavic. */\n Cu = \"CU\",\n /** Welsh. */\n Cy = \"CY\",\n /** Danish. */\n Da = \"DA\",\n /** German. */\n De = \"DE\",\n /** Dzongkha. */\n Dz = \"DZ\",\n /** Ewe. */\n Ee = \"EE\",\n /** Greek. */\n El = \"EL\",\n /** English. */\n En = \"EN\",\n /** Esperanto. */\n Eo = \"EO\",\n /** Spanish. */\n Es = \"ES\",\n /** Estonian. */\n Et = \"ET\",\n /** Basque. */\n Eu = \"EU\",\n /** Persian. */\n Fa = \"FA\",\n /** Fulah. */\n Ff = \"FF\",\n /** Finnish. */\n Fi = \"FI\",\n /** Filipino. */\n Fil = \"FIL\",\n /** Faroese. */\n Fo = \"FO\",\n /** French. */\n Fr = \"FR\",\n /** Western Frisian. */\n Fy = \"FY\",\n /** Irish. */\n Ga = \"GA\",\n /** Scottish Gaelic. */\n Gd = \"GD\",\n /** Galician. */\n Gl = \"GL\",\n /** Gujarati. */\n Gu = \"GU\",\n /** Manx. */\n Gv = \"GV\",\n /** Hausa. */\n Ha = \"HA\",\n /** Hebrew. */\n He = \"HE\",\n /** Hindi. */\n Hi = \"HI\",\n /** Croatian. */\n Hr = \"HR\",\n /** Hungarian. */\n Hu = \"HU\",\n /** Armenian. */\n Hy = \"HY\",\n /** Interlingua. */\n Ia = \"IA\",\n /** Indonesian. */\n Id = \"ID\",\n /** Igbo. */\n Ig = \"IG\",\n /** Sichuan Yi. */\n Ii = \"II\",\n /** Icelandic. */\n Is = \"IS\",\n /** Italian. */\n It = \"IT\",\n /** Japanese. */\n Ja = \"JA\",\n /** Javanese. */\n Jv = \"JV\",\n /** Georgian. */\n Ka = \"KA\",\n /** Kikuyu. */\n Ki = \"KI\",\n /** Kazakh. */\n Kk = \"KK\",\n /** Kalaallisut. */\n Kl = \"KL\",\n /** Khmer. */\n Km = \"KM\",\n /** Kannada. */\n Kn = \"KN\",\n /** Korean. */\n Ko = \"KO\",\n /** Kashmiri. */\n Ks = \"KS\",\n /** Kurdish. */\n Ku = \"KU\",\n /** Cornish. */\n Kw = \"KW\",\n /** Kyrgyz. */\n Ky = \"KY\",\n /** Latin. */\n La = \"LA\",\n /** Luxembourgish. */\n Lb = \"LB\",\n /** Ganda. */\n Lg = \"LG\",\n /** Lingala. */\n Ln = \"LN\",\n /** Lao. */\n Lo = \"LO\",\n /** Lithuanian. */\n Lt = \"LT\",\n /** Luba-Katanga. */\n Lu = \"LU\",\n /** Latvian. */\n Lv = \"LV\",\n /** Malagasy. */\n Mg = \"MG\",\n /** Māori. */\n Mi = \"MI\",\n /** Macedonian. */\n Mk = \"MK\",\n /** Malayalam. */\n Ml = \"ML\",\n /** Mongolian. */\n Mn = \"MN\",\n /** Moldavian. */\n Mo = \"MO\",\n /** Marathi. */\n Mr = \"MR\",\n /** Malay. */\n Ms = \"MS\",\n /** Maltese. */\n Mt = \"MT\",\n /** Burmese. */\n My = \"MY\",\n /** Norwegian (Bokmål). */\n Nb = \"NB\",\n /** North Ndebele. */\n Nd = \"ND\",\n /** Nepali. */\n Ne = \"NE\",\n /** Dutch. */\n Nl = \"NL\",\n /** Norwegian Nynorsk. */\n Nn = \"NN\",\n /** Norwegian. */\n No = \"NO\",\n /** Oromo. */\n Om = \"OM\",\n /** Odia. */\n Or = \"OR\",\n /** Ossetic. */\n Os = \"OS\",\n /** Punjabi. */\n Pa = \"PA\",\n /** Polish. */\n Pl = \"PL\",\n /** Pashto. */\n Ps = \"PS\",\n /** Portuguese. */\n Pt = \"PT\",\n /** Portuguese (Brazil). */\n PtBr = \"PT_BR\",\n /** Portuguese (Portugal). */\n PtPt = \"PT_PT\",\n /** Quechua. */\n Qu = \"QU\",\n /** Romansh. */\n Rm = \"RM\",\n /** Rundi. */\n Rn = \"RN\",\n /** Romanian. */\n Ro = \"RO\",\n /** Russian. */\n Ru = \"RU\",\n /** Kinyarwanda. */\n Rw = \"RW\",\n /** Sanskrit. */\n Sa = \"SA\",\n /** Sardinian. */\n Sc = \"SC\",\n /** Sindhi. */\n Sd = \"SD\",\n /** Northern Sami. */\n Se = \"SE\",\n /** Sango. */\n Sg = \"SG\",\n /** Serbo-Croatian. */\n Sh = \"SH\",\n /** Sinhala. */\n Si = \"SI\",\n /** Slovak. */\n Sk = \"SK\",\n /** Slovenian. */\n Sl = \"SL\",\n /** Shona. */\n Sn = \"SN\",\n /** Somali. */\n So = \"SO\",\n /** Albanian. */\n Sq = \"SQ\",\n /** Serbian. */\n Sr = \"SR\",\n /** Sundanese. */\n Su = \"SU\",\n /** Swedish. */\n Sv = \"SV\",\n /** Swahili. */\n Sw = \"SW\",\n /** Tamil. */\n Ta = \"TA\",\n /** Telugu. */\n Te = \"TE\",\n /** Tajik. */\n Tg = \"TG\",\n /** Thai. */\n Th = \"TH\",\n /** Tigrinya. */\n Ti = \"TI\",\n /** Turkmen. */\n Tk = \"TK\",\n /** Tongan. */\n To = \"TO\",\n /** Turkish. */\n Tr = \"TR\",\n /** Tatar. */\n Tt = \"TT\",\n /** Uyghur. */\n Ug = \"UG\",\n /** Ukrainian. */\n Uk = \"UK\",\n /** Urdu. */\n Ur = \"UR\",\n /** Uzbek. */\n Uz = \"UZ\",\n /** Vietnamese. */\n Vi = \"VI\",\n /** Volapük. */\n Vo = \"VO\",\n /** Wolof. */\n Wo = \"WO\",\n /** Xhosa. */\n Xh = \"XH\",\n /** Yiddish. */\n Yi = \"YI\",\n /** Yoruba. */\n Yo = \"YO\",\n /** Chinese. */\n Zh = \"ZH\",\n /** Chinese (Simplified). */\n ZhCn = \"ZH_CN\",\n /** Chinese (Traditional). */\n ZhTw = \"ZH_TW\",\n /** Zulu. */\n Zu = \"ZU\",\n}\n\n/** Information about the localized experiences configured for the shop. */\nexport type Localization = {\n __typename?: \"Localization\";\n /** The list of countries with enabled localized experiences. */\n availableCountries: Array<Country>;\n /** The list of languages available for the active country. */\n availableLanguages: Array<Language>;\n /** The country of the active localized experience. Use the `@inContext` directive to change this value. */\n country: Country;\n /** The language of the active localized experience. Use the `@inContext` directive to change this value. */\n language: Language;\n /** The market including the country of the active localized experience. Use the `@inContext` directive to change this value. */\n market: Market;\n};\n\n/** Represents a location where product inventory is held. */\nexport type Location = HasMetafields &\n Node & {\n __typename?: \"Location\";\n /** The address of the location. */\n address: LocationAddress;\n /** A globally-unique ID. */\n id: Scalars[\"ID\"][\"output\"];\n /** A [custom field](https://shopify.dev/docs/apps/build/custom-data), including its `namespace` and `key`, that's associated with a Shopify resource for the purposes of adding and storing additional information. */\n metafield?: Maybe<Metafield>;\n /** A list of [custom fields](/docs/apps/build/custom-data) that a merchant associates with a Shopify resource. */\n metafields: Array<Maybe<Metafield>>;\n /** The name of the location. */\n name: Scalars[\"String\"][\"output\"];\n };\n\n/** Represents a location where product inventory is held. */\nexport type LocationMetafieldArgs = {\n key: Scalars[\"String\"][\"input\"];\n namespace?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n};\n\n/** Represents a location where product inventory is held. */\nexport type LocationMetafieldsArgs = {\n identifiers: Array<HasMetafieldsIdentifier>;\n};\n\n/**\n * Represents the address of a location.\n *\n */\nexport type LocationAddress = {\n __typename?: \"LocationAddress\";\n /** The first line of the address for the location. */\n address1?: Maybe<Scalars[\"String\"][\"output\"]>;\n /** The second line of the address for the location. */\n address2?: Maybe<Scalars[\"String\"][\"output\"]>;\n /** The city of the location. */\n city?: Maybe<Scalars[\"String\"][\"output\"]>;\n /** The country of the location. */\n country?: Maybe<Scalars[\"String\"][\"output\"]>;\n /** The country code of the location. */\n countryCode?: Maybe<Scalars[\"String\"][\"output\"]>;\n /** A formatted version of the address for the location. */\n formatted: Array<Scalars[\"String\"][\"output\"]>;\n /** The latitude coordinates of the location. */\n latitude?: Maybe<Scalars[\"Float\"][\"output\"]>;\n /** The longitude coordinates of the location. */\n longitude?: Maybe<Scalars[\"Float\"][\"output\"]>;\n /** The phone number of the location. */\n phone?: Maybe<Scalars[\"String\"][\"output\"]>;\n /** The province of the location. */\n province?: Maybe<Scalars[\"String\"][\"output\"]>;\n /**\n * The code for the province, state, or district of the address of the location.\n *\n */\n provinceCode?: Maybe<Scalars[\"String\"][\"output\"]>;\n /** The ZIP code of the location. */\n zip?: Maybe<Scalars[\"String\"][\"output\"]>;\n};\n\n/**\n * An auto-generated type for paginating through multiple Locations.\n *\n */\nexport type LocationConnection = {\n __typename?: \"LocationConnection\";\n /** A list of edges. */\n edges: Array<LocationEdge>;\n /** A list of the nodes contained in LocationEdge. */\n nodes: Array<Location>;\n /** Information to aid in pagination. */\n pageInfo: PageInfo;\n};\n\n/**\n * An auto-generated type which holds one Location and a cursor during pagination.\n *\n */\nexport type LocationEdge = {\n __typename?: \"LocationEdge\";\n /** A cursor for use in pagination. */\n cursor: Scalars[\"String\"][\"output\"];\n /** The item at the end of LocationEdge. */\n node: Location;\n};\n\n/** The set of valid sort keys for the Location query. */\nexport enum LocationSortKeys {\n /** Sort by the `city` value. */\n City = \"CITY\",\n /** Sort by the `distance` value. */\n Distance = \"DISTANCE\",\n /** Sort by the `id` value. */\n Id = \"ID\",\n /** Sort by the `name` value. */\n Name = \"NAME\",\n}\n\n/** Represents a mailing address for customers and shipping. */\nexport type MailingAddress = Node & {\n __typename?: \"MailingAddress\";\n /** The first line of the address. Typically the street address or PO Box number. */\n address1?: Maybe<Scalars[\"String\"][\"output\"]>;\n /**\n * The second line of the address. Typically the number of the apartment, suite, or unit.\n *\n */\n address2?: Maybe<Scalars[\"String\"][\"output\"]>;\n /** The name of the city, district, village, or town. */\n city?: Maybe<Scalars[\"String\"][\"output\"]>;\n /** The name of the customer's company or organization. */\n company?: Maybe<Scalars[\"String\"][\"output\"]>;\n /** The name of the country. */\n country?: Maybe<Scalars[\"String\"][\"output\"]>;\n /**\n * The two-letter code for the country of the address.\n *\n * For example, US.\n *\n * @deprecated Use `countryCodeV2` instead.\n */\n countryCode?: Maybe<Scalars[\"String\"][\"output\"]>;\n /**\n * The two-letter code for the country of the address.\n *\n * For example, US.\n *\n */\n countryCodeV2?: Maybe<CountryCode>;\n /** The first name of the customer. */\n firstName?: Maybe<Scalars[\"String\"][\"output\"]>;\n /** A formatted version of the address, customized by the provided arguments. */\n formatted: Array<Scalars[\"String\"][\"output\"]>;\n /** A comma-separated list of the values for city, province, and country. */\n formattedArea?: Maybe<Scalars[\"String\"][\"output\"]>;\n /** A globally-unique ID. */\n id: Scalars[\"ID\"][\"output\"];\n /** The last name of the customer. */\n lastName?: Maybe<Scalars[\"String\"][\"output\"]>;\n /** The latitude coordinate of the customer address. */\n latitude?: Maybe<Scalars[\"Float\"][\"output\"]>;\n /** The longitude coordinate of the customer address. */\n longitude?: Maybe<Scalars[\"Float\"][\"output\"]>;\n /** The full name of the customer, based on firstName and lastName. */\n name?: Maybe<Scalars[\"String\"][\"output\"]>;\n /**\n * A unique phone number for the customer.\n *\n * Formatted using E.164 standard. For example, _+16135551111_.\n *\n */\n phone?: Maybe<Scalars[\"String\"][\"output\"]>;\n /** The region of the address, such as the province, state, or district. */\n province?: Maybe<Scalars[\"String\"][\"output\"]>;\n /**\n * The alphanumeric code for the region.\n *\n * For example, ON.\n *\n */\n provinceCode?: Maybe<Scalars[\"String\"][\"output\"]>;\n /** The zip or postal code of the address. */\n zip?: Maybe<Scalars[\"String\"][\"output\"]>;\n};\n\n/** Represents a mailing address for customers and shipping. */\nexport type MailingAddressFormattedArgs = {\n withCompany?: InputMaybe<Scalars[\"Boolean\"][\"input\"]>;\n withName?: InputMaybe<Scalars[\"Boolean\"][\"input\"]>;\n};\n\n/**\n * An auto-generated type for paginating through multiple MailingAddresses.\n *\n */\nexport type MailingAddressConnection = {\n __typename?: \"MailingAddressConnection\";\n /** A list of edges. */\n edges: Array<MailingAddressEdge>;\n /** A list of the nodes contained in MailingAddressEdge. */\n nodes: Array<MailingAddress>;\n /** Information to aid in pagination. */\n pageInfo: PageInfo;\n};\n\n/**\n * An auto-generated type which holds one MailingAddress and a cursor during pagination.\n *\n */\nexport type MailingAddressEdge = {\n __typename?: \"MailingAddressEdge\";\n /** A cursor for use in pagination. */\n cursor: Scalars[\"String\"][\"output\"];\n /** The item at the end of MailingAddressEdge. */\n node: MailingAddress;\n};\n\n/** The input fields to create or update a mailing address. */\nexport type MailingAddressInput = {\n /**\n * The first line of the address. Typically the street address or PO Box number.\n *\n */\n address1?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n /**\n * The second line of the address. Typically the number of the apartment, suite, or unit.\n *\n */\n address2?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n /**\n * The name of the city, district, village, or town.\n *\n */\n city?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n /**\n * The name of the customer's company or organization.\n *\n */\n company?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n /** The name of the country. */\n country?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n /** The first name of the customer. */\n firstName?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n /** The last name of the customer. */\n lastName?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n /**\n * A unique phone number for the customer.\n *\n * Formatted using E.164 standard. For example, _+16135551111_.\n *\n */\n phone?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n /** The region of the address, such as the province, state, or district. */\n province?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n /** The zip or postal code of the address. */\n zip?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n};\n\n/**\n * Manual discount applications capture the intentions of a discount that was manually created.\n *\n */\nexport type ManualDiscountApplication = DiscountApplication & {\n __typename?: \"ManualDiscountApplication\";\n /** The method by which the discount's value is allocated to its entitled items. */\n allocationMethod: DiscountApplicationAllocationMethod;\n /** The description of the application. */\n description?: Maybe<Scalars[\"String\"][\"output\"]>;\n /** Which lines of targetType that the discount is allocated over. */\n targetSelection: DiscountApplicationTargetSelection;\n /** The type of line that the discount is applicable towards. */\n targetType: DiscountApplicationTargetType;\n /** The title of the application. */\n title: Scalars[\"String\"][\"output\"];\n /** The value of the discount application. */\n value: PricingValue;\n};\n\n/** A group of one or more regions of the world that a merchant is targeting for sales. To learn more about markets, refer to [the Shopify Markets conceptual overview](/docs/apps/markets). */\nexport type Market = HasMetafields &\n Node & {\n __typename?: \"Market\";\n /**\n * A human-readable unique string for the market automatically generated from its title.\n *\n */\n handle: Scalars[\"String\"][\"output\"];\n /** A globally-unique ID. */\n id: Scalars[\"ID\"][\"output\"];\n /** A [custom field](https://shopify.dev/docs/apps/build/custom-data), including its `namespace` and `key`, that's associated with a Shopify resource for the purposes of adding and storing additional information. */\n metafield?: Maybe<Metafield>;\n /** A list of [custom fields](/docs/apps/build/custom-data) that a merchant associates with a Shopify resource. */\n metafields: Array<Maybe<Metafield>>;\n };\n\n/** A group of one or more regions of the world that a merchant is targeting for sales. To learn more about markets, refer to [the Shopify Markets conceptual overview](/docs/apps/markets). */\nexport type MarketMetafieldArgs = {\n key: Scalars[\"String\"][\"input\"];\n namespace?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n};\n\n/** A group of one or more regions of the world that a merchant is targeting for sales. To learn more about markets, refer to [the Shopify Markets conceptual overview](/docs/apps/markets). */\nexport type MarketMetafieldsArgs = {\n identifiers: Array<HasMetafieldsIdentifier>;\n};\n\n/** Represents a media interface. */\nexport type Media = {\n /** A word or phrase to share the nature or contents of a media. */\n alt?: Maybe<Scalars[\"String\"][\"output\"]>;\n /** A globally-unique ID. */\n id: Scalars[\"ID\"][\"output\"];\n /** The media content type. */\n mediaContentType: MediaContentType;\n /** The presentation for a media. */\n presentation?: Maybe<MediaPresentation>;\n /** The preview image for the media. */\n previewImage?: Maybe<Image>;\n};\n\n/**\n * An auto-generated type for paginating through multiple Media.\n *\n */\nexport type MediaConnection = {\n __typename?: \"MediaConnection\";\n /** A list of edges. */\n edges: Array<MediaEdge>;\n /** A list of the nodes contained in MediaEdge. */\n nodes: Array<Media>;\n /** Information to aid in pagination. */\n pageInfo: PageInfo;\n};\n\n/** The possible content types for a media object. */\nexport enum MediaContentType {\n /** An externally hosted video. */\n ExternalVideo = \"EXTERNAL_VIDEO\",\n /** A Shopify hosted image. */\n Image = \"IMAGE\",\n /** A 3d model. */\n Model_3D = \"MODEL_3D\",\n /** A Shopify hosted video. */\n Video = \"VIDEO\",\n}\n\n/**\n * An auto-generated type which holds one Media and a cursor during pagination.\n *\n */\nexport type MediaEdge = {\n __typename?: \"MediaEdge\";\n /** A cursor for use in pagination. */\n cursor: Scalars[\"String\"][\"output\"];\n /** The item at the end of MediaEdge. */\n node: Media;\n};\n\n/** Host for a Media Resource. */\nexport enum MediaHost {\n /** Host for Vimeo embedded videos. */\n Vimeo = \"VIMEO\",\n /** Host for YouTube embedded videos. */\n Youtube = \"YOUTUBE\",\n}\n\n/** Represents a Shopify hosted image. */\nexport type MediaImage = Media &\n Node & {\n __typename?: \"MediaImage\";\n /** A word or phrase to share the nature or contents of a media. */\n alt?: Maybe<Scalars[\"String\"][\"output\"]>;\n /** A globally-unique ID. */\n id: Scalars[\"ID\"][\"output\"];\n /** The image for the media. */\n image?: Maybe<Image>;\n /** The media content type. */\n mediaContentType: MediaContentType;\n /** The presentation for a media. */\n presentation?: Maybe<MediaPresentation>;\n /** The preview image for the media. */\n previewImage?: Maybe<Image>;\n };\n\n/** A media presentation. */\nexport type MediaPresentation = Node & {\n __typename?: \"MediaPresentation\";\n /** A JSON object representing a presentation view. */\n asJson?: Maybe<Scalars[\"JSON\"][\"output\"]>;\n /** A globally-unique ID. */\n id: Scalars[\"ID\"][\"output\"];\n};\n\n/** A media presentation. */\nexport type MediaPresentationAsJsonArgs = {\n format: MediaPresentationFormat;\n};\n\n/** The possible formats for a media presentation. */\nexport enum MediaPresentationFormat {\n /** A media image presentation. */\n Image = \"IMAGE\",\n /** A model viewer presentation. */\n ModelViewer = \"MODEL_VIEWER\",\n}\n\n/**\n * A [navigation menu](https://help.shopify.com/manual/online-store/menus-and-links) representing a hierarchy\n * of hyperlinks (items).\n *\n */\nexport type Menu = Node & {\n __typename?: \"Menu\";\n /** The menu's handle. */\n handle: Scalars[\"String\"][\"output\"];\n /** A globally-unique ID. */\n id: Scalars[\"ID\"][\"output\"];\n /** The menu's child items. */\n items: Array<MenuItem>;\n /** The count of items on the menu. */\n itemsCount: Scalars[\"Int\"][\"output\"];\n /** The menu's title. */\n title: Scalars[\"String\"][\"output\"];\n};\n\n/** A menu item within a parent menu. */\nexport type MenuItem = Node & {\n __typename?: \"MenuItem\";\n /** A globally-unique ID. */\n id: Scalars[\"ID\"][\"output\"];\n /** The menu item's child items. */\n items: Array<MenuItem>;\n /** The linked resource. */\n resource?: Maybe<MenuItemResource>;\n /** The ID of the linked resource. */\n resourceId?: Maybe<Scalars[\"ID\"][\"output\"]>;\n /** The menu item's tags to filter a collection. */\n tags: Array<Scalars[\"String\"][\"output\"]>;\n /** The menu item's title. */\n title: Scalars[\"String\"][\"output\"];\n /** The menu item's type. */\n type: MenuItemType;\n /** The menu item's URL. */\n url?: Maybe<Scalars[\"URL\"][\"output\"]>;\n};\n\n/**\n * The list of possible resources a `MenuItem` can reference.\n *\n */\nexport type MenuItemResource =\n | Article\n | Blog\n | Collection\n | Metaobject\n | Page\n | Product\n | ShopPolicy;\n\n/** A menu item type. */\nexport enum MenuItemType {\n /** An article link. */\n Article = \"ARTICLE\",\n /** A blog link. */\n Blog = \"BLOG\",\n /** A catalog link. */\n Catalog = \"CATALOG\",\n /** A collection link. */\n Collection = \"COLLECTION\",\n /** A collection link. */\n Collections = \"COLLECTIONS\",\n /** A customer account page link. */\n CustomerAccountPage = \"CUSTOMER_ACCOUNT_PAGE\",\n /** A frontpage link. */\n Frontpage = \"FRONTPAGE\",\n /** An http link. */\n Http = \"HTTP\",\n /** A metaobject page link. */\n Metaobject = \"METAOBJECT\",\n /** A page link. */\n Page = \"PAGE\",\n /** A product link. */\n Product = \"PRODUCT\",\n /** A search link. */\n Search = \"SEARCH\",\n /** A shop policy link. */\n ShopPolicy = \"SHOP_POLICY\",\n}\n\n/** The merchandise to be purchased at checkout. */\nexport type Merchandise = ProductVariant;\n\n/**\n * Metafields represent custom metadata attached to a resource. Metafields can be sorted into namespaces and are\n * comprised of keys, values, and value types.\n *\n */\nexport type Metafield = Node & {\n __typename?: \"Metafield\";\n /** The date and time when the storefront metafield was created. */\n createdAt: Scalars[\"DateTime\"][\"output\"];\n /** The description of a metafield. */\n description?: Maybe<Scalars[\"String\"][\"output\"]>;\n /** A globally-unique ID. */\n id: Scalars[\"ID\"][\"output\"];\n /** The unique identifier for the metafield within its namespace. */\n key: Scalars[\"String\"][\"output\"];\n /** The container for a group of metafields that the metafield is associated with. */\n namespace: Scalars[\"String\"][\"output\"];\n /** The type of resource that the metafield is attached to. */\n parentResource: MetafieldParentResource;\n /** Returns a reference object if the metafield's type is a resource reference. */\n reference?: Maybe<MetafieldReference>;\n /** A list of reference objects if the metafield's type is a resource reference list. */\n references?: Maybe<MetafieldReferenceConnection>;\n /**\n * The type name of the metafield.\n * Refer to the list of [supported types](https://shopify.dev/apps/metafields/definitions/types).\n *\n */\n type: Scalars[\"String\"][\"output\"];\n /** The date and time when the metafield was last updated. */\n updatedAt: Scalars[\"DateTime\"][\"output\"];\n /** The data stored in the metafield. Always stored as a string, regardless of the metafield's type. */\n value: Scalars[\"String\"][\"output\"];\n};\n\n/**\n * Metafields represent custom metadata attached to a resource. Metafields can be sorted into namespaces and are\n * comprised of keys, values, and value types.\n *\n */\nexport type MetafieldReferencesArgs = {\n after?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n before?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n first?: InputMaybe<Scalars[\"Int\"][\"input\"]>;\n last?: InputMaybe<Scalars[\"Int\"][\"input\"]>;\n};\n\n/** Possible error codes that can be returned by `MetafieldDeleteUserError`. */\nexport enum MetafieldDeleteErrorCode {\n /** The owner ID is invalid. */\n InvalidOwner = \"INVALID_OWNER\",\n /** Metafield not found. */\n MetafieldDoesNotExist = \"METAFIELD_DOES_NOT_EXIST\",\n}\n\n/** An error that occurs during the execution of cart metafield deletion. */\nexport type MetafieldDeleteUserError = DisplayableError & {\n __typename?: \"MetafieldDeleteUserError\";\n /** The error code. */\n code?: Maybe<MetafieldDeleteErrorCode>;\n /** The path to the input field that caused the error. */\n field?: Maybe<Array<Scalars[\"String\"][\"output\"]>>;\n /** The error message. */\n message: Scalars[\"String\"][\"output\"];\n};\n\n/**\n * A filter used to view a subset of products in a collection matching a specific metafield value.\n *\n * Only the following metafield types are currently supported:\n * - `number_integer`\n * - `number_decimal`\n * - `single_line_text_field`\n * - `boolean` as of 2022-04.\n *\n */\nexport type MetafieldFilter = {\n /** The key of the metafield to filter on. */\n key: Scalars[\"String\"][\"input\"];\n /** The namespace of the metafield to filter on. */\n namespace: Scalars[\"String\"][\"input\"];\n /** The value of the metafield. */\n value: Scalars[\"String\"][\"input\"];\n};\n\n/** A resource that the metafield belongs to. */\nexport type MetafieldParentResource =\n | Article\n | Blog\n | Cart\n | Collection\n | Company\n | CompanyLocation\n | Customer\n | Location\n | Market\n | Order\n | Page\n | Product\n | ProductVariant\n | SellingPlan\n | Shop;\n\n/**\n * Returns the resource which is being referred to by a metafield.\n *\n */\nexport type MetafieldReference =\n | Collection\n | GenericFile\n | MediaImage\n | Metaobject\n | Model3d\n | Page\n | Product\n | ProductVariant\n | Video;\n\n/**\n * An auto-generated type for paginating through multiple MetafieldReferences.\n *\n */\nexport type MetafieldReferenceConnection = {\n __typename?: \"MetafieldReferenceConnection\";\n /** A list of edges. */\n edges: Array<MetafieldReferenceEdge>;\n /** A list of the nodes contained in MetafieldReferenceEdge. */\n nodes: Array<MetafieldReference>;\n /** Information to aid in pagination. */\n pageInfo: PageInfo;\n};\n\n/**\n * An auto-generated type which holds one MetafieldReference and a cursor during pagination.\n *\n */\nexport type MetafieldReferenceEdge = {\n __typename?: \"MetafieldReferenceEdge\";\n /** A cursor for use in pagination. */\n cursor: Scalars[\"String\"][\"output\"];\n /** The item at the end of MetafieldReferenceEdge. */\n node: MetafieldReference;\n};\n\n/** An error that occurs during the execution of `MetafieldsSet`. */\nexport type MetafieldsSetUserError = DisplayableError & {\n __typename?: \"MetafieldsSetUserError\";\n /** The error code. */\n code?: Maybe<MetafieldsSetUserErrorCode>;\n /** The index of the array element that's causing the error. */\n elementIndex?: Maybe<Scalars[\"Int\"][\"output\"]>;\n /** The path to the input field that caused the error. */\n field?: Maybe<Array<Scalars[\"String\"][\"output\"]>>;\n /** The error message. */\n message: Scalars[\"String\"][\"output\"];\n};\n\n/** Possible error codes that can be returned by `MetafieldsSetUserError`. */\nexport enum MetafieldsSetUserErrorCode {\n /** The input value is blank. */\n Blank = \"BLANK\",\n /** The input value isn't included in the list. */\n Inclusion = \"INCLUSION\",\n /** The owner ID is invalid. */\n InvalidOwner = \"INVALID_OWNER\",\n /** The type is invalid. */\n InvalidType = \"INVALID_TYPE\",\n /** The value is invalid for metafield type or for definition options. */\n InvalidValue = \"INVALID_VALUE\",\n /** The input value should be less than or equal to the maximum value allowed. */\n LessThanOrEqualTo = \"LESS_THAN_OR_EQUAL_TO\",\n /** The input value needs to be blank. */\n Present = \"PRESENT\",\n /** The input value is too long. */\n TooLong = \"TOO_LONG\",\n /** The input value is too short. */\n TooShort = \"TOO_SHORT\",\n}\n\n/** An instance of a user-defined model based on a MetaobjectDefinition. */\nexport type Metaobject = Node &\n OnlineStorePublishable & {\n __typename?: \"Metaobject\";\n /** Accesses a field of the object by key. */\n field?: Maybe<MetaobjectField>;\n /**\n * All object fields with defined values.\n * Omitted object keys can be assumed null, and no guarantees are made about field order.\n *\n */\n fields: Array<MetaobjectField>;\n /** The unique handle of the metaobject. Useful as a custom ID. */\n handle: Scalars[\"String\"][\"output\"];\n /** A globally-unique ID. */\n id: Scalars[\"ID\"][\"output\"];\n /** The URL used for viewing the metaobject on the shop's Online Store. Returns `null` if the metaobject definition doesn't have the `online_store` capability. */\n onlineStoreUrl?: Maybe<Scalars[\"URL\"][\"output\"]>;\n /**\n * The metaobject's SEO information. Returns `null` if the metaobject definition\n * doesn't have the `renderable` capability.\n *\n */\n seo?: Maybe<MetaobjectSeo>;\n /** The type of the metaobject. Defines the namespace of its associated metafields. */\n type: Scalars[\"String\"][\"output\"];\n /** The date and time when the metaobject was last updated. */\n updatedAt: Scalars[\"DateTime\"][\"output\"];\n };\n\n/** An instance of a user-defined model based on a MetaobjectDefinition. */\nexport type MetaobjectFieldArgs = {\n key: Scalars[\"String\"][\"input\"];\n};\n\n/**\n * An auto-generated type for paginating through multiple Metaobjects.\n *\n */\nexport type MetaobjectConnection = {\n __typename?: \"MetaobjectConnection\";\n /** A list of edges. */\n edges: Array<MetaobjectEdge>;\n /** A list of the nodes contained in MetaobjectEdge. */\n nodes: Array<Metaobject>;\n /** Information to aid in pagination. */\n pageInfo: PageInfo;\n};\n\n/**\n * An auto-generated type which holds one Metaobject and a cursor during pagination.\n *\n */\nexport type MetaobjectEdge = {\n __typename?: \"MetaobjectEdge\";\n /** A cursor for use in pagination. */\n cursor: Scalars[\"String\"][\"output\"];\n /** The item at the end of MetaobjectEdge. */\n node: Metaobject;\n};\n\n/** Provides the value of a Metaobject field. */\nexport type MetaobjectField = {\n __typename?: \"MetaobjectField\";\n /** The field key. */\n key: Scalars[\"String\"][\"output\"];\n /** A referenced object if the field type is a resource reference. */\n reference?: Maybe<MetafieldReference>;\n /** A list of referenced objects if the field type is a resource reference list. */\n references?: Maybe<MetafieldReferenceConnection>;\n /**\n * The type name of the field.\n * See the list of [supported types](https://shopify.dev/apps/metafields/definitions/types).\n *\n */\n type: Scalars[\"String\"][\"output\"];\n /** The field value. */\n value?: Maybe<Scalars[\"String\"][\"output\"]>;\n};\n\n/** Provides the value of a Metaobject field. */\nexport type MetaobjectFieldReferencesArgs = {\n after?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n before?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n first?: InputMaybe<Scalars[\"Int\"][\"input\"]>;\n last?: InputMaybe<Scalars[\"Int\"][\"input\"]>;\n};\n\n/** The input fields used to retrieve a metaobject by handle. */\nexport type MetaobjectHandleInput = {\n /** The handle of the metaobject. */\n handle: Scalars[\"String\"][\"input\"];\n /** The type of the metaobject. */\n type: Scalars[\"String\"][\"input\"];\n};\n\n/** SEO information for a metaobject. */\nexport type MetaobjectSeo = {\n __typename?: \"MetaobjectSEO\";\n /** The meta description. */\n description?: Maybe<MetaobjectField>;\n /** The SEO title. */\n title?: Maybe<MetaobjectField>;\n};\n\n/** Represents a Shopify hosted 3D model. */\nexport type Model3d = Media &\n Node & {\n __typename?: \"Model3d\";\n /** A word or phrase to share the nature or contents of a media. */\n alt?: Maybe<Scalars[\"String\"][\"output\"]>;\n /** A globally-unique ID. */\n id: Scalars[\"ID\"][\"output\"];\n /** The media content type. */\n mediaContentType: MediaContentType;\n /** The presentation for a media. */\n presentation?: Maybe<MediaPresentation>;\n /** The preview image for the media. */\n previewImage?: Maybe<Image>;\n /** The sources for a 3d model. */\n sources: Array<Model3dSource>;\n };\n\n/** Represents a source for a Shopify hosted 3d model. */\nexport type Model3dSource = {\n __typename?: \"Model3dSource\";\n /** The filesize of the 3d model. */\n filesize: Scalars[\"Int\"][\"output\"];\n /** The format of the 3d model. */\n format: Scalars[\"String\"][\"output\"];\n /** The MIME type of the 3d model. */\n mimeType: Scalars[\"String\"][\"output\"];\n /** The URL of the 3d model. */\n url: Scalars[\"String\"][\"output\"];\n};\n\n/** The input fields for a monetary value with currency. */\nexport type MoneyInput = {\n /** Decimal money amount. */\n amount: Scalars[\"Decimal\"][\"input\"];\n /** Currency of the money. */\n currencyCode: CurrencyCode;\n};\n\n/**\n * A monetary value with currency.\n *\n */\nexport type MoneyV2 = {\n __typename?: \"MoneyV2\";\n /** Decimal money amount. */\n amount: Scalars[\"Decimal\"][\"output\"];\n /** Currency of the money. */\n currencyCode: CurrencyCode;\n};\n\n/** The schema’s entry-point for mutations. This acts as the public, top-level API from which all mutation queries must start. */\nexport type Mutation = {\n __typename?: \"Mutation\";\n /** Updates the attributes on a cart. */\n cartAttributesUpdate?: Maybe<CartAttributesUpdatePayload>;\n /** Updates the billing address on the cart. */\n cartBillingAddressUpdate?: Maybe<CartBillingAddressUpdatePayload>;\n /**\n * Updates customer information associated with a cart.\n * Buyer identity is used to determine\n * [international pricing](https://shopify.dev/custom-storefronts/internationalization/international-pricing)\n * and should match the customer's shipping address.\n *\n */\n cartBuyerIdentityUpdate?: Maybe<CartBuyerIdentityUpdatePayload>;\n /** Creates a new cart. */\n cartCreate?: Maybe<CartCreatePayload>;\n /** Adds delivery addresses to the cart. */\n cartDeliveryAddressesAdd?: Maybe<CartDeliveryAddressesAddPayload>;\n /** Removes delivery addresses from the cart. */\n cartDeliveryAddressesRemove?: Maybe<CartDeliveryAddressesRemovePayload>;\n /** Updates one or more delivery addresses on a cart. */\n cartDeliveryAddressesUpdate?: Maybe<CartDeliveryAddressesUpdatePayload>;\n /** Updates the discount codes applied to the cart. */\n cartDiscountCodesUpdate?: Maybe<CartDiscountCodesUpdatePayload>;\n /** Removes the gift card codes applied to the cart. */\n cartGiftCardCodesRemove?: Maybe<CartGiftCardCodesRemovePayload>;\n /** Updates the gift card codes applied to the cart. */\n cartGiftCardCodesUpdate?: Maybe<CartGiftCardCodesUpdatePayload>;\n /** Adds a merchandise line to the cart. */\n cartLinesAdd?: Maybe<CartLinesAddPayload>;\n /** Removes one or more merchandise lines from the cart. */\n cartLinesRemove?: Maybe<CartLinesRemovePayload>;\n /** Updates one or more merchandise lines on a cart. */\n cartLinesUpdate?: Maybe<CartLinesUpdatePayload>;\n /** Deletes a cart metafield. */\n cartMetafieldDelete?: Maybe<CartMetafieldDeletePayload>;\n /**\n * Sets cart metafield values. Cart metafield values will be set regardless if they were previously created or not.\n *\n * Allows a maximum of 25 cart metafields to be set at a time.\n *\n */\n cartMetafieldsSet?: Maybe<CartMetafieldsSetPayload>;\n /** Updates the note on the cart. */\n cartNoteUpdate?: Maybe<CartNoteUpdatePayload>;\n /** Update the customer's payment method that will be used to checkout. */\n cartPaymentUpdate?: Maybe<CartPaymentUpdatePayload>;\n /** Prepare the cart for cart checkout completion. */\n cartPrepareForCompletion?: Maybe<CartPrepareForCompletionPayload>;\n /** Update the selected delivery options for a delivery group. */\n cartSelectedDeliveryOptionsUpdate?: Maybe<CartSelectedDeliveryOptionsUpdatePayload>;\n /** Submit the cart for checkout completion. */\n cartSubmitForCompletion?: Maybe<CartSubmitForCompletionPayload>;\n /**\n * Creates a customer access token.\n * The customer access token is required to modify the customer object in any way.\n *\n */\n customerAccessTokenCreate?: Maybe<CustomerAccessTokenCreatePayload>;\n /**\n * Creates a customer access token using a\n * [multipass token](https://shopify.dev/api/multipass) instead of email and\n * password. A customer record is created if the customer doesn't exist. If a customer\n * record already exists but the record is disabled, then the customer record is enabled.\n *\n */\n customerAccessTokenCreateWithMultipass?: Maybe<CustomerAccessTokenCreateWithMultipassPayload>;\n /** Permanently destroys a customer access token. */\n customerAccessTokenDelete?: Maybe<CustomerAccessTokenDeletePayload>;\n /**\n * Renews a customer access token.\n *\n * Access token renewal must happen *before* a token expires.\n * If a token has already expired, a new one should be created instead via `customerAccessTokenCreate`.\n *\n */\n customerAccessTokenRenew?: Maybe<CustomerAccessTokenRenewPayload>;\n /** Activates a customer. */\n customerActivate?: Maybe<CustomerActivatePayload>;\n /** Activates a customer with the activation url received from `customerCreate`. */\n customerActivateByUrl?: Maybe<CustomerActivateByUrlPayload>;\n /** Creates a new address for a customer. */\n customerAddressCreate?: Maybe<CustomerAddressCreatePayload>;\n /** Permanently deletes the address of an existing customer. */\n customerAddressDelete?: Maybe<CustomerAddressDeletePayload>;\n /** Updates the address of an existing customer. */\n customerAddressUpdate?: Maybe<CustomerAddressUpdatePayload>;\n /** Creates a new customer. */\n customerCreate?: Maybe<CustomerCreatePayload>;\n /** Updates the default address of an existing customer. */\n customerDefaultAddressUpdate?: Maybe<CustomerDefaultAddressUpdatePayload>;\n /**\n * Sends a reset password email to the customer. The reset password\n * email contains a reset password URL and token that you can pass to\n * the [`customerResetByUrl`](https://shopify.dev/api/storefront/latest/mutations/customerResetByUrl) or\n * [`customerReset`](https://shopify.dev/api/storefront/latest/mutations/customerReset) mutation to reset the\n * customer password.\n *\n * This mutation is throttled by IP. With private access,\n * you can provide a [`Shopify-Storefront-Buyer-IP`](https://shopify.dev/api/usage/authentication#optional-ip-header) instead of the request IP.\n * The header is case-sensitive and must be sent as `Shopify-Storefront-Buyer-IP`.\n *\n * Make sure that the value provided to `Shopify-Storefront-Buyer-IP` is trusted. Unthrottled access to this\n * mutation presents a security risk.\n *\n */\n customerRecover?: Maybe<CustomerRecoverPayload>;\n /**\n * \"Resets a customer’s password with the token received from a reset password email. You can send a reset password email with the [`customerRecover`](https://shopify.dev/api/storefront/latest/mutations/customerRecover) mutation.\"\n *\n */\n customerReset?: Maybe<CustomerResetPayload>;\n /**\n * \"Resets a customer’s password with the reset password URL received from a reset password email. You can send a reset password email with the [`customerRecover`](https://shopify.dev/api/storefront/latest/mutations/customerRecover) mutation.\"\n *\n */\n customerResetByUrl?: Maybe<CustomerResetByUrlPayload>;\n /** Updates an existing customer. */\n customerUpdate?: Maybe<CustomerUpdatePayload>;\n /** Create a new Shop Pay payment request session. */\n shopPayPaymentRequestSessionCreate?: Maybe<ShopPayPaymentRequestSessionCreatePayload>;\n /** Submits a Shop Pay payment request session. */\n shopPayPaymentRequestSessionSubmit?: Maybe<ShopPayPaymentRequestSessionSubmitPayload>;\n};\n\n/** The schema’s entry-point for mutations. This acts as the public, top-level API from which all mutation queries must start. */\nexport type MutationCartAttributesUpdateArgs = {\n attributes: Array<AttributeInput>;\n cartId: Scalars[\"ID\"][\"input\"];\n};\n\n/** The schema’s entry-point for mutations. This acts as the public, top-level API from which all mutation queries must start. */\nexport type MutationCartBillingAddressUpdateArgs = {\n billingAddress?: InputMaybe<MailingAddressInput>;\n cartId: Scalars[\"ID\"][\"input\"];\n};\n\n/** The schema’s entry-point for mutations. This acts as the public, top-level API from which all mutation queries must start. */\nexport type MutationCartBuyerIdentityUpdateArgs = {\n buyerIdentity: CartBuyerIdentityInput;\n cartId: Scalars[\"ID\"][\"input\"];\n};\n\n/** The schema’s entry-point for mutations. This acts as the public, top-level API from which all mutation queries must start. */\nexport type MutationCartCreateArgs = {\n input?: InputMaybe<CartInput>;\n};\n\n/** The schema’s entry-point for mutations. This acts as the public, top-level API from which all mutation queries must start. */\nexport type MutationCartDeliveryAddressesAddArgs = {\n addresses: Array<CartSelectableAddressInput>;\n cartId: Scalars[\"ID\"][\"input\"];\n};\n\n/** The schema’s entry-point for mutations. This acts as the public, top-level API from which all mutation queries must start. */\nexport type MutationCartDeliveryAddressesRemoveArgs = {\n addressIds: Array<Scalars[\"ID\"][\"input\"]>;\n cartId: Scalars[\"ID\"][\"input\"];\n};\n\n/** The schema’s entry-point for mutations. This acts as the public, top-level API from which all mutation queries must start. */\nexport type MutationCartDeliveryAddressesUpdateArgs = {\n addresses: Array<CartSelectableAddressUpdateInput>;\n cartId: Scalars[\"ID\"][\"input\"];\n};\n\n/** The schema’s entry-point for mutations. This acts as the public, top-level API from which all mutation queries must start. */\nexport type MutationCartDiscountCodesUpdateArgs = {\n cartId: Scalars[\"ID\"][\"input\"];\n discountCodes?: InputMaybe<Array<Scalars[\"String\"][\"input\"]>>;\n};\n\n/** The schema’s entry-point for mutations. This acts as the public, top-level API from which all mutation queries must start. */\nexport type MutationCartGiftCardCodesRemoveArgs = {\n appliedGiftCardIds: Array<Scalars[\"ID\"][\"input\"]>;\n cartId: Scalars[\"ID\"][\"input\"];\n};\n\n/** The schema’s entry-point for mutations. This acts as the public, top-level API from which all mutation queries must start. */\nexport type MutationCartGiftCardCodesUpdateArgs = {\n cartId: Scalars[\"ID\"][\"input\"];\n giftCardCodes: Array<Scalars[\"String\"][\"input\"]>;\n};\n\n/** The schema’s entry-point for mutations. This acts as the public, top-level API from which all mutation queries must start. */\nexport type MutationCartLinesAddArgs = {\n cartId: Scalars[\"ID\"][\"input\"];\n lines: Array<CartLineInput>;\n};\n\n/** The schema’s entry-point for mutations. This acts as the public, top-level API from which all mutation queries must start. */\nexport type MutationCartLinesRemoveArgs = {\n cartId: Scalars[\"ID\"][\"input\"];\n lineIds: Array<Scalars[\"ID\"][\"input\"]>;\n};\n\n/** The schema’s entry-point for mutations. This acts as the public, top-level API from which all mutation queries must start. */\nexport type MutationCartLinesUpdateArgs = {\n cartId: Scalars[\"ID\"][\"input\"];\n lines: Array<CartLineUpdateInput>;\n};\n\n/** The schema’s entry-point for mutations. This acts as the public, top-level API from which all mutation queries must start. */\nexport type MutationCartMetafieldDeleteArgs = {\n input: CartMetafieldDeleteInput;\n};\n\n/** The schema’s entry-point for mutations. This acts as the public, top-level API from which all mutation queries must start. */\nexport type MutationCartMetafieldsSetArgs = {\n metafields: Array<CartMetafieldsSetInput>;\n};\n\n/** The schema’s entry-point for mutations. This acts as the public, top-level API from which all mutation queries must start. */\nexport type MutationCartNoteUpdateArgs = {\n cartId: Scalars[\"ID\"][\"input\"];\n note: Scalars[\"String\"][\"input\"];\n};\n\n/** The schema’s entry-point for mutations. This acts as the public, top-level API from which all mutation queries must start. */\nexport type MutationCartPaymentUpdateArgs = {\n cartId: Scalars[\"ID\"][\"input\"];\n payment: CartPaymentInput;\n};\n\n/** The schema’s entry-point for mutations. This acts as the public, top-level API from which all mutation queries must start. */\nexport type MutationCartPrepareForCompletionArgs = {\n cartId: Scalars[\"ID\"][\"input\"];\n};\n\n/** The schema’s entry-point for mutations. This acts as the public, top-level API from which all mutation queries must start. */\nexport type MutationCartSelectedDeliveryOptionsUpdateArgs = {\n cartId: Scalars[\"ID\"][\"input\"];\n selectedDeliveryOptions: Array<CartSelectedDeliveryOptionInput>;\n};\n\n/** The schema’s entry-point for mutations. This acts as the public, top-level API from which all mutation queries must start. */\nexport type MutationCartSubmitForCompletionArgs = {\n attemptToken: Scalars[\"String\"][\"input\"];\n cartId: Scalars[\"ID\"][\"input\"];\n};\n\n/** The schema’s entry-point for mutations. This acts as the public, top-level API from which all mutation queries must start. */\nexport type MutationCustomerAccessTokenCreateArgs = {\n input: CustomerAccessTokenCreateInput;\n};\n\n/** The schema’s entry-point for mutations. This acts as the public, top-level API from which all mutation queries must start. */\nexport type MutationCustomerAccessTokenCreateWithMultipassArgs = {\n multipassToken: Scalars[\"String\"][\"input\"];\n};\n\n/** The schema’s entry-point for mutations. This acts as the public, top-level API from which all mutation queries must start. */\nexport type MutationCustomerAccessTokenDeleteArgs = {\n customerAccessToken: Scalars[\"String\"][\"input\"];\n};\n\n/** The schema’s entry-point for mutations. This acts as the public, top-level API from which all mutation queries must start. */\nexport type MutationCustomerAccessTokenRenewArgs = {\n customerAccessToken: Scalars[\"String\"][\"input\"];\n};\n\n/** The schema’s entry-point for mutations. This acts as the public, top-level API from which all mutation queries must start. */\nexport type MutationCustomerActivateArgs = {\n id: Scalars[\"ID\"][\"input\"];\n input: CustomerActivateInput;\n};\n\n/** The schema’s entry-point for mutations. This acts as the public, top-level API from which all mutation queries must start. */\nexport type MutationCustomerActivateByUrlArgs = {\n activationUrl: Scalars[\"URL\"][\"input\"];\n password: Scalars[\"String\"][\"input\"];\n};\n\n/** The schema’s entry-point for mutations. This acts as the public, top-level API from which all mutation queries must start. */\nexport type MutationCustomerAddressCreateArgs = {\n address: MailingAddressInput;\n customerAccessToken: Scalars[\"String\"][\"input\"];\n};\n\n/** The schema’s entry-point for mutations. This acts as the public, top-level API from which all mutation queries must start. */\nexport type MutationCustomerAddressDeleteArgs = {\n customerAccessToken: Scalars[\"String\"][\"input\"];\n id: Scalars[\"ID\"][\"input\"];\n};\n\n/** The schema’s entry-point for mutations. This acts as the public, top-level API from which all mutation queries must start. */\nexport type MutationCustomerAddressUpdateArgs = {\n address: MailingAddressInput;\n customerAccessToken: Scalars[\"String\"][\"input\"];\n id: Scalars[\"ID\"][\"input\"];\n};\n\n/** The schema’s entry-point for mutations. This acts as the public, top-level API from which all mutation queries must start. */\nexport type MutationCustomerCreateArgs = {\n input: CustomerCreateInput;\n};\n\n/** The schema’s entry-point for mutations. This acts as the public, top-level API from which all mutation queries must start. */\nexport type MutationCustomerDefaultAddressUpdateArgs = {\n addressId: Scalars[\"ID\"][\"input\"];\n customerAccessToken: Scalars[\"String\"][\"input\"];\n};\n\n/** The schema’s entry-point for mutations. This acts as the public, top-level API from which all mutation queries must start. */\nexport type MutationCustomerRecoverArgs = {\n email: Scalars[\"String\"][\"input\"];\n};\n\n/** The schema’s entry-point for mutations. This acts as the public, top-level API from which all mutation queries must start. */\nexport type MutationCustomerResetArgs = {\n id: Scalars[\"ID\"][\"input\"];\n input: CustomerResetInput;\n};\n\n/** The schema’s entry-point for mutations. This acts as the public, top-level API from which all mutation queries must start. */\nexport type MutationCustomerResetByUrlArgs = {\n password: Scalars[\"String\"][\"input\"];\n resetUrl: Scalars[\"URL\"][\"input\"];\n};\n\n/** The schema’s entry-point for mutations. This acts as the public, top-level API from which all mutation queries must start. */\nexport type MutationCustomerUpdateArgs = {\n customer: CustomerUpdateInput;\n customerAccessToken: Scalars[\"String\"][\"input\"];\n};\n\n/** The schema’s entry-point for mutations. This acts as the public, top-level API from which all mutation queries must start. */\nexport type MutationShopPayPaymentRequestSessionCreateArgs = {\n paymentRequest: ShopPayPaymentRequestInput;\n sourceIdentifier: Scalars[\"String\"][\"input\"];\n};\n\n/** The schema’s entry-point for mutations. This acts as the public, top-level API from which all mutation queries must start. */\nexport type MutationShopPayPaymentRequestSessionSubmitArgs = {\n idempotencyKey: Scalars[\"String\"][\"input\"];\n orderName?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n paymentRequest: ShopPayPaymentRequestInput;\n token: Scalars[\"String\"][\"input\"];\n};\n\n/**\n * An object with an ID field to support global identification, in accordance with the\n * [Relay specification](https://relay.dev/graphql/objectidentification.htm#sec-Node-Interface).\n * This interface is used by the [node](https://shopify.dev/api/admin-graphql/unstable/queries/node)\n * and [nodes](https://shopify.dev/api/admin-graphql/unstable/queries/nodes) queries.\n *\n */\nexport type Node = {\n /** A globally-unique ID. */\n id: Scalars[\"ID\"][\"output\"];\n};\n\n/** Represents a resource that can be published to the Online Store sales channel. */\nexport type OnlineStorePublishable = {\n /** The URL used for viewing the resource on the shop's Online Store. Returns `null` if the resource is currently not published to the Online Store sales channel. */\n onlineStoreUrl?: Maybe<Scalars[\"URL\"][\"output\"]>;\n};\n\n/** 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. */\nexport type Order = HasMetafields &\n Node & {\n __typename?: \"Order\";\n /** The address associated with the payment method. */\n billingAddress?: Maybe<MailingAddress>;\n /** The reason for the order's cancellation. Returns `null` if the order wasn't canceled. */\n cancelReason?: Maybe<OrderCancelReason>;\n /** The date and time when the order was canceled. Returns null if the order wasn't canceled. */\n canceledAt?: Maybe<Scalars[\"DateTime\"][\"output\"]>;\n /** The code of the currency used for the payment. */\n currencyCode: CurrencyCode;\n /** 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 aren't included unless the order is a taxes-included order. */\n currentSubtotalPrice: MoneyV2;\n /** The total cost of duties for the order, including refunds. */\n currentTotalDuties?: Maybe<MoneyV2>;\n /** The total amount of the order, including duties, taxes and discounts, minus amounts for line items that have been removed. */\n currentTotalPrice: MoneyV2;\n /** The total cost of shipping, excluding shipping lines that have been refunded or removed. Taxes aren't included unless the order is a taxes-included order. */\n currentTotalShippingPrice: MoneyV2;\n /** The total of all taxes applied to the order, excluding taxes for returned line items. */\n currentTotalTax: MoneyV2;\n /** A list of the custom attributes added to the order. For example, whether an order is a customer's first. */\n customAttributes: Array<Attribute>;\n /** The locale code in which this specific order happened. */\n customerLocale?: Maybe<Scalars[\"String\"][\"output\"]>;\n /** The unique URL that the customer can use to access the order. */\n customerUrl?: Maybe<Scalars[\"URL\"][\"output\"]>;\n /** Discounts that have been applied on the order. */\n discountApplications: DiscountApplicationConnection;\n /** Whether the order has had any edits applied or not. */\n edited: Scalars[\"Boolean\"][\"output\"];\n /** The customer's email address. */\n email?: Maybe<Scalars[\"String\"][\"output\"]>;\n /** The financial status of the order. */\n financialStatus?: Maybe<OrderFinancialStatus>;\n /** The fulfillment status for the order. */\n fulfillmentStatus: OrderFulfillmentStatus;\n /** A globally-unique ID. */\n id: Scalars[\"ID\"][\"output\"];\n /** List of the order’s line items. */\n lineItems: OrderLineItemConnection;\n /** A [custom field](https://shopify.dev/docs/apps/build/custom-data), including its `namespace` and `key`, that's associated with a Shopify resource for the purposes of adding and storing additional information. */\n metafield?: Maybe<Metafield>;\n /** A list of [custom fields](/docs/apps/build/custom-data) that a merchant associates with a Shopify resource. */\n metafields: Array<Maybe<Metafield>>;\n /**\n * Unique identifier for the order that appears on the order.\n * For example, _#1000_ or _Store1001.\n *\n */\n name: Scalars[\"String\"][\"output\"];\n /** A unique numeric identifier for the order for use by shop owner and customer. */\n orderNumber: Scalars[\"Int\"][\"output\"];\n /** The total cost of duties charged at checkout. */\n originalTotalDuties?: Maybe<MoneyV2>;\n /** The total price of the order before any applied edits. */\n originalTotalPrice: MoneyV2;\n /** The customer's phone number for receiving SMS notifications. */\n phone?: Maybe<Scalars[\"String\"][\"output\"]>;\n /**\n * The date and time when the order was imported.\n * This value can be set to dates in the past when importing from other systems.\n * If no value is provided, it will be auto-generated based on current date and time.\n *\n */\n processedAt: Scalars[\"DateTime\"][\"output\"];\n /** The address to where the order will be shipped. */\n shippingAddress?: Maybe<MailingAddress>;\n /**\n * The discounts that have been allocated onto the shipping line by discount applications.\n *\n */\n shippingDiscountAllocations: Array<DiscountAllocation>;\n /** The unique URL for the order's status page. */\n statusUrl: Scalars[\"URL\"][\"output\"];\n /** Price of the order before shipping and taxes. */\n subtotalPrice?: Maybe<MoneyV2>;\n /**\n * Price of the order before duties, shipping and taxes.\n * @deprecated Use `subtotalPrice` instead.\n */\n subtotalPriceV2?: Maybe<MoneyV2>;\n /** List of the order’s successful fulfillments. */\n successfulFulfillments?: Maybe<Array<Fulfillment>>;\n /** The sum of all the prices of all the items in the order, duties, taxes and discounts included (must be positive). */\n totalPrice: MoneyV2;\n /**\n * The sum of all the prices of all the items in the order, duties, taxes and discounts included (must be positive).\n * @deprecated Use `totalPrice` instead.\n */\n totalPriceV2: MoneyV2;\n /** The total amount that has been refunded. */\n totalRefunded: MoneyV2;\n /**\n * The total amount that has been refunded.\n * @deprecated Use `totalRefunded` instead.\n */\n totalRefundedV2: MoneyV2;\n /** The total cost of shipping. */\n totalShippingPrice: MoneyV2;\n /**\n * The total cost of shipping.\n * @deprecated Use `totalShippingPrice` instead.\n */\n totalShippingPriceV2: MoneyV2;\n /** The total cost of taxes. */\n totalTax?: Maybe<MoneyV2>;\n /**\n * The total cost of taxes.\n * @deprecated Use `totalTax` instead.\n */\n totalTaxV2?: Maybe<MoneyV2>;\n };\n\n/** 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. */\nexport type OrderDiscountApplicationsArgs = {\n after?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n before?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n first?: InputMaybe<Scalars[\"Int\"][\"input\"]>;\n last?: InputMaybe<Scalars[\"Int\"][\"input\"]>;\n reverse?: InputMaybe<Scalars[\"Boolean\"][\"input\"]>;\n};\n\n/** 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. */\nexport type OrderLineItemsArgs = {\n after?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n before?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n first?: InputMaybe<Scalars[\"Int\"][\"input\"]>;\n last?: InputMaybe<Scalars[\"Int\"][\"input\"]>;\n reverse?: InputMaybe<Scalars[\"Boolean\"][\"input\"]>;\n};\n\n/** 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. */\nexport type OrderMetafieldArgs = {\n key: Scalars[\"String\"][\"input\"];\n namespace?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n};\n\n/** 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. */\nexport type OrderMetafieldsArgs = {\n identifiers: Array<HasMetafieldsIdentifier>;\n};\n\n/** 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. */\nexport type OrderSuccessfulFulfillmentsArgs = {\n first?: InputMaybe<Scalars[\"Int\"][\"input\"]>;\n};\n\n/** Represents the reason for the order's cancellation. */\nexport enum OrderCancelReason {\n /** The customer wanted to cancel the order. */\n Customer = \"CUSTOMER\",\n /** Payment was declined. */\n Declined = \"DECLINED\",\n /** The order was fraudulent. */\n Fraud = \"FRAUD\",\n /** There was insufficient inventory. */\n Inventory = \"INVENTORY\",\n /** The order was canceled for an unlisted reason. */\n Other = \"OTHER\",\n /** Staff made an error. */\n Staff = \"STAFF\",\n}\n\n/**\n * An auto-generated type for paginating through multiple Orders.\n *\n */\nexport type OrderConnection = {\n __typename?: \"OrderConnection\";\n /** A list of edges. */\n edges: Array<OrderEdge>;\n /** A list of the nodes contained in OrderEdge. */\n nodes: Array<Order>;\n /** Information to aid in pagination. */\n pageInfo: PageInfo;\n /** The total count of Orders. */\n totalCount: Scalars[\"UnsignedInt64\"][\"output\"];\n};\n\n/**\n * An auto-generated type which holds one Order and a cursor during pagination.\n *\n */\nexport type OrderEdge = {\n __typename?: \"OrderEdge\";\n /** A cursor for use in pagination. */\n cursor: Scalars[\"String\"][\"output\"];\n /** The item at the end of OrderEdge. */\n node: Order;\n};\n\n/** Represents the order's current financial status. */\nexport enum OrderFinancialStatus {\n /** Displayed as **Authorized**. */\n Authorized = \"AUTHORIZED\",\n /** Displayed as **Paid**. */\n Paid = \"PAID\",\n /** Displayed as **Partially paid**. */\n PartiallyPaid = \"PARTIALLY_PAID\",\n /** Displayed as **Partially refunded**. */\n PartiallyRefunded = \"PARTIALLY_REFUNDED\",\n /** Displayed as **Pending**. */\n Pending = \"PENDING\",\n /** Displayed as **Refunded**. */\n Refunded = \"REFUNDED\",\n /** Displayed as **Voided**. */\n Voided = \"VOIDED\",\n}\n\n/** Represents the order's aggregated fulfillment status for display purposes. */\nexport enum OrderFulfillmentStatus {\n /** Displayed as **Fulfilled**. All of the items in the order have been fulfilled. */\n Fulfilled = \"FULFILLED\",\n /** Displayed as **In progress**. Some of the items in the order have been fulfilled, or a request for fulfillment has been sent to the fulfillment service. */\n InProgress = \"IN_PROGRESS\",\n /** Displayed as **On hold**. All of the unfulfilled items in this order are on hold. */\n OnHold = \"ON_HOLD\",\n /** Displayed as **Open**. None of the items in the order have been fulfilled. Replaced by \"UNFULFILLED\" status. */\n Open = \"OPEN\",\n /** Displayed as **Partially fulfilled**. Some of the items in the order have been fulfilled. */\n PartiallyFulfilled = \"PARTIALLY_FULFILLED\",\n /** Displayed as **Pending fulfillment**. A request for fulfillment of some items awaits a response from the fulfillment service. Replaced by \"IN_PROGRESS\" status. */\n PendingFulfillment = \"PENDING_FULFILLMENT\",\n /** Displayed as **Restocked**. All of the items in the order have been restocked. Replaced by \"UNFULFILLED\" status. */\n Restocked = \"RESTOCKED\",\n /** Displayed as **Scheduled**. All of the unfulfilled items in this order are scheduled for fulfillment at later time. */\n Scheduled = \"SCHEDULED\",\n /** Displayed as **Unfulfilled**. None of the items in the order have been fulfilled. */\n Unfulfilled = \"UNFULFILLED\",\n}\n\n/** Represents a single line in an order. There is one line item for each distinct product variant. */\nexport type OrderLineItem = {\n __typename?: \"OrderLineItem\";\n /** The number of entries associated to the line item minus the items that have been removed. */\n currentQuantity: Scalars[\"Int\"][\"output\"];\n /** List of custom attributes associated to the line item. */\n customAttributes: Array<Attribute>;\n /** The discounts that have been allocated onto the order line item by discount applications. */\n discountAllocations: Array<DiscountAllocation>;\n /** The total price of the line item, including discounts, and displayed in the presentment currency. */\n discountedTotalPrice: MoneyV2;\n /** 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's displayed in the presentment currency. */\n originalTotalPrice: MoneyV2;\n /** The number of products variants associated to the line item. */\n quantity: Scalars[\"Int\"][\"output\"];\n /** The title of the product combined with title of the variant. */\n title: Scalars[\"String\"][\"output\"];\n /** The product variant object associated to the line item. */\n variant?: Maybe<ProductVariant>;\n};\n\n/**\n * An auto-generated type for paginating through multiple OrderLineItems.\n *\n */\nexport type OrderLineItemConnection = {\n __typename?: \"OrderLineItemConnection\";\n /** A list of edges. */\n edges: Array<OrderLineItemEdge>;\n /** A list of the nodes contained in OrderLineItemEdge. */\n nodes: Array<OrderLineItem>;\n /** Information to aid in pagination. */\n pageInfo: PageInfo;\n};\n\n/**\n * An auto-generated type which holds one OrderLineItem and a cursor during pagination.\n *\n */\nexport type OrderLineItemEdge = {\n __typename?: \"OrderLineItemEdge\";\n /** A cursor for use in pagination. */\n cursor: Scalars[\"String\"][\"output\"];\n /** The item at the end of OrderLineItemEdge. */\n node: OrderLineItem;\n};\n\n/** The set of valid sort keys for the Order query. */\nexport enum OrderSortKeys {\n /** Sort by the `id` value. */\n Id = \"ID\",\n /** Sort by the `processed_at` value. */\n ProcessedAt = \"PROCESSED_AT\",\n /**\n * Sort by relevance to the search terms when the `query` parameter is specified on the connection.\n * Don't use this sort key when no search query is specified.\n *\n */\n Relevance = \"RELEVANCE\",\n /** Sort by the `total_price` value. */\n TotalPrice = \"TOTAL_PRICE\",\n}\n\n/** Shopify merchants can create pages to hold static HTML content. Each Page object represents a custom page on the online store. */\nexport type Page = HasMetafields &\n Node &\n OnlineStorePublishable &\n Trackable & {\n __typename?: \"Page\";\n /** The description of the page, complete with HTML formatting. */\n body: Scalars[\"HTML\"][\"output\"];\n /** Summary of the page body. */\n bodySummary: Scalars[\"String\"][\"output\"];\n /** The timestamp of the page creation. */\n createdAt: Scalars[\"DateTime\"][\"output\"];\n /** A human-friendly unique string for the page automatically generated from its title. */\n handle: Scalars[\"String\"][\"output\"];\n /** A globally-unique ID. */\n id: Scalars[\"ID\"][\"output\"];\n /** A [custom field](https://shopify.dev/docs/apps/build/custom-data), including its `namespace` and `key`, that's associated with a Shopify resource for the purposes of adding and storing additional information. */\n metafield?: Maybe<Metafield>;\n /** A list of [custom fields](/docs/apps/build/custom-data) that a merchant associates with a Shopify resource. */\n metafields: Array<Maybe<Metafield>>;\n /** The URL used for viewing the resource on the shop's Online Store. Returns `null` if the resource is currently not published to the Online Store sales channel. */\n onlineStoreUrl?: Maybe<Scalars[\"URL\"][\"output\"]>;\n /** The page's SEO information. */\n seo?: Maybe<Seo>;\n /** The title of the page. */\n title: Scalars[\"String\"][\"output\"];\n /** URL parameters to be added to a page URL to track the origin of on-site search traffic for [analytics reporting](https://help.shopify.com/manual/reports-and-analytics/shopify-reports/report-types/default-reports/behaviour-reports). Returns a result when accessed through the [search](https://shopify.dev/docs/api/storefront/current/queries/search) or [predictiveSearch](https://shopify.dev/docs/api/storefront/current/queries/predictiveSearch) queries, otherwise returns null. */\n trackingParameters?: Maybe<Scalars[\"String\"][\"output\"]>;\n /** The timestamp of the latest page update. */\n updatedAt: Scalars[\"DateTime\"][\"output\"];\n };\n\n/** Shopify merchants can create pages to hold static HTML content. Each Page object represents a custom page on the online store. */\nexport type PageMetafieldArgs = {\n key: Scalars[\"String\"][\"input\"];\n namespace?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n};\n\n/** Shopify merchants can create pages to hold static HTML content. Each Page object represents a custom page on the online store. */\nexport type PageMetafieldsArgs = {\n identifiers: Array<HasMetafieldsIdentifier>;\n};\n\n/**\n * An auto-generated type for paginating through multiple Pages.\n *\n */\nexport type PageConnection = {\n __typename?: \"PageConnection\";\n /** A list of edges. */\n edges: Array<PageEdge>;\n /** A list of the nodes contained in PageEdge. */\n nodes: Array<Page>;\n /** Information to aid in pagination. */\n pageInfo: PageInfo;\n};\n\n/**\n * An auto-generated type which holds one Page and a cursor during pagination.\n *\n */\nexport type PageEdge = {\n __typename?: \"PageEdge\";\n /** A cursor for use in pagination. */\n cursor: Scalars[\"String\"][\"output\"];\n /** The item at the end of PageEdge. */\n node: Page;\n};\n\n/**\n * Returns information about pagination in a connection, in accordance with the\n * [Relay specification](https://relay.dev/graphql/connections.htm#sec-undefined.PageInfo).\n * For more information, please read our [GraphQL Pagination Usage Guide](https://shopify.dev/api/usage/pagination-graphql).\n *\n */\nexport type PageInfo = {\n __typename?: \"PageInfo\";\n /** The cursor corresponding to the last node in edges. */\n endCursor?: Maybe<Scalars[\"String\"][\"output\"]>;\n /** Whether there are more pages to fetch following the current page. */\n hasNextPage: Scalars[\"Boolean\"][\"output\"];\n /** Whether there are any pages prior to the current page. */\n hasPreviousPage: Scalars[\"Boolean\"][\"output\"];\n /** The cursor corresponding to the first node in edges. */\n startCursor?: Maybe<Scalars[\"String\"][\"output\"]>;\n};\n\n/** The set of valid sort keys for the Page query. */\nexport enum PageSortKeys {\n /** Sort by the `id` value. */\n Id = \"ID\",\n /**\n * Sort by relevance to the search terms when the `query` parameter is specified on the connection.\n * Don't use this sort key when no search query is specified.\n *\n */\n Relevance = \"RELEVANCE\",\n /** Sort by the `title` value. */\n Title = \"TITLE\",\n /** Sort by the `updated_at` value. */\n UpdatedAt = \"UPDATED_AT\",\n}\n\n/** Type for paginating through multiple sitemap's resources. */\nexport type PaginatedSitemapResources = {\n __typename?: \"PaginatedSitemapResources\";\n /** Whether there are more pages to fetch following the current page. */\n hasNextPage: Scalars[\"Boolean\"][\"output\"];\n /**\n * List of sitemap resources for the current page.\n * Note: The number of items varies between 0 and 250 per page.\n *\n */\n items: Array<SitemapResourceInterface>;\n};\n\n/** Settings related to payments. */\nexport type PaymentSettings = {\n __typename?: \"PaymentSettings\";\n /** List of the card brands which the business entity accepts. */\n acceptedCardBrands: Array<CardBrand>;\n /** The url pointing to the endpoint to vault credit cards. */\n cardVaultUrl: Scalars[\"URL\"][\"output\"];\n /** The country where the shop is located. When multiple business entities operate within the shop, then this will represent the country of the business entity that's serving the specified buyer context. */\n countryCode: CountryCode;\n /** The three-letter code for the shop's primary currency. */\n currencyCode: CurrencyCode;\n /**\n * A list of enabled currencies (ISO 4217 format) that the shop accepts.\n * Merchants can enable currencies from their Shopify Payments settings in the Shopify admin.\n *\n */\n enabledPresentmentCurrencies: Array<CurrencyCode>;\n /** The shop’s Shopify Payments account ID. */\n shopifyPaymentsAccountId?: Maybe<Scalars[\"String\"][\"output\"]>;\n /** List of the digital wallets which the business entity supports. */\n supportedDigitalWallets: Array<DigitalWallet>;\n};\n\n/** Decides the distribution of results. */\nexport enum PredictiveSearchLimitScope {\n /** Return results up to limit across all types. */\n All = \"ALL\",\n /** Return results up to limit per type. */\n Each = \"EACH\",\n}\n\n/**\n * A predictive search result represents a list of products, collections, pages, articles, and query suggestions\n * that matches the predictive search query.\n *\n */\nexport type PredictiveSearchResult = {\n __typename?: \"PredictiveSearchResult\";\n /** The articles that match the search query. */\n articles: Array<Article>;\n /** The articles that match the search query. */\n collections: Array<Collection>;\n /** The pages that match the search query. */\n pages: Array<Page>;\n /** The products that match the search query. */\n products: Array<Product>;\n /** The query suggestions that are relevant to the search query. */\n queries: Array<SearchQuerySuggestion>;\n};\n\n/** The types of search items to perform predictive search on. */\nexport enum PredictiveSearchType {\n /** Returns matching articles. */\n Article = \"ARTICLE\",\n /** Returns matching collections. */\n Collection = \"COLLECTION\",\n /** Returns matching pages. */\n Page = \"PAGE\",\n /** Returns matching products. */\n Product = \"PRODUCT\",\n /** Returns matching query strings. */\n Query = \"QUERY\",\n}\n\n/** The preferred delivery methods such as shipping, local pickup or through pickup points. */\nexport enum PreferenceDeliveryMethodType {\n /** A delivery method used to let buyers collect purchases at designated locations like parcel lockers. */\n PickupPoint = \"PICKUP_POINT\",\n /** A delivery method used to let buyers receive items directly from a specific location within an area. */\n PickUp = \"PICK_UP\",\n /** A delivery method used to send items directly to a buyer’s specified address. */\n Shipping = \"SHIPPING\",\n}\n\n/**\n * The input fields for a filter used to view a subset of products in a collection matching a specific price range.\n *\n */\nexport type PriceRangeFilter = {\n /** The maximum price in the range. Empty indicates no max price. */\n max?: InputMaybe<Scalars[\"Float\"][\"input\"]>;\n /** The minimum price in the range. Defaults to zero. */\n min?: InputMaybe<Scalars[\"Float\"][\"input\"]>;\n};\n\n/** The value of the percentage pricing object. */\nexport type PricingPercentageValue = {\n __typename?: \"PricingPercentageValue\";\n /** The percentage value of the object. */\n percentage: Scalars[\"Float\"][\"output\"];\n};\n\n/** The price value (fixed or percentage) for a discount application. */\nexport type PricingValue = MoneyV2 | PricingPercentageValue;\n\n/**\n * The `Product` object lets you manage products in a merchant’s store.\n *\n * Products are the goods and services that merchants offer to customers.\n * They can include various details such as title, description, price, images, and options such as size or color.\n * You can use [product variants](/docs/api/storefront/latest/objects/ProductVariant)\n * to create or update different versions of the same product.\n * You can also add or update product [media](/docs/api/storefront/latest/interfaces/Media).\n * Products can be organized by grouping them into a [collection](/docs/api/storefront/latest/objects/Collection).\n *\n * Learn more about working with [products and collections](/docs/storefronts/headless/building-with-the-storefront-api/products-collections).\n *\n */\nexport type Product = HasMetafields &\n Node &\n OnlineStorePublishable &\n Trackable & {\n __typename?: \"Product\";\n /**\n * A list of variants whose selected options differ with the provided selected options by one, ordered by variant id.\n * If selected options are not provided, adjacent variants to the first available variant is returned.\n *\n * Note that this field returns an array of variants. In most cases, the number of variants in this array will be low.\n * However, with a low number of options and a high number of values per option, the number of variants returned\n * here can be high. In such cases, it recommended to avoid using this field.\n *\n * This list of variants can be used in combination with the `options` field to build a rich variant picker that\n * includes variant availability or other variant information.\n *\n */\n adjacentVariants: Array<ProductVariant>;\n /** Indicates if at least one product variant is available for sale. */\n availableForSale: Scalars[\"Boolean\"][\"output\"];\n /** The category of a product from [Shopify's Standard Product Taxonomy](https://shopify.github.io/product-taxonomy/releases/unstable/?categoryId=sg-4-17-2-17). */\n category?: Maybe<TaxonomyCategory>;\n /** A list of [collections](/docs/api/storefront/latest/objects/Collection) that include the product. */\n collections: CollectionConnection;\n /** The [compare-at price range](https://help.shopify.com/manual/products/details/product-pricing/sale-pricing) of the product in the shop's default currency. */\n compareAtPriceRange: ProductPriceRange;\n /** The date and time when the product was created. */\n createdAt: Scalars[\"DateTime\"][\"output\"];\n /** A single-line description of the product, with [HTML tags](https://developer.mozilla.org/en-US/docs/Web/HTML) removed. */\n description: Scalars[\"String\"][\"output\"];\n /**\n * The description of the product, with\n * HTML tags. For example, the description might include\n * bold `<strong></strong>` and italic `<i></i>` text.\n *\n */\n descriptionHtml: Scalars[\"HTML\"][\"output\"];\n /**\n * An encoded string containing all option value combinations\n * with a corresponding variant that is currently available for sale.\n *\n * Integers represent option and values:\n * [0,1] represents option_value at array index 0 for the option at array index 0\n *\n * `:`, `,`, ` ` and `-` are control characters.\n * `:` indicates a new option. ex: 0:1 indicates value 0 for the option in position 1, value 1 for the option in position 2.\n * `,` indicates the end of a repeated prefix, mulitple consecutive commas indicate the end of multiple repeated prefixes.\n * ` ` indicates a gap in the sequence of option values. ex: 0 4 indicates option values in position 0 and 4 are present.\n * `-` indicates a continuous range of option values. ex: 0 1-3 4\n *\n * Decoding process:\n *\n * Example options: [Size, Color, Material]\n * Example values: [[Small, Medium, Large], [Red, Blue], [Cotton, Wool]]\n * Example encoded string: \"0:0:0,1:0-1,,1:0:0-1,1:1,,2:0:1,1:0,,\"\n *\n * Step 1: Expand ranges into the numbers they represent: \"0:0:0,1:0 1,,1:0:0 1,1:1,,2:0:1,1:0,,\"\n * Step 2: Expand repeated prefixes: \"0:0:0,0:1:0 1,1:0:0 1,1:1:1,2:0:1,2:1:0,\"\n * Step 3: Expand shared prefixes so data is encoded as a string: \"0:0:0,0:1:0,0:1:1,1:0:0,1:0:1,1:1:1,2:0:1,2:1:0,\"\n * Step 4: Map to options + option values to determine existing variants:\n *\n * [Small, Red, Cotton] (0:0:0), [Small, Blue, Cotton] (0:1:0), [Small, Blue, Wool] (0:1:1),\n * [Medium, Red, Cotton] (1:0:0), [Medium, Red, Wool] (1:0:1), [Medium, Blue, Wool] (1:1:1),\n * [Large, Red, Wool] (2:0:1), [Large, Blue, Cotton] (2:1:0).\n *\n *\n */\n encodedVariantAvailability?: Maybe<Scalars[\"String\"][\"output\"]>;\n /**\n * An encoded string containing all option value combinations with a corresponding variant.\n *\n * Integers represent option and values:\n * [0,1] represents option_value at array index 0 for the option at array index 0\n *\n * `:`, `,`, ` ` and `-` are control characters.\n * `:` indicates a new option. ex: 0:1 indicates value 0 for the option in position 1, value 1 for the option in position 2.\n * `,` indicates the end of a repeated prefix, mulitple consecutive commas indicate the end of multiple repeated prefixes.\n * ` ` indicates a gap in the sequence of option values. ex: 0 4 indicates option values in position 0 and 4 are present.\n * `-` indicates a continuous range of option values. ex: 0 1-3 4\n *\n * Decoding process:\n *\n * Example options: [Size, Color, Material]\n * Example values: [[Small, Medium, Large], [Red, Blue], [Cotton, Wool]]\n * Example encoded string: \"0:0:0,1:0-1,,1:0:0-1,1:1,,2:0:1,1:0,,\"\n *\n * Step 1: Expand ranges into the numbers they represent: \"0:0:0,1:0 1,,1:0:0 1,1:1,,2:0:1,1:0,,\"\n * Step 2: Expand repeated prefixes: \"0:0:0,0:1:0 1,1:0:0 1,1:1:1,2:0:1,2:1:0,\"\n * Step 3: Expand shared prefixes so data is encoded as a string: \"0:0:0,0:1:0,0:1:1,1:0:0,1:0:1,1:1:1,2:0:1,2:1:0,\"\n * Step 4: Map to options + option values to determine existing variants:\n *\n * [Small, Red, Cotton] (0:0:0), [Small, Blue, Cotton] (0:1:0), [Small, Blue, Wool] (0:1:1),\n * [Medium, Red, Cotton] (1:0:0), [Medium, Red, Wool] (1:0:1), [Medium, Blue, Wool] (1:1:1),\n * [Large, Red, Wool] (2:0:1), [Large, Blue, Cotton] (2:1:0).\n *\n *\n */\n encodedVariantExistence?: Maybe<Scalars[\"String\"][\"output\"]>;\n /**\n * The featured image for the product.\n *\n * This field is functionally equivalent to `images(first: 1)`.\n *\n */\n featuredImage?: Maybe<Image>;\n /**\n * A unique, human-readable string of the product's title.\n * A handle can contain letters, hyphens (`-`), and numbers, but no spaces.\n * The handle is used in the online store URL for the product.\n *\n */\n handle: Scalars[\"String\"][\"output\"];\n /** A globally-unique ID. */\n id: Scalars[\"ID\"][\"output\"];\n /** List of images associated with the product. */\n images: ImageConnection;\n /** Whether the product is a gift card. */\n isGiftCard: Scalars[\"Boolean\"][\"output\"];\n /** The [media](/docs/apps/build/online-store/product-media) that are associated with the product. Valid media are images, 3D models, videos. */\n media: MediaConnection;\n /** A [custom field](https://shopify.dev/docs/apps/build/custom-data), including its `namespace` and `key`, that's associated with a Shopify resource for the purposes of adding and storing additional information. */\n metafield?: Maybe<Metafield>;\n /** A list of [custom fields](/docs/apps/build/custom-data) that a merchant associates with a Shopify resource. */\n metafields: Array<Maybe<Metafield>>;\n /**\n * The product's URL on the online store.\n * If `null`, then the product isn't published to the online store sales channel.\n *\n */\n onlineStoreUrl?: Maybe<Scalars[\"URL\"][\"output\"]>;\n /** A list of product options. The limit is defined by the [shop's resource limits for product options](/docs/api/admin-graphql/latest/objects/Shop#field-resourcelimits) (`Shop.resourceLimits.maxProductOptions`). */\n options: Array<ProductOption>;\n /**\n * The minimum and maximum prices of a product, expressed in decimal numbers.\n * For example, if the product is priced between $10.00 and $50.00,\n * then the price range is $10.00 - $50.00.\n *\n */\n priceRange: ProductPriceRange;\n /**\n * The [product type](https://help.shopify.com/manual/products/details/product-type)\n * that merchants define.\n *\n */\n productType: Scalars[\"String\"][\"output\"];\n /** The date and time when the product was published to the channel. */\n publishedAt: Scalars[\"DateTime\"][\"output\"];\n /** Whether the product can only be purchased with a [selling plan](/docs/apps/build/purchase-options/subscriptions/selling-plans). Products that are sold on subscription (`requiresSellingPlan: true`) can be updated only for online stores. If you update a product to be subscription-only (`requiresSellingPlan:false`), then the product is unpublished from all channels, except the online store. */\n requiresSellingPlan: Scalars[\"Boolean\"][\"output\"];\n /**\n * Find an active product variant based on selected options, availability or the first variant.\n *\n * All arguments are optional. If no selected options are provided, the first available variant is returned.\n * If no variants are available, the first variant is returned.\n *\n */\n selectedOrFirstAvailableVariant?: Maybe<ProductVariant>;\n /** A list of all [selling plan groups](/docs/apps/build/purchase-options/subscriptions/selling-plans/build-a-selling-plan) that are associated with the product either directly, or through the product's variants. */\n sellingPlanGroups: SellingPlanGroupConnection;\n /**\n * The [SEO title and description](https://help.shopify.com/manual/promoting-marketing/seo/adding-keywords)\n * that are associated with a product.\n *\n */\n seo: Seo;\n /**\n * A comma-separated list of searchable keywords that are\n * associated with the product. For example, a merchant might apply the `sports`\n * and `summer` tags to products that are associated with sportwear for summer.\n * Updating `tags` overwrites any existing tags that were previously added to the product.\n * To add new tags without overwriting existing tags,\n * use the GraphQL Admin API's [`tagsAdd`](/docs/api/admin-graphql/latest/mutations/tagsadd)\n * mutation.\n *\n */\n tags: Array<Scalars[\"String\"][\"output\"]>;\n /**\n * The name for the product that displays to customers. The title is used to construct the product's handle.\n * For example, if a product is titled \"Black Sunglasses\", then the handle is `black-sunglasses`.\n *\n */\n title: Scalars[\"String\"][\"output\"];\n /** The quantity of inventory that's in stock. */\n totalInventory?: Maybe<Scalars[\"Int\"][\"output\"]>;\n /** URL parameters to be added to a page URL to track the origin of on-site search traffic for [analytics reporting](https://help.shopify.com/manual/reports-and-analytics/shopify-reports/report-types/default-reports/behaviour-reports). Returns a result when accessed through the [search](https://shopify.dev/docs/api/storefront/current/queries/search) or [predictiveSearch](https://shopify.dev/docs/api/storefront/current/queries/predictiveSearch) queries, otherwise returns null. */\n trackingParameters?: Maybe<Scalars[\"String\"][\"output\"]>;\n /**\n * The date and time when the product was last modified.\n * A product's `updatedAt` value can change for different reasons. For example, if an order\n * is placed for a product that has inventory tracking set up, then the inventory adjustment\n * is counted as an update.\n *\n */\n updatedAt: Scalars[\"DateTime\"][\"output\"];\n /**\n * Find a product’s variant based on its selected options.\n * This is useful for converting a user’s selection of product options into a single matching variant.\n * If there is not a variant for the selected options, `null` will be returned.\n *\n */\n variantBySelectedOptions?: Maybe<ProductVariant>;\n /** A list of [variants](/docs/api/storefront/latest/objects/ProductVariant) that are associated with the product. */\n variants: ProductVariantConnection;\n /** The number of [variants](/docs/api/storefront/latest/objects/ProductVariant) that are associated with the product. */\n variantsCount?: Maybe<Count>;\n /** The name of the product's vendor. */\n vendor: Scalars[\"String\"][\"output\"];\n };\n\n/**\n * The `Product` object lets you manage products in a merchant’s store.\n *\n * Products are the goods and services that merchants offer to customers.\n * They can include various details such as title, description, price, images, and options such as size or color.\n * You can use [product variants](/docs/api/storefront/latest/objects/ProductVariant)\n * to create or update different versions of the same product.\n * You can also add or update product [media](/docs/api/storefront/latest/interfaces/Media).\n * Products can be organized by grouping them into a [collection](/docs/api/storefront/latest/objects/Collection).\n *\n * Learn more about working with [products and collections](/docs/storefronts/headless/building-with-the-storefront-api/products-collections).\n *\n */\nexport type ProductAdjacentVariantsArgs = {\n caseInsensitiveMatch?: InputMaybe<Scalars[\"Boolean\"][\"input\"]>;\n ignoreUnknownOptions?: InputMaybe<Scalars[\"Boolean\"][\"input\"]>;\n selectedOptions?: InputMaybe<Array<SelectedOptionInput>>;\n};\n\n/**\n * The `Product` object lets you manage products in a merchant’s store.\n *\n * Products are the goods and services that merchants offer to customers.\n * They can include various details such as title, description, price, images, and options such as size or color.\n * You can use [product variants](/docs/api/storefront/latest/objects/ProductVariant)\n * to create or update different versions of the same product.\n * You can also add or update product [media](/docs/api/storefront/latest/interfaces/Media).\n * Products can be organized by grouping them into a [collection](/docs/api/storefront/latest/objects/Collection).\n *\n * Learn more about working with [products and collections](/docs/storefronts/headless/building-with-the-storefront-api/products-collections).\n *\n */\nexport type ProductCollectionsArgs = {\n after?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n before?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n first?: InputMaybe<Scalars[\"Int\"][\"input\"]>;\n last?: InputMaybe<Scalars[\"Int\"][\"input\"]>;\n reverse?: InputMaybe<Scalars[\"Boolean\"][\"input\"]>;\n};\n\n/**\n * The `Product` object lets you manage products in a merchant’s store.\n *\n * Products are the goods and services that merchants offer to customers.\n * They can include various details such as title, description, price, images, and options such as size or color.\n * You can use [product variants](/docs/api/storefront/latest/objects/ProductVariant)\n * to create or update different versions of the same product.\n * You can also add or update product [media](/docs/api/storefront/latest/interfaces/Media).\n * Products can be organized by grouping them into a [collection](/docs/api/storefront/latest/objects/Collection).\n *\n * Learn more about working with [products and collections](/docs/storefronts/headless/building-with-the-storefront-api/products-collections).\n *\n */\nexport type ProductDescriptionArgs = {\n truncateAt?: InputMaybe<Scalars[\"Int\"][\"input\"]>;\n};\n\n/**\n * The `Product` object lets you manage products in a merchant’s store.\n *\n * Products are the goods and services that merchants offer to customers.\n * They can include various details such as title, description, price, images, and options such as size or color.\n * You can use [product variants](/docs/api/storefront/latest/objects/ProductVariant)\n * to create or update different versions of the same product.\n * You can also add or update product [media](/docs/api/storefront/latest/interfaces/Media).\n * Products can be organized by grouping them into a [collection](/docs/api/storefront/latest/objects/Collection).\n *\n * Learn more about working with [products and collections](/docs/storefronts/headless/building-with-the-storefront-api/products-collections).\n *\n */\nexport type ProductImagesArgs = {\n after?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n before?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n first?: InputMaybe<Scalars[\"Int\"][\"input\"]>;\n last?: InputMaybe<Scalars[\"Int\"][\"input\"]>;\n reverse?: InputMaybe<Scalars[\"Boolean\"][\"input\"]>;\n sortKey?: InputMaybe<ProductImageSortKeys>;\n};\n\n/**\n * The `Product` object lets you manage products in a merchant’s store.\n *\n * Products are the goods and services that merchants offer to customers.\n * They can include various details such as title, description, price, images, and options such as size or color.\n * You can use [product variants](/docs/api/storefront/latest/objects/ProductVariant)\n * to create or update different versions of the same product.\n * You can also add or update product [media](/docs/api/storefront/latest/interfaces/Media).\n * Products can be organized by grouping them into a [collection](/docs/api/storefront/latest/objects/Collection).\n *\n * Learn more about working with [products and collections](/docs/storefronts/headless/building-with-the-storefront-api/products-collections).\n *\n */\nexport type ProductMediaArgs = {\n after?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n before?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n first?: InputMaybe<Scalars[\"Int\"][\"input\"]>;\n last?: InputMaybe<Scalars[\"Int\"][\"input\"]>;\n reverse?: InputMaybe<Scalars[\"Boolean\"][\"input\"]>;\n sortKey?: InputMaybe<ProductMediaSortKeys>;\n};\n\n/**\n * The `Product` object lets you manage products in a merchant’s store.\n *\n * Products are the goods and services that merchants offer to customers.\n * They can include various details such as title, description, price, images, and options such as size or color.\n * You can use [product variants](/docs/api/storefront/latest/objects/ProductVariant)\n * to create or update different versions of the same product.\n * You can also add or update product [media](/docs/api/storefront/latest/interfaces/Media).\n * Products can be organized by grouping them into a [collection](/docs/api/storefront/latest/objects/Collection).\n *\n * Learn more about working with [products and collections](/docs/storefronts/headless/building-with-the-storefront-api/products-collections).\n *\n */\nexport type ProductMetafieldArgs = {\n key: Scalars[\"String\"][\"input\"];\n namespace?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n};\n\n/**\n * The `Product` object lets you manage products in a merchant’s store.\n *\n * Products are the goods and services that merchants offer to customers.\n * They can include various details such as title, description, price, images, and options such as size or color.\n * You can use [product variants](/docs/api/storefront/latest/objects/ProductVariant)\n * to create or update different versions of the same product.\n * You can also add or update product [media](/docs/api/storefront/latest/interfaces/Media).\n * Products can be organized by grouping them into a [collection](/docs/api/storefront/latest/objects/Collection).\n *\n * Learn more about working with [products and collections](/docs/storefronts/headless/building-with-the-storefront-api/products-collections).\n *\n */\nexport type ProductMetafieldsArgs = {\n identifiers: Array<HasMetafieldsIdentifier>;\n};\n\n/**\n * The `Product` object lets you manage products in a merchant’s store.\n *\n * Products are the goods and services that merchants offer to customers.\n * They can include various details such as title, description, price, images, and options such as size or color.\n * You can use [product variants](/docs/api/storefront/latest/objects/ProductVariant)\n * to create or update different versions of the same product.\n * You can also add or update product [media](/docs/api/storefront/latest/interfaces/Media).\n * Products can be organized by grouping them into a [collection](/docs/api/storefront/latest/objects/Collection).\n *\n * Learn more about working with [products and collections](/docs/storefronts/headless/building-with-the-storefront-api/products-collections).\n *\n */\nexport type ProductOptionsArgs = {\n first?: InputMaybe<Scalars[\"Int\"][\"input\"]>;\n};\n\n/**\n * The `Product` object lets you manage products in a merchant’s store.\n *\n * Products are the goods and services that merchants offer to customers.\n * They can include various details such as title, description, price, images, and options such as size or color.\n * You can use [product variants](/docs/api/storefront/latest/objects/ProductVariant)\n * to create or update different versions of the same product.\n * You can also add or update product [media](/docs/api/storefront/latest/interfaces/Media).\n * Products can be organized by grouping them into a [collection](/docs/api/storefront/latest/objects/Collection).\n *\n * Learn more about working with [products and collections](/docs/storefronts/headless/building-with-the-storefront-api/products-collections).\n *\n */\nexport type ProductSelectedOrFirstAvailableVariantArgs = {\n caseInsensitiveMatch?: InputMaybe<Scalars[\"Boolean\"][\"input\"]>;\n ignoreUnknownOptions?: InputMaybe<Scalars[\"Boolean\"][\"input\"]>;\n selectedOptions?: InputMaybe<Array<SelectedOptionInput>>;\n};\n\n/**\n * The `Product` object lets you manage products in a merchant’s store.\n *\n * Products are the goods and services that merchants offer to customers.\n * They can include various details such as title, description, price, images, and options such as size or color.\n * You can use [product variants](/docs/api/storefront/latest/objects/ProductVariant)\n * to create or update different versions of the same product.\n * You can also add or update product [media](/docs/api/storefront/latest/interfaces/Media).\n * Products can be organized by grouping them into a [collection](/docs/api/storefront/latest/objects/Collection).\n *\n * Learn more about working with [products and collections](/docs/storefronts/headless/building-with-the-storefront-api/products-collections).\n *\n */\nexport type ProductSellingPlanGroupsArgs = {\n after?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n before?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n first?: InputMaybe<Scalars[\"Int\"][\"input\"]>;\n last?: InputMaybe<Scalars[\"Int\"][\"input\"]>;\n reverse?: InputMaybe<Scalars[\"Boolean\"][\"input\"]>;\n};\n\n/**\n * The `Product` object lets you manage products in a merchant’s store.\n *\n * Products are the goods and services that merchants offer to customers.\n * They can include various details such as title, description, price, images, and options such as size or color.\n * You can use [product variants](/docs/api/storefront/latest/objects/ProductVariant)\n * to create or update different versions of the same product.\n * You can also add or update product [media](/docs/api/storefront/latest/interfaces/Media).\n * Products can be organized by grouping them into a [collection](/docs/api/storefront/latest/objects/Collection).\n *\n * Learn more about working with [products and collections](/docs/storefronts/headless/building-with-the-storefront-api/products-collections).\n *\n */\nexport type ProductVariantBySelectedOptionsArgs = {\n caseInsensitiveMatch?: InputMaybe<Scalars[\"Boolean\"][\"input\"]>;\n ignoreUnknownOptions?: InputMaybe<Scalars[\"Boolean\"][\"input\"]>;\n selectedOptions: Array<SelectedOptionInput>;\n};\n\n/**\n * The `Product` object lets you manage products in a merchant’s store.\n *\n * Products are the goods and services that merchants offer to customers.\n * They can include various details such as title, description, price, images, and options such as size or color.\n * You can use [product variants](/docs/api/storefront/latest/objects/ProductVariant)\n * to create or update different versions of the same product.\n * You can also add or update product [media](/docs/api/storefront/latest/interfaces/Media).\n * Products can be organized by grouping them into a [collection](/docs/api/storefront/latest/objects/Collection).\n *\n * Learn more about working with [products and collections](/docs/storefronts/headless/building-with-the-storefront-api/products-collections).\n *\n */\nexport type ProductVariantsArgs = {\n after?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n before?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n first?: InputMaybe<Scalars[\"Int\"][\"input\"]>;\n last?: InputMaybe<Scalars[\"Int\"][\"input\"]>;\n reverse?: InputMaybe<Scalars[\"Boolean\"][\"input\"]>;\n sortKey?: InputMaybe<ProductVariantSortKeys>;\n};\n\n/** The set of valid sort keys for the ProductCollection query. */\nexport enum ProductCollectionSortKeys {\n /** Sort by the `best-selling` value. */\n BestSelling = \"BEST_SELLING\",\n /** Sort by the `collection-default` value. */\n CollectionDefault = \"COLLECTION_DEFAULT\",\n /** Sort by the `created` value. */\n Created = \"CREATED\",\n /** Sort by the `id` value. */\n Id = \"ID\",\n /** Sort by the `manual` value. */\n Manual = \"MANUAL\",\n /** Sort by the `price` value. */\n Price = \"PRICE\",\n /**\n * Sort by relevance to the search terms when the `query` parameter is specified on the connection.\n * Don't use this sort key when no search query is specified.\n *\n */\n Relevance = \"RELEVANCE\",\n /** Sort by the `title` value. */\n Title = \"TITLE\",\n}\n\n/**\n * An auto-generated type for paginating through multiple Products.\n *\n */\nexport type ProductConnection = {\n __typename?: \"ProductConnection\";\n /** A list of edges. */\n edges: Array<ProductEdge>;\n /** A list of available filters. */\n filters: Array<Filter>;\n /** A list of the nodes contained in ProductEdge. */\n nodes: Array<Product>;\n /** Information to aid in pagination. */\n pageInfo: PageInfo;\n};\n\n/**\n * An auto-generated type which holds one Product and a cursor during pagination.\n *\n */\nexport type ProductEdge = {\n __typename?: \"ProductEdge\";\n /** A cursor for use in pagination. */\n cursor: Scalars[\"String\"][\"output\"];\n /** The item at the end of ProductEdge. */\n node: Product;\n};\n\n/**\n * The input fields for a filter used to view a subset of products in a collection.\n * By default, the `available` and `price` filters are enabled. Filters are customized with the Shopify Search & Discovery app.\n * Learn more about [customizing storefront filtering](https://help.shopify.com/manual/online-store/themes/customizing-themes/storefront-filters).\n *\n */\nexport type ProductFilter = {\n /** Filter on if the product is available for sale. */\n available?: InputMaybe<Scalars[\"Boolean\"][\"input\"]>;\n /** A product category to filter on. */\n category?: InputMaybe<CategoryFilter>;\n /** A range of prices to filter with-in. */\n price?: InputMaybe<PriceRangeFilter>;\n /** A product metafield to filter on. */\n productMetafield?: InputMaybe<MetafieldFilter>;\n /** The product type to filter on. */\n productType?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n /** The product vendor to filter on. */\n productVendor?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n /** A product tag to filter on. */\n tag?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n /** A standard product attribute metafield to filter on. */\n taxonomyMetafield?: InputMaybe<TaxonomyMetafieldFilter>;\n /** A variant metafield to filter on. */\n variantMetafield?: InputMaybe<MetafieldFilter>;\n /** A variant option to filter on. */\n variantOption?: InputMaybe<VariantOptionFilter>;\n};\n\n/** The set of valid sort keys for the ProductImage query. */\nexport enum ProductImageSortKeys {\n /** Sort by the `created_at` value. */\n CreatedAt = \"CREATED_AT\",\n /** Sort by the `id` value. */\n Id = \"ID\",\n /** Sort by the `position` value. */\n Position = \"POSITION\",\n /**\n * Sort by relevance to the search terms when the `query` parameter is specified on the connection.\n * Don't use this sort key when no search query is specified.\n *\n */\n Relevance = \"RELEVANCE\",\n}\n\n/** The set of valid sort keys for the ProductMedia query. */\nexport enum ProductMediaSortKeys {\n /** Sort by the `id` value. */\n Id = \"ID\",\n /** Sort by the `position` value. */\n Position = \"POSITION\",\n /**\n * Sort by relevance to the search terms when the `query` parameter is specified on the connection.\n * Don't use this sort key when no search query is specified.\n *\n */\n Relevance = \"RELEVANCE\",\n}\n\n/**\n * Product property names like \"Size\", \"Color\", and \"Material\" that the customers can select.\n * Variants are selected based on permutations of these options.\n * 255 characters limit each.\n *\n */\nexport type ProductOption = Node & {\n __typename?: \"ProductOption\";\n /** A globally-unique ID. */\n id: Scalars[\"ID\"][\"output\"];\n /** The product option’s name. */\n name: Scalars[\"String\"][\"output\"];\n /** The corresponding option value to the product option. */\n optionValues: Array<ProductOptionValue>;\n /**\n * The corresponding value to the product option name.\n * @deprecated Use `optionValues` instead.\n */\n values: Array<Scalars[\"String\"][\"output\"]>;\n};\n\n/**\n * The product option value names. For example, \"Red\", \"Blue\", and \"Green\" for a \"Color\" option.\n *\n */\nexport type ProductOptionValue = Node & {\n __typename?: \"ProductOptionValue\";\n /**\n * The product variant that combines this option value with the\n * lowest-position option values for all other options.\n *\n * This field will always return a variant, provided a variant including this option value exists.\n *\n */\n firstSelectableVariant?: Maybe<ProductVariant>;\n /** A globally-unique ID. */\n id: Scalars[\"ID\"][\"output\"];\n /** The name of the product option value. */\n name: Scalars[\"String\"][\"output\"];\n /** The swatch of the product option value. */\n swatch?: Maybe<ProductOptionValueSwatch>;\n};\n\n/**\n * The product option value swatch.\n *\n */\nexport type ProductOptionValueSwatch = {\n __typename?: \"ProductOptionValueSwatch\";\n /** The swatch color. */\n color?: Maybe<Scalars[\"Color\"][\"output\"]>;\n /** The swatch image. */\n image?: Maybe<Media>;\n};\n\n/** The price range of the product. */\nexport type ProductPriceRange = {\n __typename?: \"ProductPriceRange\";\n /** The highest variant's price. */\n maxVariantPrice: MoneyV2;\n /** The lowest variant's price. */\n minVariantPrice: MoneyV2;\n};\n\n/**\n * The recommendation intent that is used to generate product recommendations.\n * You can use intent to generate product recommendations according to different strategies.\n *\n */\nexport enum ProductRecommendationIntent {\n /** Offer customers products that are complementary to a product for which recommendations are to be fetched. An example is add-on products that display in a Pair it with section. */\n Complementary = \"COMPLEMENTARY\",\n /** Offer customers a mix of products that are similar or complementary to a product for which recommendations are to be fetched. An example is substitutable products that display in a You may also like section. */\n Related = \"RELATED\",\n}\n\n/** The set of valid sort keys for the Product query. */\nexport enum ProductSortKeys {\n /** Sort by the `best_selling` value. */\n BestSelling = \"BEST_SELLING\",\n /** Sort by the `created_at` value. */\n CreatedAt = \"CREATED_AT\",\n /** Sort by the `id` value. */\n Id = \"ID\",\n /** Sort by the `price` value. */\n Price = \"PRICE\",\n /** Sort by the `product_type` value. */\n ProductType = \"PRODUCT_TYPE\",\n /**\n * Sort by relevance to the search terms when the `query` parameter is specified on the connection.\n * Don't use this sort key when no search query is specified.\n *\n */\n Relevance = \"RELEVANCE\",\n /** Sort by the `title` value. */\n Title = \"TITLE\",\n /** Sort by the `updated_at` value. */\n UpdatedAt = \"UPDATED_AT\",\n /** Sort by the `vendor` value. */\n Vendor = \"VENDOR\",\n}\n\n/**\n * A product variant represents a different version of a product, such as differing sizes or differing colors.\n *\n */\nexport type ProductVariant = HasMetafields &\n Node & {\n __typename?: \"ProductVariant\";\n /** Indicates if the product variant is available for sale. */\n availableForSale: Scalars[\"Boolean\"][\"output\"];\n /** The barcode (for example, ISBN, UPC, or GTIN) associated with the variant. */\n barcode?: Maybe<Scalars[\"String\"][\"output\"]>;\n /** The compare at price of the variant. This can be used to mark a variant as on sale, when `compareAtPrice` is higher than `price`. */\n compareAtPrice?: Maybe<MoneyV2>;\n /**\n * The compare at price of the variant. This can be used to mark a variant as on sale, when `compareAtPriceV2` is higher than `priceV2`.\n * @deprecated Use `compareAtPrice` instead.\n */\n compareAtPriceV2?: Maybe<MoneyV2>;\n /**\n * List of bundles components included in the variant considering only fixed bundles.\n *\n */\n components: ProductVariantComponentConnection;\n /** Whether a product is out of stock but still available for purchase (used for backorders). */\n currentlyNotInStock: Scalars[\"Boolean\"][\"output\"];\n /**\n * List of bundles that include this variant considering only fixed bundles.\n *\n */\n groupedBy: ProductVariantConnection;\n /** A globally-unique ID. */\n id: Scalars[\"ID\"][\"output\"];\n /** Image associated with the product variant. This field falls back to the product image if no image is available. */\n image?: Maybe<Image>;\n /** A [custom field](https://shopify.dev/docs/apps/build/custom-data), including its `namespace` and `key`, that's associated with a Shopify resource for the purposes of adding and storing additional information. */\n metafield?: Maybe<Metafield>;\n /** A list of [custom fields](/docs/apps/build/custom-data) that a merchant associates with a Shopify resource. */\n metafields: Array<Maybe<Metafield>>;\n /** The product variant’s price. */\n price: MoneyV2;\n /**\n * The product variant’s price.\n * @deprecated Use `price` instead.\n */\n priceV2: MoneyV2;\n /** The product object that the product variant belongs to. */\n product: Product;\n /** The total sellable quantity of the variant for online sales channels. */\n quantityAvailable?: Maybe<Scalars[\"Int\"][\"output\"]>;\n /** A list of quantity breaks for the product variant. */\n quantityPriceBreaks: QuantityPriceBreakConnection;\n /** The quantity rule for the product variant in a given context. */\n quantityRule: QuantityRule;\n /**\n * Whether a product variant requires components. The default value is `false`.\n * If `true`, then the product variant can only be purchased as a parent bundle with components.\n *\n */\n requiresComponents: Scalars[\"Boolean\"][\"output\"];\n /** Whether a customer needs to provide a shipping address when placing an order for the product variant. */\n requiresShipping: Scalars[\"Boolean\"][\"output\"];\n /** List of product options applied to the variant. */\n selectedOptions: Array<SelectedOption>;\n /** Represents an association between a variant and a selling plan. Selling plan allocations describe which selling plans are available for each variant, and what their impact is on pricing. */\n sellingPlanAllocations: SellingPlanAllocationConnection;\n /** The Shop Pay Installments pricing information for the product variant. */\n shopPayInstallmentsPricing?: Maybe<ShopPayInstallmentsProductVariantPricing>;\n /** The SKU (stock keeping unit) associated with the variant. */\n sku?: Maybe<Scalars[\"String\"][\"output\"]>;\n /** The in-store pickup availability of this variant by location. */\n storeAvailability: StoreAvailabilityConnection;\n /** Whether tax is charged when the product variant is sold. */\n taxable: Scalars[\"Boolean\"][\"output\"];\n /** The product variant’s title. */\n title: Scalars[\"String\"][\"output\"];\n /** The unit price value for the variant based on the variant's measurement. */\n unitPrice?: Maybe<MoneyV2>;\n /** The unit price measurement for the variant. */\n unitPriceMeasurement?: Maybe<UnitPriceMeasurement>;\n /** The weight of the product variant in the unit system specified with `weight_unit`. */\n weight?: Maybe<Scalars[\"Float\"][\"output\"]>;\n /** Unit of measurement for weight. */\n weightUnit: WeightUnit;\n };\n\n/**\n * A product variant represents a different version of a product, such as differing sizes or differing colors.\n *\n */\nexport type ProductVariantComponentsArgs = {\n after?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n before?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n first?: InputMaybe<Scalars[\"Int\"][\"input\"]>;\n last?: InputMaybe<Scalars[\"Int\"][\"input\"]>;\n};\n\n/**\n * A product variant represents a different version of a product, such as differing sizes or differing colors.\n *\n */\nexport type ProductVariantGroupedByArgs = {\n after?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n before?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n first?: InputMaybe<Scalars[\"Int\"][\"input\"]>;\n last?: InputMaybe<Scalars[\"Int\"][\"input\"]>;\n};\n\n/**\n * A product variant represents a different version of a product, such as differing sizes or differing colors.\n *\n */\nexport type ProductVariantMetafieldArgs = {\n key: Scalars[\"String\"][\"input\"];\n namespace?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n};\n\n/**\n * A product variant represents a different version of a product, such as differing sizes or differing colors.\n *\n */\nexport type ProductVariantMetafieldsArgs = {\n identifiers: Array<HasMetafieldsIdentifier>;\n};\n\n/**\n * A product variant represents a different version of a product, such as differing sizes or differing colors.\n *\n */\nexport type ProductVariantQuantityPriceBreaksArgs = {\n after?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n before?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n first?: InputMaybe<Scalars[\"Int\"][\"input\"]>;\n last?: InputMaybe<Scalars[\"Int\"][\"input\"]>;\n};\n\n/**\n * A product variant represents a different version of a product, such as differing sizes or differing colors.\n *\n */\nexport type ProductVariantSellingPlanAllocationsArgs = {\n after?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n before?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n first?: InputMaybe<Scalars[\"Int\"][\"input\"]>;\n last?: InputMaybe<Scalars[\"Int\"][\"input\"]>;\n reverse?: InputMaybe<Scalars[\"Boolean\"][\"input\"]>;\n};\n\n/**\n * A product variant represents a different version of a product, such as differing sizes or differing colors.\n *\n */\nexport type ProductVariantStoreAvailabilityArgs = {\n after?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n before?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n first?: InputMaybe<Scalars[\"Int\"][\"input\"]>;\n last?: InputMaybe<Scalars[\"Int\"][\"input\"]>;\n near?: InputMaybe<GeoCoordinateInput>;\n reverse?: InputMaybe<Scalars[\"Boolean\"][\"input\"]>;\n};\n\n/**\n * Represents a component of a bundle variant.\n *\n */\nexport type ProductVariantComponent = {\n __typename?: \"ProductVariantComponent\";\n /** The product variant object that the component belongs to. */\n productVariant: ProductVariant;\n /** The quantity of component present in the bundle. */\n quantity: Scalars[\"Int\"][\"output\"];\n};\n\n/**\n * An auto-generated type for paginating through multiple ProductVariantComponents.\n *\n */\nexport type ProductVariantComponentConnection = {\n __typename?: \"ProductVariantComponentConnection\";\n /** A list of edges. */\n edges: Array<ProductVariantComponentEdge>;\n /** A list of the nodes contained in ProductVariantComponentEdge. */\n nodes: Array<ProductVariantComponent>;\n /** Information to aid in pagination. */\n pageInfo: PageInfo;\n};\n\n/**\n * An auto-generated type which holds one ProductVariantComponent and a cursor during pagination.\n *\n */\nexport type ProductVariantComponentEdge = {\n __typename?: \"ProductVariantComponentEdge\";\n /** A cursor for use in pagination. */\n cursor: Scalars[\"String\"][\"output\"];\n /** The item at the end of ProductVariantComponentEdge. */\n node: ProductVariantComponent;\n};\n\n/**\n * An auto-generated type for paginating through multiple ProductVariants.\n *\n */\nexport type ProductVariantConnection = {\n __typename?: \"ProductVariantConnection\";\n /** A list of edges. */\n edges: Array<ProductVariantEdge>;\n /** A list of the nodes contained in ProductVariantEdge. */\n nodes: Array<ProductVariant>;\n /** Information to aid in pagination. */\n pageInfo: PageInfo;\n};\n\n/**\n * An auto-generated type which holds one ProductVariant and a cursor during pagination.\n *\n */\nexport type ProductVariantEdge = {\n __typename?: \"ProductVariantEdge\";\n /** A cursor for use in pagination. */\n cursor: Scalars[\"String\"][\"output\"];\n /** The item at the end of ProductVariantEdge. */\n node: ProductVariant;\n};\n\n/** The set of valid sort keys for the ProductVariant query. */\nexport enum ProductVariantSortKeys {\n /** Sort by the `id` value. */\n Id = \"ID\",\n /** Sort by the `position` value. */\n Position = \"POSITION\",\n /**\n * Sort by relevance to the search terms when the `query` parameter is specified on the connection.\n * Don't use this sort key when no search query is specified.\n *\n */\n Relevance = \"RELEVANCE\",\n /** Sort by the `sku` value. */\n Sku = \"SKU\",\n /** Sort by the `title` value. */\n Title = \"TITLE\",\n}\n\n/** Represents information about the buyer that is interacting with the cart. */\nexport type PurchasingCompany = {\n __typename?: \"PurchasingCompany\";\n /** The company associated to the order or draft order. */\n company: Company;\n /** The company contact associated to the order or draft order. */\n contact?: Maybe<CompanyContact>;\n /** The company location associated to the order or draft order. */\n location: CompanyLocation;\n};\n\n/**\n * Quantity price breaks lets you offer different rates that are based on the\n * amount of a specific variant being ordered.\n *\n */\nexport type QuantityPriceBreak = {\n __typename?: \"QuantityPriceBreak\";\n /**\n * Minimum quantity required to reach new quantity break price.\n *\n */\n minimumQuantity: Scalars[\"Int\"][\"output\"];\n /**\n * The price of variant after reaching the minimum quanity.\n *\n */\n price: MoneyV2;\n};\n\n/**\n * An auto-generated type for paginating through multiple QuantityPriceBreaks.\n *\n */\nexport type QuantityPriceBreakConnection = {\n __typename?: \"QuantityPriceBreakConnection\";\n /** A list of edges. */\n edges: Array<QuantityPriceBreakEdge>;\n /** A list of the nodes contained in QuantityPriceBreakEdge. */\n nodes: Array<QuantityPriceBreak>;\n /** Information to aid in pagination. */\n pageInfo: PageInfo;\n};\n\n/**\n * An auto-generated type which holds one QuantityPriceBreak and a cursor during pagination.\n *\n */\nexport type QuantityPriceBreakEdge = {\n __typename?: \"QuantityPriceBreakEdge\";\n /** A cursor for use in pagination. */\n cursor: Scalars[\"String\"][\"output\"];\n /** The item at the end of QuantityPriceBreakEdge. */\n node: QuantityPriceBreak;\n};\n\n/**\n * The quantity rule for the product variant in a given context.\n *\n */\nexport type QuantityRule = {\n __typename?: \"QuantityRule\";\n /**\n * The value that specifies the quantity increment between minimum and maximum of the rule.\n * Only quantities divisible by this value will be considered valid.\n *\n * The increment must be lower than or equal to the minimum and the maximum, and both minimum and maximum\n * must be divisible by this value.\n *\n */\n increment: Scalars[\"Int\"][\"output\"];\n /**\n * An optional value that defines the highest allowed quantity purchased by the customer.\n * If defined, maximum must be lower than or equal to the minimum and must be a multiple of the increment.\n *\n */\n maximum?: Maybe<Scalars[\"Int\"][\"output\"]>;\n /**\n * The value that defines the lowest allowed quantity purchased by the customer.\n * The minimum must be a multiple of the quantity rule's increment.\n *\n */\n minimum: Scalars[\"Int\"][\"output\"];\n};\n\n/** The schema’s entry-point for queries. This acts as the public, top-level API from which all queries must start. */\nexport type QueryRoot = {\n __typename?: \"QueryRoot\";\n /** Fetch a specific Article by its ID. */\n article?: Maybe<Article>;\n /** List of the shop's articles. */\n articles: ArticleConnection;\n /** Fetch a specific `Blog` by one of its unique attributes. */\n blog?: Maybe<Blog>;\n /**\n * Find a blog by its handle.\n * @deprecated Use `blog` instead.\n */\n blogByHandle?: Maybe<Blog>;\n /** List of the shop's blogs. */\n blogs: BlogConnection;\n /**\n * Retrieve a cart by its ID. For more information, refer to\n * [Manage a cart with the Storefront API](https://shopify.dev/custom-storefronts/cart/manage).\n *\n */\n cart?: Maybe<Cart>;\n /**\n * A poll for the status of the cart checkout completion and order creation.\n *\n */\n cartCompletionAttempt?: Maybe<CartCompletionAttemptResult>;\n /** Fetch a specific `Collection` by one of its unique attributes. */\n collection?: Maybe<Collection>;\n /**\n * Find a collection by its handle.\n * @deprecated Use `collection` instead.\n */\n collectionByHandle?: Maybe<Collection>;\n /** List of the shop’s collections. */\n collections: CollectionConnection;\n /**\n * The customer associated with the given access token. Tokens are obtained by using the\n * [`customerAccessTokenCreate` mutation](https://shopify.dev/docs/api/storefront/latest/mutations/customerAccessTokenCreate).\n *\n */\n customer?: Maybe<Customer>;\n /** Returns the localized experiences configured for the shop. */\n localization: Localization;\n /**\n * List of the shop's locations that support in-store pickup.\n *\n * When sorting by distance, you must specify a location via the `near` argument.\n *\n *\n */\n locations: LocationConnection;\n /** Retrieve a [navigation menu](https://help.shopify.com/manual/online-store/menus-and-links) by its handle. */\n menu?: Maybe<Menu>;\n /** Fetch a specific Metaobject by one of its unique identifiers. */\n metaobject?: Maybe<Metaobject>;\n /** All active metaobjects for the shop. */\n metaobjects: MetaobjectConnection;\n /** Returns a specific node by ID. */\n node?: Maybe<Node>;\n /** Returns the list of nodes with the given IDs. */\n nodes: Array<Maybe<Node>>;\n /** Fetch a specific `Page` by one of its unique attributes. */\n page?: Maybe<Page>;\n /**\n * Find a page by its handle.\n * @deprecated Use `page` instead.\n */\n pageByHandle?: Maybe<Page>;\n /** List of the shop's pages. */\n pages: PageConnection;\n /** Settings related to payments. */\n paymentSettings: PaymentSettings;\n /** List of the predictive search results. */\n predictiveSearch?: Maybe<PredictiveSearchResult>;\n /** Fetch a specific `Product` by one of its unique attributes. */\n product?: Maybe<Product>;\n /**\n * Find a product by its handle.\n * @deprecated Use `product` instead.\n */\n productByHandle?: Maybe<Product>;\n /**\n * Find recommended products related to a given `product_id`.\n * To learn more about how recommendations are generated, see\n * [*Showing product recommendations on product pages*](https://help.shopify.com/themes/development/recommended-products).\n *\n */\n productRecommendations?: Maybe<Array<Product>>;\n /**\n * Tags added to products.\n * Additional access scope required: unauthenticated_read_product_tags.\n *\n */\n productTags: StringConnection;\n /** List of product types for the shop's products that are published to your app. */\n productTypes: StringConnection;\n /** Returns a list of the shop's products. For storefront search, use the [`search`](https://shopify.dev/docs/api/storefront/latest/queries/search) query. */\n products: ProductConnection;\n /** The list of public Storefront API versions, including supported, release candidate and unstable versions. */\n publicApiVersions: Array<ApiVersion>;\n /** List of the search results. */\n search: SearchResultItemConnection;\n /** The shop associated with the storefront access token. */\n shop: Shop;\n /** Contains all fields required to generate sitemaps. */\n sitemap: Sitemap;\n /** A list of redirects for a shop. */\n urlRedirects: UrlRedirectConnection;\n};\n\n/** The schema’s entry-point for queries. This acts as the public, top-level API from which all queries must start. */\nexport type QueryRootArticleArgs = {\n id: Scalars[\"ID\"][\"input\"];\n};\n\n/** The schema’s entry-point for queries. This acts as the public, top-level API from which all queries must start. */\nexport type QueryRootArticlesArgs = {\n after?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n before?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n first?: InputMaybe<Scalars[\"Int\"][\"input\"]>;\n last?: InputMaybe<Scalars[\"Int\"][\"input\"]>;\n query?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n reverse?: InputMaybe<Scalars[\"Boolean\"][\"input\"]>;\n sortKey?: InputMaybe<ArticleSortKeys>;\n};\n\n/** The schema’s entry-point for queries. This acts as the public, top-level API from which all queries must start. */\nexport type QueryRootBlogArgs = {\n handle?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n id?: InputMaybe<Scalars[\"ID\"][\"input\"]>;\n};\n\n/** The schema’s entry-point for queries. This acts as the public, top-level API from which all queries must start. */\nexport type QueryRootBlogByHandleArgs = {\n handle: Scalars[\"String\"][\"input\"];\n};\n\n/** The schema’s entry-point for queries. This acts as the public, top-level API from which all queries must start. */\nexport type QueryRootBlogsArgs = {\n after?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n before?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n first?: InputMaybe<Scalars[\"Int\"][\"input\"]>;\n last?: InputMaybe<Scalars[\"Int\"][\"input\"]>;\n query?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n reverse?: InputMaybe<Scalars[\"Boolean\"][\"input\"]>;\n sortKey?: InputMaybe<BlogSortKeys>;\n};\n\n/** The schema’s entry-point for queries. This acts as the public, top-level API from which all queries must start. */\nexport type QueryRootCartArgs = {\n id: Scalars[\"ID\"][\"input\"];\n};\n\n/** The schema’s entry-point for queries. This acts as the public, top-level API from which all queries must start. */\nexport type QueryRootCartCompletionAttemptArgs = {\n attemptId: Scalars[\"String\"][\"input\"];\n};\n\n/** The schema’s entry-point for queries. This acts as the public, top-level API from which all queries must start. */\nexport type QueryRootCollectionArgs = {\n handle?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n id?: InputMaybe<Scalars[\"ID\"][\"input\"]>;\n};\n\n/** The schema’s entry-point for queries. This acts as the public, top-level API from which all queries must start. */\nexport type QueryRootCollectionByHandleArgs = {\n handle: Scalars[\"String\"][\"input\"];\n};\n\n/** The schema’s entry-point for queries. This acts as the public, top-level API from which all queries must start. */\nexport type QueryRootCollectionsArgs = {\n after?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n before?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n first?: InputMaybe<Scalars[\"Int\"][\"input\"]>;\n last?: InputMaybe<Scalars[\"Int\"][\"input\"]>;\n query?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n reverse?: InputMaybe<Scalars[\"Boolean\"][\"input\"]>;\n sortKey?: InputMaybe<CollectionSortKeys>;\n};\n\n/** The schema’s entry-point for queries. This acts as the public, top-level API from which all queries must start. */\nexport type QueryRootCustomerArgs = {\n customerAccessToken: Scalars[\"String\"][\"input\"];\n};\n\n/** The schema’s entry-point for queries. This acts as the public, top-level API from which all queries must start. */\nexport type QueryRootLocationsArgs = {\n after?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n before?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n first?: InputMaybe<Scalars[\"Int\"][\"input\"]>;\n last?: InputMaybe<Scalars[\"Int\"][\"input\"]>;\n near?: InputMaybe<GeoCoordinateInput>;\n reverse?: InputMaybe<Scalars[\"Boolean\"][\"input\"]>;\n sortKey?: InputMaybe<LocationSortKeys>;\n};\n\n/** The schema’s entry-point for queries. This acts as the public, top-level API from which all queries must start. */\nexport type QueryRootMenuArgs = {\n handle: Scalars[\"String\"][\"input\"];\n};\n\n/** The schema’s entry-point for queries. This acts as the public, top-level API from which all queries must start. */\nexport type QueryRootMetaobjectArgs = {\n handle?: InputMaybe<MetaobjectHandleInput>;\n id?: InputMaybe<Scalars[\"ID\"][\"input\"]>;\n};\n\n/** The schema’s entry-point for queries. This acts as the public, top-level API from which all queries must start. */\nexport type QueryRootMetaobjectsArgs = {\n after?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n before?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n first?: InputMaybe<Scalars[\"Int\"][\"input\"]>;\n last?: InputMaybe<Scalars[\"Int\"][\"input\"]>;\n reverse?: InputMaybe<Scalars[\"Boolean\"][\"input\"]>;\n sortKey?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n type: Scalars[\"String\"][\"input\"];\n};\n\n/** The schema’s entry-point for queries. This acts as the public, top-level API from which all queries must start. */\nexport type QueryRootNodeArgs = {\n id: Scalars[\"ID\"][\"input\"];\n};\n\n/** The schema’s entry-point for queries. This acts as the public, top-level API from which all queries must start. */\nexport type QueryRootNodesArgs = {\n ids: Array<Scalars[\"ID\"][\"input\"]>;\n};\n\n/** The schema’s entry-point for queries. This acts as the public, top-level API from which all queries must start. */\nexport type QueryRootPageArgs = {\n handle?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n id?: InputMaybe<Scalars[\"ID\"][\"input\"]>;\n};\n\n/** The schema’s entry-point for queries. This acts as the public, top-level API from which all queries must start. */\nexport type QueryRootPageByHandleArgs = {\n handle: Scalars[\"String\"][\"input\"];\n};\n\n/** The schema’s entry-point for queries. This acts as the public, top-level API from which all queries must start. */\nexport type QueryRootPagesArgs = {\n after?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n before?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n first?: InputMaybe<Scalars[\"Int\"][\"input\"]>;\n last?: InputMaybe<Scalars[\"Int\"][\"input\"]>;\n query?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n reverse?: InputMaybe<Scalars[\"Boolean\"][\"input\"]>;\n sortKey?: InputMaybe<PageSortKeys>;\n};\n\n/** The schema’s entry-point for queries. This acts as the public, top-level API from which all queries must start. */\nexport type QueryRootPredictiveSearchArgs = {\n limit?: InputMaybe<Scalars[\"Int\"][\"input\"]>;\n limitScope?: InputMaybe<PredictiveSearchLimitScope>;\n query: Scalars[\"String\"][\"input\"];\n searchableFields?: InputMaybe<Array<SearchableField>>;\n types?: InputMaybe<Array<PredictiveSearchType>>;\n unavailableProducts?: InputMaybe<SearchUnavailableProductsType>;\n};\n\n/** The schema’s entry-point for queries. This acts as the public, top-level API from which all queries must start. */\nexport type QueryRootProductArgs = {\n handle?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n id?: InputMaybe<Scalars[\"ID\"][\"input\"]>;\n};\n\n/** The schema’s entry-point for queries. This acts as the public, top-level API from which all queries must start. */\nexport type QueryRootProductByHandleArgs = {\n handle: Scalars[\"String\"][\"input\"];\n};\n\n/** The schema’s entry-point for queries. This acts as the public, top-level API from which all queries must start. */\nexport type QueryRootProductRecommendationsArgs = {\n intent?: InputMaybe<ProductRecommendationIntent>;\n productHandle?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n productId?: InputMaybe<Scalars[\"ID\"][\"input\"]>;\n};\n\n/** The schema’s entry-point for queries. This acts as the public, top-level API from which all queries must start. */\nexport type QueryRootProductTagsArgs = {\n first: Scalars[\"Int\"][\"input\"];\n};\n\n/** The schema’s entry-point for queries. This acts as the public, top-level API from which all queries must start. */\nexport type QueryRootProductTypesArgs = {\n first: Scalars[\"Int\"][\"input\"];\n};\n\n/** The schema’s entry-point for queries. This acts as the public, top-level API from which all queries must start. */\nexport type QueryRootProductsArgs = {\n after?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n before?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n first?: InputMaybe<Scalars[\"Int\"][\"input\"]>;\n last?: InputMaybe<Scalars[\"Int\"][\"input\"]>;\n query?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n reverse?: InputMaybe<Scalars[\"Boolean\"][\"input\"]>;\n sortKey?: InputMaybe<ProductSortKeys>;\n};\n\n/** The schema’s entry-point for queries. This acts as the public, top-level API from which all queries must start. */\nexport type QueryRootSearchArgs = {\n after?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n before?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n first?: InputMaybe<Scalars[\"Int\"][\"input\"]>;\n last?: InputMaybe<Scalars[\"Int\"][\"input\"]>;\n prefix?: InputMaybe<SearchPrefixQueryType>;\n productFilters?: InputMaybe<Array<ProductFilter>>;\n query: Scalars[\"String\"][\"input\"];\n reverse?: InputMaybe<Scalars[\"Boolean\"][\"input\"]>;\n sortKey?: InputMaybe<SearchSortKeys>;\n types?: InputMaybe<Array<SearchType>>;\n unavailableProducts?: InputMaybe<SearchUnavailableProductsType>;\n};\n\n/** The schema’s entry-point for queries. This acts as the public, top-level API from which all queries must start. */\nexport type QueryRootSitemapArgs = {\n type: SitemapType;\n};\n\n/** The schema’s entry-point for queries. This acts as the public, top-level API from which all queries must start. */\nexport type QueryRootUrlRedirectsArgs = {\n after?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n before?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n first?: InputMaybe<Scalars[\"Int\"][\"input\"]>;\n last?: InputMaybe<Scalars[\"Int\"][\"input\"]>;\n query?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n reverse?: InputMaybe<Scalars[\"Boolean\"][\"input\"]>;\n};\n\n/** SEO information. */\nexport type Seo = {\n __typename?: \"SEO\";\n /** The meta description. */\n description?: Maybe<Scalars[\"String\"][\"output\"]>;\n /** The SEO title. */\n title?: Maybe<Scalars[\"String\"][\"output\"]>;\n};\n\n/**\n * Script discount applications capture the intentions of a discount that\n * was created by a Shopify Script.\n *\n */\nexport type ScriptDiscountApplication = DiscountApplication & {\n __typename?: \"ScriptDiscountApplication\";\n /** The method by which the discount's value is allocated to its entitled items. */\n allocationMethod: DiscountApplicationAllocationMethod;\n /** Which lines of targetType that the discount is allocated over. */\n targetSelection: DiscountApplicationTargetSelection;\n /** The type of line that the discount is applicable towards. */\n targetType: DiscountApplicationTargetType;\n /** The title of the application as defined by the Script. */\n title: Scalars[\"String\"][\"output\"];\n /** The value of the discount application. */\n value: PricingValue;\n};\n\n/** Specifies whether to perform a partial word match on the last search term. */\nexport enum SearchPrefixQueryType {\n /** Perform a partial word match on the last search term. */\n Last = \"LAST\",\n /** Don't perform a partial word match on the last search term. */\n None = \"NONE\",\n}\n\n/** A search query suggestion. */\nexport type SearchQuerySuggestion = Trackable & {\n __typename?: \"SearchQuerySuggestion\";\n /** The text of the search query suggestion with highlighted HTML tags. */\n styledText: Scalars[\"String\"][\"output\"];\n /** The text of the search query suggestion. */\n text: Scalars[\"String\"][\"output\"];\n /** URL parameters to be added to a page URL to track the origin of on-site search traffic for [analytics reporting](https://help.shopify.com/manual/reports-and-analytics/shopify-reports/report-types/default-reports/behaviour-reports). Returns a result when accessed through the [search](https://shopify.dev/docs/api/storefront/current/queries/search) or [predictiveSearch](https://shopify.dev/docs/api/storefront/current/queries/predictiveSearch) queries, otherwise returns null. */\n trackingParameters?: Maybe<Scalars[\"String\"][\"output\"]>;\n};\n\n/**\n * A search result that matches the search query.\n *\n */\nexport type SearchResultItem = Article | Page | Product;\n\n/**\n * An auto-generated type for paginating through multiple SearchResultItems.\n *\n */\nexport type SearchResultItemConnection = {\n __typename?: \"SearchResultItemConnection\";\n /** A list of edges. */\n edges: Array<SearchResultItemEdge>;\n /** A list of the nodes contained in SearchResultItemEdge. */\n nodes: Array<SearchResultItem>;\n /** Information to aid in pagination. */\n pageInfo: PageInfo;\n /** A list of available filters. */\n productFilters: Array<Filter>;\n /** The total number of results. */\n totalCount: Scalars[\"Int\"][\"output\"];\n};\n\n/**\n * An auto-generated type which holds one SearchResultItem and a cursor during pagination.\n *\n */\nexport type SearchResultItemEdge = {\n __typename?: \"SearchResultItemEdge\";\n /** A cursor for use in pagination. */\n cursor: Scalars[\"String\"][\"output\"];\n /** The item at the end of SearchResultItemEdge. */\n node: SearchResultItem;\n};\n\n/** The set of valid sort keys for the search query. */\nexport enum SearchSortKeys {\n /** Sort by the `price` value. */\n Price = \"PRICE\",\n /** Sort by relevance to the search terms. */\n Relevance = \"RELEVANCE\",\n}\n\n/** The types of search items to perform search within. */\nexport enum SearchType {\n /** Returns matching articles. */\n Article = \"ARTICLE\",\n /** Returns matching pages. */\n Page = \"PAGE\",\n /** Returns matching products. */\n Product = \"PRODUCT\",\n}\n\n/** Specifies whether to display results for unavailable products. */\nexport enum SearchUnavailableProductsType {\n /** Exclude unavailable products. */\n Hide = \"HIDE\",\n /** Show unavailable products after all other matching results. This is the default. */\n Last = \"LAST\",\n /** Show unavailable products in the order that they're found. */\n Show = \"SHOW\",\n}\n\n/** Specifies the list of resource fields to search. */\nexport enum SearchableField {\n /** Author of the page or article. */\n Author = \"AUTHOR\",\n /** Body of the page or article or product description or collection description. */\n Body = \"BODY\",\n /** Product type. */\n ProductType = \"PRODUCT_TYPE\",\n /** Tag associated with the product or article. */\n Tag = \"TAG\",\n /** Title of the page or article or product title or collection title. */\n Title = \"TITLE\",\n /** Variant barcode. */\n VariantsBarcode = \"VARIANTS_BARCODE\",\n /** Variant SKU. */\n VariantsSku = \"VARIANTS_SKU\",\n /** Variant title. */\n VariantsTitle = \"VARIANTS_TITLE\",\n /** Product vendor. */\n Vendor = \"VENDOR\",\n}\n\n/**\n * Properties used by customers to select a product variant.\n * Products can have multiple options, like different sizes or colors.\n *\n */\nexport type SelectedOption = {\n __typename?: \"SelectedOption\";\n /** The product option’s name. */\n name: Scalars[\"String\"][\"output\"];\n /** The product option’s value. */\n value: Scalars[\"String\"][\"output\"];\n};\n\n/** The input fields required for a selected option. */\nexport type SelectedOptionInput = {\n /** The product option’s name. */\n name: Scalars[\"String\"][\"input\"];\n /** The product option’s value. */\n value: Scalars[\"String\"][\"input\"];\n};\n\n/** Represents how products and variants can be sold and purchased. */\nexport type SellingPlan = HasMetafields & {\n __typename?: \"SellingPlan\";\n /** The billing policy for the selling plan. */\n billingPolicy?: Maybe<SellingPlanBillingPolicy>;\n /** The initial payment due for the purchase. */\n checkoutCharge: SellingPlanCheckoutCharge;\n /** The delivery policy for the selling plan. */\n deliveryPolicy?: Maybe<SellingPlanDeliveryPolicy>;\n /** The description of the selling plan. */\n description?: Maybe<Scalars[\"String\"][\"output\"]>;\n /** A globally-unique ID. */\n id: Scalars[\"ID\"][\"output\"];\n /** A [custom field](https://shopify.dev/docs/apps/build/custom-data), including its `namespace` and `key`, that's associated with a Shopify resource for the purposes of adding and storing additional information. */\n metafield?: Maybe<Metafield>;\n /** A list of [custom fields](/docs/apps/build/custom-data) that a merchant associates with a Shopify resource. */\n metafields: Array<Maybe<Metafield>>;\n /** The name of the selling plan. For example, '6 weeks of prepaid granola, delivered weekly'. */\n name: Scalars[\"String\"][\"output\"];\n /** The selling plan options available in the drop-down list in the storefront. For example, 'Delivery every week' or 'Delivery every 2 weeks' specifies the delivery frequency options for the product. Individual selling plans contribute their options to the associated selling plan group. For example, a selling plan group might have an option called `option1: Delivery every`. One selling plan in that group could contribute `option1: 2 weeks` with the pricing for that option, and another selling plan could contribute `option1: 4 weeks`, with different pricing. */\n options: Array<SellingPlanOption>;\n /** The price adjustments that a selling plan makes when a variant is purchased with a selling plan. */\n priceAdjustments: Array<SellingPlanPriceAdjustment>;\n /** Whether purchasing the selling plan will result in multiple deliveries. */\n recurringDeliveries: Scalars[\"Boolean\"][\"output\"];\n};\n\n/** Represents how products and variants can be sold and purchased. */\nexport type SellingPlanMetafieldArgs = {\n key: Scalars[\"String\"][\"input\"];\n namespace?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n};\n\n/** Represents how products and variants can be sold and purchased. */\nexport type SellingPlanMetafieldsArgs = {\n identifiers: Array<HasMetafieldsIdentifier>;\n};\n\n/** Represents an association between a variant and a selling plan. Selling plan allocations describe the options offered for each variant, and the price of the variant when purchased with a selling plan. */\nexport type SellingPlanAllocation = {\n __typename?: \"SellingPlanAllocation\";\n /** The checkout charge amount due for the purchase. */\n checkoutChargeAmount: MoneyV2;\n /** A list of price adjustments, with a maximum of two. When there are two, the first price adjustment goes into effect at the time of purchase, while the second one starts after a certain number of orders. A price adjustment represents how a selling plan affects pricing when a variant is purchased with a selling plan. Prices display in the customer's currency if the shop is configured for it. */\n priceAdjustments: Array<SellingPlanAllocationPriceAdjustment>;\n /** The remaining balance charge amount due for the purchase. */\n remainingBalanceChargeAmount: MoneyV2;\n /** A representation of how products and variants can be sold and purchased. For example, an individual selling plan could be '6 weeks of prepaid granola, delivered weekly'. */\n sellingPlan: SellingPlan;\n};\n\n/**\n * An auto-generated type for paginating through multiple SellingPlanAllocations.\n *\n */\nexport type SellingPlanAllocationConnection = {\n __typename?: \"SellingPlanAllocationConnection\";\n /** A list of edges. */\n edges: Array<SellingPlanAllocationEdge>;\n /** A list of the nodes contained in SellingPlanAllocationEdge. */\n nodes: Array<SellingPlanAllocation>;\n /** Information to aid in pagination. */\n pageInfo: PageInfo;\n};\n\n/**\n * An auto-generated type which holds one SellingPlanAllocation and a cursor during pagination.\n *\n */\nexport type SellingPlanAllocationEdge = {\n __typename?: \"SellingPlanAllocationEdge\";\n /** A cursor for use in pagination. */\n cursor: Scalars[\"String\"][\"output\"];\n /** The item at the end of SellingPlanAllocationEdge. */\n node: SellingPlanAllocation;\n};\n\n/** The resulting prices for variants when they're purchased with a specific selling plan. */\nexport type SellingPlanAllocationPriceAdjustment = {\n __typename?: \"SellingPlanAllocationPriceAdjustment\";\n /** The price of the variant when it's purchased without a selling plan for the same number of deliveries. For example, if a customer purchases 6 deliveries of $10.00 granola separately, then the price is 6 x $10.00 = $60.00. */\n compareAtPrice: MoneyV2;\n /** The effective price for a single delivery. For example, for a prepaid subscription plan that includes 6 deliveries at the price of $48.00, the per delivery price is $8.00. */\n perDeliveryPrice: MoneyV2;\n /** The price of the variant when it's purchased with a selling plan For example, for a prepaid subscription plan that includes 6 deliveries of $10.00 granola, where the customer gets 20% off, the price is 6 x $10.00 x 0.80 = $48.00. */\n price: MoneyV2;\n /** The resulting price per unit for the variant associated with the selling plan. If the variant isn't sold by quantity or measurement, then this field returns `null`. */\n unitPrice?: Maybe<MoneyV2>;\n};\n\n/** The selling plan billing policy. */\nexport type SellingPlanBillingPolicy = SellingPlanRecurringBillingPolicy;\n\n/** The initial payment due for the purchase. */\nexport type SellingPlanCheckoutCharge = {\n __typename?: \"SellingPlanCheckoutCharge\";\n /** The charge type for the checkout charge. */\n type: SellingPlanCheckoutChargeType;\n /** The charge value for the checkout charge. */\n value: SellingPlanCheckoutChargeValue;\n};\n\n/** The percentage value of the price used for checkout charge. */\nexport type SellingPlanCheckoutChargePercentageValue = {\n __typename?: \"SellingPlanCheckoutChargePercentageValue\";\n /** The percentage value of the price used for checkout charge. */\n percentage: Scalars[\"Float\"][\"output\"];\n};\n\n/** The checkout charge when the full amount isn't charged at checkout. */\nexport enum SellingPlanCheckoutChargeType {\n /** The checkout charge is a percentage of the product or variant price. */\n Percentage = \"PERCENTAGE\",\n /** The checkout charge is a fixed price amount. */\n Price = \"PRICE\",\n}\n\n/** The portion of the price to be charged at checkout. */\nexport type SellingPlanCheckoutChargeValue =\n | MoneyV2\n | SellingPlanCheckoutChargePercentageValue;\n\n/**\n * An auto-generated type for paginating through multiple SellingPlans.\n *\n */\nexport type SellingPlanConnection = {\n __typename?: \"SellingPlanConnection\";\n /** A list of edges. */\n edges: Array<SellingPlanEdge>;\n /** A list of the nodes contained in SellingPlanEdge. */\n nodes: Array<SellingPlan>;\n /** Information to aid in pagination. */\n pageInfo: PageInfo;\n};\n\n/** The selling plan delivery policy. */\nexport type SellingPlanDeliveryPolicy = SellingPlanRecurringDeliveryPolicy;\n\n/**\n * An auto-generated type which holds one SellingPlan and a cursor during pagination.\n *\n */\nexport type SellingPlanEdge = {\n __typename?: \"SellingPlanEdge\";\n /** A cursor for use in pagination. */\n cursor: Scalars[\"String\"][\"output\"];\n /** The item at the end of SellingPlanEdge. */\n node: SellingPlan;\n};\n\n/** A fixed amount that's deducted from the original variant price. For example, $10.00 off. */\nexport type SellingPlanFixedAmountPriceAdjustment = {\n __typename?: \"SellingPlanFixedAmountPriceAdjustment\";\n /** The money value of the price adjustment. */\n adjustmentAmount: MoneyV2;\n};\n\n/** A fixed price adjustment for a variant that's purchased with a selling plan. */\nexport type SellingPlanFixedPriceAdjustment = {\n __typename?: \"SellingPlanFixedPriceAdjustment\";\n /** A new price of the variant when it's purchased with the selling plan. */\n price: MoneyV2;\n};\n\n/** Represents a selling method. For example, 'Subscribe and save' is a selling method where customers pay for goods or services per delivery. A selling plan group contains individual selling plans. */\nexport type SellingPlanGroup = {\n __typename?: \"SellingPlanGroup\";\n /** A display friendly name for the app that created the selling plan group. */\n appName?: Maybe<Scalars[\"String\"][\"output\"]>;\n /** The name of the selling plan group. */\n name: Scalars[\"String\"][\"output\"];\n /** Represents the selling plan options available in the drop-down list in the storefront. For example, 'Delivery every week' or 'Delivery every 2 weeks' specifies the delivery frequency options for the product. */\n options: Array<SellingPlanGroupOption>;\n /** A list of selling plans in a selling plan group. A selling plan is a representation of how products and variants can be sold and purchased. For example, an individual selling plan could be '6 weeks of prepaid granola, delivered weekly'. */\n sellingPlans: SellingPlanConnection;\n};\n\n/** Represents a selling method. For example, 'Subscribe and save' is a selling method where customers pay for goods or services per delivery. A selling plan group contains individual selling plans. */\nexport type SellingPlanGroupSellingPlansArgs = {\n after?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n before?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n first?: InputMaybe<Scalars[\"Int\"][\"input\"]>;\n last?: InputMaybe<Scalars[\"Int\"][\"input\"]>;\n reverse?: InputMaybe<Scalars[\"Boolean\"][\"input\"]>;\n};\n\n/**\n * An auto-generated type for paginating through multiple SellingPlanGroups.\n *\n */\nexport type SellingPlanGroupConnection = {\n __typename?: \"SellingPlanGroupConnection\";\n /** A list of edges. */\n edges: Array<SellingPlanGroupEdge>;\n /** A list of the nodes contained in SellingPlanGroupEdge. */\n nodes: Array<SellingPlanGroup>;\n /** Information to aid in pagination. */\n pageInfo: PageInfo;\n};\n\n/**\n * An auto-generated type which holds one SellingPlanGroup and a cursor during pagination.\n *\n */\nexport type SellingPlanGroupEdge = {\n __typename?: \"SellingPlanGroupEdge\";\n /** A cursor for use in pagination. */\n cursor: Scalars[\"String\"][\"output\"];\n /** The item at the end of SellingPlanGroupEdge. */\n node: SellingPlanGroup;\n};\n\n/**\n * Represents an option on a selling plan group that's available in the drop-down list in the storefront.\n *\n * Individual selling plans contribute their options to the associated selling plan group. For example, a selling plan group might have an option called `option1: Delivery every`. One selling plan in that group could contribute `option1: 2 weeks` with the pricing for that option, and another selling plan could contribute `option1: 4 weeks`, with different pricing.\n */\nexport type SellingPlanGroupOption = {\n __typename?: \"SellingPlanGroupOption\";\n /** The name of the option. For example, 'Delivery every'. */\n name: Scalars[\"String\"][\"output\"];\n /** The values for the options specified by the selling plans in the selling plan group. For example, '1 week', '2 weeks', '3 weeks'. */\n values: Array<Scalars[\"String\"][\"output\"]>;\n};\n\n/** Represents a valid selling plan interval. */\nexport enum SellingPlanInterval {\n /** Day interval. */\n Day = \"DAY\",\n /** Month interval. */\n Month = \"MONTH\",\n /** Week interval. */\n Week = \"WEEK\",\n /** Year interval. */\n Year = \"YEAR\",\n}\n\n/** An option provided by a Selling Plan. */\nexport type SellingPlanOption = {\n __typename?: \"SellingPlanOption\";\n /** The name of the option (ie \"Delivery every\"). */\n name?: Maybe<Scalars[\"String\"][\"output\"]>;\n /** The value of the option (ie \"Month\"). */\n value?: Maybe<Scalars[\"String\"][\"output\"]>;\n};\n\n/** A percentage amount that's deducted from the original variant price. For example, 10% off. */\nexport type SellingPlanPercentagePriceAdjustment = {\n __typename?: \"SellingPlanPercentagePriceAdjustment\";\n /** The percentage value of the price adjustment. */\n adjustmentPercentage: Scalars[\"Float\"][\"output\"];\n};\n\n/** Represents by how much the price of a variant associated with a selling plan is adjusted. Each variant can have up to two price adjustments. If a variant has multiple price adjustments, then the first price adjustment applies when the variant is initially purchased. The second price adjustment applies after a certain number of orders (specified by the `orderCount` field) are made. If a selling plan doesn't have any price adjustments, then the unadjusted price of the variant is the effective price. */\nexport type SellingPlanPriceAdjustment = {\n __typename?: \"SellingPlanPriceAdjustment\";\n /** The type of price adjustment. An adjustment value can have one of three types: percentage, amount off, or a new price. */\n adjustmentValue: SellingPlanPriceAdjustmentValue;\n /** The number of orders that the price adjustment applies to. If the price adjustment always applies, then this field is `null`. */\n orderCount?: Maybe<Scalars[\"Int\"][\"output\"]>;\n};\n\n/** Represents by how much the price of a variant associated with a selling plan is adjusted. Each variant can have up to two price adjustments. */\nexport type SellingPlanPriceAdjustmentValue =\n | SellingPlanFixedAmountPriceAdjustment\n | SellingPlanFixedPriceAdjustment\n | SellingPlanPercentagePriceAdjustment;\n\n/** The recurring billing policy for the selling plan. */\nexport type SellingPlanRecurringBillingPolicy = {\n __typename?: \"SellingPlanRecurringBillingPolicy\";\n /** The billing frequency, it can be either: day, week, month or year. */\n interval: SellingPlanInterval;\n /** The number of intervals between billings. */\n intervalCount: Scalars[\"Int\"][\"output\"];\n};\n\n/** The recurring delivery policy for the selling plan. */\nexport type SellingPlanRecurringDeliveryPolicy = {\n __typename?: \"SellingPlanRecurringDeliveryPolicy\";\n /** The delivery frequency, it can be either: day, week, month or year. */\n interval: SellingPlanInterval;\n /** The number of intervals between deliveries. */\n intervalCount: Scalars[\"Int\"][\"output\"];\n};\n\n/** Shop represents a collection of the general settings and information about the shop. */\nexport type Shop = HasMetafields &\n Node & {\n __typename?: \"Shop\";\n /** The shop's branding configuration. */\n brand?: Maybe<Brand>;\n /** A description of the shop. */\n description?: Maybe<Scalars[\"String\"][\"output\"]>;\n /** A globally-unique ID. */\n id: Scalars[\"ID\"][\"output\"];\n /** A [custom field](https://shopify.dev/docs/apps/build/custom-data), including its `namespace` and `key`, that's associated with a Shopify resource for the purposes of adding and storing additional information. */\n metafield?: Maybe<Metafield>;\n /** A list of [custom fields](/docs/apps/build/custom-data) that a merchant associates with a Shopify resource. */\n metafields: Array<Maybe<Metafield>>;\n /** A string representing the way currency is formatted when the currency isn’t specified. */\n moneyFormat: Scalars[\"String\"][\"output\"];\n /** The shop’s name. */\n name: Scalars[\"String\"][\"output\"];\n /** Settings related to payments. */\n paymentSettings: PaymentSettings;\n /** The primary domain of the shop’s Online Store. */\n primaryDomain: Domain;\n /** The shop’s privacy policy. */\n privacyPolicy?: Maybe<ShopPolicy>;\n /** The shop’s refund policy. */\n refundPolicy?: Maybe<ShopPolicy>;\n /** The shop’s shipping policy. */\n shippingPolicy?: Maybe<ShopPolicy>;\n /** Countries that the shop ships to. */\n shipsToCountries: Array<CountryCode>;\n /** The Shop Pay Installments pricing information for the shop. */\n shopPayInstallmentsPricing?: Maybe<ShopPayInstallmentsPricing>;\n /** The shop’s subscription policy. */\n subscriptionPolicy?: Maybe<ShopPolicyWithDefault>;\n /** The shop’s terms of service. */\n termsOfService?: Maybe<ShopPolicy>;\n };\n\n/** Shop represents a collection of the general settings and information about the shop. */\nexport type ShopMetafieldArgs = {\n key: Scalars[\"String\"][\"input\"];\n namespace?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n};\n\n/** Shop represents a collection of the general settings and information about the shop. */\nexport type ShopMetafieldsArgs = {\n identifiers: Array<HasMetafieldsIdentifier>;\n};\n\n/** The financing plan in Shop Pay Installments. */\nexport type ShopPayInstallmentsFinancingPlan = Node & {\n __typename?: \"ShopPayInstallmentsFinancingPlan\";\n /** A globally-unique ID. */\n id: Scalars[\"ID\"][\"output\"];\n /** The maximum price to qualify for the financing plan. */\n maxPrice: MoneyV2;\n /** The minimum price to qualify for the financing plan. */\n minPrice: MoneyV2;\n /** The terms of the financing plan. */\n terms: Array<ShopPayInstallmentsFinancingPlanTerm>;\n};\n\n/** The payment frequency for a Shop Pay Installments Financing Plan. */\nexport enum ShopPayInstallmentsFinancingPlanFrequency {\n /** Monthly payment frequency. */\n Monthly = \"MONTHLY\",\n /** Weekly payment frequency. */\n Weekly = \"WEEKLY\",\n}\n\n/** The terms of the financing plan in Shop Pay Installments. */\nexport type ShopPayInstallmentsFinancingPlanTerm = Node & {\n __typename?: \"ShopPayInstallmentsFinancingPlanTerm\";\n /** The annual percentage rate (APR) of the financing plan. */\n apr: Scalars[\"Int\"][\"output\"];\n /** The payment frequency for the financing plan. */\n frequency: ShopPayInstallmentsFinancingPlanFrequency;\n /** A globally-unique ID. */\n id: Scalars[\"ID\"][\"output\"];\n /** The number of installments for the financing plan. */\n installmentsCount?: Maybe<Count>;\n /** The type of loan for the financing plan. */\n loanType: ShopPayInstallmentsLoan;\n};\n\n/** The loan type for a Shop Pay Installments Financing Plan Term. */\nexport enum ShopPayInstallmentsLoan {\n /** An interest-bearing loan type. */\n Interest = \"INTEREST\",\n /** A split-pay loan type. */\n SplitPay = \"SPLIT_PAY\",\n /** A zero-percent loan type. */\n ZeroPercent = \"ZERO_PERCENT\",\n}\n\n/** The result for a Shop Pay Installments pricing request. */\nexport type ShopPayInstallmentsPricing = {\n __typename?: \"ShopPayInstallmentsPricing\";\n /** The financing plans available for the given price range. */\n financingPlans: Array<ShopPayInstallmentsFinancingPlan>;\n /** The maximum price to qualify for financing. */\n maxPrice: MoneyV2;\n /** The minimum price to qualify for financing. */\n minPrice: MoneyV2;\n};\n\n/** The shop pay installments pricing information for a product variant. */\nexport type ShopPayInstallmentsProductVariantPricing = Node & {\n __typename?: \"ShopPayInstallmentsProductVariantPricing\";\n /** Whether the product variant is available. */\n available: Scalars[\"Boolean\"][\"output\"];\n /** Whether the product variant is eligible for Shop Pay Installments. */\n eligible: Scalars[\"Boolean\"][\"output\"];\n /** The full price of the product variant. */\n fullPrice: MoneyV2;\n /** The ID of the product variant. */\n id: Scalars[\"ID\"][\"output\"];\n /** The number of payment terms available for the product variant. */\n installmentsCount?: Maybe<Count>;\n /** The price per term for the product variant. */\n pricePerTerm: MoneyV2;\n};\n\n/** Represents a Shop Pay payment request. */\nexport type ShopPayPaymentRequest = {\n __typename?: \"ShopPayPaymentRequest\";\n /** The delivery methods for the payment request. */\n deliveryMethods: Array<ShopPayPaymentRequestDeliveryMethod>;\n /** The discount codes for the payment request. */\n discountCodes: Array<Scalars[\"String\"][\"output\"]>;\n /** The discounts for the payment request order. */\n discounts?: Maybe<Array<ShopPayPaymentRequestDiscount>>;\n /** The line items for the payment request. */\n lineItems: Array<ShopPayPaymentRequestLineItem>;\n /** The locale for the payment request. */\n locale: Scalars[\"String\"][\"output\"];\n /** The presentment currency for the payment request. */\n presentmentCurrency: CurrencyCode;\n /** The delivery method type for the payment request. */\n selectedDeliveryMethodType: ShopPayPaymentRequestDeliveryMethodType;\n /** The shipping address for the payment request. */\n shippingAddress?: Maybe<ShopPayPaymentRequestContactField>;\n /** The shipping lines for the payment request. */\n shippingLines: Array<ShopPayPaymentRequestShippingLine>;\n /** The subtotal amount for the payment request. */\n subtotal: MoneyV2;\n /** The total amount for the payment request. */\n total: MoneyV2;\n /** The total shipping price for the payment request. */\n totalShippingPrice?: Maybe<ShopPayPaymentRequestTotalShippingPrice>;\n /** The total tax for the payment request. */\n totalTax?: Maybe<MoneyV2>;\n};\n\n/** Represents a contact field for a Shop Pay payment request. */\nexport type ShopPayPaymentRequestContactField = {\n __typename?: \"ShopPayPaymentRequestContactField\";\n /** The first address line of the contact field. */\n address1: Scalars[\"String\"][\"output\"];\n /** The second address line of the contact field. */\n address2?: Maybe<Scalars[\"String\"][\"output\"]>;\n /** The city of the contact field. */\n city: Scalars[\"String\"][\"output\"];\n /** The company name of the contact field. */\n companyName?: Maybe<Scalars[\"String\"][\"output\"]>;\n /** The country of the contact field. */\n countryCode: Scalars[\"String\"][\"output\"];\n /** The email of the contact field. */\n email?: Maybe<Scalars[\"String\"][\"output\"]>;\n /** The first name of the contact field. */\n firstName: Scalars[\"String\"][\"output\"];\n /** The first name of the contact field. */\n lastName: Scalars[\"String\"][\"output\"];\n /** The phone number of the contact field. */\n phone?: Maybe<Scalars[\"String\"][\"output\"]>;\n /** The postal code of the contact field. */\n postalCode?: Maybe<Scalars[\"String\"][\"output\"]>;\n /** The province of the contact field. */\n provinceCode?: Maybe<Scalars[\"String\"][\"output\"]>;\n};\n\n/** Represents a delivery method for a Shop Pay payment request. */\nexport type ShopPayPaymentRequestDeliveryMethod = {\n __typename?: \"ShopPayPaymentRequestDeliveryMethod\";\n /** The amount for the delivery method. */\n amount: MoneyV2;\n /** The code of the delivery method. */\n code: Scalars[\"String\"][\"output\"];\n /** The detail about when the delivery may be expected. */\n deliveryExpectationLabel?: Maybe<Scalars[\"String\"][\"output\"]>;\n /** The detail of the delivery method. */\n detail?: Maybe<Scalars[\"String\"][\"output\"]>;\n /** The label of the delivery method. */\n label: Scalars[\"String\"][\"output\"];\n /** The maximum delivery date for the delivery method. */\n maxDeliveryDate?: Maybe<Scalars[\"ISO8601DateTime\"][\"output\"]>;\n /** The minimum delivery date for the delivery method. */\n minDeliveryDate?: Maybe<Scalars[\"ISO8601DateTime\"][\"output\"]>;\n};\n\n/** The input fields to create a delivery method for a Shop Pay payment request. */\nexport type ShopPayPaymentRequestDeliveryMethodInput = {\n /** The amount for the delivery method. */\n amount?: InputMaybe<MoneyInput>;\n /** The code of the delivery method. */\n code?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n /** The detail about when the delivery may be expected. */\n deliveryExpectationLabel?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n /** The detail of the delivery method. */\n detail?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n /** The label of the delivery method. */\n label?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n /** The maximum delivery date for the delivery method. */\n maxDeliveryDate?: InputMaybe<Scalars[\"ISO8601DateTime\"][\"input\"]>;\n /** The minimum delivery date for the delivery method. */\n minDeliveryDate?: InputMaybe<Scalars[\"ISO8601DateTime\"][\"input\"]>;\n};\n\n/** Represents the delivery method type for a Shop Pay payment request. */\nexport enum ShopPayPaymentRequestDeliveryMethodType {\n /** The delivery method type is pickup. */\n Pickup = \"PICKUP\",\n /** The delivery method type is shipping. */\n Shipping = \"SHIPPING\",\n}\n\n/** Represents a discount for a Shop Pay payment request. */\nexport type ShopPayPaymentRequestDiscount = {\n __typename?: \"ShopPayPaymentRequestDiscount\";\n /** The amount of the discount. */\n amount: MoneyV2;\n /** The label of the discount. */\n label: Scalars[\"String\"][\"output\"];\n};\n\n/** The input fields to create a discount for a Shop Pay payment request. */\nexport type ShopPayPaymentRequestDiscountInput = {\n /** The amount of the discount. */\n amount?: InputMaybe<MoneyInput>;\n /** The label of the discount. */\n label?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n};\n\n/** Represents an image for a Shop Pay payment request line item. */\nexport type ShopPayPaymentRequestImage = {\n __typename?: \"ShopPayPaymentRequestImage\";\n /** The alt text of the image. */\n alt?: Maybe<Scalars[\"String\"][\"output\"]>;\n /** The source URL of the image. */\n url: Scalars[\"String\"][\"output\"];\n};\n\n/** The input fields to create an image for a Shop Pay payment request. */\nexport type ShopPayPaymentRequestImageInput = {\n /** The alt text of the image. */\n alt?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n /** The source URL of the image. */\n url: Scalars[\"String\"][\"input\"];\n};\n\n/** The input fields represent a Shop Pay payment request. */\nexport type ShopPayPaymentRequestInput = {\n /**\n * The delivery methods for the payment request.\n *\n * The input must not contain more than `250` values.\n */\n deliveryMethods?: InputMaybe<Array<ShopPayPaymentRequestDeliveryMethodInput>>;\n /**\n * The discount codes for the payment request.\n *\n * The input must not contain more than `250` values.\n */\n discountCodes?: InputMaybe<Array<Scalars[\"String\"][\"input\"]>>;\n /**\n * The discounts for the payment request order.\n *\n * The input must not contain more than `250` values.\n */\n discounts?: InputMaybe<Array<ShopPayPaymentRequestDiscountInput>>;\n /**\n * The line items for the payment request.\n *\n * The input must not contain more than `250` values.\n */\n lineItems?: InputMaybe<Array<ShopPayPaymentRequestLineItemInput>>;\n /** The locale for the payment request. */\n locale: Scalars[\"String\"][\"input\"];\n /** The encrypted payment method for the payment request. */\n paymentMethod?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n /** The presentment currency for the payment request. */\n presentmentCurrency: CurrencyCode;\n /** The delivery method type for the payment request. */\n selectedDeliveryMethodType?: InputMaybe<ShopPayPaymentRequestDeliveryMethodType>;\n /**\n * The shipping lines for the payment request.\n *\n * The input must not contain more than `250` values.\n */\n shippingLines?: InputMaybe<Array<ShopPayPaymentRequestShippingLineInput>>;\n /** The subtotal amount for the payment request. */\n subtotal: MoneyInput;\n /** The total amount for the payment request. */\n total: MoneyInput;\n /** The total shipping price for the payment request. */\n totalShippingPrice?: InputMaybe<ShopPayPaymentRequestTotalShippingPriceInput>;\n /** The total tax for the payment request. */\n totalTax?: InputMaybe<MoneyInput>;\n};\n\n/** Represents a line item for a Shop Pay payment request. */\nexport type ShopPayPaymentRequestLineItem = {\n __typename?: \"ShopPayPaymentRequestLineItem\";\n /** The final item price for the line item. */\n finalItemPrice: MoneyV2;\n /** The final line price for the line item. */\n finalLinePrice: MoneyV2;\n /** The image of the line item. */\n image?: Maybe<ShopPayPaymentRequestImage>;\n /** The item discounts for the line item. */\n itemDiscounts?: Maybe<Array<ShopPayPaymentRequestDiscount>>;\n /** The label of the line item. */\n label: Scalars[\"String\"][\"output\"];\n /** The line discounts for the line item. */\n lineDiscounts?: Maybe<Array<ShopPayPaymentRequestDiscount>>;\n /** The original item price for the line item. */\n originalItemPrice?: Maybe<MoneyV2>;\n /** The original line price for the line item. */\n originalLinePrice?: Maybe<MoneyV2>;\n /** The quantity of the line item. */\n quantity: Scalars[\"Int\"][\"output\"];\n /** Whether the line item requires shipping. */\n requiresShipping?: Maybe<Scalars[\"Boolean\"][\"output\"]>;\n /** The SKU of the line item. */\n sku?: Maybe<Scalars[\"String\"][\"output\"]>;\n};\n\n/** The input fields to create a line item for a Shop Pay payment request. */\nexport type ShopPayPaymentRequestLineItemInput = {\n /** The final item price for the line item. */\n finalItemPrice?: InputMaybe<MoneyInput>;\n /** The final line price for the line item. */\n finalLinePrice?: InputMaybe<MoneyInput>;\n /** The image of the line item. */\n image?: InputMaybe<ShopPayPaymentRequestImageInput>;\n /**\n * The item discounts for the line item.\n *\n * The input must not contain more than `250` values.\n */\n itemDiscounts?: InputMaybe<Array<ShopPayPaymentRequestDiscountInput>>;\n /** The label of the line item. */\n label?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n /**\n * The line discounts for the line item.\n *\n * The input must not contain more than `250` values.\n */\n lineDiscounts?: InputMaybe<Array<ShopPayPaymentRequestDiscountInput>>;\n /** The original item price for the line item. */\n originalItemPrice?: InputMaybe<MoneyInput>;\n /** The original line price for the line item. */\n originalLinePrice?: InputMaybe<MoneyInput>;\n /** The quantity of the line item. */\n quantity: Scalars[\"Int\"][\"input\"];\n /** Whether the line item requires shipping. */\n requiresShipping?: InputMaybe<Scalars[\"Boolean\"][\"input\"]>;\n /** The SKU of the line item. */\n sku?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n};\n\n/** Represents a receipt for a Shop Pay payment request. */\nexport type ShopPayPaymentRequestReceipt = {\n __typename?: \"ShopPayPaymentRequestReceipt\";\n /** The payment request object. */\n paymentRequest: ShopPayPaymentRequest;\n /** The processing status. */\n processingStatusType: Scalars[\"String\"][\"output\"];\n /** The token of the receipt. */\n token: Scalars[\"String\"][\"output\"];\n};\n\n/** Represents a Shop Pay payment request session. */\nexport type ShopPayPaymentRequestSession = {\n __typename?: \"ShopPayPaymentRequestSession\";\n /** The checkout URL of the Shop Pay payment request session. */\n checkoutUrl: Scalars[\"URL\"][\"output\"];\n /** The payment request associated with the Shop Pay payment request session. */\n paymentRequest: ShopPayPaymentRequest;\n /** The source identifier of the Shop Pay payment request session. */\n sourceIdentifier: Scalars[\"String\"][\"output\"];\n /** The token of the Shop Pay payment request session. */\n token: Scalars[\"String\"][\"output\"];\n};\n\n/** Return type for `shopPayPaymentRequestSessionCreate` mutation. */\nexport type ShopPayPaymentRequestSessionCreatePayload = {\n __typename?: \"ShopPayPaymentRequestSessionCreatePayload\";\n /** The new Shop Pay payment request session object. */\n shopPayPaymentRequestSession?: Maybe<ShopPayPaymentRequestSession>;\n /** Error codes for failed Shop Pay payment request session mutations. */\n userErrors: Array<UserErrorsShopPayPaymentRequestSessionUserErrors>;\n};\n\n/** Return type for `shopPayPaymentRequestSessionSubmit` mutation. */\nexport type ShopPayPaymentRequestSessionSubmitPayload = {\n __typename?: \"ShopPayPaymentRequestSessionSubmitPayload\";\n /** The checkout on which the payment was applied. */\n paymentRequestReceipt?: Maybe<ShopPayPaymentRequestReceipt>;\n /** Error codes for failed Shop Pay payment request session mutations. */\n userErrors: Array<UserErrorsShopPayPaymentRequestSessionUserErrors>;\n};\n\n/** Represents a shipping line for a Shop Pay payment request. */\nexport type ShopPayPaymentRequestShippingLine = {\n __typename?: \"ShopPayPaymentRequestShippingLine\";\n /** The amount for the shipping line. */\n amount: MoneyV2;\n /** The code of the shipping line. */\n code: Scalars[\"String\"][\"output\"];\n /** The label of the shipping line. */\n label: Scalars[\"String\"][\"output\"];\n};\n\n/** The input fields to create a shipping line for a Shop Pay payment request. */\nexport type ShopPayPaymentRequestShippingLineInput = {\n /** The amount for the shipping line. */\n amount?: InputMaybe<MoneyInput>;\n /** The code of the shipping line. */\n code?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n /** The label of the shipping line. */\n label?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n};\n\n/** Represents a shipping total for a Shop Pay payment request. */\nexport type ShopPayPaymentRequestTotalShippingPrice = {\n __typename?: \"ShopPayPaymentRequestTotalShippingPrice\";\n /** The discounts for the shipping total. */\n discounts: Array<ShopPayPaymentRequestDiscount>;\n /** The final total for the shipping total. */\n finalTotal: MoneyV2;\n /** The original total for the shipping total. */\n originalTotal?: Maybe<MoneyV2>;\n};\n\n/** The input fields to create a shipping total for a Shop Pay payment request. */\nexport type ShopPayPaymentRequestTotalShippingPriceInput = {\n /**\n * The discounts for the shipping total.\n *\n * The input must not contain more than `250` values.\n */\n discounts?: InputMaybe<Array<ShopPayPaymentRequestDiscountInput>>;\n /** The final total for the shipping total. */\n finalTotal?: InputMaybe<MoneyInput>;\n /** The original total for the shipping total. */\n originalTotal?: InputMaybe<MoneyInput>;\n};\n\n/**\n * The input fields for submitting Shop Pay payment method information for checkout.\n *\n */\nexport type ShopPayWalletContentInput = {\n /** The customer's billing address. */\n billingAddress: MailingAddressInput;\n /** Session token for transaction. */\n sessionToken: Scalars[\"String\"][\"input\"];\n};\n\n/** Policy that a merchant has configured for their store, such as their refund or privacy policy. */\nexport type ShopPolicy = Node & {\n __typename?: \"ShopPolicy\";\n /** Policy text, maximum size of 64kb. */\n body: Scalars[\"String\"][\"output\"];\n /** Policy’s handle. */\n handle: Scalars[\"String\"][\"output\"];\n /** A globally-unique ID. */\n id: Scalars[\"ID\"][\"output\"];\n /** Policy’s title. */\n title: Scalars[\"String\"][\"output\"];\n /** Public URL to the policy. */\n url: Scalars[\"URL\"][\"output\"];\n};\n\n/**\n * A policy for the store that comes with a default value, such as a subscription policy.\n * If the merchant hasn't configured a policy for their store, then the policy will return the default value.\n * Otherwise, the policy will return the merchant-configured value.\n *\n */\nexport type ShopPolicyWithDefault = {\n __typename?: \"ShopPolicyWithDefault\";\n /** The text of the policy. Maximum size: 64KB. */\n body: Scalars[\"String\"][\"output\"];\n /** The handle of the policy. */\n handle: Scalars[\"String\"][\"output\"];\n /** The unique ID of the policy. A default policy doesn't have an ID. */\n id?: Maybe<Scalars[\"ID\"][\"output\"]>;\n /** The title of the policy. */\n title: Scalars[\"String\"][\"output\"];\n /** Public URL to the policy. */\n url: Scalars[\"URL\"][\"output\"];\n};\n\n/** Contains all fields required to generate sitemaps. */\nexport type Sitemap = {\n __typename?: \"Sitemap\";\n /** The number of sitemap's pages for a given type. */\n pagesCount?: Maybe<Count>;\n /**\n * A list of sitemap's resources for a given type.\n *\n * Important Notes:\n * - The number of items per page varies from 0 to 250.\n * - Empty pages (0 items) may occur and do not necessarily indicate the end of results.\n * - Always check `hasNextPage` to determine if more pages are available.\n *\n */\n resources?: Maybe<PaginatedSitemapResources>;\n};\n\n/** Contains all fields required to generate sitemaps. */\nexport type SitemapResourcesArgs = {\n page: Scalars[\"Int\"][\"input\"];\n};\n\n/** Represents a sitemap's image. */\nexport type SitemapImage = {\n __typename?: \"SitemapImage\";\n /** Image's alt text. */\n alt?: Maybe<Scalars[\"String\"][\"output\"]>;\n /** Path to the image. */\n filepath?: Maybe<Scalars[\"String\"][\"output\"]>;\n /** The date and time when the image was updated. */\n updatedAt: Scalars[\"DateTime\"][\"output\"];\n};\n\n/** Represents a sitemap resource that is not a metaobject. */\nexport type SitemapResource = SitemapResourceInterface & {\n __typename?: \"SitemapResource\";\n /** Resource's handle. */\n handle: Scalars[\"String\"][\"output\"];\n /** Resource's image. */\n image?: Maybe<SitemapImage>;\n /** Resource's title. */\n title?: Maybe<Scalars[\"String\"][\"output\"]>;\n /** The date and time when the resource was updated. */\n updatedAt: Scalars[\"DateTime\"][\"output\"];\n};\n\n/** Represents the common fields for all sitemap resource types. */\nexport type SitemapResourceInterface = {\n /** Resource's handle. */\n handle: Scalars[\"String\"][\"output\"];\n /** The date and time when the resource was updated. */\n updatedAt: Scalars[\"DateTime\"][\"output\"];\n};\n\n/**\n * A SitemapResourceMetaobject represents a metaobject with\n * [the `renderable` capability](https://shopify.dev/docs/apps/build/custom-data/metaobjects/use-metaobject-capabilities#render-metaobjects-as-web-pages).\n *\n */\nexport type SitemapResourceMetaobject = SitemapResourceInterface & {\n __typename?: \"SitemapResourceMetaobject\";\n /** Resource's handle. */\n handle: Scalars[\"String\"][\"output\"];\n /** The URL handle for accessing pages of this metaobject type in the Online Store. */\n onlineStoreUrlHandle?: Maybe<Scalars[\"String\"][\"output\"]>;\n /** The type of the metaobject. Defines the namespace of its associated metafields. */\n type: Scalars[\"String\"][\"output\"];\n /** The date and time when the resource was updated. */\n updatedAt: Scalars[\"DateTime\"][\"output\"];\n};\n\n/** The types of resources potentially present in a sitemap. */\nexport enum SitemapType {\n /** Articles present in the sitemap. */\n Article = \"ARTICLE\",\n /** Blogs present in the sitemap. */\n Blog = \"BLOG\",\n /** Collections present in the sitemap. */\n Collection = \"COLLECTION\",\n /**\n * Metaobjects present in the sitemap. Only metaobject types with the\n * [`renderable` capability](https://shopify.dev/docs/apps/build/custom-data/metaobjects/use-metaobject-capabilities#render-metaobjects-as-web-pages)\n * are included in sitemap.\n *\n */\n Metaobject = \"METAOBJECT\",\n /** Pages present in the sitemap. */\n Page = \"PAGE\",\n /** Products present in the sitemap. */\n Product = \"PRODUCT\",\n}\n\n/**\n * The availability of a product variant at a particular location.\n * Local pick-up must be enabled in the store's shipping settings, otherwise this will return an empty result.\n *\n */\nexport type StoreAvailability = {\n __typename?: \"StoreAvailability\";\n /** Whether the product variant is in-stock at this location. */\n available: Scalars[\"Boolean\"][\"output\"];\n /** The location where this product variant is stocked at. */\n location: Location;\n /** Returns the estimated amount of time it takes for pickup to be ready (Example: Usually ready in 24 hours). */\n pickUpTime: Scalars[\"String\"][\"output\"];\n /** The quantity of the product variant in-stock at this location. */\n quantityAvailable: Scalars[\"Int\"][\"output\"];\n};\n\n/**\n * An auto-generated type for paginating through multiple StoreAvailabilities.\n *\n */\nexport type StoreAvailabilityConnection = {\n __typename?: \"StoreAvailabilityConnection\";\n /** A list of edges. */\n edges: Array<StoreAvailabilityEdge>;\n /** A list of the nodes contained in StoreAvailabilityEdge. */\n nodes: Array<StoreAvailability>;\n /** Information to aid in pagination. */\n pageInfo: PageInfo;\n};\n\n/**\n * An auto-generated type which holds one StoreAvailability and a cursor during pagination.\n *\n */\nexport type StoreAvailabilityEdge = {\n __typename?: \"StoreAvailabilityEdge\";\n /** A cursor for use in pagination. */\n cursor: Scalars[\"String\"][\"output\"];\n /** The item at the end of StoreAvailabilityEdge. */\n node: StoreAvailability;\n};\n\n/**\n * An auto-generated type for paginating through multiple Strings.\n *\n */\nexport type StringConnection = {\n __typename?: \"StringConnection\";\n /** A list of edges. */\n edges: Array<StringEdge>;\n /** A list of the nodes contained in StringEdge. */\n nodes: Array<Scalars[\"String\"][\"output\"]>;\n /** Information to aid in pagination. */\n pageInfo: PageInfo;\n};\n\n/**\n * An auto-generated type which holds one String and a cursor during pagination.\n *\n */\nexport type StringEdge = {\n __typename?: \"StringEdge\";\n /** A cursor for use in pagination. */\n cursor: Scalars[\"String\"][\"output\"];\n /** The item at the end of StringEdge. */\n node: Scalars[\"String\"][\"output\"];\n};\n\n/** An error that occurred during cart submit for completion. */\nexport type SubmissionError = {\n __typename?: \"SubmissionError\";\n /** The error code. */\n code: SubmissionErrorCode;\n /** The error message. */\n message?: Maybe<Scalars[\"String\"][\"output\"]>;\n};\n\n/** The code of the error that occurred during cart submit for completion. */\nexport enum SubmissionErrorCode {\n BuyerIdentityEmailIsInvalid = \"BUYER_IDENTITY_EMAIL_IS_INVALID\",\n BuyerIdentityEmailRequired = \"BUYER_IDENTITY_EMAIL_REQUIRED\",\n BuyerIdentityPhoneIsInvalid = \"BUYER_IDENTITY_PHONE_IS_INVALID\",\n DeliveryAddress1Invalid = \"DELIVERY_ADDRESS1_INVALID\",\n DeliveryAddress1Required = \"DELIVERY_ADDRESS1_REQUIRED\",\n DeliveryAddress1TooLong = \"DELIVERY_ADDRESS1_TOO_LONG\",\n DeliveryAddress2Invalid = \"DELIVERY_ADDRESS2_INVALID\",\n DeliveryAddress2Required = \"DELIVERY_ADDRESS2_REQUIRED\",\n DeliveryAddress2TooLong = \"DELIVERY_ADDRESS2_TOO_LONG\",\n DeliveryAddressRequired = \"DELIVERY_ADDRESS_REQUIRED\",\n DeliveryCityInvalid = \"DELIVERY_CITY_INVALID\",\n DeliveryCityRequired = \"DELIVERY_CITY_REQUIRED\",\n DeliveryCityTooLong = \"DELIVERY_CITY_TOO_LONG\",\n DeliveryCompanyInvalid = \"DELIVERY_COMPANY_INVALID\",\n DeliveryCompanyRequired = \"DELIVERY_COMPANY_REQUIRED\",\n DeliveryCompanyTooLong = \"DELIVERY_COMPANY_TOO_LONG\",\n DeliveryCountryRequired = \"DELIVERY_COUNTRY_REQUIRED\",\n DeliveryFirstNameInvalid = \"DELIVERY_FIRST_NAME_INVALID\",\n DeliveryFirstNameRequired = \"DELIVERY_FIRST_NAME_REQUIRED\",\n DeliveryFirstNameTooLong = \"DELIVERY_FIRST_NAME_TOO_LONG\",\n DeliveryInvalidPostalCodeForCountry = \"DELIVERY_INVALID_POSTAL_CODE_FOR_COUNTRY\",\n DeliveryInvalidPostalCodeForZone = \"DELIVERY_INVALID_POSTAL_CODE_FOR_ZONE\",\n DeliveryLastNameInvalid = \"DELIVERY_LAST_NAME_INVALID\",\n DeliveryLastNameRequired = \"DELIVERY_LAST_NAME_REQUIRED\",\n DeliveryLastNameTooLong = \"DELIVERY_LAST_NAME_TOO_LONG\",\n DeliveryNoDeliveryAvailable = \"DELIVERY_NO_DELIVERY_AVAILABLE\",\n DeliveryNoDeliveryAvailableForMerchandiseLine = \"DELIVERY_NO_DELIVERY_AVAILABLE_FOR_MERCHANDISE_LINE\",\n DeliveryOptionsPhoneNumberInvalid = \"DELIVERY_OPTIONS_PHONE_NUMBER_INVALID\",\n DeliveryOptionsPhoneNumberRequired = \"DELIVERY_OPTIONS_PHONE_NUMBER_REQUIRED\",\n DeliveryPhoneNumberInvalid = \"DELIVERY_PHONE_NUMBER_INVALID\",\n DeliveryPhoneNumberRequired = \"DELIVERY_PHONE_NUMBER_REQUIRED\",\n DeliveryPostalCodeInvalid = \"DELIVERY_POSTAL_CODE_INVALID\",\n DeliveryPostalCodeRequired = \"DELIVERY_POSTAL_CODE_REQUIRED\",\n DeliveryZoneNotFound = \"DELIVERY_ZONE_NOT_FOUND\",\n DeliveryZoneRequiredForCountry = \"DELIVERY_ZONE_REQUIRED_FOR_COUNTRY\",\n Error = \"ERROR\",\n MerchandiseLineLimitReached = \"MERCHANDISE_LINE_LIMIT_REACHED\",\n MerchandiseNotApplicable = \"MERCHANDISE_NOT_APPLICABLE\",\n MerchandiseNotEnoughStockAvailable = \"MERCHANDISE_NOT_ENOUGH_STOCK_AVAILABLE\",\n MerchandiseOutOfStock = \"MERCHANDISE_OUT_OF_STOCK\",\n MerchandiseProductNotPublished = \"MERCHANDISE_PRODUCT_NOT_PUBLISHED\",\n NoDeliveryGroupSelected = \"NO_DELIVERY_GROUP_SELECTED\",\n PaymentsAddress1Invalid = \"PAYMENTS_ADDRESS1_INVALID\",\n PaymentsAddress1Required = \"PAYMENTS_ADDRESS1_REQUIRED\",\n PaymentsAddress1TooLong = \"PAYMENTS_ADDRESS1_TOO_LONG\",\n PaymentsAddress2Invalid = \"PAYMENTS_ADDRESS2_INVALID\",\n PaymentsAddress2Required = \"PAYMENTS_ADDRESS2_REQUIRED\",\n PaymentsAddress2TooLong = \"PAYMENTS_ADDRESS2_TOO_LONG\",\n PaymentsBillingAddressZoneNotFound = \"PAYMENTS_BILLING_ADDRESS_ZONE_NOT_FOUND\",\n PaymentsBillingAddressZoneRequiredForCountry = \"PAYMENTS_BILLING_ADDRESS_ZONE_REQUIRED_FOR_COUNTRY\",\n PaymentsCityInvalid = \"PAYMENTS_CITY_INVALID\",\n PaymentsCityRequired = \"PAYMENTS_CITY_REQUIRED\",\n PaymentsCityTooLong = \"PAYMENTS_CITY_TOO_LONG\",\n PaymentsCompanyInvalid = \"PAYMENTS_COMPANY_INVALID\",\n PaymentsCompanyRequired = \"PAYMENTS_COMPANY_REQUIRED\",\n PaymentsCompanyTooLong = \"PAYMENTS_COMPANY_TOO_LONG\",\n PaymentsCountryRequired = \"PAYMENTS_COUNTRY_REQUIRED\",\n PaymentsCreditCardBaseExpired = \"PAYMENTS_CREDIT_CARD_BASE_EXPIRED\",\n PaymentsCreditCardBaseGatewayNotSupported = \"PAYMENTS_CREDIT_CARD_BASE_GATEWAY_NOT_SUPPORTED\",\n PaymentsCreditCardBaseInvalidStartDateOrIssueNumberForDebit = \"PAYMENTS_CREDIT_CARD_BASE_INVALID_START_DATE_OR_ISSUE_NUMBER_FOR_DEBIT\",\n PaymentsCreditCardBrandNotSupported = \"PAYMENTS_CREDIT_CARD_BRAND_NOT_SUPPORTED\",\n PaymentsCreditCardFirstNameBlank = \"PAYMENTS_CREDIT_CARD_FIRST_NAME_BLANK\",\n PaymentsCreditCardGeneric = \"PAYMENTS_CREDIT_CARD_GENERIC\",\n PaymentsCreditCardLastNameBlank = \"PAYMENTS_CREDIT_CARD_LAST_NAME_BLANK\",\n PaymentsCreditCardMonthInclusion = \"PAYMENTS_CREDIT_CARD_MONTH_INCLUSION\",\n PaymentsCreditCardNameInvalid = \"PAYMENTS_CREDIT_CARD_NAME_INVALID\",\n PaymentsCreditCardNumberInvalid = \"PAYMENTS_CREDIT_CARD_NUMBER_INVALID\",\n PaymentsCreditCardNumberInvalidFormat = \"PAYMENTS_CREDIT_CARD_NUMBER_INVALID_FORMAT\",\n PaymentsCreditCardSessionId = \"PAYMENTS_CREDIT_CARD_SESSION_ID\",\n PaymentsCreditCardVerificationValueBlank = \"PAYMENTS_CREDIT_CARD_VERIFICATION_VALUE_BLANK\",\n PaymentsCreditCardVerificationValueInvalidForCardType = \"PAYMENTS_CREDIT_CARD_VERIFICATION_VALUE_INVALID_FOR_CARD_TYPE\",\n PaymentsCreditCardYearExpired = \"PAYMENTS_CREDIT_CARD_YEAR_EXPIRED\",\n PaymentsCreditCardYearInvalidExpiryYear = \"PAYMENTS_CREDIT_CARD_YEAR_INVALID_EXPIRY_YEAR\",\n PaymentsFirstNameInvalid = \"PAYMENTS_FIRST_NAME_INVALID\",\n PaymentsFirstNameRequired = \"PAYMENTS_FIRST_NAME_REQUIRED\",\n PaymentsFirstNameTooLong = \"PAYMENTS_FIRST_NAME_TOO_LONG\",\n PaymentsInvalidPostalCodeForCountry = \"PAYMENTS_INVALID_POSTAL_CODE_FOR_COUNTRY\",\n PaymentsInvalidPostalCodeForZone = \"PAYMENTS_INVALID_POSTAL_CODE_FOR_ZONE\",\n PaymentsLastNameInvalid = \"PAYMENTS_LAST_NAME_INVALID\",\n PaymentsLastNameRequired = \"PAYMENTS_LAST_NAME_REQUIRED\",\n PaymentsLastNameTooLong = \"PAYMENTS_LAST_NAME_TOO_LONG\",\n PaymentsMethodRequired = \"PAYMENTS_METHOD_REQUIRED\",\n PaymentsMethodUnavailable = \"PAYMENTS_METHOD_UNAVAILABLE\",\n PaymentsPhoneNumberInvalid = \"PAYMENTS_PHONE_NUMBER_INVALID\",\n PaymentsPhoneNumberRequired = \"PAYMENTS_PHONE_NUMBER_REQUIRED\",\n PaymentsPostalCodeInvalid = \"PAYMENTS_POSTAL_CODE_INVALID\",\n PaymentsPostalCodeRequired = \"PAYMENTS_POSTAL_CODE_REQUIRED\",\n PaymentsShopifyPaymentsRequired = \"PAYMENTS_SHOPIFY_PAYMENTS_REQUIRED\",\n PaymentsUnacceptablePaymentAmount = \"PAYMENTS_UNACCEPTABLE_PAYMENT_AMOUNT\",\n PaymentsWalletContentMissing = \"PAYMENTS_WALLET_CONTENT_MISSING\",\n TaxesDeliveryGroupIdNotFound = \"TAXES_DELIVERY_GROUP_ID_NOT_FOUND\",\n TaxesLineIdNotFound = \"TAXES_LINE_ID_NOT_FOUND\",\n TaxesMustBeDefined = \"TAXES_MUST_BE_DEFINED\",\n}\n\n/** Cart submit for checkout completion is successful. */\nexport type SubmitAlreadyAccepted = {\n __typename?: \"SubmitAlreadyAccepted\";\n /** The ID of the cart completion attempt that will be used for polling for the result. */\n attemptId: Scalars[\"String\"][\"output\"];\n};\n\n/** Cart submit for checkout completion failed. */\nexport type SubmitFailed = {\n __typename?: \"SubmitFailed\";\n /** The URL of the checkout for the cart. */\n checkoutUrl?: Maybe<Scalars[\"URL\"][\"output\"]>;\n /** The list of errors that occurred from executing the mutation. */\n errors: Array<SubmissionError>;\n};\n\n/** Cart submit for checkout completion is already accepted. */\nexport type SubmitSuccess = {\n __typename?: \"SubmitSuccess\";\n /** The ID of the cart completion attempt that will be used for polling for the result. */\n attemptId: Scalars[\"String\"][\"output\"];\n /** The url to which the buyer should be redirected after the cart is successfully submitted. */\n redirectUrl: Scalars[\"URL\"][\"output\"];\n};\n\n/** Cart submit for checkout completion is throttled. */\nexport type SubmitThrottled = {\n __typename?: \"SubmitThrottled\";\n /**\n * UTC date time string that indicates the time after which clients should make their next\n * poll request. Any poll requests sent before this time will be ignored. Use this value to schedule the\n * next poll request.\n *\n */\n pollAfter: Scalars[\"DateTime\"][\"output\"];\n};\n\n/** Color and image for visual representation. */\nexport type Swatch = {\n __typename?: \"Swatch\";\n /** The swatch color. */\n color?: Maybe<Scalars[\"Color\"][\"output\"]>;\n /** The swatch image. */\n image?: Maybe<MediaImage>;\n};\n\n/**\n * The taxonomy category for the product.\n *\n */\nexport type TaxonomyCategory = Node & {\n __typename?: \"TaxonomyCategory\";\n /** All parent nodes of the current taxonomy category. */\n ancestors: Array<TaxonomyCategory>;\n /** A static identifier for the taxonomy category. */\n id: Scalars[\"ID\"][\"output\"];\n /** The localized name of the taxonomy category. */\n name: Scalars[\"String\"][\"output\"];\n};\n\n/**\n * A filter used to view a subset of products in a collection matching a specific taxonomy metafield value.\n *\n */\nexport type TaxonomyMetafieldFilter = {\n /** The key of the metafield to filter on. */\n key: Scalars[\"String\"][\"input\"];\n /** The namespace of the metafield to filter on. */\n namespace: Scalars[\"String\"][\"input\"];\n /** The value of the metafield. */\n value: Scalars[\"String\"][\"input\"];\n};\n\n/** Represents a resource that you can track the origin of the search traffic. */\nexport type Trackable = {\n /** URL parameters to be added to a page URL to track the origin of on-site search traffic for [analytics reporting](https://help.shopify.com/manual/reports-and-analytics/shopify-reports/report-types/default-reports/behaviour-reports). Returns a result when accessed through the [search](https://shopify.dev/docs/api/storefront/current/queries/search) or [predictiveSearch](https://shopify.dev/docs/api/storefront/current/queries/predictiveSearch) queries, otherwise returns null. */\n trackingParameters?: Maybe<Scalars[\"String\"][\"output\"]>;\n};\n\n/**\n * The measurement used to calculate a unit price for a product variant (e.g. $9.99 / 100ml).\n *\n */\nexport type UnitPriceMeasurement = {\n __typename?: \"UnitPriceMeasurement\";\n /** The type of unit of measurement for the unit price measurement. */\n measuredType?: Maybe<UnitPriceMeasurementMeasuredType>;\n /** The quantity unit for the unit price measurement. */\n quantityUnit?: Maybe<UnitPriceMeasurementMeasuredUnit>;\n /** The quantity value for the unit price measurement. */\n quantityValue: Scalars[\"Float\"][\"output\"];\n /** The reference unit for the unit price measurement. */\n referenceUnit?: Maybe<UnitPriceMeasurementMeasuredUnit>;\n /** The reference value for the unit price measurement. */\n referenceValue: Scalars[\"Int\"][\"output\"];\n};\n\n/** The accepted types of unit of measurement. */\nexport enum UnitPriceMeasurementMeasuredType {\n /** Unit of measurements representing areas. */\n Area = \"AREA\",\n /** Unit of measurements representing lengths. */\n Length = \"LENGTH\",\n /** Unit of measurements representing volumes. */\n Volume = \"VOLUME\",\n /** Unit of measurements representing weights. */\n Weight = \"WEIGHT\",\n}\n\n/** The valid units of measurement for a unit price measurement. */\nexport enum UnitPriceMeasurementMeasuredUnit {\n /** 100 centiliters equals 1 liter. */\n Cl = \"CL\",\n /** 100 centimeters equals 1 meter. */\n Cm = \"CM\",\n /** Metric system unit of weight. */\n G = \"G\",\n /** 1 kilogram equals 1000 grams. */\n Kg = \"KG\",\n /** Metric system unit of volume. */\n L = \"L\",\n /** Metric system unit of length. */\n M = \"M\",\n /** Metric system unit of area. */\n M2 = \"M2\",\n /** 1 cubic meter equals 1000 liters. */\n M3 = \"M3\",\n /** 1000 milligrams equals 1 gram. */\n Mg = \"MG\",\n /** 1000 milliliters equals 1 liter. */\n Ml = \"ML\",\n /** 1000 millimeters equals 1 meter. */\n Mm = \"MM\",\n}\n\n/** Systems of weights and measures. */\nexport enum UnitSystem {\n /** Imperial system of weights and measures. */\n ImperialSystem = \"IMPERIAL_SYSTEM\",\n /** Metric system of weights and measures. */\n MetricSystem = \"METRIC_SYSTEM\",\n}\n\n/** A redirect on the online store. */\nexport type UrlRedirect = Node & {\n __typename?: \"UrlRedirect\";\n /** The ID of the URL redirect. */\n id: Scalars[\"ID\"][\"output\"];\n /** The old path to be redirected from. When the user visits this path, they'll be redirected to the target location. */\n path: Scalars[\"String\"][\"output\"];\n /** The target location where the user will be redirected to. */\n target: Scalars[\"String\"][\"output\"];\n};\n\n/**\n * An auto-generated type for paginating through multiple UrlRedirects.\n *\n */\nexport type UrlRedirectConnection = {\n __typename?: \"UrlRedirectConnection\";\n /** A list of edges. */\n edges: Array<UrlRedirectEdge>;\n /** A list of the nodes contained in UrlRedirectEdge. */\n nodes: Array<UrlRedirect>;\n /** Information to aid in pagination. */\n pageInfo: PageInfo;\n};\n\n/**\n * An auto-generated type which holds one UrlRedirect and a cursor during pagination.\n *\n */\nexport type UrlRedirectEdge = {\n __typename?: \"UrlRedirectEdge\";\n /** A cursor for use in pagination. */\n cursor: Scalars[\"String\"][\"output\"];\n /** The item at the end of UrlRedirectEdge. */\n node: UrlRedirect;\n};\n\n/** Represents an error in the input of a mutation. */\nexport type UserError = DisplayableError & {\n __typename?: \"UserError\";\n /** The path to the input field that caused the error. */\n field?: Maybe<Array<Scalars[\"String\"][\"output\"]>>;\n /** The error message. */\n message: Scalars[\"String\"][\"output\"];\n};\n\n/** Error codes for failed Shop Pay payment request session mutations. */\nexport type UserErrorsShopPayPaymentRequestSessionUserErrors =\n DisplayableError & {\n __typename?: \"UserErrorsShopPayPaymentRequestSessionUserErrors\";\n /** The error code. */\n code?: Maybe<UserErrorsShopPayPaymentRequestSessionUserErrorsCode>;\n /** The path to the input field that caused the error. */\n field?: Maybe<Array<Scalars[\"String\"][\"output\"]>>;\n /** The error message. */\n message: Scalars[\"String\"][\"output\"];\n };\n\n/** Possible error codes that can be returned by `ShopPayPaymentRequestSessionUserErrors`. */\nexport enum UserErrorsShopPayPaymentRequestSessionUserErrorsCode {\n /** Idempotency key has already been used. */\n IdempotencyKeyAlreadyUsed = \"IDEMPOTENCY_KEY_ALREADY_USED\",\n /** Payment request input is invalid. */\n PaymentRequestInvalidInput = \"PAYMENT_REQUEST_INVALID_INPUT\",\n /** Payment request not found. */\n PaymentRequestNotFound = \"PAYMENT_REQUEST_NOT_FOUND\",\n}\n\n/** The input fields for a filter used to view a subset of products in a collection matching a specific variant option. */\nexport type VariantOptionFilter = {\n /** The name of the variant option to filter on. */\n name: Scalars[\"String\"][\"input\"];\n /** The value of the variant option to filter on. */\n value: Scalars[\"String\"][\"input\"];\n};\n\n/** Represents a Shopify hosted video. */\nexport type Video = Media &\n Node & {\n __typename?: \"Video\";\n /** A word or phrase to share the nature or contents of a media. */\n alt?: Maybe<Scalars[\"String\"][\"output\"]>;\n /** A globally-unique ID. */\n id: Scalars[\"ID\"][\"output\"];\n /** The media content type. */\n mediaContentType: MediaContentType;\n /** The presentation for a media. */\n presentation?: Maybe<MediaPresentation>;\n /** The preview image for the media. */\n previewImage?: Maybe<Image>;\n /** The sources for a video. */\n sources: Array<VideoSource>;\n };\n\n/** Represents a source for a Shopify hosted video. */\nexport type VideoSource = {\n __typename?: \"VideoSource\";\n /** The format of the video source. */\n format: Scalars[\"String\"][\"output\"];\n /** The height of the video. */\n height: Scalars[\"Int\"][\"output\"];\n /** The video MIME type. */\n mimeType: Scalars[\"String\"][\"output\"];\n /** The URL of the video. */\n url: Scalars[\"String\"][\"output\"];\n /** The width of the video. */\n width: Scalars[\"Int\"][\"output\"];\n};\n\n/** Units of measurement for weight. */\nexport enum WeightUnit {\n /** Metric system unit of mass. */\n Grams = \"GRAMS\",\n /** 1 kilogram equals 1000 grams. */\n Kilograms = \"KILOGRAMS\",\n /** Imperial system unit of mass. */\n Ounces = \"OUNCES\",\n /** 1 pound equals 16 ounces. */\n Pounds = \"POUNDS\",\n}\n\nexport type CartFragment = {\n __typename?: \"Cart\";\n id: string;\n createdAt: any;\n checkoutUrl: any;\n totalQuantity: number;\n cost: {\n __typename?: \"CartCost\";\n subtotalAmount: {\n __typename?: \"MoneyV2\";\n amount: any;\n currencyCode: CurrencyCode;\n };\n totalAmount: {\n __typename?: \"MoneyV2\";\n amount: any;\n currencyCode: CurrencyCode;\n };\n totalTaxAmount?: {\n __typename?: \"MoneyV2\";\n amount: any;\n currencyCode: CurrencyCode;\n } | null;\n };\n lines: {\n __typename?: \"BaseCartLineConnection\";\n edges: Array<{\n __typename?: \"BaseCartLineEdge\";\n node:\n | {\n __typename?: \"CartLine\";\n id: string;\n quantity: number;\n cost: {\n __typename?: \"CartLineCost\";\n totalAmount: {\n __typename?: \"MoneyV2\";\n amount: any;\n currencyCode: CurrencyCode;\n };\n };\n merchandise: {\n __typename?: \"ProductVariant\";\n id: string;\n sku?: string | null;\n title: string;\n availableForSale: boolean;\n requiresShipping: boolean;\n product: {\n __typename?: \"Product\";\n id: string;\n handle: string;\n availableForSale: boolean;\n title: string;\n productType: string;\n description: string;\n descriptionHtml: any;\n tags: Array<string>;\n updatedAt: any;\n vendor: string;\n options: Array<{\n __typename?: \"ProductOption\";\n id: string;\n name: string;\n values: Array<string>;\n }>;\n priceRange: {\n __typename?: \"ProductPriceRange\";\n maxVariantPrice: {\n __typename?: \"MoneyV2\";\n amount: any;\n currencyCode: CurrencyCode;\n };\n minVariantPrice: {\n __typename?: \"MoneyV2\";\n amount: any;\n currencyCode: CurrencyCode;\n };\n };\n variants: {\n __typename?: \"ProductVariantConnection\";\n edges: Array<{\n __typename?: \"ProductVariantEdge\";\n node: {\n __typename?: \"ProductVariant\";\n id: string;\n sku?: string | null;\n title: string;\n availableForSale: boolean;\n requiresShipping: boolean;\n selectedOptions: Array<{\n __typename?: \"SelectedOption\";\n name: string;\n value: string;\n }>;\n image?: {\n __typename?: \"Image\";\n url: any;\n altText?: string | null;\n width?: number | null;\n height?: number | null;\n } | null;\n price: {\n __typename?: \"MoneyV2\";\n amount: any;\n currencyCode: CurrencyCode;\n };\n compareAtPrice?: {\n __typename?: \"MoneyV2\";\n amount: any;\n currencyCode: CurrencyCode;\n } | null;\n };\n }>;\n };\n featuredImage?: {\n __typename?: \"Image\";\n url: any;\n altText?: string | null;\n width?: number | null;\n height?: number | null;\n } | null;\n images: {\n __typename?: \"ImageConnection\";\n edges: Array<{\n __typename?: \"ImageEdge\";\n node: {\n __typename?: \"Image\";\n url: any;\n altText?: string | null;\n width?: number | null;\n height?: number | null;\n };\n }>;\n };\n seo: {\n __typename?: \"SEO\";\n description?: string | null;\n title?: string | null;\n };\n };\n selectedOptions: Array<{\n __typename?: \"SelectedOption\";\n name: string;\n value: string;\n }>;\n image?: {\n __typename?: \"Image\";\n url: any;\n altText?: string | null;\n width?: number | null;\n height?: number | null;\n } | null;\n price: {\n __typename?: \"MoneyV2\";\n amount: any;\n currencyCode: CurrencyCode;\n };\n compareAtPrice?: {\n __typename?: \"MoneyV2\";\n amount: any;\n currencyCode: CurrencyCode;\n } | null;\n };\n }\n | {\n __typename?: \"ComponentizableCartLine\";\n id: string;\n quantity: number;\n cost: {\n __typename?: \"CartLineCost\";\n totalAmount: {\n __typename?: \"MoneyV2\";\n amount: any;\n currencyCode: CurrencyCode;\n };\n };\n merchandise: {\n __typename?: \"ProductVariant\";\n id: string;\n sku?: string | null;\n title: string;\n availableForSale: boolean;\n requiresShipping: boolean;\n product: {\n __typename?: \"Product\";\n id: string;\n handle: string;\n availableForSale: boolean;\n title: string;\n productType: string;\n description: string;\n descriptionHtml: any;\n tags: Array<string>;\n updatedAt: any;\n vendor: string;\n options: Array<{\n __typename?: \"ProductOption\";\n id: string;\n name: string;\n values: Array<string>;\n }>;\n priceRange: {\n __typename?: \"ProductPriceRange\";\n maxVariantPrice: {\n __typename?: \"MoneyV2\";\n amount: any;\n currencyCode: CurrencyCode;\n };\n minVariantPrice: {\n __typename?: \"MoneyV2\";\n amount: any;\n currencyCode: CurrencyCode;\n };\n };\n variants: {\n __typename?: \"ProductVariantConnection\";\n edges: Array<{\n __typename?: \"ProductVariantEdge\";\n node: {\n __typename?: \"ProductVariant\";\n id: string;\n sku?: string | null;\n title: string;\n availableForSale: boolean;\n requiresShipping: boolean;\n selectedOptions: Array<{\n __typename?: \"SelectedOption\";\n name: string;\n value: string;\n }>;\n image?: {\n __typename?: \"Image\";\n url: any;\n altText?: string | null;\n width?: number | null;\n height?: number | null;\n } | null;\n price: {\n __typename?: \"MoneyV2\";\n amount: any;\n currencyCode: CurrencyCode;\n };\n compareAtPrice?: {\n __typename?: \"MoneyV2\";\n amount: any;\n currencyCode: CurrencyCode;\n } | null;\n };\n }>;\n };\n featuredImage?: {\n __typename?: \"Image\";\n url: any;\n altText?: string | null;\n width?: number | null;\n height?: number | null;\n } | null;\n images: {\n __typename?: \"ImageConnection\";\n edges: Array<{\n __typename?: \"ImageEdge\";\n node: {\n __typename?: \"Image\";\n url: any;\n altText?: string | null;\n width?: number | null;\n height?: number | null;\n };\n }>;\n };\n seo: {\n __typename?: \"SEO\";\n description?: string | null;\n title?: string | null;\n };\n };\n selectedOptions: Array<{\n __typename?: \"SelectedOption\";\n name: string;\n value: string;\n }>;\n image?: {\n __typename?: \"Image\";\n url: any;\n altText?: string | null;\n width?: number | null;\n height?: number | null;\n } | null;\n price: {\n __typename?: \"MoneyV2\";\n amount: any;\n currencyCode: CurrencyCode;\n };\n compareAtPrice?: {\n __typename?: \"MoneyV2\";\n amount: any;\n currencyCode: CurrencyCode;\n } | null;\n };\n };\n }>;\n };\n};\n\nexport type CollectionFragment = {\n __typename?: \"Collection\";\n id: string;\n title: string;\n handle: string;\n image?: {\n __typename?: \"Image\";\n url: any;\n altText?: string | null;\n width?: number | null;\n height?: number | null;\n } | null;\n};\n\nexport type ImageFragment = {\n __typename?: \"Image\";\n url: any;\n altText?: string | null;\n width?: number | null;\n height?: number | null;\n};\n\nexport type ProductVariantFragment = {\n __typename?: \"ProductVariant\";\n id: string;\n sku?: string | null;\n title: string;\n availableForSale: boolean;\n requiresShipping: boolean;\n selectedOptions: Array<{\n __typename?: \"SelectedOption\";\n name: string;\n value: string;\n }>;\n image?: {\n __typename?: \"Image\";\n url: any;\n altText?: string | null;\n width?: number | null;\n height?: number | null;\n } | null;\n price: { __typename?: \"MoneyV2\"; amount: any; currencyCode: CurrencyCode };\n compareAtPrice?: {\n __typename?: \"MoneyV2\";\n amount: any;\n currencyCode: CurrencyCode;\n } | null;\n};\n\nexport type ProductFragment = {\n __typename?: \"Product\";\n id: string;\n handle: string;\n availableForSale: boolean;\n title: string;\n productType: string;\n description: string;\n descriptionHtml: any;\n tags: Array<string>;\n updatedAt: any;\n vendor: string;\n options: Array<{\n __typename?: \"ProductOption\";\n id: string;\n name: string;\n values: Array<string>;\n }>;\n priceRange: {\n __typename?: \"ProductPriceRange\";\n maxVariantPrice: {\n __typename?: \"MoneyV2\";\n amount: any;\n currencyCode: CurrencyCode;\n };\n minVariantPrice: {\n __typename?: \"MoneyV2\";\n amount: any;\n currencyCode: CurrencyCode;\n };\n };\n variants: {\n __typename?: \"ProductVariantConnection\";\n edges: Array<{\n __typename?: \"ProductVariantEdge\";\n node: {\n __typename?: \"ProductVariant\";\n id: string;\n sku?: string | null;\n title: string;\n availableForSale: boolean;\n requiresShipping: boolean;\n selectedOptions: Array<{\n __typename?: \"SelectedOption\";\n name: string;\n value: string;\n }>;\n image?: {\n __typename?: \"Image\";\n url: any;\n altText?: string | null;\n width?: number | null;\n height?: number | null;\n } | null;\n price: {\n __typename?: \"MoneyV2\";\n amount: any;\n currencyCode: CurrencyCode;\n };\n compareAtPrice?: {\n __typename?: \"MoneyV2\";\n amount: any;\n currencyCode: CurrencyCode;\n } | null;\n };\n }>;\n };\n featuredImage?: {\n __typename?: \"Image\";\n url: any;\n altText?: string | null;\n width?: number | null;\n height?: number | null;\n } | null;\n images: {\n __typename?: \"ImageConnection\";\n edges: Array<{\n __typename?: \"ImageEdge\";\n node: {\n __typename?: \"Image\";\n url: any;\n altText?: string | null;\n width?: number | null;\n height?: number | null;\n };\n }>;\n };\n seo: {\n __typename?: \"SEO\";\n description?: string | null;\n title?: string | null;\n };\n};\n\nexport type SeoFragment = {\n __typename?: \"SEO\";\n description?: string | null;\n title?: string | null;\n};\n\nexport type AddToCartMutationVariables = Exact<{\n cartId: Scalars[\"ID\"][\"input\"];\n lines: Array<CartLineInput> | CartLineInput;\n}>;\n\nexport type AddToCartMutation = {\n __typename?: \"Mutation\";\n cartLinesAdd?: {\n __typename?: \"CartLinesAddPayload\";\n cart?: {\n __typename?: \"Cart\";\n id: string;\n createdAt: any;\n checkoutUrl: any;\n totalQuantity: number;\n cost: {\n __typename?: \"CartCost\";\n subtotalAmount: {\n __typename?: \"MoneyV2\";\n amount: any;\n currencyCode: CurrencyCode;\n };\n totalAmount: {\n __typename?: \"MoneyV2\";\n amount: any;\n currencyCode: CurrencyCode;\n };\n totalTaxAmount?: {\n __typename?: \"MoneyV2\";\n amount: any;\n currencyCode: CurrencyCode;\n } | null;\n };\n lines: {\n __typename?: \"BaseCartLineConnection\";\n edges: Array<{\n __typename?: \"BaseCartLineEdge\";\n node:\n | {\n __typename?: \"CartLine\";\n id: string;\n quantity: number;\n cost: {\n __typename?: \"CartLineCost\";\n totalAmount: {\n __typename?: \"MoneyV2\";\n amount: any;\n currencyCode: CurrencyCode;\n };\n };\n merchandise: {\n __typename?: \"ProductVariant\";\n id: string;\n sku?: string | null;\n title: string;\n availableForSale: boolean;\n requiresShipping: boolean;\n product: {\n __typename?: \"Product\";\n id: string;\n handle: string;\n availableForSale: boolean;\n title: string;\n productType: string;\n description: string;\n descriptionHtml: any;\n tags: Array<string>;\n updatedAt: any;\n vendor: string;\n options: Array<{\n __typename?: \"ProductOption\";\n id: string;\n name: string;\n values: Array<string>;\n }>;\n priceRange: {\n __typename?: \"ProductPriceRange\";\n maxVariantPrice: {\n __typename?: \"MoneyV2\";\n amount: any;\n currencyCode: CurrencyCode;\n };\n minVariantPrice: {\n __typename?: \"MoneyV2\";\n amount: any;\n currencyCode: CurrencyCode;\n };\n };\n variants: {\n __typename?: \"ProductVariantConnection\";\n edges: Array<{\n __typename?: \"ProductVariantEdge\";\n node: {\n __typename?: \"ProductVariant\";\n id: string;\n sku?: string | null;\n title: string;\n availableForSale: boolean;\n requiresShipping: boolean;\n selectedOptions: Array<{\n __typename?: \"SelectedOption\";\n name: string;\n value: string;\n }>;\n image?: {\n __typename?: \"Image\";\n url: any;\n altText?: string | null;\n width?: number | null;\n height?: number | null;\n } | null;\n price: {\n __typename?: \"MoneyV2\";\n amount: any;\n currencyCode: CurrencyCode;\n };\n compareAtPrice?: {\n __typename?: \"MoneyV2\";\n amount: any;\n currencyCode: CurrencyCode;\n } | null;\n };\n }>;\n };\n featuredImage?: {\n __typename?: \"Image\";\n url: any;\n altText?: string | null;\n width?: number | null;\n height?: number | null;\n } | null;\n images: {\n __typename?: \"ImageConnection\";\n edges: Array<{\n __typename?: \"ImageEdge\";\n node: {\n __typename?: \"Image\";\n url: any;\n altText?: string | null;\n width?: number | null;\n height?: number | null;\n };\n }>;\n };\n seo: {\n __typename?: \"SEO\";\n description?: string | null;\n title?: string | null;\n };\n };\n selectedOptions: Array<{\n __typename?: \"SelectedOption\";\n name: string;\n value: string;\n }>;\n image?: {\n __typename?: \"Image\";\n url: any;\n altText?: string | null;\n width?: number | null;\n height?: number | null;\n } | null;\n price: {\n __typename?: \"MoneyV2\";\n amount: any;\n currencyCode: CurrencyCode;\n };\n compareAtPrice?: {\n __typename?: \"MoneyV2\";\n amount: any;\n currencyCode: CurrencyCode;\n } | null;\n };\n }\n | {\n __typename?: \"ComponentizableCartLine\";\n id: string;\n quantity: number;\n cost: {\n __typename?: \"CartLineCost\";\n totalAmount: {\n __typename?: \"MoneyV2\";\n amount: any;\n currencyCode: CurrencyCode;\n };\n };\n merchandise: {\n __typename?: \"ProductVariant\";\n id: string;\n sku?: string | null;\n title: string;\n availableForSale: boolean;\n requiresShipping: boolean;\n product: {\n __typename?: \"Product\";\n id: string;\n handle: string;\n availableForSale: boolean;\n title: string;\n productType: string;\n description: string;\n descriptionHtml: any;\n tags: Array<string>;\n updatedAt: any;\n vendor: string;\n options: Array<{\n __typename?: \"ProductOption\";\n id: string;\n name: string;\n values: Array<string>;\n }>;\n priceRange: {\n __typename?: \"ProductPriceRange\";\n maxVariantPrice: {\n __typename?: \"MoneyV2\";\n amount: any;\n currencyCode: CurrencyCode;\n };\n minVariantPrice: {\n __typename?: \"MoneyV2\";\n amount: any;\n currencyCode: CurrencyCode;\n };\n };\n variants: {\n __typename?: \"ProductVariantConnection\";\n edges: Array<{\n __typename?: \"ProductVariantEdge\";\n node: {\n __typename?: \"ProductVariant\";\n id: string;\n sku?: string | null;\n title: string;\n availableForSale: boolean;\n requiresShipping: boolean;\n selectedOptions: Array<{\n __typename?: \"SelectedOption\";\n name: string;\n value: string;\n }>;\n image?: {\n __typename?: \"Image\";\n url: any;\n altText?: string | null;\n width?: number | null;\n height?: number | null;\n } | null;\n price: {\n __typename?: \"MoneyV2\";\n amount: any;\n currencyCode: CurrencyCode;\n };\n compareAtPrice?: {\n __typename?: \"MoneyV2\";\n amount: any;\n currencyCode: CurrencyCode;\n } | null;\n };\n }>;\n };\n featuredImage?: {\n __typename?: \"Image\";\n url: any;\n altText?: string | null;\n width?: number | null;\n height?: number | null;\n } | null;\n images: {\n __typename?: \"ImageConnection\";\n edges: Array<{\n __typename?: \"ImageEdge\";\n node: {\n __typename?: \"Image\";\n url: any;\n altText?: string | null;\n width?: number | null;\n height?: number | null;\n };\n }>;\n };\n seo: {\n __typename?: \"SEO\";\n description?: string | null;\n title?: string | null;\n };\n };\n selectedOptions: Array<{\n __typename?: \"SelectedOption\";\n name: string;\n value: string;\n }>;\n image?: {\n __typename?: \"Image\";\n url: any;\n altText?: string | null;\n width?: number | null;\n height?: number | null;\n } | null;\n price: {\n __typename?: \"MoneyV2\";\n amount: any;\n currencyCode: CurrencyCode;\n };\n compareAtPrice?: {\n __typename?: \"MoneyV2\";\n amount: any;\n currencyCode: CurrencyCode;\n } | null;\n };\n };\n }>;\n };\n } | null;\n } | null;\n};\n\nexport type CreateCartMutationVariables = Exact<{\n lines?: InputMaybe<Array<CartLineInput> | CartLineInput>;\n}>;\n\nexport type CreateCartMutation = {\n __typename?: \"Mutation\";\n cartCreate?: {\n __typename?: \"CartCreatePayload\";\n cart?: {\n __typename?: \"Cart\";\n id: string;\n createdAt: any;\n checkoutUrl: any;\n totalQuantity: number;\n cost: {\n __typename?: \"CartCost\";\n subtotalAmount: {\n __typename?: \"MoneyV2\";\n amount: any;\n currencyCode: CurrencyCode;\n };\n totalAmount: {\n __typename?: \"MoneyV2\";\n amount: any;\n currencyCode: CurrencyCode;\n };\n totalTaxAmount?: {\n __typename?: \"MoneyV2\";\n amount: any;\n currencyCode: CurrencyCode;\n } | null;\n };\n lines: {\n __typename?: \"BaseCartLineConnection\";\n edges: Array<{\n __typename?: \"BaseCartLineEdge\";\n node:\n | {\n __typename?: \"CartLine\";\n id: string;\n quantity: number;\n cost: {\n __typename?: \"CartLineCost\";\n totalAmount: {\n __typename?: \"MoneyV2\";\n amount: any;\n currencyCode: CurrencyCode;\n };\n };\n merchandise: {\n __typename?: \"ProductVariant\";\n id: string;\n sku?: string | null;\n title: string;\n availableForSale: boolean;\n requiresShipping: boolean;\n product: {\n __typename?: \"Product\";\n id: string;\n handle: string;\n availableForSale: boolean;\n title: string;\n productType: string;\n description: string;\n descriptionHtml: any;\n tags: Array<string>;\n updatedAt: any;\n vendor: string;\n options: Array<{\n __typename?: \"ProductOption\";\n id: string;\n name: string;\n values: Array<string>;\n }>;\n priceRange: {\n __typename?: \"ProductPriceRange\";\n maxVariantPrice: {\n __typename?: \"MoneyV2\";\n amount: any;\n currencyCode: CurrencyCode;\n };\n minVariantPrice: {\n __typename?: \"MoneyV2\";\n amount: any;\n currencyCode: CurrencyCode;\n };\n };\n variants: {\n __typename?: \"ProductVariantConnection\";\n edges: Array<{\n __typename?: \"ProductVariantEdge\";\n node: {\n __typename?: \"ProductVariant\";\n id: string;\n sku?: string | null;\n title: string;\n availableForSale: boolean;\n requiresShipping: boolean;\n selectedOptions: Array<{\n __typename?: \"SelectedOption\";\n name: string;\n value: string;\n }>;\n image?: {\n __typename?: \"Image\";\n url: any;\n altText?: string | null;\n width?: number | null;\n height?: number | null;\n } | null;\n price: {\n __typename?: \"MoneyV2\";\n amount: any;\n currencyCode: CurrencyCode;\n };\n compareAtPrice?: {\n __typename?: \"MoneyV2\";\n amount: any;\n currencyCode: CurrencyCode;\n } | null;\n };\n }>;\n };\n featuredImage?: {\n __typename?: \"Image\";\n url: any;\n altText?: string | null;\n width?: number | null;\n height?: number | null;\n } | null;\n images: {\n __typename?: \"ImageConnection\";\n edges: Array<{\n __typename?: \"ImageEdge\";\n node: {\n __typename?: \"Image\";\n url: any;\n altText?: string | null;\n width?: number | null;\n height?: number | null;\n };\n }>;\n };\n seo: {\n __typename?: \"SEO\";\n description?: string | null;\n title?: string | null;\n };\n };\n selectedOptions: Array<{\n __typename?: \"SelectedOption\";\n name: string;\n value: string;\n }>;\n image?: {\n __typename?: \"Image\";\n url: any;\n altText?: string | null;\n width?: number | null;\n height?: number | null;\n } | null;\n price: {\n __typename?: \"MoneyV2\";\n amount: any;\n currencyCode: CurrencyCode;\n };\n compareAtPrice?: {\n __typename?: \"MoneyV2\";\n amount: any;\n currencyCode: CurrencyCode;\n } | null;\n };\n }\n | {\n __typename?: \"ComponentizableCartLine\";\n id: string;\n quantity: number;\n cost: {\n __typename?: \"CartLineCost\";\n totalAmount: {\n __typename?: \"MoneyV2\";\n amount: any;\n currencyCode: CurrencyCode;\n };\n };\n merchandise: {\n __typename?: \"ProductVariant\";\n id: string;\n sku?: string | null;\n title: string;\n availableForSale: boolean;\n requiresShipping: boolean;\n product: {\n __typename?: \"Product\";\n id: string;\n handle: string;\n availableForSale: boolean;\n title: string;\n productType: string;\n description: string;\n descriptionHtml: any;\n tags: Array<string>;\n updatedAt: any;\n vendor: string;\n options: Array<{\n __typename?: \"ProductOption\";\n id: string;\n name: string;\n values: Array<string>;\n }>;\n priceRange: {\n __typename?: \"ProductPriceRange\";\n maxVariantPrice: {\n __typename?: \"MoneyV2\";\n amount: any;\n currencyCode: CurrencyCode;\n };\n minVariantPrice: {\n __typename?: \"MoneyV2\";\n amount: any;\n currencyCode: CurrencyCode;\n };\n };\n variants: {\n __typename?: \"ProductVariantConnection\";\n edges: Array<{\n __typename?: \"ProductVariantEdge\";\n node: {\n __typename?: \"ProductVariant\";\n id: string;\n sku?: string | null;\n title: string;\n availableForSale: boolean;\n requiresShipping: boolean;\n selectedOptions: Array<{\n __typename?: \"SelectedOption\";\n name: string;\n value: string;\n }>;\n image?: {\n __typename?: \"Image\";\n url: any;\n altText?: string | null;\n width?: number | null;\n height?: number | null;\n } | null;\n price: {\n __typename?: \"MoneyV2\";\n amount: any;\n currencyCode: CurrencyCode;\n };\n compareAtPrice?: {\n __typename?: \"MoneyV2\";\n amount: any;\n currencyCode: CurrencyCode;\n } | null;\n };\n }>;\n };\n featuredImage?: {\n __typename?: \"Image\";\n url: any;\n altText?: string | null;\n width?: number | null;\n height?: number | null;\n } | null;\n images: {\n __typename?: \"ImageConnection\";\n edges: Array<{\n __typename?: \"ImageEdge\";\n node: {\n __typename?: \"Image\";\n url: any;\n altText?: string | null;\n width?: number | null;\n height?: number | null;\n };\n }>;\n };\n seo: {\n __typename?: \"SEO\";\n description?: string | null;\n title?: string | null;\n };\n };\n selectedOptions: Array<{\n __typename?: \"SelectedOption\";\n name: string;\n value: string;\n }>;\n image?: {\n __typename?: \"Image\";\n url: any;\n altText?: string | null;\n width?: number | null;\n height?: number | null;\n } | null;\n price: {\n __typename?: \"MoneyV2\";\n amount: any;\n currencyCode: CurrencyCode;\n };\n compareAtPrice?: {\n __typename?: \"MoneyV2\";\n amount: any;\n currencyCode: CurrencyCode;\n } | null;\n };\n };\n }>;\n };\n } | null;\n } | null;\n};\n\nexport type EditCartItemsMutationVariables = Exact<{\n cartId: Scalars[\"ID\"][\"input\"];\n lines: Array<CartLineUpdateInput> | CartLineUpdateInput;\n}>;\n\nexport type EditCartItemsMutation = {\n __typename?: \"Mutation\";\n cartLinesUpdate?: {\n __typename?: \"CartLinesUpdatePayload\";\n cart?: {\n __typename?: \"Cart\";\n id: string;\n createdAt: any;\n checkoutUrl: any;\n totalQuantity: number;\n cost: {\n __typename?: \"CartCost\";\n subtotalAmount: {\n __typename?: \"MoneyV2\";\n amount: any;\n currencyCode: CurrencyCode;\n };\n totalAmount: {\n __typename?: \"MoneyV2\";\n amount: any;\n currencyCode: CurrencyCode;\n };\n totalTaxAmount?: {\n __typename?: \"MoneyV2\";\n amount: any;\n currencyCode: CurrencyCode;\n } | null;\n };\n lines: {\n __typename?: \"BaseCartLineConnection\";\n edges: Array<{\n __typename?: \"BaseCartLineEdge\";\n node:\n | {\n __typename?: \"CartLine\";\n id: string;\n quantity: number;\n cost: {\n __typename?: \"CartLineCost\";\n totalAmount: {\n __typename?: \"MoneyV2\";\n amount: any;\n currencyCode: CurrencyCode;\n };\n };\n merchandise: {\n __typename?: \"ProductVariant\";\n id: string;\n sku?: string | null;\n title: string;\n availableForSale: boolean;\n requiresShipping: boolean;\n product: {\n __typename?: \"Product\";\n id: string;\n handle: string;\n availableForSale: boolean;\n title: string;\n productType: string;\n description: string;\n descriptionHtml: any;\n tags: Array<string>;\n updatedAt: any;\n vendor: string;\n options: Array<{\n __typename?: \"ProductOption\";\n id: string;\n name: string;\n values: Array<string>;\n }>;\n priceRange: {\n __typename?: \"ProductPriceRange\";\n maxVariantPrice: {\n __typename?: \"MoneyV2\";\n amount: any;\n currencyCode: CurrencyCode;\n };\n minVariantPrice: {\n __typename?: \"MoneyV2\";\n amount: any;\n currencyCode: CurrencyCode;\n };\n };\n variants: {\n __typename?: \"ProductVariantConnection\";\n edges: Array<{\n __typename?: \"ProductVariantEdge\";\n node: {\n __typename?: \"ProductVariant\";\n id: string;\n sku?: string | null;\n title: string;\n availableForSale: boolean;\n requiresShipping: boolean;\n selectedOptions: Array<{\n __typename?: \"SelectedOption\";\n name: string;\n value: string;\n }>;\n image?: {\n __typename?: \"Image\";\n url: any;\n altText?: string | null;\n width?: number | null;\n height?: number | null;\n } | null;\n price: {\n __typename?: \"MoneyV2\";\n amount: any;\n currencyCode: CurrencyCode;\n };\n compareAtPrice?: {\n __typename?: \"MoneyV2\";\n amount: any;\n currencyCode: CurrencyCode;\n } | null;\n };\n }>;\n };\n featuredImage?: {\n __typename?: \"Image\";\n url: any;\n altText?: string | null;\n width?: number | null;\n height?: number | null;\n } | null;\n images: {\n __typename?: \"ImageConnection\";\n edges: Array<{\n __typename?: \"ImageEdge\";\n node: {\n __typename?: \"Image\";\n url: any;\n altText?: string | null;\n width?: number | null;\n height?: number | null;\n };\n }>;\n };\n seo: {\n __typename?: \"SEO\";\n description?: string | null;\n title?: string | null;\n };\n };\n selectedOptions: Array<{\n __typename?: \"SelectedOption\";\n name: string;\n value: string;\n }>;\n image?: {\n __typename?: \"Image\";\n url: any;\n altText?: string | null;\n width?: number | null;\n height?: number | null;\n } | null;\n price: {\n __typename?: \"MoneyV2\";\n amount: any;\n currencyCode: CurrencyCode;\n };\n compareAtPrice?: {\n __typename?: \"MoneyV2\";\n amount: any;\n currencyCode: CurrencyCode;\n } | null;\n };\n }\n | {\n __typename?: \"ComponentizableCartLine\";\n id: string;\n quantity: number;\n cost: {\n __typename?: \"CartLineCost\";\n totalAmount: {\n __typename?: \"MoneyV2\";\n amount: any;\n currencyCode: CurrencyCode;\n };\n };\n merchandise: {\n __typename?: \"ProductVariant\";\n id: string;\n sku?: string | null;\n title: string;\n availableForSale: boolean;\n requiresShipping: boolean;\n product: {\n __typename?: \"Product\";\n id: string;\n handle: string;\n availableForSale: boolean;\n title: string;\n productType: string;\n description: string;\n descriptionHtml: any;\n tags: Array<string>;\n updatedAt: any;\n vendor: string;\n options: Array<{\n __typename?: \"ProductOption\";\n id: string;\n name: string;\n values: Array<string>;\n }>;\n priceRange: {\n __typename?: \"ProductPriceRange\";\n maxVariantPrice: {\n __typename?: \"MoneyV2\";\n amount: any;\n currencyCode: CurrencyCode;\n };\n minVariantPrice: {\n __typename?: \"MoneyV2\";\n amount: any;\n currencyCode: CurrencyCode;\n };\n };\n variants: {\n __typename?: \"ProductVariantConnection\";\n edges: Array<{\n __typename?: \"ProductVariantEdge\";\n node: {\n __typename?: \"ProductVariant\";\n id: string;\n sku?: string | null;\n title: string;\n availableForSale: boolean;\n requiresShipping: boolean;\n selectedOptions: Array<{\n __typename?: \"SelectedOption\";\n name: string;\n value: string;\n }>;\n image?: {\n __typename?: \"Image\";\n url: any;\n altText?: string | null;\n width?: number | null;\n height?: number | null;\n } | null;\n price: {\n __typename?: \"MoneyV2\";\n amount: any;\n currencyCode: CurrencyCode;\n };\n compareAtPrice?: {\n __typename?: \"MoneyV2\";\n amount: any;\n currencyCode: CurrencyCode;\n } | null;\n };\n }>;\n };\n featuredImage?: {\n __typename?: \"Image\";\n url: any;\n altText?: string | null;\n width?: number | null;\n height?: number | null;\n } | null;\n images: {\n __typename?: \"ImageConnection\";\n edges: Array<{\n __typename?: \"ImageEdge\";\n node: {\n __typename?: \"Image\";\n url: any;\n altText?: string | null;\n width?: number | null;\n height?: number | null;\n };\n }>;\n };\n seo: {\n __typename?: \"SEO\";\n description?: string | null;\n title?: string | null;\n };\n };\n selectedOptions: Array<{\n __typename?: \"SelectedOption\";\n name: string;\n value: string;\n }>;\n image?: {\n __typename?: \"Image\";\n url: any;\n altText?: string | null;\n width?: number | null;\n height?: number | null;\n } | null;\n price: {\n __typename?: \"MoneyV2\";\n amount: any;\n currencyCode: CurrencyCode;\n };\n compareAtPrice?: {\n __typename?: \"MoneyV2\";\n amount: any;\n currencyCode: CurrencyCode;\n } | null;\n };\n };\n }>;\n };\n } | null;\n } | null;\n};\n\nexport type RemoveFromCartMutationVariables = Exact<{\n cartId: Scalars[\"ID\"][\"input\"];\n lineIds: Array<Scalars[\"ID\"][\"input\"]> | Scalars[\"ID\"][\"input\"];\n}>;\n\nexport type RemoveFromCartMutation = {\n __typename?: \"Mutation\";\n cartLinesRemove?: {\n __typename?: \"CartLinesRemovePayload\";\n cart?: {\n __typename?: \"Cart\";\n id: string;\n createdAt: any;\n checkoutUrl: any;\n totalQuantity: number;\n cost: {\n __typename?: \"CartCost\";\n subtotalAmount: {\n __typename?: \"MoneyV2\";\n amount: any;\n currencyCode: CurrencyCode;\n };\n totalAmount: {\n __typename?: \"MoneyV2\";\n amount: any;\n currencyCode: CurrencyCode;\n };\n totalTaxAmount?: {\n __typename?: \"MoneyV2\";\n amount: any;\n currencyCode: CurrencyCode;\n } | null;\n };\n lines: {\n __typename?: \"BaseCartLineConnection\";\n edges: Array<{\n __typename?: \"BaseCartLineEdge\";\n node:\n | {\n __typename?: \"CartLine\";\n id: string;\n quantity: number;\n cost: {\n __typename?: \"CartLineCost\";\n totalAmount: {\n __typename?: \"MoneyV2\";\n amount: any;\n currencyCode: CurrencyCode;\n };\n };\n merchandise: {\n __typename?: \"ProductVariant\";\n id: string;\n sku?: string | null;\n title: string;\n availableForSale: boolean;\n requiresShipping: boolean;\n product: {\n __typename?: \"Product\";\n id: string;\n handle: string;\n availableForSale: boolean;\n title: string;\n productType: string;\n description: string;\n descriptionHtml: any;\n tags: Array<string>;\n updatedAt: any;\n vendor: string;\n options: Array<{\n __typename?: \"ProductOption\";\n id: string;\n name: string;\n values: Array<string>;\n }>;\n priceRange: {\n __typename?: \"ProductPriceRange\";\n maxVariantPrice: {\n __typename?: \"MoneyV2\";\n amount: any;\n currencyCode: CurrencyCode;\n };\n minVariantPrice: {\n __typename?: \"MoneyV2\";\n amount: any;\n currencyCode: CurrencyCode;\n };\n };\n variants: {\n __typename?: \"ProductVariantConnection\";\n edges: Array<{\n __typename?: \"ProductVariantEdge\";\n node: {\n __typename?: \"ProductVariant\";\n id: string;\n sku?: string | null;\n title: string;\n availableForSale: boolean;\n requiresShipping: boolean;\n selectedOptions: Array<{\n __typename?: \"SelectedOption\";\n name: string;\n value: string;\n }>;\n image?: {\n __typename?: \"Image\";\n url: any;\n altText?: string | null;\n width?: number | null;\n height?: number | null;\n } | null;\n price: {\n __typename?: \"MoneyV2\";\n amount: any;\n currencyCode: CurrencyCode;\n };\n compareAtPrice?: {\n __typename?: \"MoneyV2\";\n amount: any;\n currencyCode: CurrencyCode;\n } | null;\n };\n }>;\n };\n featuredImage?: {\n __typename?: \"Image\";\n url: any;\n altText?: string | null;\n width?: number | null;\n height?: number | null;\n } | null;\n images: {\n __typename?: \"ImageConnection\";\n edges: Array<{\n __typename?: \"ImageEdge\";\n node: {\n __typename?: \"Image\";\n url: any;\n altText?: string | null;\n width?: number | null;\n height?: number | null;\n };\n }>;\n };\n seo: {\n __typename?: \"SEO\";\n description?: string | null;\n title?: string | null;\n };\n };\n selectedOptions: Array<{\n __typename?: \"SelectedOption\";\n name: string;\n value: string;\n }>;\n image?: {\n __typename?: \"Image\";\n url: any;\n altText?: string | null;\n width?: number | null;\n height?: number | null;\n } | null;\n price: {\n __typename?: \"MoneyV2\";\n amount: any;\n currencyCode: CurrencyCode;\n };\n compareAtPrice?: {\n __typename?: \"MoneyV2\";\n amount: any;\n currencyCode: CurrencyCode;\n } | null;\n };\n }\n | {\n __typename?: \"ComponentizableCartLine\";\n id: string;\n quantity: number;\n cost: {\n __typename?: \"CartLineCost\";\n totalAmount: {\n __typename?: \"MoneyV2\";\n amount: any;\n currencyCode: CurrencyCode;\n };\n };\n merchandise: {\n __typename?: \"ProductVariant\";\n id: string;\n sku?: string | null;\n title: string;\n availableForSale: boolean;\n requiresShipping: boolean;\n product: {\n __typename?: \"Product\";\n id: string;\n handle: string;\n availableForSale: boolean;\n title: string;\n productType: string;\n description: string;\n descriptionHtml: any;\n tags: Array<string>;\n updatedAt: any;\n vendor: string;\n options: Array<{\n __typename?: \"ProductOption\";\n id: string;\n name: string;\n values: Array<string>;\n }>;\n priceRange: {\n __typename?: \"ProductPriceRange\";\n maxVariantPrice: {\n __typename?: \"MoneyV2\";\n amount: any;\n currencyCode: CurrencyCode;\n };\n minVariantPrice: {\n __typename?: \"MoneyV2\";\n amount: any;\n currencyCode: CurrencyCode;\n };\n };\n variants: {\n __typename?: \"ProductVariantConnection\";\n edges: Array<{\n __typename?: \"ProductVariantEdge\";\n node: {\n __typename?: \"ProductVariant\";\n id: string;\n sku?: string | null;\n title: string;\n availableForSale: boolean;\n requiresShipping: boolean;\n selectedOptions: Array<{\n __typename?: \"SelectedOption\";\n name: string;\n value: string;\n }>;\n image?: {\n __typename?: \"Image\";\n url: any;\n altText?: string | null;\n width?: number | null;\n height?: number | null;\n } | null;\n price: {\n __typename?: \"MoneyV2\";\n amount: any;\n currencyCode: CurrencyCode;\n };\n compareAtPrice?: {\n __typename?: \"MoneyV2\";\n amount: any;\n currencyCode: CurrencyCode;\n } | null;\n };\n }>;\n };\n featuredImage?: {\n __typename?: \"Image\";\n url: any;\n altText?: string | null;\n width?: number | null;\n height?: number | null;\n } | null;\n images: {\n __typename?: \"ImageConnection\";\n edges: Array<{\n __typename?: \"ImageEdge\";\n node: {\n __typename?: \"Image\";\n url: any;\n altText?: string | null;\n width?: number | null;\n height?: number | null;\n };\n }>;\n };\n seo: {\n __typename?: \"SEO\";\n description?: string | null;\n title?: string | null;\n };\n };\n selectedOptions: Array<{\n __typename?: \"SelectedOption\";\n name: string;\n value: string;\n }>;\n image?: {\n __typename?: \"Image\";\n url: any;\n altText?: string | null;\n width?: number | null;\n height?: number | null;\n } | null;\n price: {\n __typename?: \"MoneyV2\";\n amount: any;\n currencyCode: CurrencyCode;\n };\n compareAtPrice?: {\n __typename?: \"MoneyV2\";\n amount: any;\n currencyCode: CurrencyCode;\n } | null;\n };\n };\n }>;\n };\n } | null;\n } | null;\n};\n\nexport type CustomerActivateByUrlMutationVariables = Exact<{\n activationUrl: Scalars[\"URL\"][\"input\"];\n password: Scalars[\"String\"][\"input\"];\n}>;\n\nexport type CustomerActivateByUrlMutation = {\n __typename?: \"Mutation\";\n customerActivateByUrl?: {\n __typename?: \"CustomerActivateByUrlPayload\";\n customer?: { __typename?: \"Customer\"; id: string } | null;\n customerAccessToken?: {\n __typename?: \"CustomerAccessToken\";\n accessToken: string;\n expiresAt: any;\n } | null;\n customerUserErrors: Array<{\n __typename?: \"CustomerUserError\";\n code?: CustomerErrorCode | null;\n field?: Array<string> | null;\n message: string;\n }>;\n } | null;\n};\n\nexport type GetSiteCollectionsQueryVariables = Exact<{\n first: Scalars[\"Int\"][\"input\"];\n}>;\n\nexport type GetSiteCollectionsQuery = {\n __typename?: \"QueryRoot\";\n collections: {\n __typename?: \"CollectionConnection\";\n edges: Array<{\n __typename?: \"CollectionEdge\";\n node: {\n __typename?: \"Collection\";\n id: string;\n title: string;\n handle: string;\n products: {\n __typename?: \"ProductConnection\";\n edges: Array<{\n __typename?: \"ProductEdge\";\n node: { __typename?: \"Product\"; id: string };\n }>;\n };\n image?: {\n __typename?: \"Image\";\n url: any;\n altText?: string | null;\n width?: number | null;\n height?: number | null;\n } | null;\n };\n }>;\n };\n};\n\nexport type GetAllProductVendorsQueryVariables = Exact<{\n first?: InputMaybe<Scalars[\"Int\"][\"input\"]>;\n cursor?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n}>;\n\nexport type GetAllProductVendorsQuery = {\n __typename?: \"QueryRoot\";\n products: {\n __typename?: \"ProductConnection\";\n pageInfo: {\n __typename?: \"PageInfo\";\n hasNextPage: boolean;\n hasPreviousPage: boolean;\n };\n edges: Array<{\n __typename?: \"ProductEdge\";\n cursor: string;\n node: { __typename?: \"Product\"; vendor: string };\n }>;\n };\n};\n\nexport type GetAllProductsQueryVariables = Exact<{\n first?: InputMaybe<Scalars[\"Int\"][\"input\"]>;\n query?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n sortKey?: InputMaybe<ProductSortKeys>;\n reverse?: InputMaybe<Scalars[\"Boolean\"][\"input\"]>;\n}>;\n\nexport type GetAllProductsQuery = {\n __typename?: \"QueryRoot\";\n products: {\n __typename?: \"ProductConnection\";\n pageInfo: {\n __typename?: \"PageInfo\";\n hasNextPage: boolean;\n hasPreviousPage: boolean;\n };\n edges: Array<{\n __typename?: \"ProductEdge\";\n node: {\n __typename?: \"Product\";\n id: string;\n handle: string;\n availableForSale: boolean;\n title: string;\n productType: string;\n description: string;\n descriptionHtml: any;\n tags: Array<string>;\n updatedAt: any;\n vendor: string;\n options: Array<{\n __typename?: \"ProductOption\";\n id: string;\n name: string;\n values: Array<string>;\n }>;\n priceRange: {\n __typename?: \"ProductPriceRange\";\n maxVariantPrice: {\n __typename?: \"MoneyV2\";\n amount: any;\n currencyCode: CurrencyCode;\n };\n minVariantPrice: {\n __typename?: \"MoneyV2\";\n amount: any;\n currencyCode: CurrencyCode;\n };\n };\n variants: {\n __typename?: \"ProductVariantConnection\";\n edges: Array<{\n __typename?: \"ProductVariantEdge\";\n node: {\n __typename?: \"ProductVariant\";\n id: string;\n sku?: string | null;\n title: string;\n availableForSale: boolean;\n requiresShipping: boolean;\n selectedOptions: Array<{\n __typename?: \"SelectedOption\";\n name: string;\n value: string;\n }>;\n image?: {\n __typename?: \"Image\";\n url: any;\n altText?: string | null;\n width?: number | null;\n height?: number | null;\n } | null;\n price: {\n __typename?: \"MoneyV2\";\n amount: any;\n currencyCode: CurrencyCode;\n };\n compareAtPrice?: {\n __typename?: \"MoneyV2\";\n amount: any;\n currencyCode: CurrencyCode;\n } | null;\n };\n }>;\n };\n featuredImage?: {\n __typename?: \"Image\";\n url: any;\n altText?: string | null;\n width?: number | null;\n height?: number | null;\n } | null;\n images: {\n __typename?: \"ImageConnection\";\n edges: Array<{\n __typename?: \"ImageEdge\";\n node: {\n __typename?: \"Image\";\n url: any;\n altText?: string | null;\n width?: number | null;\n height?: number | null;\n };\n }>;\n };\n seo: {\n __typename?: \"SEO\";\n description?: string | null;\n title?: string | null;\n };\n };\n }>;\n };\n};\n\nexport type GetCartQueryVariables = Exact<{\n cartId: Scalars[\"ID\"][\"input\"];\n}>;\n\nexport type GetCartQuery = {\n __typename?: \"QueryRoot\";\n cart?: {\n __typename?: \"Cart\";\n id: string;\n createdAt: any;\n checkoutUrl: any;\n totalQuantity: number;\n cost: {\n __typename?: \"CartCost\";\n subtotalAmount: {\n __typename?: \"MoneyV2\";\n amount: any;\n currencyCode: CurrencyCode;\n };\n totalAmount: {\n __typename?: \"MoneyV2\";\n amount: any;\n currencyCode: CurrencyCode;\n };\n totalTaxAmount?: {\n __typename?: \"MoneyV2\";\n amount: any;\n currencyCode: CurrencyCode;\n } | null;\n };\n lines: {\n __typename?: \"BaseCartLineConnection\";\n edges: Array<{\n __typename?: \"BaseCartLineEdge\";\n node:\n | {\n __typename?: \"CartLine\";\n id: string;\n quantity: number;\n cost: {\n __typename?: \"CartLineCost\";\n totalAmount: {\n __typename?: \"MoneyV2\";\n amount: any;\n currencyCode: CurrencyCode;\n };\n };\n merchandise: {\n __typename?: \"ProductVariant\";\n id: string;\n sku?: string | null;\n title: string;\n availableForSale: boolean;\n requiresShipping: boolean;\n product: {\n __typename?: \"Product\";\n id: string;\n handle: string;\n availableForSale: boolean;\n title: string;\n productType: string;\n description: string;\n descriptionHtml: any;\n tags: Array<string>;\n updatedAt: any;\n vendor: string;\n options: Array<{\n __typename?: \"ProductOption\";\n id: string;\n name: string;\n values: Array<string>;\n }>;\n priceRange: {\n __typename?: \"ProductPriceRange\";\n maxVariantPrice: {\n __typename?: \"MoneyV2\";\n amount: any;\n currencyCode: CurrencyCode;\n };\n minVariantPrice: {\n __typename?: \"MoneyV2\";\n amount: any;\n currencyCode: CurrencyCode;\n };\n };\n variants: {\n __typename?: \"ProductVariantConnection\";\n edges: Array<{\n __typename?: \"ProductVariantEdge\";\n node: {\n __typename?: \"ProductVariant\";\n id: string;\n sku?: string | null;\n title: string;\n availableForSale: boolean;\n requiresShipping: boolean;\n selectedOptions: Array<{\n __typename?: \"SelectedOption\";\n name: string;\n value: string;\n }>;\n image?: {\n __typename?: \"Image\";\n url: any;\n altText?: string | null;\n width?: number | null;\n height?: number | null;\n } | null;\n price: {\n __typename?: \"MoneyV2\";\n amount: any;\n currencyCode: CurrencyCode;\n };\n compareAtPrice?: {\n __typename?: \"MoneyV2\";\n amount: any;\n currencyCode: CurrencyCode;\n } | null;\n };\n }>;\n };\n featuredImage?: {\n __typename?: \"Image\";\n url: any;\n altText?: string | null;\n width?: number | null;\n height?: number | null;\n } | null;\n images: {\n __typename?: \"ImageConnection\";\n edges: Array<{\n __typename?: \"ImageEdge\";\n node: {\n __typename?: \"Image\";\n url: any;\n altText?: string | null;\n width?: number | null;\n height?: number | null;\n };\n }>;\n };\n seo: {\n __typename?: \"SEO\";\n description?: string | null;\n title?: string | null;\n };\n };\n selectedOptions: Array<{\n __typename?: \"SelectedOption\";\n name: string;\n value: string;\n }>;\n image?: {\n __typename?: \"Image\";\n url: any;\n altText?: string | null;\n width?: number | null;\n height?: number | null;\n } | null;\n price: {\n __typename?: \"MoneyV2\";\n amount: any;\n currencyCode: CurrencyCode;\n };\n compareAtPrice?: {\n __typename?: \"MoneyV2\";\n amount: any;\n currencyCode: CurrencyCode;\n } | null;\n };\n }\n | {\n __typename?: \"ComponentizableCartLine\";\n id: string;\n quantity: number;\n cost: {\n __typename?: \"CartLineCost\";\n totalAmount: {\n __typename?: \"MoneyV2\";\n amount: any;\n currencyCode: CurrencyCode;\n };\n };\n merchandise: {\n __typename?: \"ProductVariant\";\n id: string;\n sku?: string | null;\n title: string;\n availableForSale: boolean;\n requiresShipping: boolean;\n product: {\n __typename?: \"Product\";\n id: string;\n handle: string;\n availableForSale: boolean;\n title: string;\n productType: string;\n description: string;\n descriptionHtml: any;\n tags: Array<string>;\n updatedAt: any;\n vendor: string;\n options: Array<{\n __typename?: \"ProductOption\";\n id: string;\n name: string;\n values: Array<string>;\n }>;\n priceRange: {\n __typename?: \"ProductPriceRange\";\n maxVariantPrice: {\n __typename?: \"MoneyV2\";\n amount: any;\n currencyCode: CurrencyCode;\n };\n minVariantPrice: {\n __typename?: \"MoneyV2\";\n amount: any;\n currencyCode: CurrencyCode;\n };\n };\n variants: {\n __typename?: \"ProductVariantConnection\";\n edges: Array<{\n __typename?: \"ProductVariantEdge\";\n node: {\n __typename?: \"ProductVariant\";\n id: string;\n sku?: string | null;\n title: string;\n availableForSale: boolean;\n requiresShipping: boolean;\n selectedOptions: Array<{\n __typename?: \"SelectedOption\";\n name: string;\n value: string;\n }>;\n image?: {\n __typename?: \"Image\";\n url: any;\n altText?: string | null;\n width?: number | null;\n height?: number | null;\n } | null;\n price: {\n __typename?: \"MoneyV2\";\n amount: any;\n currencyCode: CurrencyCode;\n };\n compareAtPrice?: {\n __typename?: \"MoneyV2\";\n amount: any;\n currencyCode: CurrencyCode;\n } | null;\n };\n }>;\n };\n featuredImage?: {\n __typename?: \"Image\";\n url: any;\n altText?: string | null;\n width?: number | null;\n height?: number | null;\n } | null;\n images: {\n __typename?: \"ImageConnection\";\n edges: Array<{\n __typename?: \"ImageEdge\";\n node: {\n __typename?: \"Image\";\n url: any;\n altText?: string | null;\n width?: number | null;\n height?: number | null;\n };\n }>;\n };\n seo: {\n __typename?: \"SEO\";\n description?: string | null;\n title?: string | null;\n };\n };\n selectedOptions: Array<{\n __typename?: \"SelectedOption\";\n name: string;\n value: string;\n }>;\n image?: {\n __typename?: \"Image\";\n url: any;\n altText?: string | null;\n width?: number | null;\n height?: number | null;\n } | null;\n price: {\n __typename?: \"MoneyV2\";\n amount: any;\n currencyCode: CurrencyCode;\n };\n compareAtPrice?: {\n __typename?: \"MoneyV2\";\n amount: any;\n currencyCode: CurrencyCode;\n } | null;\n };\n };\n }>;\n };\n } | null;\n};\n\nexport type GetProductsFromCollectionQueryVariables = Exact<{\n categoryId: Scalars[\"ID\"][\"input\"];\n first?: InputMaybe<Scalars[\"Int\"][\"input\"]>;\n sortKey?: InputMaybe<ProductCollectionSortKeys>;\n reverse?: InputMaybe<Scalars[\"Boolean\"][\"input\"]>;\n}>;\n\nexport type GetProductsFromCollectionQuery = {\n __typename?: \"QueryRoot\";\n node?:\n | { __typename?: \"AppliedGiftCard\"; id: string }\n | { __typename?: \"Article\"; id: string }\n | { __typename?: \"Blog\"; id: string }\n | { __typename?: \"Cart\"; id: string }\n | { __typename?: \"CartLine\"; id: string }\n | {\n __typename?: \"Collection\";\n id: string;\n title: string;\n handle: string;\n products: {\n __typename?: \"ProductConnection\";\n edges: Array<{\n __typename?: \"ProductEdge\";\n node: {\n __typename?: \"Product\";\n id: string;\n handle: string;\n availableForSale: boolean;\n title: string;\n productType: string;\n description: string;\n descriptionHtml: any;\n tags: Array<string>;\n updatedAt: any;\n vendor: string;\n options: Array<{\n __typename?: \"ProductOption\";\n id: string;\n name: string;\n values: Array<string>;\n }>;\n priceRange: {\n __typename?: \"ProductPriceRange\";\n maxVariantPrice: {\n __typename?: \"MoneyV2\";\n amount: any;\n currencyCode: CurrencyCode;\n };\n minVariantPrice: {\n __typename?: \"MoneyV2\";\n amount: any;\n currencyCode: CurrencyCode;\n };\n };\n variants: {\n __typename?: \"ProductVariantConnection\";\n edges: Array<{\n __typename?: \"ProductVariantEdge\";\n node: {\n __typename?: \"ProductVariant\";\n id: string;\n sku?: string | null;\n title: string;\n availableForSale: boolean;\n requiresShipping: boolean;\n selectedOptions: Array<{\n __typename?: \"SelectedOption\";\n name: string;\n value: string;\n }>;\n image?: {\n __typename?: \"Image\";\n url: any;\n altText?: string | null;\n width?: number | null;\n height?: number | null;\n } | null;\n price: {\n __typename?: \"MoneyV2\";\n amount: any;\n currencyCode: CurrencyCode;\n };\n compareAtPrice?: {\n __typename?: \"MoneyV2\";\n amount: any;\n currencyCode: CurrencyCode;\n } | null;\n };\n }>;\n };\n featuredImage?: {\n __typename?: \"Image\";\n url: any;\n altText?: string | null;\n width?: number | null;\n height?: number | null;\n } | null;\n images: {\n __typename?: \"ImageConnection\";\n edges: Array<{\n __typename?: \"ImageEdge\";\n node: {\n __typename?: \"Image\";\n url: any;\n altText?: string | null;\n width?: number | null;\n height?: number | null;\n };\n }>;\n };\n seo: {\n __typename?: \"SEO\";\n description?: string | null;\n title?: string | null;\n };\n };\n }>;\n };\n image?: {\n __typename?: \"Image\";\n url: any;\n altText?: string | null;\n width?: number | null;\n height?: number | null;\n } | null;\n }\n | { __typename?: \"Comment\"; id: string }\n | { __typename?: \"Company\"; id: string }\n | { __typename?: \"CompanyContact\"; id: string }\n | { __typename?: \"CompanyLocation\"; id: string }\n | { __typename?: \"ComponentizableCartLine\"; id: string }\n | { __typename?: \"ExternalVideo\"; id: string }\n | { __typename?: \"GenericFile\"; id: string }\n | { __typename?: \"Location\"; id: string }\n | { __typename?: \"MailingAddress\"; id: string }\n | { __typename?: \"Market\"; id: string }\n | { __typename?: \"MediaImage\"; id: string }\n | { __typename?: \"MediaPresentation\"; id: string }\n | { __typename?: \"Menu\"; id: string }\n | { __typename?: \"MenuItem\"; id: string }\n | { __typename?: \"Metafield\"; id: string }\n | { __typename?: \"Metaobject\"; id: string }\n | { __typename?: \"Model3d\"; id: string }\n | { __typename?: \"Order\"; id: string }\n | { __typename?: \"Page\"; id: string }\n | { __typename?: \"Product\"; id: string }\n | { __typename?: \"ProductOption\"; id: string }\n | { __typename?: \"ProductOptionValue\"; id: string }\n | { __typename?: \"ProductVariant\"; id: string }\n | { __typename?: \"Shop\"; id: string }\n | { __typename?: \"ShopPayInstallmentsFinancingPlan\"; id: string }\n | { __typename?: \"ShopPayInstallmentsFinancingPlanTerm\"; id: string }\n | { __typename?: \"ShopPayInstallmentsProductVariantPricing\"; id: string }\n | { __typename?: \"ShopPolicy\"; id: string }\n | { __typename?: \"TaxonomyCategory\"; id: string }\n | { __typename?: \"UrlRedirect\"; id: string }\n | { __typename?: \"Video\"; id: string }\n | null;\n};\n\nexport type GetSiteCollectionQueryVariables = Exact<{\n id?: InputMaybe<Scalars[\"ID\"][\"input\"]>;\n handle?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n first?: InputMaybe<Scalars[\"Int\"][\"input\"]>;\n}>;\n\nexport type GetSiteCollectionQuery = {\n __typename?: \"QueryRoot\";\n collection?: {\n __typename?: \"Collection\";\n id: string;\n title: string;\n handle: string;\n products: {\n __typename?: \"ProductConnection\";\n edges: Array<{\n __typename?: \"ProductEdge\";\n node: { __typename?: \"Product\"; id: string };\n }>;\n };\n image?: {\n __typename?: \"Image\";\n url: any;\n altText?: string | null;\n width?: number | null;\n height?: number | null;\n } | null;\n } | null;\n};\n\nexport type GetProductBySlugQueryVariables = Exact<{\n slug: Scalars[\"String\"][\"input\"];\n}>;\n\nexport type GetProductBySlugQuery = {\n __typename?: \"QueryRoot\";\n productByHandle?: {\n __typename?: \"Product\";\n id: string;\n handle: string;\n availableForSale: boolean;\n title: string;\n productType: string;\n description: string;\n descriptionHtml: any;\n tags: Array<string>;\n updatedAt: any;\n vendor: string;\n options: Array<{\n __typename?: \"ProductOption\";\n id: string;\n name: string;\n values: Array<string>;\n }>;\n priceRange: {\n __typename?: \"ProductPriceRange\";\n maxVariantPrice: {\n __typename?: \"MoneyV2\";\n amount: any;\n currencyCode: CurrencyCode;\n };\n minVariantPrice: {\n __typename?: \"MoneyV2\";\n amount: any;\n currencyCode: CurrencyCode;\n };\n };\n variants: {\n __typename?: \"ProductVariantConnection\";\n edges: Array<{\n __typename?: \"ProductVariantEdge\";\n node: {\n __typename?: \"ProductVariant\";\n id: string;\n sku?: string | null;\n title: string;\n availableForSale: boolean;\n requiresShipping: boolean;\n selectedOptions: Array<{\n __typename?: \"SelectedOption\";\n name: string;\n value: string;\n }>;\n image?: {\n __typename?: \"Image\";\n url: any;\n altText?: string | null;\n width?: number | null;\n height?: number | null;\n } | null;\n price: {\n __typename?: \"MoneyV2\";\n amount: any;\n currencyCode: CurrencyCode;\n };\n compareAtPrice?: {\n __typename?: \"MoneyV2\";\n amount: any;\n currencyCode: CurrencyCode;\n } | null;\n };\n }>;\n };\n featuredImage?: {\n __typename?: \"Image\";\n url: any;\n altText?: string | null;\n width?: number | null;\n height?: number | null;\n } | null;\n images: {\n __typename?: \"ImageConnection\";\n edges: Array<{\n __typename?: \"ImageEdge\";\n node: {\n __typename?: \"Image\";\n url: any;\n altText?: string | null;\n width?: number | null;\n height?: number | null;\n };\n }>;\n };\n seo: {\n __typename?: \"SEO\";\n description?: string | null;\n title?: string | null;\n };\n } | null;\n};\n\nexport type GetProductByIdQueryVariables = Exact<{\n id: Scalars[\"ID\"][\"input\"];\n}>;\n\nexport type GetProductByIdQuery = {\n __typename?: \"QueryRoot\";\n product?: {\n __typename?: \"Product\";\n id: string;\n handle: string;\n availableForSale: boolean;\n title: string;\n productType: string;\n description: string;\n descriptionHtml: any;\n tags: Array<string>;\n updatedAt: any;\n vendor: string;\n options: Array<{\n __typename?: \"ProductOption\";\n id: string;\n name: string;\n values: Array<string>;\n }>;\n priceRange: {\n __typename?: \"ProductPriceRange\";\n maxVariantPrice: {\n __typename?: \"MoneyV2\";\n amount: any;\n currencyCode: CurrencyCode;\n };\n minVariantPrice: {\n __typename?: \"MoneyV2\";\n amount: any;\n currencyCode: CurrencyCode;\n };\n };\n variants: {\n __typename?: \"ProductVariantConnection\";\n edges: Array<{\n __typename?: \"ProductVariantEdge\";\n node: {\n __typename?: \"ProductVariant\";\n id: string;\n sku?: string | null;\n title: string;\n availableForSale: boolean;\n requiresShipping: boolean;\n selectedOptions: Array<{\n __typename?: \"SelectedOption\";\n name: string;\n value: string;\n }>;\n image?: {\n __typename?: \"Image\";\n url: any;\n altText?: string | null;\n width?: number | null;\n height?: number | null;\n } | null;\n price: {\n __typename?: \"MoneyV2\";\n amount: any;\n currencyCode: CurrencyCode;\n };\n compareAtPrice?: {\n __typename?: \"MoneyV2\";\n amount: any;\n currencyCode: CurrencyCode;\n } | null;\n };\n }>;\n };\n featuredImage?: {\n __typename?: \"Image\";\n url: any;\n altText?: string | null;\n width?: number | null;\n height?: number | null;\n } | null;\n images: {\n __typename?: \"ImageConnection\";\n edges: Array<{\n __typename?: \"ImageEdge\";\n node: {\n __typename?: \"Image\";\n url: any;\n altText?: string | null;\n width?: number | null;\n height?: number | null;\n };\n }>;\n };\n seo: {\n __typename?: \"SEO\";\n description?: string | null;\n title?: string | null;\n };\n } | null;\n};\n\nexport class TypedDocumentString<TResult, TVariables>\n extends String\n implements DocumentTypeDecoration<TResult, TVariables>\n{\n __apiType?: DocumentTypeDecoration<TResult, TVariables>[\"__apiType\"];\n\n constructor(\n private value: string,\n public __meta__?: Record<string, any> | undefined\n ) {\n super(value);\n }\n\n toString(): string & DocumentTypeDecoration<TResult, TVariables> {\n return this.value;\n }\n}\nexport const ImageFragmentDoc = new TypedDocumentString(\n `\n fragment image on Image {\n url\n altText\n width\n height\n}\n `,\n { fragmentName: \"image\" }\n) as unknown as TypedDocumentString<ImageFragment, unknown>;\nexport const ProductVariantFragmentDoc = new TypedDocumentString(\n `\n fragment productVariant on ProductVariant {\n id\n sku\n title\n availableForSale\n requiresShipping\n selectedOptions {\n name\n value\n }\n image {\n ...image\n }\n price {\n amount\n currencyCode\n }\n compareAtPrice {\n amount\n currencyCode\n }\n}\n fragment image on Image {\n url\n altText\n width\n height\n}`,\n { fragmentName: \"productVariant\" }\n) as unknown as TypedDocumentString<ProductVariantFragment, unknown>;\nexport const SeoFragmentDoc = new TypedDocumentString(\n `\n fragment seo on SEO {\n description\n title\n}\n `,\n { fragmentName: \"seo\" }\n) as unknown as TypedDocumentString<SeoFragment, unknown>;\nexport const ProductFragmentDoc = new TypedDocumentString(\n `\n fragment product on Product {\n id\n handle\n availableForSale\n title\n productType\n description\n descriptionHtml\n options {\n id\n name\n values\n }\n priceRange {\n maxVariantPrice {\n amount\n currencyCode\n }\n minVariantPrice {\n amount\n currencyCode\n }\n }\n variants(first: 250) {\n edges {\n node {\n ...productVariant\n }\n }\n }\n featuredImage {\n ...image\n }\n images(first: 20) {\n edges {\n node {\n ...image\n }\n }\n }\n seo {\n ...seo\n }\n tags\n updatedAt\n vendor\n}\n fragment image on Image {\n url\n altText\n width\n height\n}\nfragment productVariant on ProductVariant {\n id\n sku\n title\n availableForSale\n requiresShipping\n selectedOptions {\n name\n value\n }\n image {\n ...image\n }\n price {\n amount\n currencyCode\n }\n compareAtPrice {\n amount\n currencyCode\n }\n}\nfragment seo on SEO {\n description\n title\n}`,\n { fragmentName: \"product\" }\n) as unknown as TypedDocumentString<ProductFragment, unknown>;\nexport const CartFragmentDoc = new TypedDocumentString(\n `\n fragment cart on Cart {\n id\n createdAt\n checkoutUrl\n cost {\n subtotalAmount {\n amount\n currencyCode\n }\n totalAmount {\n amount\n currencyCode\n }\n totalTaxAmount {\n amount\n currencyCode\n }\n }\n lines(first: 100) {\n edges {\n node {\n id\n quantity\n cost {\n totalAmount {\n amount\n currencyCode\n }\n }\n merchandise {\n ... on ProductVariant {\n ...productVariant\n product {\n ...product\n }\n }\n }\n }\n }\n }\n totalQuantity\n}\n fragment image on Image {\n url\n altText\n width\n height\n}\nfragment productVariant on ProductVariant {\n id\n sku\n title\n availableForSale\n requiresShipping\n selectedOptions {\n name\n value\n }\n image {\n ...image\n }\n price {\n amount\n currencyCode\n }\n compareAtPrice {\n amount\n currencyCode\n }\n}\nfragment product on Product {\n id\n handle\n availableForSale\n title\n productType\n description\n descriptionHtml\n options {\n id\n name\n values\n }\n priceRange {\n maxVariantPrice {\n amount\n currencyCode\n }\n minVariantPrice {\n amount\n currencyCode\n }\n }\n variants(first: 250) {\n edges {\n node {\n ...productVariant\n }\n }\n }\n featuredImage {\n ...image\n }\n images(first: 20) {\n edges {\n node {\n ...image\n }\n }\n }\n seo {\n ...seo\n }\n tags\n updatedAt\n vendor\n}\nfragment seo on SEO {\n description\n title\n}`,\n { fragmentName: \"cart\" }\n) as unknown as TypedDocumentString<CartFragment, unknown>;\nexport const CollectionFragmentDoc = new TypedDocumentString(\n `\n fragment collection on Collection {\n id\n title\n handle\n image {\n ...image\n }\n}\n fragment image on Image {\n url\n altText\n width\n height\n}`,\n { fragmentName: \"collection\" }\n) as unknown as TypedDocumentString<CollectionFragment, unknown>;\nexport const AddToCartDocument = new TypedDocumentString(`\n mutation addToCart($cartId: ID!, $lines: [CartLineInput!]!) {\n cartLinesAdd(cartId: $cartId, lines: $lines) {\n cart {\n ...cart\n }\n }\n}\n fragment cart on Cart {\n id\n createdAt\n checkoutUrl\n cost {\n subtotalAmount {\n amount\n currencyCode\n }\n totalAmount {\n amount\n currencyCode\n }\n totalTaxAmount {\n amount\n currencyCode\n }\n }\n lines(first: 100) {\n edges {\n node {\n id\n quantity\n cost {\n totalAmount {\n amount\n currencyCode\n }\n }\n merchandise {\n ... on ProductVariant {\n ...productVariant\n product {\n ...product\n }\n }\n }\n }\n }\n }\n totalQuantity\n}\nfragment image on Image {\n url\n altText\n width\n height\n}\nfragment productVariant on ProductVariant {\n id\n sku\n title\n availableForSale\n requiresShipping\n selectedOptions {\n name\n value\n }\n image {\n ...image\n }\n price {\n amount\n currencyCode\n }\n compareAtPrice {\n amount\n currencyCode\n }\n}\nfragment product on Product {\n id\n handle\n availableForSale\n title\n productType\n description\n descriptionHtml\n options {\n id\n name\n values\n }\n priceRange {\n maxVariantPrice {\n amount\n currencyCode\n }\n minVariantPrice {\n amount\n currencyCode\n }\n }\n variants(first: 250) {\n edges {\n node {\n ...productVariant\n }\n }\n }\n featuredImage {\n ...image\n }\n images(first: 20) {\n edges {\n node {\n ...image\n }\n }\n }\n seo {\n ...seo\n }\n tags\n updatedAt\n vendor\n}\nfragment seo on SEO {\n description\n title\n}`) as unknown as TypedDocumentString<\n AddToCartMutation,\n AddToCartMutationVariables\n>;\nexport const CreateCartDocument = new TypedDocumentString(`\n mutation createCart($lines: [CartLineInput!]) {\n cartCreate(input: {lines: $lines}) {\n cart {\n ...cart\n }\n }\n}\n fragment cart on Cart {\n id\n createdAt\n checkoutUrl\n cost {\n subtotalAmount {\n amount\n currencyCode\n }\n totalAmount {\n amount\n currencyCode\n }\n totalTaxAmount {\n amount\n currencyCode\n }\n }\n lines(first: 100) {\n edges {\n node {\n id\n quantity\n cost {\n totalAmount {\n amount\n currencyCode\n }\n }\n merchandise {\n ... on ProductVariant {\n ...productVariant\n product {\n ...product\n }\n }\n }\n }\n }\n }\n totalQuantity\n}\nfragment image on Image {\n url\n altText\n width\n height\n}\nfragment productVariant on ProductVariant {\n id\n sku\n title\n availableForSale\n requiresShipping\n selectedOptions {\n name\n value\n }\n image {\n ...image\n }\n price {\n amount\n currencyCode\n }\n compareAtPrice {\n amount\n currencyCode\n }\n}\nfragment product on Product {\n id\n handle\n availableForSale\n title\n productType\n description\n descriptionHtml\n options {\n id\n name\n values\n }\n priceRange {\n maxVariantPrice {\n amount\n currencyCode\n }\n minVariantPrice {\n amount\n currencyCode\n }\n }\n variants(first: 250) {\n edges {\n node {\n ...productVariant\n }\n }\n }\n featuredImage {\n ...image\n }\n images(first: 20) {\n edges {\n node {\n ...image\n }\n }\n }\n seo {\n ...seo\n }\n tags\n updatedAt\n vendor\n}\nfragment seo on SEO {\n description\n title\n}`) as unknown as TypedDocumentString<\n CreateCartMutation,\n CreateCartMutationVariables\n>;\nexport const EditCartItemsDocument = new TypedDocumentString(`\n mutation editCartItems($cartId: ID!, $lines: [CartLineUpdateInput!]!) {\n cartLinesUpdate(cartId: $cartId, lines: $lines) {\n cart {\n ...cart\n }\n }\n}\n fragment cart on Cart {\n id\n createdAt\n checkoutUrl\n cost {\n subtotalAmount {\n amount\n currencyCode\n }\n totalAmount {\n amount\n currencyCode\n }\n totalTaxAmount {\n amount\n currencyCode\n }\n }\n lines(first: 100) {\n edges {\n node {\n id\n quantity\n cost {\n totalAmount {\n amount\n currencyCode\n }\n }\n merchandise {\n ... on ProductVariant {\n ...productVariant\n product {\n ...product\n }\n }\n }\n }\n }\n }\n totalQuantity\n}\nfragment image on Image {\n url\n altText\n width\n height\n}\nfragment productVariant on ProductVariant {\n id\n sku\n title\n availableForSale\n requiresShipping\n selectedOptions {\n name\n value\n }\n image {\n ...image\n }\n price {\n amount\n currencyCode\n }\n compareAtPrice {\n amount\n currencyCode\n }\n}\nfragment product on Product {\n id\n handle\n availableForSale\n title\n productType\n description\n descriptionHtml\n options {\n id\n name\n values\n }\n priceRange {\n maxVariantPrice {\n amount\n currencyCode\n }\n minVariantPrice {\n amount\n currencyCode\n }\n }\n variants(first: 250) {\n edges {\n node {\n ...productVariant\n }\n }\n }\n featuredImage {\n ...image\n }\n images(first: 20) {\n edges {\n node {\n ...image\n }\n }\n }\n seo {\n ...seo\n }\n tags\n updatedAt\n vendor\n}\nfragment seo on SEO {\n description\n title\n}`) as unknown as TypedDocumentString<\n EditCartItemsMutation,\n EditCartItemsMutationVariables\n>;\nexport const RemoveFromCartDocument = new TypedDocumentString(`\n mutation removeFromCart($cartId: ID!, $lineIds: [ID!]!) {\n cartLinesRemove(cartId: $cartId, lineIds: $lineIds) {\n cart {\n ...cart\n }\n }\n}\n fragment cart on Cart {\n id\n createdAt\n checkoutUrl\n cost {\n subtotalAmount {\n amount\n currencyCode\n }\n totalAmount {\n amount\n currencyCode\n }\n totalTaxAmount {\n amount\n currencyCode\n }\n }\n lines(first: 100) {\n edges {\n node {\n id\n quantity\n cost {\n totalAmount {\n amount\n currencyCode\n }\n }\n merchandise {\n ... on ProductVariant {\n ...productVariant\n product {\n ...product\n }\n }\n }\n }\n }\n }\n totalQuantity\n}\nfragment image on Image {\n url\n altText\n width\n height\n}\nfragment productVariant on ProductVariant {\n id\n sku\n title\n availableForSale\n requiresShipping\n selectedOptions {\n name\n value\n }\n image {\n ...image\n }\n price {\n amount\n currencyCode\n }\n compareAtPrice {\n amount\n currencyCode\n }\n}\nfragment product on Product {\n id\n handle\n availableForSale\n title\n productType\n description\n descriptionHtml\n options {\n id\n name\n values\n }\n priceRange {\n maxVariantPrice {\n amount\n currencyCode\n }\n minVariantPrice {\n amount\n currencyCode\n }\n }\n variants(first: 250) {\n edges {\n node {\n ...productVariant\n }\n }\n }\n featuredImage {\n ...image\n }\n images(first: 20) {\n edges {\n node {\n ...image\n }\n }\n }\n seo {\n ...seo\n }\n tags\n updatedAt\n vendor\n}\nfragment seo on SEO {\n description\n title\n}`) as unknown as TypedDocumentString<\n RemoveFromCartMutation,\n RemoveFromCartMutationVariables\n>;\nexport const CustomerActivateByUrlDocument = new TypedDocumentString(`\n mutation customerActivateByUrl($activationUrl: URL!, $password: String!) {\n customerActivateByUrl(activationUrl: $activationUrl, password: $password) {\n customer {\n id\n }\n customerAccessToken {\n accessToken\n expiresAt\n }\n customerUserErrors {\n code\n field\n message\n }\n }\n}\n `) as unknown as TypedDocumentString<\n CustomerActivateByUrlMutation,\n CustomerActivateByUrlMutationVariables\n>;\nexport const GetSiteCollectionsDocument = new TypedDocumentString(`\n query getSiteCollections($first: Int!) {\n collections(first: $first) {\n edges {\n node {\n ...collection\n products(first: $first) {\n edges {\n node {\n id\n }\n }\n }\n }\n }\n }\n}\n fragment collection on Collection {\n id\n title\n handle\n image {\n ...image\n }\n}\nfragment image on Image {\n url\n altText\n width\n height\n}`) as unknown as TypedDocumentString<\n GetSiteCollectionsQuery,\n GetSiteCollectionsQueryVariables\n>;\nexport const GetAllProductVendorsDocument = new TypedDocumentString(`\n query getAllProductVendors($first: Int = 250, $cursor: String) {\n products(first: $first, after: $cursor) {\n pageInfo {\n hasNextPage\n hasPreviousPage\n }\n edges {\n node {\n vendor\n }\n cursor\n }\n }\n}\n `) as unknown as TypedDocumentString<\n GetAllProductVendorsQuery,\n GetAllProductVendorsQueryVariables\n>;\nexport const GetAllProductsDocument = new TypedDocumentString(`\n query getAllProducts($first: Int = 250, $query: String = \"\", $sortKey: ProductSortKeys = RELEVANCE, $reverse: Boolean = false) {\n products(first: $first, sortKey: $sortKey, reverse: $reverse, query: $query) {\n pageInfo {\n hasNextPage\n hasPreviousPage\n }\n edges {\n node {\n ...product\n }\n }\n }\n}\n fragment image on Image {\n url\n altText\n width\n height\n}\nfragment productVariant on ProductVariant {\n id\n sku\n title\n availableForSale\n requiresShipping\n selectedOptions {\n name\n value\n }\n image {\n ...image\n }\n price {\n amount\n currencyCode\n }\n compareAtPrice {\n amount\n currencyCode\n }\n}\nfragment product on Product {\n id\n handle\n availableForSale\n title\n productType\n description\n descriptionHtml\n options {\n id\n name\n values\n }\n priceRange {\n maxVariantPrice {\n amount\n currencyCode\n }\n minVariantPrice {\n amount\n currencyCode\n }\n }\n variants(first: 250) {\n edges {\n node {\n ...productVariant\n }\n }\n }\n featuredImage {\n ...image\n }\n images(first: 20) {\n edges {\n node {\n ...image\n }\n }\n }\n seo {\n ...seo\n }\n tags\n updatedAt\n vendor\n}\nfragment seo on SEO {\n description\n title\n}`) as unknown as TypedDocumentString<\n GetAllProductsQuery,\n GetAllProductsQueryVariables\n>;\nexport const GetCartDocument = new TypedDocumentString(`\n query getCart($cartId: ID!) {\n cart(id: $cartId) {\n ...cart\n }\n}\n fragment cart on Cart {\n id\n createdAt\n checkoutUrl\n cost {\n subtotalAmount {\n amount\n currencyCode\n }\n totalAmount {\n amount\n currencyCode\n }\n totalTaxAmount {\n amount\n currencyCode\n }\n }\n lines(first: 100) {\n edges {\n node {\n id\n quantity\n cost {\n totalAmount {\n amount\n currencyCode\n }\n }\n merchandise {\n ... on ProductVariant {\n ...productVariant\n product {\n ...product\n }\n }\n }\n }\n }\n }\n totalQuantity\n}\nfragment image on Image {\n url\n altText\n width\n height\n}\nfragment productVariant on ProductVariant {\n id\n sku\n title\n availableForSale\n requiresShipping\n selectedOptions {\n name\n value\n }\n image {\n ...image\n }\n price {\n amount\n currencyCode\n }\n compareAtPrice {\n amount\n currencyCode\n }\n}\nfragment product on Product {\n id\n handle\n availableForSale\n title\n productType\n description\n descriptionHtml\n options {\n id\n name\n values\n }\n priceRange {\n maxVariantPrice {\n amount\n currencyCode\n }\n minVariantPrice {\n amount\n currencyCode\n }\n }\n variants(first: 250) {\n edges {\n node {\n ...productVariant\n }\n }\n }\n featuredImage {\n ...image\n }\n images(first: 20) {\n edges {\n node {\n ...image\n }\n }\n }\n seo {\n ...seo\n }\n tags\n updatedAt\n vendor\n}\nfragment seo on SEO {\n description\n title\n}`) as unknown as TypedDocumentString<GetCartQuery, GetCartQueryVariables>;\nexport const GetProductsFromCollectionDocument = new TypedDocumentString(`\n query getProductsFromCollection($categoryId: ID!, $first: Int = 250, $sortKey: ProductCollectionSortKeys = RELEVANCE, $reverse: Boolean = false) {\n node(id: $categoryId) {\n id\n ... on Collection {\n ...collection\n products(first: $first, sortKey: $sortKey, reverse: $reverse) {\n edges {\n node {\n ...product\n }\n }\n }\n }\n }\n}\n fragment collection on Collection {\n id\n title\n handle\n image {\n ...image\n }\n}\nfragment image on Image {\n url\n altText\n width\n height\n}\nfragment productVariant on ProductVariant {\n id\n sku\n title\n availableForSale\n requiresShipping\n selectedOptions {\n name\n value\n }\n image {\n ...image\n }\n price {\n amount\n currencyCode\n }\n compareAtPrice {\n amount\n currencyCode\n }\n}\nfragment product on Product {\n id\n handle\n availableForSale\n title\n productType\n description\n descriptionHtml\n options {\n id\n name\n values\n }\n priceRange {\n maxVariantPrice {\n amount\n currencyCode\n }\n minVariantPrice {\n amount\n currencyCode\n }\n }\n variants(first: 250) {\n edges {\n node {\n ...productVariant\n }\n }\n }\n featuredImage {\n ...image\n }\n images(first: 20) {\n edges {\n node {\n ...image\n }\n }\n }\n seo {\n ...seo\n }\n tags\n updatedAt\n vendor\n}\nfragment seo on SEO {\n description\n title\n}`) as unknown as TypedDocumentString<\n GetProductsFromCollectionQuery,\n GetProductsFromCollectionQueryVariables\n>;\nexport const GetSiteCollectionDocument = new TypedDocumentString(`\n query getSiteCollection($id: ID, $handle: String, $first: Int = 1) {\n collection(id: $id, handle: $handle) {\n ...collection\n products(first: $first) {\n edges {\n node {\n id\n }\n }\n }\n }\n}\n fragment collection on Collection {\n id\n title\n handle\n image {\n ...image\n }\n}\nfragment image on Image {\n url\n altText\n width\n height\n}`) as unknown as TypedDocumentString<\n GetSiteCollectionQuery,\n GetSiteCollectionQueryVariables\n>;\nexport const GetProductBySlugDocument = new TypedDocumentString(`\n query getProductBySlug($slug: String!) {\n productByHandle(handle: $slug) {\n ...product\n }\n}\n fragment image on Image {\n url\n altText\n width\n height\n}\nfragment productVariant on ProductVariant {\n id\n sku\n title\n availableForSale\n requiresShipping\n selectedOptions {\n name\n value\n }\n image {\n ...image\n }\n price {\n amount\n currencyCode\n }\n compareAtPrice {\n amount\n currencyCode\n }\n}\nfragment product on Product {\n id\n handle\n availableForSale\n title\n productType\n description\n descriptionHtml\n options {\n id\n name\n values\n }\n priceRange {\n maxVariantPrice {\n amount\n currencyCode\n }\n minVariantPrice {\n amount\n currencyCode\n }\n }\n variants(first: 250) {\n edges {\n node {\n ...productVariant\n }\n }\n }\n featuredImage {\n ...image\n }\n images(first: 20) {\n edges {\n node {\n ...image\n }\n }\n }\n seo {\n ...seo\n }\n tags\n updatedAt\n vendor\n}\nfragment seo on SEO {\n description\n title\n}`) as unknown as TypedDocumentString<\n GetProductBySlugQuery,\n GetProductBySlugQueryVariables\n>;\nexport const GetProductByIdDocument = new TypedDocumentString(`\n query getProductById($id: ID!) {\n product(id: $id) {\n ...product\n }\n}\n fragment image on Image {\n url\n altText\n width\n height\n}\nfragment productVariant on ProductVariant {\n id\n sku\n title\n availableForSale\n requiresShipping\n selectedOptions {\n name\n value\n }\n image {\n ...image\n }\n price {\n amount\n currencyCode\n }\n compareAtPrice {\n amount\n currencyCode\n }\n}\nfragment product on Product {\n id\n handle\n availableForSale\n title\n productType\n description\n descriptionHtml\n options {\n id\n name\n values\n }\n priceRange {\n maxVariantPrice {\n amount\n currencyCode\n }\n minVariantPrice {\n amount\n currencyCode\n }\n }\n variants(first: 250) {\n edges {\n node {\n ...productVariant\n }\n }\n }\n featuredImage {\n ...image\n }\n images(first: 20) {\n edges {\n node {\n ...image\n }\n }\n }\n seo {\n ...seo\n }\n tags\n updatedAt\n vendor\n}\nfragment seo on SEO {\n description\n title\n}`) as unknown as TypedDocumentString<\n GetProductByIdQuery,\n GetProductByIdQueryVariables\n>;\n","/* eslint-disable */\nimport * as types from \"./graphql\";\n\n/**\n * Map of all GraphQL operations in the project.\n *\n * This map has several performance disadvantages:\n * 1. It is not tree-shakeable, so it will include all operations in the project.\n * 2. It is not minifiable, so the string of a GraphQL query will be multiple times inside the bundle.\n * 3. It does not support dead code elimination, so it will add unused operations.\n *\n * Therefore it is highly recommended to use the babel or swc plugin for production.\n * Learn more about it here: https://the-guild.dev/graphql/codegen/plugins/presets/preset-client#reducing-bundle-size\n */\nconst documents = {\n \"\\n fragment cart on Cart {\\n id\\n createdAt\\n checkoutUrl\\n cost {\\n subtotalAmount {\\n amount\\n currencyCode\\n }\\n totalAmount {\\n amount\\n currencyCode\\n }\\n totalTaxAmount {\\n amount\\n currencyCode\\n }\\n }\\n lines(first: 100) {\\n edges {\\n node {\\n id\\n quantity\\n cost {\\n totalAmount {\\n amount\\n currencyCode\\n }\\n }\\n merchandise {\\n ... on ProductVariant {\\n ...productVariant\\n product {\\n ...product\\n }\\n }\\n }\\n }\\n }\\n }\\n totalQuantity\\n }\\n\":\n types.CartFragmentDoc,\n \"\\n fragment collection on Collection {\\n id\\n title\\n handle\\n image {\\n ...image\\n }\\n }\\n\":\n types.CollectionFragmentDoc,\n \"\\n fragment image on Image {\\n url\\n altText\\n width\\n height\\n }\\n\":\n types.ImageFragmentDoc,\n \"\\n fragment productVariant on ProductVariant {\\n id\\n sku\\n title\\n availableForSale\\n requiresShipping\\n selectedOptions {\\n name\\n value\\n }\\n image {\\n ...image\\n }\\n price {\\n amount\\n currencyCode\\n }\\n compareAtPrice {\\n amount\\n currencyCode\\n }\\n }\\n\":\n types.ProductVariantFragmentDoc,\n \"\\n fragment product on Product {\\n id\\n handle\\n availableForSale\\n title\\n productType\\n description\\n descriptionHtml\\n options {\\n id\\n name\\n values\\n }\\n priceRange {\\n maxVariantPrice {\\n amount\\n currencyCode\\n }\\n minVariantPrice {\\n amount\\n currencyCode\\n }\\n }\\n variants(first: 250) {\\n edges {\\n node {\\n ...productVariant\\n }\\n }\\n }\\n featuredImage {\\n ...image\\n }\\n images(first: 20) {\\n edges {\\n node {\\n ...image\\n }\\n }\\n }\\n seo {\\n ...seo\\n }\\n tags\\n updatedAt\\n vendor\\n }\\n\":\n types.ProductFragmentDoc,\n \"\\n fragment seo on SEO {\\n description\\n title\\n }\\n\":\n types.SeoFragmentDoc,\n \"\\n mutation addToCart($cartId: ID!, $lines: [CartLineInput!]!) {\\n cartLinesAdd(cartId: $cartId, lines: $lines) {\\n cart {\\n ...cart\\n }\\n }\\n }\\n\":\n types.AddToCartDocument,\n \"\\n mutation createCart($lines: [CartLineInput!]) {\\n cartCreate(input: { lines: $lines }) {\\n cart {\\n ...cart\\n }\\n }\\n }\\n\":\n types.CreateCartDocument,\n \"\\n mutation editCartItems($cartId: ID!, $lines: [CartLineUpdateInput!]!) {\\n cartLinesUpdate(cartId: $cartId, lines: $lines) {\\n cart {\\n ...cart\\n }\\n }\\n }\\n\":\n types.EditCartItemsDocument,\n \"\\n mutation removeFromCart($cartId: ID!, $lineIds: [ID!]!) {\\n cartLinesRemove(cartId: $cartId, lineIds: $lineIds) {\\n cart {\\n ...cart\\n }\\n }\\n }\\n\":\n types.RemoveFromCartDocument,\n \"\\n mutation customerActivateByUrl($activationUrl: URL!, $password: String!) {\\n customerActivateByUrl(activationUrl: $activationUrl, password: $password) {\\n customer {\\n id\\n }\\n customerAccessToken {\\n accessToken\\n expiresAt\\n }\\n customerUserErrors {\\n code\\n field\\n message\\n }\\n }\\n }\\n\":\n types.CustomerActivateByUrlDocument,\n \"\\n query getSiteCollections($first: Int!) {\\n collections(first: $first) {\\n edges {\\n node {\\n ...collection\\n products(first: $first) {\\n edges {\\n node {\\n id\\n }\\n }\\n }\\n }\\n }\\n }\\n }\\n\":\n types.GetSiteCollectionsDocument,\n \"\\n query getAllProductVendors($first: Int = 250, $cursor: String) {\\n products(first: $first, after: $cursor) {\\n pageInfo {\\n hasNextPage\\n hasPreviousPage\\n }\\n edges {\\n node {\\n vendor\\n }\\n cursor\\n }\\n }\\n }\\n\":\n types.GetAllProductVendorsDocument,\n '\\n query getAllProducts(\\n $first: Int = 250\\n $query: String = \"\"\\n $sortKey: ProductSortKeys = RELEVANCE\\n $reverse: Boolean = false\\n ) {\\n products(\\n first: $first\\n sortKey: $sortKey\\n reverse: $reverse\\n query: $query\\n ) {\\n pageInfo {\\n hasNextPage\\n hasPreviousPage\\n }\\n edges {\\n node {\\n ...product\\n }\\n }\\n }\\n }\\n':\n types.GetAllProductsDocument,\n \"\\n query getCart($cartId: ID!) {\\n cart(id: $cartId) {\\n ...cart\\n }\\n }\\n\":\n types.GetCartDocument,\n \"\\n query getProductsFromCollection(\\n $categoryId: ID!\\n $first: Int = 250\\n $sortKey: ProductCollectionSortKeys = RELEVANCE\\n $reverse: Boolean = false\\n ) {\\n node(id: $categoryId) {\\n id\\n ... on Collection {\\n ...collection\\n products(first: $first, sortKey: $sortKey, reverse: $reverse) {\\n edges {\\n node {\\n ...product\\n }\\n }\\n }\\n }\\n }\\n }\\n\":\n types.GetProductsFromCollectionDocument,\n \"\\n query getSiteCollection($id: ID, $handle: String, $first: Int = 1) {\\n collection(id: $id, handle: $handle) {\\n ...collection\\n products(first: $first) {\\n edges {\\n node {\\n id\\n }\\n }\\n }\\n }\\n }\\n\":\n types.GetSiteCollectionDocument,\n \"\\n query getProductBySlug($slug: String!) {\\n productByHandle(handle: $slug) {\\n ...product\\n }\\n }\\n\":\n types.GetProductBySlugDocument,\n \"\\n query getProductById($id: ID!) {\\n product(id: $id) {\\n ...product\\n }\\n }\\n\":\n types.GetProductByIdDocument,\n};\n\n/**\n * The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.\n */\nexport function graphql(\n source: \"\\n fragment cart on Cart {\\n id\\n createdAt\\n checkoutUrl\\n cost {\\n subtotalAmount {\\n amount\\n currencyCode\\n }\\n totalAmount {\\n amount\\n currencyCode\\n }\\n totalTaxAmount {\\n amount\\n currencyCode\\n }\\n }\\n lines(first: 100) {\\n edges {\\n node {\\n id\\n quantity\\n cost {\\n totalAmount {\\n amount\\n currencyCode\\n }\\n }\\n merchandise {\\n ... on ProductVariant {\\n ...productVariant\\n product {\\n ...product\\n }\\n }\\n }\\n }\\n }\\n }\\n totalQuantity\\n }\\n\"\n): typeof import(\"./graphql\").CartFragmentDoc;\n/**\n * The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.\n */\nexport function graphql(\n source: \"\\n fragment collection on Collection {\\n id\\n title\\n handle\\n image {\\n ...image\\n }\\n }\\n\"\n): typeof import(\"./graphql\").CollectionFragmentDoc;\n/**\n * The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.\n */\nexport function graphql(\n source: \"\\n fragment image on Image {\\n url\\n altText\\n width\\n height\\n }\\n\"\n): typeof import(\"./graphql\").ImageFragmentDoc;\n/**\n * The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.\n */\nexport function graphql(\n source: \"\\n fragment productVariant on ProductVariant {\\n id\\n sku\\n title\\n availableForSale\\n requiresShipping\\n selectedOptions {\\n name\\n value\\n }\\n image {\\n ...image\\n }\\n price {\\n amount\\n currencyCode\\n }\\n compareAtPrice {\\n amount\\n currencyCode\\n }\\n }\\n\"\n): typeof import(\"./graphql\").ProductVariantFragmentDoc;\n/**\n * The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.\n */\nexport function graphql(\n source: \"\\n fragment product on Product {\\n id\\n handle\\n availableForSale\\n title\\n productType\\n description\\n descriptionHtml\\n options {\\n id\\n name\\n values\\n }\\n priceRange {\\n maxVariantPrice {\\n amount\\n currencyCode\\n }\\n minVariantPrice {\\n amount\\n currencyCode\\n }\\n }\\n variants(first: 250) {\\n edges {\\n node {\\n ...productVariant\\n }\\n }\\n }\\n featuredImage {\\n ...image\\n }\\n images(first: 20) {\\n edges {\\n node {\\n ...image\\n }\\n }\\n }\\n seo {\\n ...seo\\n }\\n tags\\n updatedAt\\n vendor\\n }\\n\"\n): typeof import(\"./graphql\").ProductFragmentDoc;\n/**\n * The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.\n */\nexport function graphql(\n source: \"\\n fragment seo on SEO {\\n description\\n title\\n }\\n\"\n): typeof import(\"./graphql\").SeoFragmentDoc;\n/**\n * The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.\n */\nexport function graphql(\n source: \"\\n mutation addToCart($cartId: ID!, $lines: [CartLineInput!]!) {\\n cartLinesAdd(cartId: $cartId, lines: $lines) {\\n cart {\\n ...cart\\n }\\n }\\n }\\n\"\n): typeof import(\"./graphql\").AddToCartDocument;\n/**\n * The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.\n */\nexport function graphql(\n source: \"\\n mutation createCart($lines: [CartLineInput!]) {\\n cartCreate(input: { lines: $lines }) {\\n cart {\\n ...cart\\n }\\n }\\n }\\n\"\n): typeof import(\"./graphql\").CreateCartDocument;\n/**\n * The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.\n */\nexport function graphql(\n source: \"\\n mutation editCartItems($cartId: ID!, $lines: [CartLineUpdateInput!]!) {\\n cartLinesUpdate(cartId: $cartId, lines: $lines) {\\n cart {\\n ...cart\\n }\\n }\\n }\\n\"\n): typeof import(\"./graphql\").EditCartItemsDocument;\n/**\n * The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.\n */\nexport function graphql(\n source: \"\\n mutation removeFromCart($cartId: ID!, $lineIds: [ID!]!) {\\n cartLinesRemove(cartId: $cartId, lineIds: $lineIds) {\\n cart {\\n ...cart\\n }\\n }\\n }\\n\"\n): typeof import(\"./graphql\").RemoveFromCartDocument;\n/**\n * The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.\n */\nexport function graphql(\n source: \"\\n mutation customerActivateByUrl($activationUrl: URL!, $password: String!) {\\n customerActivateByUrl(activationUrl: $activationUrl, password: $password) {\\n customer {\\n id\\n }\\n customerAccessToken {\\n accessToken\\n expiresAt\\n }\\n customerUserErrors {\\n code\\n field\\n message\\n }\\n }\\n }\\n\"\n): typeof import(\"./graphql\").CustomerActivateByUrlDocument;\n/**\n * The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.\n */\nexport function graphql(\n source: \"\\n query getSiteCollections($first: Int!) {\\n collections(first: $first) {\\n edges {\\n node {\\n ...collection\\n products(first: $first) {\\n edges {\\n node {\\n id\\n }\\n }\\n }\\n }\\n }\\n }\\n }\\n\"\n): typeof import(\"./graphql\").GetSiteCollectionsDocument;\n/**\n * The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.\n */\nexport function graphql(\n source: \"\\n query getAllProductVendors($first: Int = 250, $cursor: String) {\\n products(first: $first, after: $cursor) {\\n pageInfo {\\n hasNextPage\\n hasPreviousPage\\n }\\n edges {\\n node {\\n vendor\\n }\\n cursor\\n }\\n }\\n }\\n\"\n): typeof import(\"./graphql\").GetAllProductVendorsDocument;\n/**\n * The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.\n */\nexport function graphql(\n source: '\\n query getAllProducts(\\n $first: Int = 250\\n $query: String = \"\"\\n $sortKey: ProductSortKeys = RELEVANCE\\n $reverse: Boolean = false\\n ) {\\n products(\\n first: $first\\n sortKey: $sortKey\\n reverse: $reverse\\n query: $query\\n ) {\\n pageInfo {\\n hasNextPage\\n hasPreviousPage\\n }\\n edges {\\n node {\\n ...product\\n }\\n }\\n }\\n }\\n'\n): typeof import(\"./graphql\").GetAllProductsDocument;\n/**\n * The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.\n */\nexport function graphql(\n source: \"\\n query getCart($cartId: ID!) {\\n cart(id: $cartId) {\\n ...cart\\n }\\n }\\n\"\n): typeof import(\"./graphql\").GetCartDocument;\n/**\n * The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.\n */\nexport function graphql(\n source: \"\\n query getProductsFromCollection(\\n $categoryId: ID!\\n $first: Int = 250\\n $sortKey: ProductCollectionSortKeys = RELEVANCE\\n $reverse: Boolean = false\\n ) {\\n node(id: $categoryId) {\\n id\\n ... on Collection {\\n ...collection\\n products(first: $first, sortKey: $sortKey, reverse: $reverse) {\\n edges {\\n node {\\n ...product\\n }\\n }\\n }\\n }\\n }\\n }\\n\"\n): typeof import(\"./graphql\").GetProductsFromCollectionDocument;\n/**\n * The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.\n */\nexport function graphql(\n source: \"\\n query getSiteCollection($id: ID, $handle: String, $first: Int = 1) {\\n collection(id: $id, handle: $handle) {\\n ...collection\\n products(first: $first) {\\n edges {\\n node {\\n id\\n }\\n }\\n }\\n }\\n }\\n\"\n): typeof import(\"./graphql\").GetSiteCollectionDocument;\n/**\n * The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.\n */\nexport function graphql(\n source: \"\\n query getProductBySlug($slug: String!) {\\n productByHandle(handle: $slug) {\\n ...product\\n }\\n }\\n\"\n): typeof import(\"./graphql\").GetProductBySlugDocument;\n/**\n * The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.\n */\nexport function graphql(\n source: \"\\n query getProductById($id: ID!) {\\n product(id: $id) {\\n ...product\\n }\\n }\\n\"\n): typeof import(\"./graphql\").GetProductByIdDocument;\n\nexport function graphql(source: string) {\n return (documents as any)[source] ?? {};\n}\n","import { graphql } from \"../graphql/gen\";\n\nexport const addToCartMutation = graphql(`\n mutation addToCart($cartId: ID!, $lines: [CartLineInput!]!) {\n cartLinesAdd(cartId: $cartId, lines: $lines) {\n cart {\n ...cart\n }\n }\n }\n`);\n\nexport const createCartMutation = graphql(`\n mutation createCart($lines: [CartLineInput!]) {\n cartCreate(input: { lines: $lines }) {\n cart {\n ...cart\n }\n }\n }\n`);\n\nexport const editCartItemsMutation = graphql(`\n mutation editCartItems($cartId: ID!, $lines: [CartLineUpdateInput!]!) {\n cartLinesUpdate(cartId: $cartId, lines: $lines) {\n cart {\n ...cart\n }\n }\n }\n`);\n\nexport const removeFromCartMutation = graphql(`\n mutation removeFromCart($cartId: ID!, $lineIds: [ID!]!) {\n cartLinesRemove(cartId: $cartId, lineIds: $lineIds) {\n cart {\n ...cart\n }\n }\n }\n`);\n","/*\n Forked from https://github.com/vercel/commerce/tree/main/packages/shopify/src\n Changes: None\n*/\nexport const colorMap: Record<string, string> = {\n aliceblue: '#F0F8FF',\n antiquewhite: '#FAEBD7',\n aqua: '#00FFFF',\n aquamarine: '#7FFFD4',\n azure: '#F0FFFF',\n beige: '#F5F5DC',\n bisque: '#FFE4C4',\n black: '#000000',\n blanchedalmond: '#FFEBCD',\n blue: '#0000FF',\n blueviolet: '#8A2BE2',\n brown: '#A52A2A',\n burlywood: '#DEB887',\n burgandy: '#800020',\n burgundy: '#800020',\n cadetblue: '#5F9EA0',\n chartreuse: '#7FFF00',\n chocolate: '#D2691E',\n coral: '#FF7F50',\n cornflowerblue: '#6495ED',\n cornsilk: '#FFF8DC',\n crimson: '#DC143C',\n cyan: '#00FFFF',\n darkblue: '#00008B',\n darkcyan: '#008B8B',\n darkgoldenrod: '#B8860B',\n darkgray: '#A9A9A9',\n darkgreen: '#006400',\n darkgrey: '#A9A9A9',\n darkkhaki: '#BDB76B',\n darkmagenta: '#8B008B',\n darkolivegreen: '#556B2F',\n darkorange: '#FF8C00',\n darkorchid: '#9932CC',\n darkred: '#8B0000',\n darksalmon: '#E9967A',\n darkseagreen: '#8FBC8F',\n darkslateblue: '#483D8B',\n darkslategray: '#2F4F4F',\n darkslategrey: '#2F4F4F',\n darkturquoise: '#00CED1',\n darkviolet: '#9400D3',\n deeppink: '#FF1493',\n deepskyblue: '#00BFFF',\n dimgray: '#696969',\n dimgrey: '#696969',\n dodgerblue: '#1E90FF',\n firebrick: '#B22222',\n floralwhite: '#FFFAF0',\n forestgreen: '#228B22',\n fuchsia: '#FF00FF',\n gainsboro: '#DCDCDC',\n ghostwhite: '#F8F8FF',\n gold: '#FFD700',\n goldenrod: '#DAA520',\n gray: '#808080',\n green: '#008000',\n greenyellow: '#ADFF2F',\n grey: '#808080',\n honeydew: '#F0FFF0',\n hotpink: '#FF69B4',\n indianred: '#CD5C5C',\n indigo: '#4B0082',\n ivory: '#FFFFF0',\n khaki: '#F0E68C',\n lavender: '#E6E6FA',\n lavenderblush: '#FFF0F5',\n lawngreen: '#7CFC00',\n lemonchiffon: '#FFFACD',\n lightblue: '#ADD8E6',\n lightcoral: '#F08080',\n lightcyan: '#E0FFFF',\n lightgoldenrodyellow: '#FAFAD2',\n lightgray: '#D3D3D3',\n lightgreen: '#90EE90',\n lightgrey: '#D3D3D3',\n lightpink: '#FFB6C1',\n lightsalmon: '#FFA07A',\n lightseagreen: '#20B2AA',\n lightskyblue: '#87CEFA',\n lightslategray: '#778899',\n lightslategrey: '#778899',\n lightsteelblue: '#B0C4DE',\n lightyellow: '#FFFFE0',\n lime: '#00FF00',\n limegreen: '#32CD32',\n linen: '#FAF0E6',\n magenta: '#FF00FF',\n maroon: '#800000',\n mediumaquamarine: '#66CDAA',\n mediumblue: '#0000CD',\n mediumorchid: '#BA55D3',\n mediumpurple: '#9370DB',\n mediumseagreen: '#3CB371',\n mediumslateblue: '#7B68EE',\n mediumspringgreen: '#00FA9A',\n mediumturquoise: '#48D1CC',\n mediumvioletred: '#C71585',\n midnightblue: '#191970',\n mintcream: '#F5FFFA',\n mistyrose: '#FFE4E1',\n moccasin: '#FFE4B5',\n navajowhite: '#FFDEAD',\n navy: '#000080',\n oldlace: '#FDF5E6',\n olive: '#808000',\n olivedrab: '#6B8E23',\n orange: '#FFA500',\n orangered: '#FF4500',\n orchid: '#DA70D6',\n palegoldenrod: '#EEE8AA',\n palegreen: '#98FB98',\n paleturquoise: '#AFEEEE',\n palevioletred: '#DB7093',\n papayawhip: '#FFEFD5',\n peachpuff: '#FFDAB9',\n peru: '#CD853F',\n pink: '#FFC0CB',\n plum: '#DDA0DD',\n powderblue: '#B0E0E6',\n purple: '#800080',\n rebeccapurple: '#663399',\n red: '#FF0000',\n rosybrown: '#BC8F8F',\n royalblue: '#4169E1',\n saddlebrown: '#8B4513',\n salmon: '#FA8072',\n sandybrown: '#F4A460',\n seagreen: '#2E8B57',\n seashell: '#FFF5EE',\n sienna: '#A0522D',\n silver: '#C0C0C0',\n skyblue: '#87CEEB',\n slateblue: '#6A5ACD',\n slategray: '#708090',\n slategrey: '#708090',\n spacegrey: '#65737e',\n spacegray: '#65737e',\n snow: '#FFFAFA',\n springgreen: '#00FF7F',\n steelblue: '#4682B4',\n tan: '#D2B48C',\n teal: '#008080',\n thistle: '#D8BFD8',\n tomato: '#FF6347',\n turquoise: '#40E0D0',\n violet: '#EE82EE',\n wheat: '#F5DEB3',\n white: '#FFFFFF',\n whitesmoke: '#F5F5F5',\n yellow: '#FFFF00',\n yellowgreen: '#9ACD32',\n}\n","import type {\n Product,\n ProductImage,\n ProductOption,\n SiteTypes,\n} from \"@plasmicpkgs/commerce\";\nimport type { ShopifyCart } from \"../shopify-types\";\nimport { colorMap } from \"./colors\";\nimport {\n CartFragment,\n Collection,\n ImageFragment,\n MoneyV2,\n ProductFragment,\n SelectedOption,\n ProductOption as ShopifyProductOption,\n} from \"./graphql/gen/graphql\";\n\nconst money = ({ amount, currencyCode }: MoneyV2) => {\n return {\n value: +amount,\n currencyCode,\n };\n};\n\nconst isDefaultOption = (selectedOption: SelectedOption) =>\n selectedOption.name === \"Title\";\n\nconst normalizeProductOption = ({\n id,\n name: displayName,\n values,\n}: ShopifyProductOption): ProductOption => {\n return {\n __typename: \"MultipleChoiceOption\",\n id,\n displayName: displayName.toLowerCase(),\n values: values.map((value) => {\n let output: any = {\n label: value,\n };\n if (displayName.match(/colou?r/gi)) {\n const mapedColor = colorMap[value.toLowerCase().replace(/ /g, \"\")];\n if (mapedColor) {\n output = {\n ...output,\n hexColors: [mapedColor],\n };\n }\n }\n return output;\n }),\n };\n};\n\nexport function normalizeProduct({\n id,\n title: name,\n vendor,\n images,\n variants,\n description,\n handle,\n priceRange,\n options,\n ...rest\n}: ProductFragment): Product {\n return {\n id,\n name,\n description: description || \"\",\n path: `/${handle}`,\n slug: handle?.replace(/^\\/+|\\/+$/g, \"\"),\n price: money(priceRange?.minVariantPrice),\n images: images.edges.map((edge) => normalizeImage(edge.node)),\n variants: variants.edges.map(\n ({\n node: {\n id,\n selectedOptions,\n sku,\n title,\n price,\n compareAtPrice,\n requiresShipping,\n availableForSale,\n },\n }) => {\n return {\n id,\n name: selectedOptions.some((o) => !isDefaultOption(o))\n ? title\n : \"Default variant\",\n sku: sku ?? id,\n price: +price.amount,\n listPrice: +compareAtPrice?.amount,\n requiresShipping,\n availableForSale,\n options: selectedOptions.map(({ name, value }) => {\n const options = normalizeProductOption({\n id,\n name,\n optionValues: [\n {\n id,\n name,\n },\n ],\n values: [value],\n });\n\n return options;\n }),\n };\n }\n ),\n options: options\n ? options\n .filter((o: any) => !isDefaultOption(o)) // By default Shopify adds a 'Title' name when there's only one option. We don't need it. https://community.shopify.com/c/Shopify-APIs-SDKs/Adding-new-product-variant-is-automatically-adding-quot-Default/td-p/358095\n .map((o: any) => normalizeProductOption(o))\n : [],\n ...rest,\n };\n}\n\nexport function normalizeCart(\n cart: CartFragment | null | undefined\n): ShopifyCart | undefined {\n if (!cart) {\n return undefined;\n }\n return {\n id: cart.id,\n url: cart.checkoutUrl,\n customerId: \"\",\n email: \"\",\n createdAt: cart.createdAt,\n currency: {\n code: cart.cost.totalAmount?.currencyCode,\n },\n taxesIncluded: false,\n lineItems: cart.lines.edges.map(\n ({ node: { id, quantity, merchandise } }) => {\n return {\n id,\n variantId: merchandise.id,\n productId: merchandise.product.id,\n name: merchandise.product.title,\n quantity,\n variant: {\n id: merchandise.id,\n sku: merchandise.id ?? \"\",\n name: merchandise.title,\n image: normalizeImage(merchandise.image),\n requiresShipping: merchandise.requiresShipping,\n price: merchandise.price.amount,\n listPrice: merchandise.compareAtPrice?.amount,\n },\n path: merchandise.product.handle,\n discounts: [],\n options:\n merchandise.title === \"Default Title\"\n ? []\n : merchandise.selectedOptions,\n };\n }\n ),\n lineItemsSubtotalPrice: +cart.cost.subtotalAmount.amount,\n subtotalPrice: +cart.cost.subtotalAmount.amount,\n totalPrice: +cart.cost.totalAmount.amount,\n discounts: [],\n };\n}\n\nexport function normalizeCategory({\n title: name,\n handle,\n id,\n products,\n image,\n}: Collection): SiteTypes.Category {\n return {\n id,\n name,\n slug: handle,\n path: `/${handle}`,\n isEmpty: products.edges.length === 0,\n images: image ? [normalizeImage(image)] : undefined,\n };\n}\n\nfunction normalizeImage(image: ImageFragment | null | undefined): ProductImage {\n if (!image) {\n return {\n url: \"/product-img-placeholder.svg\",\n };\n }\n\n const { url, altText, height, width } = image;\n return {\n url,\n alt: altText || undefined,\n height: height || undefined,\n width: width || undefined,\n };\n}\n","/*\n Forked from https://github.com/vercel/commerce/tree/main/packages/shopify/src\n Changes:\n - Added sameSite and secure to the cookie options to allow third-party cookies.\n\t We need this to make work on the studio\n*/\nimport { FetcherOptions } from \"@plasmicpkgs/commerce\";\nimport Cookies from \"js-cookie\";\nimport {\n SHOPIFY_CART_ID_COOKIE,\n SHOPIFY_CHECKOUT_URL_COOKIE,\n SHOPIFY_COOKIE_EXPIRE,\n} from \"../const\";\nimport {\n CartLineInput,\n CreateCartMutation,\n CreateCartMutationVariables,\n} from \"./graphql/gen/graphql\";\nimport { createCartMutation } from \"./mutations/cart\";\nimport { normalizeCart } from \"./normalize\";\n\nexport const cartCreate = async (\n fetch: <T = any, B = Body>(options: FetcherOptions<B>) => Promise<T>,\n lines: CartLineInput[]\n) => {\n const { cartCreate } = await fetch<\n CreateCartMutation,\n CreateCartMutationVariables\n >({\n query: createCartMutation.toString(),\n variables: {\n lines,\n },\n });\n\n const cart = cartCreate?.cart;\n if (cart) {\n const options: Cookies.CookieAttributes = {\n expires: SHOPIFY_COOKIE_EXPIRE,\n sameSite: \"none\",\n secure: true,\n };\n Cookies.set(SHOPIFY_CART_ID_COOKIE, cart.id, options);\n Cookies.set(SHOPIFY_CHECKOUT_URL_COOKIE, cart.checkoutUrl, options);\n return normalizeCart(cart);\n } else {\n return undefined;\n }\n};\n","/*\n Forked from https://github.com/vercel/commerce/tree/main/packages/shopify/src\n Changes: None\n*/\nimport Cookies from \"js-cookie\";\nimport { SHOPIFY_CART_ID_COOKIE } from \"../const\";\n\nexport const getCartId = (id?: string) => {\n return id ?? Cookies.get(SHOPIFY_CART_ID_COOKIE);\n};\n","import { graphql } from \"../graphql/gen\";\n\nexport const getCartQuery = graphql(`\n query getCart($cartId: ID!) {\n cart(id: $cartId) {\n ...cart\n }\n }\n`);\n","/*\n Forked from https://github.com/vercel/commerce/tree/main/packages/shopify/src\n Changes: None\n*/\nimport {\n CartType,\n SWRHook,\n UseCart,\n useCart as useCommerceCart,\n} from \"@plasmicpkgs/commerce\";\nimport Cookies from \"js-cookie\";\nimport { useMemo } from \"react\";\nimport { SHOPIFY_CART_ID_COOKIE, SHOPIFY_CHECKOUT_URL_COOKIE } from \"../const\";\nimport {\n GetCartQuery,\n GetCartQueryVariables,\n} from \"../utils/graphql/gen/graphql\";\nimport { normalizeCart } from \"../utils/normalize\";\nimport { getCartQuery } from \"../utils/queries/get-cart-query\";\n\nexport default useCommerceCart as UseCart<typeof handler>;\n\nexport const handler: SWRHook<CartType.GetCartHook> = {\n fetchOptions: {\n query: getCartQuery.toString(),\n },\n async fetcher({ input: { cartId }, options, fetch }) {\n if (cartId) {\n const { cart } = await fetch<GetCartQuery, GetCartQueryVariables>({\n ...options,\n variables: {\n cartId,\n },\n });\n if (!cart) {\n Cookies.remove(SHOPIFY_CART_ID_COOKIE);\n Cookies.remove(SHOPIFY_CHECKOUT_URL_COOKIE);\n return null;\n } else {\n return normalizeCart(cart);\n }\n }\n return null;\n },\n useHook:\n ({ useData }) =>\n (input) => {\n const response = useData({\n swrOptions: { revalidateOnFocus: false, ...input?.swrOptions },\n });\n return useMemo(\n () =>\n Object.create(response, {\n isEmpty: {\n get() {\n return (response.data?.lineItems.length ?? 0) <= 0;\n },\n enumerable: true,\n },\n }),\n [response]\n );\n },\n};\n","/*\n Forked from https://github.com/vercel/commerce/tree/main/packages/shopify/src\n Changes: None\n*/\nimport type { MutationHook } from \"@plasmicpkgs/commerce\";\nimport {\n CartType,\n CommerceError,\n useAddItem,\n UseAddItem,\n} from \"@plasmicpkgs/commerce\";\nimport { useCallback } from \"react\";\nimport { cartCreate } from \"../utils/cart-create\";\nimport { getCartId } from \"../utils/get-cart-id\";\nimport {\n AddToCartMutation,\n AddToCartMutationVariables,\n CartLineInput,\n} from \"../utils/graphql/gen/graphql\";\nimport { addToCartMutation } from \"../utils/mutations/cart\";\nimport { normalizeCart } from \"../utils/normalize\";\nimport useCart from \"./use-cart\";\n\nexport default useAddItem as UseAddItem<typeof handler>;\n\nexport const handler: MutationHook<CartType.AddItemHook> = {\n fetchOptions: {\n query: addToCartMutation.toString(),\n },\n async fetcher({ input: item, options, fetch }) {\n if (\n item.quantity &&\n (!Number.isInteger(item.quantity) || item.quantity! < 1)\n ) {\n throw new CommerceError({\n message: \"The item quantity has to be a valid integer greater than 0\",\n });\n }\n\n const lines: CartLineInput[] = [\n {\n merchandiseId: item.variantId,\n quantity: item.quantity ?? 1,\n },\n ];\n\n let cartId = getCartId();\n if (!cartId) {\n return await cartCreate(fetch, lines);\n } else {\n const { cartLinesAdd } = await fetch<\n AddToCartMutation,\n AddToCartMutationVariables\n >({\n ...options,\n variables: {\n cartId,\n lines,\n },\n });\n return normalizeCart(cartLinesAdd?.cart);\n }\n },\n useHook:\n ({ fetch }) =>\n () => {\n const { mutate } = useCart();\n return useCallback(\n async function addItem(input) {\n const data = await fetch({ input });\n await mutate(data, false);\n return data;\n },\n [fetch, mutate]\n );\n },\n};\n","/*\n Forked from https://github.com/vercel/commerce/tree/main/packages/shopify/src\n Changes: None\n*/\nimport type {\n CartType,\n HookFetcherContext,\n MutationHookContext,\n} from \"@plasmicpkgs/commerce\";\nimport {\n useRemoveItem,\n UseRemoveItem,\n ValidationError,\n} from \"@plasmicpkgs/commerce\";\nimport { useCallback } from \"react\";\nimport type { ShopifyCart } from \"../shopify-types\";\nimport { getCartId } from \"../utils/get-cart-id\";\nimport {\n RemoveFromCartMutation,\n RemoveFromCartMutationVariables,\n} from \"../utils/graphql/gen/graphql\";\nimport { removeFromCartMutation } from \"../utils/mutations/cart\";\nimport { normalizeCart } from \"../utils/normalize\";\nimport useCart from \"./use-cart\";\n\nexport type RemoveItemFn<T = any> = T extends CartType.LineItem\n ? (\n input?: RemoveItemActionInput<T>\n ) => Promise<ShopifyCart | null | undefined>\n : (input: RemoveItemActionInput<T>) => Promise<ShopifyCart | null>;\n\nexport type RemoveItemActionInput<T = any> = T extends CartType.LineItem\n ? Partial<CartType.RemoveItemHook[\"actionInput\"]>\n : CartType.RemoveItemHook[\"actionInput\"];\n\nexport default useRemoveItem as UseRemoveItem<typeof handler>;\n\nexport const handler = {\n fetchOptions: {\n query: removeFromCartMutation.toString(),\n },\n async fetcher({\n input: { itemId },\n options,\n fetch,\n }: HookFetcherContext<CartType.RemoveItemHook>) {\n const { cartLinesRemove } = await fetch<\n RemoveFromCartMutation,\n RemoveFromCartMutationVariables\n >({\n ...options,\n variables: { cartId: getCartId(), lineIds: [itemId] },\n });\n return normalizeCart(cartLinesRemove?.cart);\n },\n useHook:\n ({ fetch }: MutationHookContext<CartType.RemoveItemHook>) =>\n <T extends CartType.LineItem | undefined = undefined>(\n ctx: { item?: T } = {}\n ) => {\n const { item } = ctx;\n const { mutate } = useCart();\n const removeItem: RemoveItemFn<CartType.LineItem> = async (input) => {\n const itemId = input?.id ?? item?.id;\n\n if (!itemId) {\n throw new ValidationError({\n message: \"Invalid input used for this operation\",\n });\n }\n\n const data = await fetch({ input: { itemId } });\n await mutate(data, false);\n return data;\n };\n\n return useCallback(removeItem as RemoveItemFn<T>, [fetch, mutate]);\n },\n};\n","/*\n Forked from https://github.com/vercel/commerce/tree/main/packages/shopify/src\n Changes: None\n*/\nimport type {\n HookFetcherContext,\n MutationHookContext,\n} from \"@plasmicpkgs/commerce\";\nimport {\n CartType,\n useUpdateItem,\n UseUpdateItem,\n ValidationError,\n} from \"@plasmicpkgs/commerce\";\nimport debounce from \"debounce\";\nimport { useCallback } from \"react\";\nimport { getCartId } from \"../utils/get-cart-id\";\nimport {\n EditCartItemsMutation,\n EditCartItemsMutationVariables,\n} from \"../utils/graphql/gen/graphql\";\nimport { editCartItemsMutation } from \"../utils/mutations/cart\";\nimport { normalizeCart } from \"../utils/normalize\";\nimport useCart from \"./use-cart\";\nimport { handler as removeItemHandler } from \"./use-remove-item\";\n\nexport type UpdateItemActionInput<T = any> = T extends CartType.LineItem\n ? Partial<CartType.UpdateItemHook[\"actionInput\"]>\n : CartType.UpdateItemHook[\"actionInput\"];\n\nexport default useUpdateItem as UseUpdateItem<typeof handler>;\n\nexport const handler = {\n fetchOptions: {\n query: editCartItemsMutation.toString(),\n },\n async fetcher({\n input: { itemId, item },\n options,\n fetch,\n }: HookFetcherContext<CartType.UpdateItemHook>) {\n if (Number.isInteger(item.quantity)) {\n // Also allow the update hook to remove an item if the quantity is lower than 1\n if (item.quantity! < 1) {\n return removeItemHandler.fetcher({\n options: removeItemHandler.fetchOptions,\n input: { itemId },\n fetch,\n });\n }\n } else if (item.quantity) {\n throw new ValidationError({\n message: \"The item quantity has to be a valid integer\",\n });\n }\n const { cartLinesUpdate } = await fetch<\n EditCartItemsMutation,\n EditCartItemsMutationVariables\n >({\n ...options,\n variables: {\n cartId: getCartId(),\n lines: [\n {\n id: itemId,\n quantity: item.quantity,\n },\n ],\n },\n });\n\n return normalizeCart(cartLinesUpdate?.cart);\n },\n useHook:\n ({ fetch }: MutationHookContext<CartType.UpdateItemHook>) =>\n <T extends CartType.LineItem | undefined = undefined>(\n ctx: {\n item?: T;\n wait?: number;\n } = {}\n ) => {\n const { item } = ctx;\n const { mutate } = useCart() as any;\n\n return useCallback(\n debounce(async (input: UpdateItemActionInput<T>) => {\n const itemId = input.id ?? item?.id;\n if (!itemId || input.quantity == null) {\n throw new ValidationError({\n message: \"Invalid input used for this operation\",\n });\n }\n\n const data = await fetch({\n input: {\n item: {\n quantity: input.quantity,\n },\n itemId,\n },\n });\n await mutate(data, false);\n return data;\n }, ctx.wait ?? 500),\n [fetch, mutate]\n );\n },\n};\n","import { Fetcher, FetcherError } from \"@plasmicpkgs/commerce\";\nimport { shopifyApiVersion } from \"./graphql-config\";\n\nexport const getFetcher: (\n storeDomain: string,\n accessToken: string\n) => Fetcher = (storeDomain, accessToken) => {\n return async ({\n url = `https://${storeDomain}/api/${shopifyApiVersion}/graphql.json`,\n method = \"POST\",\n variables,\n query,\n }) => {\n const { locale, ...vars } = variables ?? {};\n const res = await fetch(url, {\n method,\n body: JSON.stringify({ query, variables: vars }),\n headers: {\n \"X-Shopify-Storefront-Access-Token\": accessToken,\n \"Content-Type\": \"application/json\",\n ...(locale && {\n \"Accept-Language\": locale,\n }),\n },\n });\n if (res.ok) {\n const { data, errors } = await res.json();\n if (errors && errors.length) {\n throw getError(errors, res.status);\n }\n\n return data;\n } else {\n const { errors } = await res.json();\n throw getError(errors, res.status);\n }\n };\n};\n\nfunction getError(errors: any[] | null, status: number) {\n errors = errors ?? [{ message: \"Failed to fetch Shopify API\" }];\n return new FetcherError({ errors, status });\n}\n","import { graphql } from \"../graphql/gen\";\n\nexport const getProductQueryBySlug = graphql(`\n query getProductBySlug($slug: String!) {\n productByHandle(handle: $slug) {\n ...product\n }\n }\n`);\n\nexport const getProductQueryById = graphql(`\n query getProductById($id: ID!) {\n product(id: $id) {\n ...product\n }\n }\n`);\n","import type { GetProductHook } from \"@plasmicpkgs/commerce\";\nimport { SWRHook, useProduct, UseProduct } from \"@plasmicpkgs/commerce\";\nimport {\n GetProductByIdQuery,\n GetProductBySlugQuery,\n} from \"../utils/graphql/gen/graphql\";\nimport { normalizeProduct } from \"../utils/normalize\";\nimport {\n getProductQueryById,\n getProductQueryBySlug,\n} from \"../utils/queries/get-product-query\";\n\nexport default useProduct as UseProduct<typeof handler>;\n\nexport const handler: SWRHook<GetProductHook> = {\n fetchOptions: {\n query: getProductQueryBySlug.toString(),\n },\n async fetcher({ input, options, fetch }) {\n const { id } = input;\n if (!id) {\n return null;\n }\n\n let product = null;\n if (id.startsWith(\"gid://shopify\")) {\n const data = await fetch<GetProductByIdQuery>({\n query: getProductQueryById.toString(),\n variables: { id },\n });\n product = data.product;\n } else {\n const data = await fetch<GetProductBySlugQuery>({\n query: options.query,\n variables: { slug: id },\n });\n\n if (data.productByHandle) {\n product = data.productByHandle;\n }\n }\n\n return product ? normalizeProduct(product) : null;\n },\n useHook:\n ({ useData }) =>\n (input = {}) => {\n return useData({\n input: [[\"id\", input.id]],\n swrOptions: {\n revalidateOnFocus: false,\n ...input.swrOptions,\n },\n });\n },\n};\n","/*\n Forked from https://github.com/vercel/commerce/tree/main/packages/shopify/src\n Changes: None\n*/\nconst getSortVariables = (sort?: string, isCategory: boolean = false) => {\n let output = {}\n switch (sort) {\n case 'price-asc':\n output = {\n sortKey: 'PRICE',\n reverse: false,\n }\n break\n case 'price-desc':\n output = {\n sortKey: 'PRICE',\n reverse: true,\n }\n break\n case 'trending-desc':\n output = {\n sortKey: 'BEST_SELLING',\n reverse: false,\n }\n break\n case 'latest-desc':\n output = {\n sortKey: isCategory ? 'CREATED' : 'CREATED_AT',\n reverse: true,\n }\n break\n }\n return output\n}\n\nexport default getSortVariables\n","/*\n Forked from https://github.com/vercel/commerce/tree/main/packages/shopify/src\n Changes:\n - Added count as a parameter\n*/\nimport { SearchProductsBody } from \"@plasmicpkgs/commerce\";\nimport getSortVariables from \"./get-sort-variables\";\n\nexport const getSearchVariables = ({\n brandId,\n search,\n categoryId,\n sort,\n locale,\n count,\n}: SearchProductsBody) => {\n let query = \"\";\n\n const searchQuery = `${search}*`;\n if (search) {\n query += `product_type:${searchQuery} OR title:${searchQuery} OR tag:${searchQuery}`;\n }\n\n if (brandId) {\n query += `${search ? \"AND \" : \"\"}vendor:${brandId}`;\n }\n\n return {\n categoryId,\n query,\n ...getSortVariables(sort, !!categoryId),\n ...(locale && {\n locale,\n }),\n first: count,\n };\n};\n\nexport default getSearchVariables;\n","import { graphql } from \"../graphql/gen\";\n\nexport const getAllProductsQuery = graphql(`\n query getAllProducts(\n $first: Int = 250\n $query: String = \"\"\n $sortKey: ProductSortKeys = RELEVANCE\n $reverse: Boolean = false\n ) {\n products(\n first: $first\n sortKey: $sortKey\n reverse: $reverse\n query: $query\n ) {\n pageInfo {\n hasNextPage\n hasPreviousPage\n }\n edges {\n node {\n ...product\n }\n }\n }\n }\n`);\n","import { graphql } from \"../graphql/gen\";\n\nexport const getCollectionProductsQuery = graphql(`\n query getProductsFromCollection(\n $categoryId: ID!\n $first: Int = 250\n $sortKey: ProductCollectionSortKeys = RELEVANCE\n $reverse: Boolean = false\n ) {\n node(id: $categoryId) {\n id\n ... on Collection {\n ...collection\n products(first: $first, sortKey: $sortKey, reverse: $reverse) {\n edges {\n node {\n ...product\n }\n }\n }\n }\n }\n }\n`);\n","/*\n Forked from https://github.com/vercel/commerce/tree/main/packages/shopify/src\n Changes:\n - Added count as a parameter to input\n*/\nimport type { SearchProductsHook } from \"@plasmicpkgs/commerce\";\nimport { SWRHook, useSearch, UseSearch } from \"@plasmicpkgs/commerce\";\nimport { getSearchVariables } from \"../utils/get-search-variables\";\nimport {\n CollectionEdge,\n GetAllProductsQuery,\n GetProductsFromCollectionQueryVariables,\n ProductEdge,\n Product as ShopifyProduct,\n} from \"../utils/graphql/gen/graphql\";\nimport { normalizeProduct } from \"../utils/normalize\";\nimport { getAllProductsQuery } from \"../utils/queries/get-all-products-query\";\nimport { getCollectionProductsQuery } from \"../utils/queries/get-collection-products-query\";\n\nconst useSearchTyped: UseSearch<typeof handler> = useSearch;\nexport default useSearchTyped;\n\nexport const handler: SWRHook<SearchProductsHook> = {\n fetchOptions: {\n query: getAllProductsQuery.toString(),\n },\n async fetcher({ input, options, fetch }) {\n const { categoryId, brandId } = input;\n const method = options?.method;\n const variables = getSearchVariables(input);\n let products;\n\n // change the query to getCollectionProductsQuery when categoryId is set\n if (categoryId) {\n const data = await fetch<\n CollectionEdge,\n GetProductsFromCollectionQueryVariables\n >({\n query: getCollectionProductsQuery.toString(),\n method,\n variables: {\n ...variables,\n first: undefined,\n },\n });\n // filter on client when brandId & categoryId are set since is not available on collection product query\n products = brandId\n ? data.node?.products?.edges\n ?.filter(\n ({ node: { vendor } }: ProductEdge) =>\n vendor.replace(/\\s+/g, \"-\").toLowerCase() ===\n `${brandId}`.toLowerCase()\n )\n .slice(0, input.count)\n : data.node?.products?.edges.slice(0, input.count);\n } else {\n const data = await fetch<GetAllProductsQuery>({\n query: options.query,\n method,\n variables,\n });\n products = data.products?.edges;\n }\n\n return {\n products: products?.map(({ node }) =>\n normalizeProduct(node as ShopifyProduct)\n ),\n found: !!products?.length,\n };\n },\n useHook:\n ({ useData }) =>\n (input = {}) => {\n return useData({\n input: [\n [\"search\", input.search],\n [\"categoryId\", input.categoryId],\n [\"brandId\", input.brandId],\n [\"sort\", input.sort],\n [\"locale\", input.locale],\n [\"count\", input.count],\n ],\n swrOptions: {\n revalidateOnFocus: false,\n ...input.swrOptions,\n },\n });\n },\n};\n","import { graphql } from \"../graphql/gen\";\n\nexport const getAllProductVendors = graphql(`\n query getAllProductVendors($first: Int = 250, $cursor: String) {\n products(first: $first, after: $cursor) {\n pageInfo {\n hasNextPage\n hasPreviousPage\n }\n edges {\n node {\n vendor\n }\n cursor\n }\n }\n }\n`);\n","import {\n SiteTypes,\n SWRHook,\n UseBrands,\n useBrands,\n} from \"@plasmicpkgs/commerce\";\nimport { useMemo } from \"react\";\nimport {\n GetAllProductVendorsQuery,\n GetAllProductVendorsQueryVariables,\n} from \"../utils/graphql/gen/graphql\";\nimport { getAllProductVendors } from \"../utils/queries/get-all-product-vendors-query\";\n\nexport default useBrands as UseBrands<typeof handler>;\n\nexport const handler: SWRHook<SiteTypes.GetBrandsHook> = {\n fetchOptions: {\n query: getAllProductVendors.toString(),\n },\n async fetcher({ input, options, fetch }) {\n const data = await fetch<\n GetAllProductVendorsQuery,\n GetAllProductVendorsQueryVariables\n >({\n query: getAllProductVendors.toString(),\n variables: {\n first: 250,\n },\n });\n\n let vendorsStrings = data.products.edges.map(\n ({ node: { vendor } }) => vendor\n );\n return Array.from(new Set(vendorsStrings).values()).map((v) => {\n const id = v.replace(/\\s+/g, \"-\").toLowerCase();\n return {\n entityId: id,\n name: v,\n path: `brands/${id}`,\n };\n });\n },\n useHook:\n ({ useData }) =>\n (input) => {\n const response = useData({\n swrOptions: { revalidateOnFocus: false, ...input?.swrOptions },\n });\n return useMemo(\n () =>\n Object.create(response, {\n isEmpty: {\n get() {\n return (response.data?.length ?? 0) <= 0;\n },\n enumerable: true,\n },\n }),\n [response]\n );\n },\n};\n","import { graphql } from \"../graphql/gen\";\n\nexport const getSiteCollectionsQuery = graphql(`\n query getSiteCollections($first: Int!) {\n collections(first: $first) {\n edges {\n node {\n ...collection\n products(first: $first) {\n edges {\n node {\n id\n }\n }\n }\n }\n }\n }\n }\n`);\n","import { graphql } from \"../graphql/gen\";\n\nexport const getCollectionQueryById = graphql(`\n query getSiteCollection($id: ID, $handle: String, $first: Int = 1) {\n collection(id: $id, handle: $handle) {\n ...collection\n products(first: $first) {\n edges {\n node {\n id\n }\n }\n }\n }\n }\n`);\n","import {\n SiteTypes,\n SWRHook,\n UseCategories,\n useCategories,\n} from \"@plasmicpkgs/commerce\";\nimport { useMemo } from \"react\";\nimport { CollectionEdge } from \"../utils/graphql/gen/graphql\";\nimport { normalizeCategory } from \"../utils/normalize\";\nimport { getSiteCollectionsQuery } from \"../utils/queries/get-all-collections-query\";\nimport { getCollectionQueryById } from \"../utils/queries/get-collection-query\";\n\nexport default useCategories as UseCategories<typeof handler>;\n\nexport const handler: SWRHook<SiteTypes.GetCategoriesHook> = {\n fetchOptions: {\n query: getSiteCollectionsQuery.toString(),\n },\n async fetcher({ input, options, fetch }) {\n const { categoryId } = input;\n\n if (!categoryId) {\n const data = await fetch({\n query: options.query,\n variables: {\n first: 250,\n },\n });\n return (\n data?.collections?.edges?.map(({ node }: CollectionEdge) =>\n normalizeCategory(node)\n ) ?? []\n );\n } else {\n const data = await fetch({\n query: getCollectionQueryById.toString(),\n variables: {\n ...(categoryId.startsWith(\"gid://\")\n ? { id: categoryId }\n : { handle: categoryId }),\n },\n });\n return !!data?.collection ? [normalizeCategory(data?.collection)] : [];\n }\n },\n useHook:\n ({ useData }) =>\n (input) => {\n const response = useData({\n input: [[\"categoryId\", input?.categoryId]],\n swrOptions: { revalidateOnFocus: false, ...input?.swrOptions },\n });\n return useMemo(\n () =>\n Object.create(response, {\n isEmpty: {\n get() {\n return (response.data?.length ?? 0) <= 0;\n },\n enumerable: true,\n },\n }),\n [response]\n );\n },\n};\n","/*\n Forked from https://github.com/vercel/commerce/tree/main/packages/shopify/src\n Changes:\n - Removed authentication, customer and wishlist hooks.\n - Added storeDomain and accessToken parameters.\n*/\nimport { Fetcher } from \"@plasmicpkgs/commerce\";\nimport { handler as useAddItem } from \"./cart/use-add-item\";\nimport { handler as useCart } from \"./cart/use-cart\";\nimport { handler as useRemoveItem } from \"./cart/use-remove-item\";\nimport { handler as useUpdateItem } from \"./cart/use-update-item\";\nimport { SHOPIFY_CART_ID_COOKIE } from \"./const\";\nimport { getFetcher } from \"./fetcher\";\nimport { handler as useProduct } from \"./product/use-product\";\nimport { handler as useSearch } from \"./product/use-search\";\nimport { handler as useBrands } from \"./site/use-brands\";\nimport { handler as useCategories } from \"./site/use-categories\";\n\nexport const getShopifyProvider = (\n storeDomain: string,\n accessToken: string\n) => ({\n locale: \"en-us\",\n cartCookie: SHOPIFY_CART_ID_COOKIE,\n cart: { useCart, useAddItem, useUpdateItem, useRemoveItem },\n fetcher: getFetcher(storeDomain, accessToken),\n products: { useSearch, useProduct },\n site: { useCategories, useBrands },\n});\n\nexport type ShopifyProvider = {\n locale: string;\n cartCookie: string;\n fetcher: Fetcher;\n cart: {\n useCart: typeof useCart;\n useAddItem: typeof useAddItem;\n useUpdateItem: typeof useUpdateItem;\n useRemoveItem: typeof useRemoveItem;\n };\n products: {\n useSearch: typeof useSearch;\n useProduct: typeof useProduct;\n };\n site: {\n useCategories: typeof useCategories;\n useBrands: typeof useBrands;\n };\n};\n","/*\n Forked from https://github.com/vercel/commerce/tree/main/packages/shopify/src\n Changes: \n - Added storeDomain and accessToken parameters.\n*/\nimport {\n getCommerceProvider as getCoreCommerceProvider,\n useCommerce as useCoreCommerce,\n} from '@plasmicpkgs/commerce'\nimport { getShopifyProvider, ShopifyProvider } from './provider'\n\nexport type { ShopifyProvider }\n\nexport const useCommerce = () => useCoreCommerce<ShopifyProvider>()\n\nexport const getCommerceProvider = (storeDomain: string, accessToken: string) => \n getCoreCommerceProvider(getShopifyProvider(storeDomain, accessToken))\n\n","import { GlobalContextMeta } from \"@plasmicapp/host\";\nimport registerGlobalContext from \"@plasmicapp/host/registerGlobalContext\";\nimport {\n CartActionsProvider,\n globalActionsRegistrations,\n} from \"@plasmicpkgs/commerce\";\nimport React from \"react\";\nimport { defaultAccessToken, defaultStoreDomain } from \"./graphql-config\";\nimport { Registerable } from \"./registerable\";\nimport { getCommerceProvider } from \"./shopify\";\n\ninterface CommerceProviderProps {\n children?: React.ReactNode;\n storeDomain: string;\n accessToken: string;\n}\n\nconst globalContextName = \"plasmic-commerce-shopify-provider\";\n\nexport const commerceProviderMeta: GlobalContextMeta<CommerceProviderProps> = {\n name: globalContextName,\n displayName: \"Shopify Provider\",\n props: {\n storeDomain: {\n type: \"string\",\n defaultValue: defaultStoreDomain,\n },\n accessToken: {\n type: \"string\",\n defaultValue: defaultAccessToken,\n },\n },\n ...{ globalActions: globalActionsRegistrations },\n description: `Your store domain usually looks like **storename.myshopify.com**.\n\nFor your access token, get it by following [this video](https://www.youtube.com/watch?v=wB_6cM7tdv4).\n\nSee also the [getting started video](https://www.youtube.com/watch?v=1OJ_gXmta2Q).`,\n importPath: \"@plasmicpkgs/commerce-shopify\",\n importName: \"CommerceProviderComponent\",\n};\n\nexport function CommerceProviderComponent(props: CommerceProviderProps) {\n const { storeDomain, accessToken, children } = props;\n\n const CommerceProvider = React.useMemo(\n () => getCommerceProvider(storeDomain, accessToken),\n [storeDomain, accessToken]\n );\n\n return (\n <CommerceProvider>\n <CartActionsProvider globalContextName={globalContextName}>\n {children}\n </CartActionsProvider>\n </CommerceProvider>\n );\n}\n\nexport function registerCommerceProvider(\n loader?: Registerable,\n customCommerceProviderMeta?: GlobalContextMeta<CommerceProviderProps>\n) {\n const doRegisterComponent: typeof registerGlobalContext = (...args) =>\n loader\n ? loader.registerGlobalContext(...args)\n : registerGlobalContext(...args);\n doRegisterComponent(\n CommerceProviderComponent,\n customCommerceProviderMeta ?? commerceProviderMeta\n );\n}\n","import { Registerable } from \"./registerable\";\nimport { registerCommerceProvider } from \"./registerCommerceProvider\";\nexport * from \"./registerable\";\nexport * from \"./registerCommerceProvider\";\nexport * from \"./shopify\";\n\nexport function registerAll(loader?: Registerable) {\n registerCommerceProvider(loader);\n}\n"],"names":["defaultStoreDomain","defaultAccessToken","shopifyApiVersion","config","schema","_schema","headers","generates","preset","presetConfig","fragmentMasking","documentMode","documents","SHOPIFY_CART_ID_COOKIE","SHOPIFY_CHECKOUT_URL_COOKIE","SHOPIFY_COOKIE_EXPIRE","ArticleSortKeys","BlogSortKeys","CardBrand","CartCardSource","CartDeliveryGroupType","CartErrorCode","CartWarningCode","CollectionSortKeys","CompletionErrorCode","CountPrecision","CountryCode","CropRegion","CurrencyCode","CustomerErrorCode","DeliveryAddressValidationStrategy","DeliveryMethodType","DigitalWallet","DiscountApplicationAllocationMethod","DiscountApplicationTargetSelection","DiscountApplicationTargetType","FilterPresentation","FilterType","ImageContentType","LanguageCode","LocationSortKeys","MediaContentType","MediaHost","MediaPresentationFormat","MenuItemType","MetafieldDeleteErrorCode","MetafieldsSetUserErrorCode","OrderCancelReason","OrderFinancialStatus","OrderFulfillmentStatus","OrderSortKeys","PageSortKeys","PredictiveSearchLimitScope","PredictiveSearchType","PreferenceDeliveryMethodType","ProductCollectionSortKeys","ProductImageSortKeys","ProductMediaSortKeys","ProductRecommendationIntent","ProductSortKeys","ProductVariantSortKeys","SearchPrefixQueryType","SearchSortKeys","SearchType","SearchUnavailableProductsType","SearchableField","SellingPlanCheckoutChargeType","SellingPlanInterval","ShopPayInstallmentsFinancingPlanFrequency","ShopPayInstallmentsLoan","ShopPayPaymentRequestDeliveryMethodType","SitemapType","SubmissionErrorCode","UnitPriceMeasurementMeasuredType","UnitPriceMeasurementMeasuredUnit","UnitSystem","UserErrorsShopPayPaymentRequestSessionUserErrorsCode","WeightUnit","TypedDocumentString","_String","_inheritsLoose","value","__meta__","_this","call","_proto","prototype","toString","_wrapNativeSuper","String","ImageFragmentDoc","fragmentName","ProductVariantFragmentDoc","SeoFragmentDoc","ProductFragmentDoc","CartFragmentDoc","CollectionFragmentDoc","AddToCartDocument","CreateCartDocument","EditCartItemsDocument","RemoveFromCartDocument","CustomerActivateByUrlDocument","GetSiteCollectionsDocument","GetAllProductVendorsDocument","GetAllProductsDocument","GetCartDocument","GetProductsFromCollectionDocument","GetSiteCollectionDocument","GetProductBySlugDocument","GetProductByIdDocument","types","graphql","source","_documents$source","addToCartMutation","createCartMutation","editCartItemsMutation","removeFromCartMutation","colorMap","aliceblue","antiquewhite","aqua","aquamarine","azure","beige","bisque","black","blanchedalmond","blue","blueviolet","brown","burlywood","burgandy","burgundy","cadetblue","chartreuse","chocolate","coral","cornflowerblue","cornsilk","crimson","cyan","darkblue","darkcyan","darkgoldenrod","darkgray","darkgreen","darkgrey","darkkhaki","darkmagenta","darkolivegreen","darkorange","darkorchid","darkred","darksalmon","darkseagreen","darkslateblue","darkslategray","darkslategrey","darkturquoise","darkviolet","deeppink","deepskyblue","dimgray","dimgrey","dodgerblue","firebrick","floralwhite","forestgreen","fuchsia","gainsboro","ghostwhite","gold","goldenrod","gray","green","greenyellow","grey","honeydew","hotpink","indianred","indigo","ivory","khaki","lavender","lavenderblush","lawngreen","lemonchiffon","lightblue","lightcoral","lightcyan","lightgoldenrodyellow","lightgray","lightgreen","lightgrey","lightpink","lightsalmon","lightseagreen","lightskyblue","lightslategray","lightslategrey","lightsteelblue","lightyellow","lime","limegreen","linen","magenta","maroon","mediumaquamarine","mediumblue","mediumorchid","mediumpurple","mediumseagreen","mediumslateblue","mediumspringgreen","mediumturquoise","mediumvioletred","midnightblue","mintcream","mistyrose","moccasin","navajowhite","navy","oldlace","olive","olivedrab","orange","orangered","orchid","palegoldenrod","palegreen","paleturquoise","palevioletred","papayawhip","peachpuff","peru","pink","plum","powderblue","purple","rebeccapurple","red","rosybrown","royalblue","saddlebrown","salmon","sandybrown","seagreen","seashell","sienna","silver","skyblue","slateblue","slategray","slategrey","spacegrey","spacegray","snow","springgreen","steelblue","tan","teal","thistle","tomato","turquoise","violet","wheat","white","whitesmoke","yellow","yellowgreen","money","_ref","amount","currencyCode","isDefaultOption","selectedOption","name","normalizeProductOption","_ref2","id","displayName","values","__typename","toLowerCase","map","output","label","match","mapedColor","replace","_extends","hexColors","normalizeProduct","_ref3","title","vendor","images","variants","description","handle","priceRange","options","rest","_objectWithoutPropertiesLoose","_excluded","path","slug","price","minVariantPrice","edges","edge","normalizeImage","node","_ref4","_ref4$node","selectedOptions","sku","compareAtPrice","requiresShipping","availableForSale","some","o","listPrice","_ref5","optionValues","filter","normalizeCart","cart","undefined","url","checkoutUrl","customerId","email","createdAt","currency","code","_cart$cost$totalAmoun","cost","totalAmount","taxesIncluded","lineItems","lines","_ref6","_ref6$node","quantity","merchandise","variantId","productId","product","variant","_merchandise$id","image","_merchandise$compareA","discounts","lineItemsSubtotalPrice","subtotalAmount","subtotalPrice","totalPrice","normalizeCategory","_ref7","products","isEmpty","length","altText","height","width","alt","cartCreate","_asyncToGenerator","_regeneratorRuntime","mark","_callee","fetch","_yield$fetch","wrap","_callee$","_context","prev","next","query","variables","sent","expires","sameSite","secure","Cookies","set","abrupt","stop","_x","_x2","apply","arguments","getCartId","get","getCartQuery","handler","fetchOptions","fetcher","cartId","input","remove","useHook","useData","response","swrOptions","revalidateOnFocus","useMemo","Object","create","_response$data$lineIt","_response$data","data","enumerable","item","Number","isInteger","CommerceError","message","merchandiseId","_item$quantity","cartLinesAdd","_useCart","useCart","mutate","useCallback","_addItem","_callee2","_callee2$","_context2","addItem","itemId","lineIds","cartLinesRemove","ctx","_ctx","removeItem","_input$id","ValidationError","_ref$input","removeItemHandler","cartLinesUpdate","debounce","_ctx$wait","wait","getFetcher","storeDomain","accessToken","_ref$url","_ref$method","method","locale","vars","res","_yield$res$json","errors","_yield$res$json2","_errors","body","JSON","stringify","ok","json","getError","status","_errors2","FetcherError","getProductQueryBySlug","getProductQueryById","startsWith","productByHandle","getSortVariables","sort","isCategory","sortKey","reverse","getSearchVariables","brandId","search","categoryId","count","searchQuery","first","getAllProductsQuery","getCollectionProductsQuery","_data$node","slice","_data$node2","_data$products","_products","found","_products2","getAllProductVendors","vendorsStrings","Array","from","Set","v","entityId","_response$data$length","getSiteCollectionsQuery","getCollectionQueryById","_data$collections$edg","_data$collections","collections","collection","getShopifyProvider","cartCookie","useAddItem","useUpdateItem","useRemoveItem","useSearch","useProduct","site","useCategories","useBrands","useCommerce","useCoreCommerce","getCommerceProvider","getCoreCommerceProvider","globalContextName","commerceProviderMeta","props","type","defaultValue","globalActions","globalActionsRegistrations","importPath","importName","CommerceProviderComponent","children","CommerceProvider","React","CartActionsProvider","registerCommerceProvider","loader","customCommerceProviderMeta","doRegisterComponent","registerGlobalContext","registerAll"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEO,IAAMA,kBAAkB,GAAG,6BAA6B;AACxD,IAAMC,kBAAkB,GAAG,kCAAkC;AAC7D,IAAMC,iBAAiB,GAAG,SAAS;AAE1C,IAAMC,MAAM,GAAkB;EAC5BC,MAAM,GAAAC,OAAA,OAAAA,OAAA,cACQL,kBAAkB,aAAQE,iBAAiB,sBAAkB;IACvEI,OAAO,EAAE;MACP,mCAAmC,EAAEL;;GAExC,EAAAI,OAAA,CACF;EACDE,SAAS,EAAE;IACT,0BAA0B,EAAE;MAC1BC,MAAM,EAAE,QAAQ;MAChBC,YAAY,EAAE;QACZC,eAAe,EAAE;OAClB;MACDP,MAAM,EAAE;QACNQ,YAAY,EAAE;;;GAGnB;EACDC,SAAS,EAAE,CACT,kCAAkC,EAClC,kCAAkC,EAClC,gCAAgC;CAEnC;;AC9BM,IAAMC,sBAAsB,GAAG,gBAAgB;AACtD,AAAO,IAAMC,2BAA2B,GAAG,qBAAqB;AAChE,AACO,IAAMC,qBAAqB,GAAG,EAAE;;ACiSvC;AACA,AAAA,IAAYC,eAmBX;AAnBD,WAAYA,eAAe;;EAEzBA,oCAAiB;;EAEjBA,2CAAwB;;EAExBA,4BAAS;;EAETA,+CAA4B;;;;;;EAM5BA,0CAAuB;;EAEvBA,kCAAe;;EAEfA,2CAAwB;AAC1B,CAAC,EAnBWA,eAAe,KAAfA,eAAe;AAyM3B;AACA,AAAA,IAAYC,YAaX;AAbD,WAAYA,YAAY;;EAEtBA,iCAAiB;;EAEjBA,yBAAS;;;;;;EAMTA,uCAAuB;;EAEvBA,+BAAe;AACjB,CAAC,EAbWA,YAAY,KAAZA,YAAY;AAsExB;AACA,AAAA,IAAYC,SAaX;AAbD,WAAYA,SAAS;;EAEnBA,iDAAoC;;EAEpCA,uCAA0B;;EAE1BA,kCAAqB;;EAErBA,wBAAW;;EAEXA,sCAAyB;;EAEzBA,0BAAa;AACf,CAAC,EAbWA,SAAS,KAATA,SAAS;AA+PrB;;;;AAIA,AAAA,IAAYC,cAOX;AAPD,WAAYA,cAAc;;;;;;EAMxBA,uDAAqC;AACvC,CAAC,EAPWA,cAAc,KAAdA,cAAc;AA8X1B;;;;AAIA,AAAA,IAAYC,qBASX;AATD,WAAYA,qBAAqB;;;;;;EAM/BA,8DAAqC;;EAErCA,sDAA6B;AAC/B,CAAC,EATWA,qBAAqB,KAArBA,qBAAqB;AAyIjC;AACA,AAAA,IAAYC,aAiEX;AAjED,WAAYA,aAAa;;EAEvBA,6EAA4D;;EAE5DA,kFAAiE;;EAEjEA,uEAAsD;;EAEtDA,0GAAyF;;EAEzFA,qEAAoD;;EAEpDA,oEAAmD;;EAEnDA,oCAAmB;;EAEnBA,oEAAmD;;EAEnDA,yEAAwD;;EAExDA,gEAA+C;;EAE/CA,kEAAiD;;EAEjDA,uDAAsC;;EAEtCA,oEAAmD;;EAEnDA,yDAAwC;;EAExCA,mDAAkC;;EAElCA,uEAAsD;;EAEtDA,0EAAyD;;EAEzDA,4EAA2D;;EAE3DA,uCAAsB;;EAEtBA,qDAAoC;;EAEpCA,kDAAiC;;EAEjCA,6EAA4D;;EAE5DA,8DAA6C;;EAE7CA,6CAA4B;;EAE5BA,8CAA6B;;EAE7BA,kGAAiF;;EAEjFA,2EAA0D;;EAE1DA,wDAAuC;;EAEvCA,yEAAwD;;EAExDA,sEAAqD;;EAErDA,uDAAsC;;EAEtCA,+DAA8C;AAChD,CAAC,EAjEWA,aAAa,KAAbA,aAAa;AA0lBzB;AACA,AAAA,IAAYC,eASX;AATD,WAAYA,eAAe;;EAEzBA,0EAAuD;;EAEvDA,6EAA0D;;EAE1DA,qEAAkD;;EAElDA,mFAAgE;AAClE,CAAC,EATWA,eAAe,KAAfA,eAAe;AAqI3B;AACA,AAAA,IAAYC,kBAaX;AAbD,WAAYA,kBAAkB;;EAE5BA,+BAAS;;;;;;EAMTA,6CAAuB;;EAEvBA,qCAAe;;EAEfA,8CAAwB;AAC1B,CAAC,EAbWA,kBAAkB,KAAlBA,kBAAkB;AAmK9B;AACA,AAAA,IAAYC,mBAcX;AAdD,WAAYA,mBAAmB;EAC7BA,sCAAe;EACfA,gFAAyD;EACzDA,yEAAkD;EAClDA,gEAAyC;EACzCA,oEAA6C;EAC7CA,qDAA8B;EAC9BA,0FAAmE;EACnEA,8EAAuD;EACvDA,uFAAgE;EAChEA,+EAAwD;EACxDA,0EAAmD;EACnDA,qFAA8D;EAC9DA,wEAAiD;AACnD,CAAC,EAdWA,mBAAmB,KAAnBA,mBAAmB;AA2D/B;AACA,AAAA,IAAYC,cAKX;AALD,WAAYA,cAAc;;EAExBA,sCAAoB;;EAEpBA,iCAAe;AACjB,CAAC,EALWA,cAAc,KAAdA,cAAc;AAwB1B;;;;;;;AAOA,AAAA,IAAYC,WA2eX;AA3eD,WAAYA,WAAW;;EAErBA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;AACX,CAAC,EA3eWA,WAAW,KAAXA,WAAW;AA6evB;AACA,AAAA,IAAYC,UAWX;AAXD,WAAYA,UAAU;;EAEpBA,+BAAiB;;EAEjBA,+BAAiB;;EAEjBA,2BAAa;;EAEbA,6BAAe;;EAEfA,yBAAW;AACb,CAAC,EAXWA,UAAU,KAAVA,UAAU;AAwBtB;;;;;;AAMA,AAAA,IAAYC,YA4UX;AA5UD,WAAYA,YAAY;;EAEtBA,2BAAW;;EAEXA,2BAAW;;EAEXA,2BAAW;;EAEXA,2BAAW;;EAEXA,2BAAW;;EAEXA,2BAAW;;EAEXA,2BAAW;;EAEXA,2BAAW;;EAEXA,2BAAW;;EAEXA,2BAAW;;EAEXA,2BAAW;;EAEXA,2BAAW;;EAEXA,2BAAW;;EAEXA,2BAAW;;EAEXA,2BAAW;;EAEXA,2BAAW;;EAEXA,2BAAW;;EAEXA,2BAAW;;EAEXA,2BAAW;;EAEXA,2BAAW;;EAEXA,2BAAW;;EAEXA,2BAAW;;EAEXA,2BAAW;;EAEXA,2BAAW;;;;;EAKXA,2BAAW;;EAEXA,2BAAW;;EAEXA,2BAAW;;EAEXA,2BAAW;;EAEXA,2BAAW;;EAEXA,2BAAW;;EAEXA,2BAAW;;EAEXA,2BAAW;;EAEXA,2BAAW;;EAEXA,2BAAW;;EAEXA,2BAAW;;EAEXA,2BAAW;;EAEXA,2BAAW;;EAEXA,2BAAW;;EAEXA,2BAAW;;EAEXA,2BAAW;;EAEXA,2BAAW;;EAEXA,2BAAW;;EAEXA,2BAAW;;EAEXA,2BAAW;;EAEXA,2BAAW;;EAEXA,2BAAW;;EAEXA,2BAAW;;EAEXA,2BAAW;;EAEXA,2BAAW;;EAEXA,2BAAW;;EAEXA,2BAAW;;EAEXA,2BAAW;;EAEXA,2BAAW;;EAEXA,2BAAW;;EAEXA,2BAAW;;EAEXA,2BAAW;;EAEXA,2BAAW;;EAEXA,2BAAW;;EAEXA,2BAAW;;EAEXA,2BAAW;;EAEXA,2BAAW;;EAEXA,2BAAW;;EAEXA,2BAAW;;EAEXA,2BAAW;;EAEXA,2BAAW;;EAEXA,2BAAW;;EAEXA,2BAAW;;EAEXA,2BAAW;;EAEXA,2BAAW;;EAEXA,2BAAW;;EAEXA,2BAAW;;EAEXA,2BAAW;;EAEXA,2BAAW;;EAEXA,2BAAW;;EAEXA,2BAAW;;EAEXA,2BAAW;;EAEXA,2BAAW;;EAEXA,2BAAW;;EAEXA,2BAAW;;EAEXA,2BAAW;;EAEXA,2BAAW;;EAEXA,2BAAW;;EAEXA,2BAAW;;EAEXA,2BAAW;;EAEXA,2BAAW;;EAEXA,2BAAW;;EAEXA,2BAAW;;EAEXA,2BAAW;;EAEXA,2BAAW;;EAEXA,2BAAW;;EAEXA,2BAAW;;EAEXA,2BAAW;;EAEXA,2BAAW;;EAEXA,2BAAW;;EAEXA,2BAAW;;EAEXA,2BAAW;;EAEXA,2BAAW;;EAEXA,2BAAW;;EAEXA,2BAAW;;EAEXA,2BAAW;;EAEXA,2BAAW;;EAEXA,2BAAW;;EAEXA,2BAAW;;EAEXA,2BAAW;;EAEXA,2BAAW;;EAEXA,2BAAW;;EAEXA,2BAAW;;EAEXA,2BAAW;;EAEXA,2BAAW;;EAEXA,2BAAW;;EAEXA,2BAAW;;EAEXA,2BAAW;;EAEXA,2BAAW;;EAEXA,2BAAW;;EAEXA,2BAAW;;EAEXA,2BAAW;;EAEXA,2BAAW;;EAEXA,2BAAW;;EAEXA,2BAAW;;EAEXA,2BAAW;;EAEXA,2BAAW;;EAEXA,2BAAW;;EAEXA,2BAAW;;EAEXA,2BAAW;;EAEXA,2BAAW;;EAEXA,2BAAW;;EAEXA,2BAAW;;EAEXA,2BAAW;;EAEXA,2BAAW;;;;;EAKXA,2BAAW;;EAEXA,2BAAW;;EAEXA,2BAAW;;EAEXA,2BAAW;;EAEXA,2BAAW;;EAEXA,2BAAW;;EAEXA,2BAAW;;EAEXA,2BAAW;;EAEXA,2BAAW;;EAEXA,2BAAW;;EAEXA,2BAAW;;EAEXA,2BAAW;;EAEXA,2BAAW;;EAEXA,2BAAW;;EAEXA,2BAAW;;EAEXA,2BAAW;;EAEXA,2BAAW;;EAEXA,2BAAW;;EAEXA,2BAAW;;;;;EAKXA,2BAAW;;EAEXA,2BAAW;;EAEXA,2BAAW;;EAEXA,2BAAW;;EAEXA,2BAAW;;EAEXA,2BAAW;;EAEXA,2BAAW;;EAEXA,2BAAW;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"}
|
|
1
|
+
{"version":3,"file":"commerce-shopify.esm.js","sources":["../src/graphql-config.ts","../src/const.ts","../src/utils/graphql/gen/graphql.ts","../src/utils/graphql/gen/gql.ts","../src/utils/mutations/cart.ts","../src/utils/colors.ts","../src/utils/normalize.ts","../src/utils/cart-create.ts","../src/utils/get-cart-id.ts","../src/utils/queries/get-cart-query.ts","../src/cart/use-cart.tsx","../src/cart/use-add-item.tsx","../src/cart/use-remove-item.tsx","../src/cart/use-update-item.tsx","../src/fetcher.ts","../src/utils/queries/get-product-query.ts","../src/product/use-product.tsx","../src/utils/get-sort-variables.ts","../src/utils/get-search-variables.ts","../src/utils/queries/get-all-products-query.ts","../src/utils/queries/get-collection-products-query.ts","../src/product/use-search.tsx","../src/utils/queries/get-all-product-vendors-query.ts","../src/site/use-brands.tsx","../src/utils/queries/get-all-collections-query.ts","../src/utils/queries/get-collection-query.ts","../src/site/use-categories.tsx","../src/provider.ts","../src/shopify.tsx","../src/registerCommerceProvider.tsx","../src/index.tsx"],"sourcesContent":["import type { CodegenConfig } from \"@graphql-codegen/cli\";\n\nexport const defaultStoreDomain = \"next-js-store.myshopify.com\";\nexport const defaultAccessToken = \"ef7d41c7bf7e1c214074d0d3047bcd7b\";\nexport const shopifyApiVersion = \"2025-01\";\n\nconst config: CodegenConfig = {\n schema: {\n [`https://${defaultStoreDomain}/api/${shopifyApiVersion}/graphql.json`]: {\n headers: {\n \"X-Shopify-Storefront-Access-Token\": defaultAccessToken,\n },\n },\n },\n generates: {\n \"./src/utils/graphql/gen/\": {\n preset: \"client\",\n presetConfig: {\n fragmentMasking: false,\n },\n config: {\n documentMode: \"string\",\n },\n },\n },\n documents: [\n \"./src/utils/fragments/*.{ts,tsx}\",\n \"./src/utils/mutations/*.{ts,tsx}\",\n \"./src/utils/queries/*.{ts,tsx}\",\n ],\n};\n\nexport default config;\n","export const SHOPIFY_CART_ID_COOKIE = \"shopify_cartId\";\nexport const SHOPIFY_CHECKOUT_URL_COOKIE = \"shopify_checkoutUrl\";\nexport const SHOPIFY_CUSTOMER_TOKEN_COOKIE = \"shopify_customerToken\";\nexport const SHOPIFY_COOKIE_EXPIRE = 30;\n","/* eslint-disable */\nimport { DocumentTypeDecoration } from \"@graphql-typed-document-node/core\";\nexport type Maybe<T> = T | null;\nexport type InputMaybe<T> = Maybe<T>;\nexport type Exact<T extends { [key: string]: unknown }> = {\n [K in keyof T]: T[K];\n};\nexport type MakeOptional<T, K extends keyof T> = Omit<T, K> & {\n [SubKey in K]?: Maybe<T[SubKey]>;\n};\nexport type MakeMaybe<T, K extends keyof T> = Omit<T, K> & {\n [SubKey in K]: Maybe<T[SubKey]>;\n};\nexport type MakeEmpty<\n T extends { [key: string]: unknown },\n K extends keyof T\n> = { [_ in K]?: never };\nexport type Incremental<T> =\n | T\n | {\n [P in keyof T]?: P extends \" $fragmentName\" | \"__typename\" ? T[P] : never;\n };\n/** All built-in and custom scalars, mapped to their actual values */\nexport type Scalars = {\n ID: { input: string; output: string };\n String: { input: string; output: string };\n Boolean: { input: boolean; output: boolean };\n Int: { input: number; output: number };\n Float: { input: number; output: number };\n /**\n * A string containing a hexadecimal representation of a color.\n *\n * For example, \"#6A8D48\".\n *\n */\n Color: { input: any; output: any };\n /**\n * Represents an [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601)-encoded date and time string.\n * For example, 3:50 pm on September 7, 2019 in the time zone of UTC (Coordinated Universal Time) is\n * represented as `\"2019-09-07T15:50:00Z`\".\n *\n */\n DateTime: { input: any; output: any };\n /**\n * A signed decimal number, which supports arbitrary precision and is serialized as a string.\n *\n * Example values: `\"29.99\"`, `\"29.999\"`.\n *\n */\n Decimal: { input: any; output: any };\n /**\n * A string containing HTML code. Refer to the [HTML spec](https://html.spec.whatwg.org/#elements-3) for a\n * complete list of HTML elements.\n *\n * Example value: `\"<p>Grey cotton knit sweater.</p>\"`\n *\n */\n HTML: { input: any; output: any };\n /** An ISO 8601-encoded datetime */\n ISO8601DateTime: { input: any; output: any };\n /**\n * A [JSON](https://www.json.org/json-en.html) object.\n *\n * Example value:\n * `{\n * \"product\": {\n * \"id\": \"gid://shopify/Product/1346443542550\",\n * \"title\": \"White T-shirt\",\n * \"options\": [{\n * \"name\": \"Size\",\n * \"values\": [\"M\", \"L\"]\n * }]\n * }\n * }`\n *\n */\n JSON: { input: any; output: any };\n /**\n * Represents an [RFC 3986](https://datatracker.ietf.org/doc/html/rfc3986) and\n * [RFC 3987](https://datatracker.ietf.org/doc/html/rfc3987)-compliant URI string.\n *\n * For example, `\"https://example.myshopify.com\"` is a valid URL. It includes a scheme (`https`) and a host\n * (`example.myshopify.com`).\n *\n */\n URL: { input: any; output: any };\n /**\n * An unsigned 64-bit integer. Represents whole numeric values between 0 and 2^64 - 1 encoded as a string of base-10 digits.\n *\n * Example value: `\"50\"`.\n *\n */\n UnsignedInt64: { input: any; output: any };\n};\n\n/**\n * A version of the API, as defined by [Shopify API versioning](https://shopify.dev/api/usage/versioning).\n * Versions are commonly referred to by their handle (for example, `2021-10`).\n *\n */\nexport type ApiVersion = {\n __typename?: \"ApiVersion\";\n /** The human-readable name of the version. */\n displayName: Scalars[\"String\"][\"output\"];\n /** The unique identifier of an ApiVersion. All supported API versions have a date-based (YYYY-MM) or `unstable` handle. */\n handle: Scalars[\"String\"][\"output\"];\n /** Whether the version is actively supported by Shopify. Supported API versions are guaranteed to be stable. Unsupported API versions include unstable, release candidate, and end-of-life versions that are marked as unsupported. For more information, refer to [Versioning](https://shopify.dev/api/usage/versioning). */\n supported: Scalars[\"Boolean\"][\"output\"];\n};\n\n/**\n * The input fields for submitting Apple Pay payment method information for checkout.\n *\n */\nexport type ApplePayWalletContentInput = {\n /** The customer's billing address. */\n billingAddress: MailingAddressInput;\n /** The data for the Apple Pay wallet. */\n data: Scalars[\"String\"][\"input\"];\n /** The header data for the Apple Pay wallet. */\n header: ApplePayWalletHeaderInput;\n /** The last digits of the card used to create the payment. */\n lastDigits?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n /** The signature for the Apple Pay wallet. */\n signature: Scalars[\"String\"][\"input\"];\n /** The version for the Apple Pay wallet. */\n version: Scalars[\"String\"][\"input\"];\n};\n\n/**\n * The input fields for submitting wallet payment method information for checkout.\n *\n */\nexport type ApplePayWalletHeaderInput = {\n /** The application data for the Apple Pay wallet. */\n applicationData?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n /** The ephemeral public key for the Apple Pay wallet. */\n ephemeralPublicKey: Scalars[\"String\"][\"input\"];\n /** The public key hash for the Apple Pay wallet. */\n publicKeyHash: Scalars[\"String\"][\"input\"];\n /** The transaction ID for the Apple Pay wallet. */\n transactionId: Scalars[\"String\"][\"input\"];\n};\n\n/** Details about the gift card used on the checkout. */\nexport type AppliedGiftCard = Node & {\n __typename?: \"AppliedGiftCard\";\n /** The amount that was taken from the gift card by applying it. */\n amountUsed: MoneyV2;\n /**\n * The amount that was taken from the gift card by applying it.\n * @deprecated Use `amountUsed` instead.\n */\n amountUsedV2: MoneyV2;\n /** The amount left on the gift card. */\n balance: MoneyV2;\n /**\n * The amount left on the gift card.\n * @deprecated Use `balance` instead.\n */\n balanceV2: MoneyV2;\n /** A globally-unique ID. */\n id: Scalars[\"ID\"][\"output\"];\n /** The last characters of the gift card. */\n lastCharacters: Scalars[\"String\"][\"output\"];\n /** The amount that was applied to the checkout in its currency. */\n presentmentAmountUsed: MoneyV2;\n};\n\n/** An article in an online store blog. */\nexport type Article = HasMetafields &\n Node &\n OnlineStorePublishable &\n Trackable & {\n __typename?: \"Article\";\n /**\n * The article's author.\n * @deprecated Use `authorV2` instead.\n */\n author: ArticleAuthor;\n /** The article's author. */\n authorV2?: Maybe<ArticleAuthor>;\n /** The blog that the article belongs to. */\n blog: Blog;\n /** List of comments posted on the article. */\n comments: CommentConnection;\n /** Stripped content of the article, single line with HTML tags removed. */\n content: Scalars[\"String\"][\"output\"];\n /** The content of the article, complete with HTML formatting. */\n contentHtml: Scalars[\"HTML\"][\"output\"];\n /** Stripped excerpt of the article, single line with HTML tags removed. */\n excerpt?: Maybe<Scalars[\"String\"][\"output\"]>;\n /** The excerpt of the article, complete with HTML formatting. */\n excerptHtml?: Maybe<Scalars[\"HTML\"][\"output\"]>;\n /** A human-friendly unique string for the Article automatically generated from its title. */\n handle: Scalars[\"String\"][\"output\"];\n /** A globally-unique ID. */\n id: Scalars[\"ID\"][\"output\"];\n /** The image associated with the article. */\n image?: Maybe<Image>;\n /** A [custom field](https://shopify.dev/docs/apps/build/custom-data), including its `namespace` and `key`, that's associated with a Shopify resource for the purposes of adding and storing additional information. */\n metafield?: Maybe<Metafield>;\n /** A list of [custom fields](/docs/apps/build/custom-data) that a merchant associates with a Shopify resource. */\n metafields: Array<Maybe<Metafield>>;\n /** The URL used for viewing the resource on the shop's Online Store. Returns `null` if the resource is currently not published to the Online Store sales channel. */\n onlineStoreUrl?: Maybe<Scalars[\"URL\"][\"output\"]>;\n /** The date and time when the article was published. */\n publishedAt: Scalars[\"DateTime\"][\"output\"];\n /** The article’s SEO information. */\n seo?: Maybe<Seo>;\n /**\n * A categorization that a article can be tagged with.\n *\n */\n tags: Array<Scalars[\"String\"][\"output\"]>;\n /** The article’s name. */\n title: Scalars[\"String\"][\"output\"];\n /** URL parameters to be added to a page URL to track the origin of on-site search traffic for [analytics reporting](https://help.shopify.com/manual/reports-and-analytics/shopify-reports/report-types/default-reports/behaviour-reports). Returns a result when accessed through the [search](https://shopify.dev/docs/api/storefront/current/queries/search) or [predictiveSearch](https://shopify.dev/docs/api/storefront/current/queries/predictiveSearch) queries, otherwise returns null. */\n trackingParameters?: Maybe<Scalars[\"String\"][\"output\"]>;\n };\n\n/** An article in an online store blog. */\nexport type ArticleCommentsArgs = {\n after?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n before?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n first?: InputMaybe<Scalars[\"Int\"][\"input\"]>;\n last?: InputMaybe<Scalars[\"Int\"][\"input\"]>;\n reverse?: InputMaybe<Scalars[\"Boolean\"][\"input\"]>;\n};\n\n/** An article in an online store blog. */\nexport type ArticleContentArgs = {\n truncateAt?: InputMaybe<Scalars[\"Int\"][\"input\"]>;\n};\n\n/** An article in an online store blog. */\nexport type ArticleExcerptArgs = {\n truncateAt?: InputMaybe<Scalars[\"Int\"][\"input\"]>;\n};\n\n/** An article in an online store blog. */\nexport type ArticleMetafieldArgs = {\n key: Scalars[\"String\"][\"input\"];\n namespace?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n};\n\n/** An article in an online store blog. */\nexport type ArticleMetafieldsArgs = {\n identifiers: Array<HasMetafieldsIdentifier>;\n};\n\n/** The author of an article. */\nexport type ArticleAuthor = {\n __typename?: \"ArticleAuthor\";\n /** The author's bio. */\n bio?: Maybe<Scalars[\"String\"][\"output\"]>;\n /** The author’s email. */\n email: Scalars[\"String\"][\"output\"];\n /** The author's first name. */\n firstName: Scalars[\"String\"][\"output\"];\n /** The author's last name. */\n lastName: Scalars[\"String\"][\"output\"];\n /** The author's full name. */\n name: Scalars[\"String\"][\"output\"];\n};\n\n/**\n * An auto-generated type for paginating through multiple Articles.\n *\n */\nexport type ArticleConnection = {\n __typename?: \"ArticleConnection\";\n /** A list of edges. */\n edges: Array<ArticleEdge>;\n /** A list of the nodes contained in ArticleEdge. */\n nodes: Array<Article>;\n /** Information to aid in pagination. */\n pageInfo: PageInfo;\n};\n\n/**\n * An auto-generated type which holds one Article and a cursor during pagination.\n *\n */\nexport type ArticleEdge = {\n __typename?: \"ArticleEdge\";\n /** A cursor for use in pagination. */\n cursor: Scalars[\"String\"][\"output\"];\n /** The item at the end of ArticleEdge. */\n node: Article;\n};\n\n/** The set of valid sort keys for the Article query. */\nexport enum ArticleSortKeys {\n /** Sort by the `author` value. */\n Author = \"AUTHOR\",\n /** Sort by the `blog_title` value. */\n BlogTitle = \"BLOG_TITLE\",\n /** Sort by the `id` value. */\n Id = \"ID\",\n /** Sort by the `published_at` value. */\n PublishedAt = \"PUBLISHED_AT\",\n /**\n * Sort by relevance to the search terms when the `query` parameter is specified on the connection.\n * Don't use this sort key when no search query is specified.\n *\n */\n Relevance = \"RELEVANCE\",\n /** Sort by the `title` value. */\n Title = \"TITLE\",\n /** Sort by the `updated_at` value. */\n UpdatedAt = \"UPDATED_AT\",\n}\n\n/** Represents a generic custom attribute, such as whether an order is a customer's first. */\nexport type Attribute = {\n __typename?: \"Attribute\";\n /**\n * The key or name of the attribute. For example, `\"customersFirstOrder\"`.\n *\n */\n key: Scalars[\"String\"][\"output\"];\n /**\n * The value of the attribute. For example, `\"true\"`.\n *\n */\n value?: Maybe<Scalars[\"String\"][\"output\"]>;\n};\n\n/** The input fields for an attribute. */\nexport type AttributeInput = {\n /** Key or name of the attribute. */\n key: Scalars[\"String\"][\"input\"];\n /** Value of the attribute. */\n value: Scalars[\"String\"][\"input\"];\n};\n\n/**\n * Automatic discount applications capture the intentions of a discount that was automatically applied.\n *\n */\nexport type AutomaticDiscountApplication = DiscountApplication & {\n __typename?: \"AutomaticDiscountApplication\";\n /** The method by which the discount's value is allocated to its entitled items. */\n allocationMethod: DiscountApplicationAllocationMethod;\n /** Which lines of targetType that the discount is allocated over. */\n targetSelection: DiscountApplicationTargetSelection;\n /** The type of line that the discount is applicable towards. */\n targetType: DiscountApplicationTargetType;\n /** The title of the application. */\n title: Scalars[\"String\"][\"output\"];\n /** The value of the discount application. */\n value: PricingValue;\n};\n\n/** Represents a cart line common fields. */\nexport type BaseCartLine = {\n /** An attribute associated with the cart line. */\n attribute?: Maybe<Attribute>;\n /** The attributes associated with the cart line. Attributes are represented as key-value pairs. */\n attributes: Array<Attribute>;\n /** The cost of the merchandise that the buyer will pay for at checkout. The costs are subject to change and changes will be reflected at checkout. */\n cost: CartLineCost;\n /** The discounts that have been applied to the cart line. */\n discountAllocations: Array<CartDiscountAllocation>;\n /**\n * The estimated cost of the merchandise that the buyer will pay for at checkout. The estimated costs are subject to change and changes will be reflected at checkout.\n * @deprecated Use `cost` instead.\n */\n estimatedCost: CartLineEstimatedCost;\n /** A globally-unique ID. */\n id: Scalars[\"ID\"][\"output\"];\n /** The merchandise that the buyer intends to purchase. */\n merchandise: Merchandise;\n /** The quantity of the merchandise that the customer intends to purchase. */\n quantity: Scalars[\"Int\"][\"output\"];\n /** The selling plan associated with the cart line and the effect that each selling plan has on variants when they're purchased. */\n sellingPlanAllocation?: Maybe<SellingPlanAllocation>;\n};\n\n/** Represents a cart line common fields. */\nexport type BaseCartLineAttributeArgs = {\n key: Scalars[\"String\"][\"input\"];\n};\n\n/**\n * An auto-generated type for paginating through multiple BaseCartLines.\n *\n */\nexport type BaseCartLineConnection = {\n __typename?: \"BaseCartLineConnection\";\n /** A list of edges. */\n edges: Array<BaseCartLineEdge>;\n /** A list of the nodes contained in BaseCartLineEdge. */\n nodes: Array<BaseCartLine>;\n /** Information to aid in pagination. */\n pageInfo: PageInfo;\n};\n\n/**\n * An auto-generated type which holds one BaseCartLine and a cursor during pagination.\n *\n */\nexport type BaseCartLineEdge = {\n __typename?: \"BaseCartLineEdge\";\n /** A cursor for use in pagination. */\n cursor: Scalars[\"String\"][\"output\"];\n /** The item at the end of BaseCartLineEdge. */\n node: BaseCartLine;\n};\n\n/** An online store blog. */\nexport type Blog = HasMetafields &\n Node &\n OnlineStorePublishable & {\n __typename?: \"Blog\";\n /** Find an article by its handle. */\n articleByHandle?: Maybe<Article>;\n /** List of the blog's articles. */\n articles: ArticleConnection;\n /** The authors who have contributed to the blog. */\n authors: Array<ArticleAuthor>;\n /**\n * A human-friendly unique string for the Blog automatically generated from its title.\n *\n */\n handle: Scalars[\"String\"][\"output\"];\n /** A globally-unique ID. */\n id: Scalars[\"ID\"][\"output\"];\n /** A [custom field](https://shopify.dev/docs/apps/build/custom-data), including its `namespace` and `key`, that's associated with a Shopify resource for the purposes of adding and storing additional information. */\n metafield?: Maybe<Metafield>;\n /** A list of [custom fields](/docs/apps/build/custom-data) that a merchant associates with a Shopify resource. */\n metafields: Array<Maybe<Metafield>>;\n /** The URL used for viewing the resource on the shop's Online Store. Returns `null` if the resource is currently not published to the Online Store sales channel. */\n onlineStoreUrl?: Maybe<Scalars[\"URL\"][\"output\"]>;\n /** The blog's SEO information. */\n seo?: Maybe<Seo>;\n /** The blogs’s title. */\n title: Scalars[\"String\"][\"output\"];\n };\n\n/** An online store blog. */\nexport type BlogArticleByHandleArgs = {\n handle: Scalars[\"String\"][\"input\"];\n};\n\n/** An online store blog. */\nexport type BlogArticlesArgs = {\n after?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n before?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n first?: InputMaybe<Scalars[\"Int\"][\"input\"]>;\n last?: InputMaybe<Scalars[\"Int\"][\"input\"]>;\n query?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n reverse?: InputMaybe<Scalars[\"Boolean\"][\"input\"]>;\n sortKey?: InputMaybe<ArticleSortKeys>;\n};\n\n/** An online store blog. */\nexport type BlogMetafieldArgs = {\n key: Scalars[\"String\"][\"input\"];\n namespace?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n};\n\n/** An online store blog. */\nexport type BlogMetafieldsArgs = {\n identifiers: Array<HasMetafieldsIdentifier>;\n};\n\n/**\n * An auto-generated type for paginating through multiple Blogs.\n *\n */\nexport type BlogConnection = {\n __typename?: \"BlogConnection\";\n /** A list of edges. */\n edges: Array<BlogEdge>;\n /** A list of the nodes contained in BlogEdge. */\n nodes: Array<Blog>;\n /** Information to aid in pagination. */\n pageInfo: PageInfo;\n};\n\n/**\n * An auto-generated type which holds one Blog and a cursor during pagination.\n *\n */\nexport type BlogEdge = {\n __typename?: \"BlogEdge\";\n /** A cursor for use in pagination. */\n cursor: Scalars[\"String\"][\"output\"];\n /** The item at the end of BlogEdge. */\n node: Blog;\n};\n\n/** The set of valid sort keys for the Blog query. */\nexport enum BlogSortKeys {\n /** Sort by the `handle` value. */\n Handle = \"HANDLE\",\n /** Sort by the `id` value. */\n Id = \"ID\",\n /**\n * Sort by relevance to the search terms when the `query` parameter is specified on the connection.\n * Don't use this sort key when no search query is specified.\n *\n */\n Relevance = \"RELEVANCE\",\n /** Sort by the `title` value. */\n Title = \"TITLE\",\n}\n\n/**\n * The store's [branding configuration](https://help.shopify.com/en/manual/promoting-marketing/managing-brand-assets).\n *\n */\nexport type Brand = {\n __typename?: \"Brand\";\n /** The colors of the store's brand. */\n colors: BrandColors;\n /** The store's cover image. */\n coverImage?: Maybe<MediaImage>;\n /** The store's default logo. */\n logo?: Maybe<MediaImage>;\n /** The store's short description. */\n shortDescription?: Maybe<Scalars[\"String\"][\"output\"]>;\n /** The store's slogan. */\n slogan?: Maybe<Scalars[\"String\"][\"output\"]>;\n /** The store's preferred logo for square UI elements. */\n squareLogo?: Maybe<MediaImage>;\n};\n\n/**\n * A group of related colors for the shop's brand.\n *\n */\nexport type BrandColorGroup = {\n __typename?: \"BrandColorGroup\";\n /** The background color. */\n background?: Maybe<Scalars[\"Color\"][\"output\"]>;\n /** The foreground color. */\n foreground?: Maybe<Scalars[\"Color\"][\"output\"]>;\n};\n\n/**\n * The colors of the shop's brand.\n *\n */\nexport type BrandColors = {\n __typename?: \"BrandColors\";\n /** The shop's primary brand colors. */\n primary: Array<BrandColorGroup>;\n /** The shop's secondary brand colors. */\n secondary: Array<BrandColorGroup>;\n};\n\n/**\n * The input fields for obtaining the buyer's identity.\n *\n */\nexport type BuyerInput = {\n /** The identifier of the company location. */\n companyLocationId?: InputMaybe<Scalars[\"ID\"][\"input\"]>;\n /** The customer access token retrieved from the [Customer Accounts API](https://shopify.dev/docs/api/customer#step-obtain-access-token). */\n customerAccessToken: Scalars[\"String\"][\"input\"];\n};\n\n/** Card brand, such as Visa or Mastercard, which can be used for payments. */\nexport enum CardBrand {\n /** American Express. */\n AmericanExpress = \"AMERICAN_EXPRESS\",\n /** Diners Club. */\n DinersClub = \"DINERS_CLUB\",\n /** Discover. */\n Discover = \"DISCOVER\",\n /** JCB. */\n Jcb = \"JCB\",\n /** Mastercard. */\n Mastercard = \"MASTERCARD\",\n /** Visa. */\n Visa = \"VISA\",\n}\n\n/**\n * A cart represents the merchandise that a buyer intends to purchase,\n * and the estimated cost associated with the cart. Learn how to\n * [interact with a cart](https://shopify.dev/custom-storefronts/internationalization/international-pricing)\n * during a customer's session.\n *\n */\nexport type Cart = HasMetafields &\n Node & {\n __typename?: \"Cart\";\n /** The gift cards that have been applied to the cart. */\n appliedGiftCards: Array<AppliedGiftCard>;\n /** An attribute associated with the cart. */\n attribute?: Maybe<Attribute>;\n /** The attributes associated with the cart. Attributes are represented as key-value pairs. */\n attributes: Array<Attribute>;\n /** Information about the buyer that's interacting with the cart. */\n buyerIdentity: CartBuyerIdentity;\n /** The URL of the checkout for the cart. */\n checkoutUrl: Scalars[\"URL\"][\"output\"];\n /** The estimated costs that the buyer will pay at checkout. The costs are subject to change and changes will be reflected at checkout. The `cost` field uses the `buyerIdentity` field to determine [international pricing](https://shopify.dev/custom-storefronts/internationalization/international-pricing). */\n cost: CartCost;\n /** The date and time when the cart was created. */\n createdAt: Scalars[\"DateTime\"][\"output\"];\n /** The delivery properties of the cart. */\n delivery: CartDelivery;\n /**\n * The delivery groups available for the cart, based on the buyer identity default\n * delivery address preference or the default address of the logged-in customer.\n *\n */\n deliveryGroups: CartDeliveryGroupConnection;\n /** The discounts that have been applied to the entire cart. */\n discountAllocations: Array<CartDiscountAllocation>;\n /** The case-insensitive discount codes that the customer added at checkout. */\n discountCodes: Array<CartDiscountCode>;\n /**\n * The estimated costs that the buyer will pay at checkout. The estimated costs are subject to change and changes will be reflected at checkout. The `estimatedCost` field uses the `buyerIdentity` field to determine [international pricing](https://shopify.dev/custom-storefronts/internationalization/international-pricing).\n * @deprecated Use `cost` instead.\n */\n estimatedCost: CartEstimatedCost;\n /** A globally-unique ID. */\n id: Scalars[\"ID\"][\"output\"];\n /** A list of lines containing information about the items the customer intends to purchase. */\n lines: BaseCartLineConnection;\n /** A [custom field](https://shopify.dev/docs/apps/build/custom-data), including its `namespace` and `key`, that's associated with a Shopify resource for the purposes of adding and storing additional information. */\n metafield?: Maybe<Metafield>;\n /** A list of [custom fields](/docs/apps/build/custom-data) that a merchant associates with a Shopify resource. */\n metafields: Array<Maybe<Metafield>>;\n /** A note that's associated with the cart. For example, the note can be a personalized message to the buyer. */\n note?: Maybe<Scalars[\"String\"][\"output\"]>;\n /** The total number of items in the cart. */\n totalQuantity: Scalars[\"Int\"][\"output\"];\n /** The date and time when the cart was updated. */\n updatedAt: Scalars[\"DateTime\"][\"output\"];\n };\n\n/**\n * A cart represents the merchandise that a buyer intends to purchase,\n * and the estimated cost associated with the cart. Learn how to\n * [interact with a cart](https://shopify.dev/custom-storefronts/internationalization/international-pricing)\n * during a customer's session.\n *\n */\nexport type CartAttributeArgs = {\n key: Scalars[\"String\"][\"input\"];\n};\n\n/**\n * A cart represents the merchandise that a buyer intends to purchase,\n * and the estimated cost associated with the cart. Learn how to\n * [interact with a cart](https://shopify.dev/custom-storefronts/internationalization/international-pricing)\n * during a customer's session.\n *\n */\nexport type CartDeliveryGroupsArgs = {\n after?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n before?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n first?: InputMaybe<Scalars[\"Int\"][\"input\"]>;\n last?: InputMaybe<Scalars[\"Int\"][\"input\"]>;\n reverse?: InputMaybe<Scalars[\"Boolean\"][\"input\"]>;\n withCarrierRates?: InputMaybe<Scalars[\"Boolean\"][\"input\"]>;\n};\n\n/**\n * A cart represents the merchandise that a buyer intends to purchase,\n * and the estimated cost associated with the cart. Learn how to\n * [interact with a cart](https://shopify.dev/custom-storefronts/internationalization/international-pricing)\n * during a customer's session.\n *\n */\nexport type CartLinesArgs = {\n after?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n before?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n first?: InputMaybe<Scalars[\"Int\"][\"input\"]>;\n last?: InputMaybe<Scalars[\"Int\"][\"input\"]>;\n reverse?: InputMaybe<Scalars[\"Boolean\"][\"input\"]>;\n};\n\n/**\n * A cart represents the merchandise that a buyer intends to purchase,\n * and the estimated cost associated with the cart. Learn how to\n * [interact with a cart](https://shopify.dev/custom-storefronts/internationalization/international-pricing)\n * during a customer's session.\n *\n */\nexport type CartMetafieldArgs = {\n key: Scalars[\"String\"][\"input\"];\n namespace?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n};\n\n/**\n * A cart represents the merchandise that a buyer intends to purchase,\n * and the estimated cost associated with the cart. Learn how to\n * [interact with a cart](https://shopify.dev/custom-storefronts/internationalization/international-pricing)\n * during a customer's session.\n *\n */\nexport type CartMetafieldsArgs = {\n identifiers: Array<HasMetafieldsIdentifier>;\n};\n\n/** A delivery address of the buyer that is interacting with the cart. */\nexport type CartAddress = CartDeliveryAddress;\n\n/** The input fields to provide exactly one of a variety of delivery address types. */\nexport type CartAddressInput = {\n /** Copies details from the customer address to an address on this cart. */\n copyFromCustomerAddressId?: InputMaybe<Scalars[\"ID\"][\"input\"]>;\n /** A delivery address stored on this cart. */\n deliveryAddress?: InputMaybe<CartDeliveryAddressInput>;\n};\n\n/** Return type for `cartAttributesUpdate` mutation. */\nexport type CartAttributesUpdatePayload = {\n __typename?: \"CartAttributesUpdatePayload\";\n /** The updated cart. */\n cart?: Maybe<Cart>;\n /** The list of errors that occurred from executing the mutation. */\n userErrors: Array<CartUserError>;\n /** A list of warnings that occurred during the mutation. */\n warnings: Array<CartWarning>;\n};\n\n/** The discounts automatically applied to the cart line based on prerequisites that have been met. */\nexport type CartAutomaticDiscountAllocation = CartDiscountAllocation & {\n __typename?: \"CartAutomaticDiscountAllocation\";\n /** The discount that have been applied on the cart line. */\n discountApplication: CartDiscountApplication;\n /** The discounted amount that has been applied to the cart line. */\n discountedAmount: MoneyV2;\n /** The type of line that the discount is applicable towards. */\n targetType: DiscountApplicationTargetType;\n /** The title of the allocated discount. */\n title: Scalars[\"String\"][\"output\"];\n};\n\n/** Return type for `cartBillingAddressUpdate` mutation. */\nexport type CartBillingAddressUpdatePayload = {\n __typename?: \"CartBillingAddressUpdatePayload\";\n /** The updated cart. */\n cart?: Maybe<Cart>;\n /** The list of errors that occurred from executing the mutation. */\n userErrors: Array<CartUserError>;\n /** A list of warnings that occurred during the mutation. */\n warnings: Array<CartWarning>;\n};\n\n/** Represents information about the buyer that is interacting with the cart. */\nexport type CartBuyerIdentity = {\n __typename?: \"CartBuyerIdentity\";\n /** The country where the buyer is located. */\n countryCode?: Maybe<CountryCode>;\n /** The customer account associated with the cart. */\n customer?: Maybe<Customer>;\n /**\n * An ordered set of delivery addresses tied to the buyer that is interacting with the cart.\n * The rank of the preferences is determined by the order of the addresses in the array. Preferences\n * can be used to populate relevant fields in the checkout flow.\n *\n * As of the `2025-01` release, `buyerIdentity.deliveryAddressPreferences` is deprecated.\n * Delivery addresses are now part of the `CartDelivery` object and managed with three new mutations:\n * - `cartDeliveryAddressAdd`\n * - `cartDeliveryAddressUpdate`\n * - `cartDeliveryAddressDelete`\n *\n * @deprecated Use `cart.delivery` instead.\n */\n deliveryAddressPreferences: Array<DeliveryAddress>;\n /** The email address of the buyer that's interacting with the cart. */\n email?: Maybe<Scalars[\"String\"][\"output\"]>;\n /** The phone number of the buyer that's interacting with the cart. */\n phone?: Maybe<Scalars[\"String\"][\"output\"]>;\n /**\n * A set of preferences tied to the buyer interacting with the cart. Preferences are used to prefill fields in at checkout to streamline information collection.\n * Preferences are not synced back to the cart if they are overwritten.\n *\n */\n preferences?: Maybe<CartPreferences>;\n /** The purchasing company associated with the cart. */\n purchasingCompany?: Maybe<PurchasingCompany>;\n};\n\n/**\n * Specifies the input fields to update the buyer information associated with a cart.\n * Buyer identity is used to determine\n * [international pricing](https://shopify.dev/custom-storefronts/internationalization/international-pricing)\n * and should match the customer's shipping address.\n *\n */\nexport type CartBuyerIdentityInput = {\n /** The company location of the buyer that is interacting with the cart. */\n companyLocationId?: InputMaybe<Scalars[\"ID\"][\"input\"]>;\n /** The country where the buyer is located. */\n countryCode?: InputMaybe<CountryCode>;\n /** The access token used to identify the customer associated with the cart. */\n customerAccessToken?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n /** The email address of the buyer that is interacting with the cart. */\n email?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n /** The phone number of the buyer that is interacting with the cart. */\n phone?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n /**\n * A set of preferences tied to the buyer interacting with the cart. Preferences are used to prefill fields in at checkout to streamline information collection.\n * Preferences are not synced back to the cart if they are overwritten.\n *\n */\n preferences?: InputMaybe<CartPreferencesInput>;\n};\n\n/** Return type for `cartBuyerIdentityUpdate` mutation. */\nexport type CartBuyerIdentityUpdatePayload = {\n __typename?: \"CartBuyerIdentityUpdatePayload\";\n /** The updated cart. */\n cart?: Maybe<Cart>;\n /** The list of errors that occurred from executing the mutation. */\n userErrors: Array<CartUserError>;\n /** A list of warnings that occurred during the mutation. */\n warnings: Array<CartWarning>;\n};\n\n/**\n * Represents how credit card details are provided for a direct payment.\n *\n */\nexport enum CartCardSource {\n /**\n * The credit card was provided by a third party and vaulted on their system.\n * Using this value requires a separate permission from Shopify.\n *\n */\n SavedCreditCard = \"SAVED_CREDIT_CARD\",\n}\n\n/** The discount that has been applied to the cart line using a discount code. */\nexport type CartCodeDiscountAllocation = CartDiscountAllocation & {\n __typename?: \"CartCodeDiscountAllocation\";\n /** The code used to apply the discount. */\n code: Scalars[\"String\"][\"output\"];\n /** The discount that have been applied on the cart line. */\n discountApplication: CartDiscountApplication;\n /** The discounted amount that has been applied to the cart line. */\n discountedAmount: MoneyV2;\n /** The type of line that the discount is applicable towards. */\n targetType: DiscountApplicationTargetType;\n};\n\n/** The completion action to checkout a cart. */\nexport type CartCompletionAction = CompletePaymentChallenge;\n\n/** The required completion action to checkout a cart. */\nexport type CartCompletionActionRequired = {\n __typename?: \"CartCompletionActionRequired\";\n /** The action required to complete the cart completion attempt. */\n action?: Maybe<CartCompletionAction>;\n /** The ID of the cart completion attempt. */\n id: Scalars[\"String\"][\"output\"];\n};\n\n/** The result of a cart completion attempt. */\nexport type CartCompletionAttemptResult =\n | CartCompletionActionRequired\n | CartCompletionFailed\n | CartCompletionProcessing\n | CartCompletionSuccess;\n\n/** A failed completion to checkout a cart. */\nexport type CartCompletionFailed = {\n __typename?: \"CartCompletionFailed\";\n /** The errors that caused the checkout to fail. */\n errors: Array<CompletionError>;\n /** The ID of the cart completion attempt. */\n id: Scalars[\"String\"][\"output\"];\n};\n\n/** A cart checkout completion that's still processing. */\nexport type CartCompletionProcessing = {\n __typename?: \"CartCompletionProcessing\";\n /** The ID of the cart completion attempt. */\n id: Scalars[\"String\"][\"output\"];\n /** The number of milliseconds to wait before polling again. */\n pollDelay: Scalars[\"Int\"][\"output\"];\n};\n\n/** A successful completion to checkout a cart and a created order. */\nexport type CartCompletionSuccess = {\n __typename?: \"CartCompletionSuccess\";\n /** The date and time when the job completed. */\n completedAt?: Maybe<Scalars[\"DateTime\"][\"output\"]>;\n /** The ID of the cart completion attempt. */\n id: Scalars[\"String\"][\"output\"];\n /** The ID of the order that's created in Shopify. */\n orderId: Scalars[\"ID\"][\"output\"];\n /** The URL of the order confirmation in Shopify. */\n orderUrl: Scalars[\"URL\"][\"output\"];\n};\n\n/**\n * The costs that the buyer will pay at checkout.\n * The cart cost uses [`CartBuyerIdentity`](https://shopify.dev/api/storefront/reference/cart/cartbuyeridentity) to determine\n * [international pricing](https://shopify.dev/custom-storefronts/internationalization/international-pricing).\n *\n */\nexport type CartCost = {\n __typename?: \"CartCost\";\n /** The estimated amount, before taxes and discounts, for the customer to pay at checkout. The checkout charge amount doesn't include any deferred payments that'll be paid at a later date. If the cart has no deferred payments, then the checkout charge amount is equivalent to `subtotalAmount`. */\n checkoutChargeAmount: MoneyV2;\n /** The amount, before taxes and cart-level discounts, for the customer to pay. */\n subtotalAmount: MoneyV2;\n /** Whether the subtotal amount is estimated. */\n subtotalAmountEstimated: Scalars[\"Boolean\"][\"output\"];\n /** The total amount for the customer to pay. */\n totalAmount: MoneyV2;\n /** Whether the total amount is estimated. */\n totalAmountEstimated: Scalars[\"Boolean\"][\"output\"];\n /**\n * The duty amount for the customer to pay at checkout.\n * @deprecated Tax and duty amounts are no longer available and will be removed in a future version.\n * Please see [the changelog](https://shopify.dev/changelog/tax-and-duties-are-deprecated-in-storefront-cart-api)\n * for more information.\n *\n */\n totalDutyAmount?: Maybe<MoneyV2>;\n /**\n * Whether the total duty amount is estimated.\n * @deprecated Tax and duty amounts are no longer available and will be removed in a future version.\n * Please see [the changelog](https://shopify.dev/changelog/tax-and-duties-are-deprecated-in-storefront-cart-api)\n * for more information.\n *\n */\n totalDutyAmountEstimated: Scalars[\"Boolean\"][\"output\"];\n /**\n * The tax amount for the customer to pay at checkout.\n * @deprecated Tax and duty amounts are no longer available and will be removed in a future version.\n * Please see [the changelog](https://shopify.dev/changelog/tax-and-duties-are-deprecated-in-storefront-cart-api)\n * for more information.\n *\n */\n totalTaxAmount?: Maybe<MoneyV2>;\n /**\n * Whether the total tax amount is estimated.\n * @deprecated Tax and duty amounts are no longer available and will be removed in a future version.\n * Please see [the changelog](https://shopify.dev/changelog/tax-and-duties-are-deprecated-in-storefront-cart-api)\n * for more information.\n *\n */\n totalTaxAmountEstimated: Scalars[\"Boolean\"][\"output\"];\n};\n\n/** Return type for `cartCreate` mutation. */\nexport type CartCreatePayload = {\n __typename?: \"CartCreatePayload\";\n /** The new cart. */\n cart?: Maybe<Cart>;\n /** The list of errors that occurred from executing the mutation. */\n userErrors: Array<CartUserError>;\n /** A list of warnings that occurred during the mutation. */\n warnings: Array<CartWarning>;\n};\n\n/** The discounts automatically applied to the cart line based on prerequisites that have been met. */\nexport type CartCustomDiscountAllocation = CartDiscountAllocation & {\n __typename?: \"CartCustomDiscountAllocation\";\n /** The discount that have been applied on the cart line. */\n discountApplication: CartDiscountApplication;\n /** The discounted amount that has been applied to the cart line. */\n discountedAmount: MoneyV2;\n /** The type of line that the discount is applicable towards. */\n targetType: DiscountApplicationTargetType;\n /** The title of the allocated discount. */\n title: Scalars[\"String\"][\"output\"];\n};\n\n/**\n * The delivery properties of the cart.\n *\n */\nexport type CartDelivery = {\n __typename?: \"CartDelivery\";\n /** Selectable addresses to present to the buyer on the cart. */\n addresses: Array<CartSelectableAddress>;\n};\n\n/**\n * The delivery properties of the cart.\n *\n */\nexport type CartDeliveryAddressesArgs = {\n selected?: InputMaybe<Scalars[\"Boolean\"][\"input\"]>;\n};\n\n/** Represents a mailing address for customers and shipping. */\nexport type CartDeliveryAddress = {\n __typename?: \"CartDeliveryAddress\";\n /** The first line of the address. Typically the street address or PO Box number. */\n address1?: Maybe<Scalars[\"String\"][\"output\"]>;\n /**\n * The second line of the address. Typically the number of the apartment, suite, or unit.\n *\n */\n address2?: Maybe<Scalars[\"String\"][\"output\"]>;\n /** The name of the city, district, village, or town. */\n city?: Maybe<Scalars[\"String\"][\"output\"]>;\n /** The name of the customer's company or organization. */\n company?: Maybe<Scalars[\"String\"][\"output\"]>;\n /**\n * The two-letter code for the country of the address.\n *\n * For example, US.\n *\n */\n countryCode?: Maybe<Scalars[\"String\"][\"output\"]>;\n /** The first name of the customer. */\n firstName?: Maybe<Scalars[\"String\"][\"output\"]>;\n /** A formatted version of the address, customized by the provided arguments. */\n formatted: Array<Scalars[\"String\"][\"output\"]>;\n /** A comma-separated list of the values for city, province, and country. */\n formattedArea?: Maybe<Scalars[\"String\"][\"output\"]>;\n /** The last name of the customer. */\n lastName?: Maybe<Scalars[\"String\"][\"output\"]>;\n /** The latitude coordinate of the customer address. */\n latitude?: Maybe<Scalars[\"Float\"][\"output\"]>;\n /** The longitude coordinate of the customer address. */\n longitude?: Maybe<Scalars[\"Float\"][\"output\"]>;\n /** The full name of the customer, based on firstName and lastName. */\n name?: Maybe<Scalars[\"String\"][\"output\"]>;\n /**\n * A unique phone number for the customer.\n *\n * Formatted using E.164 standard. For example, _+16135551111_.\n *\n */\n phone?: Maybe<Scalars[\"String\"][\"output\"]>;\n /**\n * The alphanumeric code for the region.\n *\n * For example, ON.\n *\n */\n provinceCode?: Maybe<Scalars[\"String\"][\"output\"]>;\n /** The zip or postal code of the address. */\n zip?: Maybe<Scalars[\"String\"][\"output\"]>;\n};\n\n/** Represents a mailing address for customers and shipping. */\nexport type CartDeliveryAddressFormattedArgs = {\n withCompany?: InputMaybe<Scalars[\"Boolean\"][\"input\"]>;\n withName?: InputMaybe<Scalars[\"Boolean\"][\"input\"]>;\n};\n\n/** The input fields to create or update a cart address. */\nexport type CartDeliveryAddressInput = {\n /**\n * The first line of the address. Typically the street address or PO Box number.\n *\n */\n address1?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n /**\n * The second line of the address. Typically the number of the apartment, suite, or unit.\n *\n */\n address2?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n /**\n * The name of the city, district, village, or town.\n *\n */\n city?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n /**\n * The name of the customer's company or organization.\n *\n */\n company?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n /** The name of the country. */\n countryCode?: InputMaybe<CountryCode>;\n /** The first name of the customer. */\n firstName?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n /** The last name of the customer. */\n lastName?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n /**\n * A unique phone number for the customer.\n *\n * Formatted using E.164 standard. For example, _+16135551111_.\n *\n */\n phone?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n /** The region of the address, such as the province, state, or district. */\n provinceCode?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n /** The zip or postal code of the address. */\n zip?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n};\n\n/** Return type for `cartDeliveryAddressesAdd` mutation. */\nexport type CartDeliveryAddressesAddPayload = {\n __typename?: \"CartDeliveryAddressesAddPayload\";\n /** The updated cart. */\n cart?: Maybe<Cart>;\n /** The list of errors that occurred from executing the mutation. */\n userErrors: Array<CartUserError>;\n /** A list of warnings that occurred during the mutation. */\n warnings: Array<CartWarning>;\n};\n\n/** Return type for `cartDeliveryAddressesRemove` mutation. */\nexport type CartDeliveryAddressesRemovePayload = {\n __typename?: \"CartDeliveryAddressesRemovePayload\";\n /** The updated cart. */\n cart?: Maybe<Cart>;\n /** The list of errors that occurred from executing the mutation. */\n userErrors: Array<CartUserError>;\n /** A list of warnings that occurred during the mutation. */\n warnings: Array<CartWarning>;\n};\n\n/** Return type for `cartDeliveryAddressesUpdate` mutation. */\nexport type CartDeliveryAddressesUpdatePayload = {\n __typename?: \"CartDeliveryAddressesUpdatePayload\";\n /** The updated cart. */\n cart?: Maybe<Cart>;\n /** The list of errors that occurred from executing the mutation. */\n userErrors: Array<CartUserError>;\n /** A list of warnings that occurred during the mutation. */\n warnings: Array<CartWarning>;\n};\n\n/** Preferred location used to find the closest pick up point based on coordinates. */\nexport type CartDeliveryCoordinatesPreference = {\n __typename?: \"CartDeliveryCoordinatesPreference\";\n /**\n * The two-letter code for the country of the preferred location.\n *\n * For example, US.\n *\n */\n countryCode: CountryCode;\n /** The geographic latitude for a given location. Coordinates are required in order to set pickUpHandle for pickup points. */\n latitude: Scalars[\"Float\"][\"output\"];\n /** The geographic longitude for a given location. Coordinates are required in order to set pickUpHandle for pickup points. */\n longitude: Scalars[\"Float\"][\"output\"];\n};\n\n/** Preferred location used to find the closest pick up point based on coordinates. */\nexport type CartDeliveryCoordinatesPreferenceInput = {\n /**\n * The two-letter code for the country of the preferred location.\n *\n * For example, US.\n *\n */\n countryCode: CountryCode;\n /** The geographic latitude for a given location. Coordinates are required in order to set pickUpHandle for pickup points. */\n latitude: Scalars[\"Float\"][\"input\"];\n /** The geographic longitude for a given location. Coordinates are required in order to set pickUpHandle for pickup points. */\n longitude: Scalars[\"Float\"][\"input\"];\n};\n\n/** Information about the options available for one or more line items to be delivered to a specific address. */\nexport type CartDeliveryGroup = {\n __typename?: \"CartDeliveryGroup\";\n /** A list of cart lines for the delivery group. */\n cartLines: BaseCartLineConnection;\n /** The destination address for the delivery group. */\n deliveryAddress: MailingAddress;\n /** The delivery options available for the delivery group. */\n deliveryOptions: Array<CartDeliveryOption>;\n /** The type of merchandise in the delivery group. */\n groupType: CartDeliveryGroupType;\n /** The ID for the delivery group. */\n id: Scalars[\"ID\"][\"output\"];\n /** The selected delivery option for the delivery group. */\n selectedDeliveryOption?: Maybe<CartDeliveryOption>;\n};\n\n/** Information about the options available for one or more line items to be delivered to a specific address. */\nexport type CartDeliveryGroupCartLinesArgs = {\n after?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n before?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n first?: InputMaybe<Scalars[\"Int\"][\"input\"]>;\n last?: InputMaybe<Scalars[\"Int\"][\"input\"]>;\n reverse?: InputMaybe<Scalars[\"Boolean\"][\"input\"]>;\n};\n\n/**\n * An auto-generated type for paginating through multiple CartDeliveryGroups.\n *\n */\nexport type CartDeliveryGroupConnection = {\n __typename?: \"CartDeliveryGroupConnection\";\n /** A list of edges. */\n edges: Array<CartDeliveryGroupEdge>;\n /** A list of the nodes contained in CartDeliveryGroupEdge. */\n nodes: Array<CartDeliveryGroup>;\n /** Information to aid in pagination. */\n pageInfo: PageInfo;\n};\n\n/**\n * An auto-generated type which holds one CartDeliveryGroup and a cursor during pagination.\n *\n */\nexport type CartDeliveryGroupEdge = {\n __typename?: \"CartDeliveryGroupEdge\";\n /** A cursor for use in pagination. */\n cursor: Scalars[\"String\"][\"output\"];\n /** The item at the end of CartDeliveryGroupEdge. */\n node: CartDeliveryGroup;\n};\n\n/**\n * Defines what type of merchandise is in the delivery group.\n *\n */\nexport enum CartDeliveryGroupType {\n /**\n * The delivery group only contains merchandise that is either a one time purchase or a first delivery of\n * subscription merchandise.\n *\n */\n OneTimePurchase = \"ONE_TIME_PURCHASE\",\n /** The delivery group only contains subscription merchandise. */\n Subscription = \"SUBSCRIPTION\",\n}\n\n/** The input fields for the cart's delivery properties. */\nexport type CartDeliveryInput = {\n /**\n * Selectable addresses to present to the buyer on the cart.\n *\n * The input must not contain more than `250` values.\n */\n addresses?: InputMaybe<Array<CartSelectableAddressInput>>;\n};\n\n/** Information about a delivery option. */\nexport type CartDeliveryOption = {\n __typename?: \"CartDeliveryOption\";\n /** The code of the delivery option. */\n code?: Maybe<Scalars[\"String\"][\"output\"]>;\n /** The method for the delivery option. */\n deliveryMethodType: DeliveryMethodType;\n /** The description of the delivery option. */\n description?: Maybe<Scalars[\"String\"][\"output\"]>;\n /** The estimated cost for the delivery option. */\n estimatedCost: MoneyV2;\n /** The unique identifier of the delivery option. */\n handle: Scalars[\"String\"][\"output\"];\n /** The title of the delivery option. */\n title?: Maybe<Scalars[\"String\"][\"output\"]>;\n};\n\n/**\n * A set of preferences tied to the buyer interacting with the cart. Preferences are used to prefill fields in at checkout to streamline information collection.\n * Preferences are not synced back to the cart if they are overwritten.\n *\n */\nexport type CartDeliveryPreference = {\n __typename?: \"CartDeliveryPreference\";\n /** Preferred location used to find the closest pick up point based on coordinates. */\n coordinates?: Maybe<CartDeliveryCoordinatesPreference>;\n /** The preferred delivery methods such as shipping, local pickup or through pickup points. */\n deliveryMethod: Array<PreferenceDeliveryMethodType>;\n /**\n * The pickup handle prefills checkout fields with the location for either local pickup or pickup points delivery methods.\n * It accepts both location ID for local pickup and external IDs for pickup points.\n *\n */\n pickupHandle: Array<Scalars[\"String\"][\"output\"]>;\n};\n\n/** Delivery preferences can be used to prefill the delivery section at checkout. */\nexport type CartDeliveryPreferenceInput = {\n /** The coordinates of a delivery location in order of preference. */\n coordinates?: InputMaybe<CartDeliveryCoordinatesPreferenceInput>;\n /**\n * The preferred delivery methods such as shipping, local pickup or through pickup points.\n *\n * The input must not contain more than `250` values.\n */\n deliveryMethod?: InputMaybe<Array<PreferenceDeliveryMethodType>>;\n /**\n * The pickup handle prefills checkout fields with the location for either local pickup or pickup points delivery methods.\n * It accepts both location ID for local pickup and external IDs for pickup points.\n *\n * The input must not contain more than `250` values.\n */\n pickupHandle?: InputMaybe<Array<Scalars[\"String\"][\"input\"]>>;\n};\n\n/**\n * The input fields for submitting direct payment method information for checkout.\n *\n */\nexport type CartDirectPaymentMethodInput = {\n /** Indicates if the customer has accepted the subscription terms. Defaults to false. */\n acceptedSubscriptionTerms?: InputMaybe<Scalars[\"Boolean\"][\"input\"]>;\n /** The customer's billing address. */\n billingAddress: MailingAddressInput;\n /** The source of the credit card payment. */\n cardSource?: InputMaybe<CartCardSource>;\n /** The session ID for the direct payment method used to create the payment. */\n sessionId: Scalars[\"String\"][\"input\"];\n};\n\n/** The discounts that have been applied to the cart line. */\nexport type CartDiscountAllocation = {\n /** The discount that have been applied on the cart line. */\n discountApplication: CartDiscountApplication;\n /** The discounted amount that has been applied to the cart line. */\n discountedAmount: MoneyV2;\n /** The type of line that the discount is applicable towards. */\n targetType: DiscountApplicationTargetType;\n};\n\n/**\n * The discount application capture the intentions of a discount source at\n * the time of application.\n */\nexport type CartDiscountApplication = {\n __typename?: \"CartDiscountApplication\";\n /** The method by which the discount's value is allocated to its entitled items. */\n allocationMethod: DiscountApplicationAllocationMethod;\n /** Which lines of targetType that the discount is allocated over. */\n targetSelection: DiscountApplicationTargetSelection;\n /** The type of line that the discount is applicable towards. */\n targetType: DiscountApplicationTargetType;\n /** The value of the discount application. */\n value: PricingValue;\n};\n\n/** The discount codes applied to the cart. */\nexport type CartDiscountCode = {\n __typename?: \"CartDiscountCode\";\n /** Whether the discount code is applicable to the cart's current contents. */\n applicable: Scalars[\"Boolean\"][\"output\"];\n /** The code for the discount. */\n code: Scalars[\"String\"][\"output\"];\n};\n\n/** Return type for `cartDiscountCodesUpdate` mutation. */\nexport type CartDiscountCodesUpdatePayload = {\n __typename?: \"CartDiscountCodesUpdatePayload\";\n /** The updated cart. */\n cart?: Maybe<Cart>;\n /** The list of errors that occurred from executing the mutation. */\n userErrors: Array<CartUserError>;\n /** A list of warnings that occurred during the mutation. */\n warnings: Array<CartWarning>;\n};\n\n/** Possible error codes that can be returned by `CartUserError`. */\nexport enum CartErrorCode {\n /** The specified address field contains emojis. */\n AddressFieldContainsEmojis = \"ADDRESS_FIELD_CONTAINS_EMOJIS\",\n /** The specified address field contains HTML tags. */\n AddressFieldContainsHtmlTags = \"ADDRESS_FIELD_CONTAINS_HTML_TAGS\",\n /** The specified address field contains a URL. */\n AddressFieldContainsUrl = \"ADDRESS_FIELD_CONTAINS_URL\",\n /** The specified address field does not match the expected pattern. */\n AddressFieldDoesNotMatchExpectedPattern = \"ADDRESS_FIELD_DOES_NOT_MATCH_EXPECTED_PATTERN\",\n /** The specified address field is required. */\n AddressFieldIsRequired = \"ADDRESS_FIELD_IS_REQUIRED\",\n /** The specified address field is too long. */\n AddressFieldIsTooLong = \"ADDRESS_FIELD_IS_TOO_LONG\",\n /** The input value is invalid. */\n Invalid = \"INVALID\",\n /** Company location not found or not allowed. */\n InvalidCompanyLocation = \"INVALID_COMPANY_LOCATION\",\n /** The delivery address was not found. */\n InvalidDeliveryAddressId = \"INVALID_DELIVERY_ADDRESS_ID\",\n /** Delivery group was not found in cart. */\n InvalidDeliveryGroup = \"INVALID_DELIVERY_GROUP\",\n /** Delivery option was not valid. */\n InvalidDeliveryOption = \"INVALID_DELIVERY_OPTION\",\n /** The quantity must be a multiple of the specified increment. */\n InvalidIncrement = \"INVALID_INCREMENT\",\n /** Merchandise line was not found in cart. */\n InvalidMerchandiseLine = \"INVALID_MERCHANDISE_LINE\",\n /** The metafields were not valid. */\n InvalidMetafields = \"INVALID_METAFIELDS\",\n /** The payment wasn't valid. */\n InvalidPayment = \"INVALID_PAYMENT\",\n /** Cannot update payment on an empty cart */\n InvalidPaymentEmptyCart = \"INVALID_PAYMENT_EMPTY_CART\",\n /** The given zip code is invalid for the provided country. */\n InvalidZipCodeForCountry = \"INVALID_ZIP_CODE_FOR_COUNTRY\",\n /** The given zip code is invalid for the provided province. */\n InvalidZipCodeForProvince = \"INVALID_ZIP_CODE_FOR_PROVINCE\",\n /** The input value should be less than the maximum value allowed. */\n LessThan = \"LESS_THAN\",\n /** The quantity must be below the specified maximum for the item. */\n MaximumExceeded = \"MAXIMUM_EXCEEDED\",\n /** The quantity must be above the specified minimum for the item. */\n MinimumNotMet = \"MINIMUM_NOT_MET\",\n /** The customer access token is required when setting a company location. */\n MissingCustomerAccessToken = \"MISSING_CUSTOMER_ACCESS_TOKEN\",\n /** Missing discount code. */\n MissingDiscountCode = \"MISSING_DISCOUNT_CODE\",\n /** Missing note. */\n MissingNote = \"MISSING_NOTE\",\n /** The note length must be below the specified maximum. */\n NoteTooLong = \"NOTE_TOO_LONG\",\n /** Only one delivery address can be selected. */\n OnlyOneDeliveryAddressCanBeSelected = \"ONLY_ONE_DELIVERY_ADDRESS_CAN_BE_SELECTED\",\n /** The payment method is not supported. */\n PaymentMethodNotSupported = \"PAYMENT_METHOD_NOT_SUPPORTED\",\n /** The given province cannot be found. */\n ProvinceNotFound = \"PROVINCE_NOT_FOUND\",\n /** Too many delivery addresses on Cart. */\n TooManyDeliveryAddresses = \"TOO_MANY_DELIVERY_ADDRESSES\",\n /** A general error occurred during address validation. */\n UnspecifiedAddressError = \"UNSPECIFIED_ADDRESS_ERROR\",\n /** Validation failed. */\n ValidationCustom = \"VALIDATION_CUSTOM\",\n /** The given zip code is unsupported. */\n ZipCodeNotSupported = \"ZIP_CODE_NOT_SUPPORTED\",\n}\n\n/** The estimated costs that the buyer will pay at checkout. The estimated cost uses [`CartBuyerIdentity`](https://shopify.dev/api/storefront/reference/cart/cartbuyeridentity) to determine [international pricing](https://shopify.dev/custom-storefronts/internationalization/international-pricing). */\nexport type CartEstimatedCost = {\n __typename?: \"CartEstimatedCost\";\n /** The estimated amount, before taxes and discounts, for the customer to pay at checkout. The checkout charge amount doesn't include any deferred payments that'll be paid at a later date. If the cart has no deferred payments, then the checkout charge amount is equivalent to`subtotal_amount`. */\n checkoutChargeAmount: MoneyV2;\n /** The estimated amount, before taxes and discounts, for the customer to pay. */\n subtotalAmount: MoneyV2;\n /** The estimated total amount for the customer to pay. */\n totalAmount: MoneyV2;\n /** The estimated duty amount for the customer to pay at checkout. */\n totalDutyAmount?: Maybe<MoneyV2>;\n /** The estimated tax amount for the customer to pay at checkout. */\n totalTaxAmount?: Maybe<MoneyV2>;\n};\n\n/**\n * The input fields for submitting a billing address without a selected payment method.\n *\n */\nexport type CartFreePaymentMethodInput = {\n /** The customer's billing address. */\n billingAddress: MailingAddressInput;\n};\n\n/** Return type for `cartGiftCardCodesRemove` mutation. */\nexport type CartGiftCardCodesRemovePayload = {\n __typename?: \"CartGiftCardCodesRemovePayload\";\n /** The updated cart. */\n cart?: Maybe<Cart>;\n /** The list of errors that occurred from executing the mutation. */\n userErrors: Array<CartUserError>;\n /** A list of warnings that occurred during the mutation. */\n warnings: Array<CartWarning>;\n};\n\n/** Return type for `cartGiftCardCodesUpdate` mutation. */\nexport type CartGiftCardCodesUpdatePayload = {\n __typename?: \"CartGiftCardCodesUpdatePayload\";\n /** The updated cart. */\n cart?: Maybe<Cart>;\n /** The list of errors that occurred from executing the mutation. */\n userErrors: Array<CartUserError>;\n /** A list of warnings that occurred during the mutation. */\n warnings: Array<CartWarning>;\n};\n\n/** The input fields to create a cart. */\nexport type CartInput = {\n /**\n * An array of key-value pairs that contains additional information about the cart.\n *\n * The input must not contain more than `250` values.\n */\n attributes?: InputMaybe<Array<AttributeInput>>;\n /**\n * The customer associated with the cart. Used to determine [international pricing]\n * (https://shopify.dev/custom-storefronts/internationalization/international-pricing).\n * Buyer identity should match the customer's shipping address.\n *\n */\n buyerIdentity?: InputMaybe<CartBuyerIdentityInput>;\n /** The delivery-related fields for the cart. */\n delivery?: InputMaybe<CartDeliveryInput>;\n /**\n * The case-insensitive discount codes that the customer added at checkout.\n *\n * The input must not contain more than `250` values.\n */\n discountCodes?: InputMaybe<Array<Scalars[\"String\"][\"input\"]>>;\n /**\n * The case-insensitive gift card codes.\n *\n * The input must not contain more than `250` values.\n */\n giftCardCodes?: InputMaybe<Array<Scalars[\"String\"][\"input\"]>>;\n /**\n * A list of merchandise lines to add to the cart.\n *\n * The input must not contain more than `250` values.\n */\n lines?: InputMaybe<Array<CartLineInput>>;\n /**\n * The metafields to associate with this cart.\n *\n * The input must not contain more than `250` values.\n */\n metafields?: InputMaybe<Array<CartInputMetafieldInput>>;\n /**\n * A note that's associated with the cart. For example, the note can be a personalized message to the buyer.\n *\n */\n note?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n};\n\n/** The input fields for a cart metafield value to set. */\nexport type CartInputMetafieldInput = {\n /** The key name of the metafield. */\n key: Scalars[\"String\"][\"input\"];\n /**\n * The type of data that the cart metafield stores.\n * The type of data must be a [supported type](https://shopify.dev/apps/metafields/types).\n *\n */\n type: Scalars[\"String\"][\"input\"];\n /**\n * The data to store in the cart metafield. The data is always stored as a string, regardless of the metafield's type.\n *\n */\n value: Scalars[\"String\"][\"input\"];\n};\n\n/** Represents information about the merchandise in the cart. */\nexport type CartLine = BaseCartLine &\n Node & {\n __typename?: \"CartLine\";\n /** An attribute associated with the cart line. */\n attribute?: Maybe<Attribute>;\n /** The attributes associated with the cart line. Attributes are represented as key-value pairs. */\n attributes: Array<Attribute>;\n /** The cost of the merchandise that the buyer will pay for at checkout. The costs are subject to change and changes will be reflected at checkout. */\n cost: CartLineCost;\n /** The discounts that have been applied to the cart line. */\n discountAllocations: Array<CartDiscountAllocation>;\n /**\n * The estimated cost of the merchandise that the buyer will pay for at checkout. The estimated costs are subject to change and changes will be reflected at checkout.\n * @deprecated Use `cost` instead.\n */\n estimatedCost: CartLineEstimatedCost;\n /** A globally-unique ID. */\n id: Scalars[\"ID\"][\"output\"];\n /** The merchandise that the buyer intends to purchase. */\n merchandise: Merchandise;\n /** The quantity of the merchandise that the customer intends to purchase. */\n quantity: Scalars[\"Int\"][\"output\"];\n /** The selling plan associated with the cart line and the effect that each selling plan has on variants when they're purchased. */\n sellingPlanAllocation?: Maybe<SellingPlanAllocation>;\n };\n\n/** Represents information about the merchandise in the cart. */\nexport type CartLineAttributeArgs = {\n key: Scalars[\"String\"][\"input\"];\n};\n\n/** The cost of the merchandise line that the buyer will pay at checkout. */\nexport type CartLineCost = {\n __typename?: \"CartLineCost\";\n /** The amount of the merchandise line. */\n amountPerQuantity: MoneyV2;\n /** The compare at amount of the merchandise line. */\n compareAtAmountPerQuantity?: Maybe<MoneyV2>;\n /** The cost of the merchandise line before line-level discounts. */\n subtotalAmount: MoneyV2;\n /** The total cost of the merchandise line. */\n totalAmount: MoneyV2;\n};\n\n/**\n * The estimated cost of the merchandise line that the buyer will pay at checkout.\n *\n */\nexport type CartLineEstimatedCost = {\n __typename?: \"CartLineEstimatedCost\";\n /** The amount of the merchandise line. */\n amount: MoneyV2;\n /** The compare at amount of the merchandise line. */\n compareAtAmount?: Maybe<MoneyV2>;\n /** The estimated cost of the merchandise line before discounts. */\n subtotalAmount: MoneyV2;\n /** The estimated total cost of the merchandise line. */\n totalAmount: MoneyV2;\n};\n\n/** The input fields to create a merchandise line on a cart. */\nexport type CartLineInput = {\n /**\n * An array of key-value pairs that contains additional information about the merchandise line.\n *\n * The input must not contain more than `250` values.\n */\n attributes?: InputMaybe<Array<AttributeInput>>;\n /** The ID of the merchandise that the buyer intends to purchase. */\n merchandiseId: Scalars[\"ID\"][\"input\"];\n /** The quantity of the merchandise. */\n quantity?: InputMaybe<Scalars[\"Int\"][\"input\"]>;\n /** The ID of the selling plan that the merchandise is being purchased with. */\n sellingPlanId?: InputMaybe<Scalars[\"ID\"][\"input\"]>;\n};\n\n/** The input fields to update a line item on a cart. */\nexport type CartLineUpdateInput = {\n /**\n * An array of key-value pairs that contains additional information about the merchandise line.\n *\n * The input must not contain more than `250` values.\n */\n attributes?: InputMaybe<Array<AttributeInput>>;\n /** The ID of the merchandise line. */\n id: Scalars[\"ID\"][\"input\"];\n /** The ID of the merchandise for the line item. */\n merchandiseId?: InputMaybe<Scalars[\"ID\"][\"input\"]>;\n /** The quantity of the line item. */\n quantity?: InputMaybe<Scalars[\"Int\"][\"input\"]>;\n /** The ID of the selling plan that the merchandise is being purchased with. */\n sellingPlanId?: InputMaybe<Scalars[\"ID\"][\"input\"]>;\n};\n\n/** Return type for `cartLinesAdd` mutation. */\nexport type CartLinesAddPayload = {\n __typename?: \"CartLinesAddPayload\";\n /** The updated cart. */\n cart?: Maybe<Cart>;\n /** The list of errors that occurred from executing the mutation. */\n userErrors: Array<CartUserError>;\n /** A list of warnings that occurred during the mutation. */\n warnings: Array<CartWarning>;\n};\n\n/** Return type for `cartLinesRemove` mutation. */\nexport type CartLinesRemovePayload = {\n __typename?: \"CartLinesRemovePayload\";\n /** The updated cart. */\n cart?: Maybe<Cart>;\n /** The list of errors that occurred from executing the mutation. */\n userErrors: Array<CartUserError>;\n /** A list of warnings that occurred during the mutation. */\n warnings: Array<CartWarning>;\n};\n\n/** Return type for `cartLinesUpdate` mutation. */\nexport type CartLinesUpdatePayload = {\n __typename?: \"CartLinesUpdatePayload\";\n /** The updated cart. */\n cart?: Maybe<Cart>;\n /** The list of errors that occurred from executing the mutation. */\n userErrors: Array<CartUserError>;\n /** A list of warnings that occurred during the mutation. */\n warnings: Array<CartWarning>;\n};\n\n/** The input fields to delete a cart metafield. */\nexport type CartMetafieldDeleteInput = {\n /**\n * The key name of the cart metafield. Can either be a composite key (`namespace.key`) or a simple key\n * that relies on the default app-reserved namespace.\n *\n */\n key: Scalars[\"String\"][\"input\"];\n /** The ID of the cart resource. */\n ownerId: Scalars[\"ID\"][\"input\"];\n};\n\n/** Return type for `cartMetafieldDelete` mutation. */\nexport type CartMetafieldDeletePayload = {\n __typename?: \"CartMetafieldDeletePayload\";\n /** The ID of the deleted cart metafield. */\n deletedId?: Maybe<Scalars[\"ID\"][\"output\"]>;\n /** The list of errors that occurred from executing the mutation. */\n userErrors: Array<MetafieldDeleteUserError>;\n};\n\n/** The input fields for a cart metafield value to set. */\nexport type CartMetafieldsSetInput = {\n /** The key name of the cart metafield. */\n key: Scalars[\"String\"][\"input\"];\n /** The ID of the cart resource. */\n ownerId: Scalars[\"ID\"][\"input\"];\n /**\n * The type of data that the cart metafield stores.\n * The type of data must be a [supported type](https://shopify.dev/apps/metafields/types).\n *\n */\n type: Scalars[\"String\"][\"input\"];\n /**\n * The data to store in the cart metafield. The data is always stored as a string, regardless of the metafield's type.\n *\n */\n value: Scalars[\"String\"][\"input\"];\n};\n\n/** Return type for `cartMetafieldsSet` mutation. */\nexport type CartMetafieldsSetPayload = {\n __typename?: \"CartMetafieldsSetPayload\";\n /** The list of cart metafields that were set. */\n metafields?: Maybe<Array<Metafield>>;\n /** The list of errors that occurred from executing the mutation. */\n userErrors: Array<MetafieldsSetUserError>;\n};\n\n/** Return type for `cartNoteUpdate` mutation. */\nexport type CartNoteUpdatePayload = {\n __typename?: \"CartNoteUpdatePayload\";\n /** The updated cart. */\n cart?: Maybe<Cart>;\n /** The list of errors that occurred from executing the mutation. */\n userErrors: Array<CartUserError>;\n /** A list of warnings that occurred during the mutation. */\n warnings: Array<CartWarning>;\n};\n\n/** An error occurred during the cart operation. */\nexport type CartOperationError = {\n __typename?: \"CartOperationError\";\n /** The error code. */\n code: Scalars[\"String\"][\"output\"];\n /** The error message. */\n message?: Maybe<Scalars[\"String\"][\"output\"]>;\n};\n\n/**\n * The input fields for updating the payment method that will be used to checkout.\n *\n */\nexport type CartPaymentInput = {\n /** The amount that the customer will be charged at checkout. */\n amount: MoneyInput;\n /**\n * The input fields to use when checking out a cart with a direct payment method (like a credit card).\n *\n */\n directPaymentMethod?: InputMaybe<CartDirectPaymentMethodInput>;\n /**\n * The input fields to use to checkout a cart without providing a payment method.\n * Use this payment method input if the total cost of the cart is 0.\n *\n */\n freePaymentMethod?: InputMaybe<CartFreePaymentMethodInput>;\n /**\n * An ID of the order placed on the originating platform.\n * Note that this value doesn't correspond to the Shopify Order ID.\n *\n */\n sourceIdentifier?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n /**\n * The input fields to use when checking out a cart with a wallet payment method (like Shop Pay or Apple Pay).\n *\n */\n walletPaymentMethod?: InputMaybe<CartWalletPaymentMethodInput>;\n};\n\n/** Return type for `cartPaymentUpdate` mutation. */\nexport type CartPaymentUpdatePayload = {\n __typename?: \"CartPaymentUpdatePayload\";\n /** The updated cart. */\n cart?: Maybe<Cart>;\n /** The list of errors that occurred from executing the mutation. */\n userErrors: Array<CartUserError>;\n /** A list of warnings that occurred during the mutation. */\n warnings: Array<CartWarning>;\n};\n\n/**\n * A set of preferences tied to the buyer interacting with the cart. Preferences are used to prefill fields in at checkout to streamline information collection.\n * Preferences are not synced back to the cart if they are overwritten.\n *\n */\nexport type CartPreferences = {\n __typename?: \"CartPreferences\";\n /** Delivery preferences can be used to prefill the delivery section in at checkout. */\n delivery?: Maybe<CartDeliveryPreference>;\n /**\n * Wallet preferences are used to populate relevant payment fields in the checkout flow.\n * Accepted value: `[\"shop_pay\"]`.\n *\n */\n wallet?: Maybe<Array<Scalars[\"String\"][\"output\"]>>;\n};\n\n/** The input fields represent preferences for the buyer that is interacting with the cart. */\nexport type CartPreferencesInput = {\n /** Delivery preferences can be used to prefill the delivery section in at checkout. */\n delivery?: InputMaybe<CartDeliveryPreferenceInput>;\n /**\n * Wallet preferences are used to populate relevant payment fields in the checkout flow.\n * Accepted value: `[\"shop_pay\"]`.\n *\n * The input must not contain more than `250` values.\n */\n wallet?: InputMaybe<Array<Scalars[\"String\"][\"input\"]>>;\n};\n\n/** Return type for `cartPrepareForCompletion` mutation. */\nexport type CartPrepareForCompletionPayload = {\n __typename?: \"CartPrepareForCompletionPayload\";\n /** The result of cart preparation for completion. */\n result?: Maybe<CartPrepareForCompletionResult>;\n /** The list of errors that occurred from executing the mutation. */\n userErrors: Array<CartUserError>;\n};\n\n/** The result of cart preparation. */\nexport type CartPrepareForCompletionResult =\n | CartStatusNotReady\n | CartStatusReady\n | CartThrottled;\n\n/**\n * A selectable delivery address for a cart.\n *\n */\nexport type CartSelectableAddress = {\n __typename?: \"CartSelectableAddress\";\n /** The delivery address. */\n address: CartAddress;\n /** A unique identifier for the address, specific to this cart. */\n id: Scalars[\"ID\"][\"output\"];\n /** This delivery address will not be associated with the buyer after a successful checkout. */\n oneTimeUse: Scalars[\"Boolean\"][\"output\"];\n /** Sets exactly one address as pre-selected for the buyer. */\n selected: Scalars[\"Boolean\"][\"output\"];\n};\n\n/** The input fields for a selectable delivery address in a cart. */\nexport type CartSelectableAddressInput = {\n /** Exactly one kind of delivery address. */\n address: CartAddressInput;\n /** When true, this delivery address will not be associated with the buyer after a successful checkout. */\n oneTimeUse?: InputMaybe<Scalars[\"Boolean\"][\"input\"]>;\n /** Sets exactly one address as pre-selected for the buyer. */\n selected?: InputMaybe<Scalars[\"Boolean\"][\"input\"]>;\n /** Defines what kind of address validation is requested. */\n validationStrategy?: InputMaybe<DeliveryAddressValidationStrategy>;\n};\n\n/** The input fields to update a line item on a cart. */\nexport type CartSelectableAddressUpdateInput = {\n /** Exactly one kind of delivery address. */\n address?: InputMaybe<CartAddressInput>;\n /** The id of the selectable address. */\n id: Scalars[\"ID\"][\"input\"];\n /** When true, this delivery address will not be associated with the buyer after a successful checkout. */\n oneTimeUse?: InputMaybe<Scalars[\"Boolean\"][\"input\"]>;\n /** Sets exactly one address as pre-selected for the buyer. */\n selected?: InputMaybe<Scalars[\"Boolean\"][\"input\"]>;\n /** Defines what kind of address validation is requested. */\n validationStrategy?: InputMaybe<DeliveryAddressValidationStrategy>;\n};\n\n/**\n * The input fields for updating the selected delivery options for a delivery group.\n *\n */\nexport type CartSelectedDeliveryOptionInput = {\n /** The ID of the cart delivery group. */\n deliveryGroupId: Scalars[\"ID\"][\"input\"];\n /** The handle of the selected delivery option. */\n deliveryOptionHandle: Scalars[\"String\"][\"input\"];\n};\n\n/** Return type for `cartSelectedDeliveryOptionsUpdate` mutation. */\nexport type CartSelectedDeliveryOptionsUpdatePayload = {\n __typename?: \"CartSelectedDeliveryOptionsUpdatePayload\";\n /** The updated cart. */\n cart?: Maybe<Cart>;\n /** The list of errors that occurred from executing the mutation. */\n userErrors: Array<CartUserError>;\n /** A list of warnings that occurred during the mutation. */\n warnings: Array<CartWarning>;\n};\n\n/** Cart is not ready for payment update and completion. */\nexport type CartStatusNotReady = {\n __typename?: \"CartStatusNotReady\";\n /** The result of cart preparation for completion. */\n cart?: Maybe<Cart>;\n /** The list of errors that caused the cart to not be ready for payment update and completion. */\n errors: Array<CartOperationError>;\n};\n\n/** Cart is ready for payment update and completion. */\nexport type CartStatusReady = {\n __typename?: \"CartStatusReady\";\n /** The result of cart preparation for completion. */\n cart?: Maybe<Cart>;\n};\n\n/** Return type for `cartSubmitForCompletion` mutation. */\nexport type CartSubmitForCompletionPayload = {\n __typename?: \"CartSubmitForCompletionPayload\";\n /** The result of cart submission for completion. */\n result?: Maybe<CartSubmitForCompletionResult>;\n /** The list of errors that occurred from executing the mutation. */\n userErrors: Array<CartUserError>;\n};\n\n/** The result of cart submit completion. */\nexport type CartSubmitForCompletionResult =\n | SubmitAlreadyAccepted\n | SubmitFailed\n | SubmitSuccess\n | SubmitThrottled;\n\n/**\n * Response signifying that the access to cart request is currently being throttled.\n * The client can retry after `poll_after`.\n *\n */\nexport type CartThrottled = {\n __typename?: \"CartThrottled\";\n /** The polling delay. */\n pollAfter: Scalars[\"DateTime\"][\"output\"];\n};\n\n/** Represents an error that happens during execution of a cart mutation. */\nexport type CartUserError = DisplayableError & {\n __typename?: \"CartUserError\";\n /** The error code. */\n code?: Maybe<CartErrorCode>;\n /** The path to the input field that caused the error. */\n field?: Maybe<Array<Scalars[\"String\"][\"output\"]>>;\n /** The error message. */\n message: Scalars[\"String\"][\"output\"];\n};\n\n/**\n * The input fields for submitting wallet payment method information for checkout.\n *\n */\nexport type CartWalletPaymentMethodInput = {\n /** The payment method information for the Apple Pay wallet. */\n applePayWalletContent?: InputMaybe<ApplePayWalletContentInput>;\n /** The payment method information for the Shop Pay wallet. */\n shopPayWalletContent?: InputMaybe<ShopPayWalletContentInput>;\n};\n\n/** A warning that occurred during a cart mutation. */\nexport type CartWarning = {\n __typename?: \"CartWarning\";\n /** The code of the warning. */\n code: CartWarningCode;\n /** The message text of the warning. */\n message: Scalars[\"String\"][\"output\"];\n /** The target of the warning. */\n target: Scalars[\"ID\"][\"output\"];\n};\n\n/** The code for the cart warning. */\nexport enum CartWarningCode {\n /** A delivery address with the same details already exists on this cart. */\n DuplicateDeliveryAddress = \"DUPLICATE_DELIVERY_ADDRESS\",\n /** The merchandise does not have enough stock. */\n MerchandiseNotEnoughStock = \"MERCHANDISE_NOT_ENOUGH_STOCK\",\n /** The merchandise is out of stock. */\n MerchandiseOutOfStock = \"MERCHANDISE_OUT_OF_STOCK\",\n /** Gift cards are not available as a payment method. */\n PaymentsGiftCardsUnavailable = \"PAYMENTS_GIFT_CARDS_UNAVAILABLE\",\n}\n\n/**\n * A filter used to view a subset of products in a collection matching a specific category value.\n *\n */\nexport type CategoryFilter = {\n /** The id of the category to filter on. */\n id: Scalars[\"String\"][\"input\"];\n};\n\n/**\n * A collection represents a grouping of products that a shop owner can create to\n * organize them or make their shops easier to browse.\n *\n */\nexport type Collection = HasMetafields &\n Node &\n OnlineStorePublishable &\n Trackable & {\n __typename?: \"Collection\";\n /** Stripped description of the collection, single line with HTML tags removed. */\n description: Scalars[\"String\"][\"output\"];\n /** The description of the collection, complete with HTML formatting. */\n descriptionHtml: Scalars[\"HTML\"][\"output\"];\n /**\n * A human-friendly unique string for the collection automatically generated from its title.\n * Limit of 255 characters.\n *\n */\n handle: Scalars[\"String\"][\"output\"];\n /** A globally-unique ID. */\n id: Scalars[\"ID\"][\"output\"];\n /** Image associated with the collection. */\n image?: Maybe<Image>;\n /** A [custom field](https://shopify.dev/docs/apps/build/custom-data), including its `namespace` and `key`, that's associated with a Shopify resource for the purposes of adding and storing additional information. */\n metafield?: Maybe<Metafield>;\n /** A list of [custom fields](/docs/apps/build/custom-data) that a merchant associates with a Shopify resource. */\n metafields: Array<Maybe<Metafield>>;\n /** The URL used for viewing the resource on the shop's Online Store. Returns `null` if the resource is currently not published to the Online Store sales channel. */\n onlineStoreUrl?: Maybe<Scalars[\"URL\"][\"output\"]>;\n /** List of products in the collection. */\n products: ProductConnection;\n /** The collection's SEO information. */\n seo: Seo;\n /** The collection’s name. Limit of 255 characters. */\n title: Scalars[\"String\"][\"output\"];\n /** URL parameters to be added to a page URL to track the origin of on-site search traffic for [analytics reporting](https://help.shopify.com/manual/reports-and-analytics/shopify-reports/report-types/default-reports/behaviour-reports). Returns a result when accessed through the [search](https://shopify.dev/docs/api/storefront/current/queries/search) or [predictiveSearch](https://shopify.dev/docs/api/storefront/current/queries/predictiveSearch) queries, otherwise returns null. */\n trackingParameters?: Maybe<Scalars[\"String\"][\"output\"]>;\n /** The date and time when the collection was last modified. */\n updatedAt: Scalars[\"DateTime\"][\"output\"];\n };\n\n/**\n * A collection represents a grouping of products that a shop owner can create to\n * organize them or make their shops easier to browse.\n *\n */\nexport type CollectionDescriptionArgs = {\n truncateAt?: InputMaybe<Scalars[\"Int\"][\"input\"]>;\n};\n\n/**\n * A collection represents a grouping of products that a shop owner can create to\n * organize them or make their shops easier to browse.\n *\n */\nexport type CollectionMetafieldArgs = {\n key: Scalars[\"String\"][\"input\"];\n namespace?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n};\n\n/**\n * A collection represents a grouping of products that a shop owner can create to\n * organize them or make their shops easier to browse.\n *\n */\nexport type CollectionMetafieldsArgs = {\n identifiers: Array<HasMetafieldsIdentifier>;\n};\n\n/**\n * A collection represents a grouping of products that a shop owner can create to\n * organize them or make their shops easier to browse.\n *\n */\nexport type CollectionProductsArgs = {\n after?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n before?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n filters?: InputMaybe<Array<ProductFilter>>;\n first?: InputMaybe<Scalars[\"Int\"][\"input\"]>;\n last?: InputMaybe<Scalars[\"Int\"][\"input\"]>;\n reverse?: InputMaybe<Scalars[\"Boolean\"][\"input\"]>;\n sortKey?: InputMaybe<ProductCollectionSortKeys>;\n};\n\n/**\n * An auto-generated type for paginating through multiple Collections.\n *\n */\nexport type CollectionConnection = {\n __typename?: \"CollectionConnection\";\n /** A list of edges. */\n edges: Array<CollectionEdge>;\n /** A list of the nodes contained in CollectionEdge. */\n nodes: Array<Collection>;\n /** Information to aid in pagination. */\n pageInfo: PageInfo;\n /** The total count of Collections. */\n totalCount: Scalars[\"UnsignedInt64\"][\"output\"];\n};\n\n/**\n * An auto-generated type which holds one Collection and a cursor during pagination.\n *\n */\nexport type CollectionEdge = {\n __typename?: \"CollectionEdge\";\n /** A cursor for use in pagination. */\n cursor: Scalars[\"String\"][\"output\"];\n /** The item at the end of CollectionEdge. */\n node: Collection;\n};\n\n/** The set of valid sort keys for the Collection query. */\nexport enum CollectionSortKeys {\n /** Sort by the `id` value. */\n Id = \"ID\",\n /**\n * Sort by relevance to the search terms when the `query` parameter is specified on the connection.\n * Don't use this sort key when no search query is specified.\n *\n */\n Relevance = \"RELEVANCE\",\n /** Sort by the `title` value. */\n Title = \"TITLE\",\n /** Sort by the `updated_at` value. */\n UpdatedAt = \"UPDATED_AT\",\n}\n\n/** A comment on an article. */\nexport type Comment = Node & {\n __typename?: \"Comment\";\n /** The comment’s author. */\n author: CommentAuthor;\n /** Stripped content of the comment, single line with HTML tags removed. */\n content: Scalars[\"String\"][\"output\"];\n /** The content of the comment, complete with HTML formatting. */\n contentHtml: Scalars[\"HTML\"][\"output\"];\n /** A globally-unique ID. */\n id: Scalars[\"ID\"][\"output\"];\n};\n\n/** A comment on an article. */\nexport type CommentContentArgs = {\n truncateAt?: InputMaybe<Scalars[\"Int\"][\"input\"]>;\n};\n\n/** The author of a comment. */\nexport type CommentAuthor = {\n __typename?: \"CommentAuthor\";\n /** The author's email. */\n email: Scalars[\"String\"][\"output\"];\n /** The author’s name. */\n name: Scalars[\"String\"][\"output\"];\n};\n\n/**\n * An auto-generated type for paginating through multiple Comments.\n *\n */\nexport type CommentConnection = {\n __typename?: \"CommentConnection\";\n /** A list of edges. */\n edges: Array<CommentEdge>;\n /** A list of the nodes contained in CommentEdge. */\n nodes: Array<Comment>;\n /** Information to aid in pagination. */\n pageInfo: PageInfo;\n};\n\n/**\n * An auto-generated type which holds one Comment and a cursor during pagination.\n *\n */\nexport type CommentEdge = {\n __typename?: \"CommentEdge\";\n /** A cursor for use in pagination. */\n cursor: Scalars[\"String\"][\"output\"];\n /** The item at the end of CommentEdge. */\n node: Comment;\n};\n\n/** Represents information about a company which is also a customer of the shop. */\nexport type Company = HasMetafields &\n Node & {\n __typename?: \"Company\";\n /** The date and time ([ISO 8601 format](http://en.wikipedia.org/wiki/ISO_8601)) at which the company was created in Shopify. */\n createdAt: Scalars[\"DateTime\"][\"output\"];\n /** A unique externally-supplied ID for the company. */\n externalId?: Maybe<Scalars[\"String\"][\"output\"]>;\n /** A globally-unique ID. */\n id: Scalars[\"ID\"][\"output\"];\n /** A [custom field](https://shopify.dev/docs/apps/build/custom-data), including its `namespace` and `key`, that's associated with a Shopify resource for the purposes of adding and storing additional information. */\n metafield?: Maybe<Metafield>;\n /** A list of [custom fields](/docs/apps/build/custom-data) that a merchant associates with a Shopify resource. */\n metafields: Array<Maybe<Metafield>>;\n /** The name of the company. */\n name: Scalars[\"String\"][\"output\"];\n /** The date and time ([ISO 8601 format](http://en.wikipedia.org/wiki/ISO_8601)) at which the company was last modified. */\n updatedAt: Scalars[\"DateTime\"][\"output\"];\n };\n\n/** Represents information about a company which is also a customer of the shop. */\nexport type CompanyMetafieldArgs = {\n key: Scalars[\"String\"][\"input\"];\n namespace?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n};\n\n/** Represents information about a company which is also a customer of the shop. */\nexport type CompanyMetafieldsArgs = {\n identifiers: Array<HasMetafieldsIdentifier>;\n};\n\n/** A company's main point of contact. */\nexport type CompanyContact = Node & {\n __typename?: \"CompanyContact\";\n /** The date and time ([ISO 8601 format](http://en.wikipedia.org/wiki/ISO_8601)) at which the company contact was created in Shopify. */\n createdAt: Scalars[\"DateTime\"][\"output\"];\n /** A globally-unique ID. */\n id: Scalars[\"ID\"][\"output\"];\n /** The company contact's locale (language). */\n locale?: Maybe<Scalars[\"String\"][\"output\"]>;\n /** The company contact's job title. */\n title?: Maybe<Scalars[\"String\"][\"output\"]>;\n /** The date and time ([ISO 8601 format](http://en.wikipedia.org/wiki/ISO_8601)) at which the company contact was last modified. */\n updatedAt: Scalars[\"DateTime\"][\"output\"];\n};\n\n/** A company's location. */\nexport type CompanyLocation = HasMetafields &\n Node & {\n __typename?: \"CompanyLocation\";\n /** The date and time ([ISO 8601 format](http://en.wikipedia.org/wiki/ISO_8601)) at which the company location was created in Shopify. */\n createdAt: Scalars[\"DateTime\"][\"output\"];\n /** A unique externally-supplied ID for the company. */\n externalId?: Maybe<Scalars[\"String\"][\"output\"]>;\n /** A globally-unique ID. */\n id: Scalars[\"ID\"][\"output\"];\n /** The preferred locale of the company location. */\n locale?: Maybe<Scalars[\"String\"][\"output\"]>;\n /** A [custom field](https://shopify.dev/docs/apps/build/custom-data), including its `namespace` and `key`, that's associated with a Shopify resource for the purposes of adding and storing additional information. */\n metafield?: Maybe<Metafield>;\n /** A list of [custom fields](/docs/apps/build/custom-data) that a merchant associates with a Shopify resource. */\n metafields: Array<Maybe<Metafield>>;\n /** The name of the company location. */\n name: Scalars[\"String\"][\"output\"];\n /** The date and time ([ISO 8601 format](http://en.wikipedia.org/wiki/ISO_8601)) at which the company location was last modified. */\n updatedAt: Scalars[\"DateTime\"][\"output\"];\n };\n\n/** A company's location. */\nexport type CompanyLocationMetafieldArgs = {\n key: Scalars[\"String\"][\"input\"];\n namespace?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n};\n\n/** A company's location. */\nexport type CompanyLocationMetafieldsArgs = {\n identifiers: Array<HasMetafieldsIdentifier>;\n};\n\n/** The action for the 3DS payment redirect. */\nexport type CompletePaymentChallenge = {\n __typename?: \"CompletePaymentChallenge\";\n /** The URL for the 3DS payment redirect. */\n redirectUrl?: Maybe<Scalars[\"URL\"][\"output\"]>;\n};\n\n/** An error that occurred during a cart completion attempt. */\nexport type CompletionError = {\n __typename?: \"CompletionError\";\n /** The error code. */\n code: CompletionErrorCode;\n /** The error message. */\n message?: Maybe<Scalars[\"String\"][\"output\"]>;\n};\n\n/** The code of the error that occurred during a cart completion attempt. */\nexport enum CompletionErrorCode {\n Error = \"ERROR\",\n InventoryReservationError = \"INVENTORY_RESERVATION_ERROR\",\n PaymentAmountTooSmall = \"PAYMENT_AMOUNT_TOO_SMALL\",\n PaymentCallIssuer = \"PAYMENT_CALL_ISSUER\",\n PaymentCardDeclined = \"PAYMENT_CARD_DECLINED\",\n PaymentError = \"PAYMENT_ERROR\",\n PaymentGatewayNotEnabledError = \"PAYMENT_GATEWAY_NOT_ENABLED_ERROR\",\n PaymentInsufficientFunds = \"PAYMENT_INSUFFICIENT_FUNDS\",\n PaymentInvalidBillingAddress = \"PAYMENT_INVALID_BILLING_ADDRESS\",\n PaymentInvalidCreditCard = \"PAYMENT_INVALID_CREDIT_CARD\",\n PaymentInvalidCurrency = \"PAYMENT_INVALID_CURRENCY\",\n PaymentInvalidPaymentMethod = \"PAYMENT_INVALID_PAYMENT_METHOD\",\n PaymentTransientError = \"PAYMENT_TRANSIENT_ERROR\",\n}\n\n/** Represents information about the grouped merchandise in the cart. */\nexport type ComponentizableCartLine = BaseCartLine &\n Node & {\n __typename?: \"ComponentizableCartLine\";\n /** An attribute associated with the cart line. */\n attribute?: Maybe<Attribute>;\n /** The attributes associated with the cart line. Attributes are represented as key-value pairs. */\n attributes: Array<Attribute>;\n /** The cost of the merchandise that the buyer will pay for at checkout. The costs are subject to change and changes will be reflected at checkout. */\n cost: CartLineCost;\n /** The discounts that have been applied to the cart line. */\n discountAllocations: Array<CartDiscountAllocation>;\n /**\n * The estimated cost of the merchandise that the buyer will pay for at checkout. The estimated costs are subject to change and changes will be reflected at checkout.\n * @deprecated Use `cost` instead.\n */\n estimatedCost: CartLineEstimatedCost;\n /** A globally-unique ID. */\n id: Scalars[\"ID\"][\"output\"];\n /** The components of the line item. */\n lineComponents: Array<CartLine>;\n /** The merchandise that the buyer intends to purchase. */\n merchandise: Merchandise;\n /** The quantity of the merchandise that the customer intends to purchase. */\n quantity: Scalars[\"Int\"][\"output\"];\n /** The selling plan associated with the cart line and the effect that each selling plan has on variants when they're purchased. */\n sellingPlanAllocation?: Maybe<SellingPlanAllocation>;\n };\n\n/** Represents information about the grouped merchandise in the cart. */\nexport type ComponentizableCartLineAttributeArgs = {\n key: Scalars[\"String\"][\"input\"];\n};\n\n/** Details for count of elements. */\nexport type Count = {\n __typename?: \"Count\";\n /** Count of elements. */\n count: Scalars[\"Int\"][\"output\"];\n /** Precision of count, how exact is the value. */\n precision: CountPrecision;\n};\n\n/** The precision of the value returned by a count field. */\nexport enum CountPrecision {\n /** The count is at least the value. A limit was reached. */\n AtLeast = \"AT_LEAST\",\n /** The count is exactly the value. */\n Exact = \"EXACT\",\n}\n\n/** A country. */\nexport type Country = {\n __typename?: \"Country\";\n /** The languages available for the country. */\n availableLanguages: Array<Language>;\n /** The currency of the country. */\n currency: Currency;\n /** The ISO code of the country. */\n isoCode: CountryCode;\n /** The market that includes this country. */\n market?: Maybe<Market>;\n /** The name of the country. */\n name: Scalars[\"String\"][\"output\"];\n /** The unit system used in the country. */\n unitSystem: UnitSystem;\n};\n\n/**\n * The code designating a country/region, which generally follows ISO 3166-1 alpha-2 guidelines.\n * If a territory doesn't have a country code value in the `CountryCode` enum, then it might be considered a subdivision\n * of another country. For example, the territories associated with Spain are represented by the country code `ES`,\n * and the territories associated with the United States of America are represented by the country code `US`.\n *\n */\nexport enum CountryCode {\n /** Ascension Island. */\n Ac = \"AC\",\n /** Andorra. */\n Ad = \"AD\",\n /** United Arab Emirates. */\n Ae = \"AE\",\n /** Afghanistan. */\n Af = \"AF\",\n /** Antigua & Barbuda. */\n Ag = \"AG\",\n /** Anguilla. */\n Ai = \"AI\",\n /** Albania. */\n Al = \"AL\",\n /** Armenia. */\n Am = \"AM\",\n /** Netherlands Antilles. */\n An = \"AN\",\n /** Angola. */\n Ao = \"AO\",\n /** Argentina. */\n Ar = \"AR\",\n /** Austria. */\n At = \"AT\",\n /** Australia. */\n Au = \"AU\",\n /** Aruba. */\n Aw = \"AW\",\n /** Åland Islands. */\n Ax = \"AX\",\n /** Azerbaijan. */\n Az = \"AZ\",\n /** Bosnia & Herzegovina. */\n Ba = \"BA\",\n /** Barbados. */\n Bb = \"BB\",\n /** Bangladesh. */\n Bd = \"BD\",\n /** Belgium. */\n Be = \"BE\",\n /** Burkina Faso. */\n Bf = \"BF\",\n /** Bulgaria. */\n Bg = \"BG\",\n /** Bahrain. */\n Bh = \"BH\",\n /** Burundi. */\n Bi = \"BI\",\n /** Benin. */\n Bj = \"BJ\",\n /** St. Barthélemy. */\n Bl = \"BL\",\n /** Bermuda. */\n Bm = \"BM\",\n /** Brunei. */\n Bn = \"BN\",\n /** Bolivia. */\n Bo = \"BO\",\n /** Caribbean Netherlands. */\n Bq = \"BQ\",\n /** Brazil. */\n Br = \"BR\",\n /** Bahamas. */\n Bs = \"BS\",\n /** Bhutan. */\n Bt = \"BT\",\n /** Bouvet Island. */\n Bv = \"BV\",\n /** Botswana. */\n Bw = \"BW\",\n /** Belarus. */\n By = \"BY\",\n /** Belize. */\n Bz = \"BZ\",\n /** Canada. */\n Ca = \"CA\",\n /** Cocos (Keeling) Islands. */\n Cc = \"CC\",\n /** Congo - Kinshasa. */\n Cd = \"CD\",\n /** Central African Republic. */\n Cf = \"CF\",\n /** Congo - Brazzaville. */\n Cg = \"CG\",\n /** Switzerland. */\n Ch = \"CH\",\n /** Côte d’Ivoire. */\n Ci = \"CI\",\n /** Cook Islands. */\n Ck = \"CK\",\n /** Chile. */\n Cl = \"CL\",\n /** Cameroon. */\n Cm = \"CM\",\n /** China. */\n Cn = \"CN\",\n /** Colombia. */\n Co = \"CO\",\n /** Costa Rica. */\n Cr = \"CR\",\n /** Cuba. */\n Cu = \"CU\",\n /** Cape Verde. */\n Cv = \"CV\",\n /** Curaçao. */\n Cw = \"CW\",\n /** Christmas Island. */\n Cx = \"CX\",\n /** Cyprus. */\n Cy = \"CY\",\n /** Czechia. */\n Cz = \"CZ\",\n /** Germany. */\n De = \"DE\",\n /** Djibouti. */\n Dj = \"DJ\",\n /** Denmark. */\n Dk = \"DK\",\n /** Dominica. */\n Dm = \"DM\",\n /** Dominican Republic. */\n Do = \"DO\",\n /** Algeria. */\n Dz = \"DZ\",\n /** Ecuador. */\n Ec = \"EC\",\n /** Estonia. */\n Ee = \"EE\",\n /** Egypt. */\n Eg = \"EG\",\n /** Western Sahara. */\n Eh = \"EH\",\n /** Eritrea. */\n Er = \"ER\",\n /** Spain. */\n Es = \"ES\",\n /** Ethiopia. */\n Et = \"ET\",\n /** Finland. */\n Fi = \"FI\",\n /** Fiji. */\n Fj = \"FJ\",\n /** Falkland Islands. */\n Fk = \"FK\",\n /** Faroe Islands. */\n Fo = \"FO\",\n /** France. */\n Fr = \"FR\",\n /** Gabon. */\n Ga = \"GA\",\n /** United Kingdom. */\n Gb = \"GB\",\n /** Grenada. */\n Gd = \"GD\",\n /** Georgia. */\n Ge = \"GE\",\n /** French Guiana. */\n Gf = \"GF\",\n /** Guernsey. */\n Gg = \"GG\",\n /** Ghana. */\n Gh = \"GH\",\n /** Gibraltar. */\n Gi = \"GI\",\n /** Greenland. */\n Gl = \"GL\",\n /** Gambia. */\n Gm = \"GM\",\n /** Guinea. */\n Gn = \"GN\",\n /** Guadeloupe. */\n Gp = \"GP\",\n /** Equatorial Guinea. */\n Gq = \"GQ\",\n /** Greece. */\n Gr = \"GR\",\n /** South Georgia & South Sandwich Islands. */\n Gs = \"GS\",\n /** Guatemala. */\n Gt = \"GT\",\n /** Guinea-Bissau. */\n Gw = \"GW\",\n /** Guyana. */\n Gy = \"GY\",\n /** Hong Kong SAR. */\n Hk = \"HK\",\n /** Heard & McDonald Islands. */\n Hm = \"HM\",\n /** Honduras. */\n Hn = \"HN\",\n /** Croatia. */\n Hr = \"HR\",\n /** Haiti. */\n Ht = \"HT\",\n /** Hungary. */\n Hu = \"HU\",\n /** Indonesia. */\n Id = \"ID\",\n /** Ireland. */\n Ie = \"IE\",\n /** Israel. */\n Il = \"IL\",\n /** Isle of Man. */\n Im = \"IM\",\n /** India. */\n In = \"IN\",\n /** British Indian Ocean Territory. */\n Io = \"IO\",\n /** Iraq. */\n Iq = \"IQ\",\n /** Iran. */\n Ir = \"IR\",\n /** Iceland. */\n Is = \"IS\",\n /** Italy. */\n It = \"IT\",\n /** Jersey. */\n Je = \"JE\",\n /** Jamaica. */\n Jm = \"JM\",\n /** Jordan. */\n Jo = \"JO\",\n /** Japan. */\n Jp = \"JP\",\n /** Kenya. */\n Ke = \"KE\",\n /** Kyrgyzstan. */\n Kg = \"KG\",\n /** Cambodia. */\n Kh = \"KH\",\n /** Kiribati. */\n Ki = \"KI\",\n /** Comoros. */\n Km = \"KM\",\n /** St. Kitts & Nevis. */\n Kn = \"KN\",\n /** North Korea. */\n Kp = \"KP\",\n /** South Korea. */\n Kr = \"KR\",\n /** Kuwait. */\n Kw = \"KW\",\n /** Cayman Islands. */\n Ky = \"KY\",\n /** Kazakhstan. */\n Kz = \"KZ\",\n /** Laos. */\n La = \"LA\",\n /** Lebanon. */\n Lb = \"LB\",\n /** St. Lucia. */\n Lc = \"LC\",\n /** Liechtenstein. */\n Li = \"LI\",\n /** Sri Lanka. */\n Lk = \"LK\",\n /** Liberia. */\n Lr = \"LR\",\n /** Lesotho. */\n Ls = \"LS\",\n /** Lithuania. */\n Lt = \"LT\",\n /** Luxembourg. */\n Lu = \"LU\",\n /** Latvia. */\n Lv = \"LV\",\n /** Libya. */\n Ly = \"LY\",\n /** Morocco. */\n Ma = \"MA\",\n /** Monaco. */\n Mc = \"MC\",\n /** Moldova. */\n Md = \"MD\",\n /** Montenegro. */\n Me = \"ME\",\n /** St. Martin. */\n Mf = \"MF\",\n /** Madagascar. */\n Mg = \"MG\",\n /** North Macedonia. */\n Mk = \"MK\",\n /** Mali. */\n Ml = \"ML\",\n /** Myanmar (Burma). */\n Mm = \"MM\",\n /** Mongolia. */\n Mn = \"MN\",\n /** Macao SAR. */\n Mo = \"MO\",\n /** Martinique. */\n Mq = \"MQ\",\n /** Mauritania. */\n Mr = \"MR\",\n /** Montserrat. */\n Ms = \"MS\",\n /** Malta. */\n Mt = \"MT\",\n /** Mauritius. */\n Mu = \"MU\",\n /** Maldives. */\n Mv = \"MV\",\n /** Malawi. */\n Mw = \"MW\",\n /** Mexico. */\n Mx = \"MX\",\n /** Malaysia. */\n My = \"MY\",\n /** Mozambique. */\n Mz = \"MZ\",\n /** Namibia. */\n Na = \"NA\",\n /** New Caledonia. */\n Nc = \"NC\",\n /** Niger. */\n Ne = \"NE\",\n /** Norfolk Island. */\n Nf = \"NF\",\n /** Nigeria. */\n Ng = \"NG\",\n /** Nicaragua. */\n Ni = \"NI\",\n /** Netherlands. */\n Nl = \"NL\",\n /** Norway. */\n No = \"NO\",\n /** Nepal. */\n Np = \"NP\",\n /** Nauru. */\n Nr = \"NR\",\n /** Niue. */\n Nu = \"NU\",\n /** New Zealand. */\n Nz = \"NZ\",\n /** Oman. */\n Om = \"OM\",\n /** Panama. */\n Pa = \"PA\",\n /** Peru. */\n Pe = \"PE\",\n /** French Polynesia. */\n Pf = \"PF\",\n /** Papua New Guinea. */\n Pg = \"PG\",\n /** Philippines. */\n Ph = \"PH\",\n /** Pakistan. */\n Pk = \"PK\",\n /** Poland. */\n Pl = \"PL\",\n /** St. Pierre & Miquelon. */\n Pm = \"PM\",\n /** Pitcairn Islands. */\n Pn = \"PN\",\n /** Palestinian Territories. */\n Ps = \"PS\",\n /** Portugal. */\n Pt = \"PT\",\n /** Paraguay. */\n Py = \"PY\",\n /** Qatar. */\n Qa = \"QA\",\n /** Réunion. */\n Re = \"RE\",\n /** Romania. */\n Ro = \"RO\",\n /** Serbia. */\n Rs = \"RS\",\n /** Russia. */\n Ru = \"RU\",\n /** Rwanda. */\n Rw = \"RW\",\n /** Saudi Arabia. */\n Sa = \"SA\",\n /** Solomon Islands. */\n Sb = \"SB\",\n /** Seychelles. */\n Sc = \"SC\",\n /** Sudan. */\n Sd = \"SD\",\n /** Sweden. */\n Se = \"SE\",\n /** Singapore. */\n Sg = \"SG\",\n /** St. Helena. */\n Sh = \"SH\",\n /** Slovenia. */\n Si = \"SI\",\n /** Svalbard & Jan Mayen. */\n Sj = \"SJ\",\n /** Slovakia. */\n Sk = \"SK\",\n /** Sierra Leone. */\n Sl = \"SL\",\n /** San Marino. */\n Sm = \"SM\",\n /** Senegal. */\n Sn = \"SN\",\n /** Somalia. */\n So = \"SO\",\n /** Suriname. */\n Sr = \"SR\",\n /** South Sudan. */\n Ss = \"SS\",\n /** São Tomé & Príncipe. */\n St = \"ST\",\n /** El Salvador. */\n Sv = \"SV\",\n /** Sint Maarten. */\n Sx = \"SX\",\n /** Syria. */\n Sy = \"SY\",\n /** Eswatini. */\n Sz = \"SZ\",\n /** Tristan da Cunha. */\n Ta = \"TA\",\n /** Turks & Caicos Islands. */\n Tc = \"TC\",\n /** Chad. */\n Td = \"TD\",\n /** French Southern Territories. */\n Tf = \"TF\",\n /** Togo. */\n Tg = \"TG\",\n /** Thailand. */\n Th = \"TH\",\n /** Tajikistan. */\n Tj = \"TJ\",\n /** Tokelau. */\n Tk = \"TK\",\n /** Timor-Leste. */\n Tl = \"TL\",\n /** Turkmenistan. */\n Tm = \"TM\",\n /** Tunisia. */\n Tn = \"TN\",\n /** Tonga. */\n To = \"TO\",\n /** Türkiye. */\n Tr = \"TR\",\n /** Trinidad & Tobago. */\n Tt = \"TT\",\n /** Tuvalu. */\n Tv = \"TV\",\n /** Taiwan. */\n Tw = \"TW\",\n /** Tanzania. */\n Tz = \"TZ\",\n /** Ukraine. */\n Ua = \"UA\",\n /** Uganda. */\n Ug = \"UG\",\n /** U.S. Outlying Islands. */\n Um = \"UM\",\n /** United States. */\n Us = \"US\",\n /** Uruguay. */\n Uy = \"UY\",\n /** Uzbekistan. */\n Uz = \"UZ\",\n /** Vatican City. */\n Va = \"VA\",\n /** St. Vincent & Grenadines. */\n Vc = \"VC\",\n /** Venezuela. */\n Ve = \"VE\",\n /** British Virgin Islands. */\n Vg = \"VG\",\n /** Vietnam. */\n Vn = \"VN\",\n /** Vanuatu. */\n Vu = \"VU\",\n /** Wallis & Futuna. */\n Wf = \"WF\",\n /** Samoa. */\n Ws = \"WS\",\n /** Kosovo. */\n Xk = \"XK\",\n /** Yemen. */\n Ye = \"YE\",\n /** Mayotte. */\n Yt = \"YT\",\n /** South Africa. */\n Za = \"ZA\",\n /** Zambia. */\n Zm = \"ZM\",\n /** Zimbabwe. */\n Zw = \"ZW\",\n /** Unknown Region. */\n Zz = \"ZZ\",\n}\n\n/** The part of the image that should remain after cropping. */\nexport enum CropRegion {\n /** Keep the bottom of the image. */\n Bottom = \"BOTTOM\",\n /** Keep the center of the image. */\n Center = \"CENTER\",\n /** Keep the left of the image. */\n Left = \"LEFT\",\n /** Keep the right of the image. */\n Right = \"RIGHT\",\n /** Keep the top of the image. */\n Top = \"TOP\",\n}\n\n/** A currency. */\nexport type Currency = {\n __typename?: \"Currency\";\n /** The ISO code of the currency. */\n isoCode: CurrencyCode;\n /** The name of the currency. */\n name: Scalars[\"String\"][\"output\"];\n /** The symbol of the currency. */\n symbol: Scalars[\"String\"][\"output\"];\n};\n\n/**\n * The three-letter currency codes that represent the world currencies used in\n * stores. These include standard ISO 4217 codes, legacy codes,\n * and non-standard codes.\n *\n */\nexport enum CurrencyCode {\n /** United Arab Emirates Dirham (AED). */\n Aed = \"AED\",\n /** Afghan Afghani (AFN). */\n Afn = \"AFN\",\n /** Albanian Lek (ALL). */\n All = \"ALL\",\n /** Armenian Dram (AMD). */\n Amd = \"AMD\",\n /** Netherlands Antillean Guilder. */\n Ang = \"ANG\",\n /** Angolan Kwanza (AOA). */\n Aoa = \"AOA\",\n /** Argentine Pesos (ARS). */\n Ars = \"ARS\",\n /** Australian Dollars (AUD). */\n Aud = \"AUD\",\n /** Aruban Florin (AWG). */\n Awg = \"AWG\",\n /** Azerbaijani Manat (AZN). */\n Azn = \"AZN\",\n /** Bosnia and Herzegovina Convertible Mark (BAM). */\n Bam = \"BAM\",\n /** Barbadian Dollar (BBD). */\n Bbd = \"BBD\",\n /** Bangladesh Taka (BDT). */\n Bdt = \"BDT\",\n /** Bulgarian Lev (BGN). */\n Bgn = \"BGN\",\n /** Bahraini Dinar (BHD). */\n Bhd = \"BHD\",\n /** Burundian Franc (BIF). */\n Bif = \"BIF\",\n /** Bermudian Dollar (BMD). */\n Bmd = \"BMD\",\n /** Brunei Dollar (BND). */\n Bnd = \"BND\",\n /** Bolivian Boliviano (BOB). */\n Bob = \"BOB\",\n /** Brazilian Real (BRL). */\n Brl = \"BRL\",\n /** Bahamian Dollar (BSD). */\n Bsd = \"BSD\",\n /** Bhutanese Ngultrum (BTN). */\n Btn = \"BTN\",\n /** Botswana Pula (BWP). */\n Bwp = \"BWP\",\n /** Belarusian Ruble (BYN). */\n Byn = \"BYN\",\n /**\n * Belarusian Ruble (BYR).\n * @deprecated `BYR` is deprecated. Use `BYN` available from version `2021-01` onwards instead.\n */\n Byr = \"BYR\",\n /** Belize Dollar (BZD). */\n Bzd = \"BZD\",\n /** Canadian Dollars (CAD). */\n Cad = \"CAD\",\n /** Congolese franc (CDF). */\n Cdf = \"CDF\",\n /** Swiss Francs (CHF). */\n Chf = \"CHF\",\n /** Chilean Peso (CLP). */\n Clp = \"CLP\",\n /** Chinese Yuan Renminbi (CNY). */\n Cny = \"CNY\",\n /** Colombian Peso (COP). */\n Cop = \"COP\",\n /** Costa Rican Colones (CRC). */\n Crc = \"CRC\",\n /** Cape Verdean escudo (CVE). */\n Cve = \"CVE\",\n /** Czech Koruny (CZK). */\n Czk = \"CZK\",\n /** Djiboutian Franc (DJF). */\n Djf = \"DJF\",\n /** Danish Kroner (DKK). */\n Dkk = \"DKK\",\n /** Dominican Peso (DOP). */\n Dop = \"DOP\",\n /** Algerian Dinar (DZD). */\n Dzd = \"DZD\",\n /** Egyptian Pound (EGP). */\n Egp = \"EGP\",\n /** Eritrean Nakfa (ERN). */\n Ern = \"ERN\",\n /** Ethiopian Birr (ETB). */\n Etb = \"ETB\",\n /** Euro (EUR). */\n Eur = \"EUR\",\n /** Fijian Dollars (FJD). */\n Fjd = \"FJD\",\n /** Falkland Islands Pounds (FKP). */\n Fkp = \"FKP\",\n /** United Kingdom Pounds (GBP). */\n Gbp = \"GBP\",\n /** Georgian Lari (GEL). */\n Gel = \"GEL\",\n /** Ghanaian Cedi (GHS). */\n Ghs = \"GHS\",\n /** Gibraltar Pounds (GIP). */\n Gip = \"GIP\",\n /** Gambian Dalasi (GMD). */\n Gmd = \"GMD\",\n /** Guinean Franc (GNF). */\n Gnf = \"GNF\",\n /** Guatemalan Quetzal (GTQ). */\n Gtq = \"GTQ\",\n /** Guyanese Dollar (GYD). */\n Gyd = \"GYD\",\n /** Hong Kong Dollars (HKD). */\n Hkd = \"HKD\",\n /** Honduran Lempira (HNL). */\n Hnl = \"HNL\",\n /** Croatian Kuna (HRK). */\n Hrk = \"HRK\",\n /** Haitian Gourde (HTG). */\n Htg = \"HTG\",\n /** Hungarian Forint (HUF). */\n Huf = \"HUF\",\n /** Indonesian Rupiah (IDR). */\n Idr = \"IDR\",\n /** Israeli New Shekel (NIS). */\n Ils = \"ILS\",\n /** Indian Rupees (INR). */\n Inr = \"INR\",\n /** Iraqi Dinar (IQD). */\n Iqd = \"IQD\",\n /** Iranian Rial (IRR). */\n Irr = \"IRR\",\n /** Icelandic Kronur (ISK). */\n Isk = \"ISK\",\n /** Jersey Pound. */\n Jep = \"JEP\",\n /** Jamaican Dollars (JMD). */\n Jmd = \"JMD\",\n /** Jordanian Dinar (JOD). */\n Jod = \"JOD\",\n /** Japanese Yen (JPY). */\n Jpy = \"JPY\",\n /** Kenyan Shilling (KES). */\n Kes = \"KES\",\n /** Kyrgyzstani Som (KGS). */\n Kgs = \"KGS\",\n /** Cambodian Riel. */\n Khr = \"KHR\",\n /** Kiribati Dollar (KID). */\n Kid = \"KID\",\n /** Comorian Franc (KMF). */\n Kmf = \"KMF\",\n /** South Korean Won (KRW). */\n Krw = \"KRW\",\n /** Kuwaiti Dinar (KWD). */\n Kwd = \"KWD\",\n /** Cayman Dollars (KYD). */\n Kyd = \"KYD\",\n /** Kazakhstani Tenge (KZT). */\n Kzt = \"KZT\",\n /** Laotian Kip (LAK). */\n Lak = \"LAK\",\n /** Lebanese Pounds (LBP). */\n Lbp = \"LBP\",\n /** Sri Lankan Rupees (LKR). */\n Lkr = \"LKR\",\n /** Liberian Dollar (LRD). */\n Lrd = \"LRD\",\n /** Lesotho Loti (LSL). */\n Lsl = \"LSL\",\n /** Lithuanian Litai (LTL). */\n Ltl = \"LTL\",\n /** Latvian Lati (LVL). */\n Lvl = \"LVL\",\n /** Libyan Dinar (LYD). */\n Lyd = \"LYD\",\n /** Moroccan Dirham. */\n Mad = \"MAD\",\n /** Moldovan Leu (MDL). */\n Mdl = \"MDL\",\n /** Malagasy Ariary (MGA). */\n Mga = \"MGA\",\n /** Macedonia Denar (MKD). */\n Mkd = \"MKD\",\n /** Burmese Kyat (MMK). */\n Mmk = \"MMK\",\n /** Mongolian Tugrik. */\n Mnt = \"MNT\",\n /** Macanese Pataca (MOP). */\n Mop = \"MOP\",\n /** Mauritanian Ouguiya (MRU). */\n Mru = \"MRU\",\n /** Mauritian Rupee (MUR). */\n Mur = \"MUR\",\n /** Maldivian Rufiyaa (MVR). */\n Mvr = \"MVR\",\n /** Malawian Kwacha (MWK). */\n Mwk = \"MWK\",\n /** Mexican Pesos (MXN). */\n Mxn = \"MXN\",\n /** Malaysian Ringgits (MYR). */\n Myr = \"MYR\",\n /** Mozambican Metical. */\n Mzn = \"MZN\",\n /** Namibian Dollar. */\n Nad = \"NAD\",\n /** Nigerian Naira (NGN). */\n Ngn = \"NGN\",\n /** Nicaraguan Córdoba (NIO). */\n Nio = \"NIO\",\n /** Norwegian Kroner (NOK). */\n Nok = \"NOK\",\n /** Nepalese Rupee (NPR). */\n Npr = \"NPR\",\n /** New Zealand Dollars (NZD). */\n Nzd = \"NZD\",\n /** Omani Rial (OMR). */\n Omr = \"OMR\",\n /** Panamian Balboa (PAB). */\n Pab = \"PAB\",\n /** Peruvian Nuevo Sol (PEN). */\n Pen = \"PEN\",\n /** Papua New Guinean Kina (PGK). */\n Pgk = \"PGK\",\n /** Philippine Peso (PHP). */\n Php = \"PHP\",\n /** Pakistani Rupee (PKR). */\n Pkr = \"PKR\",\n /** Polish Zlotych (PLN). */\n Pln = \"PLN\",\n /** Paraguayan Guarani (PYG). */\n Pyg = \"PYG\",\n /** Qatari Rial (QAR). */\n Qar = \"QAR\",\n /** Romanian Lei (RON). */\n Ron = \"RON\",\n /** Serbian dinar (RSD). */\n Rsd = \"RSD\",\n /** Russian Rubles (RUB). */\n Rub = \"RUB\",\n /** Rwandan Franc (RWF). */\n Rwf = \"RWF\",\n /** Saudi Riyal (SAR). */\n Sar = \"SAR\",\n /** Solomon Islands Dollar (SBD). */\n Sbd = \"SBD\",\n /** Seychellois Rupee (SCR). */\n Scr = \"SCR\",\n /** Sudanese Pound (SDG). */\n Sdg = \"SDG\",\n /** Swedish Kronor (SEK). */\n Sek = \"SEK\",\n /** Singapore Dollars (SGD). */\n Sgd = \"SGD\",\n /** Saint Helena Pounds (SHP). */\n Shp = \"SHP\",\n /** Sierra Leonean Leone (SLL). */\n Sll = \"SLL\",\n /** Somali Shilling (SOS). */\n Sos = \"SOS\",\n /** Surinamese Dollar (SRD). */\n Srd = \"SRD\",\n /** South Sudanese Pound (SSP). */\n Ssp = \"SSP\",\n /**\n * Sao Tome And Principe Dobra (STD).\n * @deprecated `STD` is deprecated. Use `STN` available from version `2022-07` onwards instead.\n */\n Std = \"STD\",\n /** Sao Tome And Principe Dobra (STN). */\n Stn = \"STN\",\n /** Syrian Pound (SYP). */\n Syp = \"SYP\",\n /** Swazi Lilangeni (SZL). */\n Szl = \"SZL\",\n /** Thai baht (THB). */\n Thb = \"THB\",\n /** Tajikistani Somoni (TJS). */\n Tjs = \"TJS\",\n /** Turkmenistani Manat (TMT). */\n Tmt = \"TMT\",\n /** Tunisian Dinar (TND). */\n Tnd = \"TND\",\n /** Tongan Pa'anga (TOP). */\n Top = \"TOP\",\n /** Turkish Lira (TRY). */\n Try = \"TRY\",\n /** Trinidad and Tobago Dollars (TTD). */\n Ttd = \"TTD\",\n /** Taiwan Dollars (TWD). */\n Twd = \"TWD\",\n /** Tanzanian Shilling (TZS). */\n Tzs = \"TZS\",\n /** Ukrainian Hryvnia (UAH). */\n Uah = \"UAH\",\n /** Ugandan Shilling (UGX). */\n Ugx = \"UGX\",\n /** United States Dollars (USD). */\n Usd = \"USD\",\n /** Uruguayan Pesos (UYU). */\n Uyu = \"UYU\",\n /** Uzbekistan som (UZS). */\n Uzs = \"UZS\",\n /** Venezuelan Bolivares (VED). */\n Ved = \"VED\",\n /**\n * Venezuelan Bolivares (VEF).\n * @deprecated `VEF` is deprecated. Use `VES` available from version `2020-10` onwards instead.\n */\n Vef = \"VEF\",\n /** Venezuelan Bolivares Soberanos (VES). */\n Ves = \"VES\",\n /** Vietnamese đồng (VND). */\n Vnd = \"VND\",\n /** Vanuatu Vatu (VUV). */\n Vuv = \"VUV\",\n /** Samoan Tala (WST). */\n Wst = \"WST\",\n /** Central African CFA Franc (XAF). */\n Xaf = \"XAF\",\n /** East Caribbean Dollar (XCD). */\n Xcd = \"XCD\",\n /** West African CFA franc (XOF). */\n Xof = \"XOF\",\n /** CFP Franc (XPF). */\n Xpf = \"XPF\",\n /** Unrecognized currency. */\n Xxx = \"XXX\",\n /** Yemeni Rial (YER). */\n Yer = \"YER\",\n /** South African Rand (ZAR). */\n Zar = \"ZAR\",\n /** Zambian Kwacha (ZMW). */\n Zmw = \"ZMW\",\n}\n\n/** 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. */\nexport type Customer = HasMetafields & {\n __typename?: \"Customer\";\n /** Indicates whether the customer has consented to be sent marketing material via email. */\n acceptsMarketing: Scalars[\"Boolean\"][\"output\"];\n /** A list of addresses for the customer. */\n addresses: MailingAddressConnection;\n /** The date and time when the customer was created. */\n createdAt: Scalars[\"DateTime\"][\"output\"];\n /** The customer’s default address. */\n defaultAddress?: Maybe<MailingAddress>;\n /** The customer’s name, email or phone number. */\n displayName: Scalars[\"String\"][\"output\"];\n /** The customer’s email address. */\n email?: Maybe<Scalars[\"String\"][\"output\"]>;\n /** The customer’s first name. */\n firstName?: Maybe<Scalars[\"String\"][\"output\"]>;\n /** A unique ID for the customer. */\n id: Scalars[\"ID\"][\"output\"];\n /** The customer’s last name. */\n lastName?: Maybe<Scalars[\"String\"][\"output\"]>;\n /** A [custom field](https://shopify.dev/docs/apps/build/custom-data), including its `namespace` and `key`, that's associated with a Shopify resource for the purposes of adding and storing additional information. */\n metafield?: Maybe<Metafield>;\n /** A list of [custom fields](/docs/apps/build/custom-data) that a merchant associates with a Shopify resource. */\n metafields: Array<Maybe<Metafield>>;\n /** The number of orders that the customer has made at the store in their lifetime. */\n numberOfOrders: Scalars[\"UnsignedInt64\"][\"output\"];\n /** The orders associated with the customer. */\n orders: OrderConnection;\n /** The customer’s phone number. */\n phone?: Maybe<Scalars[\"String\"][\"output\"]>;\n /**\n * A comma separated list of tags that have been added to the customer.\n * Additional access scope required: unauthenticated_read_customer_tags.\n *\n */\n tags: Array<Scalars[\"String\"][\"output\"]>;\n /** The date and time when the customer information was updated. */\n updatedAt: Scalars[\"DateTime\"][\"output\"];\n};\n\n/** 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. */\nexport type CustomerAddressesArgs = {\n after?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n before?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n first?: InputMaybe<Scalars[\"Int\"][\"input\"]>;\n last?: InputMaybe<Scalars[\"Int\"][\"input\"]>;\n reverse?: InputMaybe<Scalars[\"Boolean\"][\"input\"]>;\n};\n\n/** 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. */\nexport type CustomerMetafieldArgs = {\n key: Scalars[\"String\"][\"input\"];\n namespace?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n};\n\n/** 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. */\nexport type CustomerMetafieldsArgs = {\n identifiers: Array<HasMetafieldsIdentifier>;\n};\n\n/** 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. */\nexport type CustomerOrdersArgs = {\n after?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n before?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n first?: InputMaybe<Scalars[\"Int\"][\"input\"]>;\n last?: InputMaybe<Scalars[\"Int\"][\"input\"]>;\n query?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n reverse?: InputMaybe<Scalars[\"Boolean\"][\"input\"]>;\n sortKey?: InputMaybe<OrderSortKeys>;\n};\n\n/** A CustomerAccessToken represents the unique token required to make modifications to the customer object. */\nexport type CustomerAccessToken = {\n __typename?: \"CustomerAccessToken\";\n /** The customer’s access token. */\n accessToken: Scalars[\"String\"][\"output\"];\n /** The date and time when the customer access token expires. */\n expiresAt: Scalars[\"DateTime\"][\"output\"];\n};\n\n/** The input fields required to create a customer access token. */\nexport type CustomerAccessTokenCreateInput = {\n /** The email associated to the customer. */\n email: Scalars[\"String\"][\"input\"];\n /** The login password to be used by the customer. */\n password: Scalars[\"String\"][\"input\"];\n};\n\n/** Return type for `customerAccessTokenCreate` mutation. */\nexport type CustomerAccessTokenCreatePayload = {\n __typename?: \"CustomerAccessTokenCreatePayload\";\n /** The newly created customer access token object. */\n customerAccessToken?: Maybe<CustomerAccessToken>;\n /** The list of errors that occurred from executing the mutation. */\n customerUserErrors: Array<CustomerUserError>;\n /**\n * The list of errors that occurred from executing the mutation.\n * @deprecated Use `customerUserErrors` instead.\n */\n userErrors: Array<UserError>;\n};\n\n/** Return type for `customerAccessTokenCreateWithMultipass` mutation. */\nexport type CustomerAccessTokenCreateWithMultipassPayload = {\n __typename?: \"CustomerAccessTokenCreateWithMultipassPayload\";\n /** An access token object associated with the customer. */\n customerAccessToken?: Maybe<CustomerAccessToken>;\n /** The list of errors that occurred from executing the mutation. */\n customerUserErrors: Array<CustomerUserError>;\n};\n\n/** Return type for `customerAccessTokenDelete` mutation. */\nexport type CustomerAccessTokenDeletePayload = {\n __typename?: \"CustomerAccessTokenDeletePayload\";\n /** The destroyed access token. */\n deletedAccessToken?: Maybe<Scalars[\"String\"][\"output\"]>;\n /** ID of the destroyed customer access token. */\n deletedCustomerAccessTokenId?: Maybe<Scalars[\"String\"][\"output\"]>;\n /** The list of errors that occurred from executing the mutation. */\n userErrors: Array<UserError>;\n};\n\n/** Return type for `customerAccessTokenRenew` mutation. */\nexport type CustomerAccessTokenRenewPayload = {\n __typename?: \"CustomerAccessTokenRenewPayload\";\n /** The renewed customer access token object. */\n customerAccessToken?: Maybe<CustomerAccessToken>;\n /** The list of errors that occurred from executing the mutation. */\n userErrors: Array<UserError>;\n};\n\n/** Return type for `customerActivateByUrl` mutation. */\nexport type CustomerActivateByUrlPayload = {\n __typename?: \"CustomerActivateByUrlPayload\";\n /** The customer that was activated. */\n customer?: Maybe<Customer>;\n /** A new customer access token for the customer. */\n customerAccessToken?: Maybe<CustomerAccessToken>;\n /** The list of errors that occurred from executing the mutation. */\n customerUserErrors: Array<CustomerUserError>;\n};\n\n/** The input fields to activate a customer. */\nexport type CustomerActivateInput = {\n /** The activation token required to activate the customer. */\n activationToken: Scalars[\"String\"][\"input\"];\n /** New password that will be set during activation. */\n password: Scalars[\"String\"][\"input\"];\n};\n\n/** Return type for `customerActivate` mutation. */\nexport type CustomerActivatePayload = {\n __typename?: \"CustomerActivatePayload\";\n /** The customer object. */\n customer?: Maybe<Customer>;\n /** A newly created customer access token object for the customer. */\n customerAccessToken?: Maybe<CustomerAccessToken>;\n /** The list of errors that occurred from executing the mutation. */\n customerUserErrors: Array<CustomerUserError>;\n /**\n * The list of errors that occurred from executing the mutation.\n * @deprecated Use `customerUserErrors` instead.\n */\n userErrors: Array<UserError>;\n};\n\n/** Return type for `customerAddressCreate` mutation. */\nexport type CustomerAddressCreatePayload = {\n __typename?: \"CustomerAddressCreatePayload\";\n /** The new customer address object. */\n customerAddress?: Maybe<MailingAddress>;\n /** The list of errors that occurred from executing the mutation. */\n customerUserErrors: Array<CustomerUserError>;\n /**\n * The list of errors that occurred from executing the mutation.\n * @deprecated Use `customerUserErrors` instead.\n */\n userErrors: Array<UserError>;\n};\n\n/** Return type for `customerAddressDelete` mutation. */\nexport type CustomerAddressDeletePayload = {\n __typename?: \"CustomerAddressDeletePayload\";\n /** The list of errors that occurred from executing the mutation. */\n customerUserErrors: Array<CustomerUserError>;\n /** ID of the deleted customer address. */\n deletedCustomerAddressId?: Maybe<Scalars[\"String\"][\"output\"]>;\n /**\n * The list of errors that occurred from executing the mutation.\n * @deprecated Use `customerUserErrors` instead.\n */\n userErrors: Array<UserError>;\n};\n\n/** Return type for `customerAddressUpdate` mutation. */\nexport type CustomerAddressUpdatePayload = {\n __typename?: \"CustomerAddressUpdatePayload\";\n /** The customer’s updated mailing address. */\n customerAddress?: Maybe<MailingAddress>;\n /** The list of errors that occurred from executing the mutation. */\n customerUserErrors: Array<CustomerUserError>;\n /**\n * The list of errors that occurred from executing the mutation.\n * @deprecated Use `customerUserErrors` instead.\n */\n userErrors: Array<UserError>;\n};\n\n/** The input fields to create a new customer. */\nexport type CustomerCreateInput = {\n /** Indicates whether the customer has consented to be sent marketing material via email. */\n acceptsMarketing?: InputMaybe<Scalars[\"Boolean\"][\"input\"]>;\n /** The customer’s email. */\n email: Scalars[\"String\"][\"input\"];\n /** The customer’s first name. */\n firstName?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n /** The customer’s last name. */\n lastName?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n /** The login password used by the customer. */\n password: Scalars[\"String\"][\"input\"];\n /**\n * A unique phone number for the customer.\n *\n * Formatted using E.164 standard. For example, _+16135551111_.\n *\n */\n phone?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n};\n\n/** Return type for `customerCreate` mutation. */\nexport type CustomerCreatePayload = {\n __typename?: \"CustomerCreatePayload\";\n /** The created customer object. */\n customer?: Maybe<Customer>;\n /** The list of errors that occurred from executing the mutation. */\n customerUserErrors: Array<CustomerUserError>;\n /**\n * The list of errors that occurred from executing the mutation.\n * @deprecated Use `customerUserErrors` instead.\n */\n userErrors: Array<UserError>;\n};\n\n/** Return type for `customerDefaultAddressUpdate` mutation. */\nexport type CustomerDefaultAddressUpdatePayload = {\n __typename?: \"CustomerDefaultAddressUpdatePayload\";\n /** The updated customer object. */\n customer?: Maybe<Customer>;\n /** The list of errors that occurred from executing the mutation. */\n customerUserErrors: Array<CustomerUserError>;\n /**\n * The list of errors that occurred from executing the mutation.\n * @deprecated Use `customerUserErrors` instead.\n */\n userErrors: Array<UserError>;\n};\n\n/** Possible error codes that can be returned by `CustomerUserError`. */\nexport enum CustomerErrorCode {\n /** Customer already enabled. */\n AlreadyEnabled = \"ALREADY_ENABLED\",\n /** Input email contains an invalid domain name. */\n BadDomain = \"BAD_DOMAIN\",\n /** The input value is blank. */\n Blank = \"BLANK\",\n /** Input contains HTML tags. */\n ContainsHtmlTags = \"CONTAINS_HTML_TAGS\",\n /** Input contains URL. */\n ContainsUrl = \"CONTAINS_URL\",\n /** Customer is disabled. */\n CustomerDisabled = \"CUSTOMER_DISABLED\",\n /** The input value is invalid. */\n Invalid = \"INVALID\",\n /** Multipass token is not valid. */\n InvalidMultipassRequest = \"INVALID_MULTIPASS_REQUEST\",\n /** Address does not exist. */\n NotFound = \"NOT_FOUND\",\n /** Input password starts or ends with whitespace. */\n PasswordStartsOrEndsWithWhitespace = \"PASSWORD_STARTS_OR_ENDS_WITH_WHITESPACE\",\n /** The input value is already taken. */\n Taken = \"TAKEN\",\n /** Invalid activation token. */\n TokenInvalid = \"TOKEN_INVALID\",\n /** The input value is too long. */\n TooLong = \"TOO_LONG\",\n /** The input value is too short. */\n TooShort = \"TOO_SHORT\",\n /** Unidentified customer. */\n UnidentifiedCustomer = \"UNIDENTIFIED_CUSTOMER\",\n}\n\n/** Return type for `customerRecover` mutation. */\nexport type CustomerRecoverPayload = {\n __typename?: \"CustomerRecoverPayload\";\n /** The list of errors that occurred from executing the mutation. */\n customerUserErrors: Array<CustomerUserError>;\n /**\n * The list of errors that occurred from executing the mutation.\n * @deprecated Use `customerUserErrors` instead.\n */\n userErrors: Array<UserError>;\n};\n\n/** Return type for `customerResetByUrl` mutation. */\nexport type CustomerResetByUrlPayload = {\n __typename?: \"CustomerResetByUrlPayload\";\n /** The customer object which was reset. */\n customer?: Maybe<Customer>;\n /** A newly created customer access token object for the customer. */\n customerAccessToken?: Maybe<CustomerAccessToken>;\n /** The list of errors that occurred from executing the mutation. */\n customerUserErrors: Array<CustomerUserError>;\n /**\n * The list of errors that occurred from executing the mutation.\n * @deprecated Use `customerUserErrors` instead.\n */\n userErrors: Array<UserError>;\n};\n\n/** The input fields to reset a customer's password. */\nexport type CustomerResetInput = {\n /** New password that will be set as part of the reset password process. */\n password: Scalars[\"String\"][\"input\"];\n /** The reset token required to reset the customer’s password. */\n resetToken: Scalars[\"String\"][\"input\"];\n};\n\n/** Return type for `customerReset` mutation. */\nexport type CustomerResetPayload = {\n __typename?: \"CustomerResetPayload\";\n /** The customer object which was reset. */\n customer?: Maybe<Customer>;\n /** A newly created customer access token object for the customer. */\n customerAccessToken?: Maybe<CustomerAccessToken>;\n /** The list of errors that occurred from executing the mutation. */\n customerUserErrors: Array<CustomerUserError>;\n /**\n * The list of errors that occurred from executing the mutation.\n * @deprecated Use `customerUserErrors` instead.\n */\n userErrors: Array<UserError>;\n};\n\n/** The input fields to update the Customer information. */\nexport type CustomerUpdateInput = {\n /** Indicates whether the customer has consented to be sent marketing material via email. */\n acceptsMarketing?: InputMaybe<Scalars[\"Boolean\"][\"input\"]>;\n /** The customer’s email. */\n email?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n /** The customer’s first name. */\n firstName?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n /** The customer’s last name. */\n lastName?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n /** The login password used by the customer. */\n password?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n /**\n * A unique phone number for the customer.\n *\n * Formatted using E.164 standard. For example, _+16135551111_. To remove the phone number, specify `null`.\n *\n */\n phone?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n};\n\n/** Return type for `customerUpdate` mutation. */\nexport type CustomerUpdatePayload = {\n __typename?: \"CustomerUpdatePayload\";\n /** The updated customer object. */\n customer?: Maybe<Customer>;\n /**\n * The newly created customer access token. If the customer's password is updated, all previous access tokens\n * (including the one used to perform this mutation) become invalid, and a new token is generated.\n *\n */\n customerAccessToken?: Maybe<CustomerAccessToken>;\n /** The list of errors that occurred from executing the mutation. */\n customerUserErrors: Array<CustomerUserError>;\n /**\n * The list of errors that occurred from executing the mutation.\n * @deprecated Use `customerUserErrors` instead.\n */\n userErrors: Array<UserError>;\n};\n\n/** Represents an error that happens during execution of a customer mutation. */\nexport type CustomerUserError = DisplayableError & {\n __typename?: \"CustomerUserError\";\n /** The error code. */\n code?: Maybe<CustomerErrorCode>;\n /** The path to the input field that caused the error. */\n field?: Maybe<Array<Scalars[\"String\"][\"output\"]>>;\n /** The error message. */\n message: Scalars[\"String\"][\"output\"];\n};\n\n/** A delivery address of the buyer that is interacting with the cart. */\nexport type DeliveryAddress = MailingAddress;\n\n/**\n * The input fields for delivery address preferences.\n *\n */\nexport type DeliveryAddressInput = {\n /**\n * The ID of a customer address that is associated with the buyer that is interacting with the cart.\n *\n */\n customerAddressId?: InputMaybe<Scalars[\"ID\"][\"input\"]>;\n /** A delivery address preference of a buyer that is interacting with the cart. */\n deliveryAddress?: InputMaybe<MailingAddressInput>;\n /** Defines what kind of address validation is requested. */\n deliveryAddressValidationStrategy?: InputMaybe<DeliveryAddressValidationStrategy>;\n /**\n * Whether the given delivery address is considered to be a one-time use address. One-time use addresses do not\n * get persisted to the buyer's personal addresses when checking out.\n *\n */\n oneTimeUse?: InputMaybe<Scalars[\"Boolean\"][\"input\"]>;\n};\n\n/**\n * Defines the types of available validation strategies for delivery addresses.\n *\n */\nexport enum DeliveryAddressValidationStrategy {\n /** Only the country code is validated. */\n CountryCodeOnly = \"COUNTRY_CODE_ONLY\",\n /**\n * Strict validation is performed, i.e. all fields in the address are validated\n * according to Shopify's checkout rules. If the address fails validation, the cart will not be updated.\n *\n */\n Strict = \"STRICT\",\n}\n\n/** List of different delivery method types. */\nexport enum DeliveryMethodType {\n /** Local Delivery. */\n Local = \"LOCAL\",\n /** None. */\n None = \"NONE\",\n /** Shipping to a Pickup Point. */\n PickupPoint = \"PICKUP_POINT\",\n /** Local Pickup. */\n PickUp = \"PICK_UP\",\n /** Retail. */\n Retail = \"RETAIL\",\n /** Shipping. */\n Shipping = \"SHIPPING\",\n}\n\n/** Digital wallet, such as Apple Pay, which can be used for accelerated checkouts. */\nexport enum DigitalWallet {\n /** Android Pay. */\n AndroidPay = \"ANDROID_PAY\",\n /** Apple Pay. */\n ApplePay = \"APPLE_PAY\",\n /** Google Pay. */\n GooglePay = \"GOOGLE_PAY\",\n /** Shopify Pay. */\n ShopifyPay = \"SHOPIFY_PAY\",\n}\n\n/**\n * An amount discounting the line that has been allocated by a discount.\n *\n */\nexport type DiscountAllocation = {\n __typename?: \"DiscountAllocation\";\n /** Amount of discount allocated. */\n allocatedAmount: MoneyV2;\n /** The discount this allocated amount originated from. */\n discountApplication: DiscountApplication;\n};\n\n/**\n * Discount applications capture the intentions of a discount source at\n * the time of application.\n *\n */\nexport type DiscountApplication = {\n /** The method by which the discount's value is allocated to its entitled items. */\n allocationMethod: DiscountApplicationAllocationMethod;\n /** Which lines of targetType that the discount is allocated over. */\n targetSelection: DiscountApplicationTargetSelection;\n /** The type of line that the discount is applicable towards. */\n targetType: DiscountApplicationTargetType;\n /** The value of the discount application. */\n value: PricingValue;\n};\n\n/** The method by which the discount's value is allocated onto its entitled lines. */\nexport enum DiscountApplicationAllocationMethod {\n /** The value is spread across all entitled lines. */\n Across = \"ACROSS\",\n /** The value is applied onto every entitled line. */\n Each = \"EACH\",\n /**\n * The value is specifically applied onto a particular line.\n * @deprecated Use ACROSS instead.\n */\n One = \"ONE\",\n}\n\n/**\n * An auto-generated type for paginating through multiple DiscountApplications.\n *\n */\nexport type DiscountApplicationConnection = {\n __typename?: \"DiscountApplicationConnection\";\n /** A list of edges. */\n edges: Array<DiscountApplicationEdge>;\n /** A list of the nodes contained in DiscountApplicationEdge. */\n nodes: Array<DiscountApplication>;\n /** Information to aid in pagination. */\n pageInfo: PageInfo;\n};\n\n/**\n * An auto-generated type which holds one DiscountApplication and a cursor during pagination.\n *\n */\nexport type DiscountApplicationEdge = {\n __typename?: \"DiscountApplicationEdge\";\n /** A cursor for use in pagination. */\n cursor: Scalars[\"String\"][\"output\"];\n /** The item at the end of DiscountApplicationEdge. */\n node: DiscountApplication;\n};\n\n/**\n * The lines on the order to which the discount is applied, of the type defined by\n * the discount application's `targetType`. For example, the value `ENTITLED`, combined with a `targetType` of\n * `LINE_ITEM`, applies the discount on all line items that are entitled to the discount.\n * The value `ALL`, combined with a `targetType` of `SHIPPING_LINE`, applies the discount on all shipping lines.\n *\n */\nexport enum DiscountApplicationTargetSelection {\n /** The discount is allocated onto all the lines. */\n All = \"ALL\",\n /** The discount is allocated onto only the lines that it's entitled for. */\n Entitled = \"ENTITLED\",\n /** The discount is allocated onto explicitly chosen lines. */\n Explicit = \"EXPLICIT\",\n}\n\n/**\n * The type of line (i.e. line item or shipping line) on an order that the discount is applicable towards.\n *\n */\nexport enum DiscountApplicationTargetType {\n /** The discount applies onto line items. */\n LineItem = \"LINE_ITEM\",\n /** The discount applies onto shipping lines. */\n ShippingLine = \"SHIPPING_LINE\",\n}\n\n/**\n * Discount code applications capture the intentions of a discount code at\n * the time that it is applied.\n *\n */\nexport type DiscountCodeApplication = DiscountApplication & {\n __typename?: \"DiscountCodeApplication\";\n /** The method by which the discount's value is allocated to its entitled items. */\n allocationMethod: DiscountApplicationAllocationMethod;\n /** Specifies whether the discount code was applied successfully. */\n applicable: Scalars[\"Boolean\"][\"output\"];\n /** The string identifying the discount code that was used at the time of application. */\n code: Scalars[\"String\"][\"output\"];\n /** Which lines of targetType that the discount is allocated over. */\n targetSelection: DiscountApplicationTargetSelection;\n /** The type of line that the discount is applicable towards. */\n targetType: DiscountApplicationTargetType;\n /** The value of the discount application. */\n value: PricingValue;\n};\n\n/** Represents an error in the input of a mutation. */\nexport type DisplayableError = {\n /** The path to the input field that caused the error. */\n field?: Maybe<Array<Scalars[\"String\"][\"output\"]>>;\n /** The error message. */\n message: Scalars[\"String\"][\"output\"];\n};\n\n/** Represents a web address. */\nexport type Domain = {\n __typename?: \"Domain\";\n /** The host name of the domain (eg: `example.com`). */\n host: Scalars[\"String\"][\"output\"];\n /** Whether SSL is enabled or not. */\n sslEnabled: Scalars[\"Boolean\"][\"output\"];\n /** The URL of the domain (eg: `https://example.com`). */\n url: Scalars[\"URL\"][\"output\"];\n};\n\n/** Represents a video hosted outside of Shopify. */\nexport type ExternalVideo = Media &\n Node & {\n __typename?: \"ExternalVideo\";\n /** A word or phrase to share the nature or contents of a media. */\n alt?: Maybe<Scalars[\"String\"][\"output\"]>;\n /** The embed URL of the video for the respective host. */\n embedUrl: Scalars[\"URL\"][\"output\"];\n /**\n * The URL.\n * @deprecated Use `originUrl` instead.\n */\n embeddedUrl: Scalars[\"URL\"][\"output\"];\n /** The host of the external video. */\n host: MediaHost;\n /** A globally-unique ID. */\n id: Scalars[\"ID\"][\"output\"];\n /** The media content type. */\n mediaContentType: MediaContentType;\n /** The origin URL of the video on the respective host. */\n originUrl: Scalars[\"URL\"][\"output\"];\n /** The presentation for a media. */\n presentation?: Maybe<MediaPresentation>;\n /** The preview image for the media. */\n previewImage?: Maybe<Image>;\n };\n\n/** A filter that is supported on the parent field. */\nexport type Filter = {\n __typename?: \"Filter\";\n /** A unique identifier. */\n id: Scalars[\"String\"][\"output\"];\n /** A human-friendly string for this filter. */\n label: Scalars[\"String\"][\"output\"];\n /**\n * Describes how to present the filter values.\n * Returns a value only for filters of type `LIST`. Returns null for other types.\n *\n */\n presentation?: Maybe<FilterPresentation>;\n /** An enumeration that denotes the type of data this filter represents. */\n type: FilterType;\n /** The list of values for this filter. */\n values: Array<FilterValue>;\n};\n\n/**\n * Defines how to present the filter values, specifies the presentation of the filter.\n *\n */\nexport enum FilterPresentation {\n /** Image presentation, filter values display an image. */\n Image = \"IMAGE\",\n /** Swatch presentation, filter values display color or image patterns. */\n Swatch = \"SWATCH\",\n /** Text presentation, no additional visual display for filter values. */\n Text = \"TEXT\",\n}\n\n/**\n * The type of data that the filter group represents.\n *\n * For more information, refer to [Filter products in a collection with the Storefront API]\n * (https://shopify.dev/custom-storefronts/products-collections/filter-products).\n *\n */\nexport enum FilterType {\n /** A boolean value. */\n Boolean = \"BOOLEAN\",\n /** A list of selectable values. */\n List = \"LIST\",\n /** A range of prices. */\n PriceRange = \"PRICE_RANGE\",\n}\n\n/** A selectable value within a filter. */\nexport type FilterValue = {\n __typename?: \"FilterValue\";\n /** The number of results that match this filter value. */\n count: Scalars[\"Int\"][\"output\"];\n /** A unique identifier. */\n id: Scalars[\"String\"][\"output\"];\n /** The visual representation when the filter's presentation is `IMAGE`. */\n image?: Maybe<MediaImage>;\n /**\n * An input object that can be used to filter by this value on the parent field.\n *\n * The value is provided as a helper for building dynamic filtering UI. For\n * example, if you have a list of selected `FilterValue` objects, you can combine\n * their respective `input` values to use in a subsequent query.\n *\n */\n input: Scalars[\"JSON\"][\"output\"];\n /** A human-friendly string for this filter value. */\n label: Scalars[\"String\"][\"output\"];\n /** The visual representation when the filter's presentation is `SWATCH`. */\n swatch?: Maybe<Swatch>;\n};\n\n/** Represents a single fulfillment in an order. */\nexport type Fulfillment = {\n __typename?: \"Fulfillment\";\n /** List of the fulfillment's line items. */\n fulfillmentLineItems: FulfillmentLineItemConnection;\n /** The name of the tracking company. */\n trackingCompany?: Maybe<Scalars[\"String\"][\"output\"]>;\n /**\n * Tracking information associated with the fulfillment,\n * such as the tracking number and tracking URL.\n *\n */\n trackingInfo: Array<FulfillmentTrackingInfo>;\n};\n\n/** Represents a single fulfillment in an order. */\nexport type FulfillmentFulfillmentLineItemsArgs = {\n after?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n before?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n first?: InputMaybe<Scalars[\"Int\"][\"input\"]>;\n last?: InputMaybe<Scalars[\"Int\"][\"input\"]>;\n reverse?: InputMaybe<Scalars[\"Boolean\"][\"input\"]>;\n};\n\n/** Represents a single fulfillment in an order. */\nexport type FulfillmentTrackingInfoArgs = {\n first?: InputMaybe<Scalars[\"Int\"][\"input\"]>;\n};\n\n/** Represents a single line item in a fulfillment. There is at most one fulfillment line item for each order line item. */\nexport type FulfillmentLineItem = {\n __typename?: \"FulfillmentLineItem\";\n /** The associated order's line item. */\n lineItem: OrderLineItem;\n /** The amount fulfilled in this fulfillment. */\n quantity: Scalars[\"Int\"][\"output\"];\n};\n\n/**\n * An auto-generated type for paginating through multiple FulfillmentLineItems.\n *\n */\nexport type FulfillmentLineItemConnection = {\n __typename?: \"FulfillmentLineItemConnection\";\n /** A list of edges. */\n edges: Array<FulfillmentLineItemEdge>;\n /** A list of the nodes contained in FulfillmentLineItemEdge. */\n nodes: Array<FulfillmentLineItem>;\n /** Information to aid in pagination. */\n pageInfo: PageInfo;\n};\n\n/**\n * An auto-generated type which holds one FulfillmentLineItem and a cursor during pagination.\n *\n */\nexport type FulfillmentLineItemEdge = {\n __typename?: \"FulfillmentLineItemEdge\";\n /** A cursor for use in pagination. */\n cursor: Scalars[\"String\"][\"output\"];\n /** The item at the end of FulfillmentLineItemEdge. */\n node: FulfillmentLineItem;\n};\n\n/** Tracking information associated with the fulfillment. */\nexport type FulfillmentTrackingInfo = {\n __typename?: \"FulfillmentTrackingInfo\";\n /** The tracking number of the fulfillment. */\n number?: Maybe<Scalars[\"String\"][\"output\"]>;\n /** The URL to track the fulfillment. */\n url?: Maybe<Scalars[\"URL\"][\"output\"]>;\n};\n\n/** The generic file resource lets you manage files in a merchant’s store. Generic files include any file that doesn’t fit into a designated type such as image or video. Example: PDF, JSON. */\nexport type GenericFile = Node & {\n __typename?: \"GenericFile\";\n /** A word or phrase to indicate the contents of a file. */\n alt?: Maybe<Scalars[\"String\"][\"output\"]>;\n /** A globally-unique ID. */\n id: Scalars[\"ID\"][\"output\"];\n /** The MIME type of the file. */\n mimeType?: Maybe<Scalars[\"String\"][\"output\"]>;\n /** The size of the original file in bytes. */\n originalFileSize?: Maybe<Scalars[\"Int\"][\"output\"]>;\n /** The preview image for the file. */\n previewImage?: Maybe<Image>;\n /** The URL of the file. */\n url?: Maybe<Scalars[\"URL\"][\"output\"]>;\n};\n\n/** The input fields used to specify a geographical location. */\nexport type GeoCoordinateInput = {\n /** The coordinate's latitude value. */\n latitude: Scalars[\"Float\"][\"input\"];\n /** The coordinate's longitude value. */\n longitude: Scalars[\"Float\"][\"input\"];\n};\n\n/** Represents information about the metafields associated to the specified resource. */\nexport type HasMetafields = {\n /** A [custom field](https://shopify.dev/docs/apps/build/custom-data), including its `namespace` and `key`, that's associated with a Shopify resource for the purposes of adding and storing additional information. */\n metafield?: Maybe<Metafield>;\n /** A list of [custom fields](/docs/apps/build/custom-data) that a merchant associates with a Shopify resource. */\n metafields: Array<Maybe<Metafield>>;\n};\n\n/** Represents information about the metafields associated to the specified resource. */\nexport type HasMetafieldsMetafieldArgs = {\n key: Scalars[\"String\"][\"input\"];\n namespace?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n};\n\n/** Represents information about the metafields associated to the specified resource. */\nexport type HasMetafieldsMetafieldsArgs = {\n identifiers: Array<HasMetafieldsIdentifier>;\n};\n\n/** The input fields to identify a metafield on an owner resource by namespace and key. */\nexport type HasMetafieldsIdentifier = {\n /** The identifier for the metafield. */\n key: Scalars[\"String\"][\"input\"];\n /** The container the metafield belongs to. If omitted, the app-reserved namespace will be used. */\n namespace?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n};\n\n/** Represents an image resource. */\nexport type Image = {\n __typename?: \"Image\";\n /** A word or phrase to share the nature or contents of an image. */\n altText?: Maybe<Scalars[\"String\"][\"output\"]>;\n /** The original height of the image in pixels. Returns `null` if the image isn't hosted by Shopify. */\n height?: Maybe<Scalars[\"Int\"][\"output\"]>;\n /** A unique ID for the image. */\n id?: Maybe<Scalars[\"ID\"][\"output\"]>;\n /**\n * The location of the original image as a URL.\n *\n * If there are any existing transformations in the original source URL, they will remain and not be stripped.\n *\n * @deprecated Use `url` instead.\n */\n originalSrc: Scalars[\"URL\"][\"output\"];\n /**\n * The location of the image as a URL.\n * @deprecated Use `url` instead.\n */\n src: Scalars[\"URL\"][\"output\"];\n /**\n * The location of the transformed image as a URL.\n *\n * All transformation arguments are considered \"best-effort\". If they can be applied to an image, they will be.\n * Otherwise any transformations which an image type doesn't support will be ignored.\n *\n * @deprecated Use `url(transform:)` instead\n */\n transformedSrc: Scalars[\"URL\"][\"output\"];\n /**\n * The location of the image as a URL.\n *\n * If no transform options are specified, then the original image will be preserved including any pre-applied transforms.\n *\n * All transformation options are considered \"best-effort\". Any transformation that the original image type doesn't support will be ignored.\n *\n * If you need multiple variations of the same image, then you can use [GraphQL aliases](https://graphql.org/learn/queries/#aliases).\n *\n */\n url: Scalars[\"URL\"][\"output\"];\n /** The original width of the image in pixels. Returns `null` if the image isn't hosted by Shopify. */\n width?: Maybe<Scalars[\"Int\"][\"output\"]>;\n};\n\n/** Represents an image resource. */\nexport type ImageTransformedSrcArgs = {\n crop?: InputMaybe<CropRegion>;\n maxHeight?: InputMaybe<Scalars[\"Int\"][\"input\"]>;\n maxWidth?: InputMaybe<Scalars[\"Int\"][\"input\"]>;\n preferredContentType?: InputMaybe<ImageContentType>;\n scale?: InputMaybe<Scalars[\"Int\"][\"input\"]>;\n};\n\n/** Represents an image resource. */\nexport type ImageUrlArgs = {\n transform?: InputMaybe<ImageTransformInput>;\n};\n\n/**\n * An auto-generated type for paginating through multiple Images.\n *\n */\nexport type ImageConnection = {\n __typename?: \"ImageConnection\";\n /** A list of edges. */\n edges: Array<ImageEdge>;\n /** A list of the nodes contained in ImageEdge. */\n nodes: Array<Image>;\n /** Information to aid in pagination. */\n pageInfo: PageInfo;\n};\n\n/** List of supported image content types. */\nexport enum ImageContentType {\n /** A JPG image. */\n Jpg = \"JPG\",\n /** A PNG image. */\n Png = \"PNG\",\n /** A WEBP image. */\n Webp = \"WEBP\",\n}\n\n/**\n * An auto-generated type which holds one Image and a cursor during pagination.\n *\n */\nexport type ImageEdge = {\n __typename?: \"ImageEdge\";\n /** A cursor for use in pagination. */\n cursor: Scalars[\"String\"][\"output\"];\n /** The item at the end of ImageEdge. */\n node: Image;\n};\n\n/**\n * The available options for transforming an image.\n *\n * All transformation options are considered best effort. Any transformation that\n * the original image type doesn't support will be ignored.\n *\n */\nexport type ImageTransformInput = {\n /**\n * The region of the image to remain after cropping.\n * Must be used in conjunction with the `maxWidth` and/or `maxHeight` fields,\n * where the `maxWidth` and `maxHeight` aren't equal.\n * The `crop` argument should coincide with the smaller value. A smaller `maxWidth` indicates a `LEFT` or `RIGHT` crop, while\n * a smaller `maxHeight` indicates a `TOP` or `BOTTOM` crop. For example, `{\n * maxWidth: 5, maxHeight: 10, crop: LEFT }` will result\n * in an image with a width of 5 and height of 10, where the right side of the image is removed.\n *\n */\n crop?: InputMaybe<CropRegion>;\n /**\n * Image height in pixels between 1 and 5760.\n *\n */\n maxHeight?: InputMaybe<Scalars[\"Int\"][\"input\"]>;\n /**\n * Image width in pixels between 1 and 5760.\n *\n */\n maxWidth?: InputMaybe<Scalars[\"Int\"][\"input\"]>;\n /**\n * Convert the source image into the preferred content type.\n * Supported conversions: `.svg` to `.png`, any file type to `.jpg`, and any file type to `.webp`.\n *\n */\n preferredContentType?: InputMaybe<ImageContentType>;\n /**\n * Image size multiplier for high-resolution retina displays. Must be within 1..3.\n *\n */\n scale?: InputMaybe<Scalars[\"Int\"][\"input\"]>;\n};\n\n/** Provide details about the contexts influenced by the @inContext directive on a field. */\nexport type InContextAnnotation = {\n __typename?: \"InContextAnnotation\";\n description: Scalars[\"String\"][\"output\"];\n type: InContextAnnotationType;\n};\n\n/** This gives information about the type of context that impacts a field. For example, for a query with @inContext(language: \"EN\"), the type would point to the name: LanguageCode and kind: ENUM. */\nexport type InContextAnnotationType = {\n __typename?: \"InContextAnnotationType\";\n kind: Scalars[\"String\"][\"output\"];\n name: Scalars[\"String\"][\"output\"];\n};\n\n/** A language. */\nexport type Language = {\n __typename?: \"Language\";\n /** The name of the language in the language itself. If the language uses capitalization, it is capitalized for a mid-sentence position. */\n endonymName: Scalars[\"String\"][\"output\"];\n /** The ISO code. */\n isoCode: LanguageCode;\n /** The name of the language in the current language. */\n name: Scalars[\"String\"][\"output\"];\n};\n\n/** Language codes supported by Shopify. */\nexport enum LanguageCode {\n /** Afrikaans. */\n Af = \"AF\",\n /** Akan. */\n Ak = \"AK\",\n /** Amharic. */\n Am = \"AM\",\n /** Arabic. */\n Ar = \"AR\",\n /** Assamese. */\n As = \"AS\",\n /** Azerbaijani. */\n Az = \"AZ\",\n /** Belarusian. */\n Be = \"BE\",\n /** Bulgarian. */\n Bg = \"BG\",\n /** Bambara. */\n Bm = \"BM\",\n /** Bangla. */\n Bn = \"BN\",\n /** Tibetan. */\n Bo = \"BO\",\n /** Breton. */\n Br = \"BR\",\n /** Bosnian. */\n Bs = \"BS\",\n /** Catalan. */\n Ca = \"CA\",\n /** Chechen. */\n Ce = \"CE\",\n /** Central Kurdish. */\n Ckb = \"CKB\",\n /** Czech. */\n Cs = \"CS\",\n /** Church Slavic. */\n Cu = \"CU\",\n /** Welsh. */\n Cy = \"CY\",\n /** Danish. */\n Da = \"DA\",\n /** German. */\n De = \"DE\",\n /** Dzongkha. */\n Dz = \"DZ\",\n /** Ewe. */\n Ee = \"EE\",\n /** Greek. */\n El = \"EL\",\n /** English. */\n En = \"EN\",\n /** Esperanto. */\n Eo = \"EO\",\n /** Spanish. */\n Es = \"ES\",\n /** Estonian. */\n Et = \"ET\",\n /** Basque. */\n Eu = \"EU\",\n /** Persian. */\n Fa = \"FA\",\n /** Fulah. */\n Ff = \"FF\",\n /** Finnish. */\n Fi = \"FI\",\n /** Filipino. */\n Fil = \"FIL\",\n /** Faroese. */\n Fo = \"FO\",\n /** French. */\n Fr = \"FR\",\n /** Western Frisian. */\n Fy = \"FY\",\n /** Irish. */\n Ga = \"GA\",\n /** Scottish Gaelic. */\n Gd = \"GD\",\n /** Galician. */\n Gl = \"GL\",\n /** Gujarati. */\n Gu = \"GU\",\n /** Manx. */\n Gv = \"GV\",\n /** Hausa. */\n Ha = \"HA\",\n /** Hebrew. */\n He = \"HE\",\n /** Hindi. */\n Hi = \"HI\",\n /** Croatian. */\n Hr = \"HR\",\n /** Hungarian. */\n Hu = \"HU\",\n /** Armenian. */\n Hy = \"HY\",\n /** Interlingua. */\n Ia = \"IA\",\n /** Indonesian. */\n Id = \"ID\",\n /** Igbo. */\n Ig = \"IG\",\n /** Sichuan Yi. */\n Ii = \"II\",\n /** Icelandic. */\n Is = \"IS\",\n /** Italian. */\n It = \"IT\",\n /** Japanese. */\n Ja = \"JA\",\n /** Javanese. */\n Jv = \"JV\",\n /** Georgian. */\n Ka = \"KA\",\n /** Kikuyu. */\n Ki = \"KI\",\n /** Kazakh. */\n Kk = \"KK\",\n /** Kalaallisut. */\n Kl = \"KL\",\n /** Khmer. */\n Km = \"KM\",\n /** Kannada. */\n Kn = \"KN\",\n /** Korean. */\n Ko = \"KO\",\n /** Kashmiri. */\n Ks = \"KS\",\n /** Kurdish. */\n Ku = \"KU\",\n /** Cornish. */\n Kw = \"KW\",\n /** Kyrgyz. */\n Ky = \"KY\",\n /** Latin. */\n La = \"LA\",\n /** Luxembourgish. */\n Lb = \"LB\",\n /** Ganda. */\n Lg = \"LG\",\n /** Lingala. */\n Ln = \"LN\",\n /** Lao. */\n Lo = \"LO\",\n /** Lithuanian. */\n Lt = \"LT\",\n /** Luba-Katanga. */\n Lu = \"LU\",\n /** Latvian. */\n Lv = \"LV\",\n /** Malagasy. */\n Mg = \"MG\",\n /** Māori. */\n Mi = \"MI\",\n /** Macedonian. */\n Mk = \"MK\",\n /** Malayalam. */\n Ml = \"ML\",\n /** Mongolian. */\n Mn = \"MN\",\n /** Moldavian. */\n Mo = \"MO\",\n /** Marathi. */\n Mr = \"MR\",\n /** Malay. */\n Ms = \"MS\",\n /** Maltese. */\n Mt = \"MT\",\n /** Burmese. */\n My = \"MY\",\n /** Norwegian (Bokmål). */\n Nb = \"NB\",\n /** North Ndebele. */\n Nd = \"ND\",\n /** Nepali. */\n Ne = \"NE\",\n /** Dutch. */\n Nl = \"NL\",\n /** Norwegian Nynorsk. */\n Nn = \"NN\",\n /** Norwegian. */\n No = \"NO\",\n /** Oromo. */\n Om = \"OM\",\n /** Odia. */\n Or = \"OR\",\n /** Ossetic. */\n Os = \"OS\",\n /** Punjabi. */\n Pa = \"PA\",\n /** Polish. */\n Pl = \"PL\",\n /** Pashto. */\n Ps = \"PS\",\n /** Portuguese. */\n Pt = \"PT\",\n /** Portuguese (Brazil). */\n PtBr = \"PT_BR\",\n /** Portuguese (Portugal). */\n PtPt = \"PT_PT\",\n /** Quechua. */\n Qu = \"QU\",\n /** Romansh. */\n Rm = \"RM\",\n /** Rundi. */\n Rn = \"RN\",\n /** Romanian. */\n Ro = \"RO\",\n /** Russian. */\n Ru = \"RU\",\n /** Kinyarwanda. */\n Rw = \"RW\",\n /** Sanskrit. */\n Sa = \"SA\",\n /** Sardinian. */\n Sc = \"SC\",\n /** Sindhi. */\n Sd = \"SD\",\n /** Northern Sami. */\n Se = \"SE\",\n /** Sango. */\n Sg = \"SG\",\n /** Serbo-Croatian. */\n Sh = \"SH\",\n /** Sinhala. */\n Si = \"SI\",\n /** Slovak. */\n Sk = \"SK\",\n /** Slovenian. */\n Sl = \"SL\",\n /** Shona. */\n Sn = \"SN\",\n /** Somali. */\n So = \"SO\",\n /** Albanian. */\n Sq = \"SQ\",\n /** Serbian. */\n Sr = \"SR\",\n /** Sundanese. */\n Su = \"SU\",\n /** Swedish. */\n Sv = \"SV\",\n /** Swahili. */\n Sw = \"SW\",\n /** Tamil. */\n Ta = \"TA\",\n /** Telugu. */\n Te = \"TE\",\n /** Tajik. */\n Tg = \"TG\",\n /** Thai. */\n Th = \"TH\",\n /** Tigrinya. */\n Ti = \"TI\",\n /** Turkmen. */\n Tk = \"TK\",\n /** Tongan. */\n To = \"TO\",\n /** Turkish. */\n Tr = \"TR\",\n /** Tatar. */\n Tt = \"TT\",\n /** Uyghur. */\n Ug = \"UG\",\n /** Ukrainian. */\n Uk = \"UK\",\n /** Urdu. */\n Ur = \"UR\",\n /** Uzbek. */\n Uz = \"UZ\",\n /** Vietnamese. */\n Vi = \"VI\",\n /** Volapük. */\n Vo = \"VO\",\n /** Wolof. */\n Wo = \"WO\",\n /** Xhosa. */\n Xh = \"XH\",\n /** Yiddish. */\n Yi = \"YI\",\n /** Yoruba. */\n Yo = \"YO\",\n /** Chinese. */\n Zh = \"ZH\",\n /** Chinese (Simplified). */\n ZhCn = \"ZH_CN\",\n /** Chinese (Traditional). */\n ZhTw = \"ZH_TW\",\n /** Zulu. */\n Zu = \"ZU\",\n}\n\n/** Information about the localized experiences configured for the shop. */\nexport type Localization = {\n __typename?: \"Localization\";\n /** The list of countries with enabled localized experiences. */\n availableCountries: Array<Country>;\n /** The list of languages available for the active country. */\n availableLanguages: Array<Language>;\n /** The country of the active localized experience. Use the `@inContext` directive to change this value. */\n country: Country;\n /** The language of the active localized experience. Use the `@inContext` directive to change this value. */\n language: Language;\n /** The market including the country of the active localized experience. Use the `@inContext` directive to change this value. */\n market: Market;\n};\n\n/** Represents a location where product inventory is held. */\nexport type Location = HasMetafields &\n Node & {\n __typename?: \"Location\";\n /** The address of the location. */\n address: LocationAddress;\n /** A globally-unique ID. */\n id: Scalars[\"ID\"][\"output\"];\n /** A [custom field](https://shopify.dev/docs/apps/build/custom-data), including its `namespace` and `key`, that's associated with a Shopify resource for the purposes of adding and storing additional information. */\n metafield?: Maybe<Metafield>;\n /** A list of [custom fields](/docs/apps/build/custom-data) that a merchant associates with a Shopify resource. */\n metafields: Array<Maybe<Metafield>>;\n /** The name of the location. */\n name: Scalars[\"String\"][\"output\"];\n };\n\n/** Represents a location where product inventory is held. */\nexport type LocationMetafieldArgs = {\n key: Scalars[\"String\"][\"input\"];\n namespace?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n};\n\n/** Represents a location where product inventory is held. */\nexport type LocationMetafieldsArgs = {\n identifiers: Array<HasMetafieldsIdentifier>;\n};\n\n/**\n * Represents the address of a location.\n *\n */\nexport type LocationAddress = {\n __typename?: \"LocationAddress\";\n /** The first line of the address for the location. */\n address1?: Maybe<Scalars[\"String\"][\"output\"]>;\n /** The second line of the address for the location. */\n address2?: Maybe<Scalars[\"String\"][\"output\"]>;\n /** The city of the location. */\n city?: Maybe<Scalars[\"String\"][\"output\"]>;\n /** The country of the location. */\n country?: Maybe<Scalars[\"String\"][\"output\"]>;\n /** The country code of the location. */\n countryCode?: Maybe<Scalars[\"String\"][\"output\"]>;\n /** A formatted version of the address for the location. */\n formatted: Array<Scalars[\"String\"][\"output\"]>;\n /** The latitude coordinates of the location. */\n latitude?: Maybe<Scalars[\"Float\"][\"output\"]>;\n /** The longitude coordinates of the location. */\n longitude?: Maybe<Scalars[\"Float\"][\"output\"]>;\n /** The phone number of the location. */\n phone?: Maybe<Scalars[\"String\"][\"output\"]>;\n /** The province of the location. */\n province?: Maybe<Scalars[\"String\"][\"output\"]>;\n /**\n * The code for the province, state, or district of the address of the location.\n *\n */\n provinceCode?: Maybe<Scalars[\"String\"][\"output\"]>;\n /** The ZIP code of the location. */\n zip?: Maybe<Scalars[\"String\"][\"output\"]>;\n};\n\n/**\n * An auto-generated type for paginating through multiple Locations.\n *\n */\nexport type LocationConnection = {\n __typename?: \"LocationConnection\";\n /** A list of edges. */\n edges: Array<LocationEdge>;\n /** A list of the nodes contained in LocationEdge. */\n nodes: Array<Location>;\n /** Information to aid in pagination. */\n pageInfo: PageInfo;\n};\n\n/**\n * An auto-generated type which holds one Location and a cursor during pagination.\n *\n */\nexport type LocationEdge = {\n __typename?: \"LocationEdge\";\n /** A cursor for use in pagination. */\n cursor: Scalars[\"String\"][\"output\"];\n /** The item at the end of LocationEdge. */\n node: Location;\n};\n\n/** The set of valid sort keys for the Location query. */\nexport enum LocationSortKeys {\n /** Sort by the `city` value. */\n City = \"CITY\",\n /** Sort by the `distance` value. */\n Distance = \"DISTANCE\",\n /** Sort by the `id` value. */\n Id = \"ID\",\n /** Sort by the `name` value. */\n Name = \"NAME\",\n}\n\n/** Represents a mailing address for customers and shipping. */\nexport type MailingAddress = Node & {\n __typename?: \"MailingAddress\";\n /** The first line of the address. Typically the street address or PO Box number. */\n address1?: Maybe<Scalars[\"String\"][\"output\"]>;\n /**\n * The second line of the address. Typically the number of the apartment, suite, or unit.\n *\n */\n address2?: Maybe<Scalars[\"String\"][\"output\"]>;\n /** The name of the city, district, village, or town. */\n city?: Maybe<Scalars[\"String\"][\"output\"]>;\n /** The name of the customer's company or organization. */\n company?: Maybe<Scalars[\"String\"][\"output\"]>;\n /** The name of the country. */\n country?: Maybe<Scalars[\"String\"][\"output\"]>;\n /**\n * The two-letter code for the country of the address.\n *\n * For example, US.\n *\n * @deprecated Use `countryCodeV2` instead.\n */\n countryCode?: Maybe<Scalars[\"String\"][\"output\"]>;\n /**\n * The two-letter code for the country of the address.\n *\n * For example, US.\n *\n */\n countryCodeV2?: Maybe<CountryCode>;\n /** The first name of the customer. */\n firstName?: Maybe<Scalars[\"String\"][\"output\"]>;\n /** A formatted version of the address, customized by the provided arguments. */\n formatted: Array<Scalars[\"String\"][\"output\"]>;\n /** A comma-separated list of the values for city, province, and country. */\n formattedArea?: Maybe<Scalars[\"String\"][\"output\"]>;\n /** A globally-unique ID. */\n id: Scalars[\"ID\"][\"output\"];\n /** The last name of the customer. */\n lastName?: Maybe<Scalars[\"String\"][\"output\"]>;\n /** The latitude coordinate of the customer address. */\n latitude?: Maybe<Scalars[\"Float\"][\"output\"]>;\n /** The longitude coordinate of the customer address. */\n longitude?: Maybe<Scalars[\"Float\"][\"output\"]>;\n /** The full name of the customer, based on firstName and lastName. */\n name?: Maybe<Scalars[\"String\"][\"output\"]>;\n /**\n * A unique phone number for the customer.\n *\n * Formatted using E.164 standard. For example, _+16135551111_.\n *\n */\n phone?: Maybe<Scalars[\"String\"][\"output\"]>;\n /** The region of the address, such as the province, state, or district. */\n province?: Maybe<Scalars[\"String\"][\"output\"]>;\n /**\n * The alphanumeric code for the region.\n *\n * For example, ON.\n *\n */\n provinceCode?: Maybe<Scalars[\"String\"][\"output\"]>;\n /** The zip or postal code of the address. */\n zip?: Maybe<Scalars[\"String\"][\"output\"]>;\n};\n\n/** Represents a mailing address for customers and shipping. */\nexport type MailingAddressFormattedArgs = {\n withCompany?: InputMaybe<Scalars[\"Boolean\"][\"input\"]>;\n withName?: InputMaybe<Scalars[\"Boolean\"][\"input\"]>;\n};\n\n/**\n * An auto-generated type for paginating through multiple MailingAddresses.\n *\n */\nexport type MailingAddressConnection = {\n __typename?: \"MailingAddressConnection\";\n /** A list of edges. */\n edges: Array<MailingAddressEdge>;\n /** A list of the nodes contained in MailingAddressEdge. */\n nodes: Array<MailingAddress>;\n /** Information to aid in pagination. */\n pageInfo: PageInfo;\n};\n\n/**\n * An auto-generated type which holds one MailingAddress and a cursor during pagination.\n *\n */\nexport type MailingAddressEdge = {\n __typename?: \"MailingAddressEdge\";\n /** A cursor for use in pagination. */\n cursor: Scalars[\"String\"][\"output\"];\n /** The item at the end of MailingAddressEdge. */\n node: MailingAddress;\n};\n\n/** The input fields to create or update a mailing address. */\nexport type MailingAddressInput = {\n /**\n * The first line of the address. Typically the street address or PO Box number.\n *\n */\n address1?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n /**\n * The second line of the address. Typically the number of the apartment, suite, or unit.\n *\n */\n address2?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n /**\n * The name of the city, district, village, or town.\n *\n */\n city?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n /**\n * The name of the customer's company or organization.\n *\n */\n company?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n /** The name of the country. */\n country?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n /** The first name of the customer. */\n firstName?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n /** The last name of the customer. */\n lastName?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n /**\n * A unique phone number for the customer.\n *\n * Formatted using E.164 standard. For example, _+16135551111_.\n *\n */\n phone?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n /** The region of the address, such as the province, state, or district. */\n province?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n /** The zip or postal code of the address. */\n zip?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n};\n\n/**\n * Manual discount applications capture the intentions of a discount that was manually created.\n *\n */\nexport type ManualDiscountApplication = DiscountApplication & {\n __typename?: \"ManualDiscountApplication\";\n /** The method by which the discount's value is allocated to its entitled items. */\n allocationMethod: DiscountApplicationAllocationMethod;\n /** The description of the application. */\n description?: Maybe<Scalars[\"String\"][\"output\"]>;\n /** Which lines of targetType that the discount is allocated over. */\n targetSelection: DiscountApplicationTargetSelection;\n /** The type of line that the discount is applicable towards. */\n targetType: DiscountApplicationTargetType;\n /** The title of the application. */\n title: Scalars[\"String\"][\"output\"];\n /** The value of the discount application. */\n value: PricingValue;\n};\n\n/** A group of one or more regions of the world that a merchant is targeting for sales. To learn more about markets, refer to [the Shopify Markets conceptual overview](/docs/apps/markets). */\nexport type Market = HasMetafields &\n Node & {\n __typename?: \"Market\";\n /**\n * A human-readable unique string for the market automatically generated from its title.\n *\n */\n handle: Scalars[\"String\"][\"output\"];\n /** A globally-unique ID. */\n id: Scalars[\"ID\"][\"output\"];\n /** A [custom field](https://shopify.dev/docs/apps/build/custom-data), including its `namespace` and `key`, that's associated with a Shopify resource for the purposes of adding and storing additional information. */\n metafield?: Maybe<Metafield>;\n /** A list of [custom fields](/docs/apps/build/custom-data) that a merchant associates with a Shopify resource. */\n metafields: Array<Maybe<Metafield>>;\n };\n\n/** A group of one or more regions of the world that a merchant is targeting for sales. To learn more about markets, refer to [the Shopify Markets conceptual overview](/docs/apps/markets). */\nexport type MarketMetafieldArgs = {\n key: Scalars[\"String\"][\"input\"];\n namespace?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n};\n\n/** A group of one or more regions of the world that a merchant is targeting for sales. To learn more about markets, refer to [the Shopify Markets conceptual overview](/docs/apps/markets). */\nexport type MarketMetafieldsArgs = {\n identifiers: Array<HasMetafieldsIdentifier>;\n};\n\n/** Represents a media interface. */\nexport type Media = {\n /** A word or phrase to share the nature or contents of a media. */\n alt?: Maybe<Scalars[\"String\"][\"output\"]>;\n /** A globally-unique ID. */\n id: Scalars[\"ID\"][\"output\"];\n /** The media content type. */\n mediaContentType: MediaContentType;\n /** The presentation for a media. */\n presentation?: Maybe<MediaPresentation>;\n /** The preview image for the media. */\n previewImage?: Maybe<Image>;\n};\n\n/**\n * An auto-generated type for paginating through multiple Media.\n *\n */\nexport type MediaConnection = {\n __typename?: \"MediaConnection\";\n /** A list of edges. */\n edges: Array<MediaEdge>;\n /** A list of the nodes contained in MediaEdge. */\n nodes: Array<Media>;\n /** Information to aid in pagination. */\n pageInfo: PageInfo;\n};\n\n/** The possible content types for a media object. */\nexport enum MediaContentType {\n /** An externally hosted video. */\n ExternalVideo = \"EXTERNAL_VIDEO\",\n /** A Shopify hosted image. */\n Image = \"IMAGE\",\n /** A 3d model. */\n Model_3D = \"MODEL_3D\",\n /** A Shopify hosted video. */\n Video = \"VIDEO\",\n}\n\n/**\n * An auto-generated type which holds one Media and a cursor during pagination.\n *\n */\nexport type MediaEdge = {\n __typename?: \"MediaEdge\";\n /** A cursor for use in pagination. */\n cursor: Scalars[\"String\"][\"output\"];\n /** The item at the end of MediaEdge. */\n node: Media;\n};\n\n/** Host for a Media Resource. */\nexport enum MediaHost {\n /** Host for Vimeo embedded videos. */\n Vimeo = \"VIMEO\",\n /** Host for YouTube embedded videos. */\n Youtube = \"YOUTUBE\",\n}\n\n/** Represents a Shopify hosted image. */\nexport type MediaImage = Media &\n Node & {\n __typename?: \"MediaImage\";\n /** A word or phrase to share the nature or contents of a media. */\n alt?: Maybe<Scalars[\"String\"][\"output\"]>;\n /** A globally-unique ID. */\n id: Scalars[\"ID\"][\"output\"];\n /** The image for the media. */\n image?: Maybe<Image>;\n /** The media content type. */\n mediaContentType: MediaContentType;\n /** The presentation for a media. */\n presentation?: Maybe<MediaPresentation>;\n /** The preview image for the media. */\n previewImage?: Maybe<Image>;\n };\n\n/** A media presentation. */\nexport type MediaPresentation = Node & {\n __typename?: \"MediaPresentation\";\n /** A JSON object representing a presentation view. */\n asJson?: Maybe<Scalars[\"JSON\"][\"output\"]>;\n /** A globally-unique ID. */\n id: Scalars[\"ID\"][\"output\"];\n};\n\n/** A media presentation. */\nexport type MediaPresentationAsJsonArgs = {\n format: MediaPresentationFormat;\n};\n\n/** The possible formats for a media presentation. */\nexport enum MediaPresentationFormat {\n /** A media image presentation. */\n Image = \"IMAGE\",\n /** A model viewer presentation. */\n ModelViewer = \"MODEL_VIEWER\",\n}\n\n/**\n * A [navigation menu](https://help.shopify.com/manual/online-store/menus-and-links) representing a hierarchy\n * of hyperlinks (items).\n *\n */\nexport type Menu = Node & {\n __typename?: \"Menu\";\n /** The menu's handle. */\n handle: Scalars[\"String\"][\"output\"];\n /** A globally-unique ID. */\n id: Scalars[\"ID\"][\"output\"];\n /** The menu's child items. */\n items: Array<MenuItem>;\n /** The count of items on the menu. */\n itemsCount: Scalars[\"Int\"][\"output\"];\n /** The menu's title. */\n title: Scalars[\"String\"][\"output\"];\n};\n\n/** A menu item within a parent menu. */\nexport type MenuItem = Node & {\n __typename?: \"MenuItem\";\n /** A globally-unique ID. */\n id: Scalars[\"ID\"][\"output\"];\n /** The menu item's child items. */\n items: Array<MenuItem>;\n /** The linked resource. */\n resource?: Maybe<MenuItemResource>;\n /** The ID of the linked resource. */\n resourceId?: Maybe<Scalars[\"ID\"][\"output\"]>;\n /** The menu item's tags to filter a collection. */\n tags: Array<Scalars[\"String\"][\"output\"]>;\n /** The menu item's title. */\n title: Scalars[\"String\"][\"output\"];\n /** The menu item's type. */\n type: MenuItemType;\n /** The menu item's URL. */\n url?: Maybe<Scalars[\"URL\"][\"output\"]>;\n};\n\n/**\n * The list of possible resources a `MenuItem` can reference.\n *\n */\nexport type MenuItemResource =\n | Article\n | Blog\n | Collection\n | Metaobject\n | Page\n | Product\n | ShopPolicy;\n\n/** A menu item type. */\nexport enum MenuItemType {\n /** An article link. */\n Article = \"ARTICLE\",\n /** A blog link. */\n Blog = \"BLOG\",\n /** A catalog link. */\n Catalog = \"CATALOG\",\n /** A collection link. */\n Collection = \"COLLECTION\",\n /** A collection link. */\n Collections = \"COLLECTIONS\",\n /** A customer account page link. */\n CustomerAccountPage = \"CUSTOMER_ACCOUNT_PAGE\",\n /** A frontpage link. */\n Frontpage = \"FRONTPAGE\",\n /** An http link. */\n Http = \"HTTP\",\n /** A metaobject page link. */\n Metaobject = \"METAOBJECT\",\n /** A page link. */\n Page = \"PAGE\",\n /** A product link. */\n Product = \"PRODUCT\",\n /** A search link. */\n Search = \"SEARCH\",\n /** A shop policy link. */\n ShopPolicy = \"SHOP_POLICY\",\n}\n\n/** The merchandise to be purchased at checkout. */\nexport type Merchandise = ProductVariant;\n\n/**\n * Metafields represent custom metadata attached to a resource. Metafields can be sorted into namespaces and are\n * comprised of keys, values, and value types.\n *\n */\nexport type Metafield = Node & {\n __typename?: \"Metafield\";\n /** The date and time when the storefront metafield was created. */\n createdAt: Scalars[\"DateTime\"][\"output\"];\n /** The description of a metafield. */\n description?: Maybe<Scalars[\"String\"][\"output\"]>;\n /** A globally-unique ID. */\n id: Scalars[\"ID\"][\"output\"];\n /** The unique identifier for the metafield within its namespace. */\n key: Scalars[\"String\"][\"output\"];\n /** The container for a group of metafields that the metafield is associated with. */\n namespace: Scalars[\"String\"][\"output\"];\n /** The type of resource that the metafield is attached to. */\n parentResource: MetafieldParentResource;\n /** Returns a reference object if the metafield's type is a resource reference. */\n reference?: Maybe<MetafieldReference>;\n /** A list of reference objects if the metafield's type is a resource reference list. */\n references?: Maybe<MetafieldReferenceConnection>;\n /**\n * The type name of the metafield.\n * Refer to the list of [supported types](https://shopify.dev/apps/metafields/definitions/types).\n *\n */\n type: Scalars[\"String\"][\"output\"];\n /** The date and time when the metafield was last updated. */\n updatedAt: Scalars[\"DateTime\"][\"output\"];\n /** The data stored in the metafield. Always stored as a string, regardless of the metafield's type. */\n value: Scalars[\"String\"][\"output\"];\n};\n\n/**\n * Metafields represent custom metadata attached to a resource. Metafields can be sorted into namespaces and are\n * comprised of keys, values, and value types.\n *\n */\nexport type MetafieldReferencesArgs = {\n after?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n before?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n first?: InputMaybe<Scalars[\"Int\"][\"input\"]>;\n last?: InputMaybe<Scalars[\"Int\"][\"input\"]>;\n};\n\n/** Possible error codes that can be returned by `MetafieldDeleteUserError`. */\nexport enum MetafieldDeleteErrorCode {\n /** The owner ID is invalid. */\n InvalidOwner = \"INVALID_OWNER\",\n /** Metafield not found. */\n MetafieldDoesNotExist = \"METAFIELD_DOES_NOT_EXIST\",\n}\n\n/** An error that occurs during the execution of cart metafield deletion. */\nexport type MetafieldDeleteUserError = DisplayableError & {\n __typename?: \"MetafieldDeleteUserError\";\n /** The error code. */\n code?: Maybe<MetafieldDeleteErrorCode>;\n /** The path to the input field that caused the error. */\n field?: Maybe<Array<Scalars[\"String\"][\"output\"]>>;\n /** The error message. */\n message: Scalars[\"String\"][\"output\"];\n};\n\n/**\n * A filter used to view a subset of products in a collection matching a specific metafield value.\n *\n * Only the following metafield types are currently supported:\n * - `number_integer`\n * - `number_decimal`\n * - `single_line_text_field`\n * - `boolean` as of 2022-04.\n *\n */\nexport type MetafieldFilter = {\n /** The key of the metafield to filter on. */\n key: Scalars[\"String\"][\"input\"];\n /** The namespace of the metafield to filter on. */\n namespace: Scalars[\"String\"][\"input\"];\n /** The value of the metafield. */\n value: Scalars[\"String\"][\"input\"];\n};\n\n/** A resource that the metafield belongs to. */\nexport type MetafieldParentResource =\n | Article\n | Blog\n | Cart\n | Collection\n | Company\n | CompanyLocation\n | Customer\n | Location\n | Market\n | Order\n | Page\n | Product\n | ProductVariant\n | SellingPlan\n | Shop;\n\n/**\n * Returns the resource which is being referred to by a metafield.\n *\n */\nexport type MetafieldReference =\n | Collection\n | GenericFile\n | MediaImage\n | Metaobject\n | Model3d\n | Page\n | Product\n | ProductVariant\n | Video;\n\n/**\n * An auto-generated type for paginating through multiple MetafieldReferences.\n *\n */\nexport type MetafieldReferenceConnection = {\n __typename?: \"MetafieldReferenceConnection\";\n /** A list of edges. */\n edges: Array<MetafieldReferenceEdge>;\n /** A list of the nodes contained in MetafieldReferenceEdge. */\n nodes: Array<MetafieldReference>;\n /** Information to aid in pagination. */\n pageInfo: PageInfo;\n};\n\n/**\n * An auto-generated type which holds one MetafieldReference and a cursor during pagination.\n *\n */\nexport type MetafieldReferenceEdge = {\n __typename?: \"MetafieldReferenceEdge\";\n /** A cursor for use in pagination. */\n cursor: Scalars[\"String\"][\"output\"];\n /** The item at the end of MetafieldReferenceEdge. */\n node: MetafieldReference;\n};\n\n/** An error that occurs during the execution of `MetafieldsSet`. */\nexport type MetafieldsSetUserError = DisplayableError & {\n __typename?: \"MetafieldsSetUserError\";\n /** The error code. */\n code?: Maybe<MetafieldsSetUserErrorCode>;\n /** The index of the array element that's causing the error. */\n elementIndex?: Maybe<Scalars[\"Int\"][\"output\"]>;\n /** The path to the input field that caused the error. */\n field?: Maybe<Array<Scalars[\"String\"][\"output\"]>>;\n /** The error message. */\n message: Scalars[\"String\"][\"output\"];\n};\n\n/** Possible error codes that can be returned by `MetafieldsSetUserError`. */\nexport enum MetafieldsSetUserErrorCode {\n /** The input value is blank. */\n Blank = \"BLANK\",\n /** The input value isn't included in the list. */\n Inclusion = \"INCLUSION\",\n /** The owner ID is invalid. */\n InvalidOwner = \"INVALID_OWNER\",\n /** The type is invalid. */\n InvalidType = \"INVALID_TYPE\",\n /** The value is invalid for metafield type or for definition options. */\n InvalidValue = \"INVALID_VALUE\",\n /** The input value should be less than or equal to the maximum value allowed. */\n LessThanOrEqualTo = \"LESS_THAN_OR_EQUAL_TO\",\n /** The input value needs to be blank. */\n Present = \"PRESENT\",\n /** The input value is too long. */\n TooLong = \"TOO_LONG\",\n /** The input value is too short. */\n TooShort = \"TOO_SHORT\",\n}\n\n/** An instance of a user-defined model based on a MetaobjectDefinition. */\nexport type Metaobject = Node &\n OnlineStorePublishable & {\n __typename?: \"Metaobject\";\n /** Accesses a field of the object by key. */\n field?: Maybe<MetaobjectField>;\n /**\n * All object fields with defined values.\n * Omitted object keys can be assumed null, and no guarantees are made about field order.\n *\n */\n fields: Array<MetaobjectField>;\n /** The unique handle of the metaobject. Useful as a custom ID. */\n handle: Scalars[\"String\"][\"output\"];\n /** A globally-unique ID. */\n id: Scalars[\"ID\"][\"output\"];\n /** The URL used for viewing the metaobject on the shop's Online Store. Returns `null` if the metaobject definition doesn't have the `online_store` capability. */\n onlineStoreUrl?: Maybe<Scalars[\"URL\"][\"output\"]>;\n /**\n * The metaobject's SEO information. Returns `null` if the metaobject definition\n * doesn't have the `renderable` capability.\n *\n */\n seo?: Maybe<MetaobjectSeo>;\n /** The type of the metaobject. Defines the namespace of its associated metafields. */\n type: Scalars[\"String\"][\"output\"];\n /** The date and time when the metaobject was last updated. */\n updatedAt: Scalars[\"DateTime\"][\"output\"];\n };\n\n/** An instance of a user-defined model based on a MetaobjectDefinition. */\nexport type MetaobjectFieldArgs = {\n key: Scalars[\"String\"][\"input\"];\n};\n\n/**\n * An auto-generated type for paginating through multiple Metaobjects.\n *\n */\nexport type MetaobjectConnection = {\n __typename?: \"MetaobjectConnection\";\n /** A list of edges. */\n edges: Array<MetaobjectEdge>;\n /** A list of the nodes contained in MetaobjectEdge. */\n nodes: Array<Metaobject>;\n /** Information to aid in pagination. */\n pageInfo: PageInfo;\n};\n\n/**\n * An auto-generated type which holds one Metaobject and a cursor during pagination.\n *\n */\nexport type MetaobjectEdge = {\n __typename?: \"MetaobjectEdge\";\n /** A cursor for use in pagination. */\n cursor: Scalars[\"String\"][\"output\"];\n /** The item at the end of MetaobjectEdge. */\n node: Metaobject;\n};\n\n/** Provides the value of a Metaobject field. */\nexport type MetaobjectField = {\n __typename?: \"MetaobjectField\";\n /** The field key. */\n key: Scalars[\"String\"][\"output\"];\n /** A referenced object if the field type is a resource reference. */\n reference?: Maybe<MetafieldReference>;\n /** A list of referenced objects if the field type is a resource reference list. */\n references?: Maybe<MetafieldReferenceConnection>;\n /**\n * The type name of the field.\n * See the list of [supported types](https://shopify.dev/apps/metafields/definitions/types).\n *\n */\n type: Scalars[\"String\"][\"output\"];\n /** The field value. */\n value?: Maybe<Scalars[\"String\"][\"output\"]>;\n};\n\n/** Provides the value of a Metaobject field. */\nexport type MetaobjectFieldReferencesArgs = {\n after?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n before?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n first?: InputMaybe<Scalars[\"Int\"][\"input\"]>;\n last?: InputMaybe<Scalars[\"Int\"][\"input\"]>;\n};\n\n/** The input fields used to retrieve a metaobject by handle. */\nexport type MetaobjectHandleInput = {\n /** The handle of the metaobject. */\n handle: Scalars[\"String\"][\"input\"];\n /** The type of the metaobject. */\n type: Scalars[\"String\"][\"input\"];\n};\n\n/** SEO information for a metaobject. */\nexport type MetaobjectSeo = {\n __typename?: \"MetaobjectSEO\";\n /** The meta description. */\n description?: Maybe<MetaobjectField>;\n /** The SEO title. */\n title?: Maybe<MetaobjectField>;\n};\n\n/** Represents a Shopify hosted 3D model. */\nexport type Model3d = Media &\n Node & {\n __typename?: \"Model3d\";\n /** A word or phrase to share the nature or contents of a media. */\n alt?: Maybe<Scalars[\"String\"][\"output\"]>;\n /** A globally-unique ID. */\n id: Scalars[\"ID\"][\"output\"];\n /** The media content type. */\n mediaContentType: MediaContentType;\n /** The presentation for a media. */\n presentation?: Maybe<MediaPresentation>;\n /** The preview image for the media. */\n previewImage?: Maybe<Image>;\n /** The sources for a 3d model. */\n sources: Array<Model3dSource>;\n };\n\n/** Represents a source for a Shopify hosted 3d model. */\nexport type Model3dSource = {\n __typename?: \"Model3dSource\";\n /** The filesize of the 3d model. */\n filesize: Scalars[\"Int\"][\"output\"];\n /** The format of the 3d model. */\n format: Scalars[\"String\"][\"output\"];\n /** The MIME type of the 3d model. */\n mimeType: Scalars[\"String\"][\"output\"];\n /** The URL of the 3d model. */\n url: Scalars[\"String\"][\"output\"];\n};\n\n/** The input fields for a monetary value with currency. */\nexport type MoneyInput = {\n /** Decimal money amount. */\n amount: Scalars[\"Decimal\"][\"input\"];\n /** Currency of the money. */\n currencyCode: CurrencyCode;\n};\n\n/**\n * A monetary value with currency.\n *\n */\nexport type MoneyV2 = {\n __typename?: \"MoneyV2\";\n /** Decimal money amount. */\n amount: Scalars[\"Decimal\"][\"output\"];\n /** Currency of the money. */\n currencyCode: CurrencyCode;\n};\n\n/** The schema’s entry-point for mutations. This acts as the public, top-level API from which all mutation queries must start. */\nexport type Mutation = {\n __typename?: \"Mutation\";\n /** Updates the attributes on a cart. */\n cartAttributesUpdate?: Maybe<CartAttributesUpdatePayload>;\n /** Updates the billing address on the cart. */\n cartBillingAddressUpdate?: Maybe<CartBillingAddressUpdatePayload>;\n /**\n * Updates customer information associated with a cart.\n * Buyer identity is used to determine\n * [international pricing](https://shopify.dev/custom-storefronts/internationalization/international-pricing)\n * and should match the customer's shipping address.\n *\n */\n cartBuyerIdentityUpdate?: Maybe<CartBuyerIdentityUpdatePayload>;\n /** Creates a new cart. */\n cartCreate?: Maybe<CartCreatePayload>;\n /** Adds delivery addresses to the cart. */\n cartDeliveryAddressesAdd?: Maybe<CartDeliveryAddressesAddPayload>;\n /** Removes delivery addresses from the cart. */\n cartDeliveryAddressesRemove?: Maybe<CartDeliveryAddressesRemovePayload>;\n /** Updates one or more delivery addresses on a cart. */\n cartDeliveryAddressesUpdate?: Maybe<CartDeliveryAddressesUpdatePayload>;\n /** Updates the discount codes applied to the cart. */\n cartDiscountCodesUpdate?: Maybe<CartDiscountCodesUpdatePayload>;\n /** Removes the gift card codes applied to the cart. */\n cartGiftCardCodesRemove?: Maybe<CartGiftCardCodesRemovePayload>;\n /** Updates the gift card codes applied to the cart. */\n cartGiftCardCodesUpdate?: Maybe<CartGiftCardCodesUpdatePayload>;\n /** Adds a merchandise line to the cart. */\n cartLinesAdd?: Maybe<CartLinesAddPayload>;\n /** Removes one or more merchandise lines from the cart. */\n cartLinesRemove?: Maybe<CartLinesRemovePayload>;\n /** Updates one or more merchandise lines on a cart. */\n cartLinesUpdate?: Maybe<CartLinesUpdatePayload>;\n /** Deletes a cart metafield. */\n cartMetafieldDelete?: Maybe<CartMetafieldDeletePayload>;\n /**\n * Sets cart metafield values. Cart metafield values will be set regardless if they were previously created or not.\n *\n * Allows a maximum of 25 cart metafields to be set at a time.\n *\n */\n cartMetafieldsSet?: Maybe<CartMetafieldsSetPayload>;\n /** Updates the note on the cart. */\n cartNoteUpdate?: Maybe<CartNoteUpdatePayload>;\n /** Update the customer's payment method that will be used to checkout. */\n cartPaymentUpdate?: Maybe<CartPaymentUpdatePayload>;\n /** Prepare the cart for cart checkout completion. */\n cartPrepareForCompletion?: Maybe<CartPrepareForCompletionPayload>;\n /** Update the selected delivery options for a delivery group. */\n cartSelectedDeliveryOptionsUpdate?: Maybe<CartSelectedDeliveryOptionsUpdatePayload>;\n /** Submit the cart for checkout completion. */\n cartSubmitForCompletion?: Maybe<CartSubmitForCompletionPayload>;\n /**\n * Creates a customer access token.\n * The customer access token is required to modify the customer object in any way.\n *\n */\n customerAccessTokenCreate?: Maybe<CustomerAccessTokenCreatePayload>;\n /**\n * Creates a customer access token using a\n * [multipass token](https://shopify.dev/api/multipass) instead of email and\n * password. A customer record is created if the customer doesn't exist. If a customer\n * record already exists but the record is disabled, then the customer record is enabled.\n *\n */\n customerAccessTokenCreateWithMultipass?: Maybe<CustomerAccessTokenCreateWithMultipassPayload>;\n /** Permanently destroys a customer access token. */\n customerAccessTokenDelete?: Maybe<CustomerAccessTokenDeletePayload>;\n /**\n * Renews a customer access token.\n *\n * Access token renewal must happen *before* a token expires.\n * If a token has already expired, a new one should be created instead via `customerAccessTokenCreate`.\n *\n */\n customerAccessTokenRenew?: Maybe<CustomerAccessTokenRenewPayload>;\n /** Activates a customer. */\n customerActivate?: Maybe<CustomerActivatePayload>;\n /** Activates a customer with the activation url received from `customerCreate`. */\n customerActivateByUrl?: Maybe<CustomerActivateByUrlPayload>;\n /** Creates a new address for a customer. */\n customerAddressCreate?: Maybe<CustomerAddressCreatePayload>;\n /** Permanently deletes the address of an existing customer. */\n customerAddressDelete?: Maybe<CustomerAddressDeletePayload>;\n /** Updates the address of an existing customer. */\n customerAddressUpdate?: Maybe<CustomerAddressUpdatePayload>;\n /** Creates a new customer. */\n customerCreate?: Maybe<CustomerCreatePayload>;\n /** Updates the default address of an existing customer. */\n customerDefaultAddressUpdate?: Maybe<CustomerDefaultAddressUpdatePayload>;\n /**\n * Sends a reset password email to the customer. The reset password\n * email contains a reset password URL and token that you can pass to\n * the [`customerResetByUrl`](https://shopify.dev/api/storefront/latest/mutations/customerResetByUrl) or\n * [`customerReset`](https://shopify.dev/api/storefront/latest/mutations/customerReset) mutation to reset the\n * customer password.\n *\n * This mutation is throttled by IP. With private access,\n * you can provide a [`Shopify-Storefront-Buyer-IP`](https://shopify.dev/api/usage/authentication#optional-ip-header) instead of the request IP.\n * The header is case-sensitive and must be sent as `Shopify-Storefront-Buyer-IP`.\n *\n * Make sure that the value provided to `Shopify-Storefront-Buyer-IP` is trusted. Unthrottled access to this\n * mutation presents a security risk.\n *\n */\n customerRecover?: Maybe<CustomerRecoverPayload>;\n /**\n * \"Resets a customer’s password with the token received from a reset password email. You can send a reset password email with the [`customerRecover`](https://shopify.dev/api/storefront/latest/mutations/customerRecover) mutation.\"\n *\n */\n customerReset?: Maybe<CustomerResetPayload>;\n /**\n * \"Resets a customer’s password with the reset password URL received from a reset password email. You can send a reset password email with the [`customerRecover`](https://shopify.dev/api/storefront/latest/mutations/customerRecover) mutation.\"\n *\n */\n customerResetByUrl?: Maybe<CustomerResetByUrlPayload>;\n /** Updates an existing customer. */\n customerUpdate?: Maybe<CustomerUpdatePayload>;\n /** Create a new Shop Pay payment request session. */\n shopPayPaymentRequestSessionCreate?: Maybe<ShopPayPaymentRequestSessionCreatePayload>;\n /** Submits a Shop Pay payment request session. */\n shopPayPaymentRequestSessionSubmit?: Maybe<ShopPayPaymentRequestSessionSubmitPayload>;\n};\n\n/** The schema’s entry-point for mutations. This acts as the public, top-level API from which all mutation queries must start. */\nexport type MutationCartAttributesUpdateArgs = {\n attributes: Array<AttributeInput>;\n cartId: Scalars[\"ID\"][\"input\"];\n};\n\n/** The schema’s entry-point for mutations. This acts as the public, top-level API from which all mutation queries must start. */\nexport type MutationCartBillingAddressUpdateArgs = {\n billingAddress?: InputMaybe<MailingAddressInput>;\n cartId: Scalars[\"ID\"][\"input\"];\n};\n\n/** The schema’s entry-point for mutations. This acts as the public, top-level API from which all mutation queries must start. */\nexport type MutationCartBuyerIdentityUpdateArgs = {\n buyerIdentity: CartBuyerIdentityInput;\n cartId: Scalars[\"ID\"][\"input\"];\n};\n\n/** The schema’s entry-point for mutations. This acts as the public, top-level API from which all mutation queries must start. */\nexport type MutationCartCreateArgs = {\n input?: InputMaybe<CartInput>;\n};\n\n/** The schema’s entry-point for mutations. This acts as the public, top-level API from which all mutation queries must start. */\nexport type MutationCartDeliveryAddressesAddArgs = {\n addresses: Array<CartSelectableAddressInput>;\n cartId: Scalars[\"ID\"][\"input\"];\n};\n\n/** The schema’s entry-point for mutations. This acts as the public, top-level API from which all mutation queries must start. */\nexport type MutationCartDeliveryAddressesRemoveArgs = {\n addressIds: Array<Scalars[\"ID\"][\"input\"]>;\n cartId: Scalars[\"ID\"][\"input\"];\n};\n\n/** The schema’s entry-point for mutations. This acts as the public, top-level API from which all mutation queries must start. */\nexport type MutationCartDeliveryAddressesUpdateArgs = {\n addresses: Array<CartSelectableAddressUpdateInput>;\n cartId: Scalars[\"ID\"][\"input\"];\n};\n\n/** The schema’s entry-point for mutations. This acts as the public, top-level API from which all mutation queries must start. */\nexport type MutationCartDiscountCodesUpdateArgs = {\n cartId: Scalars[\"ID\"][\"input\"];\n discountCodes?: InputMaybe<Array<Scalars[\"String\"][\"input\"]>>;\n};\n\n/** The schema’s entry-point for mutations. This acts as the public, top-level API from which all mutation queries must start. */\nexport type MutationCartGiftCardCodesRemoveArgs = {\n appliedGiftCardIds: Array<Scalars[\"ID\"][\"input\"]>;\n cartId: Scalars[\"ID\"][\"input\"];\n};\n\n/** The schema’s entry-point for mutations. This acts as the public, top-level API from which all mutation queries must start. */\nexport type MutationCartGiftCardCodesUpdateArgs = {\n cartId: Scalars[\"ID\"][\"input\"];\n giftCardCodes: Array<Scalars[\"String\"][\"input\"]>;\n};\n\n/** The schema’s entry-point for mutations. This acts as the public, top-level API from which all mutation queries must start. */\nexport type MutationCartLinesAddArgs = {\n cartId: Scalars[\"ID\"][\"input\"];\n lines: Array<CartLineInput>;\n};\n\n/** The schema’s entry-point for mutations. This acts as the public, top-level API from which all mutation queries must start. */\nexport type MutationCartLinesRemoveArgs = {\n cartId: Scalars[\"ID\"][\"input\"];\n lineIds: Array<Scalars[\"ID\"][\"input\"]>;\n};\n\n/** The schema’s entry-point for mutations. This acts as the public, top-level API from which all mutation queries must start. */\nexport type MutationCartLinesUpdateArgs = {\n cartId: Scalars[\"ID\"][\"input\"];\n lines: Array<CartLineUpdateInput>;\n};\n\n/** The schema’s entry-point for mutations. This acts as the public, top-level API from which all mutation queries must start. */\nexport type MutationCartMetafieldDeleteArgs = {\n input: CartMetafieldDeleteInput;\n};\n\n/** The schema’s entry-point for mutations. This acts as the public, top-level API from which all mutation queries must start. */\nexport type MutationCartMetafieldsSetArgs = {\n metafields: Array<CartMetafieldsSetInput>;\n};\n\n/** The schema’s entry-point for mutations. This acts as the public, top-level API from which all mutation queries must start. */\nexport type MutationCartNoteUpdateArgs = {\n cartId: Scalars[\"ID\"][\"input\"];\n note: Scalars[\"String\"][\"input\"];\n};\n\n/** The schema’s entry-point for mutations. This acts as the public, top-level API from which all mutation queries must start. */\nexport type MutationCartPaymentUpdateArgs = {\n cartId: Scalars[\"ID\"][\"input\"];\n payment: CartPaymentInput;\n};\n\n/** The schema’s entry-point for mutations. This acts as the public, top-level API from which all mutation queries must start. */\nexport type MutationCartPrepareForCompletionArgs = {\n cartId: Scalars[\"ID\"][\"input\"];\n};\n\n/** The schema’s entry-point for mutations. This acts as the public, top-level API from which all mutation queries must start. */\nexport type MutationCartSelectedDeliveryOptionsUpdateArgs = {\n cartId: Scalars[\"ID\"][\"input\"];\n selectedDeliveryOptions: Array<CartSelectedDeliveryOptionInput>;\n};\n\n/** The schema’s entry-point for mutations. This acts as the public, top-level API from which all mutation queries must start. */\nexport type MutationCartSubmitForCompletionArgs = {\n attemptToken: Scalars[\"String\"][\"input\"];\n cartId: Scalars[\"ID\"][\"input\"];\n};\n\n/** The schema’s entry-point for mutations. This acts as the public, top-level API from which all mutation queries must start. */\nexport type MutationCustomerAccessTokenCreateArgs = {\n input: CustomerAccessTokenCreateInput;\n};\n\n/** The schema’s entry-point for mutations. This acts as the public, top-level API from which all mutation queries must start. */\nexport type MutationCustomerAccessTokenCreateWithMultipassArgs = {\n multipassToken: Scalars[\"String\"][\"input\"];\n};\n\n/** The schema’s entry-point for mutations. This acts as the public, top-level API from which all mutation queries must start. */\nexport type MutationCustomerAccessTokenDeleteArgs = {\n customerAccessToken: Scalars[\"String\"][\"input\"];\n};\n\n/** The schema’s entry-point for mutations. This acts as the public, top-level API from which all mutation queries must start. */\nexport type MutationCustomerAccessTokenRenewArgs = {\n customerAccessToken: Scalars[\"String\"][\"input\"];\n};\n\n/** The schema’s entry-point for mutations. This acts as the public, top-level API from which all mutation queries must start. */\nexport type MutationCustomerActivateArgs = {\n id: Scalars[\"ID\"][\"input\"];\n input: CustomerActivateInput;\n};\n\n/** The schema’s entry-point for mutations. This acts as the public, top-level API from which all mutation queries must start. */\nexport type MutationCustomerActivateByUrlArgs = {\n activationUrl: Scalars[\"URL\"][\"input\"];\n password: Scalars[\"String\"][\"input\"];\n};\n\n/** The schema’s entry-point for mutations. This acts as the public, top-level API from which all mutation queries must start. */\nexport type MutationCustomerAddressCreateArgs = {\n address: MailingAddressInput;\n customerAccessToken: Scalars[\"String\"][\"input\"];\n};\n\n/** The schema’s entry-point for mutations. This acts as the public, top-level API from which all mutation queries must start. */\nexport type MutationCustomerAddressDeleteArgs = {\n customerAccessToken: Scalars[\"String\"][\"input\"];\n id: Scalars[\"ID\"][\"input\"];\n};\n\n/** The schema’s entry-point for mutations. This acts as the public, top-level API from which all mutation queries must start. */\nexport type MutationCustomerAddressUpdateArgs = {\n address: MailingAddressInput;\n customerAccessToken: Scalars[\"String\"][\"input\"];\n id: Scalars[\"ID\"][\"input\"];\n};\n\n/** The schema’s entry-point for mutations. This acts as the public, top-level API from which all mutation queries must start. */\nexport type MutationCustomerCreateArgs = {\n input: CustomerCreateInput;\n};\n\n/** The schema’s entry-point for mutations. This acts as the public, top-level API from which all mutation queries must start. */\nexport type MutationCustomerDefaultAddressUpdateArgs = {\n addressId: Scalars[\"ID\"][\"input\"];\n customerAccessToken: Scalars[\"String\"][\"input\"];\n};\n\n/** The schema’s entry-point for mutations. This acts as the public, top-level API from which all mutation queries must start. */\nexport type MutationCustomerRecoverArgs = {\n email: Scalars[\"String\"][\"input\"];\n};\n\n/** The schema’s entry-point for mutations. This acts as the public, top-level API from which all mutation queries must start. */\nexport type MutationCustomerResetArgs = {\n id: Scalars[\"ID\"][\"input\"];\n input: CustomerResetInput;\n};\n\n/** The schema’s entry-point for mutations. This acts as the public, top-level API from which all mutation queries must start. */\nexport type MutationCustomerResetByUrlArgs = {\n password: Scalars[\"String\"][\"input\"];\n resetUrl: Scalars[\"URL\"][\"input\"];\n};\n\n/** The schema’s entry-point for mutations. This acts as the public, top-level API from which all mutation queries must start. */\nexport type MutationCustomerUpdateArgs = {\n customer: CustomerUpdateInput;\n customerAccessToken: Scalars[\"String\"][\"input\"];\n};\n\n/** The schema’s entry-point for mutations. This acts as the public, top-level API from which all mutation queries must start. */\nexport type MutationShopPayPaymentRequestSessionCreateArgs = {\n paymentRequest: ShopPayPaymentRequestInput;\n sourceIdentifier: Scalars[\"String\"][\"input\"];\n};\n\n/** The schema’s entry-point for mutations. This acts as the public, top-level API from which all mutation queries must start. */\nexport type MutationShopPayPaymentRequestSessionSubmitArgs = {\n idempotencyKey: Scalars[\"String\"][\"input\"];\n orderName?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n paymentRequest: ShopPayPaymentRequestInput;\n token: Scalars[\"String\"][\"input\"];\n};\n\n/**\n * An object with an ID field to support global identification, in accordance with the\n * [Relay specification](https://relay.dev/graphql/objectidentification.htm#sec-Node-Interface).\n * This interface is used by the [node](https://shopify.dev/api/admin-graphql/unstable/queries/node)\n * and [nodes](https://shopify.dev/api/admin-graphql/unstable/queries/nodes) queries.\n *\n */\nexport type Node = {\n /** A globally-unique ID. */\n id: Scalars[\"ID\"][\"output\"];\n};\n\n/** Represents a resource that can be published to the Online Store sales channel. */\nexport type OnlineStorePublishable = {\n /** The URL used for viewing the resource on the shop's Online Store. Returns `null` if the resource is currently not published to the Online Store sales channel. */\n onlineStoreUrl?: Maybe<Scalars[\"URL\"][\"output\"]>;\n};\n\n/** 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. */\nexport type Order = HasMetafields &\n Node & {\n __typename?: \"Order\";\n /** The address associated with the payment method. */\n billingAddress?: Maybe<MailingAddress>;\n /** The reason for the order's cancellation. Returns `null` if the order wasn't canceled. */\n cancelReason?: Maybe<OrderCancelReason>;\n /** The date and time when the order was canceled. Returns null if the order wasn't canceled. */\n canceledAt?: Maybe<Scalars[\"DateTime\"][\"output\"]>;\n /** The code of the currency used for the payment. */\n currencyCode: CurrencyCode;\n /** 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 aren't included unless the order is a taxes-included order. */\n currentSubtotalPrice: MoneyV2;\n /** The total cost of duties for the order, including refunds. */\n currentTotalDuties?: Maybe<MoneyV2>;\n /** The total amount of the order, including duties, taxes and discounts, minus amounts for line items that have been removed. */\n currentTotalPrice: MoneyV2;\n /** The total cost of shipping, excluding shipping lines that have been refunded or removed. Taxes aren't included unless the order is a taxes-included order. */\n currentTotalShippingPrice: MoneyV2;\n /** The total of all taxes applied to the order, excluding taxes for returned line items. */\n currentTotalTax: MoneyV2;\n /** A list of the custom attributes added to the order. For example, whether an order is a customer's first. */\n customAttributes: Array<Attribute>;\n /** The locale code in which this specific order happened. */\n customerLocale?: Maybe<Scalars[\"String\"][\"output\"]>;\n /** The unique URL that the customer can use to access the order. */\n customerUrl?: Maybe<Scalars[\"URL\"][\"output\"]>;\n /** Discounts that have been applied on the order. */\n discountApplications: DiscountApplicationConnection;\n /** Whether the order has had any edits applied or not. */\n edited: Scalars[\"Boolean\"][\"output\"];\n /** The customer's email address. */\n email?: Maybe<Scalars[\"String\"][\"output\"]>;\n /** The financial status of the order. */\n financialStatus?: Maybe<OrderFinancialStatus>;\n /** The fulfillment status for the order. */\n fulfillmentStatus: OrderFulfillmentStatus;\n /** A globally-unique ID. */\n id: Scalars[\"ID\"][\"output\"];\n /** List of the order’s line items. */\n lineItems: OrderLineItemConnection;\n /** A [custom field](https://shopify.dev/docs/apps/build/custom-data), including its `namespace` and `key`, that's associated with a Shopify resource for the purposes of adding and storing additional information. */\n metafield?: Maybe<Metafield>;\n /** A list of [custom fields](/docs/apps/build/custom-data) that a merchant associates with a Shopify resource. */\n metafields: Array<Maybe<Metafield>>;\n /**\n * Unique identifier for the order that appears on the order.\n * For example, _#1000_ or _Store1001.\n *\n */\n name: Scalars[\"String\"][\"output\"];\n /** A unique numeric identifier for the order for use by shop owner and customer. */\n orderNumber: Scalars[\"Int\"][\"output\"];\n /** The total cost of duties charged at checkout. */\n originalTotalDuties?: Maybe<MoneyV2>;\n /** The total price of the order before any applied edits. */\n originalTotalPrice: MoneyV2;\n /** The customer's phone number for receiving SMS notifications. */\n phone?: Maybe<Scalars[\"String\"][\"output\"]>;\n /**\n * The date and time when the order was imported.\n * This value can be set to dates in the past when importing from other systems.\n * If no value is provided, it will be auto-generated based on current date and time.\n *\n */\n processedAt: Scalars[\"DateTime\"][\"output\"];\n /** The address to where the order will be shipped. */\n shippingAddress?: Maybe<MailingAddress>;\n /**\n * The discounts that have been allocated onto the shipping line by discount applications.\n *\n */\n shippingDiscountAllocations: Array<DiscountAllocation>;\n /** The unique URL for the order's status page. */\n statusUrl: Scalars[\"URL\"][\"output\"];\n /** Price of the order before shipping and taxes. */\n subtotalPrice?: Maybe<MoneyV2>;\n /**\n * Price of the order before duties, shipping and taxes.\n * @deprecated Use `subtotalPrice` instead.\n */\n subtotalPriceV2?: Maybe<MoneyV2>;\n /** List of the order’s successful fulfillments. */\n successfulFulfillments?: Maybe<Array<Fulfillment>>;\n /** The sum of all the prices of all the items in the order, duties, taxes and discounts included (must be positive). */\n totalPrice: MoneyV2;\n /**\n * The sum of all the prices of all the items in the order, duties, taxes and discounts included (must be positive).\n * @deprecated Use `totalPrice` instead.\n */\n totalPriceV2: MoneyV2;\n /** The total amount that has been refunded. */\n totalRefunded: MoneyV2;\n /**\n * The total amount that has been refunded.\n * @deprecated Use `totalRefunded` instead.\n */\n totalRefundedV2: MoneyV2;\n /** The total cost of shipping. */\n totalShippingPrice: MoneyV2;\n /**\n * The total cost of shipping.\n * @deprecated Use `totalShippingPrice` instead.\n */\n totalShippingPriceV2: MoneyV2;\n /** The total cost of taxes. */\n totalTax?: Maybe<MoneyV2>;\n /**\n * The total cost of taxes.\n * @deprecated Use `totalTax` instead.\n */\n totalTaxV2?: Maybe<MoneyV2>;\n };\n\n/** 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. */\nexport type OrderDiscountApplicationsArgs = {\n after?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n before?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n first?: InputMaybe<Scalars[\"Int\"][\"input\"]>;\n last?: InputMaybe<Scalars[\"Int\"][\"input\"]>;\n reverse?: InputMaybe<Scalars[\"Boolean\"][\"input\"]>;\n};\n\n/** 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. */\nexport type OrderLineItemsArgs = {\n after?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n before?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n first?: InputMaybe<Scalars[\"Int\"][\"input\"]>;\n last?: InputMaybe<Scalars[\"Int\"][\"input\"]>;\n reverse?: InputMaybe<Scalars[\"Boolean\"][\"input\"]>;\n};\n\n/** 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. */\nexport type OrderMetafieldArgs = {\n key: Scalars[\"String\"][\"input\"];\n namespace?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n};\n\n/** 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. */\nexport type OrderMetafieldsArgs = {\n identifiers: Array<HasMetafieldsIdentifier>;\n};\n\n/** 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. */\nexport type OrderSuccessfulFulfillmentsArgs = {\n first?: InputMaybe<Scalars[\"Int\"][\"input\"]>;\n};\n\n/** Represents the reason for the order's cancellation. */\nexport enum OrderCancelReason {\n /** The customer wanted to cancel the order. */\n Customer = \"CUSTOMER\",\n /** Payment was declined. */\n Declined = \"DECLINED\",\n /** The order was fraudulent. */\n Fraud = \"FRAUD\",\n /** There was insufficient inventory. */\n Inventory = \"INVENTORY\",\n /** The order was canceled for an unlisted reason. */\n Other = \"OTHER\",\n /** Staff made an error. */\n Staff = \"STAFF\",\n}\n\n/**\n * An auto-generated type for paginating through multiple Orders.\n *\n */\nexport type OrderConnection = {\n __typename?: \"OrderConnection\";\n /** A list of edges. */\n edges: Array<OrderEdge>;\n /** A list of the nodes contained in OrderEdge. */\n nodes: Array<Order>;\n /** Information to aid in pagination. */\n pageInfo: PageInfo;\n /** The total count of Orders. */\n totalCount: Scalars[\"UnsignedInt64\"][\"output\"];\n};\n\n/**\n * An auto-generated type which holds one Order and a cursor during pagination.\n *\n */\nexport type OrderEdge = {\n __typename?: \"OrderEdge\";\n /** A cursor for use in pagination. */\n cursor: Scalars[\"String\"][\"output\"];\n /** The item at the end of OrderEdge. */\n node: Order;\n};\n\n/** Represents the order's current financial status. */\nexport enum OrderFinancialStatus {\n /** Displayed as **Authorized**. */\n Authorized = \"AUTHORIZED\",\n /** Displayed as **Paid**. */\n Paid = \"PAID\",\n /** Displayed as **Partially paid**. */\n PartiallyPaid = \"PARTIALLY_PAID\",\n /** Displayed as **Partially refunded**. */\n PartiallyRefunded = \"PARTIALLY_REFUNDED\",\n /** Displayed as **Pending**. */\n Pending = \"PENDING\",\n /** Displayed as **Refunded**. */\n Refunded = \"REFUNDED\",\n /** Displayed as **Voided**. */\n Voided = \"VOIDED\",\n}\n\n/** Represents the order's aggregated fulfillment status for display purposes. */\nexport enum OrderFulfillmentStatus {\n /** Displayed as **Fulfilled**. All of the items in the order have been fulfilled. */\n Fulfilled = \"FULFILLED\",\n /** Displayed as **In progress**. Some of the items in the order have been fulfilled, or a request for fulfillment has been sent to the fulfillment service. */\n InProgress = \"IN_PROGRESS\",\n /** Displayed as **On hold**. All of the unfulfilled items in this order are on hold. */\n OnHold = \"ON_HOLD\",\n /** Displayed as **Open**. None of the items in the order have been fulfilled. Replaced by \"UNFULFILLED\" status. */\n Open = \"OPEN\",\n /** Displayed as **Partially fulfilled**. Some of the items in the order have been fulfilled. */\n PartiallyFulfilled = \"PARTIALLY_FULFILLED\",\n /** Displayed as **Pending fulfillment**. A request for fulfillment of some items awaits a response from the fulfillment service. Replaced by \"IN_PROGRESS\" status. */\n PendingFulfillment = \"PENDING_FULFILLMENT\",\n /** Displayed as **Restocked**. All of the items in the order have been restocked. Replaced by \"UNFULFILLED\" status. */\n Restocked = \"RESTOCKED\",\n /** Displayed as **Scheduled**. All of the unfulfilled items in this order are scheduled for fulfillment at later time. */\n Scheduled = \"SCHEDULED\",\n /** Displayed as **Unfulfilled**. None of the items in the order have been fulfilled. */\n Unfulfilled = \"UNFULFILLED\",\n}\n\n/** Represents a single line in an order. There is one line item for each distinct product variant. */\nexport type OrderLineItem = {\n __typename?: \"OrderLineItem\";\n /** The number of entries associated to the line item minus the items that have been removed. */\n currentQuantity: Scalars[\"Int\"][\"output\"];\n /** List of custom attributes associated to the line item. */\n customAttributes: Array<Attribute>;\n /** The discounts that have been allocated onto the order line item by discount applications. */\n discountAllocations: Array<DiscountAllocation>;\n /** The total price of the line item, including discounts, and displayed in the presentment currency. */\n discountedTotalPrice: MoneyV2;\n /** 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's displayed in the presentment currency. */\n originalTotalPrice: MoneyV2;\n /** The number of products variants associated to the line item. */\n quantity: Scalars[\"Int\"][\"output\"];\n /** The title of the product combined with title of the variant. */\n title: Scalars[\"String\"][\"output\"];\n /** The product variant object associated to the line item. */\n variant?: Maybe<ProductVariant>;\n};\n\n/**\n * An auto-generated type for paginating through multiple OrderLineItems.\n *\n */\nexport type OrderLineItemConnection = {\n __typename?: \"OrderLineItemConnection\";\n /** A list of edges. */\n edges: Array<OrderLineItemEdge>;\n /** A list of the nodes contained in OrderLineItemEdge. */\n nodes: Array<OrderLineItem>;\n /** Information to aid in pagination. */\n pageInfo: PageInfo;\n};\n\n/**\n * An auto-generated type which holds one OrderLineItem and a cursor during pagination.\n *\n */\nexport type OrderLineItemEdge = {\n __typename?: \"OrderLineItemEdge\";\n /** A cursor for use in pagination. */\n cursor: Scalars[\"String\"][\"output\"];\n /** The item at the end of OrderLineItemEdge. */\n node: OrderLineItem;\n};\n\n/** The set of valid sort keys for the Order query. */\nexport enum OrderSortKeys {\n /** Sort by the `id` value. */\n Id = \"ID\",\n /** Sort by the `processed_at` value. */\n ProcessedAt = \"PROCESSED_AT\",\n /**\n * Sort by relevance to the search terms when the `query` parameter is specified on the connection.\n * Don't use this sort key when no search query is specified.\n *\n */\n Relevance = \"RELEVANCE\",\n /** Sort by the `total_price` value. */\n TotalPrice = \"TOTAL_PRICE\",\n}\n\n/** Shopify merchants can create pages to hold static HTML content. Each Page object represents a custom page on the online store. */\nexport type Page = HasMetafields &\n Node &\n OnlineStorePublishable &\n Trackable & {\n __typename?: \"Page\";\n /** The description of the page, complete with HTML formatting. */\n body: Scalars[\"HTML\"][\"output\"];\n /** Summary of the page body. */\n bodySummary: Scalars[\"String\"][\"output\"];\n /** The timestamp of the page creation. */\n createdAt: Scalars[\"DateTime\"][\"output\"];\n /** A human-friendly unique string for the page automatically generated from its title. */\n handle: Scalars[\"String\"][\"output\"];\n /** A globally-unique ID. */\n id: Scalars[\"ID\"][\"output\"];\n /** A [custom field](https://shopify.dev/docs/apps/build/custom-data), including its `namespace` and `key`, that's associated with a Shopify resource for the purposes of adding and storing additional information. */\n metafield?: Maybe<Metafield>;\n /** A list of [custom fields](/docs/apps/build/custom-data) that a merchant associates with a Shopify resource. */\n metafields: Array<Maybe<Metafield>>;\n /** The URL used for viewing the resource on the shop's Online Store. Returns `null` if the resource is currently not published to the Online Store sales channel. */\n onlineStoreUrl?: Maybe<Scalars[\"URL\"][\"output\"]>;\n /** The page's SEO information. */\n seo?: Maybe<Seo>;\n /** The title of the page. */\n title: Scalars[\"String\"][\"output\"];\n /** URL parameters to be added to a page URL to track the origin of on-site search traffic for [analytics reporting](https://help.shopify.com/manual/reports-and-analytics/shopify-reports/report-types/default-reports/behaviour-reports). Returns a result when accessed through the [search](https://shopify.dev/docs/api/storefront/current/queries/search) or [predictiveSearch](https://shopify.dev/docs/api/storefront/current/queries/predictiveSearch) queries, otherwise returns null. */\n trackingParameters?: Maybe<Scalars[\"String\"][\"output\"]>;\n /** The timestamp of the latest page update. */\n updatedAt: Scalars[\"DateTime\"][\"output\"];\n };\n\n/** Shopify merchants can create pages to hold static HTML content. Each Page object represents a custom page on the online store. */\nexport type PageMetafieldArgs = {\n key: Scalars[\"String\"][\"input\"];\n namespace?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n};\n\n/** Shopify merchants can create pages to hold static HTML content. Each Page object represents a custom page on the online store. */\nexport type PageMetafieldsArgs = {\n identifiers: Array<HasMetafieldsIdentifier>;\n};\n\n/**\n * An auto-generated type for paginating through multiple Pages.\n *\n */\nexport type PageConnection = {\n __typename?: \"PageConnection\";\n /** A list of edges. */\n edges: Array<PageEdge>;\n /** A list of the nodes contained in PageEdge. */\n nodes: Array<Page>;\n /** Information to aid in pagination. */\n pageInfo: PageInfo;\n};\n\n/**\n * An auto-generated type which holds one Page and a cursor during pagination.\n *\n */\nexport type PageEdge = {\n __typename?: \"PageEdge\";\n /** A cursor for use in pagination. */\n cursor: Scalars[\"String\"][\"output\"];\n /** The item at the end of PageEdge. */\n node: Page;\n};\n\n/**\n * Returns information about pagination in a connection, in accordance with the\n * [Relay specification](https://relay.dev/graphql/connections.htm#sec-undefined.PageInfo).\n * For more information, please read our [GraphQL Pagination Usage Guide](https://shopify.dev/api/usage/pagination-graphql).\n *\n */\nexport type PageInfo = {\n __typename?: \"PageInfo\";\n /** The cursor corresponding to the last node in edges. */\n endCursor?: Maybe<Scalars[\"String\"][\"output\"]>;\n /** Whether there are more pages to fetch following the current page. */\n hasNextPage: Scalars[\"Boolean\"][\"output\"];\n /** Whether there are any pages prior to the current page. */\n hasPreviousPage: Scalars[\"Boolean\"][\"output\"];\n /** The cursor corresponding to the first node in edges. */\n startCursor?: Maybe<Scalars[\"String\"][\"output\"]>;\n};\n\n/** The set of valid sort keys for the Page query. */\nexport enum PageSortKeys {\n /** Sort by the `id` value. */\n Id = \"ID\",\n /**\n * Sort by relevance to the search terms when the `query` parameter is specified on the connection.\n * Don't use this sort key when no search query is specified.\n *\n */\n Relevance = \"RELEVANCE\",\n /** Sort by the `title` value. */\n Title = \"TITLE\",\n /** Sort by the `updated_at` value. */\n UpdatedAt = \"UPDATED_AT\",\n}\n\n/** Type for paginating through multiple sitemap's resources. */\nexport type PaginatedSitemapResources = {\n __typename?: \"PaginatedSitemapResources\";\n /** Whether there are more pages to fetch following the current page. */\n hasNextPage: Scalars[\"Boolean\"][\"output\"];\n /**\n * List of sitemap resources for the current page.\n * Note: The number of items varies between 0 and 250 per page.\n *\n */\n items: Array<SitemapResourceInterface>;\n};\n\n/** Settings related to payments. */\nexport type PaymentSettings = {\n __typename?: \"PaymentSettings\";\n /** List of the card brands which the business entity accepts. */\n acceptedCardBrands: Array<CardBrand>;\n /** The url pointing to the endpoint to vault credit cards. */\n cardVaultUrl: Scalars[\"URL\"][\"output\"];\n /** The country where the shop is located. When multiple business entities operate within the shop, then this will represent the country of the business entity that's serving the specified buyer context. */\n countryCode: CountryCode;\n /** The three-letter code for the shop's primary currency. */\n currencyCode: CurrencyCode;\n /**\n * A list of enabled currencies (ISO 4217 format) that the shop accepts.\n * Merchants can enable currencies from their Shopify Payments settings in the Shopify admin.\n *\n */\n enabledPresentmentCurrencies: Array<CurrencyCode>;\n /** The shop’s Shopify Payments account ID. */\n shopifyPaymentsAccountId?: Maybe<Scalars[\"String\"][\"output\"]>;\n /** List of the digital wallets which the business entity supports. */\n supportedDigitalWallets: Array<DigitalWallet>;\n};\n\n/** Decides the distribution of results. */\nexport enum PredictiveSearchLimitScope {\n /** Return results up to limit across all types. */\n All = \"ALL\",\n /** Return results up to limit per type. */\n Each = \"EACH\",\n}\n\n/**\n * A predictive search result represents a list of products, collections, pages, articles, and query suggestions\n * that matches the predictive search query.\n *\n */\nexport type PredictiveSearchResult = {\n __typename?: \"PredictiveSearchResult\";\n /** The articles that match the search query. */\n articles: Array<Article>;\n /** The articles that match the search query. */\n collections: Array<Collection>;\n /** The pages that match the search query. */\n pages: Array<Page>;\n /** The products that match the search query. */\n products: Array<Product>;\n /** The query suggestions that are relevant to the search query. */\n queries: Array<SearchQuerySuggestion>;\n};\n\n/** The types of search items to perform predictive search on. */\nexport enum PredictiveSearchType {\n /** Returns matching articles. */\n Article = \"ARTICLE\",\n /** Returns matching collections. */\n Collection = \"COLLECTION\",\n /** Returns matching pages. */\n Page = \"PAGE\",\n /** Returns matching products. */\n Product = \"PRODUCT\",\n /** Returns matching query strings. */\n Query = \"QUERY\",\n}\n\n/** The preferred delivery methods such as shipping, local pickup or through pickup points. */\nexport enum PreferenceDeliveryMethodType {\n /** A delivery method used to let buyers collect purchases at designated locations like parcel lockers. */\n PickupPoint = \"PICKUP_POINT\",\n /** A delivery method used to let buyers receive items directly from a specific location within an area. */\n PickUp = \"PICK_UP\",\n /** A delivery method used to send items directly to a buyer’s specified address. */\n Shipping = \"SHIPPING\",\n}\n\n/**\n * The input fields for a filter used to view a subset of products in a collection matching a specific price range.\n *\n */\nexport type PriceRangeFilter = {\n /** The maximum price in the range. Empty indicates no max price. */\n max?: InputMaybe<Scalars[\"Float\"][\"input\"]>;\n /** The minimum price in the range. Defaults to zero. */\n min?: InputMaybe<Scalars[\"Float\"][\"input\"]>;\n};\n\n/** The value of the percentage pricing object. */\nexport type PricingPercentageValue = {\n __typename?: \"PricingPercentageValue\";\n /** The percentage value of the object. */\n percentage: Scalars[\"Float\"][\"output\"];\n};\n\n/** The price value (fixed or percentage) for a discount application. */\nexport type PricingValue = MoneyV2 | PricingPercentageValue;\n\n/**\n * The `Product` object lets you manage products in a merchant’s store.\n *\n * Products are the goods and services that merchants offer to customers.\n * They can include various details such as title, description, price, images, and options such as size or color.\n * You can use [product variants](/docs/api/storefront/latest/objects/ProductVariant)\n * to create or update different versions of the same product.\n * You can also add or update product [media](/docs/api/storefront/latest/interfaces/Media).\n * Products can be organized by grouping them into a [collection](/docs/api/storefront/latest/objects/Collection).\n *\n * Learn more about working with [products and collections](/docs/storefronts/headless/building-with-the-storefront-api/products-collections).\n *\n */\nexport type Product = HasMetafields &\n Node &\n OnlineStorePublishable &\n Trackable & {\n __typename?: \"Product\";\n /**\n * A list of variants whose selected options differ with the provided selected options by one, ordered by variant id.\n * If selected options are not provided, adjacent variants to the first available variant is returned.\n *\n * Note that this field returns an array of variants. In most cases, the number of variants in this array will be low.\n * However, with a low number of options and a high number of values per option, the number of variants returned\n * here can be high. In such cases, it recommended to avoid using this field.\n *\n * This list of variants can be used in combination with the `options` field to build a rich variant picker that\n * includes variant availability or other variant information.\n *\n */\n adjacentVariants: Array<ProductVariant>;\n /** Indicates if at least one product variant is available for sale. */\n availableForSale: Scalars[\"Boolean\"][\"output\"];\n /** The category of a product from [Shopify's Standard Product Taxonomy](https://shopify.github.io/product-taxonomy/releases/unstable/?categoryId=sg-4-17-2-17). */\n category?: Maybe<TaxonomyCategory>;\n /** A list of [collections](/docs/api/storefront/latest/objects/Collection) that include the product. */\n collections: CollectionConnection;\n /** The [compare-at price range](https://help.shopify.com/manual/products/details/product-pricing/sale-pricing) of the product in the shop's default currency. */\n compareAtPriceRange: ProductPriceRange;\n /** The date and time when the product was created. */\n createdAt: Scalars[\"DateTime\"][\"output\"];\n /** A single-line description of the product, with [HTML tags](https://developer.mozilla.org/en-US/docs/Web/HTML) removed. */\n description: Scalars[\"String\"][\"output\"];\n /**\n * The description of the product, with\n * HTML tags. For example, the description might include\n * bold `<strong></strong>` and italic `<i></i>` text.\n *\n */\n descriptionHtml: Scalars[\"HTML\"][\"output\"];\n /**\n * An encoded string containing all option value combinations\n * with a corresponding variant that is currently available for sale.\n *\n * Integers represent option and values:\n * [0,1] represents option_value at array index 0 for the option at array index 0\n *\n * `:`, `,`, ` ` and `-` are control characters.\n * `:` indicates a new option. ex: 0:1 indicates value 0 for the option in position 1, value 1 for the option in position 2.\n * `,` indicates the end of a repeated prefix, mulitple consecutive commas indicate the end of multiple repeated prefixes.\n * ` ` indicates a gap in the sequence of option values. ex: 0 4 indicates option values in position 0 and 4 are present.\n * `-` indicates a continuous range of option values. ex: 0 1-3 4\n *\n * Decoding process:\n *\n * Example options: [Size, Color, Material]\n * Example values: [[Small, Medium, Large], [Red, Blue], [Cotton, Wool]]\n * Example encoded string: \"0:0:0,1:0-1,,1:0:0-1,1:1,,2:0:1,1:0,,\"\n *\n * Step 1: Expand ranges into the numbers they represent: \"0:0:0,1:0 1,,1:0:0 1,1:1,,2:0:1,1:0,,\"\n * Step 2: Expand repeated prefixes: \"0:0:0,0:1:0 1,1:0:0 1,1:1:1,2:0:1,2:1:0,\"\n * Step 3: Expand shared prefixes so data is encoded as a string: \"0:0:0,0:1:0,0:1:1,1:0:0,1:0:1,1:1:1,2:0:1,2:1:0,\"\n * Step 4: Map to options + option values to determine existing variants:\n *\n * [Small, Red, Cotton] (0:0:0), [Small, Blue, Cotton] (0:1:0), [Small, Blue, Wool] (0:1:1),\n * [Medium, Red, Cotton] (1:0:0), [Medium, Red, Wool] (1:0:1), [Medium, Blue, Wool] (1:1:1),\n * [Large, Red, Wool] (2:0:1), [Large, Blue, Cotton] (2:1:0).\n *\n *\n */\n encodedVariantAvailability?: Maybe<Scalars[\"String\"][\"output\"]>;\n /**\n * An encoded string containing all option value combinations with a corresponding variant.\n *\n * Integers represent option and values:\n * [0,1] represents option_value at array index 0 for the option at array index 0\n *\n * `:`, `,`, ` ` and `-` are control characters.\n * `:` indicates a new option. ex: 0:1 indicates value 0 for the option in position 1, value 1 for the option in position 2.\n * `,` indicates the end of a repeated prefix, mulitple consecutive commas indicate the end of multiple repeated prefixes.\n * ` ` indicates a gap in the sequence of option values. ex: 0 4 indicates option values in position 0 and 4 are present.\n * `-` indicates a continuous range of option values. ex: 0 1-3 4\n *\n * Decoding process:\n *\n * Example options: [Size, Color, Material]\n * Example values: [[Small, Medium, Large], [Red, Blue], [Cotton, Wool]]\n * Example encoded string: \"0:0:0,1:0-1,,1:0:0-1,1:1,,2:0:1,1:0,,\"\n *\n * Step 1: Expand ranges into the numbers they represent: \"0:0:0,1:0 1,,1:0:0 1,1:1,,2:0:1,1:0,,\"\n * Step 2: Expand repeated prefixes: \"0:0:0,0:1:0 1,1:0:0 1,1:1:1,2:0:1,2:1:0,\"\n * Step 3: Expand shared prefixes so data is encoded as a string: \"0:0:0,0:1:0,0:1:1,1:0:0,1:0:1,1:1:1,2:0:1,2:1:0,\"\n * Step 4: Map to options + option values to determine existing variants:\n *\n * [Small, Red, Cotton] (0:0:0), [Small, Blue, Cotton] (0:1:0), [Small, Blue, Wool] (0:1:1),\n * [Medium, Red, Cotton] (1:0:0), [Medium, Red, Wool] (1:0:1), [Medium, Blue, Wool] (1:1:1),\n * [Large, Red, Wool] (2:0:1), [Large, Blue, Cotton] (2:1:0).\n *\n *\n */\n encodedVariantExistence?: Maybe<Scalars[\"String\"][\"output\"]>;\n /**\n * The featured image for the product.\n *\n * This field is functionally equivalent to `images(first: 1)`.\n *\n */\n featuredImage?: Maybe<Image>;\n /**\n * A unique, human-readable string of the product's title.\n * A handle can contain letters, hyphens (`-`), and numbers, but no spaces.\n * The handle is used in the online store URL for the product.\n *\n */\n handle: Scalars[\"String\"][\"output\"];\n /** A globally-unique ID. */\n id: Scalars[\"ID\"][\"output\"];\n /** List of images associated with the product. */\n images: ImageConnection;\n /** Whether the product is a gift card. */\n isGiftCard: Scalars[\"Boolean\"][\"output\"];\n /** The [media](/docs/apps/build/online-store/product-media) that are associated with the product. Valid media are images, 3D models, videos. */\n media: MediaConnection;\n /** A [custom field](https://shopify.dev/docs/apps/build/custom-data), including its `namespace` and `key`, that's associated with a Shopify resource for the purposes of adding and storing additional information. */\n metafield?: Maybe<Metafield>;\n /** A list of [custom fields](/docs/apps/build/custom-data) that a merchant associates with a Shopify resource. */\n metafields: Array<Maybe<Metafield>>;\n /**\n * The product's URL on the online store.\n * If `null`, then the product isn't published to the online store sales channel.\n *\n */\n onlineStoreUrl?: Maybe<Scalars[\"URL\"][\"output\"]>;\n /** A list of product options. The limit is defined by the [shop's resource limits for product options](/docs/api/admin-graphql/latest/objects/Shop#field-resourcelimits) (`Shop.resourceLimits.maxProductOptions`). */\n options: Array<ProductOption>;\n /**\n * The minimum and maximum prices of a product, expressed in decimal numbers.\n * For example, if the product is priced between $10.00 and $50.00,\n * then the price range is $10.00 - $50.00.\n *\n */\n priceRange: ProductPriceRange;\n /**\n * The [product type](https://help.shopify.com/manual/products/details/product-type)\n * that merchants define.\n *\n */\n productType: Scalars[\"String\"][\"output\"];\n /** The date and time when the product was published to the channel. */\n publishedAt: Scalars[\"DateTime\"][\"output\"];\n /** Whether the product can only be purchased with a [selling plan](/docs/apps/build/purchase-options/subscriptions/selling-plans). Products that are sold on subscription (`requiresSellingPlan: true`) can be updated only for online stores. If you update a product to be subscription-only (`requiresSellingPlan:false`), then the product is unpublished from all channels, except the online store. */\n requiresSellingPlan: Scalars[\"Boolean\"][\"output\"];\n /**\n * Find an active product variant based on selected options, availability or the first variant.\n *\n * All arguments are optional. If no selected options are provided, the first available variant is returned.\n * If no variants are available, the first variant is returned.\n *\n */\n selectedOrFirstAvailableVariant?: Maybe<ProductVariant>;\n /** A list of all [selling plan groups](/docs/apps/build/purchase-options/subscriptions/selling-plans/build-a-selling-plan) that are associated with the product either directly, or through the product's variants. */\n sellingPlanGroups: SellingPlanGroupConnection;\n /**\n * The [SEO title and description](https://help.shopify.com/manual/promoting-marketing/seo/adding-keywords)\n * that are associated with a product.\n *\n */\n seo: Seo;\n /**\n * A comma-separated list of searchable keywords that are\n * associated with the product. For example, a merchant might apply the `sports`\n * and `summer` tags to products that are associated with sportwear for summer.\n * Updating `tags` overwrites any existing tags that were previously added to the product.\n * To add new tags without overwriting existing tags,\n * use the GraphQL Admin API's [`tagsAdd`](/docs/api/admin-graphql/latest/mutations/tagsadd)\n * mutation.\n *\n */\n tags: Array<Scalars[\"String\"][\"output\"]>;\n /**\n * The name for the product that displays to customers. The title is used to construct the product's handle.\n * For example, if a product is titled \"Black Sunglasses\", then the handle is `black-sunglasses`.\n *\n */\n title: Scalars[\"String\"][\"output\"];\n /** The quantity of inventory that's in stock. */\n totalInventory?: Maybe<Scalars[\"Int\"][\"output\"]>;\n /** URL parameters to be added to a page URL to track the origin of on-site search traffic for [analytics reporting](https://help.shopify.com/manual/reports-and-analytics/shopify-reports/report-types/default-reports/behaviour-reports). Returns a result when accessed through the [search](https://shopify.dev/docs/api/storefront/current/queries/search) or [predictiveSearch](https://shopify.dev/docs/api/storefront/current/queries/predictiveSearch) queries, otherwise returns null. */\n trackingParameters?: Maybe<Scalars[\"String\"][\"output\"]>;\n /**\n * The date and time when the product was last modified.\n * A product's `updatedAt` value can change for different reasons. For example, if an order\n * is placed for a product that has inventory tracking set up, then the inventory adjustment\n * is counted as an update.\n *\n */\n updatedAt: Scalars[\"DateTime\"][\"output\"];\n /**\n * Find a product’s variant based on its selected options.\n * This is useful for converting a user’s selection of product options into a single matching variant.\n * If there is not a variant for the selected options, `null` will be returned.\n *\n */\n variantBySelectedOptions?: Maybe<ProductVariant>;\n /** A list of [variants](/docs/api/storefront/latest/objects/ProductVariant) that are associated with the product. */\n variants: ProductVariantConnection;\n /** The number of [variants](/docs/api/storefront/latest/objects/ProductVariant) that are associated with the product. */\n variantsCount?: Maybe<Count>;\n /** The name of the product's vendor. */\n vendor: Scalars[\"String\"][\"output\"];\n };\n\n/**\n * The `Product` object lets you manage products in a merchant’s store.\n *\n * Products are the goods and services that merchants offer to customers.\n * They can include various details such as title, description, price, images, and options such as size or color.\n * You can use [product variants](/docs/api/storefront/latest/objects/ProductVariant)\n * to create or update different versions of the same product.\n * You can also add or update product [media](/docs/api/storefront/latest/interfaces/Media).\n * Products can be organized by grouping them into a [collection](/docs/api/storefront/latest/objects/Collection).\n *\n * Learn more about working with [products and collections](/docs/storefronts/headless/building-with-the-storefront-api/products-collections).\n *\n */\nexport type ProductAdjacentVariantsArgs = {\n caseInsensitiveMatch?: InputMaybe<Scalars[\"Boolean\"][\"input\"]>;\n ignoreUnknownOptions?: InputMaybe<Scalars[\"Boolean\"][\"input\"]>;\n selectedOptions?: InputMaybe<Array<SelectedOptionInput>>;\n};\n\n/**\n * The `Product` object lets you manage products in a merchant’s store.\n *\n * Products are the goods and services that merchants offer to customers.\n * They can include various details such as title, description, price, images, and options such as size or color.\n * You can use [product variants](/docs/api/storefront/latest/objects/ProductVariant)\n * to create or update different versions of the same product.\n * You can also add or update product [media](/docs/api/storefront/latest/interfaces/Media).\n * Products can be organized by grouping them into a [collection](/docs/api/storefront/latest/objects/Collection).\n *\n * Learn more about working with [products and collections](/docs/storefronts/headless/building-with-the-storefront-api/products-collections).\n *\n */\nexport type ProductCollectionsArgs = {\n after?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n before?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n first?: InputMaybe<Scalars[\"Int\"][\"input\"]>;\n last?: InputMaybe<Scalars[\"Int\"][\"input\"]>;\n reverse?: InputMaybe<Scalars[\"Boolean\"][\"input\"]>;\n};\n\n/**\n * The `Product` object lets you manage products in a merchant’s store.\n *\n * Products are the goods and services that merchants offer to customers.\n * They can include various details such as title, description, price, images, and options such as size or color.\n * You can use [product variants](/docs/api/storefront/latest/objects/ProductVariant)\n * to create or update different versions of the same product.\n * You can also add or update product [media](/docs/api/storefront/latest/interfaces/Media).\n * Products can be organized by grouping them into a [collection](/docs/api/storefront/latest/objects/Collection).\n *\n * Learn more about working with [products and collections](/docs/storefronts/headless/building-with-the-storefront-api/products-collections).\n *\n */\nexport type ProductDescriptionArgs = {\n truncateAt?: InputMaybe<Scalars[\"Int\"][\"input\"]>;\n};\n\n/**\n * The `Product` object lets you manage products in a merchant’s store.\n *\n * Products are the goods and services that merchants offer to customers.\n * They can include various details such as title, description, price, images, and options such as size or color.\n * You can use [product variants](/docs/api/storefront/latest/objects/ProductVariant)\n * to create or update different versions of the same product.\n * You can also add or update product [media](/docs/api/storefront/latest/interfaces/Media).\n * Products can be organized by grouping them into a [collection](/docs/api/storefront/latest/objects/Collection).\n *\n * Learn more about working with [products and collections](/docs/storefronts/headless/building-with-the-storefront-api/products-collections).\n *\n */\nexport type ProductImagesArgs = {\n after?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n before?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n first?: InputMaybe<Scalars[\"Int\"][\"input\"]>;\n last?: InputMaybe<Scalars[\"Int\"][\"input\"]>;\n reverse?: InputMaybe<Scalars[\"Boolean\"][\"input\"]>;\n sortKey?: InputMaybe<ProductImageSortKeys>;\n};\n\n/**\n * The `Product` object lets you manage products in a merchant’s store.\n *\n * Products are the goods and services that merchants offer to customers.\n * They can include various details such as title, description, price, images, and options such as size or color.\n * You can use [product variants](/docs/api/storefront/latest/objects/ProductVariant)\n * to create or update different versions of the same product.\n * You can also add or update product [media](/docs/api/storefront/latest/interfaces/Media).\n * Products can be organized by grouping them into a [collection](/docs/api/storefront/latest/objects/Collection).\n *\n * Learn more about working with [products and collections](/docs/storefronts/headless/building-with-the-storefront-api/products-collections).\n *\n */\nexport type ProductMediaArgs = {\n after?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n before?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n first?: InputMaybe<Scalars[\"Int\"][\"input\"]>;\n last?: InputMaybe<Scalars[\"Int\"][\"input\"]>;\n reverse?: InputMaybe<Scalars[\"Boolean\"][\"input\"]>;\n sortKey?: InputMaybe<ProductMediaSortKeys>;\n};\n\n/**\n * The `Product` object lets you manage products in a merchant’s store.\n *\n * Products are the goods and services that merchants offer to customers.\n * They can include various details such as title, description, price, images, and options such as size or color.\n * You can use [product variants](/docs/api/storefront/latest/objects/ProductVariant)\n * to create or update different versions of the same product.\n * You can also add or update product [media](/docs/api/storefront/latest/interfaces/Media).\n * Products can be organized by grouping them into a [collection](/docs/api/storefront/latest/objects/Collection).\n *\n * Learn more about working with [products and collections](/docs/storefronts/headless/building-with-the-storefront-api/products-collections).\n *\n */\nexport type ProductMetafieldArgs = {\n key: Scalars[\"String\"][\"input\"];\n namespace?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n};\n\n/**\n * The `Product` object lets you manage products in a merchant’s store.\n *\n * Products are the goods and services that merchants offer to customers.\n * They can include various details such as title, description, price, images, and options such as size or color.\n * You can use [product variants](/docs/api/storefront/latest/objects/ProductVariant)\n * to create or update different versions of the same product.\n * You can also add or update product [media](/docs/api/storefront/latest/interfaces/Media).\n * Products can be organized by grouping them into a [collection](/docs/api/storefront/latest/objects/Collection).\n *\n * Learn more about working with [products and collections](/docs/storefronts/headless/building-with-the-storefront-api/products-collections).\n *\n */\nexport type ProductMetafieldsArgs = {\n identifiers: Array<HasMetafieldsIdentifier>;\n};\n\n/**\n * The `Product` object lets you manage products in a merchant’s store.\n *\n * Products are the goods and services that merchants offer to customers.\n * They can include various details such as title, description, price, images, and options such as size or color.\n * You can use [product variants](/docs/api/storefront/latest/objects/ProductVariant)\n * to create or update different versions of the same product.\n * You can also add or update product [media](/docs/api/storefront/latest/interfaces/Media).\n * Products can be organized by grouping them into a [collection](/docs/api/storefront/latest/objects/Collection).\n *\n * Learn more about working with [products and collections](/docs/storefronts/headless/building-with-the-storefront-api/products-collections).\n *\n */\nexport type ProductOptionsArgs = {\n first?: InputMaybe<Scalars[\"Int\"][\"input\"]>;\n};\n\n/**\n * The `Product` object lets you manage products in a merchant’s store.\n *\n * Products are the goods and services that merchants offer to customers.\n * They can include various details such as title, description, price, images, and options such as size or color.\n * You can use [product variants](/docs/api/storefront/latest/objects/ProductVariant)\n * to create or update different versions of the same product.\n * You can also add or update product [media](/docs/api/storefront/latest/interfaces/Media).\n * Products can be organized by grouping them into a [collection](/docs/api/storefront/latest/objects/Collection).\n *\n * Learn more about working with [products and collections](/docs/storefronts/headless/building-with-the-storefront-api/products-collections).\n *\n */\nexport type ProductSelectedOrFirstAvailableVariantArgs = {\n caseInsensitiveMatch?: InputMaybe<Scalars[\"Boolean\"][\"input\"]>;\n ignoreUnknownOptions?: InputMaybe<Scalars[\"Boolean\"][\"input\"]>;\n selectedOptions?: InputMaybe<Array<SelectedOptionInput>>;\n};\n\n/**\n * The `Product` object lets you manage products in a merchant’s store.\n *\n * Products are the goods and services that merchants offer to customers.\n * They can include various details such as title, description, price, images, and options such as size or color.\n * You can use [product variants](/docs/api/storefront/latest/objects/ProductVariant)\n * to create or update different versions of the same product.\n * You can also add or update product [media](/docs/api/storefront/latest/interfaces/Media).\n * Products can be organized by grouping them into a [collection](/docs/api/storefront/latest/objects/Collection).\n *\n * Learn more about working with [products and collections](/docs/storefronts/headless/building-with-the-storefront-api/products-collections).\n *\n */\nexport type ProductSellingPlanGroupsArgs = {\n after?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n before?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n first?: InputMaybe<Scalars[\"Int\"][\"input\"]>;\n last?: InputMaybe<Scalars[\"Int\"][\"input\"]>;\n reverse?: InputMaybe<Scalars[\"Boolean\"][\"input\"]>;\n};\n\n/**\n * The `Product` object lets you manage products in a merchant’s store.\n *\n * Products are the goods and services that merchants offer to customers.\n * They can include various details such as title, description, price, images, and options such as size or color.\n * You can use [product variants](/docs/api/storefront/latest/objects/ProductVariant)\n * to create or update different versions of the same product.\n * You can also add or update product [media](/docs/api/storefront/latest/interfaces/Media).\n * Products can be organized by grouping them into a [collection](/docs/api/storefront/latest/objects/Collection).\n *\n * Learn more about working with [products and collections](/docs/storefronts/headless/building-with-the-storefront-api/products-collections).\n *\n */\nexport type ProductVariantBySelectedOptionsArgs = {\n caseInsensitiveMatch?: InputMaybe<Scalars[\"Boolean\"][\"input\"]>;\n ignoreUnknownOptions?: InputMaybe<Scalars[\"Boolean\"][\"input\"]>;\n selectedOptions: Array<SelectedOptionInput>;\n};\n\n/**\n * The `Product` object lets you manage products in a merchant’s store.\n *\n * Products are the goods and services that merchants offer to customers.\n * They can include various details such as title, description, price, images, and options such as size or color.\n * You can use [product variants](/docs/api/storefront/latest/objects/ProductVariant)\n * to create or update different versions of the same product.\n * You can also add or update product [media](/docs/api/storefront/latest/interfaces/Media).\n * Products can be organized by grouping them into a [collection](/docs/api/storefront/latest/objects/Collection).\n *\n * Learn more about working with [products and collections](/docs/storefronts/headless/building-with-the-storefront-api/products-collections).\n *\n */\nexport type ProductVariantsArgs = {\n after?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n before?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n first?: InputMaybe<Scalars[\"Int\"][\"input\"]>;\n last?: InputMaybe<Scalars[\"Int\"][\"input\"]>;\n reverse?: InputMaybe<Scalars[\"Boolean\"][\"input\"]>;\n sortKey?: InputMaybe<ProductVariantSortKeys>;\n};\n\n/** The set of valid sort keys for the ProductCollection query. */\nexport enum ProductCollectionSortKeys {\n /** Sort by the `best-selling` value. */\n BestSelling = \"BEST_SELLING\",\n /** Sort by the `collection-default` value. */\n CollectionDefault = \"COLLECTION_DEFAULT\",\n /** Sort by the `created` value. */\n Created = \"CREATED\",\n /** Sort by the `id` value. */\n Id = \"ID\",\n /** Sort by the `manual` value. */\n Manual = \"MANUAL\",\n /** Sort by the `price` value. */\n Price = \"PRICE\",\n /**\n * Sort by relevance to the search terms when the `query` parameter is specified on the connection.\n * Don't use this sort key when no search query is specified.\n *\n */\n Relevance = \"RELEVANCE\",\n /** Sort by the `title` value. */\n Title = \"TITLE\",\n}\n\n/**\n * An auto-generated type for paginating through multiple Products.\n *\n */\nexport type ProductConnection = {\n __typename?: \"ProductConnection\";\n /** A list of edges. */\n edges: Array<ProductEdge>;\n /** A list of available filters. */\n filters: Array<Filter>;\n /** A list of the nodes contained in ProductEdge. */\n nodes: Array<Product>;\n /** Information to aid in pagination. */\n pageInfo: PageInfo;\n};\n\n/**\n * An auto-generated type which holds one Product and a cursor during pagination.\n *\n */\nexport type ProductEdge = {\n __typename?: \"ProductEdge\";\n /** A cursor for use in pagination. */\n cursor: Scalars[\"String\"][\"output\"];\n /** The item at the end of ProductEdge. */\n node: Product;\n};\n\n/**\n * The input fields for a filter used to view a subset of products in a collection.\n * By default, the `available` and `price` filters are enabled. Filters are customized with the Shopify Search & Discovery app.\n * Learn more about [customizing storefront filtering](https://help.shopify.com/manual/online-store/themes/customizing-themes/storefront-filters).\n *\n */\nexport type ProductFilter = {\n /** Filter on if the product is available for sale. */\n available?: InputMaybe<Scalars[\"Boolean\"][\"input\"]>;\n /** A product category to filter on. */\n category?: InputMaybe<CategoryFilter>;\n /** A range of prices to filter with-in. */\n price?: InputMaybe<PriceRangeFilter>;\n /** A product metafield to filter on. */\n productMetafield?: InputMaybe<MetafieldFilter>;\n /** The product type to filter on. */\n productType?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n /** The product vendor to filter on. */\n productVendor?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n /** A product tag to filter on. */\n tag?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n /** A standard product attribute metafield to filter on. */\n taxonomyMetafield?: InputMaybe<TaxonomyMetafieldFilter>;\n /** A variant metafield to filter on. */\n variantMetafield?: InputMaybe<MetafieldFilter>;\n /** A variant option to filter on. */\n variantOption?: InputMaybe<VariantOptionFilter>;\n};\n\n/** The set of valid sort keys for the ProductImage query. */\nexport enum ProductImageSortKeys {\n /** Sort by the `created_at` value. */\n CreatedAt = \"CREATED_AT\",\n /** Sort by the `id` value. */\n Id = \"ID\",\n /** Sort by the `position` value. */\n Position = \"POSITION\",\n /**\n * Sort by relevance to the search terms when the `query` parameter is specified on the connection.\n * Don't use this sort key when no search query is specified.\n *\n */\n Relevance = \"RELEVANCE\",\n}\n\n/** The set of valid sort keys for the ProductMedia query. */\nexport enum ProductMediaSortKeys {\n /** Sort by the `id` value. */\n Id = \"ID\",\n /** Sort by the `position` value. */\n Position = \"POSITION\",\n /**\n * Sort by relevance to the search terms when the `query` parameter is specified on the connection.\n * Don't use this sort key when no search query is specified.\n *\n */\n Relevance = \"RELEVANCE\",\n}\n\n/**\n * Product property names like \"Size\", \"Color\", and \"Material\" that the customers can select.\n * Variants are selected based on permutations of these options.\n * 255 characters limit each.\n *\n */\nexport type ProductOption = Node & {\n __typename?: \"ProductOption\";\n /** A globally-unique ID. */\n id: Scalars[\"ID\"][\"output\"];\n /** The product option’s name. */\n name: Scalars[\"String\"][\"output\"];\n /** The corresponding option value to the product option. */\n optionValues: Array<ProductOptionValue>;\n /**\n * The corresponding value to the product option name.\n * @deprecated Use `optionValues` instead.\n */\n values: Array<Scalars[\"String\"][\"output\"]>;\n};\n\n/**\n * The product option value names. For example, \"Red\", \"Blue\", and \"Green\" for a \"Color\" option.\n *\n */\nexport type ProductOptionValue = Node & {\n __typename?: \"ProductOptionValue\";\n /**\n * The product variant that combines this option value with the\n * lowest-position option values for all other options.\n *\n * This field will always return a variant, provided a variant including this option value exists.\n *\n */\n firstSelectableVariant?: Maybe<ProductVariant>;\n /** A globally-unique ID. */\n id: Scalars[\"ID\"][\"output\"];\n /** The name of the product option value. */\n name: Scalars[\"String\"][\"output\"];\n /** The swatch of the product option value. */\n swatch?: Maybe<ProductOptionValueSwatch>;\n};\n\n/**\n * The product option value swatch.\n *\n */\nexport type ProductOptionValueSwatch = {\n __typename?: \"ProductOptionValueSwatch\";\n /** The swatch color. */\n color?: Maybe<Scalars[\"Color\"][\"output\"]>;\n /** The swatch image. */\n image?: Maybe<Media>;\n};\n\n/** The price range of the product. */\nexport type ProductPriceRange = {\n __typename?: \"ProductPriceRange\";\n /** The highest variant's price. */\n maxVariantPrice: MoneyV2;\n /** The lowest variant's price. */\n minVariantPrice: MoneyV2;\n};\n\n/**\n * The recommendation intent that is used to generate product recommendations.\n * You can use intent to generate product recommendations according to different strategies.\n *\n */\nexport enum ProductRecommendationIntent {\n /** Offer customers products that are complementary to a product for which recommendations are to be fetched. An example is add-on products that display in a Pair it with section. */\n Complementary = \"COMPLEMENTARY\",\n /** Offer customers a mix of products that are similar or complementary to a product for which recommendations are to be fetched. An example is substitutable products that display in a You may also like section. */\n Related = \"RELATED\",\n}\n\n/** The set of valid sort keys for the Product query. */\nexport enum ProductSortKeys {\n /** Sort by the `best_selling` value. */\n BestSelling = \"BEST_SELLING\",\n /** Sort by the `created_at` value. */\n CreatedAt = \"CREATED_AT\",\n /** Sort by the `id` value. */\n Id = \"ID\",\n /** Sort by the `price` value. */\n Price = \"PRICE\",\n /** Sort by the `product_type` value. */\n ProductType = \"PRODUCT_TYPE\",\n /**\n * Sort by relevance to the search terms when the `query` parameter is specified on the connection.\n * Don't use this sort key when no search query is specified.\n *\n */\n Relevance = \"RELEVANCE\",\n /** Sort by the `title` value. */\n Title = \"TITLE\",\n /** Sort by the `updated_at` value. */\n UpdatedAt = \"UPDATED_AT\",\n /** Sort by the `vendor` value. */\n Vendor = \"VENDOR\",\n}\n\n/**\n * A product variant represents a different version of a product, such as differing sizes or differing colors.\n *\n */\nexport type ProductVariant = HasMetafields &\n Node & {\n __typename?: \"ProductVariant\";\n /** Indicates if the product variant is available for sale. */\n availableForSale: Scalars[\"Boolean\"][\"output\"];\n /** The barcode (for example, ISBN, UPC, or GTIN) associated with the variant. */\n barcode?: Maybe<Scalars[\"String\"][\"output\"]>;\n /** The compare at price of the variant. This can be used to mark a variant as on sale, when `compareAtPrice` is higher than `price`. */\n compareAtPrice?: Maybe<MoneyV2>;\n /**\n * The compare at price of the variant. This can be used to mark a variant as on sale, when `compareAtPriceV2` is higher than `priceV2`.\n * @deprecated Use `compareAtPrice` instead.\n */\n compareAtPriceV2?: Maybe<MoneyV2>;\n /**\n * List of bundles components included in the variant considering only fixed bundles.\n *\n */\n components: ProductVariantComponentConnection;\n /** Whether a product is out of stock but still available for purchase (used for backorders). */\n currentlyNotInStock: Scalars[\"Boolean\"][\"output\"];\n /**\n * List of bundles that include this variant considering only fixed bundles.\n *\n */\n groupedBy: ProductVariantConnection;\n /** A globally-unique ID. */\n id: Scalars[\"ID\"][\"output\"];\n /** Image associated with the product variant. This field falls back to the product image if no image is available. */\n image?: Maybe<Image>;\n /** A [custom field](https://shopify.dev/docs/apps/build/custom-data), including its `namespace` and `key`, that's associated with a Shopify resource for the purposes of adding and storing additional information. */\n metafield?: Maybe<Metafield>;\n /** A list of [custom fields](/docs/apps/build/custom-data) that a merchant associates with a Shopify resource. */\n metafields: Array<Maybe<Metafield>>;\n /** The product variant’s price. */\n price: MoneyV2;\n /**\n * The product variant’s price.\n * @deprecated Use `price` instead.\n */\n priceV2: MoneyV2;\n /** The product object that the product variant belongs to. */\n product: Product;\n /** The total sellable quantity of the variant for online sales channels. */\n quantityAvailable?: Maybe<Scalars[\"Int\"][\"output\"]>;\n /** A list of quantity breaks for the product variant. */\n quantityPriceBreaks: QuantityPriceBreakConnection;\n /** The quantity rule for the product variant in a given context. */\n quantityRule: QuantityRule;\n /**\n * Whether a product variant requires components. The default value is `false`.\n * If `true`, then the product variant can only be purchased as a parent bundle with components.\n *\n */\n requiresComponents: Scalars[\"Boolean\"][\"output\"];\n /** Whether a customer needs to provide a shipping address when placing an order for the product variant. */\n requiresShipping: Scalars[\"Boolean\"][\"output\"];\n /** List of product options applied to the variant. */\n selectedOptions: Array<SelectedOption>;\n /** Represents an association between a variant and a selling plan. Selling plan allocations describe which selling plans are available for each variant, and what their impact is on pricing. */\n sellingPlanAllocations: SellingPlanAllocationConnection;\n /** The Shop Pay Installments pricing information for the product variant. */\n shopPayInstallmentsPricing?: Maybe<ShopPayInstallmentsProductVariantPricing>;\n /** The SKU (stock keeping unit) associated with the variant. */\n sku?: Maybe<Scalars[\"String\"][\"output\"]>;\n /** The in-store pickup availability of this variant by location. */\n storeAvailability: StoreAvailabilityConnection;\n /** Whether tax is charged when the product variant is sold. */\n taxable: Scalars[\"Boolean\"][\"output\"];\n /** The product variant’s title. */\n title: Scalars[\"String\"][\"output\"];\n /** The unit price value for the variant based on the variant's measurement. */\n unitPrice?: Maybe<MoneyV2>;\n /** The unit price measurement for the variant. */\n unitPriceMeasurement?: Maybe<UnitPriceMeasurement>;\n /** The weight of the product variant in the unit system specified with `weight_unit`. */\n weight?: Maybe<Scalars[\"Float\"][\"output\"]>;\n /** Unit of measurement for weight. */\n weightUnit: WeightUnit;\n };\n\n/**\n * A product variant represents a different version of a product, such as differing sizes or differing colors.\n *\n */\nexport type ProductVariantComponentsArgs = {\n after?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n before?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n first?: InputMaybe<Scalars[\"Int\"][\"input\"]>;\n last?: InputMaybe<Scalars[\"Int\"][\"input\"]>;\n};\n\n/**\n * A product variant represents a different version of a product, such as differing sizes or differing colors.\n *\n */\nexport type ProductVariantGroupedByArgs = {\n after?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n before?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n first?: InputMaybe<Scalars[\"Int\"][\"input\"]>;\n last?: InputMaybe<Scalars[\"Int\"][\"input\"]>;\n};\n\n/**\n * A product variant represents a different version of a product, such as differing sizes or differing colors.\n *\n */\nexport type ProductVariantMetafieldArgs = {\n key: Scalars[\"String\"][\"input\"];\n namespace?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n};\n\n/**\n * A product variant represents a different version of a product, such as differing sizes or differing colors.\n *\n */\nexport type ProductVariantMetafieldsArgs = {\n identifiers: Array<HasMetafieldsIdentifier>;\n};\n\n/**\n * A product variant represents a different version of a product, such as differing sizes or differing colors.\n *\n */\nexport type ProductVariantQuantityPriceBreaksArgs = {\n after?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n before?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n first?: InputMaybe<Scalars[\"Int\"][\"input\"]>;\n last?: InputMaybe<Scalars[\"Int\"][\"input\"]>;\n};\n\n/**\n * A product variant represents a different version of a product, such as differing sizes or differing colors.\n *\n */\nexport type ProductVariantSellingPlanAllocationsArgs = {\n after?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n before?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n first?: InputMaybe<Scalars[\"Int\"][\"input\"]>;\n last?: InputMaybe<Scalars[\"Int\"][\"input\"]>;\n reverse?: InputMaybe<Scalars[\"Boolean\"][\"input\"]>;\n};\n\n/**\n * A product variant represents a different version of a product, such as differing sizes or differing colors.\n *\n */\nexport type ProductVariantStoreAvailabilityArgs = {\n after?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n before?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n first?: InputMaybe<Scalars[\"Int\"][\"input\"]>;\n last?: InputMaybe<Scalars[\"Int\"][\"input\"]>;\n near?: InputMaybe<GeoCoordinateInput>;\n reverse?: InputMaybe<Scalars[\"Boolean\"][\"input\"]>;\n};\n\n/**\n * Represents a component of a bundle variant.\n *\n */\nexport type ProductVariantComponent = {\n __typename?: \"ProductVariantComponent\";\n /** The product variant object that the component belongs to. */\n productVariant: ProductVariant;\n /** The quantity of component present in the bundle. */\n quantity: Scalars[\"Int\"][\"output\"];\n};\n\n/**\n * An auto-generated type for paginating through multiple ProductVariantComponents.\n *\n */\nexport type ProductVariantComponentConnection = {\n __typename?: \"ProductVariantComponentConnection\";\n /** A list of edges. */\n edges: Array<ProductVariantComponentEdge>;\n /** A list of the nodes contained in ProductVariantComponentEdge. */\n nodes: Array<ProductVariantComponent>;\n /** Information to aid in pagination. */\n pageInfo: PageInfo;\n};\n\n/**\n * An auto-generated type which holds one ProductVariantComponent and a cursor during pagination.\n *\n */\nexport type ProductVariantComponentEdge = {\n __typename?: \"ProductVariantComponentEdge\";\n /** A cursor for use in pagination. */\n cursor: Scalars[\"String\"][\"output\"];\n /** The item at the end of ProductVariantComponentEdge. */\n node: ProductVariantComponent;\n};\n\n/**\n * An auto-generated type for paginating through multiple ProductVariants.\n *\n */\nexport type ProductVariantConnection = {\n __typename?: \"ProductVariantConnection\";\n /** A list of edges. */\n edges: Array<ProductVariantEdge>;\n /** A list of the nodes contained in ProductVariantEdge. */\n nodes: Array<ProductVariant>;\n /** Information to aid in pagination. */\n pageInfo: PageInfo;\n};\n\n/**\n * An auto-generated type which holds one ProductVariant and a cursor during pagination.\n *\n */\nexport type ProductVariantEdge = {\n __typename?: \"ProductVariantEdge\";\n /** A cursor for use in pagination. */\n cursor: Scalars[\"String\"][\"output\"];\n /** The item at the end of ProductVariantEdge. */\n node: ProductVariant;\n};\n\n/** The set of valid sort keys for the ProductVariant query. */\nexport enum ProductVariantSortKeys {\n /** Sort by the `id` value. */\n Id = \"ID\",\n /** Sort by the `position` value. */\n Position = \"POSITION\",\n /**\n * Sort by relevance to the search terms when the `query` parameter is specified on the connection.\n * Don't use this sort key when no search query is specified.\n *\n */\n Relevance = \"RELEVANCE\",\n /** Sort by the `sku` value. */\n Sku = \"SKU\",\n /** Sort by the `title` value. */\n Title = \"TITLE\",\n}\n\n/** Represents information about the buyer that is interacting with the cart. */\nexport type PurchasingCompany = {\n __typename?: \"PurchasingCompany\";\n /** The company associated to the order or draft order. */\n company: Company;\n /** The company contact associated to the order or draft order. */\n contact?: Maybe<CompanyContact>;\n /** The company location associated to the order or draft order. */\n location: CompanyLocation;\n};\n\n/**\n * Quantity price breaks lets you offer different rates that are based on the\n * amount of a specific variant being ordered.\n *\n */\nexport type QuantityPriceBreak = {\n __typename?: \"QuantityPriceBreak\";\n /**\n * Minimum quantity required to reach new quantity break price.\n *\n */\n minimumQuantity: Scalars[\"Int\"][\"output\"];\n /**\n * The price of variant after reaching the minimum quanity.\n *\n */\n price: MoneyV2;\n};\n\n/**\n * An auto-generated type for paginating through multiple QuantityPriceBreaks.\n *\n */\nexport type QuantityPriceBreakConnection = {\n __typename?: \"QuantityPriceBreakConnection\";\n /** A list of edges. */\n edges: Array<QuantityPriceBreakEdge>;\n /** A list of the nodes contained in QuantityPriceBreakEdge. */\n nodes: Array<QuantityPriceBreak>;\n /** Information to aid in pagination. */\n pageInfo: PageInfo;\n};\n\n/**\n * An auto-generated type which holds one QuantityPriceBreak and a cursor during pagination.\n *\n */\nexport type QuantityPriceBreakEdge = {\n __typename?: \"QuantityPriceBreakEdge\";\n /** A cursor for use in pagination. */\n cursor: Scalars[\"String\"][\"output\"];\n /** The item at the end of QuantityPriceBreakEdge. */\n node: QuantityPriceBreak;\n};\n\n/**\n * The quantity rule for the product variant in a given context.\n *\n */\nexport type QuantityRule = {\n __typename?: \"QuantityRule\";\n /**\n * The value that specifies the quantity increment between minimum and maximum of the rule.\n * Only quantities divisible by this value will be considered valid.\n *\n * The increment must be lower than or equal to the minimum and the maximum, and both minimum and maximum\n * must be divisible by this value.\n *\n */\n increment: Scalars[\"Int\"][\"output\"];\n /**\n * An optional value that defines the highest allowed quantity purchased by the customer.\n * If defined, maximum must be lower than or equal to the minimum and must be a multiple of the increment.\n *\n */\n maximum?: Maybe<Scalars[\"Int\"][\"output\"]>;\n /**\n * The value that defines the lowest allowed quantity purchased by the customer.\n * The minimum must be a multiple of the quantity rule's increment.\n *\n */\n minimum: Scalars[\"Int\"][\"output\"];\n};\n\n/** The schema’s entry-point for queries. This acts as the public, top-level API from which all queries must start. */\nexport type QueryRoot = {\n __typename?: \"QueryRoot\";\n /** Fetch a specific Article by its ID. */\n article?: Maybe<Article>;\n /** List of the shop's articles. */\n articles: ArticleConnection;\n /** Fetch a specific `Blog` by one of its unique attributes. */\n blog?: Maybe<Blog>;\n /**\n * Find a blog by its handle.\n * @deprecated Use `blog` instead.\n */\n blogByHandle?: Maybe<Blog>;\n /** List of the shop's blogs. */\n blogs: BlogConnection;\n /**\n * Retrieve a cart by its ID. For more information, refer to\n * [Manage a cart with the Storefront API](https://shopify.dev/custom-storefronts/cart/manage).\n *\n */\n cart?: Maybe<Cart>;\n /**\n * A poll for the status of the cart checkout completion and order creation.\n *\n */\n cartCompletionAttempt?: Maybe<CartCompletionAttemptResult>;\n /** Fetch a specific `Collection` by one of its unique attributes. */\n collection?: Maybe<Collection>;\n /**\n * Find a collection by its handle.\n * @deprecated Use `collection` instead.\n */\n collectionByHandle?: Maybe<Collection>;\n /** List of the shop’s collections. */\n collections: CollectionConnection;\n /**\n * The customer associated with the given access token. Tokens are obtained by using the\n * [`customerAccessTokenCreate` mutation](https://shopify.dev/docs/api/storefront/latest/mutations/customerAccessTokenCreate).\n *\n */\n customer?: Maybe<Customer>;\n /** Returns the localized experiences configured for the shop. */\n localization: Localization;\n /**\n * List of the shop's locations that support in-store pickup.\n *\n * When sorting by distance, you must specify a location via the `near` argument.\n *\n *\n */\n locations: LocationConnection;\n /** Retrieve a [navigation menu](https://help.shopify.com/manual/online-store/menus-and-links) by its handle. */\n menu?: Maybe<Menu>;\n /** Fetch a specific Metaobject by one of its unique identifiers. */\n metaobject?: Maybe<Metaobject>;\n /** All active metaobjects for the shop. */\n metaobjects: MetaobjectConnection;\n /** Returns a specific node by ID. */\n node?: Maybe<Node>;\n /** Returns the list of nodes with the given IDs. */\n nodes: Array<Maybe<Node>>;\n /** Fetch a specific `Page` by one of its unique attributes. */\n page?: Maybe<Page>;\n /**\n * Find a page by its handle.\n * @deprecated Use `page` instead.\n */\n pageByHandle?: Maybe<Page>;\n /** List of the shop's pages. */\n pages: PageConnection;\n /** Settings related to payments. */\n paymentSettings: PaymentSettings;\n /** List of the predictive search results. */\n predictiveSearch?: Maybe<PredictiveSearchResult>;\n /** Fetch a specific `Product` by one of its unique attributes. */\n product?: Maybe<Product>;\n /**\n * Find a product by its handle.\n * @deprecated Use `product` instead.\n */\n productByHandle?: Maybe<Product>;\n /**\n * Find recommended products related to a given `product_id`.\n * To learn more about how recommendations are generated, see\n * [*Showing product recommendations on product pages*](https://help.shopify.com/themes/development/recommended-products).\n *\n */\n productRecommendations?: Maybe<Array<Product>>;\n /**\n * Tags added to products.\n * Additional access scope required: unauthenticated_read_product_tags.\n *\n */\n productTags: StringConnection;\n /** List of product types for the shop's products that are published to your app. */\n productTypes: StringConnection;\n /** Returns a list of the shop's products. For storefront search, use the [`search`](https://shopify.dev/docs/api/storefront/latest/queries/search) query. */\n products: ProductConnection;\n /** The list of public Storefront API versions, including supported, release candidate and unstable versions. */\n publicApiVersions: Array<ApiVersion>;\n /** List of the search results. */\n search: SearchResultItemConnection;\n /** The shop associated with the storefront access token. */\n shop: Shop;\n /** Contains all fields required to generate sitemaps. */\n sitemap: Sitemap;\n /** A list of redirects for a shop. */\n urlRedirects: UrlRedirectConnection;\n};\n\n/** The schema’s entry-point for queries. This acts as the public, top-level API from which all queries must start. */\nexport type QueryRootArticleArgs = {\n id: Scalars[\"ID\"][\"input\"];\n};\n\n/** The schema’s entry-point for queries. This acts as the public, top-level API from which all queries must start. */\nexport type QueryRootArticlesArgs = {\n after?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n before?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n first?: InputMaybe<Scalars[\"Int\"][\"input\"]>;\n last?: InputMaybe<Scalars[\"Int\"][\"input\"]>;\n query?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n reverse?: InputMaybe<Scalars[\"Boolean\"][\"input\"]>;\n sortKey?: InputMaybe<ArticleSortKeys>;\n};\n\n/** The schema’s entry-point for queries. This acts as the public, top-level API from which all queries must start. */\nexport type QueryRootBlogArgs = {\n handle?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n id?: InputMaybe<Scalars[\"ID\"][\"input\"]>;\n};\n\n/** The schema’s entry-point for queries. This acts as the public, top-level API from which all queries must start. */\nexport type QueryRootBlogByHandleArgs = {\n handle: Scalars[\"String\"][\"input\"];\n};\n\n/** The schema’s entry-point for queries. This acts as the public, top-level API from which all queries must start. */\nexport type QueryRootBlogsArgs = {\n after?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n before?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n first?: InputMaybe<Scalars[\"Int\"][\"input\"]>;\n last?: InputMaybe<Scalars[\"Int\"][\"input\"]>;\n query?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n reverse?: InputMaybe<Scalars[\"Boolean\"][\"input\"]>;\n sortKey?: InputMaybe<BlogSortKeys>;\n};\n\n/** The schema’s entry-point for queries. This acts as the public, top-level API from which all queries must start. */\nexport type QueryRootCartArgs = {\n id: Scalars[\"ID\"][\"input\"];\n};\n\n/** The schema’s entry-point for queries. This acts as the public, top-level API from which all queries must start. */\nexport type QueryRootCartCompletionAttemptArgs = {\n attemptId: Scalars[\"String\"][\"input\"];\n};\n\n/** The schema’s entry-point for queries. This acts as the public, top-level API from which all queries must start. */\nexport type QueryRootCollectionArgs = {\n handle?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n id?: InputMaybe<Scalars[\"ID\"][\"input\"]>;\n};\n\n/** The schema’s entry-point for queries. This acts as the public, top-level API from which all queries must start. */\nexport type QueryRootCollectionByHandleArgs = {\n handle: Scalars[\"String\"][\"input\"];\n};\n\n/** The schema’s entry-point for queries. This acts as the public, top-level API from which all queries must start. */\nexport type QueryRootCollectionsArgs = {\n after?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n before?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n first?: InputMaybe<Scalars[\"Int\"][\"input\"]>;\n last?: InputMaybe<Scalars[\"Int\"][\"input\"]>;\n query?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n reverse?: InputMaybe<Scalars[\"Boolean\"][\"input\"]>;\n sortKey?: InputMaybe<CollectionSortKeys>;\n};\n\n/** The schema’s entry-point for queries. This acts as the public, top-level API from which all queries must start. */\nexport type QueryRootCustomerArgs = {\n customerAccessToken: Scalars[\"String\"][\"input\"];\n};\n\n/** The schema’s entry-point for queries. This acts as the public, top-level API from which all queries must start. */\nexport type QueryRootLocationsArgs = {\n after?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n before?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n first?: InputMaybe<Scalars[\"Int\"][\"input\"]>;\n last?: InputMaybe<Scalars[\"Int\"][\"input\"]>;\n near?: InputMaybe<GeoCoordinateInput>;\n reverse?: InputMaybe<Scalars[\"Boolean\"][\"input\"]>;\n sortKey?: InputMaybe<LocationSortKeys>;\n};\n\n/** The schema’s entry-point for queries. This acts as the public, top-level API from which all queries must start. */\nexport type QueryRootMenuArgs = {\n handle: Scalars[\"String\"][\"input\"];\n};\n\n/** The schema’s entry-point for queries. This acts as the public, top-level API from which all queries must start. */\nexport type QueryRootMetaobjectArgs = {\n handle?: InputMaybe<MetaobjectHandleInput>;\n id?: InputMaybe<Scalars[\"ID\"][\"input\"]>;\n};\n\n/** The schema’s entry-point for queries. This acts as the public, top-level API from which all queries must start. */\nexport type QueryRootMetaobjectsArgs = {\n after?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n before?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n first?: InputMaybe<Scalars[\"Int\"][\"input\"]>;\n last?: InputMaybe<Scalars[\"Int\"][\"input\"]>;\n reverse?: InputMaybe<Scalars[\"Boolean\"][\"input\"]>;\n sortKey?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n type: Scalars[\"String\"][\"input\"];\n};\n\n/** The schema’s entry-point for queries. This acts as the public, top-level API from which all queries must start. */\nexport type QueryRootNodeArgs = {\n id: Scalars[\"ID\"][\"input\"];\n};\n\n/** The schema’s entry-point for queries. This acts as the public, top-level API from which all queries must start. */\nexport type QueryRootNodesArgs = {\n ids: Array<Scalars[\"ID\"][\"input\"]>;\n};\n\n/** The schema’s entry-point for queries. This acts as the public, top-level API from which all queries must start. */\nexport type QueryRootPageArgs = {\n handle?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n id?: InputMaybe<Scalars[\"ID\"][\"input\"]>;\n};\n\n/** The schema’s entry-point for queries. This acts as the public, top-level API from which all queries must start. */\nexport type QueryRootPageByHandleArgs = {\n handle: Scalars[\"String\"][\"input\"];\n};\n\n/** The schema’s entry-point for queries. This acts as the public, top-level API from which all queries must start. */\nexport type QueryRootPagesArgs = {\n after?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n before?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n first?: InputMaybe<Scalars[\"Int\"][\"input\"]>;\n last?: InputMaybe<Scalars[\"Int\"][\"input\"]>;\n query?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n reverse?: InputMaybe<Scalars[\"Boolean\"][\"input\"]>;\n sortKey?: InputMaybe<PageSortKeys>;\n};\n\n/** The schema’s entry-point for queries. This acts as the public, top-level API from which all queries must start. */\nexport type QueryRootPredictiveSearchArgs = {\n limit?: InputMaybe<Scalars[\"Int\"][\"input\"]>;\n limitScope?: InputMaybe<PredictiveSearchLimitScope>;\n query: Scalars[\"String\"][\"input\"];\n searchableFields?: InputMaybe<Array<SearchableField>>;\n types?: InputMaybe<Array<PredictiveSearchType>>;\n unavailableProducts?: InputMaybe<SearchUnavailableProductsType>;\n};\n\n/** The schema’s entry-point for queries. This acts as the public, top-level API from which all queries must start. */\nexport type QueryRootProductArgs = {\n handle?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n id?: InputMaybe<Scalars[\"ID\"][\"input\"]>;\n};\n\n/** The schema’s entry-point for queries. This acts as the public, top-level API from which all queries must start. */\nexport type QueryRootProductByHandleArgs = {\n handle: Scalars[\"String\"][\"input\"];\n};\n\n/** The schema’s entry-point for queries. This acts as the public, top-level API from which all queries must start. */\nexport type QueryRootProductRecommendationsArgs = {\n intent?: InputMaybe<ProductRecommendationIntent>;\n productHandle?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n productId?: InputMaybe<Scalars[\"ID\"][\"input\"]>;\n};\n\n/** The schema’s entry-point for queries. This acts as the public, top-level API from which all queries must start. */\nexport type QueryRootProductTagsArgs = {\n first: Scalars[\"Int\"][\"input\"];\n};\n\n/** The schema’s entry-point for queries. This acts as the public, top-level API from which all queries must start. */\nexport type QueryRootProductTypesArgs = {\n first: Scalars[\"Int\"][\"input\"];\n};\n\n/** The schema’s entry-point for queries. This acts as the public, top-level API from which all queries must start. */\nexport type QueryRootProductsArgs = {\n after?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n before?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n first?: InputMaybe<Scalars[\"Int\"][\"input\"]>;\n last?: InputMaybe<Scalars[\"Int\"][\"input\"]>;\n query?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n reverse?: InputMaybe<Scalars[\"Boolean\"][\"input\"]>;\n sortKey?: InputMaybe<ProductSortKeys>;\n};\n\n/** The schema’s entry-point for queries. This acts as the public, top-level API from which all queries must start. */\nexport type QueryRootSearchArgs = {\n after?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n before?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n first?: InputMaybe<Scalars[\"Int\"][\"input\"]>;\n last?: InputMaybe<Scalars[\"Int\"][\"input\"]>;\n prefix?: InputMaybe<SearchPrefixQueryType>;\n productFilters?: InputMaybe<Array<ProductFilter>>;\n query: Scalars[\"String\"][\"input\"];\n reverse?: InputMaybe<Scalars[\"Boolean\"][\"input\"]>;\n sortKey?: InputMaybe<SearchSortKeys>;\n types?: InputMaybe<Array<SearchType>>;\n unavailableProducts?: InputMaybe<SearchUnavailableProductsType>;\n};\n\n/** The schema’s entry-point for queries. This acts as the public, top-level API from which all queries must start. */\nexport type QueryRootSitemapArgs = {\n type: SitemapType;\n};\n\n/** The schema’s entry-point for queries. This acts as the public, top-level API from which all queries must start. */\nexport type QueryRootUrlRedirectsArgs = {\n after?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n before?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n first?: InputMaybe<Scalars[\"Int\"][\"input\"]>;\n last?: InputMaybe<Scalars[\"Int\"][\"input\"]>;\n query?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n reverse?: InputMaybe<Scalars[\"Boolean\"][\"input\"]>;\n};\n\n/** SEO information. */\nexport type Seo = {\n __typename?: \"SEO\";\n /** The meta description. */\n description?: Maybe<Scalars[\"String\"][\"output\"]>;\n /** The SEO title. */\n title?: Maybe<Scalars[\"String\"][\"output\"]>;\n};\n\n/**\n * Script discount applications capture the intentions of a discount that\n * was created by a Shopify Script.\n *\n */\nexport type ScriptDiscountApplication = DiscountApplication & {\n __typename?: \"ScriptDiscountApplication\";\n /** The method by which the discount's value is allocated to its entitled items. */\n allocationMethod: DiscountApplicationAllocationMethod;\n /** Which lines of targetType that the discount is allocated over. */\n targetSelection: DiscountApplicationTargetSelection;\n /** The type of line that the discount is applicable towards. */\n targetType: DiscountApplicationTargetType;\n /** The title of the application as defined by the Script. */\n title: Scalars[\"String\"][\"output\"];\n /** The value of the discount application. */\n value: PricingValue;\n};\n\n/** Specifies whether to perform a partial word match on the last search term. */\nexport enum SearchPrefixQueryType {\n /** Perform a partial word match on the last search term. */\n Last = \"LAST\",\n /** Don't perform a partial word match on the last search term. */\n None = \"NONE\",\n}\n\n/** A search query suggestion. */\nexport type SearchQuerySuggestion = Trackable & {\n __typename?: \"SearchQuerySuggestion\";\n /** The text of the search query suggestion with highlighted HTML tags. */\n styledText: Scalars[\"String\"][\"output\"];\n /** The text of the search query suggestion. */\n text: Scalars[\"String\"][\"output\"];\n /** URL parameters to be added to a page URL to track the origin of on-site search traffic for [analytics reporting](https://help.shopify.com/manual/reports-and-analytics/shopify-reports/report-types/default-reports/behaviour-reports). Returns a result when accessed through the [search](https://shopify.dev/docs/api/storefront/current/queries/search) or [predictiveSearch](https://shopify.dev/docs/api/storefront/current/queries/predictiveSearch) queries, otherwise returns null. */\n trackingParameters?: Maybe<Scalars[\"String\"][\"output\"]>;\n};\n\n/**\n * A search result that matches the search query.\n *\n */\nexport type SearchResultItem = Article | Page | Product;\n\n/**\n * An auto-generated type for paginating through multiple SearchResultItems.\n *\n */\nexport type SearchResultItemConnection = {\n __typename?: \"SearchResultItemConnection\";\n /** A list of edges. */\n edges: Array<SearchResultItemEdge>;\n /** A list of the nodes contained in SearchResultItemEdge. */\n nodes: Array<SearchResultItem>;\n /** Information to aid in pagination. */\n pageInfo: PageInfo;\n /** A list of available filters. */\n productFilters: Array<Filter>;\n /** The total number of results. */\n totalCount: Scalars[\"Int\"][\"output\"];\n};\n\n/**\n * An auto-generated type which holds one SearchResultItem and a cursor during pagination.\n *\n */\nexport type SearchResultItemEdge = {\n __typename?: \"SearchResultItemEdge\";\n /** A cursor for use in pagination. */\n cursor: Scalars[\"String\"][\"output\"];\n /** The item at the end of SearchResultItemEdge. */\n node: SearchResultItem;\n};\n\n/** The set of valid sort keys for the search query. */\nexport enum SearchSortKeys {\n /** Sort by the `price` value. */\n Price = \"PRICE\",\n /** Sort by relevance to the search terms. */\n Relevance = \"RELEVANCE\",\n}\n\n/** The types of search items to perform search within. */\nexport enum SearchType {\n /** Returns matching articles. */\n Article = \"ARTICLE\",\n /** Returns matching pages. */\n Page = \"PAGE\",\n /** Returns matching products. */\n Product = \"PRODUCT\",\n}\n\n/** Specifies whether to display results for unavailable products. */\nexport enum SearchUnavailableProductsType {\n /** Exclude unavailable products. */\n Hide = \"HIDE\",\n /** Show unavailable products after all other matching results. This is the default. */\n Last = \"LAST\",\n /** Show unavailable products in the order that they're found. */\n Show = \"SHOW\",\n}\n\n/** Specifies the list of resource fields to search. */\nexport enum SearchableField {\n /** Author of the page or article. */\n Author = \"AUTHOR\",\n /** Body of the page or article or product description or collection description. */\n Body = \"BODY\",\n /** Product type. */\n ProductType = \"PRODUCT_TYPE\",\n /** Tag associated with the product or article. */\n Tag = \"TAG\",\n /** Title of the page or article or product title or collection title. */\n Title = \"TITLE\",\n /** Variant barcode. */\n VariantsBarcode = \"VARIANTS_BARCODE\",\n /** Variant SKU. */\n VariantsSku = \"VARIANTS_SKU\",\n /** Variant title. */\n VariantsTitle = \"VARIANTS_TITLE\",\n /** Product vendor. */\n Vendor = \"VENDOR\",\n}\n\n/**\n * Properties used by customers to select a product variant.\n * Products can have multiple options, like different sizes or colors.\n *\n */\nexport type SelectedOption = {\n __typename?: \"SelectedOption\";\n /** The product option’s name. */\n name: Scalars[\"String\"][\"output\"];\n /** The product option’s value. */\n value: Scalars[\"String\"][\"output\"];\n};\n\n/** The input fields required for a selected option. */\nexport type SelectedOptionInput = {\n /** The product option’s name. */\n name: Scalars[\"String\"][\"input\"];\n /** The product option’s value. */\n value: Scalars[\"String\"][\"input\"];\n};\n\n/** Represents how products and variants can be sold and purchased. */\nexport type SellingPlan = HasMetafields & {\n __typename?: \"SellingPlan\";\n /** The billing policy for the selling plan. */\n billingPolicy?: Maybe<SellingPlanBillingPolicy>;\n /** The initial payment due for the purchase. */\n checkoutCharge: SellingPlanCheckoutCharge;\n /** The delivery policy for the selling plan. */\n deliveryPolicy?: Maybe<SellingPlanDeliveryPolicy>;\n /** The description of the selling plan. */\n description?: Maybe<Scalars[\"String\"][\"output\"]>;\n /** A globally-unique ID. */\n id: Scalars[\"ID\"][\"output\"];\n /** A [custom field](https://shopify.dev/docs/apps/build/custom-data), including its `namespace` and `key`, that's associated with a Shopify resource for the purposes of adding and storing additional information. */\n metafield?: Maybe<Metafield>;\n /** A list of [custom fields](/docs/apps/build/custom-data) that a merchant associates with a Shopify resource. */\n metafields: Array<Maybe<Metafield>>;\n /** The name of the selling plan. For example, '6 weeks of prepaid granola, delivered weekly'. */\n name: Scalars[\"String\"][\"output\"];\n /** The selling plan options available in the drop-down list in the storefront. For example, 'Delivery every week' or 'Delivery every 2 weeks' specifies the delivery frequency options for the product. Individual selling plans contribute their options to the associated selling plan group. For example, a selling plan group might have an option called `option1: Delivery every`. One selling plan in that group could contribute `option1: 2 weeks` with the pricing for that option, and another selling plan could contribute `option1: 4 weeks`, with different pricing. */\n options: Array<SellingPlanOption>;\n /** The price adjustments that a selling plan makes when a variant is purchased with a selling plan. */\n priceAdjustments: Array<SellingPlanPriceAdjustment>;\n /** Whether purchasing the selling plan will result in multiple deliveries. */\n recurringDeliveries: Scalars[\"Boolean\"][\"output\"];\n};\n\n/** Represents how products and variants can be sold and purchased. */\nexport type SellingPlanMetafieldArgs = {\n key: Scalars[\"String\"][\"input\"];\n namespace?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n};\n\n/** Represents how products and variants can be sold and purchased. */\nexport type SellingPlanMetafieldsArgs = {\n identifiers: Array<HasMetafieldsIdentifier>;\n};\n\n/** Represents an association between a variant and a selling plan. Selling plan allocations describe the options offered for each variant, and the price of the variant when purchased with a selling plan. */\nexport type SellingPlanAllocation = {\n __typename?: \"SellingPlanAllocation\";\n /** The checkout charge amount due for the purchase. */\n checkoutChargeAmount: MoneyV2;\n /** A list of price adjustments, with a maximum of two. When there are two, the first price adjustment goes into effect at the time of purchase, while the second one starts after a certain number of orders. A price adjustment represents how a selling plan affects pricing when a variant is purchased with a selling plan. Prices display in the customer's currency if the shop is configured for it. */\n priceAdjustments: Array<SellingPlanAllocationPriceAdjustment>;\n /** The remaining balance charge amount due for the purchase. */\n remainingBalanceChargeAmount: MoneyV2;\n /** A representation of how products and variants can be sold and purchased. For example, an individual selling plan could be '6 weeks of prepaid granola, delivered weekly'. */\n sellingPlan: SellingPlan;\n};\n\n/**\n * An auto-generated type for paginating through multiple SellingPlanAllocations.\n *\n */\nexport type SellingPlanAllocationConnection = {\n __typename?: \"SellingPlanAllocationConnection\";\n /** A list of edges. */\n edges: Array<SellingPlanAllocationEdge>;\n /** A list of the nodes contained in SellingPlanAllocationEdge. */\n nodes: Array<SellingPlanAllocation>;\n /** Information to aid in pagination. */\n pageInfo: PageInfo;\n};\n\n/**\n * An auto-generated type which holds one SellingPlanAllocation and a cursor during pagination.\n *\n */\nexport type SellingPlanAllocationEdge = {\n __typename?: \"SellingPlanAllocationEdge\";\n /** A cursor for use in pagination. */\n cursor: Scalars[\"String\"][\"output\"];\n /** The item at the end of SellingPlanAllocationEdge. */\n node: SellingPlanAllocation;\n};\n\n/** The resulting prices for variants when they're purchased with a specific selling plan. */\nexport type SellingPlanAllocationPriceAdjustment = {\n __typename?: \"SellingPlanAllocationPriceAdjustment\";\n /** The price of the variant when it's purchased without a selling plan for the same number of deliveries. For example, if a customer purchases 6 deliveries of $10.00 granola separately, then the price is 6 x $10.00 = $60.00. */\n compareAtPrice: MoneyV2;\n /** The effective price for a single delivery. For example, for a prepaid subscription plan that includes 6 deliveries at the price of $48.00, the per delivery price is $8.00. */\n perDeliveryPrice: MoneyV2;\n /** The price of the variant when it's purchased with a selling plan For example, for a prepaid subscription plan that includes 6 deliveries of $10.00 granola, where the customer gets 20% off, the price is 6 x $10.00 x 0.80 = $48.00. */\n price: MoneyV2;\n /** The resulting price per unit for the variant associated with the selling plan. If the variant isn't sold by quantity or measurement, then this field returns `null`. */\n unitPrice?: Maybe<MoneyV2>;\n};\n\n/** The selling plan billing policy. */\nexport type SellingPlanBillingPolicy = SellingPlanRecurringBillingPolicy;\n\n/** The initial payment due for the purchase. */\nexport type SellingPlanCheckoutCharge = {\n __typename?: \"SellingPlanCheckoutCharge\";\n /** The charge type for the checkout charge. */\n type: SellingPlanCheckoutChargeType;\n /** The charge value for the checkout charge. */\n value: SellingPlanCheckoutChargeValue;\n};\n\n/** The percentage value of the price used for checkout charge. */\nexport type SellingPlanCheckoutChargePercentageValue = {\n __typename?: \"SellingPlanCheckoutChargePercentageValue\";\n /** The percentage value of the price used for checkout charge. */\n percentage: Scalars[\"Float\"][\"output\"];\n};\n\n/** The checkout charge when the full amount isn't charged at checkout. */\nexport enum SellingPlanCheckoutChargeType {\n /** The checkout charge is a percentage of the product or variant price. */\n Percentage = \"PERCENTAGE\",\n /** The checkout charge is a fixed price amount. */\n Price = \"PRICE\",\n}\n\n/** The portion of the price to be charged at checkout. */\nexport type SellingPlanCheckoutChargeValue =\n | MoneyV2\n | SellingPlanCheckoutChargePercentageValue;\n\n/**\n * An auto-generated type for paginating through multiple SellingPlans.\n *\n */\nexport type SellingPlanConnection = {\n __typename?: \"SellingPlanConnection\";\n /** A list of edges. */\n edges: Array<SellingPlanEdge>;\n /** A list of the nodes contained in SellingPlanEdge. */\n nodes: Array<SellingPlan>;\n /** Information to aid in pagination. */\n pageInfo: PageInfo;\n};\n\n/** The selling plan delivery policy. */\nexport type SellingPlanDeliveryPolicy = SellingPlanRecurringDeliveryPolicy;\n\n/**\n * An auto-generated type which holds one SellingPlan and a cursor during pagination.\n *\n */\nexport type SellingPlanEdge = {\n __typename?: \"SellingPlanEdge\";\n /** A cursor for use in pagination. */\n cursor: Scalars[\"String\"][\"output\"];\n /** The item at the end of SellingPlanEdge. */\n node: SellingPlan;\n};\n\n/** A fixed amount that's deducted from the original variant price. For example, $10.00 off. */\nexport type SellingPlanFixedAmountPriceAdjustment = {\n __typename?: \"SellingPlanFixedAmountPriceAdjustment\";\n /** The money value of the price adjustment. */\n adjustmentAmount: MoneyV2;\n};\n\n/** A fixed price adjustment for a variant that's purchased with a selling plan. */\nexport type SellingPlanFixedPriceAdjustment = {\n __typename?: \"SellingPlanFixedPriceAdjustment\";\n /** A new price of the variant when it's purchased with the selling plan. */\n price: MoneyV2;\n};\n\n/** Represents a selling method. For example, 'Subscribe and save' is a selling method where customers pay for goods or services per delivery. A selling plan group contains individual selling plans. */\nexport type SellingPlanGroup = {\n __typename?: \"SellingPlanGroup\";\n /** A display friendly name for the app that created the selling plan group. */\n appName?: Maybe<Scalars[\"String\"][\"output\"]>;\n /** The name of the selling plan group. */\n name: Scalars[\"String\"][\"output\"];\n /** Represents the selling plan options available in the drop-down list in the storefront. For example, 'Delivery every week' or 'Delivery every 2 weeks' specifies the delivery frequency options for the product. */\n options: Array<SellingPlanGroupOption>;\n /** A list of selling plans in a selling plan group. A selling plan is a representation of how products and variants can be sold and purchased. For example, an individual selling plan could be '6 weeks of prepaid granola, delivered weekly'. */\n sellingPlans: SellingPlanConnection;\n};\n\n/** Represents a selling method. For example, 'Subscribe and save' is a selling method where customers pay for goods or services per delivery. A selling plan group contains individual selling plans. */\nexport type SellingPlanGroupSellingPlansArgs = {\n after?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n before?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n first?: InputMaybe<Scalars[\"Int\"][\"input\"]>;\n last?: InputMaybe<Scalars[\"Int\"][\"input\"]>;\n reverse?: InputMaybe<Scalars[\"Boolean\"][\"input\"]>;\n};\n\n/**\n * An auto-generated type for paginating through multiple SellingPlanGroups.\n *\n */\nexport type SellingPlanGroupConnection = {\n __typename?: \"SellingPlanGroupConnection\";\n /** A list of edges. */\n edges: Array<SellingPlanGroupEdge>;\n /** A list of the nodes contained in SellingPlanGroupEdge. */\n nodes: Array<SellingPlanGroup>;\n /** Information to aid in pagination. */\n pageInfo: PageInfo;\n};\n\n/**\n * An auto-generated type which holds one SellingPlanGroup and a cursor during pagination.\n *\n */\nexport type SellingPlanGroupEdge = {\n __typename?: \"SellingPlanGroupEdge\";\n /** A cursor for use in pagination. */\n cursor: Scalars[\"String\"][\"output\"];\n /** The item at the end of SellingPlanGroupEdge. */\n node: SellingPlanGroup;\n};\n\n/**\n * Represents an option on a selling plan group that's available in the drop-down list in the storefront.\n *\n * Individual selling plans contribute their options to the associated selling plan group. For example, a selling plan group might have an option called `option1: Delivery every`. One selling plan in that group could contribute `option1: 2 weeks` with the pricing for that option, and another selling plan could contribute `option1: 4 weeks`, with different pricing.\n */\nexport type SellingPlanGroupOption = {\n __typename?: \"SellingPlanGroupOption\";\n /** The name of the option. For example, 'Delivery every'. */\n name: Scalars[\"String\"][\"output\"];\n /** The values for the options specified by the selling plans in the selling plan group. For example, '1 week', '2 weeks', '3 weeks'. */\n values: Array<Scalars[\"String\"][\"output\"]>;\n};\n\n/** Represents a valid selling plan interval. */\nexport enum SellingPlanInterval {\n /** Day interval. */\n Day = \"DAY\",\n /** Month interval. */\n Month = \"MONTH\",\n /** Week interval. */\n Week = \"WEEK\",\n /** Year interval. */\n Year = \"YEAR\",\n}\n\n/** An option provided by a Selling Plan. */\nexport type SellingPlanOption = {\n __typename?: \"SellingPlanOption\";\n /** The name of the option (ie \"Delivery every\"). */\n name?: Maybe<Scalars[\"String\"][\"output\"]>;\n /** The value of the option (ie \"Month\"). */\n value?: Maybe<Scalars[\"String\"][\"output\"]>;\n};\n\n/** A percentage amount that's deducted from the original variant price. For example, 10% off. */\nexport type SellingPlanPercentagePriceAdjustment = {\n __typename?: \"SellingPlanPercentagePriceAdjustment\";\n /** The percentage value of the price adjustment. */\n adjustmentPercentage: Scalars[\"Float\"][\"output\"];\n};\n\n/** Represents by how much the price of a variant associated with a selling plan is adjusted. Each variant can have up to two price adjustments. If a variant has multiple price adjustments, then the first price adjustment applies when the variant is initially purchased. The second price adjustment applies after a certain number of orders (specified by the `orderCount` field) are made. If a selling plan doesn't have any price adjustments, then the unadjusted price of the variant is the effective price. */\nexport type SellingPlanPriceAdjustment = {\n __typename?: \"SellingPlanPriceAdjustment\";\n /** The type of price adjustment. An adjustment value can have one of three types: percentage, amount off, or a new price. */\n adjustmentValue: SellingPlanPriceAdjustmentValue;\n /** The number of orders that the price adjustment applies to. If the price adjustment always applies, then this field is `null`. */\n orderCount?: Maybe<Scalars[\"Int\"][\"output\"]>;\n};\n\n/** Represents by how much the price of a variant associated with a selling plan is adjusted. Each variant can have up to two price adjustments. */\nexport type SellingPlanPriceAdjustmentValue =\n | SellingPlanFixedAmountPriceAdjustment\n | SellingPlanFixedPriceAdjustment\n | SellingPlanPercentagePriceAdjustment;\n\n/** The recurring billing policy for the selling plan. */\nexport type SellingPlanRecurringBillingPolicy = {\n __typename?: \"SellingPlanRecurringBillingPolicy\";\n /** The billing frequency, it can be either: day, week, month or year. */\n interval: SellingPlanInterval;\n /** The number of intervals between billings. */\n intervalCount: Scalars[\"Int\"][\"output\"];\n};\n\n/** The recurring delivery policy for the selling plan. */\nexport type SellingPlanRecurringDeliveryPolicy = {\n __typename?: \"SellingPlanRecurringDeliveryPolicy\";\n /** The delivery frequency, it can be either: day, week, month or year. */\n interval: SellingPlanInterval;\n /** The number of intervals between deliveries. */\n intervalCount: Scalars[\"Int\"][\"output\"];\n};\n\n/** Shop represents a collection of the general settings and information about the shop. */\nexport type Shop = HasMetafields &\n Node & {\n __typename?: \"Shop\";\n /** The shop's branding configuration. */\n brand?: Maybe<Brand>;\n /** A description of the shop. */\n description?: Maybe<Scalars[\"String\"][\"output\"]>;\n /** A globally-unique ID. */\n id: Scalars[\"ID\"][\"output\"];\n /** A [custom field](https://shopify.dev/docs/apps/build/custom-data), including its `namespace` and `key`, that's associated with a Shopify resource for the purposes of adding and storing additional information. */\n metafield?: Maybe<Metafield>;\n /** A list of [custom fields](/docs/apps/build/custom-data) that a merchant associates with a Shopify resource. */\n metafields: Array<Maybe<Metafield>>;\n /** A string representing the way currency is formatted when the currency isn’t specified. */\n moneyFormat: Scalars[\"String\"][\"output\"];\n /** The shop’s name. */\n name: Scalars[\"String\"][\"output\"];\n /** Settings related to payments. */\n paymentSettings: PaymentSettings;\n /** The primary domain of the shop’s Online Store. */\n primaryDomain: Domain;\n /** The shop’s privacy policy. */\n privacyPolicy?: Maybe<ShopPolicy>;\n /** The shop’s refund policy. */\n refundPolicy?: Maybe<ShopPolicy>;\n /** The shop’s shipping policy. */\n shippingPolicy?: Maybe<ShopPolicy>;\n /** Countries that the shop ships to. */\n shipsToCountries: Array<CountryCode>;\n /** The Shop Pay Installments pricing information for the shop. */\n shopPayInstallmentsPricing?: Maybe<ShopPayInstallmentsPricing>;\n /** The shop’s subscription policy. */\n subscriptionPolicy?: Maybe<ShopPolicyWithDefault>;\n /** The shop’s terms of service. */\n termsOfService?: Maybe<ShopPolicy>;\n };\n\n/** Shop represents a collection of the general settings and information about the shop. */\nexport type ShopMetafieldArgs = {\n key: Scalars[\"String\"][\"input\"];\n namespace?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n};\n\n/** Shop represents a collection of the general settings and information about the shop. */\nexport type ShopMetafieldsArgs = {\n identifiers: Array<HasMetafieldsIdentifier>;\n};\n\n/** The financing plan in Shop Pay Installments. */\nexport type ShopPayInstallmentsFinancingPlan = Node & {\n __typename?: \"ShopPayInstallmentsFinancingPlan\";\n /** A globally-unique ID. */\n id: Scalars[\"ID\"][\"output\"];\n /** The maximum price to qualify for the financing plan. */\n maxPrice: MoneyV2;\n /** The minimum price to qualify for the financing plan. */\n minPrice: MoneyV2;\n /** The terms of the financing plan. */\n terms: Array<ShopPayInstallmentsFinancingPlanTerm>;\n};\n\n/** The payment frequency for a Shop Pay Installments Financing Plan. */\nexport enum ShopPayInstallmentsFinancingPlanFrequency {\n /** Monthly payment frequency. */\n Monthly = \"MONTHLY\",\n /** Weekly payment frequency. */\n Weekly = \"WEEKLY\",\n}\n\n/** The terms of the financing plan in Shop Pay Installments. */\nexport type ShopPayInstallmentsFinancingPlanTerm = Node & {\n __typename?: \"ShopPayInstallmentsFinancingPlanTerm\";\n /** The annual percentage rate (APR) of the financing plan. */\n apr: Scalars[\"Int\"][\"output\"];\n /** The payment frequency for the financing plan. */\n frequency: ShopPayInstallmentsFinancingPlanFrequency;\n /** A globally-unique ID. */\n id: Scalars[\"ID\"][\"output\"];\n /** The number of installments for the financing plan. */\n installmentsCount?: Maybe<Count>;\n /** The type of loan for the financing plan. */\n loanType: ShopPayInstallmentsLoan;\n};\n\n/** The loan type for a Shop Pay Installments Financing Plan Term. */\nexport enum ShopPayInstallmentsLoan {\n /** An interest-bearing loan type. */\n Interest = \"INTEREST\",\n /** A split-pay loan type. */\n SplitPay = \"SPLIT_PAY\",\n /** A zero-percent loan type. */\n ZeroPercent = \"ZERO_PERCENT\",\n}\n\n/** The result for a Shop Pay Installments pricing request. */\nexport type ShopPayInstallmentsPricing = {\n __typename?: \"ShopPayInstallmentsPricing\";\n /** The financing plans available for the given price range. */\n financingPlans: Array<ShopPayInstallmentsFinancingPlan>;\n /** The maximum price to qualify for financing. */\n maxPrice: MoneyV2;\n /** The minimum price to qualify for financing. */\n minPrice: MoneyV2;\n};\n\n/** The shop pay installments pricing information for a product variant. */\nexport type ShopPayInstallmentsProductVariantPricing = Node & {\n __typename?: \"ShopPayInstallmentsProductVariantPricing\";\n /** Whether the product variant is available. */\n available: Scalars[\"Boolean\"][\"output\"];\n /** Whether the product variant is eligible for Shop Pay Installments. */\n eligible: Scalars[\"Boolean\"][\"output\"];\n /** The full price of the product variant. */\n fullPrice: MoneyV2;\n /** The ID of the product variant. */\n id: Scalars[\"ID\"][\"output\"];\n /** The number of payment terms available for the product variant. */\n installmentsCount?: Maybe<Count>;\n /** The price per term for the product variant. */\n pricePerTerm: MoneyV2;\n};\n\n/** Represents a Shop Pay payment request. */\nexport type ShopPayPaymentRequest = {\n __typename?: \"ShopPayPaymentRequest\";\n /** The delivery methods for the payment request. */\n deliveryMethods: Array<ShopPayPaymentRequestDeliveryMethod>;\n /** The discount codes for the payment request. */\n discountCodes: Array<Scalars[\"String\"][\"output\"]>;\n /** The discounts for the payment request order. */\n discounts?: Maybe<Array<ShopPayPaymentRequestDiscount>>;\n /** The line items for the payment request. */\n lineItems: Array<ShopPayPaymentRequestLineItem>;\n /** The locale for the payment request. */\n locale: Scalars[\"String\"][\"output\"];\n /** The presentment currency for the payment request. */\n presentmentCurrency: CurrencyCode;\n /** The delivery method type for the payment request. */\n selectedDeliveryMethodType: ShopPayPaymentRequestDeliveryMethodType;\n /** The shipping address for the payment request. */\n shippingAddress?: Maybe<ShopPayPaymentRequestContactField>;\n /** The shipping lines for the payment request. */\n shippingLines: Array<ShopPayPaymentRequestShippingLine>;\n /** The subtotal amount for the payment request. */\n subtotal: MoneyV2;\n /** The total amount for the payment request. */\n total: MoneyV2;\n /** The total shipping price for the payment request. */\n totalShippingPrice?: Maybe<ShopPayPaymentRequestTotalShippingPrice>;\n /** The total tax for the payment request. */\n totalTax?: Maybe<MoneyV2>;\n};\n\n/** Represents a contact field for a Shop Pay payment request. */\nexport type ShopPayPaymentRequestContactField = {\n __typename?: \"ShopPayPaymentRequestContactField\";\n /** The first address line of the contact field. */\n address1: Scalars[\"String\"][\"output\"];\n /** The second address line of the contact field. */\n address2?: Maybe<Scalars[\"String\"][\"output\"]>;\n /** The city of the contact field. */\n city: Scalars[\"String\"][\"output\"];\n /** The company name of the contact field. */\n companyName?: Maybe<Scalars[\"String\"][\"output\"]>;\n /** The country of the contact field. */\n countryCode: Scalars[\"String\"][\"output\"];\n /** The email of the contact field. */\n email?: Maybe<Scalars[\"String\"][\"output\"]>;\n /** The first name of the contact field. */\n firstName: Scalars[\"String\"][\"output\"];\n /** The first name of the contact field. */\n lastName: Scalars[\"String\"][\"output\"];\n /** The phone number of the contact field. */\n phone?: Maybe<Scalars[\"String\"][\"output\"]>;\n /** The postal code of the contact field. */\n postalCode?: Maybe<Scalars[\"String\"][\"output\"]>;\n /** The province of the contact field. */\n provinceCode?: Maybe<Scalars[\"String\"][\"output\"]>;\n};\n\n/** Represents a delivery method for a Shop Pay payment request. */\nexport type ShopPayPaymentRequestDeliveryMethod = {\n __typename?: \"ShopPayPaymentRequestDeliveryMethod\";\n /** The amount for the delivery method. */\n amount: MoneyV2;\n /** The code of the delivery method. */\n code: Scalars[\"String\"][\"output\"];\n /** The detail about when the delivery may be expected. */\n deliveryExpectationLabel?: Maybe<Scalars[\"String\"][\"output\"]>;\n /** The detail of the delivery method. */\n detail?: Maybe<Scalars[\"String\"][\"output\"]>;\n /** The label of the delivery method. */\n label: Scalars[\"String\"][\"output\"];\n /** The maximum delivery date for the delivery method. */\n maxDeliveryDate?: Maybe<Scalars[\"ISO8601DateTime\"][\"output\"]>;\n /** The minimum delivery date for the delivery method. */\n minDeliveryDate?: Maybe<Scalars[\"ISO8601DateTime\"][\"output\"]>;\n};\n\n/** The input fields to create a delivery method for a Shop Pay payment request. */\nexport type ShopPayPaymentRequestDeliveryMethodInput = {\n /** The amount for the delivery method. */\n amount?: InputMaybe<MoneyInput>;\n /** The code of the delivery method. */\n code?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n /** The detail about when the delivery may be expected. */\n deliveryExpectationLabel?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n /** The detail of the delivery method. */\n detail?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n /** The label of the delivery method. */\n label?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n /** The maximum delivery date for the delivery method. */\n maxDeliveryDate?: InputMaybe<Scalars[\"ISO8601DateTime\"][\"input\"]>;\n /** The minimum delivery date for the delivery method. */\n minDeliveryDate?: InputMaybe<Scalars[\"ISO8601DateTime\"][\"input\"]>;\n};\n\n/** Represents the delivery method type for a Shop Pay payment request. */\nexport enum ShopPayPaymentRequestDeliveryMethodType {\n /** The delivery method type is pickup. */\n Pickup = \"PICKUP\",\n /** The delivery method type is shipping. */\n Shipping = \"SHIPPING\",\n}\n\n/** Represents a discount for a Shop Pay payment request. */\nexport type ShopPayPaymentRequestDiscount = {\n __typename?: \"ShopPayPaymentRequestDiscount\";\n /** The amount of the discount. */\n amount: MoneyV2;\n /** The label of the discount. */\n label: Scalars[\"String\"][\"output\"];\n};\n\n/** The input fields to create a discount for a Shop Pay payment request. */\nexport type ShopPayPaymentRequestDiscountInput = {\n /** The amount of the discount. */\n amount?: InputMaybe<MoneyInput>;\n /** The label of the discount. */\n label?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n};\n\n/** Represents an image for a Shop Pay payment request line item. */\nexport type ShopPayPaymentRequestImage = {\n __typename?: \"ShopPayPaymentRequestImage\";\n /** The alt text of the image. */\n alt?: Maybe<Scalars[\"String\"][\"output\"]>;\n /** The source URL of the image. */\n url: Scalars[\"String\"][\"output\"];\n};\n\n/** The input fields to create an image for a Shop Pay payment request. */\nexport type ShopPayPaymentRequestImageInput = {\n /** The alt text of the image. */\n alt?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n /** The source URL of the image. */\n url: Scalars[\"String\"][\"input\"];\n};\n\n/** The input fields represent a Shop Pay payment request. */\nexport type ShopPayPaymentRequestInput = {\n /**\n * The delivery methods for the payment request.\n *\n * The input must not contain more than `250` values.\n */\n deliveryMethods?: InputMaybe<Array<ShopPayPaymentRequestDeliveryMethodInput>>;\n /**\n * The discount codes for the payment request.\n *\n * The input must not contain more than `250` values.\n */\n discountCodes?: InputMaybe<Array<Scalars[\"String\"][\"input\"]>>;\n /**\n * The discounts for the payment request order.\n *\n * The input must not contain more than `250` values.\n */\n discounts?: InputMaybe<Array<ShopPayPaymentRequestDiscountInput>>;\n /**\n * The line items for the payment request.\n *\n * The input must not contain more than `250` values.\n */\n lineItems?: InputMaybe<Array<ShopPayPaymentRequestLineItemInput>>;\n /** The locale for the payment request. */\n locale: Scalars[\"String\"][\"input\"];\n /** The encrypted payment method for the payment request. */\n paymentMethod?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n /** The presentment currency for the payment request. */\n presentmentCurrency: CurrencyCode;\n /** The delivery method type for the payment request. */\n selectedDeliveryMethodType?: InputMaybe<ShopPayPaymentRequestDeliveryMethodType>;\n /**\n * The shipping lines for the payment request.\n *\n * The input must not contain more than `250` values.\n */\n shippingLines?: InputMaybe<Array<ShopPayPaymentRequestShippingLineInput>>;\n /** The subtotal amount for the payment request. */\n subtotal: MoneyInput;\n /** The total amount for the payment request. */\n total: MoneyInput;\n /** The total shipping price for the payment request. */\n totalShippingPrice?: InputMaybe<ShopPayPaymentRequestTotalShippingPriceInput>;\n /** The total tax for the payment request. */\n totalTax?: InputMaybe<MoneyInput>;\n};\n\n/** Represents a line item for a Shop Pay payment request. */\nexport type ShopPayPaymentRequestLineItem = {\n __typename?: \"ShopPayPaymentRequestLineItem\";\n /** The final item price for the line item. */\n finalItemPrice: MoneyV2;\n /** The final line price for the line item. */\n finalLinePrice: MoneyV2;\n /** The image of the line item. */\n image?: Maybe<ShopPayPaymentRequestImage>;\n /** The item discounts for the line item. */\n itemDiscounts?: Maybe<Array<ShopPayPaymentRequestDiscount>>;\n /** The label of the line item. */\n label: Scalars[\"String\"][\"output\"];\n /** The line discounts for the line item. */\n lineDiscounts?: Maybe<Array<ShopPayPaymentRequestDiscount>>;\n /** The original item price for the line item. */\n originalItemPrice?: Maybe<MoneyV2>;\n /** The original line price for the line item. */\n originalLinePrice?: Maybe<MoneyV2>;\n /** The quantity of the line item. */\n quantity: Scalars[\"Int\"][\"output\"];\n /** Whether the line item requires shipping. */\n requiresShipping?: Maybe<Scalars[\"Boolean\"][\"output\"]>;\n /** The SKU of the line item. */\n sku?: Maybe<Scalars[\"String\"][\"output\"]>;\n};\n\n/** The input fields to create a line item for a Shop Pay payment request. */\nexport type ShopPayPaymentRequestLineItemInput = {\n /** The final item price for the line item. */\n finalItemPrice?: InputMaybe<MoneyInput>;\n /** The final line price for the line item. */\n finalLinePrice?: InputMaybe<MoneyInput>;\n /** The image of the line item. */\n image?: InputMaybe<ShopPayPaymentRequestImageInput>;\n /**\n * The item discounts for the line item.\n *\n * The input must not contain more than `250` values.\n */\n itemDiscounts?: InputMaybe<Array<ShopPayPaymentRequestDiscountInput>>;\n /** The label of the line item. */\n label?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n /**\n * The line discounts for the line item.\n *\n * The input must not contain more than `250` values.\n */\n lineDiscounts?: InputMaybe<Array<ShopPayPaymentRequestDiscountInput>>;\n /** The original item price for the line item. */\n originalItemPrice?: InputMaybe<MoneyInput>;\n /** The original line price for the line item. */\n originalLinePrice?: InputMaybe<MoneyInput>;\n /** The quantity of the line item. */\n quantity: Scalars[\"Int\"][\"input\"];\n /** Whether the line item requires shipping. */\n requiresShipping?: InputMaybe<Scalars[\"Boolean\"][\"input\"]>;\n /** The SKU of the line item. */\n sku?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n};\n\n/** Represents a receipt for a Shop Pay payment request. */\nexport type ShopPayPaymentRequestReceipt = {\n __typename?: \"ShopPayPaymentRequestReceipt\";\n /** The payment request object. */\n paymentRequest: ShopPayPaymentRequest;\n /** The processing status. */\n processingStatusType: Scalars[\"String\"][\"output\"];\n /** The token of the receipt. */\n token: Scalars[\"String\"][\"output\"];\n};\n\n/** Represents a Shop Pay payment request session. */\nexport type ShopPayPaymentRequestSession = {\n __typename?: \"ShopPayPaymentRequestSession\";\n /** The checkout URL of the Shop Pay payment request session. */\n checkoutUrl: Scalars[\"URL\"][\"output\"];\n /** The payment request associated with the Shop Pay payment request session. */\n paymentRequest: ShopPayPaymentRequest;\n /** The source identifier of the Shop Pay payment request session. */\n sourceIdentifier: Scalars[\"String\"][\"output\"];\n /** The token of the Shop Pay payment request session. */\n token: Scalars[\"String\"][\"output\"];\n};\n\n/** Return type for `shopPayPaymentRequestSessionCreate` mutation. */\nexport type ShopPayPaymentRequestSessionCreatePayload = {\n __typename?: \"ShopPayPaymentRequestSessionCreatePayload\";\n /** The new Shop Pay payment request session object. */\n shopPayPaymentRequestSession?: Maybe<ShopPayPaymentRequestSession>;\n /** Error codes for failed Shop Pay payment request session mutations. */\n userErrors: Array<UserErrorsShopPayPaymentRequestSessionUserErrors>;\n};\n\n/** Return type for `shopPayPaymentRequestSessionSubmit` mutation. */\nexport type ShopPayPaymentRequestSessionSubmitPayload = {\n __typename?: \"ShopPayPaymentRequestSessionSubmitPayload\";\n /** The checkout on which the payment was applied. */\n paymentRequestReceipt?: Maybe<ShopPayPaymentRequestReceipt>;\n /** Error codes for failed Shop Pay payment request session mutations. */\n userErrors: Array<UserErrorsShopPayPaymentRequestSessionUserErrors>;\n};\n\n/** Represents a shipping line for a Shop Pay payment request. */\nexport type ShopPayPaymentRequestShippingLine = {\n __typename?: \"ShopPayPaymentRequestShippingLine\";\n /** The amount for the shipping line. */\n amount: MoneyV2;\n /** The code of the shipping line. */\n code: Scalars[\"String\"][\"output\"];\n /** The label of the shipping line. */\n label: Scalars[\"String\"][\"output\"];\n};\n\n/** The input fields to create a shipping line for a Shop Pay payment request. */\nexport type ShopPayPaymentRequestShippingLineInput = {\n /** The amount for the shipping line. */\n amount?: InputMaybe<MoneyInput>;\n /** The code of the shipping line. */\n code?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n /** The label of the shipping line. */\n label?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n};\n\n/** Represents a shipping total for a Shop Pay payment request. */\nexport type ShopPayPaymentRequestTotalShippingPrice = {\n __typename?: \"ShopPayPaymentRequestTotalShippingPrice\";\n /** The discounts for the shipping total. */\n discounts: Array<ShopPayPaymentRequestDiscount>;\n /** The final total for the shipping total. */\n finalTotal: MoneyV2;\n /** The original total for the shipping total. */\n originalTotal?: Maybe<MoneyV2>;\n};\n\n/** The input fields to create a shipping total for a Shop Pay payment request. */\nexport type ShopPayPaymentRequestTotalShippingPriceInput = {\n /**\n * The discounts for the shipping total.\n *\n * The input must not contain more than `250` values.\n */\n discounts?: InputMaybe<Array<ShopPayPaymentRequestDiscountInput>>;\n /** The final total for the shipping total. */\n finalTotal?: InputMaybe<MoneyInput>;\n /** The original total for the shipping total. */\n originalTotal?: InputMaybe<MoneyInput>;\n};\n\n/**\n * The input fields for submitting Shop Pay payment method information for checkout.\n *\n */\nexport type ShopPayWalletContentInput = {\n /** The customer's billing address. */\n billingAddress: MailingAddressInput;\n /** Session token for transaction. */\n sessionToken: Scalars[\"String\"][\"input\"];\n};\n\n/** Policy that a merchant has configured for their store, such as their refund or privacy policy. */\nexport type ShopPolicy = Node & {\n __typename?: \"ShopPolicy\";\n /** Policy text, maximum size of 64kb. */\n body: Scalars[\"String\"][\"output\"];\n /** Policy’s handle. */\n handle: Scalars[\"String\"][\"output\"];\n /** A globally-unique ID. */\n id: Scalars[\"ID\"][\"output\"];\n /** Policy’s title. */\n title: Scalars[\"String\"][\"output\"];\n /** Public URL to the policy. */\n url: Scalars[\"URL\"][\"output\"];\n};\n\n/**\n * A policy for the store that comes with a default value, such as a subscription policy.\n * If the merchant hasn't configured a policy for their store, then the policy will return the default value.\n * Otherwise, the policy will return the merchant-configured value.\n *\n */\nexport type ShopPolicyWithDefault = {\n __typename?: \"ShopPolicyWithDefault\";\n /** The text of the policy. Maximum size: 64KB. */\n body: Scalars[\"String\"][\"output\"];\n /** The handle of the policy. */\n handle: Scalars[\"String\"][\"output\"];\n /** The unique ID of the policy. A default policy doesn't have an ID. */\n id?: Maybe<Scalars[\"ID\"][\"output\"]>;\n /** The title of the policy. */\n title: Scalars[\"String\"][\"output\"];\n /** Public URL to the policy. */\n url: Scalars[\"URL\"][\"output\"];\n};\n\n/** Contains all fields required to generate sitemaps. */\nexport type Sitemap = {\n __typename?: \"Sitemap\";\n /** The number of sitemap's pages for a given type. */\n pagesCount?: Maybe<Count>;\n /**\n * A list of sitemap's resources for a given type.\n *\n * Important Notes:\n * - The number of items per page varies from 0 to 250.\n * - Empty pages (0 items) may occur and do not necessarily indicate the end of results.\n * - Always check `hasNextPage` to determine if more pages are available.\n *\n */\n resources?: Maybe<PaginatedSitemapResources>;\n};\n\n/** Contains all fields required to generate sitemaps. */\nexport type SitemapResourcesArgs = {\n page: Scalars[\"Int\"][\"input\"];\n};\n\n/** Represents a sitemap's image. */\nexport type SitemapImage = {\n __typename?: \"SitemapImage\";\n /** Image's alt text. */\n alt?: Maybe<Scalars[\"String\"][\"output\"]>;\n /** Path to the image. */\n filepath?: Maybe<Scalars[\"String\"][\"output\"]>;\n /** The date and time when the image was updated. */\n updatedAt: Scalars[\"DateTime\"][\"output\"];\n};\n\n/** Represents a sitemap resource that is not a metaobject. */\nexport type SitemapResource = SitemapResourceInterface & {\n __typename?: \"SitemapResource\";\n /** Resource's handle. */\n handle: Scalars[\"String\"][\"output\"];\n /** Resource's image. */\n image?: Maybe<SitemapImage>;\n /** Resource's title. */\n title?: Maybe<Scalars[\"String\"][\"output\"]>;\n /** The date and time when the resource was updated. */\n updatedAt: Scalars[\"DateTime\"][\"output\"];\n};\n\n/** Represents the common fields for all sitemap resource types. */\nexport type SitemapResourceInterface = {\n /** Resource's handle. */\n handle: Scalars[\"String\"][\"output\"];\n /** The date and time when the resource was updated. */\n updatedAt: Scalars[\"DateTime\"][\"output\"];\n};\n\n/**\n * A SitemapResourceMetaobject represents a metaobject with\n * [the `renderable` capability](https://shopify.dev/docs/apps/build/custom-data/metaobjects/use-metaobject-capabilities#render-metaobjects-as-web-pages).\n *\n */\nexport type SitemapResourceMetaobject = SitemapResourceInterface & {\n __typename?: \"SitemapResourceMetaobject\";\n /** Resource's handle. */\n handle: Scalars[\"String\"][\"output\"];\n /** The URL handle for accessing pages of this metaobject type in the Online Store. */\n onlineStoreUrlHandle?: Maybe<Scalars[\"String\"][\"output\"]>;\n /** The type of the metaobject. Defines the namespace of its associated metafields. */\n type: Scalars[\"String\"][\"output\"];\n /** The date and time when the resource was updated. */\n updatedAt: Scalars[\"DateTime\"][\"output\"];\n};\n\n/** The types of resources potentially present in a sitemap. */\nexport enum SitemapType {\n /** Articles present in the sitemap. */\n Article = \"ARTICLE\",\n /** Blogs present in the sitemap. */\n Blog = \"BLOG\",\n /** Collections present in the sitemap. */\n Collection = \"COLLECTION\",\n /**\n * Metaobjects present in the sitemap. Only metaobject types with the\n * [`renderable` capability](https://shopify.dev/docs/apps/build/custom-data/metaobjects/use-metaobject-capabilities#render-metaobjects-as-web-pages)\n * are included in sitemap.\n *\n */\n Metaobject = \"METAOBJECT\",\n /** Pages present in the sitemap. */\n Page = \"PAGE\",\n /** Products present in the sitemap. */\n Product = \"PRODUCT\",\n}\n\n/**\n * The availability of a product variant at a particular location.\n * Local pick-up must be enabled in the store's shipping settings, otherwise this will return an empty result.\n *\n */\nexport type StoreAvailability = {\n __typename?: \"StoreAvailability\";\n /** Whether the product variant is in-stock at this location. */\n available: Scalars[\"Boolean\"][\"output\"];\n /** The location where this product variant is stocked at. */\n location: Location;\n /** Returns the estimated amount of time it takes for pickup to be ready (Example: Usually ready in 24 hours). */\n pickUpTime: Scalars[\"String\"][\"output\"];\n /** The quantity of the product variant in-stock at this location. */\n quantityAvailable: Scalars[\"Int\"][\"output\"];\n};\n\n/**\n * An auto-generated type for paginating through multiple StoreAvailabilities.\n *\n */\nexport type StoreAvailabilityConnection = {\n __typename?: \"StoreAvailabilityConnection\";\n /** A list of edges. */\n edges: Array<StoreAvailabilityEdge>;\n /** A list of the nodes contained in StoreAvailabilityEdge. */\n nodes: Array<StoreAvailability>;\n /** Information to aid in pagination. */\n pageInfo: PageInfo;\n};\n\n/**\n * An auto-generated type which holds one StoreAvailability and a cursor during pagination.\n *\n */\nexport type StoreAvailabilityEdge = {\n __typename?: \"StoreAvailabilityEdge\";\n /** A cursor for use in pagination. */\n cursor: Scalars[\"String\"][\"output\"];\n /** The item at the end of StoreAvailabilityEdge. */\n node: StoreAvailability;\n};\n\n/**\n * An auto-generated type for paginating through multiple Strings.\n *\n */\nexport type StringConnection = {\n __typename?: \"StringConnection\";\n /** A list of edges. */\n edges: Array<StringEdge>;\n /** A list of the nodes contained in StringEdge. */\n nodes: Array<Scalars[\"String\"][\"output\"]>;\n /** Information to aid in pagination. */\n pageInfo: PageInfo;\n};\n\n/**\n * An auto-generated type which holds one String and a cursor during pagination.\n *\n */\nexport type StringEdge = {\n __typename?: \"StringEdge\";\n /** A cursor for use in pagination. */\n cursor: Scalars[\"String\"][\"output\"];\n /** The item at the end of StringEdge. */\n node: Scalars[\"String\"][\"output\"];\n};\n\n/** An error that occurred during cart submit for completion. */\nexport type SubmissionError = {\n __typename?: \"SubmissionError\";\n /** The error code. */\n code: SubmissionErrorCode;\n /** The error message. */\n message?: Maybe<Scalars[\"String\"][\"output\"]>;\n};\n\n/** The code of the error that occurred during cart submit for completion. */\nexport enum SubmissionErrorCode {\n BuyerIdentityEmailIsInvalid = \"BUYER_IDENTITY_EMAIL_IS_INVALID\",\n BuyerIdentityEmailRequired = \"BUYER_IDENTITY_EMAIL_REQUIRED\",\n BuyerIdentityPhoneIsInvalid = \"BUYER_IDENTITY_PHONE_IS_INVALID\",\n DeliveryAddress1Invalid = \"DELIVERY_ADDRESS1_INVALID\",\n DeliveryAddress1Required = \"DELIVERY_ADDRESS1_REQUIRED\",\n DeliveryAddress1TooLong = \"DELIVERY_ADDRESS1_TOO_LONG\",\n DeliveryAddress2Invalid = \"DELIVERY_ADDRESS2_INVALID\",\n DeliveryAddress2Required = \"DELIVERY_ADDRESS2_REQUIRED\",\n DeliveryAddress2TooLong = \"DELIVERY_ADDRESS2_TOO_LONG\",\n DeliveryAddressRequired = \"DELIVERY_ADDRESS_REQUIRED\",\n DeliveryCityInvalid = \"DELIVERY_CITY_INVALID\",\n DeliveryCityRequired = \"DELIVERY_CITY_REQUIRED\",\n DeliveryCityTooLong = \"DELIVERY_CITY_TOO_LONG\",\n DeliveryCompanyInvalid = \"DELIVERY_COMPANY_INVALID\",\n DeliveryCompanyRequired = \"DELIVERY_COMPANY_REQUIRED\",\n DeliveryCompanyTooLong = \"DELIVERY_COMPANY_TOO_LONG\",\n DeliveryCountryRequired = \"DELIVERY_COUNTRY_REQUIRED\",\n DeliveryFirstNameInvalid = \"DELIVERY_FIRST_NAME_INVALID\",\n DeliveryFirstNameRequired = \"DELIVERY_FIRST_NAME_REQUIRED\",\n DeliveryFirstNameTooLong = \"DELIVERY_FIRST_NAME_TOO_LONG\",\n DeliveryInvalidPostalCodeForCountry = \"DELIVERY_INVALID_POSTAL_CODE_FOR_COUNTRY\",\n DeliveryInvalidPostalCodeForZone = \"DELIVERY_INVALID_POSTAL_CODE_FOR_ZONE\",\n DeliveryLastNameInvalid = \"DELIVERY_LAST_NAME_INVALID\",\n DeliveryLastNameRequired = \"DELIVERY_LAST_NAME_REQUIRED\",\n DeliveryLastNameTooLong = \"DELIVERY_LAST_NAME_TOO_LONG\",\n DeliveryNoDeliveryAvailable = \"DELIVERY_NO_DELIVERY_AVAILABLE\",\n DeliveryNoDeliveryAvailableForMerchandiseLine = \"DELIVERY_NO_DELIVERY_AVAILABLE_FOR_MERCHANDISE_LINE\",\n DeliveryOptionsPhoneNumberInvalid = \"DELIVERY_OPTIONS_PHONE_NUMBER_INVALID\",\n DeliveryOptionsPhoneNumberRequired = \"DELIVERY_OPTIONS_PHONE_NUMBER_REQUIRED\",\n DeliveryPhoneNumberInvalid = \"DELIVERY_PHONE_NUMBER_INVALID\",\n DeliveryPhoneNumberRequired = \"DELIVERY_PHONE_NUMBER_REQUIRED\",\n DeliveryPostalCodeInvalid = \"DELIVERY_POSTAL_CODE_INVALID\",\n DeliveryPostalCodeRequired = \"DELIVERY_POSTAL_CODE_REQUIRED\",\n DeliveryZoneNotFound = \"DELIVERY_ZONE_NOT_FOUND\",\n DeliveryZoneRequiredForCountry = \"DELIVERY_ZONE_REQUIRED_FOR_COUNTRY\",\n Error = \"ERROR\",\n MerchandiseLineLimitReached = \"MERCHANDISE_LINE_LIMIT_REACHED\",\n MerchandiseNotApplicable = \"MERCHANDISE_NOT_APPLICABLE\",\n MerchandiseNotEnoughStockAvailable = \"MERCHANDISE_NOT_ENOUGH_STOCK_AVAILABLE\",\n MerchandiseOutOfStock = \"MERCHANDISE_OUT_OF_STOCK\",\n MerchandiseProductNotPublished = \"MERCHANDISE_PRODUCT_NOT_PUBLISHED\",\n NoDeliveryGroupSelected = \"NO_DELIVERY_GROUP_SELECTED\",\n PaymentsAddress1Invalid = \"PAYMENTS_ADDRESS1_INVALID\",\n PaymentsAddress1Required = \"PAYMENTS_ADDRESS1_REQUIRED\",\n PaymentsAddress1TooLong = \"PAYMENTS_ADDRESS1_TOO_LONG\",\n PaymentsAddress2Invalid = \"PAYMENTS_ADDRESS2_INVALID\",\n PaymentsAddress2Required = \"PAYMENTS_ADDRESS2_REQUIRED\",\n PaymentsAddress2TooLong = \"PAYMENTS_ADDRESS2_TOO_LONG\",\n PaymentsBillingAddressZoneNotFound = \"PAYMENTS_BILLING_ADDRESS_ZONE_NOT_FOUND\",\n PaymentsBillingAddressZoneRequiredForCountry = \"PAYMENTS_BILLING_ADDRESS_ZONE_REQUIRED_FOR_COUNTRY\",\n PaymentsCityInvalid = \"PAYMENTS_CITY_INVALID\",\n PaymentsCityRequired = \"PAYMENTS_CITY_REQUIRED\",\n PaymentsCityTooLong = \"PAYMENTS_CITY_TOO_LONG\",\n PaymentsCompanyInvalid = \"PAYMENTS_COMPANY_INVALID\",\n PaymentsCompanyRequired = \"PAYMENTS_COMPANY_REQUIRED\",\n PaymentsCompanyTooLong = \"PAYMENTS_COMPANY_TOO_LONG\",\n PaymentsCountryRequired = \"PAYMENTS_COUNTRY_REQUIRED\",\n PaymentsCreditCardBaseExpired = \"PAYMENTS_CREDIT_CARD_BASE_EXPIRED\",\n PaymentsCreditCardBaseGatewayNotSupported = \"PAYMENTS_CREDIT_CARD_BASE_GATEWAY_NOT_SUPPORTED\",\n PaymentsCreditCardBaseInvalidStartDateOrIssueNumberForDebit = \"PAYMENTS_CREDIT_CARD_BASE_INVALID_START_DATE_OR_ISSUE_NUMBER_FOR_DEBIT\",\n PaymentsCreditCardBrandNotSupported = \"PAYMENTS_CREDIT_CARD_BRAND_NOT_SUPPORTED\",\n PaymentsCreditCardFirstNameBlank = \"PAYMENTS_CREDIT_CARD_FIRST_NAME_BLANK\",\n PaymentsCreditCardGeneric = \"PAYMENTS_CREDIT_CARD_GENERIC\",\n PaymentsCreditCardLastNameBlank = \"PAYMENTS_CREDIT_CARD_LAST_NAME_BLANK\",\n PaymentsCreditCardMonthInclusion = \"PAYMENTS_CREDIT_CARD_MONTH_INCLUSION\",\n PaymentsCreditCardNameInvalid = \"PAYMENTS_CREDIT_CARD_NAME_INVALID\",\n PaymentsCreditCardNumberInvalid = \"PAYMENTS_CREDIT_CARD_NUMBER_INVALID\",\n PaymentsCreditCardNumberInvalidFormat = \"PAYMENTS_CREDIT_CARD_NUMBER_INVALID_FORMAT\",\n PaymentsCreditCardSessionId = \"PAYMENTS_CREDIT_CARD_SESSION_ID\",\n PaymentsCreditCardVerificationValueBlank = \"PAYMENTS_CREDIT_CARD_VERIFICATION_VALUE_BLANK\",\n PaymentsCreditCardVerificationValueInvalidForCardType = \"PAYMENTS_CREDIT_CARD_VERIFICATION_VALUE_INVALID_FOR_CARD_TYPE\",\n PaymentsCreditCardYearExpired = \"PAYMENTS_CREDIT_CARD_YEAR_EXPIRED\",\n PaymentsCreditCardYearInvalidExpiryYear = \"PAYMENTS_CREDIT_CARD_YEAR_INVALID_EXPIRY_YEAR\",\n PaymentsFirstNameInvalid = \"PAYMENTS_FIRST_NAME_INVALID\",\n PaymentsFirstNameRequired = \"PAYMENTS_FIRST_NAME_REQUIRED\",\n PaymentsFirstNameTooLong = \"PAYMENTS_FIRST_NAME_TOO_LONG\",\n PaymentsInvalidPostalCodeForCountry = \"PAYMENTS_INVALID_POSTAL_CODE_FOR_COUNTRY\",\n PaymentsInvalidPostalCodeForZone = \"PAYMENTS_INVALID_POSTAL_CODE_FOR_ZONE\",\n PaymentsLastNameInvalid = \"PAYMENTS_LAST_NAME_INVALID\",\n PaymentsLastNameRequired = \"PAYMENTS_LAST_NAME_REQUIRED\",\n PaymentsLastNameTooLong = \"PAYMENTS_LAST_NAME_TOO_LONG\",\n PaymentsMethodRequired = \"PAYMENTS_METHOD_REQUIRED\",\n PaymentsMethodUnavailable = \"PAYMENTS_METHOD_UNAVAILABLE\",\n PaymentsPhoneNumberInvalid = \"PAYMENTS_PHONE_NUMBER_INVALID\",\n PaymentsPhoneNumberRequired = \"PAYMENTS_PHONE_NUMBER_REQUIRED\",\n PaymentsPostalCodeInvalid = \"PAYMENTS_POSTAL_CODE_INVALID\",\n PaymentsPostalCodeRequired = \"PAYMENTS_POSTAL_CODE_REQUIRED\",\n PaymentsShopifyPaymentsRequired = \"PAYMENTS_SHOPIFY_PAYMENTS_REQUIRED\",\n PaymentsUnacceptablePaymentAmount = \"PAYMENTS_UNACCEPTABLE_PAYMENT_AMOUNT\",\n PaymentsWalletContentMissing = \"PAYMENTS_WALLET_CONTENT_MISSING\",\n TaxesDeliveryGroupIdNotFound = \"TAXES_DELIVERY_GROUP_ID_NOT_FOUND\",\n TaxesLineIdNotFound = \"TAXES_LINE_ID_NOT_FOUND\",\n TaxesMustBeDefined = \"TAXES_MUST_BE_DEFINED\",\n}\n\n/** Cart submit for checkout completion is successful. */\nexport type SubmitAlreadyAccepted = {\n __typename?: \"SubmitAlreadyAccepted\";\n /** The ID of the cart completion attempt that will be used for polling for the result. */\n attemptId: Scalars[\"String\"][\"output\"];\n};\n\n/** Cart submit for checkout completion failed. */\nexport type SubmitFailed = {\n __typename?: \"SubmitFailed\";\n /** The URL of the checkout for the cart. */\n checkoutUrl?: Maybe<Scalars[\"URL\"][\"output\"]>;\n /** The list of errors that occurred from executing the mutation. */\n errors: Array<SubmissionError>;\n};\n\n/** Cart submit for checkout completion is already accepted. */\nexport type SubmitSuccess = {\n __typename?: \"SubmitSuccess\";\n /** The ID of the cart completion attempt that will be used for polling for the result. */\n attemptId: Scalars[\"String\"][\"output\"];\n /** The url to which the buyer should be redirected after the cart is successfully submitted. */\n redirectUrl: Scalars[\"URL\"][\"output\"];\n};\n\n/** Cart submit for checkout completion is throttled. */\nexport type SubmitThrottled = {\n __typename?: \"SubmitThrottled\";\n /**\n * UTC date time string that indicates the time after which clients should make their next\n * poll request. Any poll requests sent before this time will be ignored. Use this value to schedule the\n * next poll request.\n *\n */\n pollAfter: Scalars[\"DateTime\"][\"output\"];\n};\n\n/** Color and image for visual representation. */\nexport type Swatch = {\n __typename?: \"Swatch\";\n /** The swatch color. */\n color?: Maybe<Scalars[\"Color\"][\"output\"]>;\n /** The swatch image. */\n image?: Maybe<MediaImage>;\n};\n\n/**\n * The taxonomy category for the product.\n *\n */\nexport type TaxonomyCategory = Node & {\n __typename?: \"TaxonomyCategory\";\n /** All parent nodes of the current taxonomy category. */\n ancestors: Array<TaxonomyCategory>;\n /** A static identifier for the taxonomy category. */\n id: Scalars[\"ID\"][\"output\"];\n /** The localized name of the taxonomy category. */\n name: Scalars[\"String\"][\"output\"];\n};\n\n/**\n * A filter used to view a subset of products in a collection matching a specific taxonomy metafield value.\n *\n */\nexport type TaxonomyMetafieldFilter = {\n /** The key of the metafield to filter on. */\n key: Scalars[\"String\"][\"input\"];\n /** The namespace of the metafield to filter on. */\n namespace: Scalars[\"String\"][\"input\"];\n /** The value of the metafield. */\n value: Scalars[\"String\"][\"input\"];\n};\n\n/** Represents a resource that you can track the origin of the search traffic. */\nexport type Trackable = {\n /** URL parameters to be added to a page URL to track the origin of on-site search traffic for [analytics reporting](https://help.shopify.com/manual/reports-and-analytics/shopify-reports/report-types/default-reports/behaviour-reports). Returns a result when accessed through the [search](https://shopify.dev/docs/api/storefront/current/queries/search) or [predictiveSearch](https://shopify.dev/docs/api/storefront/current/queries/predictiveSearch) queries, otherwise returns null. */\n trackingParameters?: Maybe<Scalars[\"String\"][\"output\"]>;\n};\n\n/**\n * The measurement used to calculate a unit price for a product variant (e.g. $9.99 / 100ml).\n *\n */\nexport type UnitPriceMeasurement = {\n __typename?: \"UnitPriceMeasurement\";\n /** The type of unit of measurement for the unit price measurement. */\n measuredType?: Maybe<UnitPriceMeasurementMeasuredType>;\n /** The quantity unit for the unit price measurement. */\n quantityUnit?: Maybe<UnitPriceMeasurementMeasuredUnit>;\n /** The quantity value for the unit price measurement. */\n quantityValue: Scalars[\"Float\"][\"output\"];\n /** The reference unit for the unit price measurement. */\n referenceUnit?: Maybe<UnitPriceMeasurementMeasuredUnit>;\n /** The reference value for the unit price measurement. */\n referenceValue: Scalars[\"Int\"][\"output\"];\n};\n\n/** The accepted types of unit of measurement. */\nexport enum UnitPriceMeasurementMeasuredType {\n /** Unit of measurements representing areas. */\n Area = \"AREA\",\n /** Unit of measurements representing lengths. */\n Length = \"LENGTH\",\n /** Unit of measurements representing volumes. */\n Volume = \"VOLUME\",\n /** Unit of measurements representing weights. */\n Weight = \"WEIGHT\",\n}\n\n/** The valid units of measurement for a unit price measurement. */\nexport enum UnitPriceMeasurementMeasuredUnit {\n /** 100 centiliters equals 1 liter. */\n Cl = \"CL\",\n /** 100 centimeters equals 1 meter. */\n Cm = \"CM\",\n /** Metric system unit of weight. */\n G = \"G\",\n /** 1 kilogram equals 1000 grams. */\n Kg = \"KG\",\n /** Metric system unit of volume. */\n L = \"L\",\n /** Metric system unit of length. */\n M = \"M\",\n /** Metric system unit of area. */\n M2 = \"M2\",\n /** 1 cubic meter equals 1000 liters. */\n M3 = \"M3\",\n /** 1000 milligrams equals 1 gram. */\n Mg = \"MG\",\n /** 1000 milliliters equals 1 liter. */\n Ml = \"ML\",\n /** 1000 millimeters equals 1 meter. */\n Mm = \"MM\",\n}\n\n/** Systems of weights and measures. */\nexport enum UnitSystem {\n /** Imperial system of weights and measures. */\n ImperialSystem = \"IMPERIAL_SYSTEM\",\n /** Metric system of weights and measures. */\n MetricSystem = \"METRIC_SYSTEM\",\n}\n\n/** A redirect on the online store. */\nexport type UrlRedirect = Node & {\n __typename?: \"UrlRedirect\";\n /** The ID of the URL redirect. */\n id: Scalars[\"ID\"][\"output\"];\n /** The old path to be redirected from. When the user visits this path, they'll be redirected to the target location. */\n path: Scalars[\"String\"][\"output\"];\n /** The target location where the user will be redirected to. */\n target: Scalars[\"String\"][\"output\"];\n};\n\n/**\n * An auto-generated type for paginating through multiple UrlRedirects.\n *\n */\nexport type UrlRedirectConnection = {\n __typename?: \"UrlRedirectConnection\";\n /** A list of edges. */\n edges: Array<UrlRedirectEdge>;\n /** A list of the nodes contained in UrlRedirectEdge. */\n nodes: Array<UrlRedirect>;\n /** Information to aid in pagination. */\n pageInfo: PageInfo;\n};\n\n/**\n * An auto-generated type which holds one UrlRedirect and a cursor during pagination.\n *\n */\nexport type UrlRedirectEdge = {\n __typename?: \"UrlRedirectEdge\";\n /** A cursor for use in pagination. */\n cursor: Scalars[\"String\"][\"output\"];\n /** The item at the end of UrlRedirectEdge. */\n node: UrlRedirect;\n};\n\n/** Represents an error in the input of a mutation. */\nexport type UserError = DisplayableError & {\n __typename?: \"UserError\";\n /** The path to the input field that caused the error. */\n field?: Maybe<Array<Scalars[\"String\"][\"output\"]>>;\n /** The error message. */\n message: Scalars[\"String\"][\"output\"];\n};\n\n/** Error codes for failed Shop Pay payment request session mutations. */\nexport type UserErrorsShopPayPaymentRequestSessionUserErrors =\n DisplayableError & {\n __typename?: \"UserErrorsShopPayPaymentRequestSessionUserErrors\";\n /** The error code. */\n code?: Maybe<UserErrorsShopPayPaymentRequestSessionUserErrorsCode>;\n /** The path to the input field that caused the error. */\n field?: Maybe<Array<Scalars[\"String\"][\"output\"]>>;\n /** The error message. */\n message: Scalars[\"String\"][\"output\"];\n };\n\n/** Possible error codes that can be returned by `ShopPayPaymentRequestSessionUserErrors`. */\nexport enum UserErrorsShopPayPaymentRequestSessionUserErrorsCode {\n /** Idempotency key has already been used. */\n IdempotencyKeyAlreadyUsed = \"IDEMPOTENCY_KEY_ALREADY_USED\",\n /** Payment request input is invalid. */\n PaymentRequestInvalidInput = \"PAYMENT_REQUEST_INVALID_INPUT\",\n /** Payment request not found. */\n PaymentRequestNotFound = \"PAYMENT_REQUEST_NOT_FOUND\",\n}\n\n/** The input fields for a filter used to view a subset of products in a collection matching a specific variant option. */\nexport type VariantOptionFilter = {\n /** The name of the variant option to filter on. */\n name: Scalars[\"String\"][\"input\"];\n /** The value of the variant option to filter on. */\n value: Scalars[\"String\"][\"input\"];\n};\n\n/** Represents a Shopify hosted video. */\nexport type Video = Media &\n Node & {\n __typename?: \"Video\";\n /** A word or phrase to share the nature or contents of a media. */\n alt?: Maybe<Scalars[\"String\"][\"output\"]>;\n /** A globally-unique ID. */\n id: Scalars[\"ID\"][\"output\"];\n /** The media content type. */\n mediaContentType: MediaContentType;\n /** The presentation for a media. */\n presentation?: Maybe<MediaPresentation>;\n /** The preview image for the media. */\n previewImage?: Maybe<Image>;\n /** The sources for a video. */\n sources: Array<VideoSource>;\n };\n\n/** Represents a source for a Shopify hosted video. */\nexport type VideoSource = {\n __typename?: \"VideoSource\";\n /** The format of the video source. */\n format: Scalars[\"String\"][\"output\"];\n /** The height of the video. */\n height: Scalars[\"Int\"][\"output\"];\n /** The video MIME type. */\n mimeType: Scalars[\"String\"][\"output\"];\n /** The URL of the video. */\n url: Scalars[\"String\"][\"output\"];\n /** The width of the video. */\n width: Scalars[\"Int\"][\"output\"];\n};\n\n/** Units of measurement for weight. */\nexport enum WeightUnit {\n /** Metric system unit of mass. */\n Grams = \"GRAMS\",\n /** 1 kilogram equals 1000 grams. */\n Kilograms = \"KILOGRAMS\",\n /** Imperial system unit of mass. */\n Ounces = \"OUNCES\",\n /** 1 pound equals 16 ounces. */\n Pounds = \"POUNDS\",\n}\n\nexport type CartFragment = {\n __typename?: \"Cart\";\n id: string;\n createdAt: any;\n checkoutUrl: any;\n totalQuantity: number;\n cost: {\n __typename?: \"CartCost\";\n subtotalAmount: {\n __typename?: \"MoneyV2\";\n amount: any;\n currencyCode: CurrencyCode;\n };\n totalAmount: {\n __typename?: \"MoneyV2\";\n amount: any;\n currencyCode: CurrencyCode;\n };\n totalTaxAmount?: {\n __typename?: \"MoneyV2\";\n amount: any;\n currencyCode: CurrencyCode;\n } | null;\n };\n lines: {\n __typename?: \"BaseCartLineConnection\";\n edges: Array<{\n __typename?: \"BaseCartLineEdge\";\n node:\n | {\n __typename?: \"CartLine\";\n id: string;\n quantity: number;\n cost: {\n __typename?: \"CartLineCost\";\n totalAmount: {\n __typename?: \"MoneyV2\";\n amount: any;\n currencyCode: CurrencyCode;\n };\n };\n merchandise: {\n __typename?: \"ProductVariant\";\n id: string;\n sku?: string | null;\n title: string;\n availableForSale: boolean;\n requiresShipping: boolean;\n product: {\n __typename?: \"Product\";\n id: string;\n handle: string;\n availableForSale: boolean;\n title: string;\n productType: string;\n description: string;\n descriptionHtml: any;\n tags: Array<string>;\n updatedAt: any;\n vendor: string;\n options: Array<{\n __typename?: \"ProductOption\";\n id: string;\n name: string;\n values: Array<string>;\n }>;\n priceRange: {\n __typename?: \"ProductPriceRange\";\n maxVariantPrice: {\n __typename?: \"MoneyV2\";\n amount: any;\n currencyCode: CurrencyCode;\n };\n minVariantPrice: {\n __typename?: \"MoneyV2\";\n amount: any;\n currencyCode: CurrencyCode;\n };\n };\n variants: {\n __typename?: \"ProductVariantConnection\";\n edges: Array<{\n __typename?: \"ProductVariantEdge\";\n node: {\n __typename?: \"ProductVariant\";\n id: string;\n sku?: string | null;\n title: string;\n availableForSale: boolean;\n requiresShipping: boolean;\n selectedOptions: Array<{\n __typename?: \"SelectedOption\";\n name: string;\n value: string;\n }>;\n image?: {\n __typename?: \"Image\";\n url: any;\n altText?: string | null;\n width?: number | null;\n height?: number | null;\n } | null;\n price: {\n __typename?: \"MoneyV2\";\n amount: any;\n currencyCode: CurrencyCode;\n };\n compareAtPrice?: {\n __typename?: \"MoneyV2\";\n amount: any;\n currencyCode: CurrencyCode;\n } | null;\n };\n }>;\n };\n featuredImage?: {\n __typename?: \"Image\";\n url: any;\n altText?: string | null;\n width?: number | null;\n height?: number | null;\n } | null;\n images: {\n __typename?: \"ImageConnection\";\n edges: Array<{\n __typename?: \"ImageEdge\";\n node: {\n __typename?: \"Image\";\n url: any;\n altText?: string | null;\n width?: number | null;\n height?: number | null;\n };\n }>;\n };\n seo: {\n __typename?: \"SEO\";\n description?: string | null;\n title?: string | null;\n };\n };\n selectedOptions: Array<{\n __typename?: \"SelectedOption\";\n name: string;\n value: string;\n }>;\n image?: {\n __typename?: \"Image\";\n url: any;\n altText?: string | null;\n width?: number | null;\n height?: number | null;\n } | null;\n price: {\n __typename?: \"MoneyV2\";\n amount: any;\n currencyCode: CurrencyCode;\n };\n compareAtPrice?: {\n __typename?: \"MoneyV2\";\n amount: any;\n currencyCode: CurrencyCode;\n } | null;\n };\n }\n | {\n __typename?: \"ComponentizableCartLine\";\n id: string;\n quantity: number;\n cost: {\n __typename?: \"CartLineCost\";\n totalAmount: {\n __typename?: \"MoneyV2\";\n amount: any;\n currencyCode: CurrencyCode;\n };\n };\n merchandise: {\n __typename?: \"ProductVariant\";\n id: string;\n sku?: string | null;\n title: string;\n availableForSale: boolean;\n requiresShipping: boolean;\n product: {\n __typename?: \"Product\";\n id: string;\n handle: string;\n availableForSale: boolean;\n title: string;\n productType: string;\n description: string;\n descriptionHtml: any;\n tags: Array<string>;\n updatedAt: any;\n vendor: string;\n options: Array<{\n __typename?: \"ProductOption\";\n id: string;\n name: string;\n values: Array<string>;\n }>;\n priceRange: {\n __typename?: \"ProductPriceRange\";\n maxVariantPrice: {\n __typename?: \"MoneyV2\";\n amount: any;\n currencyCode: CurrencyCode;\n };\n minVariantPrice: {\n __typename?: \"MoneyV2\";\n amount: any;\n currencyCode: CurrencyCode;\n };\n };\n variants: {\n __typename?: \"ProductVariantConnection\";\n edges: Array<{\n __typename?: \"ProductVariantEdge\";\n node: {\n __typename?: \"ProductVariant\";\n id: string;\n sku?: string | null;\n title: string;\n availableForSale: boolean;\n requiresShipping: boolean;\n selectedOptions: Array<{\n __typename?: \"SelectedOption\";\n name: string;\n value: string;\n }>;\n image?: {\n __typename?: \"Image\";\n url: any;\n altText?: string | null;\n width?: number | null;\n height?: number | null;\n } | null;\n price: {\n __typename?: \"MoneyV2\";\n amount: any;\n currencyCode: CurrencyCode;\n };\n compareAtPrice?: {\n __typename?: \"MoneyV2\";\n amount: any;\n currencyCode: CurrencyCode;\n } | null;\n };\n }>;\n };\n featuredImage?: {\n __typename?: \"Image\";\n url: any;\n altText?: string | null;\n width?: number | null;\n height?: number | null;\n } | null;\n images: {\n __typename?: \"ImageConnection\";\n edges: Array<{\n __typename?: \"ImageEdge\";\n node: {\n __typename?: \"Image\";\n url: any;\n altText?: string | null;\n width?: number | null;\n height?: number | null;\n };\n }>;\n };\n seo: {\n __typename?: \"SEO\";\n description?: string | null;\n title?: string | null;\n };\n };\n selectedOptions: Array<{\n __typename?: \"SelectedOption\";\n name: string;\n value: string;\n }>;\n image?: {\n __typename?: \"Image\";\n url: any;\n altText?: string | null;\n width?: number | null;\n height?: number | null;\n } | null;\n price: {\n __typename?: \"MoneyV2\";\n amount: any;\n currencyCode: CurrencyCode;\n };\n compareAtPrice?: {\n __typename?: \"MoneyV2\";\n amount: any;\n currencyCode: CurrencyCode;\n } | null;\n };\n };\n }>;\n };\n};\n\nexport type CollectionFragment = {\n __typename?: \"Collection\";\n id: string;\n title: string;\n handle: string;\n image?: {\n __typename?: \"Image\";\n url: any;\n altText?: string | null;\n width?: number | null;\n height?: number | null;\n } | null;\n};\n\nexport type ImageFragment = {\n __typename?: \"Image\";\n url: any;\n altText?: string | null;\n width?: number | null;\n height?: number | null;\n};\n\nexport type ProductVariantFragment = {\n __typename?: \"ProductVariant\";\n id: string;\n sku?: string | null;\n title: string;\n availableForSale: boolean;\n requiresShipping: boolean;\n selectedOptions: Array<{\n __typename?: \"SelectedOption\";\n name: string;\n value: string;\n }>;\n image?: {\n __typename?: \"Image\";\n url: any;\n altText?: string | null;\n width?: number | null;\n height?: number | null;\n } | null;\n price: { __typename?: \"MoneyV2\"; amount: any; currencyCode: CurrencyCode };\n compareAtPrice?: {\n __typename?: \"MoneyV2\";\n amount: any;\n currencyCode: CurrencyCode;\n } | null;\n};\n\nexport type ProductFragment = {\n __typename?: \"Product\";\n id: string;\n handle: string;\n availableForSale: boolean;\n title: string;\n productType: string;\n description: string;\n descriptionHtml: any;\n tags: Array<string>;\n updatedAt: any;\n vendor: string;\n options: Array<{\n __typename?: \"ProductOption\";\n id: string;\n name: string;\n values: Array<string>;\n }>;\n priceRange: {\n __typename?: \"ProductPriceRange\";\n maxVariantPrice: {\n __typename?: \"MoneyV2\";\n amount: any;\n currencyCode: CurrencyCode;\n };\n minVariantPrice: {\n __typename?: \"MoneyV2\";\n amount: any;\n currencyCode: CurrencyCode;\n };\n };\n variants: {\n __typename?: \"ProductVariantConnection\";\n edges: Array<{\n __typename?: \"ProductVariantEdge\";\n node: {\n __typename?: \"ProductVariant\";\n id: string;\n sku?: string | null;\n title: string;\n availableForSale: boolean;\n requiresShipping: boolean;\n selectedOptions: Array<{\n __typename?: \"SelectedOption\";\n name: string;\n value: string;\n }>;\n image?: {\n __typename?: \"Image\";\n url: any;\n altText?: string | null;\n width?: number | null;\n height?: number | null;\n } | null;\n price: {\n __typename?: \"MoneyV2\";\n amount: any;\n currencyCode: CurrencyCode;\n };\n compareAtPrice?: {\n __typename?: \"MoneyV2\";\n amount: any;\n currencyCode: CurrencyCode;\n } | null;\n };\n }>;\n };\n featuredImage?: {\n __typename?: \"Image\";\n url: any;\n altText?: string | null;\n width?: number | null;\n height?: number | null;\n } | null;\n images: {\n __typename?: \"ImageConnection\";\n edges: Array<{\n __typename?: \"ImageEdge\";\n node: {\n __typename?: \"Image\";\n url: any;\n altText?: string | null;\n width?: number | null;\n height?: number | null;\n };\n }>;\n };\n seo: {\n __typename?: \"SEO\";\n description?: string | null;\n title?: string | null;\n };\n};\n\nexport type SeoFragment = {\n __typename?: \"SEO\";\n description?: string | null;\n title?: string | null;\n};\n\nexport type AddToCartMutationVariables = Exact<{\n cartId: Scalars[\"ID\"][\"input\"];\n lines: Array<CartLineInput> | CartLineInput;\n}>;\n\nexport type AddToCartMutation = {\n __typename?: \"Mutation\";\n cartLinesAdd?: {\n __typename?: \"CartLinesAddPayload\";\n cart?: {\n __typename?: \"Cart\";\n id: string;\n createdAt: any;\n checkoutUrl: any;\n totalQuantity: number;\n cost: {\n __typename?: \"CartCost\";\n subtotalAmount: {\n __typename?: \"MoneyV2\";\n amount: any;\n currencyCode: CurrencyCode;\n };\n totalAmount: {\n __typename?: \"MoneyV2\";\n amount: any;\n currencyCode: CurrencyCode;\n };\n totalTaxAmount?: {\n __typename?: \"MoneyV2\";\n amount: any;\n currencyCode: CurrencyCode;\n } | null;\n };\n lines: {\n __typename?: \"BaseCartLineConnection\";\n edges: Array<{\n __typename?: \"BaseCartLineEdge\";\n node:\n | {\n __typename?: \"CartLine\";\n id: string;\n quantity: number;\n cost: {\n __typename?: \"CartLineCost\";\n totalAmount: {\n __typename?: \"MoneyV2\";\n amount: any;\n currencyCode: CurrencyCode;\n };\n };\n merchandise: {\n __typename?: \"ProductVariant\";\n id: string;\n sku?: string | null;\n title: string;\n availableForSale: boolean;\n requiresShipping: boolean;\n product: {\n __typename?: \"Product\";\n id: string;\n handle: string;\n availableForSale: boolean;\n title: string;\n productType: string;\n description: string;\n descriptionHtml: any;\n tags: Array<string>;\n updatedAt: any;\n vendor: string;\n options: Array<{\n __typename?: \"ProductOption\";\n id: string;\n name: string;\n values: Array<string>;\n }>;\n priceRange: {\n __typename?: \"ProductPriceRange\";\n maxVariantPrice: {\n __typename?: \"MoneyV2\";\n amount: any;\n currencyCode: CurrencyCode;\n };\n minVariantPrice: {\n __typename?: \"MoneyV2\";\n amount: any;\n currencyCode: CurrencyCode;\n };\n };\n variants: {\n __typename?: \"ProductVariantConnection\";\n edges: Array<{\n __typename?: \"ProductVariantEdge\";\n node: {\n __typename?: \"ProductVariant\";\n id: string;\n sku?: string | null;\n title: string;\n availableForSale: boolean;\n requiresShipping: boolean;\n selectedOptions: Array<{\n __typename?: \"SelectedOption\";\n name: string;\n value: string;\n }>;\n image?: {\n __typename?: \"Image\";\n url: any;\n altText?: string | null;\n width?: number | null;\n height?: number | null;\n } | null;\n price: {\n __typename?: \"MoneyV2\";\n amount: any;\n currencyCode: CurrencyCode;\n };\n compareAtPrice?: {\n __typename?: \"MoneyV2\";\n amount: any;\n currencyCode: CurrencyCode;\n } | null;\n };\n }>;\n };\n featuredImage?: {\n __typename?: \"Image\";\n url: any;\n altText?: string | null;\n width?: number | null;\n height?: number | null;\n } | null;\n images: {\n __typename?: \"ImageConnection\";\n edges: Array<{\n __typename?: \"ImageEdge\";\n node: {\n __typename?: \"Image\";\n url: any;\n altText?: string | null;\n width?: number | null;\n height?: number | null;\n };\n }>;\n };\n seo: {\n __typename?: \"SEO\";\n description?: string | null;\n title?: string | null;\n };\n };\n selectedOptions: Array<{\n __typename?: \"SelectedOption\";\n name: string;\n value: string;\n }>;\n image?: {\n __typename?: \"Image\";\n url: any;\n altText?: string | null;\n width?: number | null;\n height?: number | null;\n } | null;\n price: {\n __typename?: \"MoneyV2\";\n amount: any;\n currencyCode: CurrencyCode;\n };\n compareAtPrice?: {\n __typename?: \"MoneyV2\";\n amount: any;\n currencyCode: CurrencyCode;\n } | null;\n };\n }\n | {\n __typename?: \"ComponentizableCartLine\";\n id: string;\n quantity: number;\n cost: {\n __typename?: \"CartLineCost\";\n totalAmount: {\n __typename?: \"MoneyV2\";\n amount: any;\n currencyCode: CurrencyCode;\n };\n };\n merchandise: {\n __typename?: \"ProductVariant\";\n id: string;\n sku?: string | null;\n title: string;\n availableForSale: boolean;\n requiresShipping: boolean;\n product: {\n __typename?: \"Product\";\n id: string;\n handle: string;\n availableForSale: boolean;\n title: string;\n productType: string;\n description: string;\n descriptionHtml: any;\n tags: Array<string>;\n updatedAt: any;\n vendor: string;\n options: Array<{\n __typename?: \"ProductOption\";\n id: string;\n name: string;\n values: Array<string>;\n }>;\n priceRange: {\n __typename?: \"ProductPriceRange\";\n maxVariantPrice: {\n __typename?: \"MoneyV2\";\n amount: any;\n currencyCode: CurrencyCode;\n };\n minVariantPrice: {\n __typename?: \"MoneyV2\";\n amount: any;\n currencyCode: CurrencyCode;\n };\n };\n variants: {\n __typename?: \"ProductVariantConnection\";\n edges: Array<{\n __typename?: \"ProductVariantEdge\";\n node: {\n __typename?: \"ProductVariant\";\n id: string;\n sku?: string | null;\n title: string;\n availableForSale: boolean;\n requiresShipping: boolean;\n selectedOptions: Array<{\n __typename?: \"SelectedOption\";\n name: string;\n value: string;\n }>;\n image?: {\n __typename?: \"Image\";\n url: any;\n altText?: string | null;\n width?: number | null;\n height?: number | null;\n } | null;\n price: {\n __typename?: \"MoneyV2\";\n amount: any;\n currencyCode: CurrencyCode;\n };\n compareAtPrice?: {\n __typename?: \"MoneyV2\";\n amount: any;\n currencyCode: CurrencyCode;\n } | null;\n };\n }>;\n };\n featuredImage?: {\n __typename?: \"Image\";\n url: any;\n altText?: string | null;\n width?: number | null;\n height?: number | null;\n } | null;\n images: {\n __typename?: \"ImageConnection\";\n edges: Array<{\n __typename?: \"ImageEdge\";\n node: {\n __typename?: \"Image\";\n url: any;\n altText?: string | null;\n width?: number | null;\n height?: number | null;\n };\n }>;\n };\n seo: {\n __typename?: \"SEO\";\n description?: string | null;\n title?: string | null;\n };\n };\n selectedOptions: Array<{\n __typename?: \"SelectedOption\";\n name: string;\n value: string;\n }>;\n image?: {\n __typename?: \"Image\";\n url: any;\n altText?: string | null;\n width?: number | null;\n height?: number | null;\n } | null;\n price: {\n __typename?: \"MoneyV2\";\n amount: any;\n currencyCode: CurrencyCode;\n };\n compareAtPrice?: {\n __typename?: \"MoneyV2\";\n amount: any;\n currencyCode: CurrencyCode;\n } | null;\n };\n };\n }>;\n };\n } | null;\n } | null;\n};\n\nexport type CreateCartMutationVariables = Exact<{\n lines?: InputMaybe<Array<CartLineInput> | CartLineInput>;\n}>;\n\nexport type CreateCartMutation = {\n __typename?: \"Mutation\";\n cartCreate?: {\n __typename?: \"CartCreatePayload\";\n cart?: {\n __typename?: \"Cart\";\n id: string;\n createdAt: any;\n checkoutUrl: any;\n totalQuantity: number;\n cost: {\n __typename?: \"CartCost\";\n subtotalAmount: {\n __typename?: \"MoneyV2\";\n amount: any;\n currencyCode: CurrencyCode;\n };\n totalAmount: {\n __typename?: \"MoneyV2\";\n amount: any;\n currencyCode: CurrencyCode;\n };\n totalTaxAmount?: {\n __typename?: \"MoneyV2\";\n amount: any;\n currencyCode: CurrencyCode;\n } | null;\n };\n lines: {\n __typename?: \"BaseCartLineConnection\";\n edges: Array<{\n __typename?: \"BaseCartLineEdge\";\n node:\n | {\n __typename?: \"CartLine\";\n id: string;\n quantity: number;\n cost: {\n __typename?: \"CartLineCost\";\n totalAmount: {\n __typename?: \"MoneyV2\";\n amount: any;\n currencyCode: CurrencyCode;\n };\n };\n merchandise: {\n __typename?: \"ProductVariant\";\n id: string;\n sku?: string | null;\n title: string;\n availableForSale: boolean;\n requiresShipping: boolean;\n product: {\n __typename?: \"Product\";\n id: string;\n handle: string;\n availableForSale: boolean;\n title: string;\n productType: string;\n description: string;\n descriptionHtml: any;\n tags: Array<string>;\n updatedAt: any;\n vendor: string;\n options: Array<{\n __typename?: \"ProductOption\";\n id: string;\n name: string;\n values: Array<string>;\n }>;\n priceRange: {\n __typename?: \"ProductPriceRange\";\n maxVariantPrice: {\n __typename?: \"MoneyV2\";\n amount: any;\n currencyCode: CurrencyCode;\n };\n minVariantPrice: {\n __typename?: \"MoneyV2\";\n amount: any;\n currencyCode: CurrencyCode;\n };\n };\n variants: {\n __typename?: \"ProductVariantConnection\";\n edges: Array<{\n __typename?: \"ProductVariantEdge\";\n node: {\n __typename?: \"ProductVariant\";\n id: string;\n sku?: string | null;\n title: string;\n availableForSale: boolean;\n requiresShipping: boolean;\n selectedOptions: Array<{\n __typename?: \"SelectedOption\";\n name: string;\n value: string;\n }>;\n image?: {\n __typename?: \"Image\";\n url: any;\n altText?: string | null;\n width?: number | null;\n height?: number | null;\n } | null;\n price: {\n __typename?: \"MoneyV2\";\n amount: any;\n currencyCode: CurrencyCode;\n };\n compareAtPrice?: {\n __typename?: \"MoneyV2\";\n amount: any;\n currencyCode: CurrencyCode;\n } | null;\n };\n }>;\n };\n featuredImage?: {\n __typename?: \"Image\";\n url: any;\n altText?: string | null;\n width?: number | null;\n height?: number | null;\n } | null;\n images: {\n __typename?: \"ImageConnection\";\n edges: Array<{\n __typename?: \"ImageEdge\";\n node: {\n __typename?: \"Image\";\n url: any;\n altText?: string | null;\n width?: number | null;\n height?: number | null;\n };\n }>;\n };\n seo: {\n __typename?: \"SEO\";\n description?: string | null;\n title?: string | null;\n };\n };\n selectedOptions: Array<{\n __typename?: \"SelectedOption\";\n name: string;\n value: string;\n }>;\n image?: {\n __typename?: \"Image\";\n url: any;\n altText?: string | null;\n width?: number | null;\n height?: number | null;\n } | null;\n price: {\n __typename?: \"MoneyV2\";\n amount: any;\n currencyCode: CurrencyCode;\n };\n compareAtPrice?: {\n __typename?: \"MoneyV2\";\n amount: any;\n currencyCode: CurrencyCode;\n } | null;\n };\n }\n | {\n __typename?: \"ComponentizableCartLine\";\n id: string;\n quantity: number;\n cost: {\n __typename?: \"CartLineCost\";\n totalAmount: {\n __typename?: \"MoneyV2\";\n amount: any;\n currencyCode: CurrencyCode;\n };\n };\n merchandise: {\n __typename?: \"ProductVariant\";\n id: string;\n sku?: string | null;\n title: string;\n availableForSale: boolean;\n requiresShipping: boolean;\n product: {\n __typename?: \"Product\";\n id: string;\n handle: string;\n availableForSale: boolean;\n title: string;\n productType: string;\n description: string;\n descriptionHtml: any;\n tags: Array<string>;\n updatedAt: any;\n vendor: string;\n options: Array<{\n __typename?: \"ProductOption\";\n id: string;\n name: string;\n values: Array<string>;\n }>;\n priceRange: {\n __typename?: \"ProductPriceRange\";\n maxVariantPrice: {\n __typename?: \"MoneyV2\";\n amount: any;\n currencyCode: CurrencyCode;\n };\n minVariantPrice: {\n __typename?: \"MoneyV2\";\n amount: any;\n currencyCode: CurrencyCode;\n };\n };\n variants: {\n __typename?: \"ProductVariantConnection\";\n edges: Array<{\n __typename?: \"ProductVariantEdge\";\n node: {\n __typename?: \"ProductVariant\";\n id: string;\n sku?: string | null;\n title: string;\n availableForSale: boolean;\n requiresShipping: boolean;\n selectedOptions: Array<{\n __typename?: \"SelectedOption\";\n name: string;\n value: string;\n }>;\n image?: {\n __typename?: \"Image\";\n url: any;\n altText?: string | null;\n width?: number | null;\n height?: number | null;\n } | null;\n price: {\n __typename?: \"MoneyV2\";\n amount: any;\n currencyCode: CurrencyCode;\n };\n compareAtPrice?: {\n __typename?: \"MoneyV2\";\n amount: any;\n currencyCode: CurrencyCode;\n } | null;\n };\n }>;\n };\n featuredImage?: {\n __typename?: \"Image\";\n url: any;\n altText?: string | null;\n width?: number | null;\n height?: number | null;\n } | null;\n images: {\n __typename?: \"ImageConnection\";\n edges: Array<{\n __typename?: \"ImageEdge\";\n node: {\n __typename?: \"Image\";\n url: any;\n altText?: string | null;\n width?: number | null;\n height?: number | null;\n };\n }>;\n };\n seo: {\n __typename?: \"SEO\";\n description?: string | null;\n title?: string | null;\n };\n };\n selectedOptions: Array<{\n __typename?: \"SelectedOption\";\n name: string;\n value: string;\n }>;\n image?: {\n __typename?: \"Image\";\n url: any;\n altText?: string | null;\n width?: number | null;\n height?: number | null;\n } | null;\n price: {\n __typename?: \"MoneyV2\";\n amount: any;\n currencyCode: CurrencyCode;\n };\n compareAtPrice?: {\n __typename?: \"MoneyV2\";\n amount: any;\n currencyCode: CurrencyCode;\n } | null;\n };\n };\n }>;\n };\n } | null;\n } | null;\n};\n\nexport type EditCartItemsMutationVariables = Exact<{\n cartId: Scalars[\"ID\"][\"input\"];\n lines: Array<CartLineUpdateInput> | CartLineUpdateInput;\n}>;\n\nexport type EditCartItemsMutation = {\n __typename?: \"Mutation\";\n cartLinesUpdate?: {\n __typename?: \"CartLinesUpdatePayload\";\n cart?: {\n __typename?: \"Cart\";\n id: string;\n createdAt: any;\n checkoutUrl: any;\n totalQuantity: number;\n cost: {\n __typename?: \"CartCost\";\n subtotalAmount: {\n __typename?: \"MoneyV2\";\n amount: any;\n currencyCode: CurrencyCode;\n };\n totalAmount: {\n __typename?: \"MoneyV2\";\n amount: any;\n currencyCode: CurrencyCode;\n };\n totalTaxAmount?: {\n __typename?: \"MoneyV2\";\n amount: any;\n currencyCode: CurrencyCode;\n } | null;\n };\n lines: {\n __typename?: \"BaseCartLineConnection\";\n edges: Array<{\n __typename?: \"BaseCartLineEdge\";\n node:\n | {\n __typename?: \"CartLine\";\n id: string;\n quantity: number;\n cost: {\n __typename?: \"CartLineCost\";\n totalAmount: {\n __typename?: \"MoneyV2\";\n amount: any;\n currencyCode: CurrencyCode;\n };\n };\n merchandise: {\n __typename?: \"ProductVariant\";\n id: string;\n sku?: string | null;\n title: string;\n availableForSale: boolean;\n requiresShipping: boolean;\n product: {\n __typename?: \"Product\";\n id: string;\n handle: string;\n availableForSale: boolean;\n title: string;\n productType: string;\n description: string;\n descriptionHtml: any;\n tags: Array<string>;\n updatedAt: any;\n vendor: string;\n options: Array<{\n __typename?: \"ProductOption\";\n id: string;\n name: string;\n values: Array<string>;\n }>;\n priceRange: {\n __typename?: \"ProductPriceRange\";\n maxVariantPrice: {\n __typename?: \"MoneyV2\";\n amount: any;\n currencyCode: CurrencyCode;\n };\n minVariantPrice: {\n __typename?: \"MoneyV2\";\n amount: any;\n currencyCode: CurrencyCode;\n };\n };\n variants: {\n __typename?: \"ProductVariantConnection\";\n edges: Array<{\n __typename?: \"ProductVariantEdge\";\n node: {\n __typename?: \"ProductVariant\";\n id: string;\n sku?: string | null;\n title: string;\n availableForSale: boolean;\n requiresShipping: boolean;\n selectedOptions: Array<{\n __typename?: \"SelectedOption\";\n name: string;\n value: string;\n }>;\n image?: {\n __typename?: \"Image\";\n url: any;\n altText?: string | null;\n width?: number | null;\n height?: number | null;\n } | null;\n price: {\n __typename?: \"MoneyV2\";\n amount: any;\n currencyCode: CurrencyCode;\n };\n compareAtPrice?: {\n __typename?: \"MoneyV2\";\n amount: any;\n currencyCode: CurrencyCode;\n } | null;\n };\n }>;\n };\n featuredImage?: {\n __typename?: \"Image\";\n url: any;\n altText?: string | null;\n width?: number | null;\n height?: number | null;\n } | null;\n images: {\n __typename?: \"ImageConnection\";\n edges: Array<{\n __typename?: \"ImageEdge\";\n node: {\n __typename?: \"Image\";\n url: any;\n altText?: string | null;\n width?: number | null;\n height?: number | null;\n };\n }>;\n };\n seo: {\n __typename?: \"SEO\";\n description?: string | null;\n title?: string | null;\n };\n };\n selectedOptions: Array<{\n __typename?: \"SelectedOption\";\n name: string;\n value: string;\n }>;\n image?: {\n __typename?: \"Image\";\n url: any;\n altText?: string | null;\n width?: number | null;\n height?: number | null;\n } | null;\n price: {\n __typename?: \"MoneyV2\";\n amount: any;\n currencyCode: CurrencyCode;\n };\n compareAtPrice?: {\n __typename?: \"MoneyV2\";\n amount: any;\n currencyCode: CurrencyCode;\n } | null;\n };\n }\n | {\n __typename?: \"ComponentizableCartLine\";\n id: string;\n quantity: number;\n cost: {\n __typename?: \"CartLineCost\";\n totalAmount: {\n __typename?: \"MoneyV2\";\n amount: any;\n currencyCode: CurrencyCode;\n };\n };\n merchandise: {\n __typename?: \"ProductVariant\";\n id: string;\n sku?: string | null;\n title: string;\n availableForSale: boolean;\n requiresShipping: boolean;\n product: {\n __typename?: \"Product\";\n id: string;\n handle: string;\n availableForSale: boolean;\n title: string;\n productType: string;\n description: string;\n descriptionHtml: any;\n tags: Array<string>;\n updatedAt: any;\n vendor: string;\n options: Array<{\n __typename?: \"ProductOption\";\n id: string;\n name: string;\n values: Array<string>;\n }>;\n priceRange: {\n __typename?: \"ProductPriceRange\";\n maxVariantPrice: {\n __typename?: \"MoneyV2\";\n amount: any;\n currencyCode: CurrencyCode;\n };\n minVariantPrice: {\n __typename?: \"MoneyV2\";\n amount: any;\n currencyCode: CurrencyCode;\n };\n };\n variants: {\n __typename?: \"ProductVariantConnection\";\n edges: Array<{\n __typename?: \"ProductVariantEdge\";\n node: {\n __typename?: \"ProductVariant\";\n id: string;\n sku?: string | null;\n title: string;\n availableForSale: boolean;\n requiresShipping: boolean;\n selectedOptions: Array<{\n __typename?: \"SelectedOption\";\n name: string;\n value: string;\n }>;\n image?: {\n __typename?: \"Image\";\n url: any;\n altText?: string | null;\n width?: number | null;\n height?: number | null;\n } | null;\n price: {\n __typename?: \"MoneyV2\";\n amount: any;\n currencyCode: CurrencyCode;\n };\n compareAtPrice?: {\n __typename?: \"MoneyV2\";\n amount: any;\n currencyCode: CurrencyCode;\n } | null;\n };\n }>;\n };\n featuredImage?: {\n __typename?: \"Image\";\n url: any;\n altText?: string | null;\n width?: number | null;\n height?: number | null;\n } | null;\n images: {\n __typename?: \"ImageConnection\";\n edges: Array<{\n __typename?: \"ImageEdge\";\n node: {\n __typename?: \"Image\";\n url: any;\n altText?: string | null;\n width?: number | null;\n height?: number | null;\n };\n }>;\n };\n seo: {\n __typename?: \"SEO\";\n description?: string | null;\n title?: string | null;\n };\n };\n selectedOptions: Array<{\n __typename?: \"SelectedOption\";\n name: string;\n value: string;\n }>;\n image?: {\n __typename?: \"Image\";\n url: any;\n altText?: string | null;\n width?: number | null;\n height?: number | null;\n } | null;\n price: {\n __typename?: \"MoneyV2\";\n amount: any;\n currencyCode: CurrencyCode;\n };\n compareAtPrice?: {\n __typename?: \"MoneyV2\";\n amount: any;\n currencyCode: CurrencyCode;\n } | null;\n };\n };\n }>;\n };\n } | null;\n } | null;\n};\n\nexport type RemoveFromCartMutationVariables = Exact<{\n cartId: Scalars[\"ID\"][\"input\"];\n lineIds: Array<Scalars[\"ID\"][\"input\"]> | Scalars[\"ID\"][\"input\"];\n}>;\n\nexport type RemoveFromCartMutation = {\n __typename?: \"Mutation\";\n cartLinesRemove?: {\n __typename?: \"CartLinesRemovePayload\";\n cart?: {\n __typename?: \"Cart\";\n id: string;\n createdAt: any;\n checkoutUrl: any;\n totalQuantity: number;\n cost: {\n __typename?: \"CartCost\";\n subtotalAmount: {\n __typename?: \"MoneyV2\";\n amount: any;\n currencyCode: CurrencyCode;\n };\n totalAmount: {\n __typename?: \"MoneyV2\";\n amount: any;\n currencyCode: CurrencyCode;\n };\n totalTaxAmount?: {\n __typename?: \"MoneyV2\";\n amount: any;\n currencyCode: CurrencyCode;\n } | null;\n };\n lines: {\n __typename?: \"BaseCartLineConnection\";\n edges: Array<{\n __typename?: \"BaseCartLineEdge\";\n node:\n | {\n __typename?: \"CartLine\";\n id: string;\n quantity: number;\n cost: {\n __typename?: \"CartLineCost\";\n totalAmount: {\n __typename?: \"MoneyV2\";\n amount: any;\n currencyCode: CurrencyCode;\n };\n };\n merchandise: {\n __typename?: \"ProductVariant\";\n id: string;\n sku?: string | null;\n title: string;\n availableForSale: boolean;\n requiresShipping: boolean;\n product: {\n __typename?: \"Product\";\n id: string;\n handle: string;\n availableForSale: boolean;\n title: string;\n productType: string;\n description: string;\n descriptionHtml: any;\n tags: Array<string>;\n updatedAt: any;\n vendor: string;\n options: Array<{\n __typename?: \"ProductOption\";\n id: string;\n name: string;\n values: Array<string>;\n }>;\n priceRange: {\n __typename?: \"ProductPriceRange\";\n maxVariantPrice: {\n __typename?: \"MoneyV2\";\n amount: any;\n currencyCode: CurrencyCode;\n };\n minVariantPrice: {\n __typename?: \"MoneyV2\";\n amount: any;\n currencyCode: CurrencyCode;\n };\n };\n variants: {\n __typename?: \"ProductVariantConnection\";\n edges: Array<{\n __typename?: \"ProductVariantEdge\";\n node: {\n __typename?: \"ProductVariant\";\n id: string;\n sku?: string | null;\n title: string;\n availableForSale: boolean;\n requiresShipping: boolean;\n selectedOptions: Array<{\n __typename?: \"SelectedOption\";\n name: string;\n value: string;\n }>;\n image?: {\n __typename?: \"Image\";\n url: any;\n altText?: string | null;\n width?: number | null;\n height?: number | null;\n } | null;\n price: {\n __typename?: \"MoneyV2\";\n amount: any;\n currencyCode: CurrencyCode;\n };\n compareAtPrice?: {\n __typename?: \"MoneyV2\";\n amount: any;\n currencyCode: CurrencyCode;\n } | null;\n };\n }>;\n };\n featuredImage?: {\n __typename?: \"Image\";\n url: any;\n altText?: string | null;\n width?: number | null;\n height?: number | null;\n } | null;\n images: {\n __typename?: \"ImageConnection\";\n edges: Array<{\n __typename?: \"ImageEdge\";\n node: {\n __typename?: \"Image\";\n url: any;\n altText?: string | null;\n width?: number | null;\n height?: number | null;\n };\n }>;\n };\n seo: {\n __typename?: \"SEO\";\n description?: string | null;\n title?: string | null;\n };\n };\n selectedOptions: Array<{\n __typename?: \"SelectedOption\";\n name: string;\n value: string;\n }>;\n image?: {\n __typename?: \"Image\";\n url: any;\n altText?: string | null;\n width?: number | null;\n height?: number | null;\n } | null;\n price: {\n __typename?: \"MoneyV2\";\n amount: any;\n currencyCode: CurrencyCode;\n };\n compareAtPrice?: {\n __typename?: \"MoneyV2\";\n amount: any;\n currencyCode: CurrencyCode;\n } | null;\n };\n }\n | {\n __typename?: \"ComponentizableCartLine\";\n id: string;\n quantity: number;\n cost: {\n __typename?: \"CartLineCost\";\n totalAmount: {\n __typename?: \"MoneyV2\";\n amount: any;\n currencyCode: CurrencyCode;\n };\n };\n merchandise: {\n __typename?: \"ProductVariant\";\n id: string;\n sku?: string | null;\n title: string;\n availableForSale: boolean;\n requiresShipping: boolean;\n product: {\n __typename?: \"Product\";\n id: string;\n handle: string;\n availableForSale: boolean;\n title: string;\n productType: string;\n description: string;\n descriptionHtml: any;\n tags: Array<string>;\n updatedAt: any;\n vendor: string;\n options: Array<{\n __typename?: \"ProductOption\";\n id: string;\n name: string;\n values: Array<string>;\n }>;\n priceRange: {\n __typename?: \"ProductPriceRange\";\n maxVariantPrice: {\n __typename?: \"MoneyV2\";\n amount: any;\n currencyCode: CurrencyCode;\n };\n minVariantPrice: {\n __typename?: \"MoneyV2\";\n amount: any;\n currencyCode: CurrencyCode;\n };\n };\n variants: {\n __typename?: \"ProductVariantConnection\";\n edges: Array<{\n __typename?: \"ProductVariantEdge\";\n node: {\n __typename?: \"ProductVariant\";\n id: string;\n sku?: string | null;\n title: string;\n availableForSale: boolean;\n requiresShipping: boolean;\n selectedOptions: Array<{\n __typename?: \"SelectedOption\";\n name: string;\n value: string;\n }>;\n image?: {\n __typename?: \"Image\";\n url: any;\n altText?: string | null;\n width?: number | null;\n height?: number | null;\n } | null;\n price: {\n __typename?: \"MoneyV2\";\n amount: any;\n currencyCode: CurrencyCode;\n };\n compareAtPrice?: {\n __typename?: \"MoneyV2\";\n amount: any;\n currencyCode: CurrencyCode;\n } | null;\n };\n }>;\n };\n featuredImage?: {\n __typename?: \"Image\";\n url: any;\n altText?: string | null;\n width?: number | null;\n height?: number | null;\n } | null;\n images: {\n __typename?: \"ImageConnection\";\n edges: Array<{\n __typename?: \"ImageEdge\";\n node: {\n __typename?: \"Image\";\n url: any;\n altText?: string | null;\n width?: number | null;\n height?: number | null;\n };\n }>;\n };\n seo: {\n __typename?: \"SEO\";\n description?: string | null;\n title?: string | null;\n };\n };\n selectedOptions: Array<{\n __typename?: \"SelectedOption\";\n name: string;\n value: string;\n }>;\n image?: {\n __typename?: \"Image\";\n url: any;\n altText?: string | null;\n width?: number | null;\n height?: number | null;\n } | null;\n price: {\n __typename?: \"MoneyV2\";\n amount: any;\n currencyCode: CurrencyCode;\n };\n compareAtPrice?: {\n __typename?: \"MoneyV2\";\n amount: any;\n currencyCode: CurrencyCode;\n } | null;\n };\n };\n }>;\n };\n } | null;\n } | null;\n};\n\nexport type CustomerActivateByUrlMutationVariables = Exact<{\n activationUrl: Scalars[\"URL\"][\"input\"];\n password: Scalars[\"String\"][\"input\"];\n}>;\n\nexport type CustomerActivateByUrlMutation = {\n __typename?: \"Mutation\";\n customerActivateByUrl?: {\n __typename?: \"CustomerActivateByUrlPayload\";\n customer?: { __typename?: \"Customer\"; id: string } | null;\n customerAccessToken?: {\n __typename?: \"CustomerAccessToken\";\n accessToken: string;\n expiresAt: any;\n } | null;\n customerUserErrors: Array<{\n __typename?: \"CustomerUserError\";\n code?: CustomerErrorCode | null;\n field?: Array<string> | null;\n message: string;\n }>;\n } | null;\n};\n\nexport type GetSiteCollectionsQueryVariables = Exact<{\n first: Scalars[\"Int\"][\"input\"];\n}>;\n\nexport type GetSiteCollectionsQuery = {\n __typename?: \"QueryRoot\";\n collections: {\n __typename?: \"CollectionConnection\";\n edges: Array<{\n __typename?: \"CollectionEdge\";\n node: {\n __typename?: \"Collection\";\n id: string;\n title: string;\n handle: string;\n products: {\n __typename?: \"ProductConnection\";\n edges: Array<{\n __typename?: \"ProductEdge\";\n node: { __typename?: \"Product\"; id: string };\n }>;\n };\n image?: {\n __typename?: \"Image\";\n url: any;\n altText?: string | null;\n width?: number | null;\n height?: number | null;\n } | null;\n };\n }>;\n };\n};\n\nexport type GetAllProductVendorsQueryVariables = Exact<{\n first?: InputMaybe<Scalars[\"Int\"][\"input\"]>;\n cursor?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n}>;\n\nexport type GetAllProductVendorsQuery = {\n __typename?: \"QueryRoot\";\n products: {\n __typename?: \"ProductConnection\";\n pageInfo: {\n __typename?: \"PageInfo\";\n hasNextPage: boolean;\n hasPreviousPage: boolean;\n };\n edges: Array<{\n __typename?: \"ProductEdge\";\n cursor: string;\n node: { __typename?: \"Product\"; vendor: string };\n }>;\n };\n};\n\nexport type GetAllProductsQueryVariables = Exact<{\n first?: InputMaybe<Scalars[\"Int\"][\"input\"]>;\n query?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n sortKey?: InputMaybe<ProductSortKeys>;\n reverse?: InputMaybe<Scalars[\"Boolean\"][\"input\"]>;\n}>;\n\nexport type GetAllProductsQuery = {\n __typename?: \"QueryRoot\";\n products: {\n __typename?: \"ProductConnection\";\n pageInfo: {\n __typename?: \"PageInfo\";\n hasNextPage: boolean;\n hasPreviousPage: boolean;\n };\n edges: Array<{\n __typename?: \"ProductEdge\";\n node: {\n __typename?: \"Product\";\n id: string;\n handle: string;\n availableForSale: boolean;\n title: string;\n productType: string;\n description: string;\n descriptionHtml: any;\n tags: Array<string>;\n updatedAt: any;\n vendor: string;\n options: Array<{\n __typename?: \"ProductOption\";\n id: string;\n name: string;\n values: Array<string>;\n }>;\n priceRange: {\n __typename?: \"ProductPriceRange\";\n maxVariantPrice: {\n __typename?: \"MoneyV2\";\n amount: any;\n currencyCode: CurrencyCode;\n };\n minVariantPrice: {\n __typename?: \"MoneyV2\";\n amount: any;\n currencyCode: CurrencyCode;\n };\n };\n variants: {\n __typename?: \"ProductVariantConnection\";\n edges: Array<{\n __typename?: \"ProductVariantEdge\";\n node: {\n __typename?: \"ProductVariant\";\n id: string;\n sku?: string | null;\n title: string;\n availableForSale: boolean;\n requiresShipping: boolean;\n selectedOptions: Array<{\n __typename?: \"SelectedOption\";\n name: string;\n value: string;\n }>;\n image?: {\n __typename?: \"Image\";\n url: any;\n altText?: string | null;\n width?: number | null;\n height?: number | null;\n } | null;\n price: {\n __typename?: \"MoneyV2\";\n amount: any;\n currencyCode: CurrencyCode;\n };\n compareAtPrice?: {\n __typename?: \"MoneyV2\";\n amount: any;\n currencyCode: CurrencyCode;\n } | null;\n };\n }>;\n };\n featuredImage?: {\n __typename?: \"Image\";\n url: any;\n altText?: string | null;\n width?: number | null;\n height?: number | null;\n } | null;\n images: {\n __typename?: \"ImageConnection\";\n edges: Array<{\n __typename?: \"ImageEdge\";\n node: {\n __typename?: \"Image\";\n url: any;\n altText?: string | null;\n width?: number | null;\n height?: number | null;\n };\n }>;\n };\n seo: {\n __typename?: \"SEO\";\n description?: string | null;\n title?: string | null;\n };\n };\n }>;\n };\n};\n\nexport type GetCartQueryVariables = Exact<{\n cartId: Scalars[\"ID\"][\"input\"];\n}>;\n\nexport type GetCartQuery = {\n __typename?: \"QueryRoot\";\n cart?: {\n __typename?: \"Cart\";\n id: string;\n createdAt: any;\n checkoutUrl: any;\n totalQuantity: number;\n cost: {\n __typename?: \"CartCost\";\n subtotalAmount: {\n __typename?: \"MoneyV2\";\n amount: any;\n currencyCode: CurrencyCode;\n };\n totalAmount: {\n __typename?: \"MoneyV2\";\n amount: any;\n currencyCode: CurrencyCode;\n };\n totalTaxAmount?: {\n __typename?: \"MoneyV2\";\n amount: any;\n currencyCode: CurrencyCode;\n } | null;\n };\n lines: {\n __typename?: \"BaseCartLineConnection\";\n edges: Array<{\n __typename?: \"BaseCartLineEdge\";\n node:\n | {\n __typename?: \"CartLine\";\n id: string;\n quantity: number;\n cost: {\n __typename?: \"CartLineCost\";\n totalAmount: {\n __typename?: \"MoneyV2\";\n amount: any;\n currencyCode: CurrencyCode;\n };\n };\n merchandise: {\n __typename?: \"ProductVariant\";\n id: string;\n sku?: string | null;\n title: string;\n availableForSale: boolean;\n requiresShipping: boolean;\n product: {\n __typename?: \"Product\";\n id: string;\n handle: string;\n availableForSale: boolean;\n title: string;\n productType: string;\n description: string;\n descriptionHtml: any;\n tags: Array<string>;\n updatedAt: any;\n vendor: string;\n options: Array<{\n __typename?: \"ProductOption\";\n id: string;\n name: string;\n values: Array<string>;\n }>;\n priceRange: {\n __typename?: \"ProductPriceRange\";\n maxVariantPrice: {\n __typename?: \"MoneyV2\";\n amount: any;\n currencyCode: CurrencyCode;\n };\n minVariantPrice: {\n __typename?: \"MoneyV2\";\n amount: any;\n currencyCode: CurrencyCode;\n };\n };\n variants: {\n __typename?: \"ProductVariantConnection\";\n edges: Array<{\n __typename?: \"ProductVariantEdge\";\n node: {\n __typename?: \"ProductVariant\";\n id: string;\n sku?: string | null;\n title: string;\n availableForSale: boolean;\n requiresShipping: boolean;\n selectedOptions: Array<{\n __typename?: \"SelectedOption\";\n name: string;\n value: string;\n }>;\n image?: {\n __typename?: \"Image\";\n url: any;\n altText?: string | null;\n width?: number | null;\n height?: number | null;\n } | null;\n price: {\n __typename?: \"MoneyV2\";\n amount: any;\n currencyCode: CurrencyCode;\n };\n compareAtPrice?: {\n __typename?: \"MoneyV2\";\n amount: any;\n currencyCode: CurrencyCode;\n } | null;\n };\n }>;\n };\n featuredImage?: {\n __typename?: \"Image\";\n url: any;\n altText?: string | null;\n width?: number | null;\n height?: number | null;\n } | null;\n images: {\n __typename?: \"ImageConnection\";\n edges: Array<{\n __typename?: \"ImageEdge\";\n node: {\n __typename?: \"Image\";\n url: any;\n altText?: string | null;\n width?: number | null;\n height?: number | null;\n };\n }>;\n };\n seo: {\n __typename?: \"SEO\";\n description?: string | null;\n title?: string | null;\n };\n };\n selectedOptions: Array<{\n __typename?: \"SelectedOption\";\n name: string;\n value: string;\n }>;\n image?: {\n __typename?: \"Image\";\n url: any;\n altText?: string | null;\n width?: number | null;\n height?: number | null;\n } | null;\n price: {\n __typename?: \"MoneyV2\";\n amount: any;\n currencyCode: CurrencyCode;\n };\n compareAtPrice?: {\n __typename?: \"MoneyV2\";\n amount: any;\n currencyCode: CurrencyCode;\n } | null;\n };\n }\n | {\n __typename?: \"ComponentizableCartLine\";\n id: string;\n quantity: number;\n cost: {\n __typename?: \"CartLineCost\";\n totalAmount: {\n __typename?: \"MoneyV2\";\n amount: any;\n currencyCode: CurrencyCode;\n };\n };\n merchandise: {\n __typename?: \"ProductVariant\";\n id: string;\n sku?: string | null;\n title: string;\n availableForSale: boolean;\n requiresShipping: boolean;\n product: {\n __typename?: \"Product\";\n id: string;\n handle: string;\n availableForSale: boolean;\n title: string;\n productType: string;\n description: string;\n descriptionHtml: any;\n tags: Array<string>;\n updatedAt: any;\n vendor: string;\n options: Array<{\n __typename?: \"ProductOption\";\n id: string;\n name: string;\n values: Array<string>;\n }>;\n priceRange: {\n __typename?: \"ProductPriceRange\";\n maxVariantPrice: {\n __typename?: \"MoneyV2\";\n amount: any;\n currencyCode: CurrencyCode;\n };\n minVariantPrice: {\n __typename?: \"MoneyV2\";\n amount: any;\n currencyCode: CurrencyCode;\n };\n };\n variants: {\n __typename?: \"ProductVariantConnection\";\n edges: Array<{\n __typename?: \"ProductVariantEdge\";\n node: {\n __typename?: \"ProductVariant\";\n id: string;\n sku?: string | null;\n title: string;\n availableForSale: boolean;\n requiresShipping: boolean;\n selectedOptions: Array<{\n __typename?: \"SelectedOption\";\n name: string;\n value: string;\n }>;\n image?: {\n __typename?: \"Image\";\n url: any;\n altText?: string | null;\n width?: number | null;\n height?: number | null;\n } | null;\n price: {\n __typename?: \"MoneyV2\";\n amount: any;\n currencyCode: CurrencyCode;\n };\n compareAtPrice?: {\n __typename?: \"MoneyV2\";\n amount: any;\n currencyCode: CurrencyCode;\n } | null;\n };\n }>;\n };\n featuredImage?: {\n __typename?: \"Image\";\n url: any;\n altText?: string | null;\n width?: number | null;\n height?: number | null;\n } | null;\n images: {\n __typename?: \"ImageConnection\";\n edges: Array<{\n __typename?: \"ImageEdge\";\n node: {\n __typename?: \"Image\";\n url: any;\n altText?: string | null;\n width?: number | null;\n height?: number | null;\n };\n }>;\n };\n seo: {\n __typename?: \"SEO\";\n description?: string | null;\n title?: string | null;\n };\n };\n selectedOptions: Array<{\n __typename?: \"SelectedOption\";\n name: string;\n value: string;\n }>;\n image?: {\n __typename?: \"Image\";\n url: any;\n altText?: string | null;\n width?: number | null;\n height?: number | null;\n } | null;\n price: {\n __typename?: \"MoneyV2\";\n amount: any;\n currencyCode: CurrencyCode;\n };\n compareAtPrice?: {\n __typename?: \"MoneyV2\";\n amount: any;\n currencyCode: CurrencyCode;\n } | null;\n };\n };\n }>;\n };\n } | null;\n};\n\nexport type GetProductsFromCollectionQueryVariables = Exact<{\n categoryId: Scalars[\"ID\"][\"input\"];\n first?: InputMaybe<Scalars[\"Int\"][\"input\"]>;\n sortKey?: InputMaybe<ProductCollectionSortKeys>;\n reverse?: InputMaybe<Scalars[\"Boolean\"][\"input\"]>;\n}>;\n\nexport type GetProductsFromCollectionQuery = {\n __typename?: \"QueryRoot\";\n node?:\n | { __typename?: \"AppliedGiftCard\"; id: string }\n | { __typename?: \"Article\"; id: string }\n | { __typename?: \"Blog\"; id: string }\n | { __typename?: \"Cart\"; id: string }\n | { __typename?: \"CartLine\"; id: string }\n | {\n __typename?: \"Collection\";\n id: string;\n title: string;\n handle: string;\n products: {\n __typename?: \"ProductConnection\";\n edges: Array<{\n __typename?: \"ProductEdge\";\n node: {\n __typename?: \"Product\";\n id: string;\n handle: string;\n availableForSale: boolean;\n title: string;\n productType: string;\n description: string;\n descriptionHtml: any;\n tags: Array<string>;\n updatedAt: any;\n vendor: string;\n options: Array<{\n __typename?: \"ProductOption\";\n id: string;\n name: string;\n values: Array<string>;\n }>;\n priceRange: {\n __typename?: \"ProductPriceRange\";\n maxVariantPrice: {\n __typename?: \"MoneyV2\";\n amount: any;\n currencyCode: CurrencyCode;\n };\n minVariantPrice: {\n __typename?: \"MoneyV2\";\n amount: any;\n currencyCode: CurrencyCode;\n };\n };\n variants: {\n __typename?: \"ProductVariantConnection\";\n edges: Array<{\n __typename?: \"ProductVariantEdge\";\n node: {\n __typename?: \"ProductVariant\";\n id: string;\n sku?: string | null;\n title: string;\n availableForSale: boolean;\n requiresShipping: boolean;\n selectedOptions: Array<{\n __typename?: \"SelectedOption\";\n name: string;\n value: string;\n }>;\n image?: {\n __typename?: \"Image\";\n url: any;\n altText?: string | null;\n width?: number | null;\n height?: number | null;\n } | null;\n price: {\n __typename?: \"MoneyV2\";\n amount: any;\n currencyCode: CurrencyCode;\n };\n compareAtPrice?: {\n __typename?: \"MoneyV2\";\n amount: any;\n currencyCode: CurrencyCode;\n } | null;\n };\n }>;\n };\n featuredImage?: {\n __typename?: \"Image\";\n url: any;\n altText?: string | null;\n width?: number | null;\n height?: number | null;\n } | null;\n images: {\n __typename?: \"ImageConnection\";\n edges: Array<{\n __typename?: \"ImageEdge\";\n node: {\n __typename?: \"Image\";\n url: any;\n altText?: string | null;\n width?: number | null;\n height?: number | null;\n };\n }>;\n };\n seo: {\n __typename?: \"SEO\";\n description?: string | null;\n title?: string | null;\n };\n };\n }>;\n };\n image?: {\n __typename?: \"Image\";\n url: any;\n altText?: string | null;\n width?: number | null;\n height?: number | null;\n } | null;\n }\n | { __typename?: \"Comment\"; id: string }\n | { __typename?: \"Company\"; id: string }\n | { __typename?: \"CompanyContact\"; id: string }\n | { __typename?: \"CompanyLocation\"; id: string }\n | { __typename?: \"ComponentizableCartLine\"; id: string }\n | { __typename?: \"ExternalVideo\"; id: string }\n | { __typename?: \"GenericFile\"; id: string }\n | { __typename?: \"Location\"; id: string }\n | { __typename?: \"MailingAddress\"; id: string }\n | { __typename?: \"Market\"; id: string }\n | { __typename?: \"MediaImage\"; id: string }\n | { __typename?: \"MediaPresentation\"; id: string }\n | { __typename?: \"Menu\"; id: string }\n | { __typename?: \"MenuItem\"; id: string }\n | { __typename?: \"Metafield\"; id: string }\n | { __typename?: \"Metaobject\"; id: string }\n | { __typename?: \"Model3d\"; id: string }\n | { __typename?: \"Order\"; id: string }\n | { __typename?: \"Page\"; id: string }\n | { __typename?: \"Product\"; id: string }\n | { __typename?: \"ProductOption\"; id: string }\n | { __typename?: \"ProductOptionValue\"; id: string }\n | { __typename?: \"ProductVariant\"; id: string }\n | { __typename?: \"Shop\"; id: string }\n | { __typename?: \"ShopPayInstallmentsFinancingPlan\"; id: string }\n | { __typename?: \"ShopPayInstallmentsFinancingPlanTerm\"; id: string }\n | { __typename?: \"ShopPayInstallmentsProductVariantPricing\"; id: string }\n | { __typename?: \"ShopPolicy\"; id: string }\n | { __typename?: \"TaxonomyCategory\"; id: string }\n | { __typename?: \"UrlRedirect\"; id: string }\n | { __typename?: \"Video\"; id: string }\n | null;\n};\n\nexport type GetSiteCollectionQueryVariables = Exact<{\n id?: InputMaybe<Scalars[\"ID\"][\"input\"]>;\n handle?: InputMaybe<Scalars[\"String\"][\"input\"]>;\n first?: InputMaybe<Scalars[\"Int\"][\"input\"]>;\n}>;\n\nexport type GetSiteCollectionQuery = {\n __typename?: \"QueryRoot\";\n collection?: {\n __typename?: \"Collection\";\n id: string;\n title: string;\n handle: string;\n products: {\n __typename?: \"ProductConnection\";\n edges: Array<{\n __typename?: \"ProductEdge\";\n node: { __typename?: \"Product\"; id: string };\n }>;\n };\n image?: {\n __typename?: \"Image\";\n url: any;\n altText?: string | null;\n width?: number | null;\n height?: number | null;\n } | null;\n } | null;\n};\n\nexport type GetProductBySlugQueryVariables = Exact<{\n slug: Scalars[\"String\"][\"input\"];\n}>;\n\nexport type GetProductBySlugQuery = {\n __typename?: \"QueryRoot\";\n productByHandle?: {\n __typename?: \"Product\";\n id: string;\n handle: string;\n availableForSale: boolean;\n title: string;\n productType: string;\n description: string;\n descriptionHtml: any;\n tags: Array<string>;\n updatedAt: any;\n vendor: string;\n options: Array<{\n __typename?: \"ProductOption\";\n id: string;\n name: string;\n values: Array<string>;\n }>;\n priceRange: {\n __typename?: \"ProductPriceRange\";\n maxVariantPrice: {\n __typename?: \"MoneyV2\";\n amount: any;\n currencyCode: CurrencyCode;\n };\n minVariantPrice: {\n __typename?: \"MoneyV2\";\n amount: any;\n currencyCode: CurrencyCode;\n };\n };\n variants: {\n __typename?: \"ProductVariantConnection\";\n edges: Array<{\n __typename?: \"ProductVariantEdge\";\n node: {\n __typename?: \"ProductVariant\";\n id: string;\n sku?: string | null;\n title: string;\n availableForSale: boolean;\n requiresShipping: boolean;\n selectedOptions: Array<{\n __typename?: \"SelectedOption\";\n name: string;\n value: string;\n }>;\n image?: {\n __typename?: \"Image\";\n url: any;\n altText?: string | null;\n width?: number | null;\n height?: number | null;\n } | null;\n price: {\n __typename?: \"MoneyV2\";\n amount: any;\n currencyCode: CurrencyCode;\n };\n compareAtPrice?: {\n __typename?: \"MoneyV2\";\n amount: any;\n currencyCode: CurrencyCode;\n } | null;\n };\n }>;\n };\n featuredImage?: {\n __typename?: \"Image\";\n url: any;\n altText?: string | null;\n width?: number | null;\n height?: number | null;\n } | null;\n images: {\n __typename?: \"ImageConnection\";\n edges: Array<{\n __typename?: \"ImageEdge\";\n node: {\n __typename?: \"Image\";\n url: any;\n altText?: string | null;\n width?: number | null;\n height?: number | null;\n };\n }>;\n };\n seo: {\n __typename?: \"SEO\";\n description?: string | null;\n title?: string | null;\n };\n } | null;\n};\n\nexport type GetProductByIdQueryVariables = Exact<{\n id: Scalars[\"ID\"][\"input\"];\n}>;\n\nexport type GetProductByIdQuery = {\n __typename?: \"QueryRoot\";\n product?: {\n __typename?: \"Product\";\n id: string;\n handle: string;\n availableForSale: boolean;\n title: string;\n productType: string;\n description: string;\n descriptionHtml: any;\n tags: Array<string>;\n updatedAt: any;\n vendor: string;\n options: Array<{\n __typename?: \"ProductOption\";\n id: string;\n name: string;\n values: Array<string>;\n }>;\n priceRange: {\n __typename?: \"ProductPriceRange\";\n maxVariantPrice: {\n __typename?: \"MoneyV2\";\n amount: any;\n currencyCode: CurrencyCode;\n };\n minVariantPrice: {\n __typename?: \"MoneyV2\";\n amount: any;\n currencyCode: CurrencyCode;\n };\n };\n variants: {\n __typename?: \"ProductVariantConnection\";\n edges: Array<{\n __typename?: \"ProductVariantEdge\";\n node: {\n __typename?: \"ProductVariant\";\n id: string;\n sku?: string | null;\n title: string;\n availableForSale: boolean;\n requiresShipping: boolean;\n selectedOptions: Array<{\n __typename?: \"SelectedOption\";\n name: string;\n value: string;\n }>;\n image?: {\n __typename?: \"Image\";\n url: any;\n altText?: string | null;\n width?: number | null;\n height?: number | null;\n } | null;\n price: {\n __typename?: \"MoneyV2\";\n amount: any;\n currencyCode: CurrencyCode;\n };\n compareAtPrice?: {\n __typename?: \"MoneyV2\";\n amount: any;\n currencyCode: CurrencyCode;\n } | null;\n };\n }>;\n };\n featuredImage?: {\n __typename?: \"Image\";\n url: any;\n altText?: string | null;\n width?: number | null;\n height?: number | null;\n } | null;\n images: {\n __typename?: \"ImageConnection\";\n edges: Array<{\n __typename?: \"ImageEdge\";\n node: {\n __typename?: \"Image\";\n url: any;\n altText?: string | null;\n width?: number | null;\n height?: number | null;\n };\n }>;\n };\n seo: {\n __typename?: \"SEO\";\n description?: string | null;\n title?: string | null;\n };\n } | null;\n};\n\nexport class TypedDocumentString<TResult, TVariables>\n extends String\n implements DocumentTypeDecoration<TResult, TVariables>\n{\n __apiType?: DocumentTypeDecoration<TResult, TVariables>[\"__apiType\"];\n\n constructor(\n private value: string,\n public __meta__?: Record<string, any> | undefined\n ) {\n super(value);\n }\n\n toString(): string & DocumentTypeDecoration<TResult, TVariables> {\n return this.value;\n }\n}\nexport const ImageFragmentDoc = new TypedDocumentString(\n `\n fragment image on Image {\n url\n altText\n width\n height\n}\n `,\n { fragmentName: \"image\" }\n) as unknown as TypedDocumentString<ImageFragment, unknown>;\nexport const ProductVariantFragmentDoc = new TypedDocumentString(\n `\n fragment productVariant on ProductVariant {\n id\n sku\n title\n availableForSale\n requiresShipping\n selectedOptions {\n name\n value\n }\n image {\n ...image\n }\n price {\n amount\n currencyCode\n }\n compareAtPrice {\n amount\n currencyCode\n }\n}\n fragment image on Image {\n url\n altText\n width\n height\n}`,\n { fragmentName: \"productVariant\" }\n) as unknown as TypedDocumentString<ProductVariantFragment, unknown>;\nexport const SeoFragmentDoc = new TypedDocumentString(\n `\n fragment seo on SEO {\n description\n title\n}\n `,\n { fragmentName: \"seo\" }\n) as unknown as TypedDocumentString<SeoFragment, unknown>;\nexport const ProductFragmentDoc = new TypedDocumentString(\n `\n fragment product on Product {\n id\n handle\n availableForSale\n title\n productType\n description\n descriptionHtml\n options {\n id\n name\n values\n }\n priceRange {\n maxVariantPrice {\n amount\n currencyCode\n }\n minVariantPrice {\n amount\n currencyCode\n }\n }\n variants(first: 250) {\n edges {\n node {\n ...productVariant\n }\n }\n }\n featuredImage {\n ...image\n }\n images(first: 20) {\n edges {\n node {\n ...image\n }\n }\n }\n seo {\n ...seo\n }\n tags\n updatedAt\n vendor\n}\n fragment image on Image {\n url\n altText\n width\n height\n}\nfragment productVariant on ProductVariant {\n id\n sku\n title\n availableForSale\n requiresShipping\n selectedOptions {\n name\n value\n }\n image {\n ...image\n }\n price {\n amount\n currencyCode\n }\n compareAtPrice {\n amount\n currencyCode\n }\n}\nfragment seo on SEO {\n description\n title\n}`,\n { fragmentName: \"product\" }\n) as unknown as TypedDocumentString<ProductFragment, unknown>;\nexport const CartFragmentDoc = new TypedDocumentString(\n `\n fragment cart on Cart {\n id\n createdAt\n checkoutUrl\n cost {\n subtotalAmount {\n amount\n currencyCode\n }\n totalAmount {\n amount\n currencyCode\n }\n totalTaxAmount {\n amount\n currencyCode\n }\n }\n lines(first: 100) {\n edges {\n node {\n id\n quantity\n cost {\n totalAmount {\n amount\n currencyCode\n }\n }\n merchandise {\n ... on ProductVariant {\n ...productVariant\n product {\n ...product\n }\n }\n }\n }\n }\n }\n totalQuantity\n}\n fragment image on Image {\n url\n altText\n width\n height\n}\nfragment productVariant on ProductVariant {\n id\n sku\n title\n availableForSale\n requiresShipping\n selectedOptions {\n name\n value\n }\n image {\n ...image\n }\n price {\n amount\n currencyCode\n }\n compareAtPrice {\n amount\n currencyCode\n }\n}\nfragment product on Product {\n id\n handle\n availableForSale\n title\n productType\n description\n descriptionHtml\n options {\n id\n name\n values\n }\n priceRange {\n maxVariantPrice {\n amount\n currencyCode\n }\n minVariantPrice {\n amount\n currencyCode\n }\n }\n variants(first: 250) {\n edges {\n node {\n ...productVariant\n }\n }\n }\n featuredImage {\n ...image\n }\n images(first: 20) {\n edges {\n node {\n ...image\n }\n }\n }\n seo {\n ...seo\n }\n tags\n updatedAt\n vendor\n}\nfragment seo on SEO {\n description\n title\n}`,\n { fragmentName: \"cart\" }\n) as unknown as TypedDocumentString<CartFragment, unknown>;\nexport const CollectionFragmentDoc = new TypedDocumentString(\n `\n fragment collection on Collection {\n id\n title\n handle\n image {\n ...image\n }\n}\n fragment image on Image {\n url\n altText\n width\n height\n}`,\n { fragmentName: \"collection\" }\n) as unknown as TypedDocumentString<CollectionFragment, unknown>;\nexport const AddToCartDocument = new TypedDocumentString(`\n mutation addToCart($cartId: ID!, $lines: [CartLineInput!]!) {\n cartLinesAdd(cartId: $cartId, lines: $lines) {\n cart {\n ...cart\n }\n }\n}\n fragment cart on Cart {\n id\n createdAt\n checkoutUrl\n cost {\n subtotalAmount {\n amount\n currencyCode\n }\n totalAmount {\n amount\n currencyCode\n }\n totalTaxAmount {\n amount\n currencyCode\n }\n }\n lines(first: 100) {\n edges {\n node {\n id\n quantity\n cost {\n totalAmount {\n amount\n currencyCode\n }\n }\n merchandise {\n ... on ProductVariant {\n ...productVariant\n product {\n ...product\n }\n }\n }\n }\n }\n }\n totalQuantity\n}\nfragment image on Image {\n url\n altText\n width\n height\n}\nfragment productVariant on ProductVariant {\n id\n sku\n title\n availableForSale\n requiresShipping\n selectedOptions {\n name\n value\n }\n image {\n ...image\n }\n price {\n amount\n currencyCode\n }\n compareAtPrice {\n amount\n currencyCode\n }\n}\nfragment product on Product {\n id\n handle\n availableForSale\n title\n productType\n description\n descriptionHtml\n options {\n id\n name\n values\n }\n priceRange {\n maxVariantPrice {\n amount\n currencyCode\n }\n minVariantPrice {\n amount\n currencyCode\n }\n }\n variants(first: 250) {\n edges {\n node {\n ...productVariant\n }\n }\n }\n featuredImage {\n ...image\n }\n images(first: 20) {\n edges {\n node {\n ...image\n }\n }\n }\n seo {\n ...seo\n }\n tags\n updatedAt\n vendor\n}\nfragment seo on SEO {\n description\n title\n}`) as unknown as TypedDocumentString<\n AddToCartMutation,\n AddToCartMutationVariables\n>;\nexport const CreateCartDocument = new TypedDocumentString(`\n mutation createCart($lines: [CartLineInput!]) {\n cartCreate(input: {lines: $lines}) {\n cart {\n ...cart\n }\n }\n}\n fragment cart on Cart {\n id\n createdAt\n checkoutUrl\n cost {\n subtotalAmount {\n amount\n currencyCode\n }\n totalAmount {\n amount\n currencyCode\n }\n totalTaxAmount {\n amount\n currencyCode\n }\n }\n lines(first: 100) {\n edges {\n node {\n id\n quantity\n cost {\n totalAmount {\n amount\n currencyCode\n }\n }\n merchandise {\n ... on ProductVariant {\n ...productVariant\n product {\n ...product\n }\n }\n }\n }\n }\n }\n totalQuantity\n}\nfragment image on Image {\n url\n altText\n width\n height\n}\nfragment productVariant on ProductVariant {\n id\n sku\n title\n availableForSale\n requiresShipping\n selectedOptions {\n name\n value\n }\n image {\n ...image\n }\n price {\n amount\n currencyCode\n }\n compareAtPrice {\n amount\n currencyCode\n }\n}\nfragment product on Product {\n id\n handle\n availableForSale\n title\n productType\n description\n descriptionHtml\n options {\n id\n name\n values\n }\n priceRange {\n maxVariantPrice {\n amount\n currencyCode\n }\n minVariantPrice {\n amount\n currencyCode\n }\n }\n variants(first: 250) {\n edges {\n node {\n ...productVariant\n }\n }\n }\n featuredImage {\n ...image\n }\n images(first: 20) {\n edges {\n node {\n ...image\n }\n }\n }\n seo {\n ...seo\n }\n tags\n updatedAt\n vendor\n}\nfragment seo on SEO {\n description\n title\n}`) as unknown as TypedDocumentString<\n CreateCartMutation,\n CreateCartMutationVariables\n>;\nexport const EditCartItemsDocument = new TypedDocumentString(`\n mutation editCartItems($cartId: ID!, $lines: [CartLineUpdateInput!]!) {\n cartLinesUpdate(cartId: $cartId, lines: $lines) {\n cart {\n ...cart\n }\n }\n}\n fragment cart on Cart {\n id\n createdAt\n checkoutUrl\n cost {\n subtotalAmount {\n amount\n currencyCode\n }\n totalAmount {\n amount\n currencyCode\n }\n totalTaxAmount {\n amount\n currencyCode\n }\n }\n lines(first: 100) {\n edges {\n node {\n id\n quantity\n cost {\n totalAmount {\n amount\n currencyCode\n }\n }\n merchandise {\n ... on ProductVariant {\n ...productVariant\n product {\n ...product\n }\n }\n }\n }\n }\n }\n totalQuantity\n}\nfragment image on Image {\n url\n altText\n width\n height\n}\nfragment productVariant on ProductVariant {\n id\n sku\n title\n availableForSale\n requiresShipping\n selectedOptions {\n name\n value\n }\n image {\n ...image\n }\n price {\n amount\n currencyCode\n }\n compareAtPrice {\n amount\n currencyCode\n }\n}\nfragment product on Product {\n id\n handle\n availableForSale\n title\n productType\n description\n descriptionHtml\n options {\n id\n name\n values\n }\n priceRange {\n maxVariantPrice {\n amount\n currencyCode\n }\n minVariantPrice {\n amount\n currencyCode\n }\n }\n variants(first: 250) {\n edges {\n node {\n ...productVariant\n }\n }\n }\n featuredImage {\n ...image\n }\n images(first: 20) {\n edges {\n node {\n ...image\n }\n }\n }\n seo {\n ...seo\n }\n tags\n updatedAt\n vendor\n}\nfragment seo on SEO {\n description\n title\n}`) as unknown as TypedDocumentString<\n EditCartItemsMutation,\n EditCartItemsMutationVariables\n>;\nexport const RemoveFromCartDocument = new TypedDocumentString(`\n mutation removeFromCart($cartId: ID!, $lineIds: [ID!]!) {\n cartLinesRemove(cartId: $cartId, lineIds: $lineIds) {\n cart {\n ...cart\n }\n }\n}\n fragment cart on Cart {\n id\n createdAt\n checkoutUrl\n cost {\n subtotalAmount {\n amount\n currencyCode\n }\n totalAmount {\n amount\n currencyCode\n }\n totalTaxAmount {\n amount\n currencyCode\n }\n }\n lines(first: 100) {\n edges {\n node {\n id\n quantity\n cost {\n totalAmount {\n amount\n currencyCode\n }\n }\n merchandise {\n ... on ProductVariant {\n ...productVariant\n product {\n ...product\n }\n }\n }\n }\n }\n }\n totalQuantity\n}\nfragment image on Image {\n url\n altText\n width\n height\n}\nfragment productVariant on ProductVariant {\n id\n sku\n title\n availableForSale\n requiresShipping\n selectedOptions {\n name\n value\n }\n image {\n ...image\n }\n price {\n amount\n currencyCode\n }\n compareAtPrice {\n amount\n currencyCode\n }\n}\nfragment product on Product {\n id\n handle\n availableForSale\n title\n productType\n description\n descriptionHtml\n options {\n id\n name\n values\n }\n priceRange {\n maxVariantPrice {\n amount\n currencyCode\n }\n minVariantPrice {\n amount\n currencyCode\n }\n }\n variants(first: 250) {\n edges {\n node {\n ...productVariant\n }\n }\n }\n featuredImage {\n ...image\n }\n images(first: 20) {\n edges {\n node {\n ...image\n }\n }\n }\n seo {\n ...seo\n }\n tags\n updatedAt\n vendor\n}\nfragment seo on SEO {\n description\n title\n}`) as unknown as TypedDocumentString<\n RemoveFromCartMutation,\n RemoveFromCartMutationVariables\n>;\nexport const CustomerActivateByUrlDocument = new TypedDocumentString(`\n mutation customerActivateByUrl($activationUrl: URL!, $password: String!) {\n customerActivateByUrl(activationUrl: $activationUrl, password: $password) {\n customer {\n id\n }\n customerAccessToken {\n accessToken\n expiresAt\n }\n customerUserErrors {\n code\n field\n message\n }\n }\n}\n `) as unknown as TypedDocumentString<\n CustomerActivateByUrlMutation,\n CustomerActivateByUrlMutationVariables\n>;\nexport const GetSiteCollectionsDocument = new TypedDocumentString(`\n query getSiteCollections($first: Int!) {\n collections(first: $first) {\n edges {\n node {\n ...collection\n products(first: $first) {\n edges {\n node {\n id\n }\n }\n }\n }\n }\n }\n}\n fragment collection on Collection {\n id\n title\n handle\n image {\n ...image\n }\n}\nfragment image on Image {\n url\n altText\n width\n height\n}`) as unknown as TypedDocumentString<\n GetSiteCollectionsQuery,\n GetSiteCollectionsQueryVariables\n>;\nexport const GetAllProductVendorsDocument = new TypedDocumentString(`\n query getAllProductVendors($first: Int = 250, $cursor: String) {\n products(first: $first, after: $cursor) {\n pageInfo {\n hasNextPage\n hasPreviousPage\n }\n edges {\n node {\n vendor\n }\n cursor\n }\n }\n}\n `) as unknown as TypedDocumentString<\n GetAllProductVendorsQuery,\n GetAllProductVendorsQueryVariables\n>;\nexport const GetAllProductsDocument = new TypedDocumentString(`\n query getAllProducts($first: Int = 250, $query: String = \"\", $sortKey: ProductSortKeys = RELEVANCE, $reverse: Boolean = false) {\n products(first: $first, sortKey: $sortKey, reverse: $reverse, query: $query) {\n pageInfo {\n hasNextPage\n hasPreviousPage\n }\n edges {\n node {\n ...product\n }\n }\n }\n}\n fragment image on Image {\n url\n altText\n width\n height\n}\nfragment productVariant on ProductVariant {\n id\n sku\n title\n availableForSale\n requiresShipping\n selectedOptions {\n name\n value\n }\n image {\n ...image\n }\n price {\n amount\n currencyCode\n }\n compareAtPrice {\n amount\n currencyCode\n }\n}\nfragment product on Product {\n id\n handle\n availableForSale\n title\n productType\n description\n descriptionHtml\n options {\n id\n name\n values\n }\n priceRange {\n maxVariantPrice {\n amount\n currencyCode\n }\n minVariantPrice {\n amount\n currencyCode\n }\n }\n variants(first: 250) {\n edges {\n node {\n ...productVariant\n }\n }\n }\n featuredImage {\n ...image\n }\n images(first: 20) {\n edges {\n node {\n ...image\n }\n }\n }\n seo {\n ...seo\n }\n tags\n updatedAt\n vendor\n}\nfragment seo on SEO {\n description\n title\n}`) as unknown as TypedDocumentString<\n GetAllProductsQuery,\n GetAllProductsQueryVariables\n>;\nexport const GetCartDocument = new TypedDocumentString(`\n query getCart($cartId: ID!) {\n cart(id: $cartId) {\n ...cart\n }\n}\n fragment cart on Cart {\n id\n createdAt\n checkoutUrl\n cost {\n subtotalAmount {\n amount\n currencyCode\n }\n totalAmount {\n amount\n currencyCode\n }\n totalTaxAmount {\n amount\n currencyCode\n }\n }\n lines(first: 100) {\n edges {\n node {\n id\n quantity\n cost {\n totalAmount {\n amount\n currencyCode\n }\n }\n merchandise {\n ... on ProductVariant {\n ...productVariant\n product {\n ...product\n }\n }\n }\n }\n }\n }\n totalQuantity\n}\nfragment image on Image {\n url\n altText\n width\n height\n}\nfragment productVariant on ProductVariant {\n id\n sku\n title\n availableForSale\n requiresShipping\n selectedOptions {\n name\n value\n }\n image {\n ...image\n }\n price {\n amount\n currencyCode\n }\n compareAtPrice {\n amount\n currencyCode\n }\n}\nfragment product on Product {\n id\n handle\n availableForSale\n title\n productType\n description\n descriptionHtml\n options {\n id\n name\n values\n }\n priceRange {\n maxVariantPrice {\n amount\n currencyCode\n }\n minVariantPrice {\n amount\n currencyCode\n }\n }\n variants(first: 250) {\n edges {\n node {\n ...productVariant\n }\n }\n }\n featuredImage {\n ...image\n }\n images(first: 20) {\n edges {\n node {\n ...image\n }\n }\n }\n seo {\n ...seo\n }\n tags\n updatedAt\n vendor\n}\nfragment seo on SEO {\n description\n title\n}`) as unknown as TypedDocumentString<GetCartQuery, GetCartQueryVariables>;\nexport const GetProductsFromCollectionDocument = new TypedDocumentString(`\n query getProductsFromCollection($categoryId: ID!, $first: Int = 250, $sortKey: ProductCollectionSortKeys = RELEVANCE, $reverse: Boolean = false) {\n node(id: $categoryId) {\n id\n ... on Collection {\n ...collection\n products(first: $first, sortKey: $sortKey, reverse: $reverse) {\n edges {\n node {\n ...product\n }\n }\n }\n }\n }\n}\n fragment collection on Collection {\n id\n title\n handle\n image {\n ...image\n }\n}\nfragment image on Image {\n url\n altText\n width\n height\n}\nfragment productVariant on ProductVariant {\n id\n sku\n title\n availableForSale\n requiresShipping\n selectedOptions {\n name\n value\n }\n image {\n ...image\n }\n price {\n amount\n currencyCode\n }\n compareAtPrice {\n amount\n currencyCode\n }\n}\nfragment product on Product {\n id\n handle\n availableForSale\n title\n productType\n description\n descriptionHtml\n options {\n id\n name\n values\n }\n priceRange {\n maxVariantPrice {\n amount\n currencyCode\n }\n minVariantPrice {\n amount\n currencyCode\n }\n }\n variants(first: 250) {\n edges {\n node {\n ...productVariant\n }\n }\n }\n featuredImage {\n ...image\n }\n images(first: 20) {\n edges {\n node {\n ...image\n }\n }\n }\n seo {\n ...seo\n }\n tags\n updatedAt\n vendor\n}\nfragment seo on SEO {\n description\n title\n}`) as unknown as TypedDocumentString<\n GetProductsFromCollectionQuery,\n GetProductsFromCollectionQueryVariables\n>;\nexport const GetSiteCollectionDocument = new TypedDocumentString(`\n query getSiteCollection($id: ID, $handle: String, $first: Int = 1) {\n collection(id: $id, handle: $handle) {\n ...collection\n products(first: $first) {\n edges {\n node {\n id\n }\n }\n }\n }\n}\n fragment collection on Collection {\n id\n title\n handle\n image {\n ...image\n }\n}\nfragment image on Image {\n url\n altText\n width\n height\n}`) as unknown as TypedDocumentString<\n GetSiteCollectionQuery,\n GetSiteCollectionQueryVariables\n>;\nexport const GetProductBySlugDocument = new TypedDocumentString(`\n query getProductBySlug($slug: String!) {\n productByHandle(handle: $slug) {\n ...product\n }\n}\n fragment image on Image {\n url\n altText\n width\n height\n}\nfragment productVariant on ProductVariant {\n id\n sku\n title\n availableForSale\n requiresShipping\n selectedOptions {\n name\n value\n }\n image {\n ...image\n }\n price {\n amount\n currencyCode\n }\n compareAtPrice {\n amount\n currencyCode\n }\n}\nfragment product on Product {\n id\n handle\n availableForSale\n title\n productType\n description\n descriptionHtml\n options {\n id\n name\n values\n }\n priceRange {\n maxVariantPrice {\n amount\n currencyCode\n }\n minVariantPrice {\n amount\n currencyCode\n }\n }\n variants(first: 250) {\n edges {\n node {\n ...productVariant\n }\n }\n }\n featuredImage {\n ...image\n }\n images(first: 20) {\n edges {\n node {\n ...image\n }\n }\n }\n seo {\n ...seo\n }\n tags\n updatedAt\n vendor\n}\nfragment seo on SEO {\n description\n title\n}`) as unknown as TypedDocumentString<\n GetProductBySlugQuery,\n GetProductBySlugQueryVariables\n>;\nexport const GetProductByIdDocument = new TypedDocumentString(`\n query getProductById($id: ID!) {\n product(id: $id) {\n ...product\n }\n}\n fragment image on Image {\n url\n altText\n width\n height\n}\nfragment productVariant on ProductVariant {\n id\n sku\n title\n availableForSale\n requiresShipping\n selectedOptions {\n name\n value\n }\n image {\n ...image\n }\n price {\n amount\n currencyCode\n }\n compareAtPrice {\n amount\n currencyCode\n }\n}\nfragment product on Product {\n id\n handle\n availableForSale\n title\n productType\n description\n descriptionHtml\n options {\n id\n name\n values\n }\n priceRange {\n maxVariantPrice {\n amount\n currencyCode\n }\n minVariantPrice {\n amount\n currencyCode\n }\n }\n variants(first: 250) {\n edges {\n node {\n ...productVariant\n }\n }\n }\n featuredImage {\n ...image\n }\n images(first: 20) {\n edges {\n node {\n ...image\n }\n }\n }\n seo {\n ...seo\n }\n tags\n updatedAt\n vendor\n}\nfragment seo on SEO {\n description\n title\n}`) as unknown as TypedDocumentString<\n GetProductByIdQuery,\n GetProductByIdQueryVariables\n>;\n","/* eslint-disable */\nimport * as types from \"./graphql\";\n\n/**\n * Map of all GraphQL operations in the project.\n *\n * This map has several performance disadvantages:\n * 1. It is not tree-shakeable, so it will include all operations in the project.\n * 2. It is not minifiable, so the string of a GraphQL query will be multiple times inside the bundle.\n * 3. It does not support dead code elimination, so it will add unused operations.\n *\n * Therefore it is highly recommended to use the babel or swc plugin for production.\n * Learn more about it here: https://the-guild.dev/graphql/codegen/plugins/presets/preset-client#reducing-bundle-size\n */\nconst documents = {\n \"\\n fragment cart on Cart {\\n id\\n createdAt\\n checkoutUrl\\n cost {\\n subtotalAmount {\\n amount\\n currencyCode\\n }\\n totalAmount {\\n amount\\n currencyCode\\n }\\n totalTaxAmount {\\n amount\\n currencyCode\\n }\\n }\\n lines(first: 100) {\\n edges {\\n node {\\n id\\n quantity\\n cost {\\n totalAmount {\\n amount\\n currencyCode\\n }\\n }\\n merchandise {\\n ... on ProductVariant {\\n ...productVariant\\n product {\\n ...product\\n }\\n }\\n }\\n }\\n }\\n }\\n totalQuantity\\n }\\n\":\n types.CartFragmentDoc,\n \"\\n fragment collection on Collection {\\n id\\n title\\n handle\\n image {\\n ...image\\n }\\n }\\n\":\n types.CollectionFragmentDoc,\n \"\\n fragment image on Image {\\n url\\n altText\\n width\\n height\\n }\\n\":\n types.ImageFragmentDoc,\n \"\\n fragment productVariant on ProductVariant {\\n id\\n sku\\n title\\n availableForSale\\n requiresShipping\\n selectedOptions {\\n name\\n value\\n }\\n image {\\n ...image\\n }\\n price {\\n amount\\n currencyCode\\n }\\n compareAtPrice {\\n amount\\n currencyCode\\n }\\n }\\n\":\n types.ProductVariantFragmentDoc,\n \"\\n fragment product on Product {\\n id\\n handle\\n availableForSale\\n title\\n productType\\n description\\n descriptionHtml\\n options {\\n id\\n name\\n values\\n }\\n priceRange {\\n maxVariantPrice {\\n amount\\n currencyCode\\n }\\n minVariantPrice {\\n amount\\n currencyCode\\n }\\n }\\n variants(first: 250) {\\n edges {\\n node {\\n ...productVariant\\n }\\n }\\n }\\n featuredImage {\\n ...image\\n }\\n images(first: 20) {\\n edges {\\n node {\\n ...image\\n }\\n }\\n }\\n seo {\\n ...seo\\n }\\n tags\\n updatedAt\\n vendor\\n }\\n\":\n types.ProductFragmentDoc,\n \"\\n fragment seo on SEO {\\n description\\n title\\n }\\n\":\n types.SeoFragmentDoc,\n \"\\n mutation addToCart($cartId: ID!, $lines: [CartLineInput!]!) {\\n cartLinesAdd(cartId: $cartId, lines: $lines) {\\n cart {\\n ...cart\\n }\\n }\\n }\\n\":\n types.AddToCartDocument,\n \"\\n mutation createCart($lines: [CartLineInput!]) {\\n cartCreate(input: { lines: $lines }) {\\n cart {\\n ...cart\\n }\\n }\\n }\\n\":\n types.CreateCartDocument,\n \"\\n mutation editCartItems($cartId: ID!, $lines: [CartLineUpdateInput!]!) {\\n cartLinesUpdate(cartId: $cartId, lines: $lines) {\\n cart {\\n ...cart\\n }\\n }\\n }\\n\":\n types.EditCartItemsDocument,\n \"\\n mutation removeFromCart($cartId: ID!, $lineIds: [ID!]!) {\\n cartLinesRemove(cartId: $cartId, lineIds: $lineIds) {\\n cart {\\n ...cart\\n }\\n }\\n }\\n\":\n types.RemoveFromCartDocument,\n \"\\n mutation customerActivateByUrl($activationUrl: URL!, $password: String!) {\\n customerActivateByUrl(activationUrl: $activationUrl, password: $password) {\\n customer {\\n id\\n }\\n customerAccessToken {\\n accessToken\\n expiresAt\\n }\\n customerUserErrors {\\n code\\n field\\n message\\n }\\n }\\n }\\n\":\n types.CustomerActivateByUrlDocument,\n \"\\n query getSiteCollections($first: Int!) {\\n collections(first: $first) {\\n edges {\\n node {\\n ...collection\\n products(first: $first) {\\n edges {\\n node {\\n id\\n }\\n }\\n }\\n }\\n }\\n }\\n }\\n\":\n types.GetSiteCollectionsDocument,\n \"\\n query getAllProductVendors($first: Int = 250, $cursor: String) {\\n products(first: $first, after: $cursor) {\\n pageInfo {\\n hasNextPage\\n hasPreviousPage\\n }\\n edges {\\n node {\\n vendor\\n }\\n cursor\\n }\\n }\\n }\\n\":\n types.GetAllProductVendorsDocument,\n '\\n query getAllProducts(\\n $first: Int = 250\\n $query: String = \"\"\\n $sortKey: ProductSortKeys = RELEVANCE\\n $reverse: Boolean = false\\n ) {\\n products(\\n first: $first\\n sortKey: $sortKey\\n reverse: $reverse\\n query: $query\\n ) {\\n pageInfo {\\n hasNextPage\\n hasPreviousPage\\n }\\n edges {\\n node {\\n ...product\\n }\\n }\\n }\\n }\\n':\n types.GetAllProductsDocument,\n \"\\n query getCart($cartId: ID!) {\\n cart(id: $cartId) {\\n ...cart\\n }\\n }\\n\":\n types.GetCartDocument,\n \"\\n query getProductsFromCollection(\\n $categoryId: ID!\\n $first: Int = 250\\n $sortKey: ProductCollectionSortKeys = RELEVANCE\\n $reverse: Boolean = false\\n ) {\\n node(id: $categoryId) {\\n id\\n ... on Collection {\\n ...collection\\n products(first: $first, sortKey: $sortKey, reverse: $reverse) {\\n edges {\\n node {\\n ...product\\n }\\n }\\n }\\n }\\n }\\n }\\n\":\n types.GetProductsFromCollectionDocument,\n \"\\n query getSiteCollection($id: ID, $handle: String, $first: Int = 1) {\\n collection(id: $id, handle: $handle) {\\n ...collection\\n products(first: $first) {\\n edges {\\n node {\\n id\\n }\\n }\\n }\\n }\\n }\\n\":\n types.GetSiteCollectionDocument,\n \"\\n query getProductBySlug($slug: String!) {\\n productByHandle(handle: $slug) {\\n ...product\\n }\\n }\\n\":\n types.GetProductBySlugDocument,\n \"\\n query getProductById($id: ID!) {\\n product(id: $id) {\\n ...product\\n }\\n }\\n\":\n types.GetProductByIdDocument,\n};\n\n/**\n * The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.\n */\nexport function graphql(\n source: \"\\n fragment cart on Cart {\\n id\\n createdAt\\n checkoutUrl\\n cost {\\n subtotalAmount {\\n amount\\n currencyCode\\n }\\n totalAmount {\\n amount\\n currencyCode\\n }\\n totalTaxAmount {\\n amount\\n currencyCode\\n }\\n }\\n lines(first: 100) {\\n edges {\\n node {\\n id\\n quantity\\n cost {\\n totalAmount {\\n amount\\n currencyCode\\n }\\n }\\n merchandise {\\n ... on ProductVariant {\\n ...productVariant\\n product {\\n ...product\\n }\\n }\\n }\\n }\\n }\\n }\\n totalQuantity\\n }\\n\"\n): typeof import(\"./graphql\").CartFragmentDoc;\n/**\n * The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.\n */\nexport function graphql(\n source: \"\\n fragment collection on Collection {\\n id\\n title\\n handle\\n image {\\n ...image\\n }\\n }\\n\"\n): typeof import(\"./graphql\").CollectionFragmentDoc;\n/**\n * The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.\n */\nexport function graphql(\n source: \"\\n fragment image on Image {\\n url\\n altText\\n width\\n height\\n }\\n\"\n): typeof import(\"./graphql\").ImageFragmentDoc;\n/**\n * The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.\n */\nexport function graphql(\n source: \"\\n fragment productVariant on ProductVariant {\\n id\\n sku\\n title\\n availableForSale\\n requiresShipping\\n selectedOptions {\\n name\\n value\\n }\\n image {\\n ...image\\n }\\n price {\\n amount\\n currencyCode\\n }\\n compareAtPrice {\\n amount\\n currencyCode\\n }\\n }\\n\"\n): typeof import(\"./graphql\").ProductVariantFragmentDoc;\n/**\n * The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.\n */\nexport function graphql(\n source: \"\\n fragment product on Product {\\n id\\n handle\\n availableForSale\\n title\\n productType\\n description\\n descriptionHtml\\n options {\\n id\\n name\\n values\\n }\\n priceRange {\\n maxVariantPrice {\\n amount\\n currencyCode\\n }\\n minVariantPrice {\\n amount\\n currencyCode\\n }\\n }\\n variants(first: 250) {\\n edges {\\n node {\\n ...productVariant\\n }\\n }\\n }\\n featuredImage {\\n ...image\\n }\\n images(first: 20) {\\n edges {\\n node {\\n ...image\\n }\\n }\\n }\\n seo {\\n ...seo\\n }\\n tags\\n updatedAt\\n vendor\\n }\\n\"\n): typeof import(\"./graphql\").ProductFragmentDoc;\n/**\n * The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.\n */\nexport function graphql(\n source: \"\\n fragment seo on SEO {\\n description\\n title\\n }\\n\"\n): typeof import(\"./graphql\").SeoFragmentDoc;\n/**\n * The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.\n */\nexport function graphql(\n source: \"\\n mutation addToCart($cartId: ID!, $lines: [CartLineInput!]!) {\\n cartLinesAdd(cartId: $cartId, lines: $lines) {\\n cart {\\n ...cart\\n }\\n }\\n }\\n\"\n): typeof import(\"./graphql\").AddToCartDocument;\n/**\n * The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.\n */\nexport function graphql(\n source: \"\\n mutation createCart($lines: [CartLineInput!]) {\\n cartCreate(input: { lines: $lines }) {\\n cart {\\n ...cart\\n }\\n }\\n }\\n\"\n): typeof import(\"./graphql\").CreateCartDocument;\n/**\n * The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.\n */\nexport function graphql(\n source: \"\\n mutation editCartItems($cartId: ID!, $lines: [CartLineUpdateInput!]!) {\\n cartLinesUpdate(cartId: $cartId, lines: $lines) {\\n cart {\\n ...cart\\n }\\n }\\n }\\n\"\n): typeof import(\"./graphql\").EditCartItemsDocument;\n/**\n * The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.\n */\nexport function graphql(\n source: \"\\n mutation removeFromCart($cartId: ID!, $lineIds: [ID!]!) {\\n cartLinesRemove(cartId: $cartId, lineIds: $lineIds) {\\n cart {\\n ...cart\\n }\\n }\\n }\\n\"\n): typeof import(\"./graphql\").RemoveFromCartDocument;\n/**\n * The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.\n */\nexport function graphql(\n source: \"\\n mutation customerActivateByUrl($activationUrl: URL!, $password: String!) {\\n customerActivateByUrl(activationUrl: $activationUrl, password: $password) {\\n customer {\\n id\\n }\\n customerAccessToken {\\n accessToken\\n expiresAt\\n }\\n customerUserErrors {\\n code\\n field\\n message\\n }\\n }\\n }\\n\"\n): typeof import(\"./graphql\").CustomerActivateByUrlDocument;\n/**\n * The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.\n */\nexport function graphql(\n source: \"\\n query getSiteCollections($first: Int!) {\\n collections(first: $first) {\\n edges {\\n node {\\n ...collection\\n products(first: $first) {\\n edges {\\n node {\\n id\\n }\\n }\\n }\\n }\\n }\\n }\\n }\\n\"\n): typeof import(\"./graphql\").GetSiteCollectionsDocument;\n/**\n * The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.\n */\nexport function graphql(\n source: \"\\n query getAllProductVendors($first: Int = 250, $cursor: String) {\\n products(first: $first, after: $cursor) {\\n pageInfo {\\n hasNextPage\\n hasPreviousPage\\n }\\n edges {\\n node {\\n vendor\\n }\\n cursor\\n }\\n }\\n }\\n\"\n): typeof import(\"./graphql\").GetAllProductVendorsDocument;\n/**\n * The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.\n */\nexport function graphql(\n source: '\\n query getAllProducts(\\n $first: Int = 250\\n $query: String = \"\"\\n $sortKey: ProductSortKeys = RELEVANCE\\n $reverse: Boolean = false\\n ) {\\n products(\\n first: $first\\n sortKey: $sortKey\\n reverse: $reverse\\n query: $query\\n ) {\\n pageInfo {\\n hasNextPage\\n hasPreviousPage\\n }\\n edges {\\n node {\\n ...product\\n }\\n }\\n }\\n }\\n'\n): typeof import(\"./graphql\").GetAllProductsDocument;\n/**\n * The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.\n */\nexport function graphql(\n source: \"\\n query getCart($cartId: ID!) {\\n cart(id: $cartId) {\\n ...cart\\n }\\n }\\n\"\n): typeof import(\"./graphql\").GetCartDocument;\n/**\n * The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.\n */\nexport function graphql(\n source: \"\\n query getProductsFromCollection(\\n $categoryId: ID!\\n $first: Int = 250\\n $sortKey: ProductCollectionSortKeys = RELEVANCE\\n $reverse: Boolean = false\\n ) {\\n node(id: $categoryId) {\\n id\\n ... on Collection {\\n ...collection\\n products(first: $first, sortKey: $sortKey, reverse: $reverse) {\\n edges {\\n node {\\n ...product\\n }\\n }\\n }\\n }\\n }\\n }\\n\"\n): typeof import(\"./graphql\").GetProductsFromCollectionDocument;\n/**\n * The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.\n */\nexport function graphql(\n source: \"\\n query getSiteCollection($id: ID, $handle: String, $first: Int = 1) {\\n collection(id: $id, handle: $handle) {\\n ...collection\\n products(first: $first) {\\n edges {\\n node {\\n id\\n }\\n }\\n }\\n }\\n }\\n\"\n): typeof import(\"./graphql\").GetSiteCollectionDocument;\n/**\n * The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.\n */\nexport function graphql(\n source: \"\\n query getProductBySlug($slug: String!) {\\n productByHandle(handle: $slug) {\\n ...product\\n }\\n }\\n\"\n): typeof import(\"./graphql\").GetProductBySlugDocument;\n/**\n * The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.\n */\nexport function graphql(\n source: \"\\n query getProductById($id: ID!) {\\n product(id: $id) {\\n ...product\\n }\\n }\\n\"\n): typeof import(\"./graphql\").GetProductByIdDocument;\n\nexport function graphql(source: string) {\n return (documents as any)[source] ?? {};\n}\n","import { graphql } from \"../graphql/gen\";\n\nexport const addToCartMutation = graphql(`\n mutation addToCart($cartId: ID!, $lines: [CartLineInput!]!) {\n cartLinesAdd(cartId: $cartId, lines: $lines) {\n cart {\n ...cart\n }\n }\n }\n`);\n\nexport const createCartMutation = graphql(`\n mutation createCart($lines: [CartLineInput!]) {\n cartCreate(input: { lines: $lines }) {\n cart {\n ...cart\n }\n }\n }\n`);\n\nexport const editCartItemsMutation = graphql(`\n mutation editCartItems($cartId: ID!, $lines: [CartLineUpdateInput!]!) {\n cartLinesUpdate(cartId: $cartId, lines: $lines) {\n cart {\n ...cart\n }\n }\n }\n`);\n\nexport const removeFromCartMutation = graphql(`\n mutation removeFromCart($cartId: ID!, $lineIds: [ID!]!) {\n cartLinesRemove(cartId: $cartId, lineIds: $lineIds) {\n cart {\n ...cart\n }\n }\n }\n`);\n","/*\n Forked from https://github.com/vercel/commerce/tree/main/packages/shopify/src\n Changes: None\n*/\nexport const colorMap: Record<string, string> = {\n aliceblue: '#F0F8FF',\n antiquewhite: '#FAEBD7',\n aqua: '#00FFFF',\n aquamarine: '#7FFFD4',\n azure: '#F0FFFF',\n beige: '#F5F5DC',\n bisque: '#FFE4C4',\n black: '#000000',\n blanchedalmond: '#FFEBCD',\n blue: '#0000FF',\n blueviolet: '#8A2BE2',\n brown: '#A52A2A',\n burlywood: '#DEB887',\n burgandy: '#800020',\n burgundy: '#800020',\n cadetblue: '#5F9EA0',\n chartreuse: '#7FFF00',\n chocolate: '#D2691E',\n coral: '#FF7F50',\n cornflowerblue: '#6495ED',\n cornsilk: '#FFF8DC',\n crimson: '#DC143C',\n cyan: '#00FFFF',\n darkblue: '#00008B',\n darkcyan: '#008B8B',\n darkgoldenrod: '#B8860B',\n darkgray: '#A9A9A9',\n darkgreen: '#006400',\n darkgrey: '#A9A9A9',\n darkkhaki: '#BDB76B',\n darkmagenta: '#8B008B',\n darkolivegreen: '#556B2F',\n darkorange: '#FF8C00',\n darkorchid: '#9932CC',\n darkred: '#8B0000',\n darksalmon: '#E9967A',\n darkseagreen: '#8FBC8F',\n darkslateblue: '#483D8B',\n darkslategray: '#2F4F4F',\n darkslategrey: '#2F4F4F',\n darkturquoise: '#00CED1',\n darkviolet: '#9400D3',\n deeppink: '#FF1493',\n deepskyblue: '#00BFFF',\n dimgray: '#696969',\n dimgrey: '#696969',\n dodgerblue: '#1E90FF',\n firebrick: '#B22222',\n floralwhite: '#FFFAF0',\n forestgreen: '#228B22',\n fuchsia: '#FF00FF',\n gainsboro: '#DCDCDC',\n ghostwhite: '#F8F8FF',\n gold: '#FFD700',\n goldenrod: '#DAA520',\n gray: '#808080',\n green: '#008000',\n greenyellow: '#ADFF2F',\n grey: '#808080',\n honeydew: '#F0FFF0',\n hotpink: '#FF69B4',\n indianred: '#CD5C5C',\n indigo: '#4B0082',\n ivory: '#FFFFF0',\n khaki: '#F0E68C',\n lavender: '#E6E6FA',\n lavenderblush: '#FFF0F5',\n lawngreen: '#7CFC00',\n lemonchiffon: '#FFFACD',\n lightblue: '#ADD8E6',\n lightcoral: '#F08080',\n lightcyan: '#E0FFFF',\n lightgoldenrodyellow: '#FAFAD2',\n lightgray: '#D3D3D3',\n lightgreen: '#90EE90',\n lightgrey: '#D3D3D3',\n lightpink: '#FFB6C1',\n lightsalmon: '#FFA07A',\n lightseagreen: '#20B2AA',\n lightskyblue: '#87CEFA',\n lightslategray: '#778899',\n lightslategrey: '#778899',\n lightsteelblue: '#B0C4DE',\n lightyellow: '#FFFFE0',\n lime: '#00FF00',\n limegreen: '#32CD32',\n linen: '#FAF0E6',\n magenta: '#FF00FF',\n maroon: '#800000',\n mediumaquamarine: '#66CDAA',\n mediumblue: '#0000CD',\n mediumorchid: '#BA55D3',\n mediumpurple: '#9370DB',\n mediumseagreen: '#3CB371',\n mediumslateblue: '#7B68EE',\n mediumspringgreen: '#00FA9A',\n mediumturquoise: '#48D1CC',\n mediumvioletred: '#C71585',\n midnightblue: '#191970',\n mintcream: '#F5FFFA',\n mistyrose: '#FFE4E1',\n moccasin: '#FFE4B5',\n navajowhite: '#FFDEAD',\n navy: '#000080',\n oldlace: '#FDF5E6',\n olive: '#808000',\n olivedrab: '#6B8E23',\n orange: '#FFA500',\n orangered: '#FF4500',\n orchid: '#DA70D6',\n palegoldenrod: '#EEE8AA',\n palegreen: '#98FB98',\n paleturquoise: '#AFEEEE',\n palevioletred: '#DB7093',\n papayawhip: '#FFEFD5',\n peachpuff: '#FFDAB9',\n peru: '#CD853F',\n pink: '#FFC0CB',\n plum: '#DDA0DD',\n powderblue: '#B0E0E6',\n purple: '#800080',\n rebeccapurple: '#663399',\n red: '#FF0000',\n rosybrown: '#BC8F8F',\n royalblue: '#4169E1',\n saddlebrown: '#8B4513',\n salmon: '#FA8072',\n sandybrown: '#F4A460',\n seagreen: '#2E8B57',\n seashell: '#FFF5EE',\n sienna: '#A0522D',\n silver: '#C0C0C0',\n skyblue: '#87CEEB',\n slateblue: '#6A5ACD',\n slategray: '#708090',\n slategrey: '#708090',\n spacegrey: '#65737e',\n spacegray: '#65737e',\n snow: '#FFFAFA',\n springgreen: '#00FF7F',\n steelblue: '#4682B4',\n tan: '#D2B48C',\n teal: '#008080',\n thistle: '#D8BFD8',\n tomato: '#FF6347',\n turquoise: '#40E0D0',\n violet: '#EE82EE',\n wheat: '#F5DEB3',\n white: '#FFFFFF',\n whitesmoke: '#F5F5F5',\n yellow: '#FFFF00',\n yellowgreen: '#9ACD32',\n}\n","import type {\n Product,\n ProductImage,\n ProductOption,\n SiteTypes,\n} from \"@plasmicpkgs/commerce\";\nimport type { ShopifyCart } from \"../shopify-types\";\nimport { colorMap } from \"./colors\";\nimport {\n CartFragment,\n Collection,\n ImageFragment,\n MoneyV2,\n ProductFragment,\n SelectedOption,\n ProductOption as ShopifyProductOption,\n} from \"./graphql/gen/graphql\";\n\nconst money = ({ amount, currencyCode }: MoneyV2) => {\n return {\n value: +amount,\n currencyCode,\n };\n};\n\nconst isDefaultOption = (selectedOption: SelectedOption) =>\n selectedOption.name === \"Title\";\n\nconst normalizeProductOption = ({\n id,\n name: displayName,\n values,\n}: ShopifyProductOption): ProductOption => {\n return {\n __typename: \"MultipleChoiceOption\",\n id,\n displayName: displayName.toLowerCase(),\n values: values.map((value) => {\n let output: any = {\n label: value,\n };\n if (displayName.match(/colou?r/gi)) {\n const mapedColor = colorMap[value.toLowerCase().replace(/ /g, \"\")];\n if (mapedColor) {\n output = {\n ...output,\n hexColors: [mapedColor],\n };\n }\n }\n return output;\n }),\n };\n};\n\nexport function normalizeProduct({\n id,\n title: name,\n vendor,\n images,\n variants,\n description,\n handle,\n priceRange,\n options,\n ...rest\n}: ProductFragment): Product {\n return {\n id,\n name,\n description: description || \"\",\n path: `/${handle}`,\n slug: handle?.replace(/^\\/+|\\/+$/g, \"\"),\n price: money(priceRange?.minVariantPrice),\n images: images.edges.map((edge) => normalizeImage(edge.node)),\n variants: variants.edges.map(\n ({\n node: {\n id,\n selectedOptions,\n sku,\n title,\n price,\n compareAtPrice,\n requiresShipping,\n availableForSale,\n },\n }) => {\n return {\n id,\n name: selectedOptions.some((o) => !isDefaultOption(o))\n ? title\n : \"Default variant\",\n sku: sku ?? id,\n price: +price.amount,\n listPrice: +compareAtPrice?.amount,\n requiresShipping,\n availableForSale,\n options: selectedOptions.map(({ name, value }) => {\n const options = normalizeProductOption({\n id,\n name,\n optionValues: [\n {\n id,\n name,\n },\n ],\n values: [value],\n });\n\n return options;\n }),\n };\n }\n ),\n options: options\n ? options\n .filter((o: any) => !isDefaultOption(o)) // By default Shopify adds a 'Title' name when there's only one option. We don't need it. https://community.shopify.com/c/Shopify-APIs-SDKs/Adding-new-product-variant-is-automatically-adding-quot-Default/td-p/358095\n .map((o: any) => normalizeProductOption(o))\n : [],\n ...rest,\n };\n}\n\nexport function normalizeCart(\n cart: CartFragment | null | undefined\n): ShopifyCart | undefined {\n if (!cart) {\n return undefined;\n }\n return {\n id: cart.id,\n url: cart.checkoutUrl,\n customerId: \"\",\n email: \"\",\n createdAt: cart.createdAt,\n currency: {\n code: cart.cost.totalAmount?.currencyCode,\n },\n taxesIncluded: false,\n lineItems: cart.lines.edges.map(\n ({ node: { id, quantity, merchandise } }) => {\n return {\n id,\n variantId: merchandise.id,\n productId: merchandise.product.id,\n name: merchandise.product.title,\n quantity,\n variant: {\n id: merchandise.id,\n sku: merchandise.id ?? \"\",\n name: merchandise.title,\n image: normalizeImage(merchandise.image),\n requiresShipping: merchandise.requiresShipping,\n price: merchandise.price.amount,\n listPrice: merchandise.compareAtPrice?.amount,\n },\n path: merchandise.product.handle,\n discounts: [],\n options:\n merchandise.title === \"Default Title\"\n ? []\n : merchandise.selectedOptions,\n };\n }\n ),\n lineItemsSubtotalPrice: +cart.cost.subtotalAmount.amount,\n subtotalPrice: +cart.cost.subtotalAmount.amount,\n totalPrice: +cart.cost.totalAmount.amount,\n discounts: [],\n };\n}\n\nexport function normalizeCategory({\n title: name,\n handle,\n id,\n products,\n image,\n}: Collection): SiteTypes.Category {\n return {\n id,\n name,\n slug: handle,\n path: `/${handle}`,\n isEmpty: products.edges.length === 0,\n images: image ? [normalizeImage(image)] : undefined,\n };\n}\n\nfunction normalizeImage(image: ImageFragment | null | undefined): ProductImage {\n if (!image) {\n return {\n url: \"/product-img-placeholder.svg\",\n };\n }\n\n const { url, altText, height, width } = image;\n return {\n url,\n alt: altText || undefined,\n height: height || undefined,\n width: width || undefined,\n };\n}\n","/*\n Forked from https://github.com/vercel/commerce/tree/main/packages/shopify/src\n Changes:\n - Added sameSite and secure to the cookie options to allow third-party cookies.\n\t We need this to make work on the studio\n*/\nimport { FetcherOptions } from \"@plasmicpkgs/commerce\";\nimport Cookies from \"js-cookie\";\nimport {\n SHOPIFY_CART_ID_COOKIE,\n SHOPIFY_CHECKOUT_URL_COOKIE,\n SHOPIFY_COOKIE_EXPIRE,\n} from \"../const\";\nimport {\n CartLineInput,\n CreateCartMutation,\n CreateCartMutationVariables,\n} from \"./graphql/gen/graphql\";\nimport { createCartMutation } from \"./mutations/cart\";\nimport { normalizeCart } from \"./normalize\";\n\nexport const cartCreate = async (\n fetch: <T = any, B = Body>(options: FetcherOptions<B>) => Promise<T>,\n lines: CartLineInput[]\n) => {\n const { cartCreate } = await fetch<\n CreateCartMutation,\n CreateCartMutationVariables\n >({\n query: createCartMutation.toString(),\n variables: {\n lines,\n },\n });\n\n const cart = cartCreate?.cart;\n if (cart) {\n const options: Cookies.CookieAttributes = {\n expires: SHOPIFY_COOKIE_EXPIRE,\n sameSite: \"none\",\n secure: true,\n };\n Cookies.set(SHOPIFY_CART_ID_COOKIE, cart.id, options);\n Cookies.set(SHOPIFY_CHECKOUT_URL_COOKIE, cart.checkoutUrl, options);\n return normalizeCart(cart);\n } else {\n return undefined;\n }\n};\n","/*\n Forked from https://github.com/vercel/commerce/tree/main/packages/shopify/src\n Changes: None\n*/\nimport Cookies from \"js-cookie\";\nimport { SHOPIFY_CART_ID_COOKIE } from \"../const\";\n\nexport const getCartId = (id?: string) => {\n return id ?? Cookies.get(SHOPIFY_CART_ID_COOKIE);\n};\n","import { graphql } from \"../graphql/gen\";\n\nexport const getCartQuery = graphql(`\n query getCart($cartId: ID!) {\n cart(id: $cartId) {\n ...cart\n }\n }\n`);\n","/*\n Forked from https://github.com/vercel/commerce/tree/main/packages/shopify/src\n Changes: None\n*/\nimport {\n CartType,\n SWRHook,\n UseCart,\n useCart as useCommerceCart,\n} from \"@plasmicpkgs/commerce\";\nimport Cookies from \"js-cookie\";\nimport { useMemo } from \"react\";\nimport { SHOPIFY_CART_ID_COOKIE, SHOPIFY_CHECKOUT_URL_COOKIE } from \"../const\";\nimport {\n GetCartQuery,\n GetCartQueryVariables,\n} from \"../utils/graphql/gen/graphql\";\nimport { normalizeCart } from \"../utils/normalize\";\nimport { getCartQuery } from \"../utils/queries/get-cart-query\";\n\nexport default useCommerceCart as UseCart<typeof handler>;\n\nexport const handler: SWRHook<CartType.GetCartHook> = {\n fetchOptions: {\n query: getCartQuery.toString(),\n },\n async fetcher({ input: { cartId }, options, fetch }) {\n if (cartId) {\n const { cart } = await fetch<GetCartQuery, GetCartQueryVariables>({\n ...options,\n variables: {\n cartId,\n },\n });\n if (!cart) {\n Cookies.remove(SHOPIFY_CART_ID_COOKIE);\n Cookies.remove(SHOPIFY_CHECKOUT_URL_COOKIE);\n return null;\n } else {\n return normalizeCart(cart);\n }\n }\n return null;\n },\n useHook:\n ({ useData }) =>\n (input) => {\n const response = useData({\n swrOptions: { revalidateOnFocus: false, ...input?.swrOptions },\n });\n return useMemo(\n () =>\n Object.create(response, {\n isEmpty: {\n get() {\n return (response.data?.lineItems.length ?? 0) <= 0;\n },\n enumerable: true,\n },\n }),\n [response]\n );\n },\n};\n","/*\n Forked from https://github.com/vercel/commerce/tree/main/packages/shopify/src\n Changes: None\n*/\nimport type { MutationHook } from \"@plasmicpkgs/commerce\";\nimport {\n CartType,\n CommerceError,\n useAddItem,\n UseAddItem,\n} from \"@plasmicpkgs/commerce\";\nimport { useCallback } from \"react\";\nimport { cartCreate } from \"../utils/cart-create\";\nimport { getCartId } from \"../utils/get-cart-id\";\nimport {\n AddToCartMutation,\n AddToCartMutationVariables,\n CartLineInput,\n} from \"../utils/graphql/gen/graphql\";\nimport { addToCartMutation } from \"../utils/mutations/cart\";\nimport { normalizeCart } from \"../utils/normalize\";\nimport useCart from \"./use-cart\";\n\nexport default useAddItem as UseAddItem<typeof handler>;\n\nexport const handler: MutationHook<CartType.AddItemHook> = {\n fetchOptions: {\n query: addToCartMutation.toString(),\n },\n async fetcher({ input: item, options, fetch }) {\n if (\n item.quantity &&\n (!Number.isInteger(item.quantity) || item.quantity! < 1)\n ) {\n throw new CommerceError({\n message: \"The item quantity has to be a valid integer greater than 0\",\n });\n }\n\n const lines: CartLineInput[] = [\n {\n merchandiseId: item.variantId,\n quantity: item.quantity ?? 1,\n },\n ];\n\n let cartId = getCartId();\n if (!cartId) {\n return await cartCreate(fetch, lines);\n } else {\n const { cartLinesAdd } = await fetch<\n AddToCartMutation,\n AddToCartMutationVariables\n >({\n ...options,\n variables: {\n cartId,\n lines,\n },\n });\n return normalizeCart(cartLinesAdd?.cart);\n }\n },\n useHook:\n ({ fetch }) =>\n () => {\n const { mutate } = useCart();\n return useCallback(\n async function addItem(input) {\n const data = await fetch({ input });\n await mutate(data, false);\n return data;\n },\n [fetch, mutate]\n );\n },\n};\n","/*\n Forked from https://github.com/vercel/commerce/tree/main/packages/shopify/src\n Changes: None\n*/\nimport type {\n CartType,\n HookFetcherContext,\n MutationHookContext,\n} from \"@plasmicpkgs/commerce\";\nimport {\n useRemoveItem,\n UseRemoveItem,\n ValidationError,\n} from \"@plasmicpkgs/commerce\";\nimport { useCallback } from \"react\";\nimport type { ShopifyCart } from \"../shopify-types\";\nimport { getCartId } from \"../utils/get-cart-id\";\nimport {\n RemoveFromCartMutation,\n RemoveFromCartMutationVariables,\n} from \"../utils/graphql/gen/graphql\";\nimport { removeFromCartMutation } from \"../utils/mutations/cart\";\nimport { normalizeCart } from \"../utils/normalize\";\nimport useCart from \"./use-cart\";\n\nexport type RemoveItemFn<T = any> = T extends CartType.LineItem\n ? (\n input?: RemoveItemActionInput<T>\n ) => Promise<ShopifyCart | null | undefined>\n : (input: RemoveItemActionInput<T>) => Promise<ShopifyCart | null>;\n\nexport type RemoveItemActionInput<T = any> = T extends CartType.LineItem\n ? Partial<CartType.RemoveItemHook[\"actionInput\"]>\n : CartType.RemoveItemHook[\"actionInput\"];\n\nexport default useRemoveItem as UseRemoveItem<typeof handler>;\n\nexport const handler = {\n fetchOptions: {\n query: removeFromCartMutation.toString(),\n },\n async fetcher({\n input: { itemId },\n options,\n fetch,\n }: HookFetcherContext<CartType.RemoveItemHook>) {\n const { cartLinesRemove } = await fetch<\n RemoveFromCartMutation,\n RemoveFromCartMutationVariables\n >({\n ...options,\n variables: { cartId: getCartId(), lineIds: [itemId] },\n });\n return normalizeCart(cartLinesRemove?.cart);\n },\n useHook:\n ({ fetch }: MutationHookContext<CartType.RemoveItemHook>) =>\n <T extends CartType.LineItem | undefined = undefined>(\n ctx: { item?: T } = {}\n ) => {\n const { item } = ctx;\n const { mutate } = useCart();\n const removeItem: RemoveItemFn<CartType.LineItem> = async (input) => {\n const itemId = input?.id ?? item?.id;\n\n if (!itemId) {\n throw new ValidationError({\n message: \"Invalid input used for this operation\",\n });\n }\n\n const data = await fetch({ input: { itemId } });\n await mutate(data, false);\n return data;\n };\n\n return useCallback(removeItem as RemoveItemFn<T>, [fetch, mutate]);\n },\n};\n","/*\n Forked from https://github.com/vercel/commerce/tree/main/packages/shopify/src\n Changes: None\n*/\nimport type {\n HookFetcherContext,\n MutationHookContext,\n} from \"@plasmicpkgs/commerce\";\nimport {\n CartType,\n useUpdateItem,\n UseUpdateItem,\n ValidationError,\n} from \"@plasmicpkgs/commerce\";\nimport debounce from \"debounce\";\nimport { useCallback } from \"react\";\nimport { getCartId } from \"../utils/get-cart-id\";\nimport {\n EditCartItemsMutation,\n EditCartItemsMutationVariables,\n} from \"../utils/graphql/gen/graphql\";\nimport { editCartItemsMutation } from \"../utils/mutations/cart\";\nimport { normalizeCart } from \"../utils/normalize\";\nimport useCart from \"./use-cart\";\nimport { handler as removeItemHandler } from \"./use-remove-item\";\n\nexport type UpdateItemActionInput<T = any> = T extends CartType.LineItem\n ? Partial<CartType.UpdateItemHook[\"actionInput\"]>\n : CartType.UpdateItemHook[\"actionInput\"];\n\nexport default useUpdateItem as UseUpdateItem<typeof handler>;\n\nexport const handler = {\n fetchOptions: {\n query: editCartItemsMutation.toString(),\n },\n async fetcher({\n input: { itemId, item },\n options,\n fetch,\n }: HookFetcherContext<CartType.UpdateItemHook>) {\n if (Number.isInteger(item.quantity)) {\n // Also allow the update hook to remove an item if the quantity is lower than 1\n if (item.quantity! < 1) {\n return removeItemHandler.fetcher({\n options: removeItemHandler.fetchOptions,\n input: { itemId },\n fetch,\n });\n }\n } else if (item.quantity) {\n throw new ValidationError({\n message: \"The item quantity has to be a valid integer\",\n });\n }\n const { cartLinesUpdate } = await fetch<\n EditCartItemsMutation,\n EditCartItemsMutationVariables\n >({\n ...options,\n variables: {\n cartId: getCartId(),\n lines: [\n {\n id: itemId,\n quantity: item.quantity,\n },\n ],\n },\n });\n\n return normalizeCart(cartLinesUpdate?.cart);\n },\n useHook:\n ({ fetch }: MutationHookContext<CartType.UpdateItemHook>) =>\n <T extends CartType.LineItem | undefined = undefined>(\n ctx: {\n item?: T;\n wait?: number;\n } = {}\n ) => {\n const { item } = ctx;\n const { mutate } = useCart() as any;\n\n return useCallback(\n debounce(async (input: UpdateItemActionInput<T>) => {\n const itemId = input.id ?? item?.id;\n if (!itemId || input.quantity == null) {\n throw new ValidationError({\n message: \"Invalid input used for this operation\",\n });\n }\n\n const data = await fetch({\n input: {\n item: {\n quantity: input.quantity,\n },\n itemId,\n },\n });\n await mutate(data, false);\n return data;\n }, ctx.wait ?? 500),\n [fetch, mutate]\n );\n },\n};\n","import { Fetcher, FetcherError } from \"@plasmicpkgs/commerce\";\nimport { shopifyApiVersion } from \"./graphql-config\";\n\nexport const getFetcher: (\n storeDomain: string,\n accessToken: string\n) => Fetcher = (storeDomain, accessToken) => {\n return async ({\n url = `https://${storeDomain}/api/${shopifyApiVersion}/graphql.json`,\n method = \"POST\",\n variables,\n query,\n }) => {\n const { locale, ...vars } = variables ?? {};\n const res = await fetch(url, {\n method,\n body: JSON.stringify({ query, variables: vars }),\n headers: {\n \"X-Shopify-Storefront-Access-Token\": accessToken,\n \"Content-Type\": \"application/json\",\n ...(locale && {\n \"Accept-Language\": locale,\n }),\n },\n });\n if (res.ok) {\n const { data, errors } = await res.json();\n if (errors && errors.length) {\n throw getError(errors, res.status);\n }\n\n return data;\n } else {\n const { errors } = await res.json();\n throw getError(errors, res.status);\n }\n };\n};\n\nfunction getError(errors: any[] | null, status: number) {\n errors = errors ?? [{ message: \"Failed to fetch Shopify API\" }];\n return new FetcherError({ errors, status });\n}\n","import { graphql } from \"../graphql/gen\";\n\nexport const getProductQueryBySlug = graphql(`\n query getProductBySlug($slug: String!) {\n productByHandle(handle: $slug) {\n ...product\n }\n }\n`);\n\nexport const getProductQueryById = graphql(`\n query getProductById($id: ID!) {\n product(id: $id) {\n ...product\n }\n }\n`);\n","import type { GetProductHook } from \"@plasmicpkgs/commerce\";\nimport { SWRHook, useProduct, UseProduct } from \"@plasmicpkgs/commerce\";\nimport {\n GetProductByIdQuery,\n GetProductBySlugQuery,\n} from \"../utils/graphql/gen/graphql\";\nimport { normalizeProduct } from \"../utils/normalize\";\nimport {\n getProductQueryById,\n getProductQueryBySlug,\n} from \"../utils/queries/get-product-query\";\n\nexport default useProduct as UseProduct<typeof handler>;\n\nexport const handler: SWRHook<GetProductHook> = {\n fetchOptions: {\n query: getProductQueryBySlug.toString(),\n },\n async fetcher({ input, options, fetch }) {\n const { id } = input;\n if (!id) {\n return null;\n }\n\n let product = null;\n if (id.startsWith(\"gid://shopify\")) {\n const data = await fetch<GetProductByIdQuery>({\n query: getProductQueryById.toString(),\n variables: { id },\n });\n product = data.product;\n } else {\n const data = await fetch<GetProductBySlugQuery>({\n query: options.query,\n variables: { slug: id },\n });\n\n if (data.productByHandle) {\n product = data.productByHandle;\n }\n }\n\n return product ? normalizeProduct(product) : null;\n },\n useHook:\n ({ useData }) =>\n (input = {}) => {\n return useData({\n input: [[\"id\", input.id]],\n swrOptions: {\n revalidateOnFocus: false,\n ...input.swrOptions,\n },\n });\n },\n};\n","/*\n Forked from https://github.com/vercel/commerce/tree/main/packages/shopify/src\n Changes: None\n*/\nconst getSortVariables = (sort?: string, isCategory: boolean = false) => {\n let output = {}\n switch (sort) {\n case 'price-asc':\n output = {\n sortKey: 'PRICE',\n reverse: false,\n }\n break\n case 'price-desc':\n output = {\n sortKey: 'PRICE',\n reverse: true,\n }\n break\n case 'trending-desc':\n output = {\n sortKey: 'BEST_SELLING',\n reverse: false,\n }\n break\n case 'latest-desc':\n output = {\n sortKey: isCategory ? 'CREATED' : 'CREATED_AT',\n reverse: true,\n }\n break\n }\n return output\n}\n\nexport default getSortVariables\n","/*\n Forked from https://github.com/vercel/commerce/tree/main/packages/shopify/src\n Changes:\n - Added count as a parameter\n*/\nimport { SearchProductsBody } from \"@plasmicpkgs/commerce\";\nimport getSortVariables from \"./get-sort-variables\";\n\nexport const getSearchVariables = ({\n brandId,\n search,\n categoryId,\n sort,\n locale,\n count,\n}: SearchProductsBody) => {\n let query = \"\";\n\n const searchQuery = `${search}*`;\n if (search) {\n query += `product_type:${searchQuery} OR title:${searchQuery} OR tag:${searchQuery}`;\n }\n\n if (brandId) {\n query += `${search ? \"AND \" : \"\"}vendor:${brandId}`;\n }\n\n return {\n categoryId,\n query,\n ...getSortVariables(sort, !!categoryId),\n ...(locale && {\n locale,\n }),\n first: count,\n };\n};\n\nexport default getSearchVariables;\n","import { graphql } from \"../graphql/gen\";\n\nexport const getAllProductsQuery = graphql(`\n query getAllProducts(\n $first: Int = 250\n $query: String = \"\"\n $sortKey: ProductSortKeys = RELEVANCE\n $reverse: Boolean = false\n ) {\n products(\n first: $first\n sortKey: $sortKey\n reverse: $reverse\n query: $query\n ) {\n pageInfo {\n hasNextPage\n hasPreviousPage\n }\n edges {\n node {\n ...product\n }\n }\n }\n }\n`);\n","import { graphql } from \"../graphql/gen\";\n\nexport const getCollectionProductsQuery = graphql(`\n query getProductsFromCollection(\n $categoryId: ID!\n $first: Int = 250\n $sortKey: ProductCollectionSortKeys = RELEVANCE\n $reverse: Boolean = false\n ) {\n node(id: $categoryId) {\n id\n ... on Collection {\n ...collection\n products(first: $first, sortKey: $sortKey, reverse: $reverse) {\n edges {\n node {\n ...product\n }\n }\n }\n }\n }\n }\n`);\n","/*\n Forked from https://github.com/vercel/commerce/tree/main/packages/shopify/src\n Changes:\n - Added count as a parameter to input\n*/\nimport type { SearchProductsHook } from \"@plasmicpkgs/commerce\";\nimport { SWRHook, useSearch, UseSearch } from \"@plasmicpkgs/commerce\";\nimport { getSearchVariables } from \"../utils/get-search-variables\";\nimport {\n CollectionEdge,\n GetAllProductsQuery,\n GetProductsFromCollectionQueryVariables,\n ProductEdge,\n Product as ShopifyProduct,\n} from \"../utils/graphql/gen/graphql\";\nimport { normalizeProduct } from \"../utils/normalize\";\nimport { getAllProductsQuery } from \"../utils/queries/get-all-products-query\";\nimport { getCollectionProductsQuery } from \"../utils/queries/get-collection-products-query\";\n\nconst useSearchTyped: UseSearch<typeof handler> = useSearch;\nexport default useSearchTyped;\n\nexport const handler: SWRHook<SearchProductsHook> = {\n fetchOptions: {\n query: getAllProductsQuery.toString(),\n },\n async fetcher({ input, options, fetch }) {\n const { categoryId, brandId } = input;\n const method = options?.method;\n const variables = getSearchVariables(input);\n let products;\n\n // change the query to getCollectionProductsQuery when categoryId is set\n if (categoryId) {\n const data = await fetch<\n CollectionEdge,\n GetProductsFromCollectionQueryVariables\n >({\n query: getCollectionProductsQuery.toString(),\n method,\n variables: {\n ...variables,\n first: undefined,\n },\n });\n // filter on client when brandId & categoryId are set since is not available on collection product query\n products = brandId\n ? data.node?.products?.edges\n ?.filter(\n ({ node: { vendor } }: ProductEdge) =>\n vendor.replace(/\\s+/g, \"-\").toLowerCase() ===\n `${brandId}`.toLowerCase()\n )\n .slice(0, input.count)\n : data.node?.products?.edges.slice(0, input.count);\n } else {\n const data = await fetch<GetAllProductsQuery>({\n query: options.query,\n method,\n variables,\n });\n products = data.products?.edges;\n }\n\n return {\n products: products?.map(({ node }) =>\n normalizeProduct(node as ShopifyProduct)\n ),\n found: !!products?.length,\n };\n },\n useHook:\n ({ useData }) =>\n (input = {}) => {\n return useData({\n input: [\n [\"search\", input.search],\n [\"categoryId\", input.categoryId],\n [\"brandId\", input.brandId],\n [\"sort\", input.sort],\n [\"locale\", input.locale],\n [\"count\", input.count],\n ],\n swrOptions: {\n revalidateOnFocus: false,\n ...input.swrOptions,\n },\n });\n },\n};\n","import { graphql } from \"../graphql/gen\";\n\nexport const getAllProductVendors = graphql(`\n query getAllProductVendors($first: Int = 250, $cursor: String) {\n products(first: $first, after: $cursor) {\n pageInfo {\n hasNextPage\n hasPreviousPage\n }\n edges {\n node {\n vendor\n }\n cursor\n }\n }\n }\n`);\n","import {\n SiteTypes,\n SWRHook,\n UseBrands,\n useBrands,\n} from \"@plasmicpkgs/commerce\";\nimport { useMemo } from \"react\";\nimport {\n GetAllProductVendorsQuery,\n GetAllProductVendorsQueryVariables,\n} from \"../utils/graphql/gen/graphql\";\nimport { getAllProductVendors } from \"../utils/queries/get-all-product-vendors-query\";\n\nexport default useBrands as UseBrands<typeof handler>;\n\nexport const handler: SWRHook<SiteTypes.GetBrandsHook> = {\n fetchOptions: {\n query: getAllProductVendors.toString(),\n },\n async fetcher({ input, options, fetch }) {\n const data = await fetch<\n GetAllProductVendorsQuery,\n GetAllProductVendorsQueryVariables\n >({\n query: getAllProductVendors.toString(),\n variables: {\n first: 250,\n },\n });\n\n let vendorsStrings = data.products.edges.map(\n ({ node: { vendor } }) => vendor\n );\n return Array.from(new Set(vendorsStrings).values()).map((v) => {\n const id = v.replace(/\\s+/g, \"-\").toLowerCase();\n return {\n entityId: id,\n name: v,\n path: `brands/${id}`,\n };\n });\n },\n useHook:\n ({ useData }) =>\n (input) => {\n const response = useData({\n swrOptions: { revalidateOnFocus: false, ...input?.swrOptions },\n });\n return useMemo(\n () =>\n Object.create(response, {\n isEmpty: {\n get() {\n return (response.data?.length ?? 0) <= 0;\n },\n enumerable: true,\n },\n }),\n [response]\n );\n },\n};\n","import { graphql } from \"../graphql/gen\";\n\nexport const getSiteCollectionsQuery = graphql(`\n query getSiteCollections($first: Int!) {\n collections(first: $first) {\n edges {\n node {\n ...collection\n products(first: $first) {\n edges {\n node {\n id\n }\n }\n }\n }\n }\n }\n }\n`);\n","import { graphql } from \"../graphql/gen\";\n\nexport const getCollectionQueryById = graphql(`\n query getSiteCollection($id: ID, $handle: String, $first: Int = 1) {\n collection(id: $id, handle: $handle) {\n ...collection\n products(first: $first) {\n edges {\n node {\n id\n }\n }\n }\n }\n }\n`);\n","import {\n SiteTypes,\n SWRHook,\n UseCategories,\n useCategories,\n} from \"@plasmicpkgs/commerce\";\nimport { useMemo } from \"react\";\nimport { CollectionEdge } from \"../utils/graphql/gen/graphql\";\nimport { normalizeCategory } from \"../utils/normalize\";\nimport { getSiteCollectionsQuery } from \"../utils/queries/get-all-collections-query\";\nimport { getCollectionQueryById } from \"../utils/queries/get-collection-query\";\n\nexport default useCategories as UseCategories<typeof handler>;\n\nexport const handler: SWRHook<SiteTypes.GetCategoriesHook> = {\n fetchOptions: {\n query: getSiteCollectionsQuery.toString(),\n },\n async fetcher({ input, options, fetch }) {\n const { categoryId } = input;\n\n if (!categoryId) {\n const data = await fetch({\n query: options.query,\n variables: {\n first: 250,\n },\n });\n return (\n data?.collections?.edges?.map(({ node }: CollectionEdge) =>\n normalizeCategory(node)\n ) ?? []\n );\n } else {\n const data = await fetch({\n query: getCollectionQueryById.toString(),\n variables: {\n ...(categoryId.startsWith(\"gid://\")\n ? { id: categoryId }\n : { handle: categoryId }),\n },\n });\n return !!data?.collection ? [normalizeCategory(data?.collection)] : [];\n }\n },\n useHook:\n ({ useData }) =>\n (input) => {\n const response = useData({\n input: [[\"categoryId\", input?.categoryId]],\n swrOptions: { revalidateOnFocus: false, ...input?.swrOptions },\n });\n return useMemo(\n () =>\n Object.create(response, {\n isEmpty: {\n get() {\n return (response.data?.length ?? 0) <= 0;\n },\n enumerable: true,\n },\n }),\n [response]\n );\n },\n};\n","/*\n Forked from https://github.com/vercel/commerce/tree/main/packages/shopify/src\n Changes:\n - Removed authentication, customer and wishlist hooks.\n - Added storeDomain and accessToken parameters.\n*/\nimport { Fetcher } from \"@plasmicpkgs/commerce\";\nimport { handler as useAddItem } from \"./cart/use-add-item\";\nimport { handler as useCart } from \"./cart/use-cart\";\nimport { handler as useRemoveItem } from \"./cart/use-remove-item\";\nimport { handler as useUpdateItem } from \"./cart/use-update-item\";\nimport { SHOPIFY_CART_ID_COOKIE } from \"./const\";\nimport { getFetcher } from \"./fetcher\";\nimport { handler as useProduct } from \"./product/use-product\";\nimport { handler as useSearch } from \"./product/use-search\";\nimport { handler as useBrands } from \"./site/use-brands\";\nimport { handler as useCategories } from \"./site/use-categories\";\n\nexport const getShopifyProvider = (\n storeDomain: string,\n accessToken: string\n) => ({\n locale: \"en-us\",\n cartCookie: SHOPIFY_CART_ID_COOKIE,\n cart: { useCart, useAddItem, useUpdateItem, useRemoveItem },\n fetcher: getFetcher(storeDomain, accessToken),\n products: { useSearch, useProduct },\n site: { useCategories, useBrands },\n});\n\nexport type ShopifyProvider = {\n locale: string;\n cartCookie: string;\n fetcher: Fetcher;\n cart: {\n useCart: typeof useCart;\n useAddItem: typeof useAddItem;\n useUpdateItem: typeof useUpdateItem;\n useRemoveItem: typeof useRemoveItem;\n };\n products: {\n useSearch: typeof useSearch;\n useProduct: typeof useProduct;\n };\n site: {\n useCategories: typeof useCategories;\n useBrands: typeof useBrands;\n };\n};\n","/*\n Forked from https://github.com/vercel/commerce/tree/main/packages/shopify/src\n Changes: \n - Added storeDomain and accessToken parameters.\n*/\nimport {\n getCommerceProvider as getCoreCommerceProvider,\n useCommerce as useCoreCommerce,\n} from '@plasmicpkgs/commerce'\nimport { getShopifyProvider, ShopifyProvider } from './provider'\n\nexport type { ShopifyProvider }\n\nexport const useCommerce = () => useCoreCommerce<ShopifyProvider>()\n\nexport const getCommerceProvider = (storeDomain: string, accessToken: string) => \n getCoreCommerceProvider(getShopifyProvider(storeDomain, accessToken))\n\n","import { GlobalContextMeta } from \"@plasmicapp/host\";\nimport registerGlobalContext from \"@plasmicapp/host/registerGlobalContext\";\nimport {\n CartActionsProvider,\n globalActionsRegistrations,\n} from \"@plasmicpkgs/commerce\";\nimport React from \"react\";\nimport { defaultAccessToken, defaultStoreDomain } from \"./graphql-config\";\nimport { Registerable } from \"./registerable\";\nimport { getCommerceProvider } from \"./shopify\";\n\ninterface CommerceProviderProps {\n children?: React.ReactNode;\n storeDomain: string;\n accessToken: string;\n}\n\nconst globalContextName = \"plasmic-commerce-shopify-provider\";\n\nexport const commerceProviderMeta: GlobalContextMeta<CommerceProviderProps> = {\n name: globalContextName,\n displayName: \"Shopify Provider\",\n props: {\n storeDomain: {\n type: \"string\",\n defaultValue: defaultStoreDomain,\n },\n accessToken: {\n type: \"string\",\n defaultValue: defaultAccessToken,\n },\n },\n ...{ globalActions: globalActionsRegistrations },\n description: `Your store domain usually looks like **storename.myshopify.com**.\n\nFor your access token, get it by following [this video](https://www.youtube.com/watch?v=wB_6cM7tdv4).\n\nSee also the [getting started video](https://www.youtube.com/watch?v=1OJ_gXmta2Q).`,\n importPath: \"@plasmicpkgs/commerce-shopify\",\n importName: \"CommerceProviderComponent\",\n};\n\nexport function CommerceProviderComponent(props: CommerceProviderProps) {\n const { storeDomain, accessToken, children } = props;\n\n const CommerceProvider = React.useMemo(\n () => getCommerceProvider(storeDomain, accessToken),\n [storeDomain, accessToken]\n );\n\n return (\n <CommerceProvider>\n <CartActionsProvider globalContextName={globalContextName}>\n {children}\n </CartActionsProvider>\n </CommerceProvider>\n );\n}\n\nexport function registerCommerceProvider(\n loader?: Registerable,\n customCommerceProviderMeta?: GlobalContextMeta<CommerceProviderProps>\n) {\n const doRegisterComponent: typeof registerGlobalContext = (...args) =>\n loader\n ? loader.registerGlobalContext(...args)\n : registerGlobalContext(...args);\n doRegisterComponent(\n CommerceProviderComponent,\n customCommerceProviderMeta ?? commerceProviderMeta\n );\n}\n","import { Registerable } from \"./registerable\";\nimport { registerCommerceProvider } from \"./registerCommerceProvider\";\nexport * from \"./registerable\";\nexport * from \"./registerCommerceProvider\";\nexport * from \"./shopify\";\n\nexport function registerAll(loader?: Registerable) {\n registerCommerceProvider(loader);\n}\n"],"names":["defaultStoreDomain","defaultAccessToken","shopifyApiVersion","config","schema","_schema","headers","generates","preset","presetConfig","fragmentMasking","documentMode","documents","SHOPIFY_CART_ID_COOKIE","SHOPIFY_CHECKOUT_URL_COOKIE","SHOPIFY_COOKIE_EXPIRE","ArticleSortKeys","BlogSortKeys","CardBrand","CartCardSource","CartDeliveryGroupType","CartErrorCode","CartWarningCode","CollectionSortKeys","CompletionErrorCode","CountPrecision","CountryCode","CropRegion","CurrencyCode","CustomerErrorCode","DeliveryAddressValidationStrategy","DeliveryMethodType","DigitalWallet","DiscountApplicationAllocationMethod","DiscountApplicationTargetSelection","DiscountApplicationTargetType","FilterPresentation","FilterType","ImageContentType","LanguageCode","LocationSortKeys","MediaContentType","MediaHost","MediaPresentationFormat","MenuItemType","MetafieldDeleteErrorCode","MetafieldsSetUserErrorCode","OrderCancelReason","OrderFinancialStatus","OrderFulfillmentStatus","OrderSortKeys","PageSortKeys","PredictiveSearchLimitScope","PredictiveSearchType","PreferenceDeliveryMethodType","ProductCollectionSortKeys","ProductImageSortKeys","ProductMediaSortKeys","ProductRecommendationIntent","ProductSortKeys","ProductVariantSortKeys","SearchPrefixQueryType","SearchSortKeys","SearchType","SearchUnavailableProductsType","SearchableField","SellingPlanCheckoutChargeType","SellingPlanInterval","ShopPayInstallmentsFinancingPlanFrequency","ShopPayInstallmentsLoan","ShopPayPaymentRequestDeliveryMethodType","SitemapType","SubmissionErrorCode","UnitPriceMeasurementMeasuredType","UnitPriceMeasurementMeasuredUnit","UnitSystem","UserErrorsShopPayPaymentRequestSessionUserErrorsCode","WeightUnit","TypedDocumentString","_String","_inheritsLoose","value","__meta__","_this","call","_proto","prototype","toString","_wrapNativeSuper","String","ImageFragmentDoc","fragmentName","ProductVariantFragmentDoc","SeoFragmentDoc","ProductFragmentDoc","CartFragmentDoc","CollectionFragmentDoc","AddToCartDocument","CreateCartDocument","EditCartItemsDocument","RemoveFromCartDocument","CustomerActivateByUrlDocument","GetSiteCollectionsDocument","GetAllProductVendorsDocument","GetAllProductsDocument","GetCartDocument","GetProductsFromCollectionDocument","GetSiteCollectionDocument","GetProductBySlugDocument","GetProductByIdDocument","types","graphql","source","_documents$source","addToCartMutation","createCartMutation","editCartItemsMutation","removeFromCartMutation","colorMap","aliceblue","antiquewhite","aqua","aquamarine","azure","beige","bisque","black","blanchedalmond","blue","blueviolet","brown","burlywood","burgandy","burgundy","cadetblue","chartreuse","chocolate","coral","cornflowerblue","cornsilk","crimson","cyan","darkblue","darkcyan","darkgoldenrod","darkgray","darkgreen","darkgrey","darkkhaki","darkmagenta","darkolivegreen","darkorange","darkorchid","darkred","darksalmon","darkseagreen","darkslateblue","darkslategray","darkslategrey","darkturquoise","darkviolet","deeppink","deepskyblue","dimgray","dimgrey","dodgerblue","firebrick","floralwhite","forestgreen","fuchsia","gainsboro","ghostwhite","gold","goldenrod","gray","green","greenyellow","grey","honeydew","hotpink","indianred","indigo","ivory","khaki","lavender","lavenderblush","lawngreen","lemonchiffon","lightblue","lightcoral","lightcyan","lightgoldenrodyellow","lightgray","lightgreen","lightgrey","lightpink","lightsalmon","lightseagreen","lightskyblue","lightslategray","lightslategrey","lightsteelblue","lightyellow","lime","limegreen","linen","magenta","maroon","mediumaquamarine","mediumblue","mediumorchid","mediumpurple","mediumseagreen","mediumslateblue","mediumspringgreen","mediumturquoise","mediumvioletred","midnightblue","mintcream","mistyrose","moccasin","navajowhite","navy","oldlace","olive","olivedrab","orange","orangered","orchid","palegoldenrod","palegreen","paleturquoise","palevioletred","papayawhip","peachpuff","peru","pink","plum","powderblue","purple","rebeccapurple","red","rosybrown","royalblue","saddlebrown","salmon","sandybrown","seagreen","seashell","sienna","silver","skyblue","slateblue","slategray","slategrey","spacegrey","spacegray","snow","springgreen","steelblue","tan","teal","thistle","tomato","turquoise","violet","wheat","white","whitesmoke","yellow","yellowgreen","money","_ref","amount","currencyCode","isDefaultOption","selectedOption","name","normalizeProductOption","_ref2","id","displayName","values","__typename","toLowerCase","map","output","label","match","mapedColor","replace","_extends","hexColors","normalizeProduct","_ref3","title","vendor","images","variants","description","handle","priceRange","options","rest","_objectWithoutPropertiesLoose","_excluded","path","slug","price","minVariantPrice","edges","edge","normalizeImage","node","_ref4","_ref4$node","selectedOptions","sku","compareAtPrice","requiresShipping","availableForSale","some","o","listPrice","_ref5","optionValues","filter","normalizeCart","cart","undefined","url","checkoutUrl","customerId","email","createdAt","currency","code","_cart$cost$totalAmoun","cost","totalAmount","taxesIncluded","lineItems","lines","_ref6","_ref6$node","quantity","merchandise","variantId","productId","product","variant","_merchandise$id","image","_merchandise$compareA","discounts","lineItemsSubtotalPrice","subtotalAmount","subtotalPrice","totalPrice","normalizeCategory","_ref7","products","isEmpty","length","altText","height","width","alt","cartCreate","_asyncToGenerator","_regeneratorRuntime","mark","_callee","fetch","_yield$fetch","wrap","_callee$","_context","prev","next","query","variables","sent","expires","sameSite","secure","Cookies","set","abrupt","stop","_x","_x2","apply","arguments","getCartId","get","getCartQuery","handler","fetchOptions","fetcher","cartId","input","remove","useHook","useData","response","swrOptions","revalidateOnFocus","useMemo","Object","create","_response$data$lineIt","_response$data","data","enumerable","item","Number","isInteger","CommerceError","message","merchandiseId","_item$quantity","cartLinesAdd","_useCart","useCart","mutate","useCallback","_addItem","_callee2","_callee2$","_context2","addItem","itemId","lineIds","cartLinesRemove","ctx","_ctx","removeItem","_input$id","ValidationError","_ref$input","removeItemHandler","cartLinesUpdate","debounce","_ctx$wait","wait","getFetcher","storeDomain","accessToken","_ref$url","_ref$method","method","locale","vars","res","_yield$res$json","errors","_yield$res$json2","_errors","body","JSON","stringify","ok","json","getError","status","_errors2","FetcherError","getProductQueryBySlug","getProductQueryById","startsWith","productByHandle","getSortVariables","sort","isCategory","sortKey","reverse","getSearchVariables","brandId","search","categoryId","count","searchQuery","first","getAllProductsQuery","getCollectionProductsQuery","_data$node","slice","_data$node2","_data$products","_products","found","_products2","getAllProductVendors","vendorsStrings","Array","from","Set","v","entityId","_response$data$length","getSiteCollectionsQuery","getCollectionQueryById","_data$collections$edg","_data$collections","collections","collection","getShopifyProvider","cartCookie","useAddItem","useUpdateItem","useRemoveItem","useSearch","useProduct","site","useCategories","useBrands","useCommerce","useCoreCommerce","getCommerceProvider","getCoreCommerceProvider","globalContextName","commerceProviderMeta","props","type","defaultValue","globalActions","globalActionsRegistrations","importPath","importName","CommerceProviderComponent","children","CommerceProvider","React","CartActionsProvider","registerCommerceProvider","loader","customCommerceProviderMeta","doRegisterComponent","registerGlobalContext","registerAll"],"mappings":"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,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;;EAETA,wBAAS;AACX,CAAC,EA3eWA,WAAW,KAAXA,WAAW;AA6evB;AACA,AAAA,IAAYC,UAWX;AAXD,WAAYA,UAAU;;EAEpBA,+BAAiB;;EAEjBA,+BAAiB;;EAEjBA,2BAAa;;EAEbA,6BAAe;;EAEfA,yBAAW;AACb,CAAC,EAXWA,UAAU,KAAVA,UAAU;AAwBtB;;;;;;AAMA,AAAA,IAAYC,YA4UX;AA5UD,WAAYA,YAAY;;EAEtBA,2BAAW;;EAEXA,2BAAW;;EAEXA,2BAAW;;EAEXA,2BAAW;;EAEXA,2BAAW;;EAEXA,2BAAW;;EAEXA,2BAAW;;EAEXA,2BAAW;;EAEXA,2BAAW;;EAEXA,2BAAW;;EAEXA,2BAAW;;EAEXA,2BAAW;;EAEXA,2BAAW;;EAEXA,2BAAW;;EAEXA,2BAAW;;EAEXA,2BAAW;;EAEXA,2BAAW;;EAEXA,2BAAW;;EAEXA,2BAAW;;EAEXA,2BAAW;;EAEXA,2BAAW;;EAEXA,2BAAW;;EAEXA,2BAAW;;EAEXA,2BAAW;;;;;EAKXA,2BAAW;;EAEXA,2BAAW;;EAEXA,2BAAW;;EAEXA,2BAAW;;EAEXA,2BAAW;;EAEXA,2BAAW;;EAEXA,2BAAW;;EAEXA,2BAAW;;EAEXA,2BAAW;;EAEXA,2BAAW;;EAEXA,2BAAW;;EAEXA,2BAAW;;EAEXA,2BAAW;;EAEXA,2BAAW;;EAEXA,2BAAW;;EAEXA,2BAAW;;EAEXA,2BAAW;;EAEXA,2BAAW;;EAEXA,2BAAW;;EAEXA,2BAAW;;EAEXA,2BAAW;;EAEXA,2BAAW;;EAEXA,2BAAW;;EAEXA,2BAAW;;EAEXA,2BAAW;;EAEXA,2BAAW;;EAEXA,2BAAW;;EAEXA,2BAAW;;EAEXA,2BAAW;;EAEXA,2BAAW;;EAEXA,2BAAW;;EAEXA,2BAAW;;EAEXA,2BAAW;;EAEXA,2BAAW;;EAEXA,2BAAW;;EAEXA,2BAAW;;EAEXA,2BAAW;;EAEXA,2BAAW;;EAEXA,2BAAW;;EAEXA,2BAAW;;EAEXA,2BAAW;;EAEXA,2BAAW;;EAEXA,2BAAW;;EAEXA,2BAAW;;EAEXA,2BAAW;;EAEXA,2BAAW;;EAEXA,2BAAW;;EAEXA,2BAAW;;EAEXA,2BAAW;;EAEXA,2BAAW;;EAEXA,2BAAW;;EAEXA,2BAAW;;EAEXA,2BAAW;;EAEXA,2BAAW;;EAEXA,2BAAW;;EAEXA,2BAAW;;EAEXA,2BAAW;;EAEXA,2BAAW;;EAEXA,2BAAW;;EAEXA,2BAAW;;EAEXA,2BAAW;;EAEXA,2BAAW;;EAEXA,2BAAW;;EAEXA,2BAAW;;EAEXA,2BAAW;;EAEXA,2BAAW;;EAEXA,2BAAW;;EAEXA,2BAAW;;EAEXA,2BAAW;;EAEXA,2BAAW;;EAEXA,2BAAW;;EAEXA,2BAAW;;EAEXA,2BAAW;;EAEXA,2BAAW;;EAEXA,2BAAW;;EAEXA,2BAAW;;EAEXA,2BAAW;;EAEXA,2BAAW;;EAEXA,2BAAW;;EAEXA,2BAAW;;EAEXA,2BAAW;;EAEXA,2BAAW;;EAEXA,2BAAW;;EAEXA,2BAAW;;EAEXA,2BAAW;;EAEXA,2BAAW;;EAEXA,2BAAW;;EAEXA,2BAAW;;EAEXA,2BAAW;;EAEXA,2BAAW;;EAEXA,2BAAW;;EAEXA,2BAAW;;EAEXA,2BAAW;;EAEXA,2BAAW;;EAEXA,2BAAW;;EAEXA,2BAAW;;EAEXA,2BAAW;;EAEXA,2BAAW;;EAEXA,2BAAW;;EAEXA,2BAAW;;EAEXA,2BAAW;;EAEXA,2BAAW;;EAEXA,2BAAW;;EAEXA,2BAAW;;EAEXA,2BAAW;;;;;EAKXA,2BAAW;;EAEXA,2BAAW;;EAEXA,2BAAW;;EAEXA,2BAAW;;EAEXA,2BAAW;;EAEXA,2BAAW;;EAEXA,2BAAW;;EAEXA,2BAAW;;EAEXA,2BAAW;;EAEXA,2BAAW;;EAEXA,2BAAW;;EAEXA,2BAAW;;EAEXA,2BAAW;;EAEXA,2BAAW;;EAEXA,2BAAW;;EAEXA,2BAAW;;EAEXA,2BAAW;;EAEXA,2BAAW;;EAEXA,2BAAW;;;;;EAKXA,2BAAW;;EAEXA,2BAAW;;EAEXA,2BAAW;;EAEXA,2BAAW;;EAEXA,2BAAW;;EAEXA,2BAAW;;EAEXA,2BAAW;;EAEXA,2BAAW;;EAEXA,2BAAW;;EAEXA,2BAAW;;EA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"}
|