@gem-sdk/pages 17.0.0-dev.80 → 17.0.0-dev.82

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.
Files changed (53) hide show
  1. package/dist/cjs/index.js +1 -1
  2. package/dist/cjs/libs/google-fonts.js +1 -7
  3. package/dist/cjs/libs/helpers/normalize.js +1 -1
  4. package/dist/cjs/libs/helpers/parse-json.js +1 -1
  5. package/dist/cjs/pages/static-v2.js +2 -2
  6. package/dist/cjs/server.js +14 -0
  7. package/dist/esm/index.js +1 -1
  8. package/dist/esm/libs/google-fonts.js +1 -7
  9. package/dist/esm/libs/helpers/normalize.js +1 -1
  10. package/dist/esm/libs/helpers/parse-json.js +1 -1
  11. package/dist/esm/pages/static-v2.js +2 -2
  12. package/dist/esm/server.js +14 -0
  13. package/dist/types/index.d.ts +90 -125
  14. package/dist/types/server.d.ts +156 -0
  15. package/package.json +18 -6
  16. package/dist/cjs/libs/api/get-builder-props.js +0 -1
  17. package/dist/cjs/libs/api/get-collection-props.js +0 -1
  18. package/dist/cjs/libs/api/get-collection-share-page-props.js +0 -1
  19. package/dist/cjs/libs/api/get-home-page-props-v2.js +0 -1
  20. package/dist/cjs/libs/api/get-home-page-props.js +0 -1
  21. package/dist/cjs/libs/api/get-post-purchase-props-preview.js +0 -1
  22. package/dist/cjs/libs/api/get-preview-content-props.js +0 -1
  23. package/dist/cjs/libs/api/get-preview-props.js +0 -1
  24. package/dist/cjs/libs/api/get-product-props.js +0 -1
  25. package/dist/cjs/libs/api/get-share-page-props.js +0 -1
  26. package/dist/cjs/libs/api/get-static-page-props-preview.js +0 -1
  27. package/dist/cjs/libs/api/get-static-page-props-v2.js +0 -1
  28. package/dist/cjs/libs/api/get-static-page-props.js +0 -1
  29. package/dist/cjs/libs/custom-fonts.js +0 -8
  30. package/dist/cjs/libs/data/fonts.js +0 -1
  31. package/dist/cjs/libs/getStaticPaths.js +0 -1
  32. package/dist/cjs/libs/helpers/gen-favicon.js +0 -1
  33. package/dist/cjs/libs/helpers/generate-seo-links.js +0 -1
  34. package/dist/cjs/libs/helpers/get-metafield.js +0 -1
  35. package/dist/esm/libs/api/get-builder-props.js +0 -1
  36. package/dist/esm/libs/api/get-collection-props.js +0 -1
  37. package/dist/esm/libs/api/get-collection-share-page-props.js +0 -1
  38. package/dist/esm/libs/api/get-home-page-props-v2.js +0 -1
  39. package/dist/esm/libs/api/get-home-page-props.js +0 -1
  40. package/dist/esm/libs/api/get-post-purchase-props-preview.js +0 -1
  41. package/dist/esm/libs/api/get-preview-content-props.js +0 -1
  42. package/dist/esm/libs/api/get-preview-props.js +0 -1
  43. package/dist/esm/libs/api/get-product-props.js +0 -1
  44. package/dist/esm/libs/api/get-share-page-props.js +0 -1
  45. package/dist/esm/libs/api/get-static-page-props-preview.js +0 -1
  46. package/dist/esm/libs/api/get-static-page-props-v2.js +0 -1
  47. package/dist/esm/libs/api/get-static-page-props.js +0 -1
  48. package/dist/esm/libs/custom-fonts.js +0 -8
  49. package/dist/esm/libs/data/fonts.js +0 -1
  50. package/dist/esm/libs/getStaticPaths.js +0 -1
  51. package/dist/esm/libs/helpers/gen-favicon.js +0 -1
  52. package/dist/esm/libs/helpers/generate-seo-links.js +0 -1
  53. package/dist/esm/libs/helpers/get-metafield.js +0 -1
