@gem-sdk/pages 12.0.0-staging.4 → 12.0.6

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.
@@ -1 +1 @@
1
- "use strict";var core=require("@gem-sdk/core"),adapterShopify=require("@gem-sdk/adapter-shopify"),googleFonts=require("../google-fonts.js"),genCss=require("../helpers/gen-css.js"),getFallback=require("../helpers/get-fallback.js"),normalize=require("../helpers/normalize.js"),parseJson=require("../helpers/parse-json.js"),nextjs=require("@sentry/nextjs"),index=require("../../constants/index.js"),getMetafield=require("../helpers/get-metafield.js"),customFonts=require("../custom-fonts.js"),generateSeoLinks=require("../helpers/generate-seo-links.js");const getHomePagePropsV2=(e,t)=>async()=>{try{let a={slugType:"STATIC"},[s,l,i,o]=await Promise.allSettled([e([core.PublishedThemePagesDocument,a]),e([core.StorePropertyDocument]),t([adapterShopify.ShopMetaDocument]),e([core.PublishedShopMetasDocument,{keys:[index.PublishedThemePageMetafields.GLOBAL_META_DESCRIPTION,index.PublishedThemePageMetafields.GLOBAL_META_THUMBNAIL]}])]);if("rejected"===s.status)throw Error(s.reason?.[0]);let d="fulfilled"===o.status?o.value:void 0,n=s.value?.publishedThemePages?.[0],r=s.value?.publishedThemePages?.[0]?.themePageCustomFonts;if(!n)throw Error("No data builder found for Home page");let u=normalize.parseBuilderTemplateV2(n),[g,h,m,P]=await Promise.all([googleFonts.getFontStyleFromPageTemplate(u,void 0,n?.pageStyle?.data),googleFonts.getFontLinkFromGlobalStyle(n?.pageStyle?.data,void 0),getFallback.getFallbackV2(e,u),customFonts.getCustomFonts(r)]),p=n.isMobile??!1,f=getMetafield.getPublishedThemePageMetafieldByKey(index.PublishedThemePageMetafields.GLOBAL_META_DESCRIPTION,n?.metafields)||d?.publishedShopMetas?.find(e=>e?.key===index.PublishedThemePageMetafields.GLOBAL_META_DESCRIPTION)?.value,c=parseJson.parseJson(getMetafield.getPublishedThemePageMetafieldByKey(index.PublishedThemePageMetafields.GLOBAL_META_THUMBNAIL,n?.metafields)||d?.publishedShopMetas?.find(e=>e?.key===index.PublishedThemePageMetafields.GLOBAL_META_THUMBNAIL)?.value),T="fulfilled"===i.status?i.value:void 0,y="fulfilled"===l.status?l.value:void 0,M=y?.storeProperty?.favicon??"/favicon/favicon-32x32.png",b={defaultTitle:T?.shop.name,title:n?.name??"Home",description:f??T?.shop.description,openGraph:{site_name:T?.shop.name,locale:T?.localization.country.isoCode,title:n?.name??T?.shop.name,description:f??T?.shop.description,images:c?[c]:[]},additionalMetaTags:[{name:"theme-color",content:"#000000"}],canonical:`https://${y?.storeProperty?.primaryDomain}/`,additionalLinkTags:generateSeoLinks.generateSeoLinks({favicon:M,shopMeta:T})},S=T?.localization.language.isoCode??null,_=T?.localization.country.isoCode??null,A=S&&_?`${S}-${_}`:null;return parseJson.serializableJson({themeStyle:genCss.genCSS(n?.pageStyle?.data,p),fontStyle:h,elementFontStyle:g,builderData:u,swr:{fallback:m},moneyFormat:T?.shop.moneyFormat??null,currency:T?.localization.country.currency.isoCode??null,languageIsoCode:S,countryIsoCode:_,locale:A,swatches:parseJson.parseJson(y?.storeProperty?.swatchesConfig),seo:b,mobileOnly:p,gaTrackingId:getMetafield.getPublishedThemePageMetafieldByKey(index.PublishedThemePageMetafields.ANALYTICS_GA_TRACKING_ID,n?.metafields)??null,facebookPixelId:getMetafield.getPublishedThemePageMetafieldByKey(index.PublishedThemePageMetafields.ANALYTICS_FB_PIXEL_ID,n?.metafields)??null,tiktokPixelId:getMetafield.getPublishedThemePageMetafieldByKey(index.PublishedThemePageMetafields.ANALYTICS_TIKTOK_PIXEL_ID,n?.metafields)??null,customCodeHeader:getMetafield.getPublishedThemePageMetafieldByKey(index.PublishedThemePageMetafields.CUSTOM_CODE_HEADER,n?.metafields)??null,customCodeBody:getMetafield.getPublishedThemePageMetafieldByKey(index.PublishedThemePageMetafields.CUSTOM_CODE_BODY,n?.metafields)??null,pageHandle:n.handle??null,customFonts:P})}catch(e){throw nextjs.captureException(e),e}};exports.getHomePagePropsV2=getHomePagePropsV2;
1
+ "use strict";var core=require("@gem-sdk/core"),adapterShopify=require("@gem-sdk/adapter-shopify"),googleFonts=require("../google-fonts.js"),genCss=require("../helpers/gen-css.js"),getFallback=require("../helpers/get-fallback.js"),normalize=require("../helpers/normalize.js"),parseJson=require("../helpers/parse-json.js"),nextjs=require("@sentry/nextjs"),index=require("../../constants/index.js"),getMetafield=require("../helpers/get-metafield.js"),customFonts=require("../custom-fonts.js"),generateSeoLinks=require("../helpers/generate-seo-links.js");const getHomePagePropsV2=(e,t)=>async()=>{try{let a={slugType:"STATIC"},[l,s,i,o]=await Promise.allSettled([e([core.PublishedThemePagesDocument,a]),e([core.StorePropertyDocument]),t([adapterShopify.ShopMetaDocument]),e([core.PublishedShopMetasDocument,{keys:[index.PublishedThemePageMetafields.GLOBAL_META_DESCRIPTION,index.PublishedThemePageMetafields.GLOBAL_META_THUMBNAIL]}])]);if("rejected"===l.status)throw Error(l.reason?.[0]);let d="fulfilled"===o.status?o.value:void 0,n=l.value?.publishedThemePages?.[0],r=l.value?.publishedThemePages?.[0]?.themePageCustomFonts;if(!n)throw Error("No data builder found for Home page");let u=normalize.parseBuilderTemplateV2(n),[g,h,m,P]=await Promise.all([googleFonts.getFontStyleFromPageTemplate(u,void 0,n?.pageStyle?.data),googleFonts.getFontLinkFromGlobalStyle(n?.pageStyle?.data,void 0),getFallback.getFallbackV2(e,u),customFonts.getCustomFonts(r)]),p=n.isMobile??!1,f=getMetafield.getPublishedThemePageMetafieldByKey(index.PublishedThemePageMetafields.GLOBAL_META_DESCRIPTION,n?.metafields)||d?.publishedShopMetas?.find(e=>e?.key===index.PublishedThemePageMetafields.GLOBAL_META_DESCRIPTION)?.value,c=parseJson.parseJson(getMetafield.getPublishedThemePageMetafieldByKey(index.PublishedThemePageMetafields.GLOBAL_META_THUMBNAIL,n?.metafields)||d?.publishedShopMetas?.find(e=>e?.key===index.PublishedThemePageMetafields.GLOBAL_META_THUMBNAIL)?.value),T="fulfilled"===i.status?i.value:void 0,y="fulfilled"===s.status?s.value:void 0,M=y?.storeProperty?.favicon??"/favicon/favicon-32x32.png",b={defaultTitle:T?.shop.name,title:n?.name??"Home",description:f??T?.shop.description,openGraph:{locale:T?.localization.country.isoCode,title:n?.name??T?.shop.name,description:f??T?.shop.description,images:c?[c]:[]},additionalMetaTags:[{name:"theme-color",content:"#000000"}],canonical:`https://${y?.storeProperty?.primaryDomain}/`,additionalLinkTags:generateSeoLinks.generateSeoLinks({favicon:M,shopMeta:T})},S=T?.localization.language.isoCode??null,A=T?.localization.country.isoCode??null,L=S&&A?`${S}-${A}`:null;return parseJson.serializableJson({themeStyle:genCss.genCSS(n?.pageStyle?.data,p),fontStyle:h,elementFontStyle:g,builderData:u,swr:{fallback:m},moneyFormat:T?.shop.moneyFormat??null,currency:T?.localization.country.currency.isoCode??null,languageIsoCode:S,countryIsoCode:A,locale:L,swatches:parseJson.parseJson(y?.storeProperty?.swatchesConfig),seo:b,mobileOnly:p,gaTrackingId:getMetafield.getPublishedThemePageMetafieldByKey(index.PublishedThemePageMetafields.ANALYTICS_GA_TRACKING_ID,n?.metafields)??null,facebookPixelId:getMetafield.getPublishedThemePageMetafieldByKey(index.PublishedThemePageMetafields.ANALYTICS_FB_PIXEL_ID,n?.metafields)??null,tiktokPixelId:getMetafield.getPublishedThemePageMetafieldByKey(index.PublishedThemePageMetafields.ANALYTICS_TIKTOK_PIXEL_ID,n?.metafields)??null,customCodeHeader:getMetafield.getPublishedThemePageMetafieldByKey(index.PublishedThemePageMetafields.CUSTOM_CODE_HEADER,n?.metafields)??null,customCodeBody:getMetafield.getPublishedThemePageMetafieldByKey(index.PublishedThemePageMetafields.CUSTOM_CODE_BODY,n?.metafields)??null,pageHandle:n.handle??null,customFonts:P})}catch(e){throw nextjs.captureException(e),e}};exports.getHomePagePropsV2=getHomePagePropsV2;
@@ -1 +1 @@
1
- "use strict";var core=require("@gem-sdk/core"),adapterShopify=require("@gem-sdk/adapter-shopify"),googleFonts=require("../google-fonts.js"),genCss=require("../helpers/gen-css.js"),generateManifres=require("../helpers/generate-manifres.js"),normalize=require("../helpers/normalize.js"),parseJson=require("../helpers/parse-json.js"),index=require("../../constants/index.js"),getMetafield=require("../helpers/get-metafield.js");const getHomePageProps=(e,s)=>async()=>{let a="STATIC",t={slugType:a},[r,i,o,l]=await Promise.allSettled([e([core.PublishedThemePagesDocument,t]),e([core.StorePropertyDocument]),s([adapterShopify.ShopMetaDocument]),e([core.PublishedShopMetasDocument,{keys:[index.PublishedThemePageMetafields.GLOBAL_META_DESCRIPTION,index.PublishedThemePageMetafields.GLOBAL_META_THUMBNAIL]}])]);if("rejected"===r.status)return{pageType:a};let n="fulfilled"===l.status?l.value:void 0,d=r.value.publishedThemePages?.[0],p=normalize.parseBuilderTemplate(d),u=await googleFonts.getFontFromGlobalStyle(d?.pageStyle?.data,void 0),c=core.prefetchQueries(p),m=await Promise.allSettled(c.map(({query:s,variables:a,func:t})=>t?t(e,a):s?e([s,a]):{})),h=c.reduce((e,{key:s},a)=>{let t=m[a];return t?.status==="fulfilled"?{...e,[s]:t.value}:e},{}),g=getMetafield.getPublishedThemePageMetafieldByKey(index.PublishedThemePageMetafields.GLOBAL_META_DESCRIPTION,d?.metafields)||n?.publishedShopMetas?.find(e=>e?.key===index.PublishedThemePageMetafields.GLOBAL_META_DESCRIPTION)?.value,f=parseJson.parseJson(getMetafield.getPublishedThemePageMetafieldByKey(index.PublishedThemePageMetafields.GLOBAL_META_THUMBNAIL,d?.metafields)||n?.publishedShopMetas?.find(e=>e?.key===index.PublishedThemePageMetafields.GLOBAL_META_THUMBNAIL)?.value),P="fulfilled"===o.status?o.value:void 0,y="fulfilled"===i.status?i.value:void 0,T=y?.storeProperty?.favicon??"/favicon/favicon-32x32.png",M={defaultTitle:P?.shop.name,title:d?.name??"Home",description:g??P?.shop.description,openGraph:{site_name:P?.shop.name,locale:P?.localization.country.isoCode,title:d?.name??P?.shop.name,description:g??P?.shop.description,images:f?[f]:[]},additionalMetaTags:[{name:"theme-color",content:"#000000"}],canonical:"/",additionalLinkTags:[{rel:"icon",sizes:"32x32",href:`${T}-/crop/1:1/center/-/smart_resize/32x32/`},{rel:"icon",sizes:"16x16",href:`${T}-/crop/1:1/center/-/smart_resize/16x16/`},{rel:"apple-touch-icon",sizes:"180x180",href:`${T}-/crop/1:1/center/-/smart_resize/180x180/`},{rel:"manifest",href:generateManifres.generateManifest({theme_color:"#000000",background_color:"#ffffff",display:"standalone",scope:"/",start_url:"/",name:P?.shop.name,short_name:P?.shop.name,description:P?.shop.description,icons:[{src:`${T}-/crop/1:1/center/-/smart_resize/192x192/`,sizes:"192x192",type:"image/png",purpose:"any maskable"},{src:`${T}-/crop/1:1/center/-/smart_resize/512x512/`,sizes:"512x512",type:"image/png"}]})}]},_=P?.localization.language.isoCode??null,x=P?.localization.country.isoCode??null,S=_&&x?`${_}-${x}`:null;return parseJson.serializableJson({themeStyle:genCss.genCSS(d?.pageStyle?.data),fontStyle:u,builderData:p,pageType:a,swr:{fallback:h},moneyFormat:P?.shop.moneyFormat??null,currency:P?.localization.country.currency.isoCode??null,locale:S,languageIsoCode:_,countryIsoCode:x,swatches:parseJson.parseJson(y?.storeProperty?.swatchesConfig),seo:M})};exports.getHomePageProps=getHomePageProps;
1
+ "use strict";var core=require("@gem-sdk/core"),adapterShopify=require("@gem-sdk/adapter-shopify"),googleFonts=require("../google-fonts.js"),genCss=require("../helpers/gen-css.js"),generateManifres=require("../helpers/generate-manifres.js"),normalize=require("../helpers/normalize.js"),parseJson=require("../helpers/parse-json.js"),index=require("../../constants/index.js"),getMetafield=require("../helpers/get-metafield.js");const getHomePageProps=(e,s)=>async()=>{let a="STATIC",t={slugType:a},[r,i,o,l]=await Promise.allSettled([e([core.PublishedThemePagesDocument,t]),e([core.StorePropertyDocument]),s([adapterShopify.ShopMetaDocument]),e([core.PublishedShopMetasDocument,{keys:[index.PublishedThemePageMetafields.GLOBAL_META_DESCRIPTION,index.PublishedThemePageMetafields.GLOBAL_META_THUMBNAIL]}])]);if("rejected"===r.status)return{pageType:a};let n="fulfilled"===l.status?l.value:void 0,d=r.value.publishedThemePages?.[0],p=normalize.parseBuilderTemplate(d),u=await googleFonts.getFontFromGlobalStyle(d?.pageStyle?.data,void 0),c=core.prefetchQueries(p),m=await Promise.allSettled(c.map(({query:s,variables:a,func:t})=>t?t(e,a):s?e([s,a]):{})),h=c.reduce((e,{key:s},a)=>{let t=m[a];return t?.status==="fulfilled"?{...e,[s]:t.value}:e},{}),g=getMetafield.getPublishedThemePageMetafieldByKey(index.PublishedThemePageMetafields.GLOBAL_META_DESCRIPTION,d?.metafields)||n?.publishedShopMetas?.find(e=>e?.key===index.PublishedThemePageMetafields.GLOBAL_META_DESCRIPTION)?.value,f=parseJson.parseJson(getMetafield.getPublishedThemePageMetafieldByKey(index.PublishedThemePageMetafields.GLOBAL_META_THUMBNAIL,d?.metafields)||n?.publishedShopMetas?.find(e=>e?.key===index.PublishedThemePageMetafields.GLOBAL_META_THUMBNAIL)?.value),P="fulfilled"===o.status?o.value:void 0,y="fulfilled"===i.status?i.value:void 0,T=y?.storeProperty?.favicon??"/favicon/favicon-32x32.png",M={defaultTitle:P?.shop.name,title:d?.name??"Home",description:g??P?.shop.description,openGraph:{locale:P?.localization.country.isoCode,title:d?.name??P?.shop.name,description:g??P?.shop.description,images:f?[f]:[]},additionalMetaTags:[{name:"theme-color",content:"#000000"}],canonical:"/",additionalLinkTags:[{rel:"icon",sizes:"32x32",href:`${T}-/crop/1:1/center/-/smart_resize/32x32/`},{rel:"icon",sizes:"16x16",href:`${T}-/crop/1:1/center/-/smart_resize/16x16/`},{rel:"apple-touch-icon",sizes:"180x180",href:`${T}-/crop/1:1/center/-/smart_resize/180x180/`},{rel:"manifest",href:generateManifres.generateManifest({theme_color:"#000000",background_color:"#ffffff",display:"standalone",scope:"/",start_url:"/",name:P?.shop.name,short_name:P?.shop.name,description:P?.shop.description,icons:[{src:`${T}-/crop/1:1/center/-/smart_resize/192x192/`,sizes:"192x192",type:"image/png",purpose:"any maskable"},{src:`${T}-/crop/1:1/center/-/smart_resize/512x512/`,sizes:"512x512",type:"image/png"}]})}]},_=P?.localization.language.isoCode??null,x=P?.localization.country.isoCode??null,S=_&&x?`${_}-${x}`:null;return parseJson.serializableJson({themeStyle:genCss.genCSS(d?.pageStyle?.data),fontStyle:u,builderData:p,pageType:a,swr:{fallback:h},moneyFormat:P?.shop.moneyFormat??null,currency:P?.localization.country.currency.isoCode??null,locale:S,languageIsoCode:_,countryIsoCode:x,swatches:parseJson.parseJson(y?.storeProperty?.swatchesConfig),seo:M})};exports.getHomePageProps=getHomePageProps;
@@ -1 +1 @@
1
- "use strict";var core=require("@gem-sdk/core"),adapterShopify=require("@gem-sdk/adapter-shopify"),nextjs=require("@sentry/nextjs"),googleFonts=require("../google-fonts.js"),genCss=require("../helpers/gen-css.js"),getFallback=require("../helpers/get-fallback.js"),normalize=require("../helpers/normalize.js"),parseJson=require("../helpers/parse-json.js"),customFonts=require("../custom-fonts.js"),sentry=require("../helpers/sentry.js"),generateSeoLinks=require("../helpers/generate-seo-links.js");const getStaticPagePropsPreview=(e,o)=>async t=>{try{let a="STATIC",r={handleURL:t,pageType:a},[n,s,l]=await Promise.allSettled([e([core.PreviewThemePageDocument,r]),e([core.StorePropertyDocument]),o([adapterShopify.ShopMetaDocument])]);if("rejected"===n.status)throw sentry.sentryCaptureException("PreviewThemePageDocument",n.reason,{variables:r,theme:n}),Error(n.reason?.[0]);let i=n.value.previewThemePage;if(!i)throw Error(`No data builder found for slug: /preview/${t}`);let c=i.customFonts,u=normalize.parseBuilderTemplateV2(i),[d,g,p,m]=await Promise.all([googleFonts.getFontStyleFromPageTemplate(u,void 0,i?.themeStyle?.data),googleFonts.getFontLinkFromGlobalStyle(i?.themeStyle?.data),getFallback.getFallbackV2(e,u),customFonts.getCustomFonts(c)]),h=!!i.isMobile,y=i?.dataSEO?.find(e=>e?.key==="global-meta-description")?.value,P=parseJson.parseJson(i?.dataSEO?.find(e=>e?.key==="global-meta-thumbnail")?.value),f="fulfilled"===l.status?l.value:void 0,k="fulfilled"===s.status?s.value:void 0,S=k?.storeProperty?.favicon??"/favicon/favicon-32x32.png",v={defaultTitle:f?.shop.name,title:i?.name,description:y??f?.shop.description,openGraph:{site_name:f?.shop.name,locale:f?.localization.country.isoCode,title:i?.name??f?.shop.name,description:y??f?.shop.description,images:P?[P]:[]},nofollow:!0,noindex:!0,canonical:`/preview/${t}`,additionalMetaTags:[{name:"theme-color",content:"#000000"}],additionalLinkTags:generateSeoLinks.generateSeoLinks({favicon:S,shopMeta:f})},w=f?.localization.language.isoCode??null,F=f?.localization.country.isoCode??null,b=w&&F?`${w}-${F}`:null;return parseJson.serializableJson({themeStyle:genCss.genCSS(i?.themeStyle?.data,h),fontStyle:g,elementFontStyle:d,builderData:u,pageType:a,moneyFormat:f?.shop?.moneyFormat??null,currency:f?.localization?.country?.currency?.isoCode??null,languageIsoCode:w,countryIsoCode:F,locale:b,swr:{fallback:p},swatches:parseJson.parseJson(k?.storeProperty?.swatchesConfig),seo:v,mobileOnly:h,gaTrackingId:i.analytic?.gaTrackingID??null,facebookPixelId:i.analytic?.fbPixelID??null,tiktokPixelId:i.analytic?.tiktokPixelID??null,customCodeHeader:i.customCode?.header??null,customCodeBody:i.customCode?.body??null,customFonts:m,pageBackground:normalize.extractPageBackground(i),interaction:i?.interaction})}catch(e){throw nextjs.captureException(e),e}};exports.getStaticPagePropsPreview=getStaticPagePropsPreview;
1
+ "use strict";var core=require("@gem-sdk/core"),adapterShopify=require("@gem-sdk/adapter-shopify"),nextjs=require("@sentry/nextjs"),googleFonts=require("../google-fonts.js"),genCss=require("../helpers/gen-css.js"),getFallback=require("../helpers/get-fallback.js"),normalize=require("../helpers/normalize.js"),parseJson=require("../helpers/parse-json.js"),customFonts=require("../custom-fonts.js"),sentry=require("../helpers/sentry.js"),generateSeoLinks=require("../helpers/generate-seo-links.js");const getStaticPagePropsPreview=(e,o)=>async t=>{try{let a="STATIC",r={handleURL:t,pageType:a},[n,s,l]=await Promise.allSettled([e([core.PreviewThemePageDocument,r]),e([core.StorePropertyDocument]),o([adapterShopify.ShopMetaDocument])]);if("rejected"===n.status)throw sentry.sentryCaptureException("PreviewThemePageDocument",n.reason,{variables:r,theme:n}),Error(n.reason?.[0]);let i=n.value.previewThemePage;if(!i)throw Error(`No data builder found for slug: /preview/${t}`);let c=i.customFonts,u=normalize.parseBuilderTemplateV2(i),[d,g,p,m]=await Promise.all([googleFonts.getFontStyleFromPageTemplate(u,void 0,i?.themeStyle?.data),googleFonts.getFontLinkFromGlobalStyle(i?.themeStyle?.data),getFallback.getFallbackV2(e,u),customFonts.getCustomFonts(c)]),h=!!i.isMobile,y=i?.dataSEO?.find(e=>e?.key==="global-meta-description")?.value,P=parseJson.parseJson(i?.dataSEO?.find(e=>e?.key==="global-meta-thumbnail")?.value),f="fulfilled"===l.status?l.value:void 0,k="fulfilled"===s.status?s.value:void 0,S=k?.storeProperty?.favicon??"/favicon/favicon-32x32.png",v={defaultTitle:f?.shop.name,title:i?.name,description:y??f?.shop.description,openGraph:{locale:f?.localization.country.isoCode,title:i?.name??f?.shop.name,description:y??f?.shop.description,images:P?[P]:[]},nofollow:!0,noindex:!0,canonical:`/preview/${t}`,additionalMetaTags:[{name:"theme-color",content:"#000000"}],additionalLinkTags:generateSeoLinks.generateSeoLinks({favicon:S,shopMeta:f})},w=f?.localization.language.isoCode??null,F=f?.localization.country.isoCode??null,b=w&&F?`${w}-${F}`:null;return parseJson.serializableJson({themeStyle:genCss.genCSS(i?.themeStyle?.data,h),fontStyle:g,elementFontStyle:d,builderData:u,pageType:a,moneyFormat:f?.shop?.moneyFormat??null,currency:f?.localization?.country?.currency?.isoCode??null,languageIsoCode:w,countryIsoCode:F,locale:b,swr:{fallback:p},swatches:parseJson.parseJson(k?.storeProperty?.swatchesConfig),seo:v,mobileOnly:h,gaTrackingId:i.analytic?.gaTrackingID??null,facebookPixelId:i.analytic?.fbPixelID??null,tiktokPixelId:i.analytic?.tiktokPixelID??null,customCodeHeader:i.customCode?.header??null,customCodeBody:i.customCode?.body??null,customFonts:m,pageBackground:normalize.extractPageBackground(i),interaction:i?.interaction})}catch(e){throw nextjs.captureException(e),e}};exports.getStaticPagePropsPreview=getStaticPagePropsPreview;
@@ -1 +1 @@
1
- "use strict";var core=require("@gem-sdk/core"),adapterShopify=require("@gem-sdk/adapter-shopify"),googleFonts=require("../google-fonts.js"),genCss=require("../helpers/gen-css.js"),getFallback=require("../helpers/get-fallback.js"),normalize=require("../helpers/normalize.js"),parseJson=require("../helpers/parse-json.js"),nextjs=require("@sentry/nextjs"),customFonts=require("../custom-fonts.js"),getMetafield=require("../helpers/get-metafield.js"),index=require("../../constants/index.js"),generateSeoLinks=require("../helpers/generate-seo-links.js");const getStaticPagePropsV2=(e,t)=>async a=>{try{let i="STATIC",l={slug:a,slugType:i},[s,o,d,n]=await Promise.allSettled([e([core.PublishedThemePagesDocument,l]),e([core.StorePropertyDocument]),t([adapterShopify.ShopMetaDocument]),e([core.PublishedShopMetasDocument,{keys:["source_font",index.PublishedThemePageMetafields.GLOBAL_META_DESCRIPTION,index.PublishedThemePageMetafields.GLOBAL_META_THUMBNAIL]}])]);if("rejected"===s.status)throw Error(s.reason?.[0]);let r="fulfilled"===n.status?n.value:void 0,u=r?.publishedShopMetas?.find(e=>e?.key==="source_font"),g=s.value.publishedThemePages?.[0],h=s.value?.publishedThemePages?.[0]?.themePageCustomFonts;if(!g)throw Error(`No data builder found for slug: /${a}`);let m=normalize.parseBuilderTemplateV2(g),[P,f,p,c]=await Promise.all([googleFonts.getFontStyleFromPageTemplate(m,u?.value,g?.pageStyle?.data),googleFonts.getFontLinkFromGlobalStyle(g?.pageStyle?.data,u?.value),getFallback.getFallbackV2(e,m),customFonts.getCustomFonts(h)]),T=g.isMobile??!1,M=getMetafield.getPublishedThemePageMetafieldByKey(index.PublishedThemePageMetafields.GLOBAL_META_DESCRIPTION,g?.metafields)||r?.publishedShopMetas?.find(e=>e?.key===index.PublishedThemePageMetafields.GLOBAL_META_DESCRIPTION)?.value,y=getMetafield.getPublishedThemePageMetafieldByKey(index.PublishedThemePageMetafields.GLOBAL_META_TITLE,g?.metafields)||r?.publishedShopMetas?.find(e=>e?.key===index.PublishedThemePageMetafields.GLOBAL_META_TITLE)?.value,b=parseJson.parseJson(getMetafield.getPublishedThemePageMetafieldByKey(index.PublishedThemePageMetafields.GLOBAL_META_THUMBNAIL,g?.metafields)||r?.publishedShopMetas?.find(e=>e?.key===index.PublishedThemePageMetafields.GLOBAL_META_THUMBNAIL)?.value),_=getMetafield.getPublishedThemePageMetafieldByKey(index.PublishedThemePageMetafields.NOINDEX_KEY,g?.metafields)||r?.publishedShopMetas?.find(e=>e?.key===index.PublishedThemePageMetafields.NOINDEX_KEY)?.value,L=getMetafield.getPublishedThemePageMetafieldByKey(index.PublishedThemePageMetafields.NOFOLLOW_KEY,g?.metafields)||r?.publishedShopMetas?.find(e=>e?.key===index.PublishedThemePageMetafields.NOFOLLOW_KEY)?.value,S="fulfilled"===d.status?d.value:void 0,x="fulfilled"===o.status?o.value:void 0,A=x?.storeProperty?.favicon??"/favicon/favicon-32x32.png",E={defaultTitle:S?.shop.name,title:y||g?.name,description:M??S?.shop.description,openGraph:{site_name:S?.shop.name,locale:S?.localization.country.isoCode,title:(y||g?.name)??S?.shop.name,description:M??S?.shop.description,images:b?[b]:[]},noindex:"true"===_,nofollow:"true"===L,canonical:`https://${x?.storeProperty?.primaryDomain}/${a}`,additionalMetaTags:[{name:"theme-color",content:"#000000"}],additionalLinkTags:generateSeoLinks.generateSeoLinks({favicon:A,shopMeta:S})},B=S?.localization.language.isoCode??null,I=S?.localization.country.isoCode??null,k=B&&I?`${B}-${I}`:null;return parseJson.serializableJson({themeStyle:genCss.genCSS(g?.pageStyle?.data,T),fontStyle:f,elementFontStyle:P,builderData:m,pageType:i,moneyFormat:S?.shop.moneyFormat??null,currency:S?.localization.country.currency.isoCode??null,languageIsoCode:B,countryIsoCode:I,locale:k,swr:{fallback:p},swatches:parseJson.parseJson(x?.storeProperty?.swatchesConfig),seo:E,mobileOnly:T,gaTrackingId:getMetafield.getPublishedThemePageMetafieldByKey(index.PublishedThemePageMetafields.ANALYTICS_GA_TRACKING_ID,g?.metafields)??null,facebookPixelId:getMetafield.getPublishedThemePageMetafieldByKey(index.PublishedThemePageMetafields.ANALYTICS_FB_PIXEL_ID,g?.metafields)??null,tiktokPixelId:getMetafield.getPublishedThemePageMetafieldByKey(index.PublishedThemePageMetafields.ANALYTICS_TIKTOK_PIXEL_ID,g?.metafields)??null,customCodeHeader:getMetafield.getPublishedThemePageMetafieldByKey(index.PublishedThemePageMetafields.CUSTOM_CODE_HEADER,g?.metafields)??null,customCodeBody:getMetafield.getPublishedThemePageMetafieldByKey(index.PublishedThemePageMetafields.CUSTOM_CODE_BODY,g?.metafields)??null,pageHandle:g.handle??null,customFonts:c,interaction:g?.interaction,pageBackground:normalize.extractPageBackground(g)})}catch(e){throw nextjs.captureException(e),e}};exports.getStaticPagePropsV2=getStaticPagePropsV2;
1
+ "use strict";var core=require("@gem-sdk/core"),adapterShopify=require("@gem-sdk/adapter-shopify"),googleFonts=require("../google-fonts.js"),genCss=require("../helpers/gen-css.js"),getFallback=require("../helpers/get-fallback.js"),normalize=require("../helpers/normalize.js"),parseJson=require("../helpers/parse-json.js"),nextjs=require("@sentry/nextjs"),customFonts=require("../custom-fonts.js"),getMetafield=require("../helpers/get-metafield.js"),index=require("../../constants/index.js"),generateSeoLinks=require("../helpers/generate-seo-links.js");const getStaticPagePropsV2=(e,t)=>async a=>{try{let i="STATIC",l={slug:a,slugType:i},[s,o,d,n]=await Promise.allSettled([e([core.PublishedThemePagesDocument,l]),e([core.StorePropertyDocument]),t([adapterShopify.ShopMetaDocument]),e([core.PublishedShopMetasDocument,{keys:["source_font",index.PublishedThemePageMetafields.GLOBAL_META_DESCRIPTION,index.PublishedThemePageMetafields.GLOBAL_META_THUMBNAIL]}])]);if("rejected"===s.status)throw Error(s.reason?.[0]);let r="fulfilled"===n.status?n.value:void 0,u=r?.publishedShopMetas?.find(e=>e?.key==="source_font"),g=s.value.publishedThemePages?.[0],h=s.value?.publishedThemePages?.[0]?.themePageCustomFonts;if(!g)throw Error(`No data builder found for slug: /${a}`);let P=normalize.parseBuilderTemplateV2(g),[f,m,p,c]=await Promise.all([googleFonts.getFontStyleFromPageTemplate(P,u?.value,g?.pageStyle?.data),googleFonts.getFontLinkFromGlobalStyle(g?.pageStyle?.data,u?.value),getFallback.getFallbackV2(e,P),customFonts.getCustomFonts(h)]),T=g.isMobile??!1,M=getMetafield.getPublishedThemePageMetafieldByKey(index.PublishedThemePageMetafields.GLOBAL_META_DESCRIPTION,g?.metafields)||r?.publishedShopMetas?.find(e=>e?.key===index.PublishedThemePageMetafields.GLOBAL_META_DESCRIPTION)?.value,y=getMetafield.getPublishedThemePageMetafieldByKey(index.PublishedThemePageMetafields.GLOBAL_META_TITLE,g?.metafields)||r?.publishedShopMetas?.find(e=>e?.key===index.PublishedThemePageMetafields.GLOBAL_META_TITLE)?.value,b=parseJson.parseJson(getMetafield.getPublishedThemePageMetafieldByKey(index.PublishedThemePageMetafields.GLOBAL_META_THUMBNAIL,g?.metafields)||r?.publishedShopMetas?.find(e=>e?.key===index.PublishedThemePageMetafields.GLOBAL_META_THUMBNAIL)?.value),L=getMetafield.getPublishedThemePageMetafieldByKey(index.PublishedThemePageMetafields.NOINDEX_KEY,g?.metafields)||r?.publishedShopMetas?.find(e=>e?.key===index.PublishedThemePageMetafields.NOINDEX_KEY)?.value,S=getMetafield.getPublishedThemePageMetafieldByKey(index.PublishedThemePageMetafields.NOFOLLOW_KEY,g?.metafields)||r?.publishedShopMetas?.find(e=>e?.key===index.PublishedThemePageMetafields.NOFOLLOW_KEY)?.value,_="fulfilled"===d.status?d.value:void 0,x="fulfilled"===o.status?o.value:void 0,A=x?.storeProperty?.favicon??"/favicon/favicon-32x32.png",E={defaultTitle:_?.shop.name,title:y||g?.name,description:M??_?.shop.description,openGraph:{locale:_?.localization.country.isoCode,title:(y||g?.name)??_?.shop.name,description:M??_?.shop.description,images:b?[b]:[]},noindex:"true"===L,nofollow:"true"===S,canonical:`https://${x?.storeProperty?.primaryDomain}/${a}`,additionalMetaTags:[{name:"theme-color",content:"#000000"}],additionalLinkTags:generateSeoLinks.generateSeoLinks({favicon:A,shopMeta:_})},B=_?.localization.language.isoCode??null,I=_?.localization.country.isoCode??null,k=B&&I?`${B}-${I}`:null;return parseJson.serializableJson({themeStyle:genCss.genCSS(g?.pageStyle?.data,T),fontStyle:m,elementFontStyle:f,builderData:P,pageType:i,moneyFormat:_?.shop.moneyFormat??null,currency:_?.localization.country.currency.isoCode??null,languageIsoCode:B,countryIsoCode:I,locale:k,swr:{fallback:p},swatches:parseJson.parseJson(x?.storeProperty?.swatchesConfig),seo:E,mobileOnly:T,gaTrackingId:getMetafield.getPublishedThemePageMetafieldByKey(index.PublishedThemePageMetafields.ANALYTICS_GA_TRACKING_ID,g?.metafields)??null,facebookPixelId:getMetafield.getPublishedThemePageMetafieldByKey(index.PublishedThemePageMetafields.ANALYTICS_FB_PIXEL_ID,g?.metafields)??null,tiktokPixelId:getMetafield.getPublishedThemePageMetafieldByKey(index.PublishedThemePageMetafields.ANALYTICS_TIKTOK_PIXEL_ID,g?.metafields)??null,customCodeHeader:getMetafield.getPublishedThemePageMetafieldByKey(index.PublishedThemePageMetafields.CUSTOM_CODE_HEADER,g?.metafields)??null,customCodeBody:getMetafield.getPublishedThemePageMetafieldByKey(index.PublishedThemePageMetafields.CUSTOM_CODE_BODY,g?.metafields)??null,pageHandle:g.handle??null,customFonts:c,interaction:g?.interaction,pageBackground:normalize.extractPageBackground(g)})}catch(e){throw nextjs.captureException(e),e}};exports.getStaticPagePropsV2=getStaticPagePropsV2;
@@ -1 +1 @@
1
- "use strict";var core=require("@gem-sdk/core"),adapterShopify=require("@gem-sdk/adapter-shopify"),googleFonts=require("../google-fonts.js"),genCss=require("../helpers/gen-css.js"),generateManifres=require("../helpers/generate-manifres.js"),normalize=require("../helpers/normalize.js"),parseJson=require("../helpers/parse-json.js"),index=require("../../constants/index.js"),getMetafield=require("../helpers/get-metafield.js");const getStaticPageProps=(e,s)=>async a=>{let t="STATIC",r={slug:a,slugType:t},[i,o,l,n]=await Promise.allSettled([e([core.PublishedThemePagesDocument,r]),e([core.StorePropertyDocument]),s([adapterShopify.ShopMetaDocument]),e([core.PublishedShopMetasDocument,{keys:["source_font",index.PublishedThemePageMetafields.GLOBAL_META_DESCRIPTION,index.PublishedThemePageMetafields.GLOBAL_META_THUMBNAIL]}])]);if("rejected"===i.status)return{pageType:t};let d="fulfilled"===n.status?n.value:void 0,p=i.value.publishedThemePages?.[0],c=normalize.parseBuilderTemplate(p),u=await googleFonts.getFontLinkFromGlobalStyle(p?.pageStyle?.data),h=core.prefetchQueries(c),m=await Promise.allSettled(h.map(({query:s,variables:a,func:t})=>t?t(e,a):s?e([s,a]):{})),g=h.reduce((e,{key:s},a)=>{let t=m[a];return t?.status==="fulfilled"?{...e,[s]:t.value}:e},{}),f=getMetafield.getPublishedThemePageMetafieldByKey(index.PublishedThemePageMetafields.GLOBAL_META_DESCRIPTION,p?.metafields)||d?.publishedShopMetas?.find(e=>e?.key===index.PublishedThemePageMetafields.GLOBAL_META_DESCRIPTION)?.value,P=parseJson.parseJson(getMetafield.getPublishedThemePageMetafieldByKey(index.PublishedThemePageMetafields.GLOBAL_META_THUMBNAIL,p?.metafields)||d?.publishedShopMetas?.find(e=>e?.key===index.PublishedThemePageMetafields.GLOBAL_META_THUMBNAIL)?.value),y="fulfilled"===l.status?l.value:void 0,T="fulfilled"===o.status?o.value:void 0,M=T?.storeProperty?.favicon??"/favicon/favicon-32x32.png",_={defaultTitle:y?.shop.name??"",title:p?.name??"",description:f??y?.shop.description??"",openGraph:{site_name:y?.shop.name??"",locale:y?.localization.country.isoCode??"",title:p?.name??y?.shop.name??"",description:f??y?.shop.description??"",images:P?[P]:[]},additionalMetaTags:[{name:"theme-color",content:"#000000"}],canonical:`/${a}`,additionalLinkTags:[{rel:"icon",sizes:"32x32",href:`${M}-/crop/1:1/center/-/smart_resize/32x32/`},{rel:"icon",sizes:"16x16",href:`${M}-/crop/1:1/center/-/smart_resize/16x16/`},{rel:"apple-touch-icon",sizes:"180x180",href:`${M}-/crop/1:1/center/-/smart_resize/180x180/`},{rel:"manifest",href:generateManifres.generateManifest({theme_color:"#000000",background_color:"#ffffff",display:"standalone",scope:"/",start_url:"/",name:y?.shop.name,short_name:y?.shop.name,description:y?.shop.description,icons:[{src:`${M}-/crop/1:1/center/-/smart_resize/192x192/`,sizes:"192x192",type:"image/png",purpose:"any maskable"},{src:`${M}-/crop/1:1/center/-/smart_resize/512x512/`,sizes:"512x512",type:"image/png"}]})}]},S=y?.localization.language.isoCode??null,x=y?.localization.country.isoCode??null,b=S&&x?`${S}-${x}`:null;return parseJson.serializableJson({themeStyle:genCss.genCSS(p?.pageStyle?.data),fontStyle:u,builderData:c,pageType:t,moneyFormat:y?.shop.moneyFormat??null,currency:y?.localization.country.currency.isoCode??null,languageIsoCode:S,countryIsoCode:x,locale:b,swr:{fallback:g},swatches:parseJson.parseJson(T?.storeProperty?.swatchesConfig),seo:_})};exports.getStaticPageProps=getStaticPageProps;
1
+ "use strict";var core=require("@gem-sdk/core"),adapterShopify=require("@gem-sdk/adapter-shopify"),googleFonts=require("../google-fonts.js"),genCss=require("../helpers/gen-css.js"),generateManifres=require("../helpers/generate-manifres.js"),normalize=require("../helpers/normalize.js"),parseJson=require("../helpers/parse-json.js"),index=require("../../constants/index.js"),getMetafield=require("../helpers/get-metafield.js");const getStaticPageProps=(e,s)=>async a=>{let t="STATIC",r={slug:a,slugType:t},[i,o,l,n]=await Promise.allSettled([e([core.PublishedThemePagesDocument,r]),e([core.StorePropertyDocument]),s([adapterShopify.ShopMetaDocument]),e([core.PublishedShopMetasDocument,{keys:["source_font",index.PublishedThemePageMetafields.GLOBAL_META_DESCRIPTION,index.PublishedThemePageMetafields.GLOBAL_META_THUMBNAIL]}])]);if("rejected"===i.status)return{pageType:t};let d="fulfilled"===n.status?n.value:void 0,p=i.value.publishedThemePages?.[0],c=normalize.parseBuilderTemplate(p),u=await googleFonts.getFontLinkFromGlobalStyle(p?.pageStyle?.data),h=core.prefetchQueries(c),g=await Promise.allSettled(h.map(({query:s,variables:a,func:t})=>t?t(e,a):s?e([s,a]):{})),m=h.reduce((e,{key:s},a)=>{let t=g[a];return t?.status==="fulfilled"?{...e,[s]:t.value}:e},{}),f=getMetafield.getPublishedThemePageMetafieldByKey(index.PublishedThemePageMetafields.GLOBAL_META_DESCRIPTION,p?.metafields)||d?.publishedShopMetas?.find(e=>e?.key===index.PublishedThemePageMetafields.GLOBAL_META_DESCRIPTION)?.value,P=parseJson.parseJson(getMetafield.getPublishedThemePageMetafieldByKey(index.PublishedThemePageMetafields.GLOBAL_META_THUMBNAIL,p?.metafields)||d?.publishedShopMetas?.find(e=>e?.key===index.PublishedThemePageMetafields.GLOBAL_META_THUMBNAIL)?.value),y="fulfilled"===l.status?l.value:void 0,T="fulfilled"===o.status?o.value:void 0,M=T?.storeProperty?.favicon??"/favicon/favicon-32x32.png",S={defaultTitle:y?.shop.name??"",title:p?.name??"",description:f??y?.shop.description??"",openGraph:{locale:y?.localization.country.isoCode??"",title:p?.name??y?.shop.name??"",description:f??y?.shop.description??"",images:P?[P]:[]},additionalMetaTags:[{name:"theme-color",content:"#000000"}],canonical:`/${a}`,additionalLinkTags:[{rel:"icon",sizes:"32x32",href:`${M}-/crop/1:1/center/-/smart_resize/32x32/`},{rel:"icon",sizes:"16x16",href:`${M}-/crop/1:1/center/-/smart_resize/16x16/`},{rel:"apple-touch-icon",sizes:"180x180",href:`${M}-/crop/1:1/center/-/smart_resize/180x180/`},{rel:"manifest",href:generateManifres.generateManifest({theme_color:"#000000",background_color:"#ffffff",display:"standalone",scope:"/",start_url:"/",name:y?.shop.name,short_name:y?.shop.name,description:y?.shop.description,icons:[{src:`${M}-/crop/1:1/center/-/smart_resize/192x192/`,sizes:"192x192",type:"image/png",purpose:"any maskable"},{src:`${M}-/crop/1:1/center/-/smart_resize/512x512/`,sizes:"512x512",type:"image/png"}]})}]},_=y?.localization.language.isoCode??null,x=y?.localization.country.isoCode??null,b=_&&x?`${_}-${x}`:null;return parseJson.serializableJson({themeStyle:genCss.genCSS(p?.pageStyle?.data),fontStyle:u,builderData:c,pageType:t,moneyFormat:y?.shop.moneyFormat??null,currency:y?.localization.country.currency.isoCode??null,languageIsoCode:_,countryIsoCode:x,locale:b,swr:{fallback:m},swatches:parseJson.parseJson(T?.storeProperty?.swatchesConfig),seo:S})};exports.getStaticPageProps=getStaticPageProps;
@@ -1 +1 @@
1
- "use strict";var checkOptionFont=require("./helpers/check-option-font.js"),genFonts=require("./helpers/gen-fonts.js"),sentry=require("./helpers/sentry.js"),googleFontV1=require("../constants/googleFontV1.js");const CHROME_UA="Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.61 Safari/537.36",IE_UA="Mozilla/5.0 (Windows NT 10.0; Trident/7.0; rv:11.0) like Gecko";async function getFontForUA(t,e){try{return fetch(t,{headers:{"User-Agent":e}}).then(r=>200===r.status?r.text():(sentry.sentryCaptureException("getFontForUA",`Unexpected status ${r.status}`,{url:t,UA:e}),""))}catch(r){return sentry.sentryCaptureException("getFontForUA","Error fetching font",{url:t,UA:e,error:r}),""}}const composeFonts=t=>{let e=t.filter((t,e,r)=>e===r.findIndex(e=>e.family===t.family));return e.map(e=>{let r=t.filter(t=>t.family===e.family).reduce((t,e)=>[...t,...e.variants],[]).filter((t,e,r)=>e===r.findIndex(e=>e===t));return{...e,variants:r}})},GOOGLE_CSS2_OVERRIDES={"Roboto Flex":"https://fonts.googleapis.com/css2?family=Roboto+Flex:opsz,wght@8..144,100..1000&display=swap"},normalizeFamily=t=>t?.trim().replace(/\s+/g,"+")??"",getOverrideUrlForFamily=t=>{let e=normalizeFamily(t);return GOOGLE_CSS2_OVERRIDES[t]??GOOGLE_CSS2_OVERRIDES[e]},VARIANT_WEIGHT_MAP={regular:"400",normal:"400",bold:"700",italic:"400italic"},googleFontFamiliesSet=new Set(googleFontV1.googleFontFamilies),isValidFont=(t,e,r)=>{let o="google"===t.type||"bunny"===t.type,n="theme"===t.type&&r,a=checkOptionFont.checkNotInOptionFont(t.family,e);return!!("google"!==e&&"google"!==t.type||googleFontFamiliesSet.has(t.family))&&!(o&&a)&&(o||!t.type||n)},normalizeVariant=t=>{let e=String(t).toLowerCase().trim();return VARIANT_WEIGHT_MAP[e]??t},sortFontVariants=t=>{let e=t=>{let e=String(t).toLowerCase().trim(),r=e.includes("italic"),o=e.replace("italic","").trim(),n=VARIANT_WEIGHT_MAP[o]??o,a=parseInt(n,10)||400;return{weight:a,isItalic:r}};return[...t].sort((t,r)=>{let o=e(t),n=e(r);return o.weight!==n.weight?o.weight-n.weight:o.isItalic!==n.isItalic?o.isItalic?1:-1:0})},makeUrlBySourceFont=(t,e,r)=>{let o=composeFonts(t).map(t=>{let e=t.variants.map(t=>normalizeVariant(t)),r=sortFontVariants(e);return`${t.family.replace(/ /g,"+")}:${r.join(",")}`}).join("|");if("sans-serif"===o)return;let n=new URLSearchParams;n.append("family",o),n.append("display",r?.display||"swap"),r?.subset&&n.append("subset",r.subset),r?.effect&&n.append("effect",r.effect);let a=`https://fonts.bunny.net/css?family=${o}`,i=`https://fonts.googleapis.com/css?${decodeURIComponent(n.toString())}`;return"bunny"===e?a:i},createFontUrls=(t,e,r,o)=>{let n=t.filter(t=>isValidFont(t,r||"google",o));if(!n.length)return;let a=n.filter((t,e,r)=>e===r.findIndex(e=>e.family===t.family)),i=[],l=[];for(let t of a){let e=getOverrideUrlForFamily(t.family);e&&"bunny"!==r?i.push(e):l.push(t)}let s=l.length?makeUrlBySourceFont(l,r||"google",e):void 0;return i.length&&s?[...i,s]:s?[s,...i]:i};async function getFonts(t,e,r=!0,o){let n=createFontUrls(t,e,o),a=Array.isArray(n)?n:n?[n]:[];if(!a.length)return"";if(r)return a.map(t=>`@import url('${t}');`).join("");let i="",l="";for(let t of a)try{let[e,r]=await Promise.all([getFontForUA(t,"Mozilla/5.0 (Windows NT 10.0; Trident/7.0; rv:11.0) like Gecko"),getFontForUA(t,"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.61 Safari/537.36")]),o=`${e}${r}`;i+=o,l+=`@import url('${t}');`}catch(e){sentry.sentryCaptureException("getFonts","Error fetching font",{url:t,fontType:o,error:String(e)}),l+="",i+=""}let s=new TextEncoder().encode(i).length;return s<51200?i:l}const extractFontsFromPageTemplate=(t,e)=>{let r=[];return t.forEach(t=>{r.push(...genFonts.getFontsFromDataBuilder(t.data,e))}),composeFonts(r)},extractVariantFromTypography=(t,e)=>{let r="400";if(null!=t){let e=String(t).toLowerCase().trim();r=normalizeVariant(e)}let o=r,n=e&&"italic"===e.toLowerCase();return n&&!r.includes("italic")&&(o=r.includes("i")?r:`${r}italic`),o},HEADING_FONT_PREFIX="heading-",SUBHEADING_FONT_PREFIX="subheading-",PARAGRAPH_FONT_PREFIX="paragraph-",extractTypographyVariants=t=>{let e=t?.typography??{},r=t?.font??{},o=new Map;Object.entries(e).forEach(([t,e])=>{if(!e||"object"!=typeof e)return;let n=t.startsWith(HEADING_FONT_PREFIX)||t.startsWith(SUBHEADING_FONT_PREFIX)?r.heading?"heading":void 0:t.startsWith(PARAGRAPH_FONT_PREFIX)&&r.body?"body":void 0,a=e.desktop,i=a?.fontFamily,l=i||n;["desktop","mobile","tablet"].forEach(t=>{let n=e[t];if(!n||"object"!=typeof n)return;let i=n.fontFamily||l;if(!i||"string"!=typeof i||!r[i])return;let s=n.fontWeight??a?.fontWeight,p=n.fontStyle??a?.fontStyle;if(null==s)return;let y=extractVariantFromTypography(s,p);o.has(i)||o.set(i,new Set),o.get(i).add(y)})});let n={};return o.forEach((t,e)=>{let o=r[e];o&&(n[e]={variants:Array.from(t).sort(),family:o.family})}),n},mapTypographyToFontFamily=t=>{let e=t?.typography??{},r=t?.font??{},o=t?.font??{},n={};return Object.entries(e).forEach(([t,e])=>{if(!e||"object"!=typeof e)return;let a=e.desktop,i=e.mobile,l=e.tablet,s=t.startsWith(HEADING_FONT_PREFIX)||t.startsWith(SUBHEADING_FONT_PREFIX)?o.heading?"heading":void 0:t.startsWith(PARAGRAPH_FONT_PREFIX)&&o.body?"body":void 0,p=a?.fontFamily||i?.fontFamily||l?.fontFamily||s;if(!p||"string"!=typeof p)return;let y=r[p],g=o[p],F=y?.family||g?.family||p,c=y?.type||g?.type||"google";F&&(n[t]={family:F,type:c})}),n},getFontLinkFromGlobalStyle=async(t,e)=>{if(!t)return"";try{let r=JSON.parse(t),o=r?.font??{},n=Object.values(o),a=extractTypographyVariants(r);Object.keys(a).length>0&&(n=Object.entries(o).filter(([t])=>a[t]).map(([t,e])=>({...e,variants:a[t].variants})));let i=composeFonts(n);return getFonts(i,void 0,void 0,e)}catch{return""}},getFontFromGlobalStyle=(t,e)=>{if(!t)return"";try{let r=JSON.parse(t),o=r?.font??{},n=Object.entries(o).map(([,t])=>t);return getFonts(n,void 0,void 0,e)}catch{return""}};async function getFontStyleFromPageTemplate(t,e,r){let o,n=null;if(r)try{n=JSON.parse(r),o=mapTypographyToFontFamily(n)}catch{}let a=extractFontsFromPageTemplate(t,o);if(!n){if(0===a.length)return[];let t=await getFonts(a,void 0,void 0,e);return t?[t]:[]}let i=extractTypographyVariants(n),l=new Map;for(let t of Object.values(i)){let e=l.get(t.family);if(!e){l.set(t.family,new Set(t.variants));continue}t.variants.forEach(t=>e.add(t))}if(0===(a=a.map(t=>{let e=l.get(t.family);if(!e)return t;let r=t.variants.filter(t=>!e.has(t));return 0===r.length?null:{...t,variants:r}}).filter(t=>null!==t)).length)return[];let s=await getFonts(a,void 0,void 0,e);return s?[s]:[]}exports.composeFonts=composeFonts,exports.createFontUrls=createFontUrls,exports.extractTypographyVariants=extractTypographyVariants,exports.getFontFromGlobalStyle=getFontFromGlobalStyle,exports.getFontLinkFromGlobalStyle=getFontLinkFromGlobalStyle,exports.getFontStyleFromPageTemplate=getFontStyleFromPageTemplate,exports.getFonts=getFonts,exports.mapTypographyToFontFamily=mapTypographyToFontFamily;
1
+ "use strict";var checkOptionFont=require("./helpers/check-option-font.js"),genFonts=require("./helpers/gen-fonts.js"),sentry=require("./helpers/sentry.js"),googleFontV1=require("../constants/googleFontV1.js");const CHROME_UA="Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.61 Safari/537.36",IE_UA="Mozilla/5.0 (Windows NT 10.0; Trident/7.0; rv:11.0) like Gecko";async function getFontForUA(t,e){try{return fetch(t,{headers:{"User-Agent":e}}).then(r=>200===r.status?r.text():(sentry.sentryCaptureException("getFontForUA",`Unexpected status ${r.status}`,{url:t,UA:e}),""))}catch(r){return sentry.sentryCaptureException("getFontForUA","Error fetching font",{url:t,UA:e,error:r}),""}}const composeFonts=t=>{let e=t.filter((t,e,r)=>e===r.findIndex(e=>e.family===t.family));return e.map(e=>{let r=t.filter(t=>t.family===e.family).reduce((t,e)=>[...t,...e.variants],[]).filter((t,e,r)=>e===r.findIndex(e=>e===t));return{...e,variants:r}})},GOOGLE_CSS2_OVERRIDES={"Roboto Flex":"https://fonts.googleapis.com/css2?family=Roboto+Flex:opsz,wght@8..144,100..1000&display=swap"},normalizeFamily=t=>t?.trim().replace(/\s+/g,"+")??"",getOverrideUrlForFamily=t=>{let e=normalizeFamily(t);return GOOGLE_CSS2_OVERRIDES[t]??GOOGLE_CSS2_OVERRIDES[e]},VARIANT_WEIGHT_MAP={regular:"400",normal:"400",bold:"700",italic:"400italic"},googleFontFamiliesSet=new Set(googleFontV1.googleFontFamilies),isValidFont=(t,e,r)=>{if(("google"===e||"google"===t.type)&&!googleFontFamiliesSet.has(t.family))return!1;let o="google"===t.type||"bunny"===t.type,n="theme"===t.type&&r,a=checkOptionFont.checkNotInOptionFont(t.family,e);return!(o&&a)&&(o||!t.type||n)},normalizeVariant=t=>{let e=String(t).toLowerCase().trim();return VARIANT_WEIGHT_MAP[e]??t},sortFontVariants=t=>{let e=t=>{let e=String(t).toLowerCase().trim(),r=e.includes("italic"),o=e.replace("italic","").trim(),n=VARIANT_WEIGHT_MAP[o]??o,a=parseInt(n,10)||400;return{weight:a,isItalic:r}};return[...t].sort((t,r)=>{let o=e(t),n=e(r);return o.weight!==n.weight?o.weight-n.weight:o.isItalic!==n.isItalic?o.isItalic?1:-1:0})},makeUrlBySourceFont=(t,e,r)=>{let o=composeFonts(t).map(t=>{let e=t.variants.map(t=>normalizeVariant(t)),r=sortFontVariants(e);return`${t.family.replace(/ /g,"+")}:${r.join(",")}`}).join("|");if("sans-serif"===o)return;let n=new URLSearchParams;n.append("family",o),n.append("display",r?.display||"swap"),r?.subset&&n.append("subset",r.subset),r?.effect&&n.append("effect",r.effect);let a=`https://fonts.bunny.net/css?family=${o}`,i=`https://fonts.googleapis.com/css?${decodeURIComponent(n.toString())}`;return"bunny"===e?a:i},createFontUrls=(t,e,r,o)=>{let n=t.filter(t=>isValidFont(t,r||"google",o));if(!n.length)return;let a=n.filter((t,e,r)=>e===r.findIndex(e=>e.family===t.family)),i=[],l=[];for(let t of a){let e=getOverrideUrlForFamily(t.family);e&&"bunny"!==r?i.push(e):l.push(t)}let s=l.length?makeUrlBySourceFont(l,r||"google",e):void 0;return i.length&&s?[...i,s]:s?[s,...i]:i};async function getFonts(t,e,r=!0,o){let n=createFontUrls(t,e,o),a=Array.isArray(n)?n:n?[n]:[];if(!a.length)return"";if(r)return a.map(t=>`@import url('${t}');`).join("");let i="",l="";for(let t of a)try{let[e,r]=await Promise.all([getFontForUA(t,"Mozilla/5.0 (Windows NT 10.0; Trident/7.0; rv:11.0) like Gecko"),getFontForUA(t,"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.61 Safari/537.36")]),o=`${e}${r}`;i+=o,l+=`@import url('${t}');`}catch(e){sentry.sentryCaptureException("getFonts","Error fetching font",{url:t,fontType:o,error:String(e)}),l+="",i+=""}let s=new TextEncoder().encode(i).length;return s<51200?i:l}const extractFontsFromPageTemplate=(t,e)=>{let r=[];return t.forEach(t=>{r.push(...genFonts.getFontsFromDataBuilder(t.data,e))}),composeFonts(r)},extractVariantFromTypography=(t,e)=>{let r="400";if(null!=t){let e=String(t).toLowerCase().trim();r=normalizeVariant(e)}let o=r,n=e&&"italic"===e.toLowerCase();return n&&!r.includes("italic")&&(o=r.includes("i")?r:`${r}italic`),o},HEADING_FONT_PREFIX="heading-",SUBHEADING_FONT_PREFIX="subheading-",PARAGRAPH_FONT_PREFIX="paragraph-",extractTypographyVariants=t=>{let e=t?.typography??{},r=t?.font??{},o=new Map;Object.entries(e).forEach(([t,e])=>{if(!e||"object"!=typeof e)return;let n=t.startsWith(HEADING_FONT_PREFIX)||t.startsWith(SUBHEADING_FONT_PREFIX)?r.heading?"heading":void 0:t.startsWith(PARAGRAPH_FONT_PREFIX)&&r.body?"body":void 0,a=e.desktop,i=a?.fontFamily,l=i||n;["desktop","mobile","tablet"].forEach(t=>{let n=e[t];if(!n||"object"!=typeof n)return;let i=n.fontFamily||l;if(!i||"string"!=typeof i||!r[i])return;let s=n.fontWeight??a?.fontWeight,p=n.fontStyle??a?.fontStyle;if(null==s)return;let y=extractVariantFromTypography(s,p);o.has(i)||o.set(i,new Set),o.get(i).add(y)})});let n={};return o.forEach((t,e)=>{let o=r[e];o&&(n[e]={variants:Array.from(t).sort(),family:o.family})}),n},mapTypographyToFontFamily=t=>{let e=t?.typography??{},r=t?.font??{},o=t?.font??{},n={};return Object.entries(e).forEach(([t,e])=>{if(!e||"object"!=typeof e)return;let a=e.desktop,i=e.mobile,l=e.tablet,s=t.startsWith(HEADING_FONT_PREFIX)||t.startsWith(SUBHEADING_FONT_PREFIX)?o.heading?"heading":void 0:t.startsWith(PARAGRAPH_FONT_PREFIX)&&o.body?"body":void 0,p=a?.fontFamily||i?.fontFamily||l?.fontFamily||s;if(!p||"string"!=typeof p)return;let y=r[p],g=o[p],F=y?.family||g?.family||p,c=y?.type||g?.type||"google";F&&(n[t]={family:F,type:c})}),n},getFontLinkFromGlobalStyle=async(t,e)=>{if(!t)return"";try{let r=JSON.parse(t),o=r?.font??{},n=Object.values(o),a=extractTypographyVariants(r);Object.keys(a).length>0&&(n=Object.entries(o).filter(([t])=>a[t]).map(([t,e])=>({...e,variants:a[t].variants})));let i=composeFonts(n);return getFonts(i,void 0,void 0,e)}catch{return""}},getFontFromGlobalStyle=(t,e)=>{if(!t)return"";try{let r=JSON.parse(t),o=r?.font??{},n=Object.entries(o).map(([,t])=>t);return getFonts(n,void 0,void 0,e)}catch{return""}};async function getFontStyleFromPageTemplate(t,e,r){let o,n=null;if(r)try{n=JSON.parse(r),o=mapTypographyToFontFamily(n)}catch{}let a=extractFontsFromPageTemplate(t,o);if(!n){if(0===a.length)return[];let t=await getFonts(a,void 0,void 0,e);return t?[t]:[]}let i=extractTypographyVariants(n),l=new Map;for(let t of Object.values(i)){let e=l.get(t.family);if(!e){l.set(t.family,new Set(t.variants));continue}t.variants.forEach(t=>e.add(t))}if(0===(a=a.map(t=>{let e=l.get(t.family);if(!e)return t;let r=t.variants.filter(t=>!e.has(t));return 0===r.length?null:{...t,variants:r}}).filter(t=>null!==t)).length)return[];let s=await getFonts(a,void 0,void 0,e);return s?[s]:[]}exports.composeFonts=composeFonts,exports.createFontUrls=createFontUrls,exports.extractTypographyVariants=extractTypographyVariants,exports.getFontFromGlobalStyle=getFontFromGlobalStyle,exports.getFontLinkFromGlobalStyle=getFontLinkFromGlobalStyle,exports.getFontStyleFromPageTemplate=getFontStyleFromPageTemplate,exports.getFonts=getFonts,exports.mapTypographyToFontFamily=mapTypographyToFontFamily;
@@ -1 +1 @@
1
- import{PublishedThemePagesDocument as e,StorePropertyDocument as o,PublishedShopMetasDocument as t}from"@gem-sdk/core";import{ShopMetaDocument as a}from"@gem-sdk/adapter-shopify";import{getFontStyleFromPageTemplate as l,getFontLinkFromGlobalStyle as s}from"../google-fonts.js";import{genCSS as i}from"../helpers/gen-css.js";import{getFallbackV2 as r}from"../helpers/get-fallback.js";import{parseBuilderTemplateV2 as n}from"../helpers/normalize.js";import{parseJson as m,serializableJson as d}from"../helpers/parse-json.js";import{captureException as p}from"@sentry/nextjs";import{PublishedThemePageMetafields as u}from"../../constants/index.js";import{getPublishedThemePageMetafieldByKey as f}from"../helpers/get-metafield.js";import{getCustomFonts as c}from"../custom-fonts.js";import{generateSeoLinks as h}from"../helpers/generate-seo-links.js";let getHomePagePropsV2=(g,T)=>async()=>{try{let p={slugType:"STATIC"},[_,A,y,I]=await Promise.allSettled([g([e,p]),g([o]),T([a]),g([t,{keys:[u.GLOBAL_META_DESCRIPTION,u.GLOBAL_META_THUMBNAIL]}])]);if("rejected"===_.status)throw Error(_.reason?.[0]);let L="fulfilled"===I.status?I.value:void 0,C=_.value?.publishedThemePages?.[0],P=_.value?.publishedThemePages?.[0]?.themePageCustomFonts;if(!C)throw Error("No data builder found for Home page");let E=n(C),[S,v,M,O]=await Promise.all([l(E,void 0,C?.pageStyle?.data),s(C?.pageStyle?.data,void 0),r(g,E),c(P)]),j=C.isMobile??!1,k=f(u.GLOBAL_META_DESCRIPTION,C?.metafields)||L?.publishedShopMetas?.find(e=>e?.key===u.GLOBAL_META_DESCRIPTION)?.value,B=m(f(u.GLOBAL_META_THUMBNAIL,C?.metafields)||L?.publishedShopMetas?.find(e=>e?.key===u.GLOBAL_META_THUMBNAIL)?.value),D="fulfilled"===y.status?y.value:void 0,N="fulfilled"===A.status?A.value:void 0,H=N?.storeProperty?.favicon??"/favicon/favicon-32x32.png",b={defaultTitle:D?.shop.name,title:C?.name??"Home",description:k??D?.shop.description,openGraph:{site_name:D?.shop.name,locale:D?.localization.country.isoCode,title:C?.name??D?.shop.name,description:k??D?.shop.description,images:B?[B]:[]},additionalMetaTags:[{name:"theme-color",content:"#000000"}],canonical:`https://${N?.storeProperty?.primaryDomain}/`,additionalLinkTags:h({favicon:H,shopMeta:D})},G=D?.localization.language.isoCode??null,w=D?.localization.country.isoCode??null,x=G&&w?`${G}-${w}`:null;return d({themeStyle:i(C?.pageStyle?.data,j),fontStyle:v,elementFontStyle:S,builderData:E,swr:{fallback:M},moneyFormat:D?.shop.moneyFormat??null,currency:D?.localization.country.currency.isoCode??null,languageIsoCode:G,countryIsoCode:w,locale:x,swatches:m(N?.storeProperty?.swatchesConfig),seo:b,mobileOnly:j,gaTrackingId:f(u.ANALYTICS_GA_TRACKING_ID,C?.metafields)??null,facebookPixelId:f(u.ANALYTICS_FB_PIXEL_ID,C?.metafields)??null,tiktokPixelId:f(u.ANALYTICS_TIKTOK_PIXEL_ID,C?.metafields)??null,customCodeHeader:f(u.CUSTOM_CODE_HEADER,C?.metafields)??null,customCodeBody:f(u.CUSTOM_CODE_BODY,C?.metafields)??null,pageHandle:C.handle??null,customFonts:O})}catch(e){throw p(e),e}};export{getHomePagePropsV2};
1
+ import{PublishedThemePagesDocument as e,StorePropertyDocument as o,PublishedShopMetasDocument as t}from"@gem-sdk/core";import{ShopMetaDocument as a}from"@gem-sdk/adapter-shopify";import{getFontStyleFromPageTemplate as l,getFontLinkFromGlobalStyle as s}from"../google-fonts.js";import{genCSS as i}from"../helpers/gen-css.js";import{getFallbackV2 as r}from"../helpers/get-fallback.js";import{parseBuilderTemplateV2 as n}from"../helpers/normalize.js";import{parseJson as m,serializableJson as d}from"../helpers/parse-json.js";import{captureException as p}from"@sentry/nextjs";import{PublishedThemePageMetafields as u}from"../../constants/index.js";import{getPublishedThemePageMetafieldByKey as f}from"../helpers/get-metafield.js";import{getCustomFonts as c}from"../custom-fonts.js";import{generateSeoLinks as h}from"../helpers/generate-seo-links.js";let getHomePagePropsV2=(g,T)=>async()=>{try{let p={slugType:"STATIC"},[A,_,y,I]=await Promise.allSettled([g([e,p]),g([o]),T([a]),g([t,{keys:[u.GLOBAL_META_DESCRIPTION,u.GLOBAL_META_THUMBNAIL]}])]);if("rejected"===A.status)throw Error(A.reason?.[0]);let L="fulfilled"===I.status?I.value:void 0,C=A.value?.publishedThemePages?.[0],P=A.value?.publishedThemePages?.[0]?.themePageCustomFonts;if(!C)throw Error("No data builder found for Home page");let E=n(C),[S,v,M,O]=await Promise.all([l(E,void 0,C?.pageStyle?.data),s(C?.pageStyle?.data,void 0),r(g,E),c(P)]),j=C.isMobile??!1,k=f(u.GLOBAL_META_DESCRIPTION,C?.metafields)||L?.publishedShopMetas?.find(e=>e?.key===u.GLOBAL_META_DESCRIPTION)?.value,B=m(f(u.GLOBAL_META_THUMBNAIL,C?.metafields)||L?.publishedShopMetas?.find(e=>e?.key===u.GLOBAL_META_THUMBNAIL)?.value),D="fulfilled"===y.status?y.value:void 0,N="fulfilled"===_.status?_.value:void 0,H=N?.storeProperty?.favicon??"/favicon/favicon-32x32.png",b={defaultTitle:D?.shop.name,title:C?.name??"Home",description:k??D?.shop.description,openGraph:{locale:D?.localization.country.isoCode,title:C?.name??D?.shop.name,description:k??D?.shop.description,images:B?[B]:[]},additionalMetaTags:[{name:"theme-color",content:"#000000"}],canonical:`https://${N?.storeProperty?.primaryDomain}/`,additionalLinkTags:h({favicon:H,shopMeta:D})},G=D?.localization.language.isoCode??null,w=D?.localization.country.isoCode??null,x=G&&w?`${G}-${w}`:null;return d({themeStyle:i(C?.pageStyle?.data,j),fontStyle:v,elementFontStyle:S,builderData:E,swr:{fallback:M},moneyFormat:D?.shop.moneyFormat??null,currency:D?.localization.country.currency.isoCode??null,languageIsoCode:G,countryIsoCode:w,locale:x,swatches:m(N?.storeProperty?.swatchesConfig),seo:b,mobileOnly:j,gaTrackingId:f(u.ANALYTICS_GA_TRACKING_ID,C?.metafields)??null,facebookPixelId:f(u.ANALYTICS_FB_PIXEL_ID,C?.metafields)??null,tiktokPixelId:f(u.ANALYTICS_TIKTOK_PIXEL_ID,C?.metafields)??null,customCodeHeader:f(u.CUSTOM_CODE_HEADER,C?.metafields)??null,customCodeBody:f(u.CUSTOM_CODE_BODY,C?.metafields)??null,pageHandle:C.handle??null,customFonts:O})}catch(e){throw p(e),e}};export{getHomePagePropsV2};
@@ -1 +1 @@
1
- import{PublishedThemePagesDocument as e,StorePropertyDocument as o,PublishedShopMetasDocument as s,prefetchQueries as t}from"@gem-sdk/core";import{ShopMetaDocument as r}from"@gem-sdk/adapter-shopify";import{getFontFromGlobalStyle as a}from"../google-fonts.js";import{genCSS as i}from"../helpers/gen-css.js";import{generateManifest as l}from"../helpers/generate-manifres.js";import{parseBuilderTemplate as n}from"../helpers/normalize.js";import{parseJson as p,serializableJson as m}from"../helpers/parse-json.js";import{PublishedThemePageMetafields as c}from"../../constants/index.js";import{getPublishedThemePageMetafieldByKey as d}from"../helpers/get-metafield.js";let getHomePageProps=(f,u)=>async()=>{let h="STATIC",g={slugType:h},[y,_,T,A]=await Promise.allSettled([f([e,g]),f([o]),u([r]),f([s,{keys:[c.GLOBAL_META_DESCRIPTION,c.GLOBAL_META_THUMBNAIL]}])]);if("rejected"===y.status)return{pageType:h};let L="fulfilled"===A.status?A.value:void 0,z=y.value.publishedThemePages?.[0],v=n(z),x=await a(z?.pageStyle?.data,void 0),M=t(v),P=await Promise.allSettled(M.map(({query:e,variables:o,func:s})=>s?s(f,o):e?f([e,o]):{})),S=M.reduce((e,{key:o},s)=>{let t=P[s];return t?.status==="fulfilled"?{...e,[o]:t.value}:e},{}),I=d(c.GLOBAL_META_DESCRIPTION,z?.metafields)||L?.publishedShopMetas?.find(e=>e?.key===c.GLOBAL_META_DESCRIPTION)?.value,j=p(d(c.GLOBAL_META_THUMBNAIL,z?.metafields)||L?.publishedShopMetas?.find(e=>e?.key===c.GLOBAL_META_THUMBNAIL)?.value),B="fulfilled"===T.status?T.value:void 0,C="fulfilled"===_.status?_.value:void 0,E=C?.storeProperty?.favicon??"/favicon/favicon-32x32.png",O={defaultTitle:B?.shop.name,title:z?.name??"Home",description:I??B?.shop.description,openGraph:{site_name:B?.shop.name,locale:B?.localization.country.isoCode,title:z?.name??B?.shop.name,description:I??B?.shop.description,images:j?[j]:[]},additionalMetaTags:[{name:"theme-color",content:"#000000"}],canonical:"/",additionalLinkTags:[{rel:"icon",sizes:"32x32",href:`${E}-/crop/1:1/center/-/smart_resize/32x32/`},{rel:"icon",sizes:"16x16",href:`${E}-/crop/1:1/center/-/smart_resize/16x16/`},{rel:"apple-touch-icon",sizes:"180x180",href:`${E}-/crop/1:1/center/-/smart_resize/180x180/`},{rel:"manifest",href:l({theme_color:"#000000",background_color:"#ffffff",display:"standalone",scope:"/",start_url:"/",name:B?.shop.name,short_name:B?.shop.name,description:B?.shop.description,icons:[{src:`${E}-/crop/1:1/center/-/smart_resize/192x192/`,sizes:"192x192",type:"image/png",purpose:"any maskable"},{src:`${E}-/crop/1:1/center/-/smart_resize/512x512/`,sizes:"512x512",type:"image/png"}]})}]},k=B?.localization.language.isoCode??null,G=B?.localization.country.isoCode??null,$=k&&G?`${k}-${G}`:null;return m({themeStyle:i(z?.pageStyle?.data),fontStyle:x,builderData:v,pageType:h,swr:{fallback:S},moneyFormat:B?.shop.moneyFormat??null,currency:B?.localization.country.currency.isoCode??null,locale:$,languageIsoCode:k,countryIsoCode:G,swatches:p(C?.storeProperty?.swatchesConfig),seo:O})};export{getHomePageProps};
1
+ import{PublishedThemePagesDocument as e,StorePropertyDocument as o,PublishedShopMetasDocument as s,prefetchQueries as t}from"@gem-sdk/core";import{ShopMetaDocument as r}from"@gem-sdk/adapter-shopify";import{getFontFromGlobalStyle as a}from"../google-fonts.js";import{genCSS as i}from"../helpers/gen-css.js";import{generateManifest as l}from"../helpers/generate-manifres.js";import{parseBuilderTemplate as n}from"../helpers/normalize.js";import{parseJson as p,serializableJson as m}from"../helpers/parse-json.js";import{PublishedThemePageMetafields as c}from"../../constants/index.js";import{getPublishedThemePageMetafieldByKey as d}from"../helpers/get-metafield.js";let getHomePageProps=(f,u)=>async()=>{let h="STATIC",g={slugType:h},[y,_,T,A]=await Promise.allSettled([f([e,g]),f([o]),u([r]),f([s,{keys:[c.GLOBAL_META_DESCRIPTION,c.GLOBAL_META_THUMBNAIL]}])]);if("rejected"===y.status)return{pageType:h};let L="fulfilled"===A.status?A.value:void 0,z=y.value.publishedThemePages?.[0],v=n(z),x=await a(z?.pageStyle?.data,void 0),M=t(v),P=await Promise.allSettled(M.map(({query:e,variables:o,func:s})=>s?s(f,o):e?f([e,o]):{})),S=M.reduce((e,{key:o},s)=>{let t=P[s];return t?.status==="fulfilled"?{...e,[o]:t.value}:e},{}),I=d(c.GLOBAL_META_DESCRIPTION,z?.metafields)||L?.publishedShopMetas?.find(e=>e?.key===c.GLOBAL_META_DESCRIPTION)?.value,j=p(d(c.GLOBAL_META_THUMBNAIL,z?.metafields)||L?.publishedShopMetas?.find(e=>e?.key===c.GLOBAL_META_THUMBNAIL)?.value),B="fulfilled"===T.status?T.value:void 0,C="fulfilled"===_.status?_.value:void 0,E=C?.storeProperty?.favicon??"/favicon/favicon-32x32.png",O={defaultTitle:B?.shop.name,title:z?.name??"Home",description:I??B?.shop.description,openGraph:{locale:B?.localization.country.isoCode,title:z?.name??B?.shop.name,description:I??B?.shop.description,images:j?[j]:[]},additionalMetaTags:[{name:"theme-color",content:"#000000"}],canonical:"/",additionalLinkTags:[{rel:"icon",sizes:"32x32",href:`${E}-/crop/1:1/center/-/smart_resize/32x32/`},{rel:"icon",sizes:"16x16",href:`${E}-/crop/1:1/center/-/smart_resize/16x16/`},{rel:"apple-touch-icon",sizes:"180x180",href:`${E}-/crop/1:1/center/-/smart_resize/180x180/`},{rel:"manifest",href:l({theme_color:"#000000",background_color:"#ffffff",display:"standalone",scope:"/",start_url:"/",name:B?.shop.name,short_name:B?.shop.name,description:B?.shop.description,icons:[{src:`${E}-/crop/1:1/center/-/smart_resize/192x192/`,sizes:"192x192",type:"image/png",purpose:"any maskable"},{src:`${E}-/crop/1:1/center/-/smart_resize/512x512/`,sizes:"512x512",type:"image/png"}]})}]},k=B?.localization.language.isoCode??null,G=B?.localization.country.isoCode??null,$=k&&G?`${k}-${G}`:null;return m({themeStyle:i(z?.pageStyle?.data),fontStyle:x,builderData:v,pageType:h,swr:{fallback:S},moneyFormat:B?.shop.moneyFormat??null,currency:B?.localization.country.currency.isoCode??null,locale:$,languageIsoCode:k,countryIsoCode:G,swatches:p(C?.storeProperty?.swatchesConfig),seo:O})};export{getHomePageProps};
@@ -1 +1 @@
1
- import{PreviewThemePageDocument as e,StorePropertyDocument as o}from"@gem-sdk/core";import{ShopMetaDocument as t}from"@gem-sdk/adapter-shopify";import{captureException as a}from"@sentry/nextjs";import{getFontStyleFromPageTemplate as r,getFontLinkFromGlobalStyle as i}from"../google-fonts.js";import{genCSS as l}from"../helpers/gen-css.js";import{getFallbackV2 as n}from"../helpers/get-fallback.js";import{parseBuilderTemplateV2 as s,extractPageBackground as m}from"../helpers/normalize.js";import{parseJson as c,serializableJson as d}from"../helpers/parse-json.js";import{getCustomFonts as p}from"../custom-fonts.js";import{sentryCaptureException as u}from"../helpers/sentry.js";import{generateSeoLinks as f}from"../helpers/generate-seo-links.js";let getStaticPagePropsPreview=(h,g)=>async y=>{try{let a="STATIC",v={handleURL:y,pageType:a},[P,k,w]=await Promise.allSettled([h([e,v]),h([o]),g([t])]);if("rejected"===P.status)throw u("PreviewThemePageDocument",P.reason,{variables:v,theme:P}),Error(P.reason?.[0]);let j=P.value.previewThemePage;if(!j)throw Error(`No data builder found for slug: /preview/${y}`);let b=j.customFonts,C=s(j),[S,T,x,I]=await Promise.all([r(C,void 0,j?.themeStyle?.data),i(j?.themeStyle?.data),n(h,C),p(b)]),z=!!j.isMobile,D=j?.dataSEO?.find(e=>e?.key==="global-meta-description")?.value,E=c(j?.dataSEO?.find(e=>e?.key==="global-meta-thumbnail")?.value),$="fulfilled"===w.status?w.value:void 0,F="fulfilled"===k.status?k.value:void 0,B=F?.storeProperty?.favicon??"/favicon/favicon-32x32.png",L={defaultTitle:$?.shop.name,title:j?.name,description:D??$?.shop.description,openGraph:{site_name:$?.shop.name,locale:$?.localization.country.isoCode,title:j?.name??$?.shop.name,description:D??$?.shop.description,images:E?[E]:[]},nofollow:!0,noindex:!0,canonical:`/preview/${y}`,additionalMetaTags:[{name:"theme-color",content:"#000000"}],additionalLinkTags:f({favicon:B,shopMeta:$})},M=$?.localization.language.isoCode??null,O=$?.localization.country.isoCode??null,A=M&&O?`${M}-${O}`:null;return d({themeStyle:l(j?.themeStyle?.data,z),fontStyle:T,elementFontStyle:S,builderData:C,pageType:a,moneyFormat:$?.shop?.moneyFormat??null,currency:$?.localization?.country?.currency?.isoCode??null,languageIsoCode:M,countryIsoCode:O,locale:A,swr:{fallback:x},swatches:c(F?.storeProperty?.swatchesConfig),seo:L,mobileOnly:z,gaTrackingId:j.analytic?.gaTrackingID??null,facebookPixelId:j.analytic?.fbPixelID??null,tiktokPixelId:j.analytic?.tiktokPixelID??null,customCodeHeader:j.customCode?.header??null,customCodeBody:j.customCode?.body??null,customFonts:I,pageBackground:m(j),interaction:j?.interaction})}catch(e){throw a(e),e}};export{getStaticPagePropsPreview};
1
+ import{PreviewThemePageDocument as e,StorePropertyDocument as o}from"@gem-sdk/core";import{ShopMetaDocument as t}from"@gem-sdk/adapter-shopify";import{captureException as a}from"@sentry/nextjs";import{getFontStyleFromPageTemplate as r,getFontLinkFromGlobalStyle as l}from"../google-fonts.js";import{genCSS as i}from"../helpers/gen-css.js";import{getFallbackV2 as n}from"../helpers/get-fallback.js";import{parseBuilderTemplateV2 as s,extractPageBackground as m}from"../helpers/normalize.js";import{parseJson as c,serializableJson as d}from"../helpers/parse-json.js";import{getCustomFonts as p}from"../custom-fonts.js";import{sentryCaptureException as u}from"../helpers/sentry.js";import{generateSeoLinks as f}from"../helpers/generate-seo-links.js";let getStaticPagePropsPreview=(g,h)=>async y=>{try{let a="STATIC",v={handleURL:y,pageType:a},[P,k,w]=await Promise.allSettled([g([e,v]),g([o]),h([t])]);if("rejected"===P.status)throw u("PreviewThemePageDocument",P.reason,{variables:v,theme:P}),Error(P.reason?.[0]);let j=P.value.previewThemePage;if(!j)throw Error(`No data builder found for slug: /preview/${y}`);let b=j.customFonts,C=s(j),[S,T,x,I]=await Promise.all([r(C,void 0,j?.themeStyle?.data),l(j?.themeStyle?.data),n(g,C),p(b)]),z=!!j.isMobile,D=j?.dataSEO?.find(e=>e?.key==="global-meta-description")?.value,E=c(j?.dataSEO?.find(e=>e?.key==="global-meta-thumbnail")?.value),$="fulfilled"===w.status?w.value:void 0,F="fulfilled"===k.status?k.value:void 0,B=F?.storeProperty?.favicon??"/favicon/favicon-32x32.png",L={defaultTitle:$?.shop.name,title:j?.name,description:D??$?.shop.description,openGraph:{locale:$?.localization.country.isoCode,title:j?.name??$?.shop.name,description:D??$?.shop.description,images:E?[E]:[]},nofollow:!0,noindex:!0,canonical:`/preview/${y}`,additionalMetaTags:[{name:"theme-color",content:"#000000"}],additionalLinkTags:f({favicon:B,shopMeta:$})},M=$?.localization.language.isoCode??null,O=$?.localization.country.isoCode??null,A=M&&O?`${M}-${O}`:null;return d({themeStyle:i(j?.themeStyle?.data,z),fontStyle:T,elementFontStyle:S,builderData:C,pageType:a,moneyFormat:$?.shop?.moneyFormat??null,currency:$?.localization?.country?.currency?.isoCode??null,languageIsoCode:M,countryIsoCode:O,locale:A,swr:{fallback:x},swatches:c(F?.storeProperty?.swatchesConfig),seo:L,mobileOnly:z,gaTrackingId:j.analytic?.gaTrackingID??null,facebookPixelId:j.analytic?.fbPixelID??null,tiktokPixelId:j.analytic?.tiktokPixelID??null,customCodeHeader:j.customCode?.header??null,customCodeBody:j.customCode?.body??null,customFonts:I,pageBackground:m(j),interaction:j?.interaction})}catch(e){throw a(e),e}};export{getStaticPagePropsPreview};
@@ -1 +1 @@
1
- import{PublishedThemePagesDocument as e,StorePropertyDocument as o,PublishedShopMetasDocument as t}from"@gem-sdk/core";import{ShopMetaDocument as a}from"@gem-sdk/adapter-shopify";import{getFontStyleFromPageTemplate as l,getFontLinkFromGlobalStyle as s}from"../google-fonts.js";import{genCSS as i}from"../helpers/gen-css.js";import{getFallbackV2 as r}from"../helpers/get-fallback.js";import{parseBuilderTemplateV2 as n,extractPageBackground as d}from"../helpers/normalize.js";import{parseJson as m,serializableJson as p}from"../helpers/parse-json.js";import{captureException as u}from"@sentry/nextjs";import{getCustomFonts as f}from"../custom-fonts.js";import{getPublishedThemePageMetafieldByKey as c}from"../helpers/get-metafield.js";import{PublishedThemePageMetafields as h}from"../../constants/index.js";import{generateSeoLinks as _}from"../helpers/generate-seo-links.js";let getStaticPagePropsV2=(T,g)=>async L=>{try{let u="STATIC",A={slug:L,slugType:u},[y,E,I,O]=await Promise.allSettled([T([e,A]),T([o]),g([a]),T([t,{keys:["source_font",h.GLOBAL_META_DESCRIPTION,h.GLOBAL_META_THUMBNAIL]}])]);if("rejected"===y.status)throw Error(y.reason?.[0]);let S="fulfilled"===O.status?O.value:void 0,M=S?.publishedShopMetas?.find(e=>e?.key==="source_font"),C=y.value.publishedThemePages?.[0],P=y.value?.publishedThemePages?.[0]?.themePageCustomFonts;if(!C)throw Error(`No data builder found for slug: /${L}`);let v=n(C),[k,N,B,D]=await Promise.all([l(v,M?.value,C?.pageStyle?.data),s(C?.pageStyle?.data,M?.value),r(T,v),f(P)]),b=C.isMobile??!1,j=c(h.GLOBAL_META_DESCRIPTION,C?.metafields)||S?.publishedShopMetas?.find(e=>e?.key===h.GLOBAL_META_DESCRIPTION)?.value,G=c(h.GLOBAL_META_TITLE,C?.metafields)||S?.publishedShopMetas?.find(e=>e?.key===h.GLOBAL_META_TITLE)?.value,w=m(c(h.GLOBAL_META_THUMBNAIL,C?.metafields)||S?.publishedShopMetas?.find(e=>e?.key===h.GLOBAL_META_THUMBNAIL)?.value),Y=c(h.NOINDEX_KEY,C?.metafields)||S?.publishedShopMetas?.find(e=>e?.key===h.NOINDEX_KEY)?.value,x=c(h.NOFOLLOW_KEY,C?.metafields)||S?.publishedShopMetas?.find(e=>e?.key===h.NOFOLLOW_KEY)?.value,K="fulfilled"===I.status?I.value:void 0,F="fulfilled"===E.status?E.value:void 0,H=F?.storeProperty?.favicon??"/favicon/favicon-32x32.png",z={defaultTitle:K?.shop.name,title:G||C?.name,description:j??K?.shop.description,openGraph:{site_name:K?.shop.name,locale:K?.localization.country.isoCode,title:(G||C?.name)??K?.shop.name,description:j??K?.shop.description,images:w?[w]:[]},noindex:"true"===Y,nofollow:"true"===x,canonical:`https://${F?.storeProperty?.primaryDomain}/${L}`,additionalMetaTags:[{name:"theme-color",content:"#000000"}],additionalLinkTags:_({favicon:H,shopMeta:K})},R=K?.localization.language.isoCode??null,U=K?.localization.country.isoCode??null,$=R&&U?`${R}-${U}`:null;return p({themeStyle:i(C?.pageStyle?.data,b),fontStyle:N,elementFontStyle:k,builderData:v,pageType:u,moneyFormat:K?.shop.moneyFormat??null,currency:K?.localization.country.currency.isoCode??null,languageIsoCode:R,countryIsoCode:U,locale:$,swr:{fallback:B},swatches:m(F?.storeProperty?.swatchesConfig),seo:z,mobileOnly:b,gaTrackingId:c(h.ANALYTICS_GA_TRACKING_ID,C?.metafields)??null,facebookPixelId:c(h.ANALYTICS_FB_PIXEL_ID,C?.metafields)??null,tiktokPixelId:c(h.ANALYTICS_TIKTOK_PIXEL_ID,C?.metafields)??null,customCodeHeader:c(h.CUSTOM_CODE_HEADER,C?.metafields)??null,customCodeBody:c(h.CUSTOM_CODE_BODY,C?.metafields)??null,pageHandle:C.handle??null,customFonts:D,interaction:C?.interaction,pageBackground:d(C)})}catch(e){throw u(e),e}};export{getStaticPagePropsV2};
1
+ import{PublishedThemePagesDocument as e,StorePropertyDocument as o,PublishedShopMetasDocument as t}from"@gem-sdk/core";import{ShopMetaDocument as a}from"@gem-sdk/adapter-shopify";import{getFontStyleFromPageTemplate as l,getFontLinkFromGlobalStyle as s}from"../google-fonts.js";import{genCSS as i}from"../helpers/gen-css.js";import{getFallbackV2 as r}from"../helpers/get-fallback.js";import{parseBuilderTemplateV2 as n,extractPageBackground as d}from"../helpers/normalize.js";import{parseJson as m,serializableJson as p}from"../helpers/parse-json.js";import{captureException as u}from"@sentry/nextjs";import{getCustomFonts as f}from"../custom-fonts.js";import{getPublishedThemePageMetafieldByKey as c}from"../helpers/get-metafield.js";import{PublishedThemePageMetafields as h}from"../../constants/index.js";import{generateSeoLinks as T}from"../helpers/generate-seo-links.js";let getStaticPagePropsV2=(_,g)=>async L=>{try{let u="STATIC",A={slug:L,slugType:u},[y,E,I,O]=await Promise.allSettled([_([e,A]),_([o]),g([a]),_([t,{keys:["source_font",h.GLOBAL_META_DESCRIPTION,h.GLOBAL_META_THUMBNAIL]}])]);if("rejected"===y.status)throw Error(y.reason?.[0]);let S="fulfilled"===O.status?O.value:void 0,M=S?.publishedShopMetas?.find(e=>e?.key==="source_font"),C=y.value.publishedThemePages?.[0],P=y.value?.publishedThemePages?.[0]?.themePageCustomFonts;if(!C)throw Error(`No data builder found for slug: /${L}`);let v=n(C),[k,N,B,D]=await Promise.all([l(v,M?.value,C?.pageStyle?.data),s(C?.pageStyle?.data,M?.value),r(_,v),f(P)]),b=C.isMobile??!1,j=c(h.GLOBAL_META_DESCRIPTION,C?.metafields)||S?.publishedShopMetas?.find(e=>e?.key===h.GLOBAL_META_DESCRIPTION)?.value,G=c(h.GLOBAL_META_TITLE,C?.metafields)||S?.publishedShopMetas?.find(e=>e?.key===h.GLOBAL_META_TITLE)?.value,w=m(c(h.GLOBAL_META_THUMBNAIL,C?.metafields)||S?.publishedShopMetas?.find(e=>e?.key===h.GLOBAL_META_THUMBNAIL)?.value),Y=c(h.NOINDEX_KEY,C?.metafields)||S?.publishedShopMetas?.find(e=>e?.key===h.NOINDEX_KEY)?.value,x=c(h.NOFOLLOW_KEY,C?.metafields)||S?.publishedShopMetas?.find(e=>e?.key===h.NOFOLLOW_KEY)?.value,K="fulfilled"===I.status?I.value:void 0,F="fulfilled"===E.status?E.value:void 0,H=F?.storeProperty?.favicon??"/favicon/favicon-32x32.png",z={defaultTitle:K?.shop.name,title:G||C?.name,description:j??K?.shop.description,openGraph:{locale:K?.localization.country.isoCode,title:(G||C?.name)??K?.shop.name,description:j??K?.shop.description,images:w?[w]:[]},noindex:"true"===Y,nofollow:"true"===x,canonical:`https://${F?.storeProperty?.primaryDomain}/${L}`,additionalMetaTags:[{name:"theme-color",content:"#000000"}],additionalLinkTags:T({favicon:H,shopMeta:K})},R=K?.localization.language.isoCode??null,U=K?.localization.country.isoCode??null,$=R&&U?`${R}-${U}`:null;return p({themeStyle:i(C?.pageStyle?.data,b),fontStyle:N,elementFontStyle:k,builderData:v,pageType:u,moneyFormat:K?.shop.moneyFormat??null,currency:K?.localization.country.currency.isoCode??null,languageIsoCode:R,countryIsoCode:U,locale:$,swr:{fallback:B},swatches:m(F?.storeProperty?.swatchesConfig),seo:z,mobileOnly:b,gaTrackingId:c(h.ANALYTICS_GA_TRACKING_ID,C?.metafields)??null,facebookPixelId:c(h.ANALYTICS_FB_PIXEL_ID,C?.metafields)??null,tiktokPixelId:c(h.ANALYTICS_TIKTOK_PIXEL_ID,C?.metafields)??null,customCodeHeader:c(h.CUSTOM_CODE_HEADER,C?.metafields)??null,customCodeBody:c(h.CUSTOM_CODE_BODY,C?.metafields)??null,pageHandle:C.handle??null,customFonts:D,interaction:C?.interaction,pageBackground:d(C)})}catch(e){throw u(e),e}};export{getStaticPagePropsV2};
@@ -1 +1 @@
1
- import{PublishedThemePagesDocument as e,StorePropertyDocument as t,PublishedShopMetasDocument as o,prefetchQueries as s}from"@gem-sdk/core";import{ShopMetaDocument as a}from"@gem-sdk/adapter-shopify";import{getFontLinkFromGlobalStyle as r}from"../google-fonts.js";import{genCSS as i}from"../helpers/gen-css.js";import{generateManifest as l}from"../helpers/generate-manifres.js";import{parseBuilderTemplate as n}from"../helpers/normalize.js";import{parseJson as p,serializableJson as c}from"../helpers/parse-json.js";import{PublishedThemePageMetafields as m}from"../../constants/index.js";import{getPublishedThemePageMetafieldByKey as d}from"../helpers/get-metafield.js";let getStaticPageProps=(f,u)=>async h=>{let g="STATIC",_={slug:h,slugType:g},[y,T,A,L]=await Promise.allSettled([f([e,_]),f([t]),u([a]),f([o,{keys:["source_font",m.GLOBAL_META_DESCRIPTION,m.GLOBAL_META_THUMBNAIL]}])]);if("rejected"===y.status)return{pageType:g};let z="fulfilled"===L.status?L.value:void 0,v=y.value.publishedThemePages?.[0],x=n(v),S=await r(v?.pageStyle?.data),M=s(x),P=await Promise.allSettled(M.map(({query:e,variables:t,func:o})=>o?o(f,t):e?f([e,t]):{})),I=M.reduce((e,{key:t},o)=>{let s=P[o];return s?.status==="fulfilled"?{...e,[t]:s.value}:e},{}),j=d(m.GLOBAL_META_DESCRIPTION,v?.metafields)||z?.publishedShopMetas?.find(e=>e?.key===m.GLOBAL_META_DESCRIPTION)?.value,B=p(d(m.GLOBAL_META_THUMBNAIL,v?.metafields)||z?.publishedShopMetas?.find(e=>e?.key===m.GLOBAL_META_THUMBNAIL)?.value),C="fulfilled"===A.status?A.value:void 0,E="fulfilled"===T.status?T.value:void 0,O=E?.storeProperty?.favicon??"/favicon/favicon-32x32.png",k={defaultTitle:C?.shop.name??"",title:v?.name??"",description:j??C?.shop.description??"",openGraph:{site_name:C?.shop.name??"",locale:C?.localization.country.isoCode??"",title:v?.name??C?.shop.name??"",description:j??C?.shop.description??"",images:B?[B]:[]},additionalMetaTags:[{name:"theme-color",content:"#000000"}],canonical:`/${h}`,additionalLinkTags:[{rel:"icon",sizes:"32x32",href:`${O}-/crop/1:1/center/-/smart_resize/32x32/`},{rel:"icon",sizes:"16x16",href:`${O}-/crop/1:1/center/-/smart_resize/16x16/`},{rel:"apple-touch-icon",sizes:"180x180",href:`${O}-/crop/1:1/center/-/smart_resize/180x180/`},{rel:"manifest",href:l({theme_color:"#000000",background_color:"#ffffff",display:"standalone",scope:"/",start_url:"/",name:C?.shop.name,short_name:C?.shop.name,description:C?.shop.description,icons:[{src:`${O}-/crop/1:1/center/-/smart_resize/192x192/`,sizes:"192x192",type:"image/png",purpose:"any maskable"},{src:`${O}-/crop/1:1/center/-/smart_resize/512x512/`,sizes:"512x512",type:"image/png"}]})}]},$=C?.localization.language.isoCode??null,G=C?.localization.country.isoCode??null,b=$&&G?`${$}-${G}`:null;return c({themeStyle:i(v?.pageStyle?.data),fontStyle:S,builderData:x,pageType:g,moneyFormat:C?.shop.moneyFormat??null,currency:C?.localization.country.currency.isoCode??null,languageIsoCode:$,countryIsoCode:G,locale:b,swr:{fallback:I},swatches:p(E?.storeProperty?.swatchesConfig),seo:k})};export{getStaticPageProps};
1
+ import{PublishedThemePagesDocument as e,StorePropertyDocument as t,PublishedShopMetasDocument as o,prefetchQueries as s}from"@gem-sdk/core";import{ShopMetaDocument as r}from"@gem-sdk/adapter-shopify";import{getFontLinkFromGlobalStyle as a}from"../google-fonts.js";import{genCSS as i}from"../helpers/gen-css.js";import{generateManifest as l}from"../helpers/generate-manifres.js";import{parseBuilderTemplate as n}from"../helpers/normalize.js";import{parseJson as p,serializableJson as c}from"../helpers/parse-json.js";import{PublishedThemePageMetafields as m}from"../../constants/index.js";import{getPublishedThemePageMetafieldByKey as d}from"../helpers/get-metafield.js";let getStaticPageProps=(f,u)=>async h=>{let g="STATIC",y={slug:h,slugType:g},[_,T,A,L]=await Promise.allSettled([f([e,y]),f([t]),u([r]),f([o,{keys:["source_font",m.GLOBAL_META_DESCRIPTION,m.GLOBAL_META_THUMBNAIL]}])]);if("rejected"===_.status)return{pageType:g};let z="fulfilled"===L.status?L.value:void 0,v=_.value.publishedThemePages?.[0],x=n(v),S=await a(v?.pageStyle?.data),M=s(x),P=await Promise.allSettled(M.map(({query:e,variables:t,func:o})=>o?o(f,t):e?f([e,t]):{})),I=M.reduce((e,{key:t},o)=>{let s=P[o];return s?.status==="fulfilled"?{...e,[t]:s.value}:e},{}),j=d(m.GLOBAL_META_DESCRIPTION,v?.metafields)||z?.publishedShopMetas?.find(e=>e?.key===m.GLOBAL_META_DESCRIPTION)?.value,B=p(d(m.GLOBAL_META_THUMBNAIL,v?.metafields)||z?.publishedShopMetas?.find(e=>e?.key===m.GLOBAL_META_THUMBNAIL)?.value),C="fulfilled"===A.status?A.value:void 0,E="fulfilled"===T.status?T.value:void 0,O=E?.storeProperty?.favicon??"/favicon/favicon-32x32.png",k={defaultTitle:C?.shop.name??"",title:v?.name??"",description:j??C?.shop.description??"",openGraph:{locale:C?.localization.country.isoCode??"",title:v?.name??C?.shop.name??"",description:j??C?.shop.description??"",images:B?[B]:[]},additionalMetaTags:[{name:"theme-color",content:"#000000"}],canonical:`/${h}`,additionalLinkTags:[{rel:"icon",sizes:"32x32",href:`${O}-/crop/1:1/center/-/smart_resize/32x32/`},{rel:"icon",sizes:"16x16",href:`${O}-/crop/1:1/center/-/smart_resize/16x16/`},{rel:"apple-touch-icon",sizes:"180x180",href:`${O}-/crop/1:1/center/-/smart_resize/180x180/`},{rel:"manifest",href:l({theme_color:"#000000",background_color:"#ffffff",display:"standalone",scope:"/",start_url:"/",name:C?.shop.name,short_name:C?.shop.name,description:C?.shop.description,icons:[{src:`${O}-/crop/1:1/center/-/smart_resize/192x192/`,sizes:"192x192",type:"image/png",purpose:"any maskable"},{src:`${O}-/crop/1:1/center/-/smart_resize/512x512/`,sizes:"512x512",type:"image/png"}]})}]},$=C?.localization.language.isoCode??null,G=C?.localization.country.isoCode??null,b=$&&G?`${$}-${G}`:null;return c({themeStyle:i(v?.pageStyle?.data),fontStyle:S,builderData:x,pageType:g,moneyFormat:C?.shop.moneyFormat??null,currency:C?.localization.country.currency.isoCode??null,languageIsoCode:$,countryIsoCode:G,locale:b,swr:{fallback:I},swatches:p(E?.storeProperty?.swatchesConfig),seo:k})};export{getStaticPageProps};
@@ -1 +1 @@
1
- import{checkNotInOptionFont as t}from"./helpers/check-option-font.js";import{getFontsFromDataBuilder as e}from"./helpers/gen-fonts.js";import{sentryCaptureException as r}from"./helpers/sentry.js";import{googleFontFamilies as o}from"../constants/googleFontV1.js";let CHROME_UA="Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.61 Safari/537.36",IE_UA="Mozilla/5.0 (Windows NT 10.0; Trident/7.0; rv:11.0) like Gecko";async function getFontForUA(t,e){try{return fetch(t,{headers:{"User-Agent":e}}).then(o=>200===o.status?o.text():(r("getFontForUA",`Unexpected status ${o.status}`,{url:t,UA:e}),""))}catch(o){return r("getFontForUA","Error fetching font",{url:t,UA:e,error:o}),""}}let composeFonts=t=>{let e=t.filter((t,e,r)=>e===r.findIndex(e=>e.family===t.family));return e.map(e=>{let r=t.filter(t=>t.family===e.family).reduce((t,e)=>[...t,...e.variants],[]).filter((t,e,r)=>e===r.findIndex(e=>e===t));return{...e,variants:r}})},GOOGLE_CSS2_OVERRIDES={"Roboto Flex":"https://fonts.googleapis.com/css2?family=Roboto+Flex:opsz,wght@8..144,100..1000&display=swap"},normalizeFamily=t=>t?.trim().replace(/\s+/g,"+")??"",getOverrideUrlForFamily=t=>{let e=normalizeFamily(t);return GOOGLE_CSS2_OVERRIDES[t]??GOOGLE_CSS2_OVERRIDES[e]},VARIANT_WEIGHT_MAP={regular:"400",normal:"400",bold:"700",italic:"400italic"},googleFontFamiliesSet=new Set(o),isValidFont=(e,r,o)=>{let a="google"===e.type||"bunny"===e.type,n="theme"===e.type&&o,i=t(e.family,r);return!!("google"!==r&&"google"!==e.type||googleFontFamiliesSet.has(e.family))&&!(a&&i)&&(a||!e.type||n)},normalizeVariant=t=>{let e=String(t).toLowerCase().trim();return VARIANT_WEIGHT_MAP[e]??t},sortFontVariants=t=>{let e=t=>{let e=String(t).toLowerCase().trim(),r=e.includes("italic"),o=e.replace("italic","").trim(),a=VARIANT_WEIGHT_MAP[o]??o,n=parseInt(a,10)||400;return{weight:n,isItalic:r}};return[...t].sort((t,r)=>{let o=e(t),a=e(r);return o.weight!==a.weight?o.weight-a.weight:o.isItalic!==a.isItalic?o.isItalic?1:-1:0})},makeUrlBySourceFont=(t,e,r)=>{let o=composeFonts(t).map(t=>{let e=t.variants.map(t=>normalizeVariant(t)),r=sortFontVariants(e);return`${t.family.replace(/ /g,"+")}:${r.join(",")}`}).join("|");if("sans-serif"===o)return;let a=new URLSearchParams;a.append("family",o),a.append("display",r?.display||"swap"),r?.subset&&a.append("subset",r.subset),r?.effect&&a.append("effect",r.effect);let n=`https://fonts.bunny.net/css?family=${o}`,i=`https://fonts.googleapis.com/css?${decodeURIComponent(a.toString())}`;return"bunny"===e?n:i},createFontUrls=(t,e,r,o)=>{let a=t.filter(t=>isValidFont(t,r||"google",o));if(!a.length)return;let n=a.filter((t,e,r)=>e===r.findIndex(e=>e.family===t.family)),i=[],l=[];for(let t of n){let e=getOverrideUrlForFamily(t.family);e&&"bunny"!==r?i.push(e):l.push(t)}let s=l.length?makeUrlBySourceFont(l,r||"google",e):void 0;return i.length&&s?[...i,s]:s?[s,...i]:i};async function getFonts(t,e,o=!0,a){let n=createFontUrls(t,e,a),i=Array.isArray(n)?n:n?[n]:[];if(!i.length)return"";if(o)return i.map(t=>`@import url('${t}');`).join("");let l="",s="";for(let t of i)try{let[e,r]=await Promise.all([getFontForUA(t,"Mozilla/5.0 (Windows NT 10.0; Trident/7.0; rv:11.0) like Gecko"),getFontForUA(t,"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.61 Safari/537.36")]),o=`${e}${r}`;l+=o,s+=`@import url('${t}');`}catch(e){r("getFonts","Error fetching font",{url:t,fontType:a,error:String(e)}),s+="",l+=""}let f=new TextEncoder().encode(l).length;return f<51200?l:s}let extractFontsFromPageTemplate=(t,r)=>{let o=[];return t.forEach(t=>{o.push(...e(t.data,r))}),composeFonts(o)},extractVariantFromTypography=(t,e)=>{let r="400";if(null!=t){let e=String(t).toLowerCase().trim();r=normalizeVariant(e)}let o=r,a=e&&"italic"===e.toLowerCase();return a&&!r.includes("italic")&&(o=r.includes("i")?r:`${r}italic`),o},HEADING_FONT_PREFIX="heading-",SUBHEADING_FONT_PREFIX="subheading-",PARAGRAPH_FONT_PREFIX="paragraph-",extractTypographyVariants=t=>{let e=t?.typography??{},r=t?.font??{},o=new Map;Object.entries(e).forEach(([t,e])=>{if(!e||"object"!=typeof e)return;let a=t.startsWith(HEADING_FONT_PREFIX)||t.startsWith(SUBHEADING_FONT_PREFIX)?r.heading?"heading":void 0:t.startsWith(PARAGRAPH_FONT_PREFIX)&&r.body?"body":void 0,n=e.desktop,i=n?.fontFamily,l=i||a;["desktop","mobile","tablet"].forEach(t=>{let a=e[t];if(!a||"object"!=typeof a)return;let i=a.fontFamily||l;if(!i||"string"!=typeof i||!r[i])return;let s=a.fontWeight??n?.fontWeight,f=a.fontStyle??n?.fontStyle;if(null==s)return;let p=extractVariantFromTypography(s,f);o.has(i)||o.set(i,new Set),o.get(i).add(p)})});let a={};return o.forEach((t,e)=>{let o=r[e];o&&(a[e]={variants:Array.from(t).sort(),family:o.family})}),a},mapTypographyToFontFamily=t=>{let e=t?.typography??{},r=t?.font??{},o=t?.font??{},a={};return Object.entries(e).forEach(([t,e])=>{if(!e||"object"!=typeof e)return;let n=e.desktop,i=e.mobile,l=e.tablet,s=t.startsWith(HEADING_FONT_PREFIX)||t.startsWith(SUBHEADING_FONT_PREFIX)?o.heading?"heading":void 0:t.startsWith(PARAGRAPH_FONT_PREFIX)&&o.body?"body":void 0,f=n?.fontFamily||i?.fontFamily||l?.fontFamily||s;if(!f||"string"!=typeof f)return;let p=r[f],y=o[f],m=p?.family||y?.family||f,g=p?.type||y?.type||"google";m&&(a[t]={family:m,type:g})}),a},getFontLinkFromGlobalStyle=async(t,e)=>{if(!t)return"";try{let r=JSON.parse(t),o=r?.font??{},a=Object.values(o),n=extractTypographyVariants(r);Object.keys(n).length>0&&(a=Object.entries(o).filter(([t])=>n[t]).map(([t,e])=>({...e,variants:n[t].variants})));let i=composeFonts(a);return getFonts(i,void 0,void 0,e)}catch{return""}},getFontFromGlobalStyle=(t,e)=>{if(!t)return"";try{let r=JSON.parse(t),o=r?.font??{},a=Object.entries(o).map(([,t])=>t);return getFonts(a,void 0,void 0,e)}catch{return""}};async function getFontStyleFromPageTemplate(t,e,r){let o,a=null;if(r)try{a=JSON.parse(r),o=mapTypographyToFontFamily(a)}catch{}let n=extractFontsFromPageTemplate(t,o);if(!a){if(0===n.length)return[];let t=await getFonts(n,void 0,void 0,e);return t?[t]:[]}let i=extractTypographyVariants(a),l=new Map;for(let t of Object.values(i)){let e=l.get(t.family);if(!e){l.set(t.family,new Set(t.variants));continue}t.variants.forEach(t=>e.add(t))}if(0===(n=n.map(t=>{let e=l.get(t.family);if(!e)return t;let r=t.variants.filter(t=>!e.has(t));return 0===r.length?null:{...t,variants:r}}).filter(t=>null!==t)).length)return[];let s=await getFonts(n,void 0,void 0,e);return s?[s]:[]}export{composeFonts,createFontUrls,extractTypographyVariants,getFontFromGlobalStyle,getFontLinkFromGlobalStyle,getFontStyleFromPageTemplate,getFonts,mapTypographyToFontFamily};
1
+ import{checkNotInOptionFont as t}from"./helpers/check-option-font.js";import{getFontsFromDataBuilder as e}from"./helpers/gen-fonts.js";import{sentryCaptureException as r}from"./helpers/sentry.js";import{googleFontFamilies as o}from"../constants/googleFontV1.js";let CHROME_UA="Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.61 Safari/537.36",IE_UA="Mozilla/5.0 (Windows NT 10.0; Trident/7.0; rv:11.0) like Gecko";async function getFontForUA(t,e){try{return fetch(t,{headers:{"User-Agent":e}}).then(o=>200===o.status?o.text():(r("getFontForUA",`Unexpected status ${o.status}`,{url:t,UA:e}),""))}catch(o){return r("getFontForUA","Error fetching font",{url:t,UA:e,error:o}),""}}let composeFonts=t=>{let e=t.filter((t,e,r)=>e===r.findIndex(e=>e.family===t.family));return e.map(e=>{let r=t.filter(t=>t.family===e.family).reduce((t,e)=>[...t,...e.variants],[]).filter((t,e,r)=>e===r.findIndex(e=>e===t));return{...e,variants:r}})},GOOGLE_CSS2_OVERRIDES={"Roboto Flex":"https://fonts.googleapis.com/css2?family=Roboto+Flex:opsz,wght@8..144,100..1000&display=swap"},normalizeFamily=t=>t?.trim().replace(/\s+/g,"+")??"",getOverrideUrlForFamily=t=>{let e=normalizeFamily(t);return GOOGLE_CSS2_OVERRIDES[t]??GOOGLE_CSS2_OVERRIDES[e]},VARIANT_WEIGHT_MAP={regular:"400",normal:"400",bold:"700",italic:"400italic"},googleFontFamiliesSet=new Set(o),isValidFont=(e,r,o)=>{if(("google"===r||"google"===e.type)&&!googleFontFamiliesSet.has(e.family))return!1;let a="google"===e.type||"bunny"===e.type,n="theme"===e.type&&o,i=t(e.family,r);return!(a&&i)&&(a||!e.type||n)},normalizeVariant=t=>{let e=String(t).toLowerCase().trim();return VARIANT_WEIGHT_MAP[e]??t},sortFontVariants=t=>{let e=t=>{let e=String(t).toLowerCase().trim(),r=e.includes("italic"),o=e.replace("italic","").trim(),a=VARIANT_WEIGHT_MAP[o]??o,n=parseInt(a,10)||400;return{weight:n,isItalic:r}};return[...t].sort((t,r)=>{let o=e(t),a=e(r);return o.weight!==a.weight?o.weight-a.weight:o.isItalic!==a.isItalic?o.isItalic?1:-1:0})},makeUrlBySourceFont=(t,e,r)=>{let o=composeFonts(t).map(t=>{let e=t.variants.map(t=>normalizeVariant(t)),r=sortFontVariants(e);return`${t.family.replace(/ /g,"+")}:${r.join(",")}`}).join("|");if("sans-serif"===o)return;let a=new URLSearchParams;a.append("family",o),a.append("display",r?.display||"swap"),r?.subset&&a.append("subset",r.subset),r?.effect&&a.append("effect",r.effect);let n=`https://fonts.bunny.net/css?family=${o}`,i=`https://fonts.googleapis.com/css?${decodeURIComponent(a.toString())}`;return"bunny"===e?n:i},createFontUrls=(t,e,r,o)=>{let a=t.filter(t=>isValidFont(t,r||"google",o));if(!a.length)return;let n=a.filter((t,e,r)=>e===r.findIndex(e=>e.family===t.family)),i=[],l=[];for(let t of n){let e=getOverrideUrlForFamily(t.family);e&&"bunny"!==r?i.push(e):l.push(t)}let s=l.length?makeUrlBySourceFont(l,r||"google",e):void 0;return i.length&&s?[...i,s]:s?[s,...i]:i};async function getFonts(t,e,o=!0,a){let n=createFontUrls(t,e,a),i=Array.isArray(n)?n:n?[n]:[];if(!i.length)return"";if(o)return i.map(t=>`@import url('${t}');`).join("");let l="",s="";for(let t of i)try{let[e,r]=await Promise.all([getFontForUA(t,"Mozilla/5.0 (Windows NT 10.0; Trident/7.0; rv:11.0) like Gecko"),getFontForUA(t,"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.61 Safari/537.36")]),o=`${e}${r}`;l+=o,s+=`@import url('${t}');`}catch(e){r("getFonts","Error fetching font",{url:t,fontType:a,error:String(e)}),s+="",l+=""}let f=new TextEncoder().encode(l).length;return f<51200?l:s}let extractFontsFromPageTemplate=(t,r)=>{let o=[];return t.forEach(t=>{o.push(...e(t.data,r))}),composeFonts(o)},extractVariantFromTypography=(t,e)=>{let r="400";if(null!=t){let e=String(t).toLowerCase().trim();r=normalizeVariant(e)}let o=r,a=e&&"italic"===e.toLowerCase();return a&&!r.includes("italic")&&(o=r.includes("i")?r:`${r}italic`),o},HEADING_FONT_PREFIX="heading-",SUBHEADING_FONT_PREFIX="subheading-",PARAGRAPH_FONT_PREFIX="paragraph-",extractTypographyVariants=t=>{let e=t?.typography??{},r=t?.font??{},o=new Map;Object.entries(e).forEach(([t,e])=>{if(!e||"object"!=typeof e)return;let a=t.startsWith(HEADING_FONT_PREFIX)||t.startsWith(SUBHEADING_FONT_PREFIX)?r.heading?"heading":void 0:t.startsWith(PARAGRAPH_FONT_PREFIX)&&r.body?"body":void 0,n=e.desktop,i=n?.fontFamily,l=i||a;["desktop","mobile","tablet"].forEach(t=>{let a=e[t];if(!a||"object"!=typeof a)return;let i=a.fontFamily||l;if(!i||"string"!=typeof i||!r[i])return;let s=a.fontWeight??n?.fontWeight,f=a.fontStyle??n?.fontStyle;if(null==s)return;let p=extractVariantFromTypography(s,f);o.has(i)||o.set(i,new Set),o.get(i).add(p)})});let a={};return o.forEach((t,e)=>{let o=r[e];o&&(a[e]={variants:Array.from(t).sort(),family:o.family})}),a},mapTypographyToFontFamily=t=>{let e=t?.typography??{},r=t?.font??{},o=t?.font??{},a={};return Object.entries(e).forEach(([t,e])=>{if(!e||"object"!=typeof e)return;let n=e.desktop,i=e.mobile,l=e.tablet,s=t.startsWith(HEADING_FONT_PREFIX)||t.startsWith(SUBHEADING_FONT_PREFIX)?o.heading?"heading":void 0:t.startsWith(PARAGRAPH_FONT_PREFIX)&&o.body?"body":void 0,f=n?.fontFamily||i?.fontFamily||l?.fontFamily||s;if(!f||"string"!=typeof f)return;let p=r[f],y=o[f],m=p?.family||y?.family||f,g=p?.type||y?.type||"google";m&&(a[t]={family:m,type:g})}),a},getFontLinkFromGlobalStyle=async(t,e)=>{if(!t)return"";try{let r=JSON.parse(t),o=r?.font??{},a=Object.values(o),n=extractTypographyVariants(r);Object.keys(n).length>0&&(a=Object.entries(o).filter(([t])=>n[t]).map(([t,e])=>({...e,variants:n[t].variants})));let i=composeFonts(a);return getFonts(i,void 0,void 0,e)}catch{return""}},getFontFromGlobalStyle=(t,e)=>{if(!t)return"";try{let r=JSON.parse(t),o=r?.font??{},a=Object.entries(o).map(([,t])=>t);return getFonts(a,void 0,void 0,e)}catch{return""}};async function getFontStyleFromPageTemplate(t,e,r){let o,a=null;if(r)try{a=JSON.parse(r),o=mapTypographyToFontFamily(a)}catch{}let n=extractFontsFromPageTemplate(t,o);if(!a){if(0===n.length)return[];let t=await getFonts(n,void 0,void 0,e);return t?[t]:[]}let i=extractTypographyVariants(a),l=new Map;for(let t of Object.values(i)){let e=l.get(t.family);if(!e){l.set(t.family,new Set(t.variants));continue}t.variants.forEach(t=>e.add(t))}if(0===(n=n.map(t=>{let e=l.get(t.family);if(!e)return t;let r=t.variants.filter(t=>!e.has(t));return 0===r.length?null:{...t,variants:r}}).filter(t=>null!==t)).length)return[];let s=await getFonts(n,void 0,void 0,e);return s?[s]:[]}export{composeFonts,createFontUrls,extractTypographyVariants,getFontFromGlobalStyle,getFontLinkFromGlobalStyle,getFontStyleFromPageTemplate,getFonts,mapTypographyToFontFamily};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gem-sdk/pages",
3
- "version": "12.0.0-staging.4",
3
+ "version": "12.0.6",
4
4
  "license": "MIT",
5
5
  "sideEffects": false,
6
6
  "main": "dist/cjs/index.js",
@@ -27,10 +27,10 @@
27
27
  "next": "14.2.20"
28
28
  },
29
29
  "devDependencies": {
30
- "@gem-sdk/core": "12.0.0-staging.0",
31
- "@gem-sdk/plugin-cookie-bar": "12.0.0-staging.0",
32
- "@gem-sdk/plugin-quick-view": "12.0.0-staging.0",
33
- "@gem-sdk/plugin-sticky-add-to-cart": "12.0.0-staging.0"
30
+ "@gem-sdk/core": "11.2.0",
31
+ "@gem-sdk/plugin-cookie-bar": "11.2.0",
32
+ "@gem-sdk/plugin-quick-view": "11.2.0",
33
+ "@gem-sdk/plugin-sticky-add-to-cart": "11.2.0"
34
34
  },
35
35
  "peerDependencies": {
36
36
  "next": ">=14"