1const SHOPIFY_STOREFRONT_ACCESS_TOKEN="9e9aa1612ecd375fde40752fc5b5b258";export const fetchGraphQL=async(graphQLQueryValue,variables)=>{try{const query={query:graphQLQueryValue};variables&&(query.variables=variables);const fetchOptions={method:"POST",headers:{"Content-Type":"application/json","X-Shopify-Storefront-Access-Token":SHOPIFY_STOREFRONT_ACCESS_TOKEN},body:JSON.stringify(query)},result=await fetch("/api/2025-10/graphql.json",fetchOptions);if(result.status>=300){const body=await result.text();return console.error("Error returned, fetchGraphQL",body),null}return result.json()}catch(e){return console.error("Error during fetchGraphQL",e),null}},productsInfoQuery=` 2query ProductIds($productIds: [ID!]!) { 3 nodes(ids: $productIds) { 4 ... on Product { 5 id 6 title 7 options { 8 id 9 name 10 optionValues { 11 id 12 name 13 swatch { 14 color 15 image { 16 ... on MediaImage { 17 image { 18 url(transform: {maxWidth: 28}) 19 } 20 } 21 } 22 } 23 } 24 } 25 variants(first: 250) { 26 nodes { 27 id 28 selectedOptions { 29 name 30 value 31 32 } 33 price { 34 amount 35 currencyCode 36 } 37 compareAtPrice { 38 amount 39 currencyCode 40 } 41 currentlyNotInStock 42 availableForSale 43 stopSelling: metafield(namespace: "custom", key: "stop_selling") { 44 value 45 } 46 image { 47 url(transform: {maxWidth: 254}) 48 altText 49 } 50 } 51 } 52 } 53 } 54} 55`;const sanitizeHandle=handle=>String(handle||"").trim().toLowerCase().replace(/[^a-z0-9-]/g,"");export const buildCollectionsInfoQuery=handles=>` 56 query CollectionsInfo { 57 ${handles.map((handle,index)=>`c${index}: collection(handle: "${sanitizeHandle(handle)}") { ...CollectionCardFields }`).join(` 58`)} 59 } 60 fragment CollectionCardFields on Collection { 61 handle 62 title 63 description 64 onlineStoreUrl 65 image { 66 url(transform: { maxWidth: 400 }) 67 altText 68 } 69 } 70 `,buildPagesInfoQuery=handles=>` 71 query PagesInfo { 72 ${handles.map((handle,index)=>`p${index}: page(handle: "${sanitizeHandle(handle)}") { ...PageCardFields }`).join(` 73`)} 74 } 75 fragment PageCardFields on Page { 76 handle 77 title 78 bodySummary 79 onlineStoreUrl 80 featuredImage: metafield(namespace: "custom", key: "featured_image") { 81 reference { 82 ... on MediaImage { 83 image { 84 url(transform: { maxWidth: 400 }) 85 altText 86 } 87 } 88 } 89 } 90 } 91 `,buildArticlesInfoQuery=articles=>` 92 query ArticlesInfo { 93 ${articles.map((article,index)=>{const blogHandle=sanitizeHandle(article.blogHandle),articleHandle=sanitizeHandle(article.articleHandle);return`a${index}: blog(handle: "${blogHandle}") { articleByHandle(handle: "${articleHandle}") { ...ArticleCardFields } }`}).join(` 94`)} 95 } 96 fragment ArticleCardFields on Article { 97 handle 98 title 99 excerpt 100 onlineStoreUrl 101 image { 102 url(transform: { maxWidth: 400 }) 103 altText 104 } 105 } 106 `; 107//# sourceMappingURL=/cdn/shop/t/9/assets/tw-graphql.js.map?v=146379176376803446741790803702
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.