package/dist/cjs/index.js CHANGED
@@ -1 +1 @@
1
- "use strict";var e=require("./libs/api/get-collection-props.js"),r=require("./libs/api/get-collection-share-page-props.js"),t=require("./libs/api/get-home-page-props.js"),s=require("./libs/api/get-home-page-props-v2.js"),o=require("./libs/api/get-preview-props.js"),i=require("./libs/api/get-builder-props.js"),a=require("./libs/api/get-product-props.js"),p=require("./libs/api/get-static-page-props-v2.js"),g=require("./libs/api/get-share-page-props.js"),l=require("./libs/api/get-post-purchase-props-preview.js"),P=require("./libs/api/get-static-page-props-preview.js"),c=require("./libs/api/get-preview-content-props.js"),u=require("./libs/fetcher.js"),n=require("./libs/get-layout.js"),x=require("./libs/helpers/gen-css.js"),b=require("./libs/helpers/sendPageViewedTracking.js"),j=require("./libs/hooks/usePagePreview.js"),q=require("./libs/hooks/usePageViewedTracking.js"),h=require("./libs/helpers/user-agent.js"),d=require("./libs/helpers/normalize.js"),S=require("./libs/helpers/get-fallback.js"),F=require("./libs/helpers/common.js"),m=require("./components/SharePageTracking.js"),k=require("./libs/getStaticPaths.js"),w=require("./libs/helpers/gen-fonts.js"),v=require("./libs/google-fonts.js"),T=require("./libs/get-storefront-api.js"),y=require("./components/ErrorBoundary.js"),V=require("./components/ErrorFallback.js"),B=require("./pages/404.js"),f=require("./pages/500.js"),A=require("./components/GoogleAnalytic.js"),C=require("./components/FacebookPixel.js"),G=require("./components/TikTokPixel.js"),D=require("./pages/collection-detail.js"),E=require("./pages/preview.js"),H=require("./pages/product-detail.js"),L=require("./pages/static.js"),z=require("./pages/builder.js"),I=require("./pages/builder-upsell.js"),R=require("./pages/static-v2.js"),U=require("./pages/preview-template.js");exports.getCollectionProps=e.getCollectionProps,exports.getCollectionSharePageProps=r.getCollectionSharePageProps,exports.getHomePageProps=t.getHomePageProps,exports.getHomePagePropsV2=s.getHomePagePropsV2,exports.getPreviewProps=o.getPreviewProps,exports.getBuilderProps=i.getBuilderProps,exports.getProductProps=a.getProductProps,exports.getStaticPagePropsV2=p.getStaticPagePropsV2,exports.getSharePageProps=g.getSharePageProps,exports.getPostPurchasePropsPreview=l.getPostPurchasePropsPreview,exports.getStaticPagePropsPreview=P.getStaticPagePropsPreview,exports.getSharePageContentProps=c.getSharePageContentProps,exports.createAppAPIFetcher=u.createAppAPIFetcher,exports.createFetcher=u.createFetcher,exports.createShopifyFetcher=u.createShopifyFetcher,exports.createTemplateFetcher=u.createTemplateFetcher,exports.getLayout=n.getLayout,exports.genCSS=x.genCSS,exports.sendPageViewedTracking=b.sendPageViewedTracking,exports.usePagePreview=j.usePagePreview,exports.usePageViewedTracking=q.usePageViewedTracking,exports.isBot=h.isBot,exports.normalizePageSectionResponseV2=d.normalizePageSectionResponseV2,exports.parseBuilderTemplateV2=d.parseBuilderTemplateV2,exports.getFallbackV2=S.getFallbackV2,exports.retryWithDelay=F.retryWithDelay,exports.SharePageTracking=m.SharePageTracking,exports.getStaticPaths=k.getStaticPaths,exports.getFontFromGroupSetting=w.getFontFromGroupSetting,exports.getFontsFromDataBuilder=w.getFontsFromDataBuilder,exports.getFontFromGlobalStyle=v.getFontFromGlobalStyle,exports.getFontLinkFromGlobalStyle=v.getFontLinkFromGlobalStyle,exports.getFonts=v.getFonts,exports.getStorefrontApi=T.getStorefrontApi,exports.ErrorBoundary=y.ErrorBoundary,exports.ErrorFallback=V.ErrorFallback,exports.Page404=B.Page404,exports.Page500=f.Page500,exports.GoogleAnalytic=A.GoogleAnalytic,exports.FacebookPixel=C.FacebookPixel,exports.TikTokPixel=G.TikTokPixel,exports.CollectionDetailPage=D.default,exports.PreviewPage=E.PreviewPage,exports.ProductDetailPage=H.default,exports.StaticPage=L.default,exports.BuilderPage=z.BuilderPage,exports.BuilderUpsellPage=I.BuilderUpsellPage,exports.StaticPageV2=R.StaticPageV2,exports.PreviewTemplate=U.PreviewTemplate;
1
+ "use strict";var e=require("./libs/fetcher.js"),r=require("./libs/get-layout.js"),t=require("./libs/helpers/gen-css.js"),s=require("./libs/helpers/sendPageViewedTracking.js"),o=require("./libs/hooks/usePagePreview.js"),a=require("./libs/hooks/usePageViewedTracking.js"),i=require("./libs/helpers/user-agent.js"),l=require("./libs/helpers/normalize.js"),p=require("./libs/helpers/get-fallback.js"),g=require("./libs/helpers/common.js"),n=require("./components/SharePageTracking.js"),u=require("./libs/helpers/gen-fonts.js"),c=require("./libs/google-fonts.js"),P=require("./libs/get-storefront-api.js"),x=require("./components/ErrorBoundary.js"),F=require("./components/ErrorFallback.js"),d=require("./pages/404.js"),j=require("./pages/500.js"),q=require("./components/GoogleAnalytic.js"),b=require("./components/FacebookPixel.js"),k=require("./components/TikTokPixel.js"),m=require("./pages/collection-detail.js"),h=require("./pages/preview.js"),S=require("./pages/product-detail.js"),T=require("./pages/static.js"),y=require("./pages/builder.js"),w=require("./pages/builder-upsell.js"),V=require("./pages/static-v2.js"),B=require("./pages/preview-template.js");exports.createAppAPIFetcher=e.createAppAPIFetcher,exports.createFetcher=e.createFetcher,exports.createShopifyFetcher=e.createShopifyFetcher,exports.createTemplateFetcher=e.createTemplateFetcher,exports.getLayout=r.getLayout,exports.genCSS=t.genCSS,exports.sendPageViewedTracking=s.sendPageViewedTracking,exports.usePagePreview=o.usePagePreview,exports.usePageViewedTracking=a.usePageViewedTracking,exports.isBot=i.isBot,exports.normalizePageSectionResponseV2=l.normalizePageSectionResponseV2,exports.parseBuilderTemplateV2=l.parseBuilderTemplateV2,exports.getFallbackV2=p.getFallbackV2,exports.retryWithDelay=g.retryWithDelay,exports.SharePageTracking=n.SharePageTracking,exports.getFontFromGroupSetting=u.getFontFromGroupSetting,exports.getFontsFromDataBuilder=u.getFontsFromDataBuilder,exports.getFontFromGlobalStyle=c.getFontFromGlobalStyle,exports.getFontLinkFromGlobalStyle=c.getFontLinkFromGlobalStyle,exports.getFonts=c.getFonts,exports.getStorefrontApi=P.getStorefrontApi,exports.ErrorBoundary=x.ErrorBoundary,exports.ErrorFallback=F.ErrorFallback,exports.Page404=d.Page404,exports.Page500=j.Page500,exports.GoogleAnalytic=q.GoogleAnalytic,exports.FacebookPixel=b.FacebookPixel,exports.TikTokPixel=k.TikTokPixel,exports.CollectionDetailPage=m.default,exports.PreviewPage=h.PreviewPage,exports.ProductDetailPage=S.default,exports.StaticPage=T.default,exports.BuilderPage=y.BuilderPage,exports.BuilderUpsellPage=w.BuilderUpsellPage,exports.StaticPageV2=V.StaticPageV2,exports.PreviewTemplate=B.PreviewTemplate;
@@ -1,7 +1 @@
1
- "use strict";var t=require("./helpers/check-option-font.js"),e=require("./helpers/gen-fonts.js"),r=require("./helpers/sentry.js"),n=require("./constants/theme-font-keys.js"),i=require("../constants/googleFontV1.js"),a=require("./data/fonts.js");const 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";async function o(t,e){try{return fetch(t,{headers:{"User-Agent":e}}).then(n=>200===n.status?n.text():(r.sentryCaptureException("getFontForUA",`Unexpected status ${n.status}`,{url:t,UA:e}),""))}catch(n){return r.sentryCaptureException("getFontForUA","Error fetching font",{url:t,UA:e,error:n}),""}}const s=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}})},f={"Roboto Flex":"https://fonts.googleapis.com/css2?family=Roboto+Flex:opsz,wght@8..144,100..1000&display=swap"},c=t=>t?.trim().replace(/\s+/g,"+")??"",u=t=>t.includes("fonts.googleapis.com/css2")?"css2":t.includes("fonts.bunny.net")?"bunny":"css1",p=t=>{let e=c(t);return f[t]??f[e]},y={regular:"400",normal:"400",bold:"700",italic:"400italic"},g=new Set(i.googleFontFamilies),h=[...n.THEME_FONT_CSS_KEYS,...n.THEME_FONT_CSS_KEYS.map(t=>`--g-${t}`)],m=(e,r,n)=>{if(("google"===r||"google"===e.type)&&!g.has(e.family))return!1;let i="google"===e.type||"bunny"===e.type,a="theme"===e.type&&n,l=t.checkNotInOptionFont(e.family,r);return!(i&&l)&&(i||!e.type||a)},d=t=>{let e=String(t).toLowerCase().trim();return y[e]??t},b=t=>{let e=t=>{let e=String(t).toLowerCase().trim(),r=e.includes("italic"),n=e.replace("italic","").trim(),i=y[n]??n,a=parseInt(i,10)||400;return{weight:a,isItalic:r}};return[...t].sort((t,r)=>{let n=e(t),i=e(r);return n.weight!==i.weight?n.weight-i.weight:n.isItalic!==i.isItalic?n.isItalic?1:-1:0})},S=(t,e,r)=>{let n=s(t).map(t=>{let e=t.variants.map(t=>d(t)),r=b(e);return`${t.family.replace(/ /g,"+")}:${r.join(",")}`}).join("|");if("sans-serif"===n)return;let i=new URLSearchParams;return(i.append("family",n),i.append("display",r?.display||"swap"),"bunny"===e)?`https://fonts.bunny.net/css?${decodeURIComponent(i.toString())}`:(r?.subset&&i.append("subset",r.subset),r?.effect&&i.append("effect",r.effect),`https://fonts.googleapis.com/css?${decodeURIComponent(i.toString())}`)},v=(t,e,r,n)=>{let i=t.filter(t=>m(t,r||"google",n));if(!i.length)return;let a=i.filter((t,e,r)=>e===r.findIndex(e=>e.family===t.family)),l=[],o=[];for(let t of a){let e=p(t.family);e&&"bunny"!==r?l.push(e):o.push(t)}let s=o.length?S(o,r||"google",e):void 0;return l.length&&s?[...l,s]:s?[s,...l]:l};async function F(t,e,n=!0,i){let a=t.filter(t=>!h.includes(t.family)),s=v(a,e,i),f=Array.isArray(s)?s:s?[s]:[];if(!f.length)return"";if(n)return f.map(t=>`@import url('${t}');`).join("");let c="",p="";for(let t of f)try{let[e,r]=await Promise.all([o(t,"Mozilla/5.0 (Windows NT 10.0; Trident/7.0; rv:11.0) like Gecko"),o(t,l)]),n=`${e}${r}`;c+=n,p+=`@import url('${t}');`}catch(n){let e=u(t);r.sentryCaptureException("getFonts",`Error fetching font ${e}`,{url:t,fontType:i,fontApiVersion:e,error:String(n)}),p+="",c+=""}let y=new TextEncoder().encode(c).length;return y<51200?c:p}const w=(t,r)=>{let n=[];return t.forEach(t=>{n.push(...e.getFontsFromDataBuilder(t.data,r))}),s(n)},$=(t,e)=>{let r="400";if(null!=t){let e=String(t).toLowerCase().trim();r=d(e)}let n=r,i=e&&"italic"===e.toLowerCase();return i&&!r.includes("italic")&&(n=r.includes("i")?r:`${r}italic`),n},j="heading-",x="subheading-",E="paragraph-",O=t=>{let e=t?.typography??{},r=t?.font??{},n=new Map;Object.entries(e).forEach(([t,e])=>{if(!e||"object"!=typeof e)return;let i=t.startsWith(j)||t.startsWith(x)?r.heading?"heading":void 0:t.startsWith(E)&&r.body?"body":void 0,a=e.desktop,l=a?.fontFamily,o=l||i;["desktop","mobile","tablet"].forEach(t=>{let i=e[t];if(!i||"object"!=typeof i)return;let l=i.fontFamily||o;if(!l||"string"!=typeof l||!r[l])return;let s=i.fontWeight??a?.fontWeight,f=i.fontStyle??a?.fontStyle;if(null==s)return;let c=$(s,f);n.has(l)||n.set(l,new Set),n.get(l).add(c)})});let i={};return n.forEach((t,e)=>{let n=r[e];n&&(i[e]={variants:Array.from(t).sort(),family:n.family,type:n.type})}),i},W=t=>{let e=t?.typography??{},r=t?.font??{},n=t?.font??{},i={};return Object.entries(e).forEach(([t,e])=>{if(!e||"object"!=typeof e)return;let a=e.desktop,l=e.mobile,o=e.tablet,s=t.startsWith(j)||t.startsWith(x)?n.heading?"heading":void 0:t.startsWith(E)&&n.body?"body":void 0,f=a?.fontFamily||l?.fontFamily||o?.fontFamily||s;if(!f||"string"!=typeof f)return;let c=r[f],u=n[f],p=c?.family||u?.family||f,y=c?.type||u?.type||"google";p&&(i[t]={family:p,type:y})}),i},C=async(t,e)=>{if(!t)return"";try{let r=JSON.parse(t),n=r?.font??{},i=Object.values(n),a=O(r);Object.keys(a).length>0&&(i=Object.entries(n).filter(([t])=>a[t]).map(([t,e])=>({...e,variants:a[t].variants})));let l=s(i);return F(l,void 0,void 0,e)}catch{return""}};async function k(t,e,r){let n,i=null;if(r)try{i=JSON.parse(r),n=W(i)}catch{}let a=w(t,n);if(!i){if(0===a.length)return[];let t=await F(a,void 0,void 0,e);return t?[t]:[]}let l=O(i),o=new Map,s=new Map,f=(t,e)=>`${t}::${e}`;for(let t of Object.values(l)){if(t.type){let e=f(t.family,t.type),r=o.get(e);if(!r){o.set(e,new Set(t.variants));continue}t.variants.forEach(t=>r.add(t));continue}let e=s.get(t.family);if(!e){s.set(t.family,new Set(t.variants));continue}t.variants.forEach(t=>e.add(t))}if(0===(a=a.map(t=>{let e=o.get(f(t.family,t.type))||s.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 c=await F(a,void 0,void 0,e);return c?[c]:[]}let T=null;function I({fontFamily:t,fontStyle:e,fontWeight:r,src:n,fontDisplay:i}){let a=n.replace(/^"|"$/g,""),l=`@font-face {
2
- `;return l+=` font-family: '${t}';
3
- font-style: ${e};
4
- font-weight: ${r};
5
- `,i&&(l+=` font-display: ${i};
6
- `),l+=` src: ${a};
7
- }`}function M({variant:t}){let e=t.trim().toLowerCase();if("regular"===e||"400"===e)return{fontStyle:"normal",fontWeight:"400"};if("italic"===e)return{fontStyle:"italic",fontWeight:"400"};if("bold"===e||"700"===e)return{fontStyle:"normal",fontWeight:"700"};let r=e.endsWith("i")||e.endsWith("italic"),n=e.replace(/i(talic)?$/,"").trim()||"400";return{fontStyle:r?"italic":"normal",fontWeight:n}}async function _({fonts:t,sourceFont:e}){let n=t.filter(t=>!h.includes(t.family));if(!n.length)return"";let i="bunny"===e,s=i?null:function(){if(T)return T;for(let t of(T={},a.default.fonts)){let e=`${t.fontFamily}_${t.fontStyle}_${t.fontWeight}`.replace(/\s+/g,"");T[e]=t}return T}(),f=await Promise.all(n.map(async t=>{let n=[],i=[];for(let e of t.variants){if(s){let{fontStyle:r,fontWeight:i}=M({variant:e}),a=`${t.family}_${r}_${i}`.replace(/\s+/g,""),l=s[a];if(l){n.push(I(l));continue}}i.push(e)}if(i.length){let a=v([{...t,variants:i}],void 0,e),s=Array.isArray(a)?a:a?[a]:[],f=await Promise.all(s.map(t=>o(t,l)));for(let e=0;e<f.length;e++){let a=f[e];a?n.push(a):r.sentryCaptureException("resolveFontFaces","API fallback returned empty CSS",{family:t.family,variants:i,url:s[e]})}}return n.length?n.join("\n"):""}));return f.filter(Boolean).join("\n")}async function A({data:t,sourceFont:e}){if(!t)return"";try{let r="string"==typeof t?JSON.parse(t):t,n=r?.font??{},i=Object.values(n),a=O(r);return Object.keys(a).length>0&&(i=Object.entries(n).filter(([t])=>a[t]).map(([t,e])=>Object.assign({},e,{variants:a[t].variants}))),_({fonts:s(i),sourceFont:e})}catch{return""}}async function N({pageTemplate:t,sourceFont:e,data:r}){let n,i=null;if(r)try{i="string"==typeof r?JSON.parse(r):r,n=W(i)}catch{}let a=w(t,n);if(!i){if(!a.length)return[];let t=await _({fonts:a,sourceFont:e});return t?[t]:[]}let l=O(i),o=new Map,s=new Map,f=(t,e)=>`${t}::${e}`;for(let t of Object.values(l))if(t.type){let e=f(t.family,t.type),r=o.get(e);r?t.variants.forEach(t=>r.add(t)):o.set(e,new Set(t.variants))}else{let e=s.get(t.family);e?t.variants.forEach(t=>e.add(t)):s.set(t.family,new Set(t.variants))}if(!(a=a.map(t=>{let e=o.get(f(t.family,t.type))||s.get(t.family);if(!e)return t;let r=t.variants.filter(t=>!e.has(t));return r.length?Object.assign({},t,{variants:r}):null}).filter(t=>null!==t)).length)return[];let c=await _({fonts:a,sourceFont:e});return c?[c]:[]}exports.composeFonts=s,exports.createFontUrls=v,exports.extractTypographyVariants=O,exports.getFontFromGlobalStyle=(t,e)=>{if(!t)return"";try{let r=JSON.parse(t),n=r?.font??{},i=Object.entries(n).map(([,t])=>t);return F(i,void 0,void 0,e)}catch{return""}},exports.getFontLinkFromGlobalStyle=C,exports.getFontStyleFromPageTemplate=k,exports.getFonts=F,exports.getStaticFontFacesFromGlobalStyle=A,exports.getStaticFontFacesFromPageTemplate=N,exports.mapTypographyToFontFamily=W,exports.parseVariant=M,exports.staticFontToCSS=I;
1
+ "use strict";var t=require("./helpers/check-option-font.js"),e=require("./helpers/sentry.js"),r=require("./constants/theme-font-keys.js"),n=require("../constants/googleFontV1.js");async function o(t,r){try{return fetch(t,{headers:{"User-Agent":r}}).then(n=>200===n.status?n.text():(e.sentryCaptureException("getFontForUA",`Unexpected status ${n.status}`,{url:t,UA:r}),""))}catch(n){return e.sentryCaptureException("getFontForUA","Error fetching font",{url:t,UA:r,error:n}),""}}const i=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}})},l={"Roboto Flex":"https://fonts.googleapis.com/css2?family=Roboto+Flex:opsz,wght@8..144,100..1000&display=swap"},s=t=>t?.trim().replace(/\s+/g,"+")??"",a=t=>t.includes("fonts.googleapis.com/css2")?"css2":t.includes("fonts.bunny.net")?"bunny":"css1",c=t=>{let e=s(t);return l[t]??l[e]},f={regular:"400",normal:"400",bold:"700",italic:"400italic"},p=new Set(n.googleFontFamilies),u=[...r.THEME_FONT_CSS_KEYS,...r.THEME_FONT_CSS_KEYS.map(t=>`--g-${t}`)],y=(e,r,n)=>{if(("google"===r||"google"===e.type)&&!p.has(e.family))return!1;let o="google"===e.type||"bunny"===e.type,i="theme"===e.type&&n,l=t.checkNotInOptionFont(e.family,r);return!(o&&l)&&(o||!e.type||i)},g=t=>{let e=String(t).toLowerCase().trim();return f[e]??t},h=t=>{let e=t=>{let e=String(t).toLowerCase().trim(),r=e.includes("italic"),n=e.replace("italic","").trim(),o=f[n]??n,i=parseInt(o,10)||400;return{weight:i,isItalic:r}};return[...t].sort((t,r)=>{let n=e(t),o=e(r);return n.weight!==o.weight?n.weight-o.weight:n.isItalic!==o.isItalic?n.isItalic?1:-1:0})},d=(t,e,r)=>{let n=i(t).map(t=>{let e=t.variants.map(t=>g(t)),r=h(e);return`${t.family.replace(/ /g,"+")}:${r.join(",")}`}).join("|");if("sans-serif"===n)return;let o=new URLSearchParams;return(o.append("family",n),o.append("display",r?.display||"swap"),"bunny"===e)?`https://fonts.bunny.net/css?${decodeURIComponent(o.toString())}`:(r?.subset&&o.append("subset",r.subset),r?.effect&&o.append("effect",r.effect),`https://fonts.googleapis.com/css?${decodeURIComponent(o.toString())}`)},m=(t,e,r,n)=>{let o=t.filter(t=>y(t,r||"google",n));if(!o.length)return;let i=o.filter((t,e,r)=>e===r.findIndex(e=>e.family===t.family)),l=[],s=[];for(let t of i){let e=c(t.family);e&&"bunny"!==r?l.push(e):s.push(t)}let a=s.length?d(s,r||"google",e):void 0;return l.length&&a?[...l,a]:a?[a,...l]:l};async function b(t,r,n=!0,i){let l=t.filter(t=>!u.includes(t.family)),s=m(l,r,i),c=Array.isArray(s)?s:s?[s]:[];if(!c.length)return"";if(n)return c.map(t=>`@import url('${t}');`).join("");let f="",p="";for(let t of c)try{let[e,r]=await Promise.all([o(t,"Mozilla/5.0 (Windows NT 10.0; Trident/7.0; rv:11.0) like Gecko"),o(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")]),n=`${e}${r}`;f+=n,p+=`@import url('${t}');`}catch(n){let r=a(t);e.sentryCaptureException("getFonts",`Error fetching font ${r}`,{url:t,fontType:i,fontApiVersion:r,error:String(n)}),p+="",f+=""}let y=new TextEncoder().encode(f).length;return y<51200?f:p}const S=(t,e)=>{let r="400";if(null!=t){let e=String(t).toLowerCase().trim();r=g(e)}let n=r,o=e&&"italic"===e.toLowerCase();return o&&!r.includes("italic")&&(n=r.includes("i")?r:`${r}italic`),n},F=t=>{let e=t?.typography??{},r=t?.font??{},n=new Map;Object.entries(e).forEach(([t,e])=>{if(!e||"object"!=typeof e)return;let o=t.startsWith("heading-")||t.startsWith("subheading-")?r.heading?"heading":void 0:t.startsWith("paragraph-")&&r.body?"body":void 0,i=e.desktop,l=i?.fontFamily,s=l||o;["desktop","mobile","tablet"].forEach(t=>{let o=e[t];if(!o||"object"!=typeof o)return;let l=o.fontFamily||s;if(!l||"string"!=typeof l||!r[l])return;let a=o.fontWeight??i?.fontWeight,c=o.fontStyle??i?.fontStyle;if(null==a)return;let f=S(a,c);n.has(l)||n.set(l,new Set),n.get(l).add(f)})});let o={};return n.forEach((t,e)=>{let n=r[e];n&&(o[e]={variants:Array.from(t).sort(),family:n.family,type:n.type})}),o},w=async(t,e)=>{if(!t)return"";try{let r=JSON.parse(t),n=r?.font??{},o=Object.values(n),l=F(r);Object.keys(l).length>0&&(o=Object.entries(n).filter(([t])=>l[t]).map(([t,e])=>({...e,variants:l[t].variants})));let s=i(o);return b(s,void 0,void 0,e)}catch{return""}};exports.composeFonts=i,exports.createFontUrls=m,exports.extractTypographyVariants=F,exports.getFontFromGlobalStyle=(t,e)=>{if(!t)return"";try{let r=JSON.parse(t),n=r?.font??{},o=Object.entries(n).map(([,t])=>t);return b(o,void 0,void 0,e)}catch{return""}},exports.getFontLinkFromGlobalStyle=w,exports.getFonts=b;
@@ -1 +1 @@
1
- "use strict";const e=e=>{let t={};return!function e(t,r={}){if(t){let{childrens:i,dateModified:o,editorConfigs:n,...a}=t;if("section"===a.type)r[a.uid]=a;else{let t=i?.map(e=>e?.uid)??[];r[a.uid]={...a,childrens:t},i&&i.map(t=>e(t,r))}}}(e,t),{...t}},t=(e,t)=>{let r=t?.filter(t=>e?.some(e=>e?.id===t)),i=r?.map(t=>e?.find(e=>e?.id===t))??[],o=e?.filter(e=>(!e?.id||!r?.includes(e.id))&&!e?.deletedAt)??[];return i.concat(o)};function r(r,i){let o=t(r,i),n=o.map(e=>{if(!e?.component)return!1;try{let t=JSON.parse(e.component);return t}catch{return!1}}).filter(Boolean);return n.map(t=>({uid:t.uid,lazy:!!t.settings?.lazy,priority:!!t.settings?.priority,data:e(t)}))}exports.extractPageBackground=e=>{try{let t=e?.metafields?.find(e=>e?.key==="page_background")?.value;return JSON.parse(t??"{}")}catch{return{}}},exports.normalizeBuilderData=e,exports.normalizePageSectionResponseV2=r,exports.parseBuilderLibraryTemplate=e=>r([...e?.sections??[]],e?.sectionPosition),exports.parseBuilderTemplate=r=>(function(r,i){let o=t(r,i),n=o.map(e=>{if(!e?.component)return!1;try{let t=JSON.parse(e.component);return t}catch{return!1}}).filter(Boolean);return e({uid:"ROOT",tag:"Root",childrens:n})})([...r?.pageSections??[],...r?.themePageCustomSections??[]],r?.sectionPosition),exports.parseBuilderTemplateV2=e=>r([...e?.pageSections??[],...e?.themePageCustomSections??[],...e?.themeSections??[]],e?.sectionPosition),exports.parseShopLibraryPageTemplate=e=>r([...e?.shopLibrarySections??[]],e?.sectionPosition);
1
+ "use strict";const e=e=>{let t={};return!function e(t,i={}){if(t){let{childrens:n,dateModified:r,editorConfigs:o,...s}=t;if("section"===s.type)i[s.uid]=s;else{let t=n?.map(e=>e?.uid)??[];i[s.uid]={...s,childrens:t},n&&n.map(t=>e(t,i))}}}(e,t),{...t}},t=(e,t)=>{let i=t?.filter(t=>e?.some(e=>e?.id===t)),n=i?.map(t=>e?.find(e=>e?.id===t))??[],r=e?.filter(e=>(!e?.id||!i?.includes(e.id))&&!e?.deletedAt)??[];return n.concat(r)};function i(i,n){let r=t(i,n),o=r.map(e=>{if(!e?.component)return!1;try{let t=JSON.parse(e.component);return t}catch{return!1}}).filter(Boolean);return o.map(t=>({uid:t.uid,lazy:!!t.settings?.lazy,priority:!!t.settings?.priority,data:e(t)}))}exports.normalizeBuilderData=e,exports.normalizePageSectionResponseV2=i,exports.parseBuilderTemplateV2=e=>i([...e?.pageSections??[],...e?.themePageCustomSections??[],...e?.themeSections??[]],e?.sectionPosition);
@@ -1 +1 @@
1
- "use strict";exports.parseJson=r=>{if(!r)return null;try{return JSON.parse(r)}catch(r){return null}},exports.serializableJson=r=>JSON.parse(JSON.stringify(r));
1
+ "use strict";exports.parseJson=r=>{if(!r)return null;try{return JSON.parse(r)}catch(r){return null}};
@@ -1,5 +1,5 @@
1
- "use strict";var e=require("react/jsx-runtime"),s=require("@gem-sdk/core"),t=require("next-seo"),r=require("next/head"),a=require("next/router"),n=require("../libs/parse-html.js"),i=require("../components/builder/Header.js"),l=require("../components/FooterForPostPurchase.js"),o=require("next/script"),d=require("react"),c=require("../libs/hooks/usePageViewedTracking.js");exports.StaticPageV2=({components:g,builderData:u,sectionData:p,seo:m,themeStyle:h,fontStyle:x,elementFontStyle:j,customCodeHeader:f,customFonts:y,isPostPurchase:_,shopName:v,productOffers:P,publicStoreFrontData:b,dynamicDiscountOffer:S,isPreview:q,interaction:k,pageBackground:N,sellingPlanSetting:T,buyerConsentPreCheck:H,id:I,shopID:E,domainTrackingIlp:L,disableGsFont:M})=>{let $=a.useRouter(),{t:w}=s.useI18n(),F=process.env.NEXT_GP_BASE_ASSET_URL||"https://assets.gemcommerce.xyz";c.usePageViewedTracking({id:I,shopID:E,domain:L});let A="custom-code-header";if(d.useEffect(()=>{let e=document.querySelectorAll(`[class*="${A}-"]`),s=[];e.length>1&&e.forEach(e=>{let t=e.className;if(s.includes(t)){e.remove();return}s.push(t)})},[]),$.isFallback)return e.jsx("div",{className:"gp-flex gp-h-[100vh] gp-items-center gp-justify-center",children:e.jsxs("div",{className:"gp-flex gp-gap-2",children:[e.jsx("span",{className:"gp-aspect-square gp-h-2 gp-animate-[flashing_500ms_infinite_alternate] gp-rounded-full gp-bg-slate-800"}),e.jsx("span",{className:"gp-aspect-square gp-h-2 gp-animate-[flashing_500ms_infinite_200ms_linear_alternate] gp-rounded-full gp-bg-slate-800"}),e.jsx("span",{className:"gp-aspect-square gp-h-2 gp-animate-[flashing_500ms_infinite_500ms_alternate] gp-rounded-full gp-bg-slate-800"})]})});let B=(k?.value||[]).length>0;return e.jsxs(e.Fragment,{children:[e.jsx(t.NextSeo,{...m}),e.jsxs(r,{children:[n.parseHtml(A,f,!0),h&&e.jsx("style",{"data-id":"global-style",type:"text/css",dangerouslySetInnerHTML:{__html:h}},"global-style"),x&&!M&&e.jsx("style",{"data-id":"google-fonts",type:"text/css",dangerouslySetInnerHTML:{__html:x}},"google-fonts"),j&&j.map(s=>e.jsx("style",{"data-id":"google-element-fonts",type:"text/css",dangerouslySetInnerHTML:{__html:s}},s)),y&&e.jsx("style",{"data-id":"custom-element-fonts",type:"text/css",dangerouslySetInnerHTML:{__html:y}},x),N?.isUsePageBackground&&N?.background&&e.jsx("style",{children:`
1
+ "use strict";var e=require("react/jsx-runtime"),s=require("@gem-sdk/core"),t=require("next-seo"),r=require("next/head"),a=require("next/router"),n=require("../libs/parse-html.js"),i=require("../components/builder/Header.js"),l=require("../components/FooterForPostPurchase.js"),o=require("next/script"),d=require("react"),c=require("../libs/hooks/usePageViewedTracking.js");exports.StaticPageV2=({components:g,builderData:u,sectionData:p,seo:m,themeStyle:h,fontStyle:x,elementFontStyle:j,customCodeHeader:f,customFonts:y,isPostPurchase:_,shopName:v,productOffers:P,publicStoreFrontData:b,dynamicDiscountOffer:S,isPreview:q,interaction:k,pageBackground:N,sellingPlanSetting:T,buyerConsentPreCheck:I,id:H,shopID:E,domainTrackingIlp:L,disableGsFont:M})=>{let $=a.useRouter(),{t:w}=s.useI18n(),F=process.env.NEXT_GP_BASE_ASSET_URL||"https://assets.gemcommerce.xyz";c.usePageViewedTracking({id:H,shopID:E,domain:L});let A="custom-code-header";if(d.useEffect(()=>{let e=document.querySelectorAll(`[class*="${A}-"]`),s=[];e.length>1&&e.forEach(e=>{let t=e.className;if(s.includes(t)){e.remove();return}s.push(t)})},[]),$.isFallback)return e.jsx("div",{className:"gp-flex gp-h-[100vh] gp-items-center gp-justify-center",children:e.jsxs("div",{className:"gp-flex gp-gap-2",children:[e.jsx("span",{className:"gp-aspect-square gp-h-2 gp-animate-[flashing_500ms_infinite_alternate] gp-rounded-full gp-bg-slate-800"}),e.jsx("span",{className:"gp-aspect-square gp-h-2 gp-animate-[flashing_500ms_infinite_200ms_linear_alternate] gp-rounded-full gp-bg-slate-800"}),e.jsx("span",{className:"gp-aspect-square gp-h-2 gp-animate-[flashing_500ms_infinite_500ms_alternate] gp-rounded-full gp-bg-slate-800"})]})});let B=(k?.value||[]).length>0;return e.jsxs(e.Fragment,{children:[e.jsx(t.NextSeo,{...m}),e.jsxs(r,{children:[n.parseHtml(A,f,!0),h&&e.jsx("style",{"data-id":"global-style",type:"text/css",dangerouslySetInnerHTML:{__html:h}},"global-style"),x&&!M&&e.jsx("style",{"data-id":"google-fonts",type:"text/css",dangerouslySetInnerHTML:{__html:x}},"google-fonts"),j&&j.map(s=>e.jsx("style",{"data-id":"google-element-fonts",type:"text/css",dangerouslySetInnerHTML:{__html:s}},s)),y&&e.jsx("style",{"data-id":"custom-element-fonts",type:"text/css",dangerouslySetInnerHTML:{__html:y}},x),N?.isUsePageBackground&&N?.background&&e.jsx("style",{children:`
2
2
  body {
3
3
  background: ${N.background};
4
4
  }
5
- `},`page_background_${N?.background}`)]}),e.jsx(s.PageProvider,{productOffers:P,publicStoreFrontData:b,dynamicDiscountOffer:S,sellingPlanMeta:T,buyerConsentChecked:H,children:e.jsx(s.BuilderComponentProvider,{components:g,children:e.jsx(s.I18nProvider,{t:w,children:e.jsxs("div",{className:`${_?"gp-bg-white post-purchase-page":""} `,role:"main",children:[_&&e.jsx(i.default,{pageType:"POST_PURCHASE"}),B&&e.jsx("div",{dangerouslySetInnerHTML:{__html:`<div id="gp-interaction" style="display: none;">${JSON.stringify(k?.value||[])}</div>`}}),e.jsx(s.SectionProvider,{data:p,children:u?.map(t=>e.jsxs(s.BuilderProvider,{state:t.data,lazy:t.lazy,priority:t.priority,isPostPurchase:_,isPreview:q,children:[e.jsx(s.Render,{uid:t.uid}),B&&e.jsx(o,{defer:!0,src:`${F}/assets-v2/gp-flow-action-lip-v7-5.js`})]},t.uid))}),_&&e.jsx(l.default,{shopName:v||""})]})})})})]})};
5
+ `},`page_background_${N?.background}`)]}),e.jsx(s.PageProvider,{productOffers:P,publicStoreFrontData:b,dynamicDiscountOffer:S,sellingPlanMeta:T,buyerConsentChecked:I,children:e.jsx(s.BuilderComponentProvider,{components:g,children:e.jsx(s.I18nProvider,{t:w,children:e.jsxs("div",{className:`${_?"gp-bg-white post-purchase-page":""} `,role:"main",children:[_&&e.jsx(i.default,{pageType:"POST_PURCHASE"}),B&&e.jsx("div",{dangerouslySetInnerHTML:{__html:`<div id="gp-interaction" style="display: none;">${JSON.stringify(k?.value||[])}</div>`}}),e.jsx(s.SectionProvider,{data:p,children:u?.map((t,r)=>e.jsxs(s.BuilderProvider,{state:t.data,lazy:t.lazy,priority:t.priority,sectionIndex:r,isPostPurchase:_,isPreview:q,children:[e.jsx(s.Render,{uid:t.uid}),B&&e.jsx(o,{defer:!0,src:`${F}/assets-v2/gp-flow-action-lip-v7-5.js`})]},t.uid))}),_&&e.jsx(l.default,{shopName:v||""})]})})})})]})};