@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.
- package/dist/cjs/libs/api/get-home-page-props-v2.js +1 -1
- package/dist/cjs/libs/api/get-home-page-props.js +1 -1
- package/dist/cjs/libs/api/get-static-page-props-preview.js +1 -1
- package/dist/cjs/libs/api/get-static-page-props-v2.js +1 -1
- package/dist/cjs/libs/api/get-static-page-props.js +1 -1
- package/dist/cjs/libs/google-fonts.js +1 -1
- package/dist/esm/libs/api/get-home-page-props-v2.js +1 -1
- package/dist/esm/libs/api/get-home-page-props.js +1 -1
- package/dist/esm/libs/api/get-static-page-props-preview.js +1 -1
- package/dist/esm/libs/api/get-static-page-props-v2.js +1 -1
- package/dist/esm/libs/api/get-static-page-props.js +1 -1
- package/dist/esm/libs/google-fonts.js +1 -1
- package/package.json +5 -5
|
@@ -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,
|
|
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:{
|
|
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:{
|
|
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
|
|
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),
|
|
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
|
|
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"},[_,
|
|
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:{
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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.
|
|
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": "
|
|
31
|
-
"@gem-sdk/plugin-cookie-bar": "
|
|
32
|
-
"@gem-sdk/plugin-quick-view": "
|
|
33
|
-
"@gem-sdk/plugin-sticky-add-to-cart": "
|
|
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"
|