@gem-sdk/pages 3.0.14 → 3.1.0-staging.1142

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"),generateManifres=require("../helpers/generate-manifres.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");const getHomePagePropsV2=(e,a)=>async()=>{try{let t={slugType:"STATIC"},[s,i,l,o]=await Promise.allSettled([e([core.PublishedThemePagesDocument,t]),e([core.StorePropertyDocument]),a([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 r="fulfilled"===o.status?o.value:void 0,n=s.value?.publishedThemePages?.[0];if(!n)throw Error("No data builder found for Home page");let d=normalize.parseBuilderTemplateV2(n),[g,h,u]=await Promise.all([googleFonts.getFontStyleFromPageTemplate(d),googleFonts.getFontFromGlobalStyle(n?.pageStyle?.data),getFallback.getFallbackV2(e,d)]),m=n.isMobile??!1,p=getMetafield.getPublishedThemePageMetafieldByKey(index.PublishedThemePageMetafields.GLOBAL_META_DESCRIPTION,n?.metafields)||r?.publishedShopMetas?.find(e=>e?.key===index.PublishedThemePageMetafields.GLOBAL_META_DESCRIPTION)?.value,c=parseJson.parseJson(getMetafield.getPublishedThemePageMetafieldByKey(index.PublishedThemePageMetafields.GLOBAL_META_THUMBNAIL,n?.metafields)||r?.publishedShopMetas?.find(e=>e?.key===index.PublishedThemePageMetafields.GLOBAL_META_THUMBNAIL)?.value),f="fulfilled"===l.status?l.value:void 0,P="fulfilled"===i.status?i.value:void 0,T=P?.storeProperty?.favicon??"/favicon/favicon-32x32.png",y={defaultTitle:f?.shop.name,title:n?.name??"Home",description:p??f?.shop.description,openGraph:{site_name:f?.shop.name,locale:f?.localization.country.isoCode,title:n?.name??f?.shop.name,description:p??f?.shop.description,images:c?[c]:[]},additionalMetaTags:[{name:"theme-color",content:"#000000"}],canonical:`https://${P?.storeProperty?.primaryDomain}/`,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:f?.shop.name,short_name:f?.shop.name,description:f?.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"}]})}]},M=f?.localization.language.isoCode??null,b=f?.localization.country.isoCode??null,_=M&&b?`${M}-${b}`:null;return parseJson.serializableJson({themeStyle:genCss.genCSS(n?.pageStyle?.data,m),fontStyle:h,elementFontStyle:g,builderData:d,swr:{fallback:u},moneyFormat:f?.shop.moneyFormat??null,currency:f?.localization.country.currency.isoCode??null,languageIsoCode:M,countryIsoCode:b,locale:_,swatches:parseJson.parseJson(P?.storeProperty?.swatchesConfig),seo:y,mobileOnly:m,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})}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"),generateManifres=require("../helpers/generate-manifres.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");const getHomePagePropsV2=(e,t)=>async()=>{try{let a={slugType:"STATIC"},[s,i,l,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 r="fulfilled"===o.status?o.value:void 0,n=s.value?.publishedThemePages?.[0],d=s.value?.publishedThemePages?.[0]?.themePageCustomFonts;if(!n)throw Error("No data builder found for Home page");let u=normalize.parseBuilderTemplateV2(n),[g,m,h,p]=await Promise.all([googleFonts.getFontStyleFromPageTemplate(u),googleFonts.getFontFromGlobalStyle(n?.pageStyle?.data),getFallback.getFallbackV2(e,u),customFonts.getCustomFonts(d)]),c=n.isMobile??!1,f=getMetafield.getPublishedThemePageMetafieldByKey(index.PublishedThemePageMetafields.GLOBAL_META_DESCRIPTION,n?.metafields)||r?.publishedShopMetas?.find(e=>e?.key===index.PublishedThemePageMetafields.GLOBAL_META_DESCRIPTION)?.value,P=parseJson.parseJson(getMetafield.getPublishedThemePageMetafieldByKey(index.PublishedThemePageMetafields.GLOBAL_META_THUMBNAIL,n?.metafields)||r?.publishedShopMetas?.find(e=>e?.key===index.PublishedThemePageMetafields.GLOBAL_META_THUMBNAIL)?.value),T="fulfilled"===l.status?l.value:void 0,y="fulfilled"===i.status?i.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:P?[P]:[]},additionalMetaTags:[{name:"theme-color",content:"#000000"}],canonical:`https://${y?.storeProperty?.primaryDomain}/`,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:T?.shop.name,short_name:T?.shop.name,description:T?.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"}]})}]},_=T?.localization.language.isoCode??null,x=T?.localization.country.isoCode??null,A=_&&x?`${_}-${x}`:null;return parseJson.serializableJson({themeStyle:genCss.genCSS(n?.pageStyle?.data,c),fontStyle:m,elementFontStyle:g,builderData:u,swr:{fallback:h},moneyFormat:T?.shop.moneyFormat??null,currency:T?.localization.country.currency.isoCode??null,languageIsoCode:_,countryIsoCode:x,locale:A,swatches:parseJson.parseJson(y?.storeProperty?.swatchesConfig),seo:b,mobileOnly:c,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 checkOptionFont=require("./helpers/check-option-font.js"),genFonts=require("./helpers/gen-fonts.js"),sentry=require("./helpers/sentry.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(e,t){try{return fetch(e,{headers:{"User-Agent":t}}).then(n=>200===n.status?n.text():(sentry.sentryCaptureException("getFontForUA",`Unexpected status ${n.status}`,{url:e,UA:t}),""))}catch(n){return sentry.sentryCaptureException("getFontForUA","Error fetching font",{url:e,UA:t,error:n}),""}}const composeFonts=e=>{let t=e.filter((e,t,n)=>t===n.findIndex(t=>t.family===e.family));return t.map(t=>{let n=e.filter(e=>e.family===t.family).reduce((e,t)=>[...e,...t.variants],[]).filter((e,t,n)=>t===n.findIndex(t=>t===e));return{...t,variants:n}})},createFontUrl=(e,t,n)=>{let o=e.filter(e=>!(["bunny","google"].includes(e.type)&&checkOptionFont.checkNotInOptionFont(e.family,n||"google"))&&("google"===e.type||"bunny"===e.type||!e.type));if(!o.length)return;let r=new URLSearchParams,s=t?.display||"swap",a=o.filter((e,t,n)=>t===n.findIndex(t=>t.family===e.family)),l=composeFonts(a).map(e=>`${e.family.replace(/ /g,"+")}:${e.variants.join(",")}`).join("|");r.append("family",l),r.append("display",s),t?.subset&&r.append("subset",t.subset),t?.effect&&r.append("effect",t.effect);let i=`https://fonts.bunny.net/css?family=${l}`,c=`https://fonts.googleapis.com/css?${decodeURIComponent(r.toString())}`;return"bunny"===n?i:c};async function getFonts(e,t,n=!0,o){let r=createFontUrl(e,t,o);if(!r)return"";try{if(n)return`@import url('${r}');`;let[e,t]=await Promise.all([getFontForUA(r,"Mozilla/5.0 (Windows NT 10.0; Trident/7.0; rv:11.0) like Gecko"),getFontForUA(r,"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+t;{let e=new TextEncoder,t=o?e.encode(o).length:0;if(Math.ceil(t/1024)>=50)return`@import url('${r}');`}return o}catch(e){return sentry.sentryCaptureException("getFonts","Error fetching font",{url:r,fontType:o}),""}}const getFontFromGlobalStyle=(e,t)=>{if(!e)return"";try{let n=JSON.parse(e),o=n?.font??{},r=Object.entries(o).map(([,e])=>e);return getFonts(r,void 0,void 0,t)}catch{return""}};async function getFontStyleFromPageTemplate(e,t){let n=e.map(e=>getFonts(genFonts.getFontsFromDataBuilder(e.data),void 0,void 0,t));return await Promise.all(n)}exports.composeFonts=composeFonts,exports.createFontUrl=createFontUrl,exports.getFontFromGlobalStyle=getFontFromGlobalStyle,exports.getFontStyleFromPageTemplate=getFontStyleFromPageTemplate,exports.getFonts=getFonts;
1
+ "use strict";var checkOptionFont=require("./helpers/check-option-font.js"),genFonts=require("./helpers/gen-fonts.js"),sentry=require("./helpers/sentry.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(e,t){try{return fetch(e,{headers:{"User-Agent":t}}).then(n=>200===n.status?n.text():(sentry.sentryCaptureException("getFontForUA",`Unexpected status ${n.status}`,{url:e,UA:t}),""))}catch(n){return sentry.sentryCaptureException("getFontForUA","Error fetching font",{url:e,UA:t,error:n}),""}}const composeFonts=e=>{let t=e.filter((e,t,n)=>t===n.findIndex(t=>t.family===e.family));return t.map(t=>{let n=e.filter(e=>e.family===t.family).reduce((e,t)=>[...e,...t.variants],[]).filter((e,t,n)=>t===n.findIndex(t=>t===e));return{...t,variants:n}})},createFontUrl=(e,t,n)=>{let o=e.filter(e=>!(["bunny","google"].includes(e.type)&&checkOptionFont.checkNotInOptionFont(e.family,n||"google"))&&("google"===e.type||"bunny"===e.type||!e.type));if(!o.length)return;let r=new URLSearchParams,s=t?.display||"swap",a=o.filter((e,t,n)=>t===n.findIndex(t=>t.family===e.family)),i=composeFonts(a).map(e=>`${e.family.replace(/ /g,"+")}:${e.variants.join(",")}`).join("|");if("sans-serif"===i)return;r.append("family",i),r.append("display",s),t?.subset&&r.append("subset",t.subset),t?.effect&&r.append("effect",t.effect);let l=`https://fonts.bunny.net/css?family=${i}`,c=`https://fonts.googleapis.com/css?${decodeURIComponent(r.toString())}`;return"bunny"===n?l:c};async function getFonts(e,t,n=!0,o){let r=createFontUrl(e,t,o);if(!r)return"";try{if(n)return`@import url('${r}');`;let[e,t]=await Promise.all([getFontForUA(r,"Mozilla/5.0 (Windows NT 10.0; Trident/7.0; rv:11.0) like Gecko"),getFontForUA(r,"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+t;{let e=new TextEncoder,t=o?e.encode(o).length:0;if(Math.ceil(t/1024)>=50)return`@import url('${r}');`}return o}catch(e){return sentry.sentryCaptureException("getFonts","Error fetching font",{url:r,fontType:o}),""}}const getFontFromGlobalStyle=(e,t)=>{if(!e)return"";try{let n=JSON.parse(e),o=n?.font??{},r=Object.entries(o).map(([,e])=>e);return getFonts(r,void 0,void 0,t)}catch{return""}};async function getFontStyleFromPageTemplate(e,t){let n=e.map(e=>getFonts(genFonts.getFontsFromDataBuilder(e.data),void 0,void 0,t));return await Promise.all(n)}exports.composeFonts=composeFonts,exports.createFontUrl=createFontUrl,exports.getFontFromGlobalStyle=getFontFromGlobalStyle,exports.getFontStyleFromPageTemplate=getFontStyleFromPageTemplate,exports.getFonts=getFonts;
@@ -1 +1 @@
1
- import{PublishedThemePagesDocument as e,StorePropertyDocument as o,PublishedShopMetasDocument as r}from"@gem-sdk/core";import{ShopMetaDocument as t}from"@gem-sdk/adapter-shopify";import{getFontStyleFromPageTemplate as s,getFontFromGlobalStyle as a}from"../google-fonts.js";import{genCSS as l}from"../helpers/gen-css.js";import{generateManifest as i}from"../helpers/generate-manifres.js";import{getFallbackV2 as n}from"../helpers/get-fallback.js";import{parseBuilderTemplateV2 as m}from"../helpers/normalize.js";import{parseJson as p,serializableJson as c}from"../helpers/parse-json.js";import{captureException as d}from"@sentry/nextjs";import{PublishedThemePageMetafields as f}from"../../constants/index.js";import{getPublishedThemePageMetafieldByKey as u}from"../helpers/get-metafield.js";let getHomePagePropsV2=(h,_)=>async()=>{try{let d={slugType:"STATIC"},[g,T,y,A]=await Promise.allSettled([h([e,d]),h([o]),_([t]),h([r,{keys:[f.GLOBAL_META_DESCRIPTION,f.GLOBAL_META_THUMBNAIL]}])]);if("rejected"===g.status)throw Error(g.reason?.[0]);let I="fulfilled"===A.status?A.value:void 0,L=g.value?.publishedThemePages?.[0];if(!L)throw Error("No data builder found for Home page");let C=m(L),[E,P,x]=await Promise.all([s(C),a(L?.pageStyle?.data),n(h,C)]),z=L.isMobile??!1,M=u(f.GLOBAL_META_DESCRIPTION,L?.metafields)||I?.publishedShopMetas?.find(e=>e?.key===f.GLOBAL_META_DESCRIPTION)?.value,O=p(u(f.GLOBAL_META_THUMBNAIL,L?.metafields)||I?.publishedShopMetas?.find(e=>e?.key===f.GLOBAL_META_THUMBNAIL)?.value),S="fulfilled"===y.status?y.value:void 0,k="fulfilled"===T.status?T.value:void 0,v=k?.storeProperty?.favicon??"/favicon/favicon-32x32.png",B={defaultTitle:S?.shop.name,title:L?.name??"Home",description:M??S?.shop.description,openGraph:{site_name:S?.shop.name,locale:S?.localization.country.isoCode,title:L?.name??S?.shop.name,description:M??S?.shop.description,images:O?[O]:[]},additionalMetaTags:[{name:"theme-color",content:"#000000"}],canonical:`https://${k?.storeProperty?.primaryDomain}/`,additionalLinkTags:[{rel:"icon",sizes:"32x32",href:`${v}-/crop/1:1/center/-/smart_resize/32x32/`},{rel:"icon",sizes:"16x16",href:`${v}-/crop/1:1/center/-/smart_resize/16x16/`},{rel:"apple-touch-icon",sizes:"180x180",href:`${v}-/crop/1:1/center/-/smart_resize/180x180/`},{rel:"manifest",href:i({theme_color:"#000000",background_color:"#ffffff",display:"standalone",scope:"/",start_url:"/",name:S?.shop.name,short_name:S?.shop.name,description:S?.shop.description,icons:[{src:`${v}-/crop/1:1/center/-/smart_resize/192x192/`,sizes:"192x192",type:"image/png",purpose:"any maskable"},{src:`${v}-/crop/1:1/center/-/smart_resize/512x512/`,sizes:"512x512",type:"image/png"}]})}]},D=S?.localization.language.isoCode??null,j=S?.localization.country.isoCode??null,N=D&&j?`${D}-${j}`:null;return c({themeStyle:l(L?.pageStyle?.data,z),fontStyle:P,elementFontStyle:E,builderData:C,swr:{fallback:x},moneyFormat:S?.shop.moneyFormat??null,currency:S?.localization.country.currency.isoCode??null,languageIsoCode:D,countryIsoCode:j,locale:N,swatches:p(k?.storeProperty?.swatchesConfig),seo:B,mobileOnly:z,gaTrackingId:u(f.ANALYTICS_GA_TRACKING_ID,L?.metafields)??null,facebookPixelId:u(f.ANALYTICS_FB_PIXEL_ID,L?.metafields)??null,tiktokPixelId:u(f.ANALYTICS_TIKTOK_PIXEL_ID,L?.metafields)??null,customCodeHeader:u(f.CUSTOM_CODE_HEADER,L?.metafields)??null,customCodeBody:u(f.CUSTOM_CODE_BODY,L?.metafields)??null,pageHandle:L.handle??null})}catch(e){throw d(e),e}};export{getHomePagePropsV2};
1
+ import{PublishedThemePagesDocument as e,StorePropertyDocument as o,PublishedShopMetasDocument as t}from"@gem-sdk/core";import{ShopMetaDocument as s}from"@gem-sdk/adapter-shopify";import{getFontStyleFromPageTemplate as r,getFontFromGlobalStyle as a}from"../google-fonts.js";import{genCSS as l}from"../helpers/gen-css.js";import{generateManifest as i}from"../helpers/generate-manifres.js";import{getFallbackV2 as n}from"../helpers/get-fallback.js";import{parseBuilderTemplateV2 as m}from"../helpers/normalize.js";import{parseJson as p,serializableJson as c}from"../helpers/parse-json.js";import{captureException as d}from"@sentry/nextjs";import{PublishedThemePageMetafields as f}from"../../constants/index.js";import{getPublishedThemePageMetafieldByKey as u}from"../helpers/get-metafield.js";import{getCustomFonts as h}from"../custom-fonts.js";let getHomePagePropsV2=(_,g)=>async()=>{try{let d={slugType:"STATIC"},[T,y,A,I]=await Promise.allSettled([_([e,d]),_([o]),g([s]),_([t,{keys:[f.GLOBAL_META_DESCRIPTION,f.GLOBAL_META_THUMBNAIL]}])]);if("rejected"===T.status)throw Error(T.reason?.[0]);let L="fulfilled"===I.status?I.value:void 0,C=T.value?.publishedThemePages?.[0],P=T.value?.publishedThemePages?.[0]?.themePageCustomFonts;if(!C)throw Error("No data builder found for Home page");let E=m(C),[x,z,M,O]=await Promise.all([r(E),a(C?.pageStyle?.data),n(_,E),h(P)]),S=C.isMobile??!1,k=u(f.GLOBAL_META_DESCRIPTION,C?.metafields)||L?.publishedShopMetas?.find(e=>e?.key===f.GLOBAL_META_DESCRIPTION)?.value,v=p(u(f.GLOBAL_META_THUMBNAIL,C?.metafields)||L?.publishedShopMetas?.find(e=>e?.key===f.GLOBAL_META_THUMBNAIL)?.value),j="fulfilled"===A.status?A.value:void 0,B="fulfilled"===y.status?y.value:void 0,D=B?.storeProperty?.favicon??"/favicon/favicon-32x32.png",b={defaultTitle:j?.shop.name,title:C?.name??"Home",description:k??j?.shop.description,openGraph:{site_name:j?.shop.name,locale:j?.localization.country.isoCode,title:C?.name??j?.shop.name,description:k??j?.shop.description,images:v?[v]:[]},additionalMetaTags:[{name:"theme-color",content:"#000000"}],canonical:`https://${B?.storeProperty?.primaryDomain}/`,additionalLinkTags:[{rel:"icon",sizes:"32x32",href:`${D}-/crop/1:1/center/-/smart_resize/32x32/`},{rel:"icon",sizes:"16x16",href:`${D}-/crop/1:1/center/-/smart_resize/16x16/`},{rel:"apple-touch-icon",sizes:"180x180",href:`${D}-/crop/1:1/center/-/smart_resize/180x180/`},{rel:"manifest",href:i({theme_color:"#000000",background_color:"#ffffff",display:"standalone",scope:"/",start_url:"/",name:j?.shop.name,short_name:j?.shop.name,description:j?.shop.description,icons:[{src:`${D}-/crop/1:1/center/-/smart_resize/192x192/`,sizes:"192x192",type:"image/png",purpose:"any maskable"},{src:`${D}-/crop/1:1/center/-/smart_resize/512x512/`,sizes:"512x512",type:"image/png"}]})}]},N=j?.localization.language.isoCode??null,H=j?.localization.country.isoCode??null,G=N&&H?`${N}-${H}`:null;return c({themeStyle:l(C?.pageStyle?.data,S),fontStyle:z,elementFontStyle:x,builderData:E,swr:{fallback:M},moneyFormat:j?.shop.moneyFormat??null,currency:j?.localization.country.currency.isoCode??null,languageIsoCode:N,countryIsoCode:H,locale:G,swatches:p(B?.storeProperty?.swatchesConfig),seo:b,mobileOnly:S,gaTrackingId:u(f.ANALYTICS_GA_TRACKING_ID,C?.metafields)??null,facebookPixelId:u(f.ANALYTICS_FB_PIXEL_ID,C?.metafields)??null,tiktokPixelId:u(f.ANALYTICS_TIKTOK_PIXEL_ID,C?.metafields)??null,customCodeHeader:u(f.CUSTOM_CODE_HEADER,C?.metafields)??null,customCodeBody:u(f.CUSTOM_CODE_BODY,C?.metafields)??null,pageHandle:C.handle??null,customFonts:O})}catch(e){throw d(e),e}};export{getHomePagePropsV2};
@@ -1 +1 @@
1
- import{checkNotInOptionFont as e}from"./helpers/check-option-font.js";import{getFontsFromDataBuilder as t}from"./helpers/gen-fonts.js";import{sentryCaptureException as n}from"./helpers/sentry.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(e,t){try{return fetch(e,{headers:{"User-Agent":t}}).then(o=>200===o.status?o.text():(n("getFontForUA",`Unexpected status ${o.status}`,{url:e,UA:t}),""))}catch(o){return n("getFontForUA","Error fetching font",{url:e,UA:t,error:o}),""}}let composeFonts=e=>{let t=e.filter((e,t,n)=>t===n.findIndex(t=>t.family===e.family));return t.map(t=>{let n=e.filter(e=>e.family===t.family).reduce((e,t)=>[...e,...t.variants],[]).filter((e,t,n)=>t===n.findIndex(t=>t===e));return{...t,variants:n}})},createFontUrl=(t,n,o)=>{let r=t.filter(t=>!(["bunny","google"].includes(t.type)&&e(t.family,o||"google"))&&("google"===t.type||"bunny"===t.type||!t.type));if(!r.length)return;let l=new URLSearchParams,a=n?.display||"swap",i=r.filter((e,t,n)=>t===n.findIndex(t=>t.family===e.family)),s=composeFonts(i).map(e=>`${e.family.replace(/ /g,"+")}:${e.variants.join(",")}`).join("|");l.append("family",s),l.append("display",a),n?.subset&&l.append("subset",n.subset),n?.effect&&l.append("effect",n.effect);let c=`https://fonts.bunny.net/css?family=${s}`,f=`https://fonts.googleapis.com/css?${decodeURIComponent(l.toString())}`;return"bunny"===o?c:f};async function getFonts(e,t,o=!0,r){let l=createFontUrl(e,t,r);if(!l)return"";try{if(o)return`@import url('${l}');`;let[e,t]=await Promise.all([getFontForUA(l,"Mozilla/5.0 (Windows NT 10.0; Trident/7.0; rv:11.0) like Gecko"),getFontForUA(l,"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")]),n=e+t;{let e=new TextEncoder,t=n?e.encode(n).length:0;if(Math.ceil(t/1024)>=50)return`@import url('${l}');`}return n}catch(e){return n("getFonts","Error fetching font",{url:l,fontType:r}),""}}let getFontFromGlobalStyle=(e,t)=>{if(!e)return"";try{let n=JSON.parse(e),o=n?.font??{},r=Object.entries(o).map(([,e])=>e);return getFonts(r,void 0,void 0,t)}catch{return""}};async function getFontStyleFromPageTemplate(e,n){let o=e.map(e=>getFonts(t(e.data),void 0,void 0,n));return await Promise.all(o)}export{composeFonts,createFontUrl,getFontFromGlobalStyle,getFontStyleFromPageTemplate,getFonts};
1
+ import{checkNotInOptionFont as e}from"./helpers/check-option-font.js";import{getFontsFromDataBuilder as t}from"./helpers/gen-fonts.js";import{sentryCaptureException as n}from"./helpers/sentry.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(e,t){try{return fetch(e,{headers:{"User-Agent":t}}).then(r=>200===r.status?r.text():(n("getFontForUA",`Unexpected status ${r.status}`,{url:e,UA:t}),""))}catch(r){return n("getFontForUA","Error fetching font",{url:e,UA:t,error:r}),""}}let composeFonts=e=>{let t=e.filter((e,t,n)=>t===n.findIndex(t=>t.family===e.family));return t.map(t=>{let n=e.filter(e=>e.family===t.family).reduce((e,t)=>[...e,...t.variants],[]).filter((e,t,n)=>t===n.findIndex(t=>t===e));return{...t,variants:n}})},createFontUrl=(t,n,r)=>{let o=t.filter(t=>!(["bunny","google"].includes(t.type)&&e(t.family,r||"google"))&&("google"===t.type||"bunny"===t.type||!t.type));if(!o.length)return;let l=new URLSearchParams,i=n?.display||"swap",a=o.filter((e,t,n)=>t===n.findIndex(t=>t.family===e.family)),s=composeFonts(a).map(e=>`${e.family.replace(/ /g,"+")}:${e.variants.join(",")}`).join("|");if("sans-serif"===s)return;l.append("family",s),l.append("display",i),n?.subset&&l.append("subset",n.subset),n?.effect&&l.append("effect",n.effect);let f=`https://fonts.bunny.net/css?family=${s}`,c=`https://fonts.googleapis.com/css?${decodeURIComponent(l.toString())}`;return"bunny"===r?f:c};async function getFonts(e,t,r=!0,o){let l=createFontUrl(e,t,o);if(!l)return"";try{if(r)return`@import url('${l}');`;let[e,t]=await Promise.all([getFontForUA(l,"Mozilla/5.0 (Windows NT 10.0; Trident/7.0; rv:11.0) like Gecko"),getFontForUA(l,"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")]),n=e+t;{let e=new TextEncoder,t=n?e.encode(n).length:0;if(Math.ceil(t/1024)>=50)return`@import url('${l}');`}return n}catch(e){return n("getFonts","Error fetching font",{url:l,fontType:o}),""}}let getFontFromGlobalStyle=(e,t)=>{if(!e)return"";try{let n=JSON.parse(e),r=n?.font??{},o=Object.entries(r).map(([,e])=>e);return getFonts(o,void 0,void 0,t)}catch{return""}};async function getFontStyleFromPageTemplate(e,n){let r=e.map(e=>getFonts(t(e.data),void 0,void 0,n));return await Promise.all(r)}export{composeFonts,createFontUrl,getFontFromGlobalStyle,getFontStyleFromPageTemplate,getFonts};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gem-sdk/pages",
3
- "version": "3.0.14",
3
+ "version": "3.1.0-staging.1142",
4
4
  "license": "MIT",
5
5
  "sideEffects": false,
6
6
  "main": "dist/cjs/index.js",
@@ -26,10 +26,10 @@
26
26
  "next": "14.2.20"
27
27
  },
28
28
  "devDependencies": {
29
- "@gem-sdk/core": "3.0.6",
30
- "@gem-sdk/plugin-cookie-bar": "3.0.0",
31
- "@gem-sdk/plugin-quick-view": "3.0.0",
32
- "@gem-sdk/plugin-sticky-add-to-cart": "3.0.0"
29
+ "@gem-sdk/core": "3.1.0-staging.1138",
30
+ "@gem-sdk/plugin-cookie-bar": "3.1.0-staging.1137",
31
+ "@gem-sdk/plugin-quick-view": "3.1.0-staging.1137",
32
+ "@gem-sdk/plugin-sticky-add-to-cart": "3.1.0-staging.1137"
33
33
  },
34
34
  "peerDependencies": {
35
35
  "next": ">=14"