diff --git a/app/components/Layout.tsx b/app/components/Layout.tsx index e213da0..4b36499 100644 --- a/app/components/Layout.tsx +++ b/app/components/Layout.tsx @@ -20,7 +20,7 @@ export type LayoutProps = { footer: Promise; header: HeaderQuery; isLoggedIn: boolean; - fetchData?: unknown; + fetchData: any; footerMetaObject: any; }; diff --git a/app/entry.server.tsx b/app/entry.server.tsx index 7aa012c..2c5b876 100644 --- a/app/entry.server.tsx +++ b/app/entry.server.tsx @@ -1,6 +1,6 @@ import type {EntryContext} from '@shopify/remix-oxygen'; import {RemixServer} from '@remix-run/react'; -import {isbot} from 'isbot'; +import isbot from 'isbot'; import {renderToReadableStream} from 'react-dom/server'; import {createContentSecurityPolicy} from '@shopify/hydrogen'; diff --git a/app/root.tsx b/app/root.tsx index 89d1ec8..5707768 100644 --- a/app/root.tsx +++ b/app/root.tsx @@ -9,6 +9,7 @@ import { Meta, Outlet, Scripts, + LiveReload, useMatches, useRouteError, useLoaderData, @@ -18,8 +19,8 @@ import { } from '@remix-run/react'; import type {CustomerAccessToken} from '@shopify/hydrogen/storefront-api-types'; import favicon from '../public/favicon.svg'; -import resetStyles from './styles/reset.css?url'; -import appStyles from './styles/app.css?url'; +import resetStyles from './styles/reset.css'; +import appStyles from './styles/app.css'; import {Layout} from '~/components/Layout'; /** @@ -45,6 +46,7 @@ export const shouldRevalidate: ShouldRevalidateFunction = ({ export function links() { return [ + ...(cssBundleHref ? [{rel: 'stylesheet', href: cssBundleHref}] : []), {rel: 'stylesheet', href: resetStyles}, {rel: 'stylesheet', href: appStyles}, { @@ -120,11 +122,12 @@ export default function App() { - + + ); @@ -166,6 +169,7 @@ export function ErrorBoundary() { + ); @@ -278,7 +282,7 @@ const FOOTER_QUERY = `#graphql ` as const; const FOOTER_META_OBJECT_QUERY = `#graphql -query RootFooterMetaObject($country: CountryCode, $language: LanguageCode) +query MetaObject($country: CountryCode, $language: LanguageCode) @inContext(country: $country, language: $language) { metaobjects(first: 100, type: "footer") { nodes { diff --git a/app/routes/($locale)._index.tsx b/app/routes/($locale)._index.tsx index ea82f40..947245c 100644 --- a/app/routes/($locale)._index.tsx +++ b/app/routes/($locale)._index.tsx @@ -9,11 +9,11 @@ import { Money, MediaFile, } from '@shopify/hydrogen'; -import type {LocaleIndexStoreCollectionsQuery} from 'storefrontapi.generated'; - -type StoreCollectionNode = - LocaleIndexStoreCollectionsQuery['collections']['nodes'][number]; -import '../styles/pages.css?url'; +import type { + CollectionFragment, + RecommendedProductsQuery, +} from 'storefrontapi.generated'; +import '../styles/pages.css'; export const meta: MetaFunction = () => { return [{title: 'Hydrogen | Home'}]; @@ -77,7 +77,7 @@ function CollectionItem({ index, className, }: { - collection: StoreCollectionNode; + collection: CollectionFragment; index: number; className: string; }) { @@ -133,7 +133,7 @@ function RecommendedProducts({ metaObject, }: { readonly products: any; - readonly collections: readonly StoreCollectionNode[]; + readonly collections: readonly CollectionFragment[]; readonly newarrivalproducts: any; readonly bestSeller: any; readonly topCategory: any; @@ -1030,7 +1030,7 @@ const RECOMMENDED_PRODUCTS_QUERY = `#graphql } } } - query LocaleIndexRecommendedProducts ($country: CountryCode, $language: LanguageCode) + query RecommendedProducts ($country: CountryCode, $language: LanguageCode) @inContext(country: $country, language: $language) { products(first: 3, sortKey: CREATED_AT, reverse: true) { nodes { @@ -1055,7 +1055,7 @@ const COLLECTIONS_QUERY = `#graphql height } } - query LocaleIndexStoreCollections( + query StoreCollections( $country: CountryCode $endCursor: String # $first: Int @@ -1092,7 +1092,7 @@ const COLLECTIONS_QUERY = `#graphql ` as const; const NEW_ARRIVALS_QUERY = `#graphql -query LocaleIndexNewArrivalsCollection($country: CountryCode, $language: LanguageCode) +query FeaturedCollection($country: CountryCode, $language: LanguageCode) @inContext(country: $country, language: $language) { collection(handle: "new-arrivals") { handle @@ -1116,7 +1116,7 @@ query LocaleIndexNewArrivalsCollection($country: CountryCode, $language: Languag }` as const; const TOP_CATEGORIES_QUERY = `#graphql - query LocaleIndexTopCategoriesCollection($country: CountryCode, $language: LanguageCode) + query FeaturedCollection($country: CountryCode, $language: LanguageCode) @inContext(country: $country, language: $language) { collections(first:8, reverse:true) { edges { @@ -1148,7 +1148,7 @@ const TOP_CATEGORIES_QUERY = `#graphql ` as const; const BEST_SELLER_QUERY = `#graphql -query LocaleIndexBestSellerCollection($country: CountryCode, $language: LanguageCode) +query FeaturedCollection($country: CountryCode, $language: LanguageCode) @inContext(country: $country, language: $language) { collection(handle: "womens-fashion") { handle @@ -1172,7 +1172,7 @@ query LocaleIndexBestSellerCollection($country: CountryCode, $language: Language }` as const; const META_OBJECT_QUERY = `#graphql -query LocaleIndexHomeMetaObject($country: CountryCode, $language: LanguageCode) +query MetaObject($country: CountryCode, $language: LanguageCode) @inContext(country: $country, language: $language) { metaobjects(first: 100, type: "home") { nodes { diff --git a/app/routes/($locale).about.tsx b/app/routes/($locale).about.tsx index 45701b4..2999baa 100644 --- a/app/routes/($locale).about.tsx +++ b/app/routes/($locale).about.tsx @@ -1,7 +1,7 @@ import {defer, type LoaderFunctionArgs} from '@shopify/remix-oxygen'; import parse from 'html-react-parser'; import {useLoaderData, type MetaFunction} from '@remix-run/react'; -import '../styles/pages.css?url'; +import '../styles/pages.css'; export const meta: MetaFunction = () => { return [{title: 'Hydrogen | About Us'}]; @@ -58,7 +58,7 @@ function RecommendedProducts({metaObject}: {metaObject: any}) { } const META_OBJECT_QUERY = `#graphql -query AboutPageMetaObject($country: CountryCode, $language: LanguageCode) +query MetaObject($country: CountryCode, $language: LanguageCode) @inContext(country: $country, language: $language) { metaobjects(first: 100, type: "about_us") { nodes { diff --git a/app/routes/($locale).account.orders._index.tsx b/app/routes/($locale).account.orders._index.tsx index 415257b..22eb94f 100644 --- a/app/routes/($locale).account.orders._index.tsx +++ b/app/routes/($locale).account.orders._index.tsx @@ -5,7 +5,7 @@ import type { CustomerOrdersFragment, OrderItemFragment, } from 'storefrontapi.generated'; -import '../styles/pages.css?url'; +import '../styles/pages.css'; export const meta: MetaFunction = () => { return [{title: 'Orders'}]; diff --git a/app/routes/($locale).account.profile.tsx b/app/routes/($locale).account.profile.tsx index 5cf5804..b7a7120 100644 --- a/app/routes/($locale).account.profile.tsx +++ b/app/routes/($locale).account.profile.tsx @@ -13,7 +13,7 @@ import { useOutletContext, type MetaFunction, } from '@remix-run/react'; -import '../styles/pages.css?url'; +import '../styles/pages.css'; export type ActionResponse = { error: string | null; diff --git a/app/routes/($locale).account.tsx b/app/routes/($locale).account.tsx index fee1298..e9a0cc3 100644 --- a/app/routes/($locale).account.tsx +++ b/app/routes/($locale).account.tsx @@ -1,7 +1,7 @@ import {Form, NavLink, Outlet, useLoaderData} from '@remix-run/react'; import {json, redirect, type LoaderFunctionArgs} from '@shopify/remix-oxygen'; import type {CustomerFragment} from 'storefrontapi.generated'; -import '../styles/pages.css?url'; +import '../styles/pages.css'; export function shouldRevalidate() { return true; diff --git a/app/routes/($locale).account_.login.tsx b/app/routes/($locale).account_.login.tsx index 1685224..5e70674 100644 --- a/app/routes/($locale).account_.login.tsx +++ b/app/routes/($locale).account_.login.tsx @@ -5,7 +5,7 @@ import { type LoaderFunctionArgs, } from '@shopify/remix-oxygen'; import {Form, Link, useActionData, type MetaFunction} from '@remix-run/react'; -import '../styles/pages.css?url'; +import '../styles/pages.css'; type ActionResponse = { error: string | null; diff --git a/app/routes/($locale).cart.tsx b/app/routes/($locale).cart.tsx index 82f2269..9287963 100644 --- a/app/routes/($locale).cart.tsx +++ b/app/routes/($locale).cart.tsx @@ -1,5 +1,6 @@ import {Await, type MetaFunction} from '@remix-run/react'; import {Suspense} from 'react'; +import type {CartQueryData} from '@shopify/hydrogen'; import {CartForm} from '@shopify/hydrogen'; import {json, type ActionFunctionArgs} from '@shopify/remix-oxygen'; import {CartMain} from '~/components/Cart'; @@ -24,7 +25,7 @@ export async function action({request, context}: ActionFunctionArgs) { } let status = 200; - let result: Awaited>; + let result: CartQueryData; switch (action) { case CartForm.ACTIONS.LinesAdd: diff --git a/app/routes/($locale).collections.$handle.tsx b/app/routes/($locale).collections.$handle.tsx index 5a5c579..e2845a5 100644 --- a/app/routes/($locale).collections.$handle.tsx +++ b/app/routes/($locale).collections.$handle.tsx @@ -8,7 +8,7 @@ import { } from '@shopify/hydrogen'; import type {ProductItemFragment} from 'storefrontapi.generated'; import {useVariantUrl} from '~/utils'; -import '../styles/pages.css?url'; +import '../styles/pages.css'; export const meta: MetaFunction = ({data}) => { return [{title: `Hydrogen | ${data?.collection.title ?? ''} Collection`}]; diff --git a/app/routes/($locale).collections._index.tsx b/app/routes/($locale).collections._index.tsx index df53f83..fe938d7 100644 --- a/app/routes/($locale).collections._index.tsx +++ b/app/routes/($locale).collections._index.tsx @@ -3,7 +3,7 @@ import {useLoaderData, Link} from '@remix-run/react'; import {json, type LoaderFunctionArgs} from '@shopify/remix-oxygen'; import {Pagination, getPaginationVariables, Image} from '@shopify/hydrogen'; import type {CollectionFragment} from 'storefrontapi.generated'; -import '../styles/pages.css?url'; +import '../styles/pages.css'; export const meta: MetaFunction = () => { return [{title: 'Hydrogen | Collections'}]; @@ -114,7 +114,7 @@ const COLLECTIONS_QUERY = `#graphql height } } - query CollectionsListingStoreCollections( + query StoreCollections( $country: CountryCode $endCursor: String $first: Int @@ -142,7 +142,7 @@ const COLLECTIONS_QUERY = `#graphql ` as const; const HEADING_QUERY = `#graphql -query CollectionsListingMetaObject($country: CountryCode, $language: LanguageCode) +query MetaObject($country: CountryCode, $language: LanguageCode) @inContext(country: $country, language: $language) { metaobjects(first: 100, type: "product_page_contents") { nodes { diff --git a/app/routes/($locale).collections.all.tsx b/app/routes/($locale).collections.all.tsx index c521e46..03dc7ab 100644 --- a/app/routes/($locale).collections.all.tsx +++ b/app/routes/($locale).collections.all.tsx @@ -8,7 +8,7 @@ import { Money, Pagination, } from '@shopify/hydrogen'; -import '../styles/pages.css?url'; +import '../styles/pages.css'; import NoImg from '../../public/NoImg.svg'; export const meta: MetaFunction = () => { @@ -183,7 +183,7 @@ function RecommendedProducts({ } const RECOMMENDED_PRODUCTS_QUERY = `#graphql - fragment CollectionAllProduct on Product { + fragment Product on Product { id title handle @@ -214,7 +214,7 @@ const RECOMMENDED_PRODUCTS_QUERY = `#graphql } } } - query CollectionsAllPagedRecommendedProducts ( $country: CountryCode + query RecommendedProducts ( $country: CountryCode $endCursor: String $first: Int $language: LanguageCode @@ -229,7 +229,7 @@ const RECOMMENDED_PRODUCTS_QUERY = `#graphql reverse: true ) { nodes { - ...CollectionAllProduct + ...Product } pageInfo { hasNextPage @@ -242,7 +242,7 @@ const RECOMMENDED_PRODUCTS_QUERY = `#graphql ` as const; const HEADING_QUERY = `#graphql -query CollectionsAllProductPageMetaObject($country: CountryCode, $language: LanguageCode) +query MetaObject($country: CountryCode, $language: LanguageCode) @inContext(country: $country, language: $language) { metaobjects(first: 100, type: "product_page_contents") { nodes { diff --git a/app/routes/($locale).products.$handle.tsx b/app/routes/($locale).products.$handle.tsx index 024ead8..621c61b 100644 --- a/app/routes/($locale).products.$handle.tsx +++ b/app/routes/($locale).products.$handle.tsx @@ -104,7 +104,7 @@ export async function loader({params, request, context}: LoaderFunctionArgs) { // await the query for the critical product data const {product} = await storefront.query(PRODUCT_QUERY, { - variables: {handle, key: key ?? '', selectedOptions}, + variables: {handle, key, selectedOptions}, }); if (!product?.id) { throw new Response(null, {status: 404}); @@ -467,7 +467,7 @@ function ProductMain({ Reviews


-
{parse(String(valueMap.get('product_review') ?? ''))}
+
{parse(valueMap.get('product_review') || '')}

)} @@ -478,7 +478,7 @@ function ProductMain({ Shipping and Return


-
{parse(String(valueMap.get('shipping_return_policy') ?? ''))}
+
{parse(valueMap.get('shipping_return_policy') || '')}

)} @@ -681,14 +681,14 @@ function ProductForm({ @@ -825,8 +825,7 @@ function AddToCartButton({ {quantity} { - if ( - value && - typeof value === 'object' && - 'nodes' in value && - Array.isArray((value as {nodes: unknown}).nodes) - ) { - return total + (value as {nodes: unknown[]}).nodes.length; - } - return total; + return total + value.nodes.length; }, 0); const searchResults = { diff --git a/app/routes/_index.tsx b/app/routes/_index.tsx index 2d5fc12..947245c 100644 --- a/app/routes/_index.tsx +++ b/app/routes/_index.tsx @@ -9,11 +9,11 @@ import { Money, MediaFile, } from '@shopify/hydrogen'; -import type {DefaultIndexStoreCollectionsQuery} from 'storefrontapi.generated'; - -type StoreCollectionNode = - DefaultIndexStoreCollectionsQuery['collections']['nodes'][number]; -import '../styles/pages.css?url'; +import type { + CollectionFragment, + RecommendedProductsQuery, +} from 'storefrontapi.generated'; +import '../styles/pages.css'; export const meta: MetaFunction = () => { return [{title: 'Hydrogen | Home'}]; @@ -77,7 +77,7 @@ function CollectionItem({ index, className, }: { - collection: StoreCollectionNode; + collection: CollectionFragment; index: number; className: string; }) { @@ -133,7 +133,7 @@ function RecommendedProducts({ metaObject, }: { readonly products: any; - readonly collections: readonly StoreCollectionNode[]; + readonly collections: readonly CollectionFragment[]; readonly newarrivalproducts: any; readonly bestSeller: any; readonly topCategory: any; @@ -1030,7 +1030,7 @@ const RECOMMENDED_PRODUCTS_QUERY = `#graphql } } } - query DefaultIndexRecommendedProducts ($country: CountryCode, $language: LanguageCode) + query RecommendedProducts ($country: CountryCode, $language: LanguageCode) @inContext(country: $country, language: $language) { products(first: 3, sortKey: CREATED_AT, reverse: true) { nodes { @@ -1055,7 +1055,7 @@ const COLLECTIONS_QUERY = `#graphql height } } - query DefaultIndexStoreCollections( + query StoreCollections( $country: CountryCode $endCursor: String # $first: Int @@ -1092,7 +1092,7 @@ const COLLECTIONS_QUERY = `#graphql ` as const; const NEW_ARRIVALS_QUERY = `#graphql -query DefaultIndexNewArrivalsCollection($country: CountryCode, $language: LanguageCode) +query FeaturedCollection($country: CountryCode, $language: LanguageCode) @inContext(country: $country, language: $language) { collection(handle: "new-arrivals") { handle @@ -1116,7 +1116,7 @@ query DefaultIndexNewArrivalsCollection($country: CountryCode, $language: Langua }` as const; const TOP_CATEGORIES_QUERY = `#graphql - query DefaultIndexTopCategoriesCollection($country: CountryCode, $language: LanguageCode) + query FeaturedCollection($country: CountryCode, $language: LanguageCode) @inContext(country: $country, language: $language) { collections(first:8, reverse:true) { edges { @@ -1148,7 +1148,7 @@ const TOP_CATEGORIES_QUERY = `#graphql ` as const; const BEST_SELLER_QUERY = `#graphql -query DefaultIndexBestSellerCollection($country: CountryCode, $language: LanguageCode) +query FeaturedCollection($country: CountryCode, $language: LanguageCode) @inContext(country: $country, language: $language) { collection(handle: "womens-fashion") { handle @@ -1172,7 +1172,7 @@ query DefaultIndexBestSellerCollection($country: CountryCode, $language: Languag }` as const; const META_OBJECT_QUERY = `#graphql -query DefaultIndexHomeMetaObject($country: CountryCode, $language: LanguageCode) +query MetaObject($country: CountryCode, $language: LanguageCode) @inContext(country: $country, language: $language) { metaobjects(first: 100, type: "home") { nodes { diff --git a/remix.config.js b/remix.config.js new file mode 100644 index 0000000..bfb46bf --- /dev/null +++ b/remix.config.js @@ -0,0 +1,19 @@ +/** @type {import('@remix-run/dev').AppConfig} */ +module.exports = { + appDirectory: 'app', + ignoredRouteFiles: ['**/.*'], + watchPaths: ['./public', './.env'], + server: './server.ts', + /** + * The following settings are required to deploy Hydrogen apps to Oxygen: + */ + publicPath: (process.env.HYDROGEN_ASSET_BASE_URL ?? '/') + 'build/', + assetsBuildDirectory: 'dist/client/build', + serverBuildPath: 'dist/worker/index.js', + serverMainFields: ['browser', 'module', 'main'], + serverConditions: ['worker', process.env.NODE_ENV], + serverDependenciesToBundle: 'all', + serverModuleFormat: 'esm', + serverPlatform: 'neutral', + serverMinify: process.env.NODE_ENV === 'production', +}; diff --git a/remix.env.d.ts b/remix.env.d.ts new file mode 100644 index 0000000..ab7054d --- /dev/null +++ b/remix.env.d.ts @@ -0,0 +1,62 @@ +/// +/// +/// + +// Enhance TypeScript's built-in typings. +import '@total-typescript/ts-reset'; + +import type {Storefront, HydrogenCart} from '@shopify/hydrogen'; +import type { + LanguageCode, + CountryCode, +} from '@shopify/hydrogen/storefront-api-types'; +import type {CustomerAccessToken} from '@shopify/hydrogen/storefront-api-types'; +import type {HydrogenSession} from './server'; + +declare global { + /** + * A global `process` object is only available during build to access NODE_ENV. + */ + const process: {env: {NODE_ENV: 'production' | 'development'}}; + + /** + * Declare expected Env parameter in fetch handler. + */ + interface Env { + CONTENTSTACK_API_KEY: any; + SESSION_SECRET: string; + PUBLIC_STOREFRONT_API_TOKEN: string; + PRIVATE_STOREFRONT_API_TOKEN: string; + PUBLIC_STORE_DOMAIN: string; + PUBLIC_STOREFRONT_ID: string; + } + + /** + * The I18nLocale used for Storefront API query context. + */ + type I18nLocale = { + language: LanguageCode; + country: CountryCode; + pathPrefix: string; + }; +} + +declare module '@shopify/remix-oxygen' { + /** + * Declare local additions to the Remix loader context. + */ + export interface AppLoadContext { + env: Env; + cart: HydrogenCart; + storefront: Storefront; + session: HydrogenSession; + waitUntil: ExecutionContext['waitUntil']; + } + + /** + * Declare the data we expect to access via `context.session`. + */ + export interface SessionData { + customerAccessToken: CustomerAccessToken; + } +} diff --git a/server.ts b/server.ts index 661913c..dd2350c 100644 --- a/server.ts +++ b/server.ts @@ -1,6 +1,5 @@ -// @ts-ignore // Virtual entry point for the app -import * as remixBuild from 'virtual:remix/server-build'; +import * as remixBuild from '@remix-run/dev/server-build'; import { cartGetIdDefault, cartSetIdDefault, diff --git a/storefrontapi.generated.d.ts b/storefrontapi.generated.d.ts index 7d2431a..d0e74dc 100644 --- a/storefrontapi.generated.d.ts +++ b/storefrontapi.generated.d.ts @@ -1,7 +1,7 @@ /* eslint-disable eslint-comments/disable-enable-pair */ /* eslint-disable eslint-comments/no-unlimited-disable */ /* eslint-disable */ -import type * as StorefrontAPI from '@shopify/hydrogen/storefront-api-types'; +import * as StorefrontAPI from '@shopify/hydrogen/storefront-api-types'; export type MenuItemFragment = Pick< StorefrontAPI.MenuItem, @@ -113,130 +113,6 @@ export type FooterQuery = { >; }; -export type RootFooterMetaObjectQueryVariables = StorefrontAPI.Exact<{ - country?: StorefrontAPI.InputMaybe; - language?: StorefrontAPI.InputMaybe; -}>; - -export type RootFooterMetaObjectQuery = { - metaobjects: { - nodes: Array<{ - fields: Array< - Pick & { - reference?: StorefrontAPI.Maybe< - | (Pick & { - image?: StorefrontAPI.Maybe>; - }) - | (Pick & { - fields: Array< - Pick & { - references?: StorefrontAPI.Maybe<{ - nodes: Array< - Pick & { - fields: Array< - Pick< - StorefrontAPI.MetaobjectField, - 'key' | 'type' | 'value' - > & { - reference?: StorefrontAPI.Maybe< - | (Pick & { - image?: StorefrontAPI.Maybe< - Pick - >; - }) - | (Pick & { - fields: Array< - Pick< - StorefrontAPI.MetaobjectField, - 'key' | 'value' - > - >; - }) - >; - } - >; - } - >; - }>; - } - >; - }) - >; - references?: StorefrontAPI.Maybe<{ - nodes: Array< - | (Pick & { - image?: StorefrontAPI.Maybe>; - }) - | (Pick & { - fields: Array< - Pick< - StorefrontAPI.MetaobjectField, - 'key' | 'type' | 'value' - > & { - reference?: StorefrontAPI.Maybe< - | (Pick & { - image?: StorefrontAPI.Maybe< - Pick - >; - }) - | (Pick & { - fields: Array< - Pick< - StorefrontAPI.MetaobjectField, - 'key' | 'value' - > & { - references?: StorefrontAPI.Maybe<{ - nodes: Array< - Pick & { - fields: Array< - Pick< - StorefrontAPI.MetaobjectField, - 'key' | 'type' | 'value' - > & { - reference?: StorefrontAPI.Maybe< - | (Pick< - StorefrontAPI.MediaImage, - 'id' - > & { - image?: StorefrontAPI.Maybe< - Pick< - StorefrontAPI.Image, - 'url' - > - >; - }) - | (Pick< - StorefrontAPI.Metaobject, - 'id' - > & { - fields: Array< - Pick< - StorefrontAPI.MetaobjectField, - 'key' | 'value' - > - >; - }) - >; - } - >; - } - >; - }>; - } - >; - }) - >; - } - >; - }) - >; - }>; - } - >; - }>; - }; -}; - export type SitemapQueryVariables = StorefrontAPI.Exact<{ urlLimits?: StorefrontAPI.InputMaybe; language?: StorefrontAPI.InputMaybe; @@ -267,16 +143,42 @@ export type SitemapQuery = { }; }; +export type FeaturedCollectionFragment = Pick< + StorefrontAPI.Collection, + 'id' | 'title' | 'handle' +> & { + image?: StorefrontAPI.Maybe< + Pick + >; +}; + +export type FeaturedCollectionQueryVariables = StorefrontAPI.Exact<{ + country?: StorefrontAPI.InputMaybe; + language?: StorefrontAPI.InputMaybe; +}>; + +export type FeaturedCollectionQuery = { + collections: { + nodes: Array< + Pick & { + image?: StorefrontAPI.Maybe< + Pick< + StorefrontAPI.Image, + 'id' | 'url' | 'altText' | 'width' | 'height' + > + >; + } + >; + }; +}; + export type RecommendedProductFragment = Pick< StorefrontAPI.Product, - 'id' | 'title' | 'handle' | 'productType' + 'id' | 'title' | 'handle' > & { priceRange: { minVariantPrice: Pick; }; - compareAtPriceRange: { - minVariantPrice: Pick; - }; images: { nodes: Array< Pick @@ -284,27 +186,21 @@ export type RecommendedProductFragment = Pick< }; }; -export type LocaleIndexRecommendedProductsQueryVariables = StorefrontAPI.Exact<{ +export type RecommendedProductsQueryVariables = StorefrontAPI.Exact<{ country?: StorefrontAPI.InputMaybe; language?: StorefrontAPI.InputMaybe; }>; -export type LocaleIndexRecommendedProductsQuery = { +export type RecommendedProductsQuery = { products: { nodes: Array< - Pick & { + Pick & { priceRange: { minVariantPrice: Pick< StorefrontAPI.MoneyV2, 'amount' | 'currencyCode' >; }; - compareAtPriceRange: { - minVariantPrice: Pick< - StorefrontAPI.MoneyV2, - 'amount' | 'currencyCode' - >; - }; images: { nodes: Array< Pick< @@ -318,218 +214,6 @@ export type LocaleIndexRecommendedProductsQuery = { }; }; -export type CollectionFragment = Pick< - StorefrontAPI.Collection, - 'id' | 'title' | 'handle' | 'description' -> & { - image?: StorefrontAPI.Maybe< - Pick - >; -}; - -export type LocaleIndexStoreCollectionsQueryVariables = StorefrontAPI.Exact<{ - country?: StorefrontAPI.InputMaybe; - endCursor?: StorefrontAPI.InputMaybe< - StorefrontAPI.Scalars['String']['input'] - >; - language?: StorefrontAPI.InputMaybe; - last?: StorefrontAPI.InputMaybe; - startCursor?: StorefrontAPI.InputMaybe< - StorefrontAPI.Scalars['String']['input'] - >; -}>; - -export type LocaleIndexStoreCollectionsQuery = { - collections: { - nodes: Array< - Pick< - StorefrontAPI.Collection, - 'id' | 'title' | 'handle' | 'description' - > & { - products: {edges: Array<{node: Pick}>}; - image?: StorefrontAPI.Maybe< - Pick< - StorefrontAPI.Image, - 'id' | 'url' | 'altText' | 'width' | 'height' - > - >; - } - >; - pageInfo: Pick< - StorefrontAPI.PageInfo, - 'hasNextPage' | 'hasPreviousPage' | 'startCursor' | 'endCursor' - >; - }; -}; - -export type LocaleIndexNewArrivalsCollectionQueryVariables = - StorefrontAPI.Exact<{ - country?: StorefrontAPI.InputMaybe; - language?: StorefrontAPI.InputMaybe; - }>; - -export type LocaleIndexNewArrivalsCollectionQuery = { - collection?: StorefrontAPI.Maybe< - Pick & { - products: { - nodes: Array< - Pick & { - images: { - nodes: Array< - Pick< - StorefrontAPI.Image, - 'id' | 'url' | 'altText' | 'width' | 'height' - > - >; - }; - } - >; - }; - } - >; -}; - -export type LocaleIndexTopCategoriesCollectionQueryVariables = - StorefrontAPI.Exact<{ - country?: StorefrontAPI.InputMaybe; - language?: StorefrontAPI.InputMaybe; - }>; - -export type LocaleIndexTopCategoriesCollectionQuery = { - collections: { - edges: Array<{ - node: Pick & { - image?: StorefrontAPI.Maybe< - Pick< - StorefrontAPI.Image, - 'id' | 'url' | 'altText' | 'width' | 'height' - > - >; - products: { - edges: Array<{ - node: Pick; - }>; - }; - }; - }>; - }; -}; - -export type LocaleIndexBestSellerCollectionQueryVariables = - StorefrontAPI.Exact<{ - country?: StorefrontAPI.InputMaybe; - language?: StorefrontAPI.InputMaybe; - }>; - -export type LocaleIndexBestSellerCollectionQuery = { - collection?: StorefrontAPI.Maybe< - Pick & { - products: { - nodes: Array< - Pick & { - images: { - nodes: Array< - Pick< - StorefrontAPI.Image, - 'id' | 'url' | 'altText' | 'width' | 'height' - > - >; - }; - } - >; - }; - } - >; -}; - -export type LocaleIndexHomeMetaObjectQueryVariables = StorefrontAPI.Exact<{ - country?: StorefrontAPI.InputMaybe; - language?: StorefrontAPI.InputMaybe; -}>; - -export type LocaleIndexHomeMetaObjectQuery = { - metaobjects: { - nodes: Array<{ - fields: Array< - Pick & { - reference?: StorefrontAPI.Maybe< - | (Pick & { - image?: StorefrontAPI.Maybe>; - }) - | (Pick & { - fields: Array< - Pick & { - references?: StorefrontAPI.Maybe<{ - nodes: Array< - Pick & { - fields: Array< - Pick< - StorefrontAPI.MetaobjectField, - 'key' | 'type' | 'value' - > - >; - } - >; - }>; - reference?: StorefrontAPI.Maybe< - | (Pick & { - image?: StorefrontAPI.Maybe< - Pick - >; - }) - | (Pick & { - fields: Array< - Pick< - StorefrontAPI.MetaobjectField, - 'key' | 'value' - > & { - reference?: StorefrontAPI.Maybe< - Pick & { - fields: Array< - Pick< - StorefrontAPI.MetaobjectField, - 'key' | 'value' - > - >; - } - >; - } - >; - }) - >; - } - >; - }) - >; - } - >; - }>; - }; -}; - -export type AboutPageMetaObjectQueryVariables = StorefrontAPI.Exact<{ - country?: StorefrontAPI.InputMaybe; - language?: StorefrontAPI.InputMaybe; -}>; - -export type AboutPageMetaObjectQuery = { - metaobjects: { - nodes: Array<{ - fields: Array< - Pick & { - reference?: StorefrontAPI.Maybe< - Pick & { - fields: Array< - Pick - >; - } - >; - } - >; - }>; - }; -}; - export type CustomerAddressUpdateMutationVariables = StorefrontAPI.Exact<{ address: StorefrontAPI.MailingAddressInput; customerAccessToken: StorefrontAPI.Scalars['String']['input']; @@ -1493,9 +1177,6 @@ export type ProductItemFragment = Pick< minVariantPrice: Pick; maxVariantPrice: Pick; }; - compareAtPriceRange: { - minVariantPrice: Pick; - }; variants: { nodes: Array<{ selectedOptions: Array< @@ -1544,12 +1225,6 @@ export type CollectionQuery = { 'amount' | 'currencyCode' >; }; - compareAtPriceRange: { - minVariantPrice: Pick< - StorefrontAPI.MoneyV2, - 'amount' | 'currencyCode' - >; - }; variants: { nodes: Array<{ selectedOptions: Array< @@ -1568,27 +1243,32 @@ export type CollectionQuery = { >; }; -export type CollectionsListingStoreCollectionsQueryVariables = - StorefrontAPI.Exact<{ - country?: StorefrontAPI.InputMaybe; - endCursor?: StorefrontAPI.InputMaybe< - StorefrontAPI.Scalars['String']['input'] - >; - first?: StorefrontAPI.InputMaybe; - language?: StorefrontAPI.InputMaybe; - last?: StorefrontAPI.InputMaybe; - startCursor?: StorefrontAPI.InputMaybe< - StorefrontAPI.Scalars['String']['input'] - >; - }>; +export type CollectionFragment = Pick< + StorefrontAPI.Collection, + 'id' | 'title' | 'handle' +> & { + image?: StorefrontAPI.Maybe< + Pick + >; +}; -export type CollectionsListingStoreCollectionsQuery = { +export type StoreCollectionsQueryVariables = StorefrontAPI.Exact<{ + country?: StorefrontAPI.InputMaybe; + endCursor?: StorefrontAPI.InputMaybe< + StorefrontAPI.Scalars['String']['input'] + >; + first?: StorefrontAPI.InputMaybe; + language?: StorefrontAPI.InputMaybe; + last?: StorefrontAPI.InputMaybe; + startCursor?: StorefrontAPI.InputMaybe< + StorefrontAPI.Scalars['String']['input'] + >; +}>; + +export type StoreCollectionsQuery = { collections: { nodes: Array< - Pick< - StorefrontAPI.Collection, - 'id' | 'title' | 'handle' | 'description' - > & { + Pick & { image?: StorefrontAPI.Maybe< Pick< StorefrontAPI.Image, @@ -1604,120 +1284,20 @@ export type CollectionsListingStoreCollectionsQuery = { }; }; -export type CollectionsListingMetaObjectQueryVariables = StorefrontAPI.Exact<{ - country?: StorefrontAPI.InputMaybe; +export type PageQueryVariables = StorefrontAPI.Exact<{ language?: StorefrontAPI.InputMaybe; + country?: StorefrontAPI.InputMaybe; + handle: StorefrontAPI.Scalars['String']['input']; }>; -export type CollectionsListingMetaObjectQuery = { - metaobjects: { - nodes: Array<{ - fields: Array< - Pick & { - reference?: StorefrontAPI.Maybe< - Pick & { - fields: Array< - Pick - >; - } - >; - } - >; - }>; - }; -}; - -export type CollectionAllProductFragment = Pick< - StorefrontAPI.Product, - 'id' | 'title' | 'handle' -> & { - priceRange: { - minVariantPrice: Pick; - maxVariantPrice: Pick; - }; - compareAtPriceRange: { - minVariantPrice: Pick; - }; - images: { - nodes: Array< - Pick - >; - }; -}; - -export type CollectionsAllPagedRecommendedProductsQueryVariables = - StorefrontAPI.Exact<{ - country?: StorefrontAPI.InputMaybe; - endCursor?: StorefrontAPI.InputMaybe< - StorefrontAPI.Scalars['String']['input'] - >; - first?: StorefrontAPI.InputMaybe; - language?: StorefrontAPI.InputMaybe; - last?: StorefrontAPI.InputMaybe; - startCursor?: StorefrontAPI.InputMaybe< - StorefrontAPI.Scalars['String']['input'] - >; - }>; - -export type CollectionsAllPagedRecommendedProductsQuery = { - products: { - nodes: Array< - Pick & { - priceRange: { - minVariantPrice: Pick< - StorefrontAPI.MoneyV2, - 'amount' | 'currencyCode' - >; - maxVariantPrice: Pick< - StorefrontAPI.MoneyV2, - 'amount' | 'currencyCode' - >; - }; - compareAtPriceRange: { - minVariantPrice: Pick< - StorefrontAPI.MoneyV2, - 'amount' | 'currencyCode' - >; - }; - images: { - nodes: Array< - Pick< - StorefrontAPI.Image, - 'id' | 'url' | 'altText' | 'width' | 'height' - > - >; - }; - } - >; - pageInfo: Pick< - StorefrontAPI.PageInfo, - 'hasNextPage' | 'hasPreviousPage' | 'startCursor' | 'endCursor' - >; - }; -}; - -export type CollectionsAllProductPageMetaObjectQueryVariables = - StorefrontAPI.Exact<{ - country?: StorefrontAPI.InputMaybe; - language?: StorefrontAPI.InputMaybe; - }>; - -export type CollectionsAllProductPageMetaObjectQuery = { - metaobjects: { - nodes: Array<{ - fields: Array< - Pick & { - reference?: StorefrontAPI.Maybe< - Pick & { - fields: Array< - Pick - >; - } - >; - } +export type PageQuery = { + page?: StorefrontAPI.Maybe< + Pick & { + seo?: StorefrontAPI.Maybe< + Pick >; - }>; - }; + } + >; }; export type PolicyFragment = Pick< @@ -1864,7 +1444,6 @@ export type ProductQueryVariables = StorefrontAPI.Exact<{ country?: StorefrontAPI.InputMaybe; handle: StorefrontAPI.Scalars['String']['input']; language?: StorefrontAPI.InputMaybe; - key: StorefrontAPI.Scalars['String']['input']; selectedOptions: | Array | StorefrontAPI.SelectedOptionInput; @@ -1876,20 +1455,6 @@ export type ProductQuery = { StorefrontAPI.Product, 'id' | 'title' | 'vendor' | 'handle' | 'descriptionHtml' | 'description' > & { - collections: { - edges: Array<{node: Pick}>; - }; - metafield?: StorefrontAPI.Maybe< - Pick & { - reference?: StorefrontAPI.Maybe< - Pick & { - fields: Array< - Pick - >; - } - >; - } - >; options: Array>; selectedVariant?: StorefrontAPI.Maybe< Pick< @@ -2012,102 +1577,6 @@ export type ProductVariantsQuery = { }>; }; -export type ProductRecommendationsQueryVariables = StorefrontAPI.Exact<{ - country?: StorefrontAPI.InputMaybe; - language?: StorefrontAPI.InputMaybe; - productID: StorefrontAPI.Scalars['ID']['input']; -}>; - -export type ProductRecommendationsQuery = { - productRecommendations?: StorefrontAPI.Maybe< - Array< - Pick< - StorefrontAPI.Product, - 'id' | 'title' | 'handle' | 'availableForSale' - > & { - priceRange: { - minVariantPrice: Pick< - StorefrontAPI.MoneyV2, - 'amount' | 'currencyCode' - >; - maxVariantPrice: Pick< - StorefrontAPI.MoneyV2, - 'amount' | 'currencyCode' - >; - }; - compareAtPriceRange: { - minVariantPrice: Pick< - StorefrontAPI.MoneyV2, - 'amount' | 'currencyCode' - >; - maxVariantPrice: Pick< - StorefrontAPI.MoneyV2, - 'amount' | 'currencyCode' - >; - }; - images: { - nodes: Array< - Pick< - StorefrontAPI.Image, - 'id' | 'url' | 'altText' | 'width' | 'height' - > - >; - }; - } - > - >; -}; - -export type ProductDetailPagedMetaObjectQueryVariables = StorefrontAPI.Exact<{ - country?: StorefrontAPI.InputMaybe; - language?: StorefrontAPI.InputMaybe; - first?: StorefrontAPI.InputMaybe; - after?: StorefrontAPI.InputMaybe; -}>; - -export type ProductDetailPagedMetaObjectQuery = { - metaobjects: { - edges: Array< - Pick & { - node: Pick & { - fields: Array< - Pick & { - reference?: StorefrontAPI.Maybe< - Pick - >; - } - >; - }; - } - >; - pageInfo: Pick; - }; -}; - -export type ProductHandleProductPageMetaObjectQueryVariables = - StorefrontAPI.Exact<{ - country?: StorefrontAPI.InputMaybe; - language?: StorefrontAPI.InputMaybe; - }>; - -export type ProductHandleProductPageMetaObjectQuery = { - metaobjects: { - nodes: Array<{ - fields: Array< - Pick & { - reference?: StorefrontAPI.Maybe< - Pick & { - fields: Array< - Pick - >; - } - >; - } - >; - }>; - }; -}; - export type SearchProductFragment = {__typename: 'Product'} & Pick< StorefrontAPI.Product, 'handle' | 'id' | 'publishedAt' | 'title' | 'trackingParameters' | 'vendor' @@ -2219,221 +1688,6 @@ export type StoreRobotsQueryVariables = StorefrontAPI.Exact<{ export type StoreRobotsQuery = {shop: Pick}; -export type DefaultIndexRecommendedProductsQueryVariables = - StorefrontAPI.Exact<{ - country?: StorefrontAPI.InputMaybe; - language?: StorefrontAPI.InputMaybe; - }>; - -export type DefaultIndexRecommendedProductsQuery = { - products: { - nodes: Array< - Pick & { - priceRange: { - minVariantPrice: Pick< - StorefrontAPI.MoneyV2, - 'amount' | 'currencyCode' - >; - }; - compareAtPriceRange: { - minVariantPrice: Pick< - StorefrontAPI.MoneyV2, - 'amount' | 'currencyCode' - >; - }; - images: { - nodes: Array< - Pick< - StorefrontAPI.Image, - 'id' | 'url' | 'altText' | 'width' | 'height' - > - >; - }; - } - >; - }; -}; - -export type DefaultIndexStoreCollectionsQueryVariables = StorefrontAPI.Exact<{ - country?: StorefrontAPI.InputMaybe; - endCursor?: StorefrontAPI.InputMaybe< - StorefrontAPI.Scalars['String']['input'] - >; - language?: StorefrontAPI.InputMaybe; - last?: StorefrontAPI.InputMaybe; - startCursor?: StorefrontAPI.InputMaybe< - StorefrontAPI.Scalars['String']['input'] - >; -}>; - -export type DefaultIndexStoreCollectionsQuery = { - collections: { - nodes: Array< - Pick< - StorefrontAPI.Collection, - 'id' | 'title' | 'handle' | 'description' - > & { - products: {edges: Array<{node: Pick}>}; - image?: StorefrontAPI.Maybe< - Pick< - StorefrontAPI.Image, - 'id' | 'url' | 'altText' | 'width' | 'height' - > - >; - } - >; - pageInfo: Pick< - StorefrontAPI.PageInfo, - 'hasNextPage' | 'hasPreviousPage' | 'startCursor' | 'endCursor' - >; - }; -}; - -export type DefaultIndexNewArrivalsCollectionQueryVariables = - StorefrontAPI.Exact<{ - country?: StorefrontAPI.InputMaybe; - language?: StorefrontAPI.InputMaybe; - }>; - -export type DefaultIndexNewArrivalsCollectionQuery = { - collection?: StorefrontAPI.Maybe< - Pick & { - products: { - nodes: Array< - Pick & { - images: { - nodes: Array< - Pick< - StorefrontAPI.Image, - 'id' | 'url' | 'altText' | 'width' | 'height' - > - >; - }; - } - >; - }; - } - >; -}; - -export type DefaultIndexTopCategoriesCollectionQueryVariables = - StorefrontAPI.Exact<{ - country?: StorefrontAPI.InputMaybe; - language?: StorefrontAPI.InputMaybe; - }>; - -export type DefaultIndexTopCategoriesCollectionQuery = { - collections: { - edges: Array<{ - node: Pick & { - image?: StorefrontAPI.Maybe< - Pick< - StorefrontAPI.Image, - 'id' | 'url' | 'altText' | 'width' | 'height' - > - >; - products: { - edges: Array<{ - node: Pick; - }>; - }; - }; - }>; - }; -}; - -export type DefaultIndexBestSellerCollectionQueryVariables = - StorefrontAPI.Exact<{ - country?: StorefrontAPI.InputMaybe; - language?: StorefrontAPI.InputMaybe; - }>; - -export type DefaultIndexBestSellerCollectionQuery = { - collection?: StorefrontAPI.Maybe< - Pick & { - products: { - nodes: Array< - Pick & { - images: { - nodes: Array< - Pick< - StorefrontAPI.Image, - 'id' | 'url' | 'altText' | 'width' | 'height' - > - >; - }; - } - >; - }; - } - >; -}; - -export type DefaultIndexHomeMetaObjectQueryVariables = StorefrontAPI.Exact<{ - country?: StorefrontAPI.InputMaybe; - language?: StorefrontAPI.InputMaybe; -}>; - -export type DefaultIndexHomeMetaObjectQuery = { - metaobjects: { - nodes: Array<{ - fields: Array< - Pick & { - reference?: StorefrontAPI.Maybe< - | (Pick & { - image?: StorefrontAPI.Maybe>; - }) - | (Pick & { - fields: Array< - Pick & { - references?: StorefrontAPI.Maybe<{ - nodes: Array< - Pick & { - fields: Array< - Pick< - StorefrontAPI.MetaobjectField, - 'key' | 'type' | 'value' - > - >; - } - >; - }>; - reference?: StorefrontAPI.Maybe< - | (Pick & { - image?: StorefrontAPI.Maybe< - Pick - >; - }) - | (Pick & { - fields: Array< - Pick< - StorefrontAPI.MetaobjectField, - 'key' | 'value' - > & { - reference?: StorefrontAPI.Maybe< - Pick & { - fields: Array< - Pick< - StorefrontAPI.MetaobjectField, - 'key' | 'value' - > - >; - } - >; - } - >; - }) - >; - } - >; - }) - >; - } - >; - }>; - }; -}; - export type MoneyFragment = Pick< StorefrontAPI.MoneyV2, 'currencyCode' | 'amount' @@ -2545,41 +1799,17 @@ interface GeneratedQueryTypes { return: FooterQuery; variables: FooterQueryVariables; }; - '#graphql\nquery RootFooterMetaObject($country: CountryCode, $language: LanguageCode)\n@inContext(country: $country, language: $language) {\n metaobjects(first: 100, type: "footer") {\n nodes {\n fields {\n key\n type\n value\n reference {\n ... on Metaobject {\n id\n fields {\n key\n value\n references(first: 10) {\n nodes {\n ... on Metaobject {\n id\n fields {\n key\n type\n value\n reference {\n ... on Metaobject {\n id\n fields {\n key\n value\n }\n }\n ... on MediaImage {\n id\n image {\n url\n }\n }\n }\n }\n }\n }\n }\n }\n }\n ... on MediaImage {\n id\n image {\n url\n }\n }\n }\n references(first: 10) {\n nodes {\n ... on Metaobject {\n id\n fields {\n key\n type\n value\n reference {\n ... on Metaobject {\n id\n fields {\n key\n value\n references(first: 10) {\n nodes {\n ... on Metaobject {\n id\n fields {\n key\n type\n value\n reference {\n ... on Metaobject {\n id\n fields {\n key\n value\n }\n }\n ... on MediaImage {\n id\n image {\n url\n }\n }\n }\n }\n }\n }\n }\n }\n }\n ... on MediaImage {\n id\n image {\n url\n }\n }\n }\n }\n }\n ... on MediaImage {\n id\n image {\n url\n }\n }\n }\n }\n }\n }\n }\n}': { - return: RootFooterMetaObjectQuery; - variables: RootFooterMetaObjectQueryVariables; - }; '#graphql\n query Sitemap($urlLimits: Int, $language: LanguageCode)\n @inContext(language: $language) {\n products(\n first: $urlLimits\n query: "published_status:\'online_store:visible\'"\n ) {\n nodes {\n updatedAt\n handle\n onlineStoreUrl\n title\n featuredImage {\n url\n altText\n }\n }\n }\n collections(\n first: $urlLimits\n query: "published_status:\'online_store:visible\'"\n ) {\n nodes {\n updatedAt\n handle\n onlineStoreUrl\n }\n }\n pages(first: $urlLimits, query: "published_status:\'published\'") {\n nodes {\n updatedAt\n handle\n onlineStoreUrl\n }\n }\n }\n': { return: SitemapQuery; variables: SitemapQueryVariables; }; - '#graphql\n fragment RecommendedProduct on Product {\n id\n title\n handle\n productType\n priceRange {\n minVariantPrice {\n amount\n currencyCode\n }\n }\n compareAtPriceRange {\n minVariantPrice {\n amount\n currencyCode\n }\n \n }\n images(first: 1) {\n nodes {\n id\n url\n altText\n width\n height\n }\n }\n }\n query LocaleIndexRecommendedProducts ($country: CountryCode, $language: LanguageCode)\n @inContext(country: $country, language: $language) {\n products(first: 3, sortKey: CREATED_AT, reverse: true) {\n nodes {\n ...RecommendedProduct\n }\n \n }\n }\n': { - return: LocaleIndexRecommendedProductsQuery; - variables: LocaleIndexRecommendedProductsQueryVariables; - }; - '#graphql\n fragment Collection on Collection {\n id\n title\n handle\n description\n image {\n id\n url\n altText\n width\n height\n }\n }\n query LocaleIndexStoreCollections(\n $country: CountryCode\n $endCursor: String\n # $first: Int\n $language: LanguageCode\n $last: Int\n $startCursor: String\n ) @inContext(country: $country, language: $language) {\n collections(\n first: 3,\n last: $last,\n before: $startCursor,\n after: $endCursor,\n sortKey: UPDATED_AT,\n reverse: true\n ) {\n nodes {\n ...Collection,\n products(first: 250) {\n edges {\n node {\n id\n }\n }\n }\n }\n pageInfo {\n hasNextPage\n hasPreviousPage\n startCursor\n endCursor\n }\n }\n }\n': { - return: LocaleIndexStoreCollectionsQuery; - variables: LocaleIndexStoreCollectionsQueryVariables; + '#graphql\n fragment FeaturedCollection on Collection {\n id\n title\n image {\n id\n url\n altText\n width\n height\n }\n handle\n }\n query FeaturedCollection($country: CountryCode, $language: LanguageCode)\n @inContext(country: $country, language: $language) {\n collections(first: 1, sortKey: UPDATED_AT, reverse: true) {\n nodes {\n ...FeaturedCollection\n }\n }\n }\n': { + return: FeaturedCollectionQuery; + variables: FeaturedCollectionQueryVariables; }; - '#graphql\nquery LocaleIndexNewArrivalsCollection($country: CountryCode, $language: LanguageCode)\n@inContext(country: $country, language: $language) {\n collection(handle: "new-arrivals") {\n handle\n products(first: 3) {\n nodes{\n id\n title\n handle\n images(first: 1) {\n nodes {\n id\n url\n altText\n width\n height\n }\n }\n }\n }\n }\n}': { - return: LocaleIndexNewArrivalsCollectionQuery; - variables: LocaleIndexNewArrivalsCollectionQueryVariables; - }; - '#graphql\n query LocaleIndexTopCategoriesCollection($country: CountryCode, $language: LanguageCode)\n @inContext(country: $country, language: $language) {\n collections(first:8, reverse:true) {\n edges {\n node {\n title\n handle\n id\n image {\n id\n url\n altText\n width\n height\n }\n products(first: 250) {\n edges {\n node {\n id\n title\n productType\n \n }\n }\n }\n }\n }\n }\n }\n': { - return: LocaleIndexTopCategoriesCollectionQuery; - variables: LocaleIndexTopCategoriesCollectionQueryVariables; - }; - '#graphql\nquery LocaleIndexBestSellerCollection($country: CountryCode, $language: LanguageCode)\n@inContext(country: $country, language: $language) {\n collection(handle: "womens-fashion") {\n handle\n products(first: 4) {\n nodes{\n id\n title\n handle\n images(first: 1) {\n nodes {\n id\n url\n altText\n width\n height\n }\n }\n }\n }\n }\n}': { - return: LocaleIndexBestSellerCollectionQuery; - variables: LocaleIndexBestSellerCollectionQueryVariables; - }; - '#graphql\nquery LocaleIndexHomeMetaObject($country: CountryCode, $language: LanguageCode)\n@inContext(country: $country, language: $language) {\n metaobjects(first: 100, type: "home") {\n nodes {\n fields {\n key\n type\n value\n reference {\n ... on Metaobject {\n id\n fields {\n key\n value\n references(first: 10) {\n nodes {\n ... on Metaobject {\n id\n fields {\n key\n type\n value\n }\n }\n }\n }\n reference {\n ... on Metaobject {\n id\n \n fields {\n key\n \n value\n reference {\n ... on Metaobject {\n id\n fields {\n key\n value\n \n }\n }\n }\n }\n }\n ... on MediaImage {\n id\n image {\n url\n }\n }\n }\n }\n }\n ... on MediaImage {\n id\n image {\n url\n }\n }\n }\n }\n }\n }\n}': { - return: LocaleIndexHomeMetaObjectQuery; - variables: LocaleIndexHomeMetaObjectQueryVariables; - }; - '#graphql\nquery AboutPageMetaObject($country: CountryCode, $language: LanguageCode)\n@inContext(country: $country, language: $language) {\n metaobjects(first: 100, type: "about_us") {\n nodes {\n fields {\n key\n type\n value\n reference {\n ... on Metaobject {\n id\n fields {\n key\n value\n }\n }\n }\n }\n }\n }\n}': { - return: AboutPageMetaObjectQuery; - variables: AboutPageMetaObjectQueryVariables; + '#graphql\n fragment RecommendedProduct on Product {\n id\n title\n handle\n priceRange {\n minVariantPrice {\n amount\n currencyCode\n }\n }\n images(first: 1) {\n nodes {\n id\n url\n altText\n width\n height\n }\n }\n }\n query RecommendedProducts ($country: CountryCode, $language: LanguageCode)\n @inContext(country: $country, language: $language) {\n products(first: 4, sortKey: UPDATED_AT, reverse: true) {\n nodes {\n ...RecommendedProduct\n }\n }\n }\n': { + return: RecommendedProductsQuery; + variables: RecommendedProductsQueryVariables; }; '#graphql\n fragment OrderMoney on MoneyV2 {\n amount\n currencyCode\n }\n fragment AddressFull on MailingAddress {\n address1\n address2\n city\n company\n country\n countryCodeV2\n firstName\n formatted\n id\n lastName\n name\n phone\n province\n provinceCode\n zip\n }\n fragment DiscountApplication on DiscountApplication {\n value {\n __typename\n ... on MoneyV2 {\n ...OrderMoney\n }\n ... on PricingPercentageValue {\n percentage\n }\n }\n }\n fragment OrderLineProductVariant on ProductVariant {\n id\n image {\n altText\n height\n url\n id\n width\n }\n price {\n ...OrderMoney\n }\n product {\n handle\n }\n sku\n title\n }\n fragment OrderLineItemFull on OrderLineItem {\n title\n quantity\n discountAllocations {\n allocatedAmount {\n ...OrderMoney\n }\n discountApplication {\n ...DiscountApplication\n }\n }\n originalTotalPrice {\n ...OrderMoney\n }\n discountedTotalPrice {\n ...OrderMoney\n }\n variant {\n ...OrderLineProductVariant\n }\n }\n fragment Order on Order {\n id\n name\n orderNumber\n statusUrl\n processedAt\n fulfillmentStatus\n totalTaxV2 {\n ...OrderMoney\n }\n totalPriceV2 {\n ...OrderMoney\n }\n subtotalPriceV2 {\n ...OrderMoney\n }\n shippingAddress {\n ...AddressFull\n }\n discountApplications(first: 100) {\n nodes {\n ...DiscountApplication\n }\n }\n lineItems(first: 100) {\n nodes {\n ...OrderLineItemFull\n }\n }\n }\n query Order(\n $country: CountryCode\n $language: LanguageCode\n $orderId: ID!\n ) @inContext(country: $country, language: $language) {\n order: node(id: $orderId) {\n ... on Order {\n ...Order\n }\n }\n }\n': { return: OrderQuery; @@ -2609,25 +1839,17 @@ interface GeneratedQueryTypes { return: BlogsQuery; variables: BlogsQueryVariables; }; - '#graphql\n #graphql\n fragment MoneyProductItem on MoneyV2 {\n amount\n currencyCode\n }\n fragment ProductItem on Product {\n id\n handle\n title\n featuredImage {\n id\n altText\n url\n width\n height\n }\n priceRange {\n minVariantPrice {\n ...MoneyProductItem\n }\n maxVariantPrice {\n ...MoneyProductItem\n }\n }\n compareAtPriceRange {\n minVariantPrice {\n amount\n currencyCode\n }\n \n }\n variants(first: 1) {\n nodes {\n selectedOptions {\n name\n value\n }\n }\n }\n }\n\n query Collection(\n $handle: String!\n $country: CountryCode\n $language: LanguageCode\n $first: Int\n $last: Int\n $startCursor: String\n $endCursor: String\n ) @inContext(country: $country, language: $language) {\n collection(handle: $handle) {\n id\n handle\n title\n description\n products(\n first: $first,\n last: $last,\n before: $startCursor,\n after: $endCursor\n ) {\n nodes {\n ...ProductItem\n }\n pageInfo {\n hasPreviousPage\n hasNextPage\n endCursor\n startCursor\n }\n }\n }\n }\n': { + '#graphql\n #graphql\n fragment MoneyProductItem on MoneyV2 {\n amount\n currencyCode\n }\n fragment ProductItem on Product {\n id\n handle\n title\n featuredImage {\n id\n altText\n url\n width\n height\n }\n priceRange {\n minVariantPrice {\n ...MoneyProductItem\n }\n maxVariantPrice {\n ...MoneyProductItem\n }\n }\n variants(first: 1) {\n nodes {\n selectedOptions {\n name\n value\n }\n }\n }\n }\n\n query Collection(\n $handle: String!\n $country: CountryCode\n $language: LanguageCode\n $first: Int\n $last: Int\n $startCursor: String\n $endCursor: String\n ) @inContext(country: $country, language: $language) {\n collection(handle: $handle) {\n id\n handle\n title\n description\n products(\n first: $first,\n last: $last,\n before: $startCursor,\n after: $endCursor\n ) {\n nodes {\n ...ProductItem\n }\n pageInfo {\n hasPreviousPage\n hasNextPage\n endCursor\n startCursor\n }\n }\n }\n }\n': { return: CollectionQuery; variables: CollectionQueryVariables; }; - '#graphql\n fragment Collection on Collection {\n id\n title\n handle\n description\n image {\n id\n url\n altText\n width\n height\n }\n }\n query CollectionsListingStoreCollections(\n $country: CountryCode\n $endCursor: String\n $first: Int\n $language: LanguageCode\n $last: Int\n $startCursor: String\n ) @inContext(country: $country, language: $language) {\n collections(\n first: $first,\n last: $last,\n before: $startCursor,\n after: $endCursor\n ) {\n nodes {\n ...Collection\n }\n pageInfo {\n hasNextPage\n hasPreviousPage\n startCursor\n endCursor\n }\n }\n }\n': { - return: CollectionsListingStoreCollectionsQuery; - variables: CollectionsListingStoreCollectionsQueryVariables; + '#graphql\n fragment Collection on Collection {\n id\n title\n handle\n image {\n id\n url\n altText\n width\n height\n }\n }\n query StoreCollections(\n $country: CountryCode\n $endCursor: String\n $first: Int\n $language: LanguageCode\n $last: Int\n $startCursor: String\n ) @inContext(country: $country, language: $language) {\n collections(\n first: $first,\n last: $last,\n before: $startCursor,\n after: $endCursor\n ) {\n nodes {\n ...Collection\n }\n pageInfo {\n hasNextPage\n hasPreviousPage\n startCursor\n endCursor\n }\n }\n }\n': { + return: StoreCollectionsQuery; + variables: StoreCollectionsQueryVariables; }; - '#graphql\nquery CollectionsListingMetaObject($country: CountryCode, $language: LanguageCode)\n@inContext(country: $country, language: $language) {\n metaobjects(first: 100, type: "product_page_contents") {\n nodes {\n fields {\n key\n type\n value\n reference {\n ... on Metaobject {\n id\n fields {\n key\n value\n }\n }\n }\n }\n }\n }\n}': { - return: CollectionsListingMetaObjectQuery; - variables: CollectionsListingMetaObjectQueryVariables; - }; - '#graphql\n fragment CollectionAllProduct on Product {\n id\n title\n handle\n priceRange {\n minVariantPrice {\n amount\n currencyCode\n }\n maxVariantPrice {\n amount\n currencyCode\n }\n }\n compareAtPriceRange {\n minVariantPrice {\n amount\n currencyCode\n }\n \n }\n images(first: 1) {\n nodes {\n id\n url\n altText\n width\n height\n }\n }\n }\n query CollectionsAllPagedRecommendedProducts ( $country: CountryCode\n $endCursor: String\n $first: Int\n $language: LanguageCode\n $last: Int\n $startCursor: String\n ) @inContext(country: $country, language: $language) {\n products(first: $first,\n last: $last,\n before: $startCursor,\n after: $endCursor,\n sortKey: CREATED_AT\n reverse: true\n ) {\n nodes {\n ...CollectionAllProduct\n }\n pageInfo {\n hasNextPage\n hasPreviousPage\n startCursor\n endCursor\n }\n }\n }\n': { - return: CollectionsAllPagedRecommendedProductsQuery; - variables: CollectionsAllPagedRecommendedProductsQueryVariables; - }; - '#graphql\nquery CollectionsAllProductPageMetaObject($country: CountryCode, $language: LanguageCode)\n@inContext(country: $country, language: $language) {\n metaobjects(first: 100, type: "product_page_contents") {\n nodes {\n fields {\n key\n type\n value\n reference {\n ... on Metaobject {\n id\n fields {\n key\n value\n }\n }\n }\n }\n }\n }\n}': { - return: CollectionsAllProductPageMetaObjectQuery; - variables: CollectionsAllProductPageMetaObjectQueryVariables; + '#graphql\n query Page(\n $language: LanguageCode,\n $country: CountryCode,\n $handle: String!\n )\n @inContext(language: $language, country: $country) {\n page(handle: $handle) {\n id\n title\n body\n seo {\n description\n title\n }\n }\n }\n': { + return: PageQuery; + variables: PageQueryVariables; }; '#graphql\n fragment Policy on ShopPolicy {\n body\n handle\n id\n title\n url\n }\n query Policy(\n $country: CountryCode\n $language: LanguageCode\n $privacyPolicy: Boolean!\n $refundPolicy: Boolean!\n $shippingPolicy: Boolean!\n $termsOfService: Boolean!\n ) @inContext(language: $language, country: $country) {\n shop {\n privacyPolicy @include(if: $privacyPolicy) {\n ...Policy\n }\n shippingPolicy @include(if: $shippingPolicy) {\n ...Policy\n }\n termsOfService @include(if: $termsOfService) {\n ...Policy\n }\n refundPolicy @include(if: $refundPolicy) {\n ...Policy\n }\n }\n }\n': { return: PolicyQuery; @@ -2637,26 +1859,14 @@ interface GeneratedQueryTypes { return: PoliciesQuery; variables: PoliciesQueryVariables; }; - '#graphql\n query Product(\n $country: CountryCode\n $handle: String!\n $language: LanguageCode\n $key: String!\n $selectedOptions: [SelectedOptionInput!]! \n ) @inContext(country: $country, language: $language) {\n product(handle: $handle) {\n ...Product\n collections(first: 1) {\n edges {\n node {\n id\n title\n }\n }\n }\n metafield(namespace: "contentstack_products", key: $key) {\n key\n value\n reference {\n ... on Metaobject {\n id\n fields {\n key\n value\n }\n }\n }\n }\n }\n }\n #graphql\n fragment Product on Product {\n id\n title\n vendor\n handle\n descriptionHtml\n description\n options {\n name\n values\n }\n selectedVariant: variantBySelectedOptions(selectedOptions: $selectedOptions) {\n ...ProductVariant\n }\n variants(first: 1) {\n nodes {\n ...ProductVariant\n }\n }\n seo {\n description\n title\n }\n }\n #graphql\n fragment ProductVariant on ProductVariant {\n availableForSale\n compareAtPrice {\n amount\n currencyCode\n }\n id\n image {\n __typename\n id\n url\n altText\n width\n height\n }\n price {\n amount\n currencyCode\n }\n product {\n title\n handle\n }\n selectedOptions {\n name\n value\n }\n sku\n title\n unitPrice {\n amount\n currencyCode\n }\n }\n \n \n ': { + '#graphql\n query Product(\n $country: CountryCode\n $handle: String!\n $language: LanguageCode\n $selectedOptions: [SelectedOptionInput!]!\n ) @inContext(country: $country, language: $language) {\n product(handle: $handle) {\n ...Product\n }\n }\n #graphql\n fragment Product on Product {\n id\n title\n vendor\n handle\n descriptionHtml\n description\n options {\n name\n values\n }\n selectedVariant: variantBySelectedOptions(selectedOptions: $selectedOptions) {\n ...ProductVariant\n }\n variants(first: 1) {\n nodes {\n ...ProductVariant\n }\n }\n seo {\n description\n title\n }\n }\n #graphql\n fragment ProductVariant on ProductVariant {\n availableForSale\n compareAtPrice {\n amount\n currencyCode\n }\n id\n image {\n __typename\n id\n url\n altText\n width\n height\n }\n price {\n amount\n currencyCode\n }\n product {\n title\n handle\n }\n selectedOptions {\n name\n value\n }\n sku\n title\n unitPrice {\n amount\n currencyCode\n }\n }\n\n\n': { return: ProductQuery; variables: ProductQueryVariables; }; - '#graphql\n #graphql\n fragment ProductVariants on Product {\n variants(first: 250) {\n nodes {\n ...ProductVariant\n }\n }\n }\n #graphql\n fragment ProductVariant on ProductVariant {\n availableForSale\n compareAtPrice {\n amount\n currencyCode\n }\n id\n image {\n __typename\n id\n url\n altText\n width\n height\n }\n price {\n amount\n currencyCode\n }\n product {\n title\n handle\n }\n selectedOptions {\n name\n value\n }\n sku\n title\n unitPrice {\n amount\n currencyCode\n }\n }\n \n \n query ProductVariants(\n $country: CountryCode\n $language: LanguageCode\n $handle: String!\n ) @inContext(country: $country, language: $language) {\n product(handle: $handle) {\n ...ProductVariants\n }\n }\n ': { + '#graphql\n #graphql\n fragment ProductVariants on Product {\n variants(first: 250) {\n nodes {\n ...ProductVariant\n }\n }\n }\n #graphql\n fragment ProductVariant on ProductVariant {\n availableForSale\n compareAtPrice {\n amount\n currencyCode\n }\n id\n image {\n __typename\n id\n url\n altText\n width\n height\n }\n price {\n amount\n currencyCode\n }\n product {\n title\n handle\n }\n selectedOptions {\n name\n value\n }\n sku\n title\n unitPrice {\n amount\n currencyCode\n }\n }\n\n\n query ProductVariants(\n $country: CountryCode\n $language: LanguageCode\n $handle: String!\n ) @inContext(country: $country, language: $language) {\n product(handle: $handle) {\n ...ProductVariants\n }\n }\n': { return: ProductVariantsQuery; variables: ProductVariantsQueryVariables; }; - '#graphql\n query productRecommendations(\n $country: CountryCode\n $language: LanguageCode\n $productID: ID!\n ) @inContext(country: $country, language: $language) {\n productRecommendations(productId: $productID, intent: RELATED) {\n id,\n title\n handle\n availableForSale\n priceRange {\n minVariantPrice {\n amount\n currencyCode\n }\n maxVariantPrice {\n amount\n currencyCode\n }\n }\n compareAtPriceRange {\n minVariantPrice {\n amount\n currencyCode\n }\n maxVariantPrice {\n amount\n currencyCode\n }\n \n }\n images(first:1){\n nodes{\n id\n url\n altText\n width\n height\n }\n }\n }\n }\n ': { - return: ProductRecommendationsQuery; - variables: ProductRecommendationsQueryVariables; - }; - '#graphql\nquery ProductDetailPagedMetaObject($country: CountryCode, $language: LanguageCode, $first: Int, $after: String)\n@inContext(country: $country, language: $language) {\n metaobjects(first: $first, after: $after, type: "product_detail_page") {\n edges {\n node {\n id\n fields {\n key\n value\n reference {\n ... on Product {\n id\n title\n }\n }\n }\n }\n cursor\n }\n pageInfo {\n hasNextPage\n endCursor\n }\n }\n}': { - return: ProductDetailPagedMetaObjectQuery; - variables: ProductDetailPagedMetaObjectQueryVariables; - }; - '#graphql\nquery ProductHandleProductPageMetaObject($country: CountryCode, $language: LanguageCode)\n@inContext(country: $country, language: $language) {\n metaobjects(first: 100, type: "product_page_contents") {\n nodes {\n fields {\n key\n type\n value\n reference {\n ... on Metaobject {\n id\n fields {\n key\n value\n }\n }\n }\n }\n }\n }\n}': { - return: ProductHandleProductPageMetaObjectQuery; - variables: ProductHandleProductPageMetaObjectQueryVariables; - }; '#graphql\n fragment SearchProduct on Product {\n __typename\n handle\n id\n publishedAt\n title\n trackingParameters\n vendor\n variants(first: 1) {\n nodes {\n id\n image {\n url\n altText\n width\n height\n }\n price {\n amount\n currencyCode\n }\n compareAtPrice {\n amount\n currencyCode\n }\n selectedOptions {\n name\n value\n }\n product {\n handle\n title\n }\n }\n }\n }\n fragment SearchPage on Page {\n __typename\n handle\n id\n title\n trackingParameters\n }\n fragment SearchArticle on Article {\n __typename\n handle\n id\n title\n trackingParameters\n }\n query search(\n $country: CountryCode\n $endCursor: String\n $first: Int\n $language: LanguageCode\n $last: Int\n $query: String!\n $startCursor: String\n ) @inContext(country: $country, language: $language) {\n products: search(\n query: $query,\n unavailableProducts: HIDE,\n types: [PRODUCT],\n first: $first,\n sortKey: RELEVANCE,\n last: $last,\n before: $startCursor,\n after: $endCursor\n ) {\n nodes {\n ...on Product {\n ...SearchProduct\n }\n }\n pageInfo {\n hasNextPage\n hasPreviousPage\n startCursor\n endCursor\n }\n }\n pages: search(\n query: $query,\n types: [PAGE],\n first: 10\n ) {\n nodes {\n ...on Page {\n ...SearchPage\n }\n }\n }\n articles: search(\n query: $query,\n types: [ARTICLE],\n first: 10\n ) {\n nodes {\n ...on Article {\n ...SearchArticle\n }\n }\n }\n }\n': { return: SearchQuery; variables: SearchQueryVariables; @@ -2665,30 +1875,6 @@ interface GeneratedQueryTypes { return: StoreRobotsQuery; variables: StoreRobotsQueryVariables; }; - '#graphql\n fragment RecommendedProduct on Product {\n id\n title\n handle\n productType\n priceRange {\n minVariantPrice {\n amount\n currencyCode\n }\n }\n compareAtPriceRange {\n minVariantPrice {\n amount\n currencyCode\n }\n \n }\n images(first: 1) {\n nodes {\n id\n url\n altText\n width\n height\n }\n }\n }\n query DefaultIndexRecommendedProducts ($country: CountryCode, $language: LanguageCode)\n @inContext(country: $country, language: $language) {\n products(first: 3, sortKey: CREATED_AT, reverse: true) {\n nodes {\n ...RecommendedProduct\n }\n \n }\n }\n': { - return: DefaultIndexRecommendedProductsQuery; - variables: DefaultIndexRecommendedProductsQueryVariables; - }; - '#graphql\n fragment Collection on Collection {\n id\n title\n handle\n description\n image {\n id\n url\n altText\n width\n height\n }\n }\n query DefaultIndexStoreCollections(\n $country: CountryCode\n $endCursor: String\n # $first: Int\n $language: LanguageCode\n $last: Int\n $startCursor: String\n ) @inContext(country: $country, language: $language) {\n collections(\n first: 3,\n last: $last,\n before: $startCursor,\n after: $endCursor,\n sortKey: UPDATED_AT,\n reverse: true\n ) {\n nodes {\n ...Collection,\n products(first: 250) {\n edges {\n node {\n id\n }\n }\n }\n }\n pageInfo {\n hasNextPage\n hasPreviousPage\n startCursor\n endCursor\n }\n }\n }\n': { - return: DefaultIndexStoreCollectionsQuery; - variables: DefaultIndexStoreCollectionsQueryVariables; - }; - '#graphql\nquery DefaultIndexNewArrivalsCollection($country: CountryCode, $language: LanguageCode)\n@inContext(country: $country, language: $language) {\n collection(handle: "new-arrivals") {\n handle\n products(first: 3) {\n nodes{\n id\n title\n handle\n images(first: 1) {\n nodes {\n id\n url\n altText\n width\n height\n }\n }\n }\n }\n }\n}': { - return: DefaultIndexNewArrivalsCollectionQuery; - variables: DefaultIndexNewArrivalsCollectionQueryVariables; - }; - '#graphql\n query DefaultIndexTopCategoriesCollection($country: CountryCode, $language: LanguageCode)\n @inContext(country: $country, language: $language) {\n collections(first:8, reverse:true) {\n edges {\n node {\n title\n handle\n id\n image {\n id\n url\n altText\n width\n height\n }\n products(first: 250) {\n edges {\n node {\n id\n title\n productType\n \n }\n }\n }\n }\n }\n }\n }\n': { - return: DefaultIndexTopCategoriesCollectionQuery; - variables: DefaultIndexTopCategoriesCollectionQueryVariables; - }; - '#graphql\nquery DefaultIndexBestSellerCollection($country: CountryCode, $language: LanguageCode)\n@inContext(country: $country, language: $language) {\n collection(handle: "womens-fashion") {\n handle\n products(first: 4) {\n nodes{\n id\n title\n handle\n images(first: 1) {\n nodes {\n id\n url\n altText\n width\n height\n }\n }\n }\n }\n }\n}': { - return: DefaultIndexBestSellerCollectionQuery; - variables: DefaultIndexBestSellerCollectionQueryVariables; - }; - '#graphql\nquery DefaultIndexHomeMetaObject($country: CountryCode, $language: LanguageCode)\n@inContext(country: $country, language: $language) {\n metaobjects(first: 100, type: "home") {\n nodes {\n fields {\n key\n type\n value\n reference {\n ... on Metaobject {\n id\n fields {\n key\n value\n references(first: 10) {\n nodes {\n ... on Metaobject {\n id\n fields {\n key\n type\n value\n }\n }\n }\n }\n reference {\n ... on Metaobject {\n id\n \n fields {\n key\n \n value\n reference {\n ... on Metaobject {\n id\n fields {\n key\n value\n \n }\n }\n }\n }\n }\n ... on MediaImage {\n id\n image {\n url\n }\n }\n }\n }\n }\n ... on MediaImage {\n id\n image {\n url\n }\n }\n }\n }\n }\n }\n}': { - return: DefaultIndexHomeMetaObjectQuery; - variables: DefaultIndexHomeMetaObjectQueryVariables; - }; } interface GeneratedMutationTypes {