@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.
- package/dist/cjs/index.js +1 -1
- package/dist/cjs/libs/google-fonts.js +1 -7
- package/dist/cjs/libs/helpers/normalize.js +1 -1
- package/dist/cjs/libs/helpers/parse-json.js +1 -1
- package/dist/cjs/pages/static-v2.js +2 -2
- package/dist/cjs/server.js +14 -0
- package/dist/esm/index.js +1 -1
- package/dist/esm/libs/google-fonts.js +1 -7
- package/dist/esm/libs/helpers/normalize.js +1 -1
- package/dist/esm/libs/helpers/parse-json.js +1 -1
- package/dist/esm/pages/static-v2.js +2 -2
- package/dist/esm/server.js +14 -0
- package/dist/types/index.d.ts +90 -125
- package/dist/types/server.d.ts +156 -0
- package/package.json +18 -6
- package/dist/cjs/libs/api/get-builder-props.js +0 -1
- package/dist/cjs/libs/api/get-collection-props.js +0 -1
- package/dist/cjs/libs/api/get-collection-share-page-props.js +0 -1
- package/dist/cjs/libs/api/get-home-page-props-v2.js +0 -1
- package/dist/cjs/libs/api/get-home-page-props.js +0 -1
- package/dist/cjs/libs/api/get-post-purchase-props-preview.js +0 -1
- package/dist/cjs/libs/api/get-preview-content-props.js +0 -1
- package/dist/cjs/libs/api/get-preview-props.js +0 -1
- package/dist/cjs/libs/api/get-product-props.js +0 -1
- package/dist/cjs/libs/api/get-share-page-props.js +0 -1
- package/dist/cjs/libs/api/get-static-page-props-preview.js +0 -1
- package/dist/cjs/libs/api/get-static-page-props-v2.js +0 -1
- package/dist/cjs/libs/api/get-static-page-props.js +0 -1
- package/dist/cjs/libs/custom-fonts.js +0 -8
- package/dist/cjs/libs/data/fonts.js +0 -1
- package/dist/cjs/libs/getStaticPaths.js +0 -1
- package/dist/cjs/libs/helpers/gen-favicon.js +0 -1
- package/dist/cjs/libs/helpers/generate-seo-links.js +0 -1
- package/dist/cjs/libs/helpers/get-metafield.js +0 -1
- package/dist/esm/libs/api/get-builder-props.js +0 -1
- package/dist/esm/libs/api/get-collection-props.js +0 -1
- package/dist/esm/libs/api/get-collection-share-page-props.js +0 -1
- package/dist/esm/libs/api/get-home-page-props-v2.js +0 -1
- package/dist/esm/libs/api/get-home-page-props.js +0 -1
- package/dist/esm/libs/api/get-post-purchase-props-preview.js +0 -1
- package/dist/esm/libs/api/get-preview-content-props.js +0 -1
- package/dist/esm/libs/api/get-preview-props.js +0 -1
- package/dist/esm/libs/api/get-product-props.js +0 -1
- package/dist/esm/libs/api/get-share-page-props.js +0 -1
- package/dist/esm/libs/api/get-static-page-props-preview.js +0 -1
- package/dist/esm/libs/api/get-static-page-props-v2.js +0 -1
- package/dist/esm/libs/api/get-static-page-props.js +0 -1
- package/dist/esm/libs/custom-fonts.js +0 -8
- package/dist/esm/libs/data/fonts.js +0 -1
- package/dist/esm/libs/getStaticPaths.js +0 -1
- package/dist/esm/libs/helpers/gen-favicon.js +0 -1
- package/dist/esm/libs/helpers/generate-seo-links.js +0 -1
- package/dist/esm/libs/helpers/get-metafield.js +0 -1
package/dist/esm/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export{
|
|
1
|
+
export{createAppAPIFetcher,createFetcher,createShopifyFetcher,createTemplateFetcher}from"./libs/fetcher.js";export{getLayout}from"./libs/get-layout.js";export{genCSS}from"./libs/helpers/gen-css.js";export{sendPageViewedTracking}from"./libs/helpers/sendPageViewedTracking.js";export{usePagePreview}from"./libs/hooks/usePagePreview.js";export{usePageViewedTracking}from"./libs/hooks/usePageViewedTracking.js";export{isBot}from"./libs/helpers/user-agent.js";export{normalizePageSectionResponseV2,parseBuilderTemplateV2}from"./libs/helpers/normalize.js";export{getFallbackV2}from"./libs/helpers/get-fallback.js";export{retryWithDelay}from"./libs/helpers/common.js";export{SharePageTracking}from"./components/SharePageTracking.js";export{getFontFromGroupSetting,getFontsFromDataBuilder}from"./libs/helpers/gen-fonts.js";export{getFontFromGlobalStyle,getFontLinkFromGlobalStyle,getFonts}from"./libs/google-fonts.js";export{getStorefrontApi}from"./libs/get-storefront-api.js";export{ErrorBoundary}from"./components/ErrorBoundary.js";export{ErrorFallback}from"./components/ErrorFallback.js";export{Page404}from"./pages/404.js";export{Page500}from"./pages/500.js";export{GoogleAnalytic}from"./components/GoogleAnalytic.js";export{FacebookPixel}from"./components/FacebookPixel.js";export{TikTokPixel}from"./components/TikTokPixel.js";export{default as CollectionDetailPage}from"./pages/collection-detail.js";export{PreviewPage}from"./pages/preview.js";export{default as ProductDetailPage}from"./pages/product-detail.js";export{default as StaticPage}from"./pages/static.js";export{BuilderPage}from"./pages/builder.js";export{BuilderUpsellPage}from"./pages/builder-upsell.js";export{StaticPageV2}from"./pages/static-v2.js";export{PreviewTemplate}from"./pages/preview-template.js";
|
|
@@ -1,7 +1 @@
|
|
|
1
|
-
import{checkNotInOptionFont as t}from"./helpers/check-option-font.js";import{
|
|
2
|
-
`;return l+=` font-family: '${t}';
|
|
3
|
-
font-style: ${e};
|
|
4
|
-
font-weight: ${n};
|
|
5
|
-
`,i&&(l+=` font-display: ${i};
|
|
6
|
-
`),l+=` src: ${a};
|
|
7
|
-
}`}function T({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 n=e.endsWith("i")||e.endsWith("italic"),r=e.replace(/i(talic)?$/,"").trim()||"400";return{fontStyle:n?"italic":"normal",fontWeight:r}}async function L({fonts:t,sourceFont:e}){let r=t.filter(t=>!m.includes(t.family));if(!r.length)return"";let i="bunny"===e,s=i?null:function(){if(C)return C;for(let t of(C={},a.fonts)){let e=`${t.fontFamily}_${t.fontStyle}_${t.fontWeight}`.replace(/\s+/g,"");C[e]=t}return C}(),f=await Promise.all(r.map(async t=>{let r=[],i=[];for(let e of t.variants){if(s){let{fontStyle:n,fontWeight:i}=T({variant:e}),a=`${t.family}_${n}_${i}`.replace(/\s+/g,""),l=s[a];if(l){r.push(M(l));continue}}i.push(e)}if(i.length){let a=S([{...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?r.push(a):n("resolveFontFaces","API fallback returned empty CSS",{family:t.family,variants:i,url:s[e]})}}return r.length?r.join("\n"):""}));return f.filter(Boolean).join("\n")}async function U({data:t,sourceFont:e}){if(!t)return"";try{let n="string"==typeof t?JSON.parse(t):t,r=n?.font??{},i=Object.values(r),a=k(n);return Object.keys(a).length>0&&(i=Object.entries(r).filter(([t])=>a[t]).map(([t,e])=>Object.assign({},e,{variants:a[t].variants}))),L({fonts:s(i),sourceFont:e})}catch{return""}}async function P({pageTemplate:t,sourceFont:e,data:n}){let r,i=null;if(n)try{i="string"==typeof n?JSON.parse(n):n,r=E(i)}catch{}let a=F(t,r);if(!i){if(!a.length)return[];let t=await L({fonts:a,sourceFont:e});return t?[t]:[]}let l=k(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),n=o.get(e);n?t.variants.forEach(t=>n.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 n=t.variants.filter(t=>!e.has(t));return n.length?Object.assign({},t,{variants:n}):null}).filter(t=>null!==t)).length)return[];let c=await L({fonts:a,sourceFont:e});return c?[c]:[]}export{s as composeFonts,S as createFontUrls,k as extractTypographyVariants,x as getFontFromGlobalStyle,I as getFontLinkFromGlobalStyle,A as getFontStyleFromPageTemplate,w as getFonts,U as getStaticFontFacesFromGlobalStyle,P as getStaticFontFacesFromPageTemplate,E as mapTypographyToFontFamily,T as parseVariant,M as staticFontToCSS};
|
|
1
|
+
import{checkNotInOptionFont as t}from"./helpers/check-option-font.js";import{sentryCaptureException as e}from"./helpers/sentry.js";import{THEME_FONT_CSS_KEYS as r}from"./constants/theme-font-keys.js";import{googleFontFamilies as n}from"../constants/googleFontV1.js";async function o(t,r){try{return fetch(t,{headers:{"User-Agent":r}}).then(n=>200===n.status?n.text():(e("getFontForUA",`Unexpected status ${n.status}`,{url:t,UA:r}),""))}catch(n){return e("getFontForUA","Error fetching font",{url:t,UA:r,error:n}),""}}let 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"},a=t=>t?.trim().replace(/\s+/g,"+")??"",s=t=>t.includes("fonts.googleapis.com/css2")?"css2":t.includes("fonts.bunny.net")?"bunny":"css1",f=t=>{let e=a(t);return l[t]??l[e]},c={regular:"400",normal:"400",bold:"700",italic:"400italic"},p=new Set(n),u=[...r,...r.map(t=>`--g-${t}`)],g=(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(e.family,r);return!(o&&l)&&(o||!e.type||i)},y=t=>{let e=String(t).toLowerCase().trim();return c[e]??t},m=t=>{let e=t=>{let e=String(t).toLowerCase().trim(),r=e.includes("italic"),n=e.replace("italic","").trim(),o=c[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})},h=(t,e,r)=>{let n=i(t).map(t=>{let e=t.variants.map(t=>y(t)),r=m(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())}`)},d=(t,e,r,n)=>{let o=t.filter(t=>g(t,r||"google",n));if(!o.length)return;let i=o.filter((t,e,r)=>e===r.findIndex(e=>e.family===t.family)),l=[],a=[];for(let t of i){let e=f(t.family);e&&"bunny"!==r?l.push(e):a.push(t)}let s=a.length?h(a,r||"google",e):void 0;return l.length&&s?[...l,s]:s?[s,...l]:l};async function b(t,r,n=!0,i){let l=t.filter(t=>!u.includes(t.family)),a=d(l,r,i),f=Array.isArray(a)?a:a?[a]:[];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,"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}`;c+=n,p+=`@import url('${t}');`}catch(n){let r=s(t);e("getFonts",`Error fetching font ${r}`,{url:t,fontType:i,fontApiVersion:r,error:String(n)}),p+="",c+=""}let g=new TextEncoder().encode(c).length;return g<51200?c:p}let w=(t,e)=>{let r="400";if(null!=t){let e=String(t).toLowerCase().trim();r=y(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,a=l||o;["desktop","mobile","tablet"].forEach(t=>{let o=e[t];if(!o||"object"!=typeof o)return;let l=o.fontFamily||a;if(!l||"string"!=typeof l||!r[l])return;let s=o.fontWeight??i?.fontWeight,f=o.fontStyle??i?.fontStyle;if(null==s)return;let c=w(s,f);n.has(l)||n.set(l,new Set),n.get(l).add(c)})});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},S=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 a=i(o);return b(a,void 0,void 0,e)}catch{return""}},j=(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""}};export{i as composeFonts,d as createFontUrls,F as extractTypographyVariants,j as getFontFromGlobalStyle,S as getFontLinkFromGlobalStyle,b as getFonts};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
let e=e=>{let t={};return!function e(t,i={}){if(t){let{childrens:
|
|
1
|
+
let e=e=>{let t={};return!function e(t,i={}){if(t){let{childrens:n,dateModified:r,editorConfigs:o,...l}=t;if("section"===l.type)i[l.uid]=l;else{let t=n?.map(e=>e?.uid)??[];i[l.uid]={...l,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)}))}let n=e=>i([...e?.pageSections??[],...e?.themePageCustomSections??[],...e?.themeSections??[]],e?.sectionPosition);export{e as normalizeBuilderData,i as normalizePageSectionResponseV2,n as parseBuilderTemplateV2};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
let r=r=>{if(!r)return null;try{return JSON.parse(r)}catch(r){return null}}
|
|
1
|
+
let r=r=>{if(!r)return null;try{return JSON.parse(r)}catch(r){return null}};export{r as parseJson};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import{jsx as e,jsxs as t,Fragment as s}from"react/jsx-runtime";import{useI18n as a,PageProvider as r,BuilderComponentProvider as n,I18nProvider as l,SectionProvider as o,BuilderProvider as i,Render as p}from"@gem-sdk/core";import{NextSeo as c}from"next-seo";import d from"next/head";import{useRouter as g}from"next/router";import{parseHtml as m}from"../libs/parse-html.js";import u from"../components/builder/Header.js";import h from"../components/FooterForPostPurchase.js";import f from"next/script";import{useEffect as y}from"react";import{usePageViewedTracking as _}from"../libs/hooks/usePageViewedTracking.js";let b=({components:b,builderData:v,sectionData:
|
|
1
|
+
import{jsx as e,jsxs as t,Fragment as s}from"react/jsx-runtime";import{useI18n as a,PageProvider as r,BuilderComponentProvider as n,I18nProvider as l,SectionProvider as o,BuilderProvider as i,Render as p}from"@gem-sdk/core";import{NextSeo as c}from"next-seo";import d from"next/head";import{useRouter as g}from"next/router";import{parseHtml as m}from"../libs/parse-html.js";import u from"../components/builder/Header.js";import h from"../components/FooterForPostPurchase.js";import f from"next/script";import{useEffect as y}from"react";import{usePageViewedTracking as _}from"../libs/hooks/usePageViewedTracking.js";let b=({components:b,builderData:v,sectionData:x,seo:S,themeStyle:P,fontStyle:k,elementFontStyle:N,customCodeHeader:T,customFonts:j,isPostPurchase:H,shopName:I,productOffers:L,publicStoreFrontData:M,dynamicDiscountOffer:$,isPreview:E,interaction:q,pageBackground:w,sellingPlanSetting:A,buyerConsentPreCheck:F,id:O,shopID:z,domainTrackingIlp:C,disableGsFont:D})=>{let U=g(),{t:B}=a(),R=process.env.NEXT_GP_BASE_ASSET_URL||"https://assets.gemcommerce.xyz";_({id:O,shopID:z,domain:C});let V="custom-code-header";if(y(()=>{let e=document.querySelectorAll(`[class*="${V}-"]`),t=[];e.length>1&&e.forEach(e=>{let s=e.className;if(t.includes(s)){e.remove();return}t.push(s)})},[]),U.isFallback)return e("div",{className:"gp-flex gp-h-[100vh] gp-items-center gp-justify-center",children:t("div",{className:"gp-flex gp-gap-2",children:[e("span",{className:"gp-aspect-square gp-h-2 gp-animate-[flashing_500ms_infinite_alternate] gp-rounded-full gp-bg-slate-800"}),e("span",{className:"gp-aspect-square gp-h-2 gp-animate-[flashing_500ms_infinite_200ms_linear_alternate] gp-rounded-full gp-bg-slate-800"}),e("span",{className:"gp-aspect-square gp-h-2 gp-animate-[flashing_500ms_infinite_500ms_alternate] gp-rounded-full gp-bg-slate-800"})]})});let G=(q?.value||[]).length>0;return t(s,{children:[e(c,{...S}),t(d,{children:[m(V,T,!0),P&&e("style",{"data-id":"global-style",type:"text/css",dangerouslySetInnerHTML:{__html:P}},"global-style"),k&&!D&&e("style",{"data-id":"google-fonts",type:"text/css",dangerouslySetInnerHTML:{__html:k}},"google-fonts"),N&&N.map(t=>e("style",{"data-id":"google-element-fonts",type:"text/css",dangerouslySetInnerHTML:{__html:t}},t)),j&&e("style",{"data-id":"custom-element-fonts",type:"text/css",dangerouslySetInnerHTML:{__html:j}},k),w?.isUsePageBackground&&w?.background&&e("style",{children:`
|
|
2
2
|
body {
|
|
3
3
|
background: ${w.background};
|
|
4
4
|
}
|
|
5
|
-
`},`page_background_${w?.background}`)]}),e(r,{productOffers:L,publicStoreFrontData:M,dynamicDiscountOffer:$,sellingPlanMeta:A,buyerConsentChecked:F,children:e(n,{components:b,children:e(l,{t:B,children:t("div",{className:`${H?"gp-bg-white post-purchase-page":""} `,role:"main",children:[H&&e(u,{pageType:"POST_PURCHASE"}),G&&e("div",{dangerouslySetInnerHTML:{__html:`<div id="gp-interaction" style="display: none;">${JSON.stringify(q?.value||[])}</div>`}}),e(o,{data:
|
|
5
|
+
`},`page_background_${w?.background}`)]}),e(r,{productOffers:L,publicStoreFrontData:M,dynamicDiscountOffer:$,sellingPlanMeta:A,buyerConsentChecked:F,children:e(n,{components:b,children:e(l,{t:B,children:t("div",{className:`${H?"gp-bg-white post-purchase-page":""} `,role:"main",children:[H&&e(u,{pageType:"POST_PURCHASE"}),G&&e("div",{dangerouslySetInnerHTML:{__html:`<div id="gp-interaction" style="display: none;">${JSON.stringify(q?.value||[])}</div>`}}),e(o,{data:x,children:v?.map((s,a)=>t(i,{state:s.data,lazy:s.lazy,priority:s.priority,sectionIndex:a,isPostPurchase:H,isPreview:E,children:[e(p,{uid:s.uid}),G&&e(f,{defer:!0,src:`${R}/assets-v2/gp-flow-action-lip-v7-5.js`})]},s.uid))}),H&&e(h,{shopName:I||""})]})})})})]})};export{b as StaticPageV2};
|