@swell/apps-sdk 1.0.105 → 1.0.106
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/index.cjs +1 -1
- package/dist/index.cjs.map +3 -3
- package/dist/index.js +1 -1
- package/dist/index.js.map +3 -3
- package/dist/index.mjs +1 -1
- package/dist/index.mjs.map +3 -3
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -945,6 +945,6 @@ Shopify.routes = Shopify.routes || {};
|
|
|
945
945
|
Shopify.routes.root = "/";
|
|
946
946
|
${o.join(`
|
|
947
947
|
`)}<\/script>`}getMenuData(e){return Xe(this,e)}getFontData(e){return e5(this,e)}getFormData(e){return t5(this,e)}getFontFromShopifySetting(e){return F2(e)}getThemeConfig(e){return x2(e)}getPresetsConfig(e){return j2(e)}getEditorConfig(e){let{locale:t}=this.swell.getStorefrontLocalization();return D2(e,t)}getSectionConfigSchema(e){let{locale:t}=this.swell.getStorefrontLocalization();return Z2(e,t)}async getLocaleConfig(e,t="en",i=".json"){let r=await e.getThemeConfigsByPath("theme/locales/",i),o=r.get(`theme/locales/${t}${i}`)??null;if(!o){let a=t.split("-")[0];if(o=r.get(`theme/locales/${a}${i}`)??null,!o){let s=`.default${i}`;for(let l of r.values())if(l?.file_path?.endsWith(s)){o=l;break}}}if(o){o=await e.getThemeConfig(o.file_path);try{return JSON.parse(o?.file_data||"")}catch{}}return{}}async getEditorLocaleConfig(e,t){if(this.editorLocaleConfig?.[t])return this.editorLocaleConfig[t];let i=await this.getLocaleConfig(e,t,".schema.json");return this.editorLocaleConfig={[t]:i},i}async renderSchemaTranslations(e,t,i="en"){if(!(0,w4.isObject)(t))return t;let r=await this.getEditorLocaleConfig(e,i);return this.renderSchemaTranslationValue(e,t,i,r)}async renderSchemaTranslationValue(e,t,i,r){switch(typeof t){case"string":{if(t.startsWith("t:")){let o=t.slice(2),a=o?.split("."),s=a.pop()||"",l=a.join(".");return(0,w4.get)(r,l)?.[s]??o}break}case"object":{if(Array.isArray(t)){let o=[];for(let a of t)o.push(await this.renderSchemaTranslationValue(e,a,i,r));return o}if(t!==null){let o={...t};for(let[a,s]of Object.entries(t))o[a]=await this.renderSchemaTranslationValue(e,s,i,r);return o}break}default:break}return t}getPageType(e){return this.shopifyCompatibilityConfig?.page_types?.[e]||e}getPageRouteUrl(e){return this.theme.props.pages?.find(t=>t.id===e)?.url||e}getPageRoutes(){let e={account_addresses_url:this.getPageRouteUrl("account/addresses"),account_login_url:this.getPageRouteUrl("account/login"),account_logout_url:this.getPageRouteUrl("account/logout"),account_recover_url:this.getPageRouteUrl("account/recover"),account_register_url:this.getPageRouteUrl("account/signup"),account_url:this.getPageRouteUrl("account/index"),all_products_collection_url:this.getPageRouteUrl("products/index"),cart_add_url:this.getPageRouteUrl("cart/add"),cart_change_url:this.getPageRouteUrl("cart/change"),cart_clear_url:this.getPageRouteUrl("cart/clear"),cart_update_url:this.getPageRouteUrl("cart/update"),cart_url:this.getPageRouteUrl("cart/index"),collections_url:this.getPageRouteUrl("categories/index"),predictive_search_url:this.getPageRouteUrl("search/suggest"),product_recommendations_url:this.getPageRouteUrl("products/index"),root_url:this.getPageRouteUrl("index"),search_url:this.getPageRouteUrl("search")};if(this.shopifyCompatibilityConfig?.page_routes)for(let[t,i]of Object.entries(this.shopifyCompatibilityConfig.page_routes))i&&typeof i=="object"&&i.page_id?e[t]=this.getPageRouteUrl(i.page_id):typeof i=="string"&&(e[t]=i);return e}getLocalizationObject(e,t){return F3(this,e,t)}getAdaptedPageUrl(e){if(!e)return;let t,i,r={},[o,a]=e.split("?"),s=o.split("."),l=s[1]?s.pop():null,[,h,u,d]=s.join(".").split("/");switch(l==="js"&&(i="json"),h){case"account":switch(u){case"order":t="account/order",r.id=d;break;case"register":t="account/login";break;default:break}break;case"blog":u&&(t="blogs/category",r.category=u),d&&(t="blogs/blog",r.slug=d);break;case"collections":u?u==="all"?t="products/index":(t="categories/category",r.slug=u):t="categories/index";break;case"gift_card":u&&(t="gift-card",r.code=u);break}if(t){let m=this.getPageRouteUrl(t);if(m)return m.replace(/:(\w+)/g,(g,C)=>r[C])+(l?`.${l}`:"")+(a?`?${a}`:"")}else if(i)return o.replace(new RegExp(`.${l}$`),`.${i}`)+(a?`?${a}`:"")}getThemeFilePath(e,t){switch(e){case"assets":return`assets/${t}`;case"components":return`snippets/${t}`;case"config":return`config/${t}`;case"layouts":return`layout/${t}`;case"templates":return`templates/${this.getPageType(t)}`;case"sections":return`sections/${t}`;default:throw new Error(`Theme file type not supported: ${e}`)}}getPageResourceMap(){return this.shopifyCompatibilityConfig?.page_resources?this.shopifyCompatibilityConfig.page_resources.reduce((e,t)=>e.set(t.page,{page:t.page,resources:t.resources.map(({from:i,to:r,object:o})=>{let a=f4[o];if(!a)throw new Error(`ShopifyObject for '${o}' not found.`);return{from:i,to:r,object:a}})}),new Map):new Map}getObjectResourceMap(){return this.shopifyCompatibilityConfig?.object_resources?this.shopifyCompatibilityConfig.object_resources.reduce((e,t)=>{let i=f4[t.object];if(!i)throw new Error(`ShopifyObject for '${t.object}' not found.`);return e.set(t.from,{from:t.from,object:i})},new Map):new Map}getFormResourceMap(){return this.shopifyCompatibilityConfig?.forms?this.shopifyCompatibilityConfig.forms.map(e=>({shopifyType:e.shopify_type,type:e.id})):[]}getQueryParamsMap(){return[{from:"sort_by",to:"sort"},{from(e){return e.startsWith("filter.v.")},to(e,t){let i=e.split("filter.v.")[1],r=t;return{[i]:r}}}]}getAllCountryOptionTags(e){return e?e.countries?.map(t=>{if(!t)return"";let i=(e.states||[]).filter(o=>o.country===t.id).map(o=>[o.id,o.name]),r=JSON.stringify(i).replace(/"/g,""");return`<option value="${t.id}" data-provinces="${r}">${t.name}</option>`}).filter(Boolean).join(`
|
|
948
|
-
`):""}isScriptFormActionUrl(e){if(!e)return!1;let t=this.shopifyCompatibilityConfig?.editor_configs?.script_actions_routes||{};for(let i of Object.values(t))if(e===i)return!0;return!1}isScriptUrl(e){if(!e)return!1;let t=this.shopifyCompatibilityConfig?.editor_configs?.script_routes||{};for(let i of Object.values(t))if(e.startsWith(i))return!0;return!1}needRedirectToPageStart(e){return e?(this.shopifyCompatibilityConfig?.editor_configs?.redirect_to_page_start_forms||[]).includes(e):!1}isCheckoutForm(e){return e?this.shopifyCompatibilityConfig?.editor_configs?.checkout_form===e:!1}};var y=class n{props;stringProp;linkProps;constructor(e,t,i){return this.props=e,this.stringProp=t,this.linkProps=i,new Proxy(e,{get(r,o){let a=r;switch(o){case"toJSON":return e;case"clone":return()=>new n((0,k3.cloneDeep)(e),(0,k3.cloneDeep)(t),(0,k3.cloneDeep)(i));case"toString":{if(t)return()=>e[t];break}default:break}return a[o]instanceof d3?a[o].resolve().then(s=>(a[o]=s,s),s=>(console.log(s),a[o]=null,null)):a[o]},getPrototypeOf(){return n.prototype}})}valueOf(){return this.stringProp?this.props[this.stringProp]:this}clone(){return new n({})}},d3=class{handler;result;constructor(e){this.result=void 0,this.handler=e}async resolve(){return this.result===void 0&&(this.result=Promise.resolve().then(()=>{let e=this.handler();return this.handler=k3.noop,e}).then(e=>(e=e!==void 0?e:null,this.result=e,e))),this.result}};function w(n){return new d3(n)}function s6(n){return D(n)&&(R(n)||typeof n._resolve=="function")}function $2(n){return D(n)&&typeof n._resolve=="function"}async function l6(n){return Array.isArray(n)?Promise.all(n.map(e=>$2(e)?e._resolve():e)):$2(n)?n._resolve():n}async function U2(n,e){return l6(n).then(t=>Array.isArray(n)&&Array.isArray(t)?e(...t.map(i=>i||{})):s6(t)?U2(t,e):e(t||{})).catch(t=>(console.log(t),null))}function c(n,e){return new d3(()=>U2(n,e))}function x4(n,e,t,i,r){return c(e,o=>o[t]?._cloneWithCompatibilityResult(a=>({results:a?.results?.map(s=>{let l=i(n,s);return r&&r(l,s),l})}))||[])}function C3(n){var e="0123456789abcdef";function t(b){var L,M="";for(L=0;L<=3;L++)M+=e.charAt(b>>L*8+4&15)+e.charAt(b>>L*8&15);return M}function i(b,L){var M=(b&65535)+(L&65535),P=(b>>16)+(L>>16)+(M>>16);return P<<16|M&65535}function r(b,L){return b<<L|b>>>32-L}function o(b,L,M,P,q,G){return i(r(i(i(L,b),i(P,G)),q),M)}function a(b,L,M,P,q,G,e3){return o(L&M|~L&P,b,L,q,G,e3)}function s(b,L,M,P,q,G,e3){return o(L&P|M&~P,b,L,q,G,e3)}function l(b,L,M,P,q,G,e3){return o(L^M^P,b,L,q,G,e3)}function h(b,L,M,P,q,G,e3){return o(M^(L|~P),b,L,q,G,e3)}function u(b){var L,M=(b.length+8>>6)+1,P=new Array(M*16);for(L=0;L<M*16;L++)P[L]=0;for(L=0;L<b.length;L++)P[L>>2]|=b.charCodeAt(L)<<L%4*8;return P[L>>2]|=128<<L%4*8,P[M*16-2]=b.length*8,P}var d,m=u(""+n),p=1732584193,g=-271733879,C=-1732584194,f=271733878,N,h3,V3,d5;for(d=0;d<m.length;d+=16)N=p,h3=g,V3=C,d5=f,p=a(p,g,C,f,m[d+0],7,-680876936),f=a(f,p,g,C,m[d+1],12,-389564586),C=a(C,f,p,g,m[d+2],17,606105819),g=a(g,C,f,p,m[d+3],22,-1044525330),p=a(p,g,C,f,m[d+4],7,-176418897),f=a(f,p,g,C,m[d+5],12,1200080426),C=a(C,f,p,g,m[d+6],17,-1473231341),g=a(g,C,f,p,m[d+7],22,-45705983),p=a(p,g,C,f,m[d+8],7,1770035416),f=a(f,p,g,C,m[d+9],12,-1958414417),C=a(C,f,p,g,m[d+10],17,-42063),g=a(g,C,f,p,m[d+11],22,-1990404162),p=a(p,g,C,f,m[d+12],7,1804603682),f=a(f,p,g,C,m[d+13],12,-40341101),C=a(C,f,p,g,m[d+14],17,-1502002290),g=a(g,C,f,p,m[d+15],22,1236535329),p=s(p,g,C,f,m[d+1],5,-165796510),f=s(f,p,g,C,m[d+6],9,-1069501632),C=s(C,f,p,g,m[d+11],14,643717713),g=s(g,C,f,p,m[d+0],20,-373897302),p=s(p,g,C,f,m[d+5],5,-701558691),f=s(f,p,g,C,m[d+10],9,38016083),C=s(C,f,p,g,m[d+15],14,-660478335),g=s(g,C,f,p,m[d+4],20,-405537848),p=s(p,g,C,f,m[d+9],5,568446438),f=s(f,p,g,C,m[d+14],9,-1019803690),C=s(C,f,p,g,m[d+3],14,-187363961),g=s(g,C,f,p,m[d+8],20,1163531501),p=s(p,g,C,f,m[d+13],5,-1444681467),f=s(f,p,g,C,m[d+2],9,-51403784),C=s(C,f,p,g,m[d+7],14,1735328473),g=s(g,C,f,p,m[d+12],20,-1926607734),p=l(p,g,C,f,m[d+5],4,-378558),f=l(f,p,g,C,m[d+8],11,-2022574463),C=l(C,f,p,g,m[d+11],16,1839030562),g=l(g,C,f,p,m[d+14],23,-35309556),p=l(p,g,C,f,m[d+1],4,-1530992060),f=l(f,p,g,C,m[d+4],11,1272893353),C=l(C,f,p,g,m[d+7],16,-155497632),g=l(g,C,f,p,m[d+10],23,-1094730640),p=l(p,g,C,f,m[d+13],4,681279174),f=l(f,p,g,C,m[d+0],11,-358537222),C=l(C,f,p,g,m[d+3],16,-722521979),g=l(g,C,f,p,m[d+6],23,76029189),p=l(p,g,C,f,m[d+9],4,-640364487),f=l(f,p,g,C,m[d+12],11,-421815835),C=l(C,f,p,g,m[d+15],16,530742520),g=l(g,C,f,p,m[d+2],23,-995338651),p=h(p,g,C,f,m[d+0],6,-198630844),f=h(f,p,g,C,m[d+7],10,1126891415),C=h(C,f,p,g,m[d+14],15,-1416354905),g=h(g,C,f,p,m[d+5],21,-57434055),p=h(p,g,C,f,m[d+12],6,1700485571),f=h(f,p,g,C,m[d+3],10,-1894986606),C=h(C,f,p,g,m[d+10],15,-1051523),g=h(g,C,f,p,m[d+1],21,-2054922799),p=h(p,g,C,f,m[d+8],6,1873313359),f=h(f,p,g,C,m[d+15],10,-30611744),C=h(C,f,p,g,m[d+6],15,-1560198380),g=h(g,C,f,p,m[d+13],21,1309151649),p=h(p,g,C,f,m[d+4],6,-145523070),f=h(f,p,g,C,m[d+11],10,-1120210379),C=h(C,f,p,g,m[d+2],15,718787259),g=h(g,C,f,p,m[d+9],21,-343485551),p=i(p,N),g=i(g,h3),C=i(C,V3),f=i(f,d5);return t(p)+t(g)+t(C)+t(f)}function d6(n,e){if(!n.file_path.startsWith("theme/sections/"))return!1;if(n.file_path.endsWith(".liquid")){if(!e.get(n.file_path.replace(/\.liquid$/,".json")))return!0}else if(n.file_path.endsWith(".json"))return!0;return!1}async function E2(n,e){let t=[];for(let i of n.values())if(d6(i,n)){let r=await e(i);r&&t.push({...r,id:String(i.name||"").split(".").pop()??"",...r&&{presets:h6(r)}})}return t}function h6(n){return Array.isArray(n?.presets)?n.presets.map(e=>({label:e.label,settings:{...n.fields?.reduce((t,i)=>(i.id&&i.default!==void 0&&(t[i.id]=i.default),t),{}),...e.settings||void 0},blocks:e.blocks?.map(t=>{let i=n.blocks?.find(r=>r.type===t.type);return i?{...t,settings:{...i.fields.reduce((r,o)=>(o.id&&o.default!==void 0&&(r[o.id]=o.default),r),{}),...t.settings||void 0}}:t})})):[]}async function P2(n,e){let t=Array.from(n.values()),i=t.filter(a=>a.file_path.endsWith(".json")&&!n.has(a.file_path.replace(/\.json$/,".liquid"))),r=async a=>{let s=t.find(h=>{if(!h.file_path.endsWith(`/${a}.json`)&&!h.file_path.endsWith(`/${a}.liquid`))return!1;if(h.file_path.endsWith(".liquid")){if(!n.get(h.file_path.replace(/\.liquid$/,".json")))return!0}else if(h.file_path.endsWith(".json"))return!0;return!1});return s?{...await e(s),id:String(s.name||"").split(".").pop()}:void 0},o=[];for(let a of i){let s;try{s=JSON.parse(a.file_data),s?.name&&(s.label=s.name,delete s.name)}catch{}if(s?.type){let l=await Ve(s,r);o.push({...s,id:String(a.name||"").split(".").pop(),sectionConfigs:l})}}return o}async function Ve(n,e){let t=Array.isArray(n?.order)?n.order:Object.keys(n?.sections||{}),i=[];for(let r of t){let o=n.sections[r];if(!o)continue;let a=await e(o.type)||{id:o.type,label:o.type,tag:"div",class:"",fields:[],blocks:[]},s=n.id?`page__${n.id}__${r}`:a.id,h=(Array.isArray(o.block_order)?o.block_order:Object.keys(o.blocks||{})).map(d=>o.blocks?.[d]).filter(Boolean),u={section:{id:s,...o,blocks:h}};i.push({id:s,section:{id:s,...o},schema:a,settings:u,tag:a.tag||"div",class:a.class})}return i}function ul(n){return String(n)==="[object Array]"}function X(n){let e=typeof n;return n!==null&&(e==="object"||e==="function")}function W2(n){let e=new TextEncoder().encode(n),t="";for(let i=0;i<e.length;i+=3){let r=Array.from(e.slice(i,i+3));t+=btoa(String.fromCharCode(...r))}return t}function b2(n,e="id"){return(0,y4.reduce)(n,(t,i)=>(t[String(i[e])]=i,t),{})}function ml(n){let e=n.toUpperCase().split(/-|_/),t=e.shift(),i=e.pop(),r="";return i&&(r=i),i||(r=b5[t.toLowerCase()]||""),r.toLowerCase()}function J2(n,e){if(!(typeof n!="object"||n===null))for(let[t,i]of Object.entries(n))e(t,n)!==!1&&typeof i=="object"&&i!==null&&J2(i,e)}function pl(n){let e=new Set;return J2(n,(t,i)=>{if(typeof i=="object"&&i!==null){if(e.has(i))return!1;e.add(i)}return!0}),Array.from(e)}function Cl(n){if(!n)return n;let e=new WeakSet;return JSON.parse(JSON.stringify(n,(t,i)=>{if(typeof i=="object"&&i!==null){if(e.has(i))return JSON.parse(JSON.stringify(i));e.add(i)}return i}))}function c6(n){if(!(typeof n!="object"||n===null))for(let[e,t]of Object.entries(n))e==="_swell"&&"_swell"in n?n[e]=void 0:c6(t)}function K2(n){if(n!==void 0)return n instanceof A?"SwellStorefrontCollection":n instanceof T?"SwellStorefrontRecord":n instanceof y?"ShopifyResource":n instanceof E?"StorefrontResource":"promise"}async function V(n,e=!0,t=!1){let i=n,r=e;try{if(R(n)&&(r=!1,i=await n),n instanceof E&&(r=!1,i=await V(n.resolve(),e,t)),Array.isArray(i)){let o=await Promise.all(i.map(a=>V(a,e,t)));if(i=o,!o.some(a=>a!==void 0))return e?[]:void 0}else if(typeof i=="object"&&i!==null&&(!("_swell"in i)||!i._swell)){let o={};for(let[a,s]of Object.entries(i)){if(!e&&(R(s)||s instanceof E||s instanceof y)){o[a]={_type:K2(s),...t?{value:await V(s,r,t)}:void 0};continue}if(s instanceof E&&t){o[a]={_type:K2(s),value:await V(s,r,t)};continue}o[a]=await V(s,r,t)}return!e&&Object.keys(o).length===0?void 0:o}}catch(o){return console.error(o),n}return i}function K(n){return z2.default.stringify({...n,sections:void 0,section_id:void 0},{encodeValuesOnly:!0,arrayFormat:"repeat"})}function v2(n,e){return n=Array.isArray(n)?n.join(" "):n,n.split("}").map(r=>{let[o,a]=r.split("{");return!o||!a?"":`${o.split(",").map(l=>`#${e} ${l.trim()}`).join(", ")} {${a}}`}).join(" ")}function R3(n,e){return Object.entries(n).reduce((t,[i,r])=>(r?.value!==null&&r?.value!==void 0&&(t[i]=r?.value),t),(0,y4.cloneDeep)(e))}var u4="ContentSections";function S3(n){return`SectionGroup_${n}`}var u6="THEME",m6=Object.freeze({ttl:1e3*60*60*24}),Y2="__NULL__",$=class{client;constructor(e){e=e||{},e.stores=e.stores||p6(e.kvStore),this.client=(0,Q2.createCache)({...m6,...e})}async fetch(e,t){return this.client.wrap(e,t)}async fetchSWR(e,t){let i=await this.client.get(e),r=Promise.resolve().then(()=>t()).then(async a=>{let s=a==null,l=await V(a);return await this.client.set(e,s?Y2:l),a});return i!==null?i===Y2?null:i:await r}async get(e){return this.client.get(e)}async set(e,t,i){return this.client.set(e,t,i)}async flush(e){await this.client.del(e)}async flushAll(){await this.client.clear()}};function p6(n){let e=[];return n?e.push(new r5.Keyv({namespace:u6,store:new O3(n)})):e.push(new r5.Keyv),e}var C6=24*60*60*1e3,g6=30*1e3,H3=class extends ${constructor(e){super({ttl:e?.kvStore?C6:g6,...e})}};var X2=S("keyv");var f6=5*1e3,B3=class extends ${constructor(e){super({stores:w6(),ttl:f6,...e})}};function w6(){return[new X2.Keyv({serialize:void 0,deserialize:void 0})]}var y6=90*24*60*60*1e3,P3=class extends ${constructor(e){super({ttl:y6,...e})}};var et="https://api.schema.io",tt=new Map,it=new Map,nt=class n{url;headers;swellHeaders;queryParams;workerEnv;config;shopifyCompatibilityConfig;backend;storefront;storefrontContext;instanceId="";isPreview=!1;isEditor=!1;sentResponse=!1;storefront_url;constructor(e){let{url:t,config:i,shopifyCompatibilityConfig:r,headers:o,swellHeaders:a,serverHeaders:s,queryParams:l,workerEnv:h,...u}=e;if(this.url=t instanceof URL?t:new URL(t||""),this.config=i,this.shopifyCompatibilityConfig=r,this.queryParams=n.formatQueryParams(l||this.url.searchParams),this.workerEnv=h,console.log(`KV cache: ${this.workerEnv?.THEME?"enabled":"disabled"}`),s){let{headers:d,swellHeaders:m}=n.formatHeaders(s);this.headers=d,this.swellHeaders=m,this.backend=new o5({storeId:m["store-id"],accessToken:m["access-token"],apiHost:m["api-host"]}),this.storefront=this.getStorefrontInstance({...e,headers:d,swellHeaders:m}),this.instanceId=["store-id","environment-id","deployment-mode","theme-id","theme-branch-id"].map(p=>m[p]||"0").join(":"),this.isEditor=u.isEditor??m["deployment-mode"]==="editor",this.isPreview=this.isEditor||m["deployment-mode"]==="preview"}else if(o&&a)Object.assign(this,u),this.headers=o,this.swellHeaders=a,this.storefront=this.getStorefrontInstance(e);else throw new Error("Swell client requires `serverHeaders` when initialized on the server-side, or `headers` and `swellHeaders` when initialized on the client-side.");this.storefrontContext=this.initStorefrontContext()}static formatHeaders(e){let t={},i={};e instanceof Headers?e.forEach((r,o)=>{t[o]=r}):e&&(t=e);for(let[r,o]of Object.entries(t))r.startsWith("swell-")&&o&&(i[r.replace("swell-","")]=o);return{headers:t,swellHeaders:i}}static formatQueryParams(e){let t={};return e instanceof URLSearchParams?t=at.default.parse(e.toString()):e&&(t=e),t}async getCachedResource(e,t,i){let r=this.swellHeaders["request-id"],o=rt(e,[r,t]);return this.getResourceCache().fetch(o,i)}async getAppSettings(){return await this.get("/:storefronts/{id}/configs/settings/values",{id:this.swellHeaders["storefront-id"]})||{}}async getStorefrontSettings(e=!1){try{let{settings:t,menus:i,payments:r,subscriptions:o,session:a}=await this.storefront.request("get","/settings/all",void 0,void 0,{force:e}),s=this.storefront.settings;s.localizedState={},s.set({value:t}),s.set({model:"menus",value:i}),s.set({model:"payments",value:r}),s.set({model:"subscriptions",value:o}),s.set({model:"session",value:a})}catch(t){t instanceof Error&&(t.message=`Swell: unable to load settings (${t.message})`),console.error(t)}return this.storefront.settings.get()}getStorefrontMenus(){let e=this.storefront.settings.getState("/settings/menus","menuState");return!e||R(e)?[]:e}getStorefrontLocalization(){let e=this.storefront.locale.selected(),t=this.storefront.currency.selected();return!e||R(e)?{locale:"en-US",currency:"USD"}:{locale:e,currency:t}}async get(...e){return this.backend?.get(...e)}async put(...e){return this.backend?.put(...e)}async post(...e){return this.backend?.post(...e)}async delete(...e){return this.backend?.delete(...e)}getStorefrontInstance(e){let{swellHeaders:t,getCookie:i,setCookie:r,storefrontSettingStates:o}=e;if(!t)throw new Error("Swell headers are required");let a=t["store-id"],s=t["public-key"];if(!a||!s)throw new Error('Missing required headers: "swell-store-id" and "swell-public-key"');let l=ot.default.create(a,s,{url:t["admin-url"],vaultUrl:t["vault-url"],getCookie:i,setCookie:r&&((h,u,d)=>r(h,u,d,this)),headers:{"Swell-Store-id":a,"Swell-Storefront-Id":t["storefront-id"]}});return o&&Object.assign(l.settings,o),l.request=this.getCacheableStorefrontRequestHandler(l),l}initStorefrontContext(){let e={};if(this.swellHeaders?.["storefront-context"])try{e=JSON.parse(decodeURIComponent(this.swellHeaders["storefront-context"]))}catch{console.error("Failed to parse swell-storefront-context. Ignoring...")}return e}isStorefrontRequestCacheable(e,t,i){if(i?.force)return!1;if(e==="get")switch(t.split("/")[1]){case"products":case"categories":case"content":case"settings":return!0;default:return!1}return!1}getCacheableStorefrontRequestHandler(e){let t=e.request;return(i,r,o,a,s)=>{if(this.isStorefrontRequestCacheable(i,r,s))return this.getRequestCache().fetchSWR(rt("request",[i,r,o,a,s]),()=>t(i,r,o,a,s));switch(i){case"delete":case"post":case"put":{let l=r.split("/")[1];delete this.storefrontContext[l];break}default:}return t(i,r,o,a,s)}}getResourceCache(){let e=tt.get(this.instanceId);return e||(e=new B3({kvStore:this.workerEnv?.THEME}),tt.set(this.instanceId,e)),e}getRequestCache(){let e=it.get(this.instanceId);return e||(e=new H3({kvStore:this.workerEnv?.THEME}),it.set(this.instanceId,e)),e}};function rt(n,e){let t=n;return Array.isArray(e)&&e.length>0&&(t+=`_${JSON.stringify(e)}`),t.length>512&&(t=`${t.slice(0,480)}${C3(t)}`),t}var o5=class{apiHost=et;apiAuth="";constructor({storeId:e,accessToken:t,apiHost:i}){this.apiHost=i||et,this.apiAuth=W2(`${e}:${t}`)}async makeRequest(e,t,i){let r={method:e,headers:{Authorization:`Basic ${this.apiAuth}`,"User-Agent":"swell-functions/1.0","Content-Type":"application/json"}},o="";if(i)try{e==="GET"?o=`?${this.stringifyQuery(i)}`:(r.body=JSON.stringify(i),r.headers["Content-Length"]=String(r.body.length))}catch{throw new Error(`Error serializing data: ${i}`)}let a=String(t).startsWith("/")?t.substring(1):t,s=`${this.apiHost}/${a}${o}`,l=await fetch(s,r),h=await l.text(),u;try{u=JSON.parse(h)}catch{u=String(h||"").trim()}if(l.status>299)throw new S4(u,{status:l.status,method:e,endpointUrl:a});if(e!=="GET"&&u?.errors)throw new S4(u.errors,{status:400,method:e,endpointUrl:a});return u}stringifyQuery(e,t){let i=[];for(let[r,o]of Object.entries(e)){let a=t?`${t}[${r}]`:r,l=o!==null&&typeof o=="object"?this.stringifyQuery(o,a):`${encodeURIComponent(a)}=${o===null?"":encodeURIComponent(o)}`;i.push(l)}return i.join("&")}async get(e,t){return this.makeRequest("GET",e,t)}async put(e,t){return this.makeRequest("PUT",e,t)}async post(e,t){return this.makeRequest("POST",e,t)}async delete(e,t){return this.makeRequest("DELETE",e,t)}},S4=class extends Error{status=200;constructor(e,t={}){let i;typeof e=="string"?i=e:i=JSON.stringify(e,null,2),t.method&&t.endpointUrl&&(i=`${t.method} /${t.endpointUrl}
|
|
948
|
+
`):""}isScriptFormActionUrl(e){if(!e)return!1;let t=this.shopifyCompatibilityConfig?.editor_configs?.script_actions_routes||{};for(let i of Object.values(t))if(e===i)return!0;return!1}isScriptUrl(e){if(!e)return!1;let t=this.shopifyCompatibilityConfig?.editor_configs?.script_routes||{};for(let i of Object.values(t))if(e.startsWith(i))return!0;return!1}needRedirectToPageStart(e){return e?(this.shopifyCompatibilityConfig?.editor_configs?.redirect_to_page_start_forms||[]).includes(e):!1}isCheckoutForm(e){return e?this.shopifyCompatibilityConfig?.editor_configs?.checkout_form===e:!1}};var y=class n{props;stringProp;linkProps;constructor(e,t,i){return this.props=e,this.stringProp=t,this.linkProps=i,new Proxy(e,{get(r,o){let a=r;switch(o){case"toJSON":return e;case"clone":return()=>new n((0,k3.cloneDeep)(e),(0,k3.cloneDeep)(t),(0,k3.cloneDeep)(i));case"toString":{if(t)return()=>e[t];break}default:break}return a[o]instanceof d3?a[o].resolve().then(s=>(a[o]=s,s),s=>(console.log(s),a[o]=null,null)):a[o]},getPrototypeOf(){return n.prototype}})}valueOf(){return this.stringProp?this.props[this.stringProp]:this}clone(){return new n({})}},d3=class{handler;result;constructor(e){this.result=void 0,this.handler=e}async resolve(){return this.result===void 0&&(this.result=Promise.resolve().then(()=>{let e=this.handler();return this.handler=k3.noop,e}).then(e=>(e=e!==void 0?e:null,this.result=e,e))),this.result}};function w(n){return new d3(n)}function s6(n){return D(n)&&(R(n)||typeof n._resolve=="function")}function $2(n){return D(n)&&typeof n._resolve=="function"}async function l6(n){return Array.isArray(n)?Promise.all(n.map(e=>$2(e)?e._resolve():e)):$2(n)?n._resolve():n}async function U2(n,e){return l6(n).then(t=>Array.isArray(n)&&Array.isArray(t)?e(...t.map(i=>i||{})):s6(t)?U2(t,e):e(t||{})).catch(t=>(console.log(t),null))}function c(n,e){return new d3(()=>U2(n,e))}function x4(n,e,t,i,r){return c(e,o=>o[t]?._cloneWithCompatibilityResult(a=>({results:a?.results?.map(s=>{let l=i(n,s);return r&&r(l,s),l})}))||[])}function C3(n){var e="0123456789abcdef";function t(b){var L,M="";for(L=0;L<=3;L++)M+=e.charAt(b>>L*8+4&15)+e.charAt(b>>L*8&15);return M}function i(b,L){var M=(b&65535)+(L&65535),P=(b>>16)+(L>>16)+(M>>16);return P<<16|M&65535}function r(b,L){return b<<L|b>>>32-L}function o(b,L,M,P,q,G){return i(r(i(i(L,b),i(P,G)),q),M)}function a(b,L,M,P,q,G,e3){return o(L&M|~L&P,b,L,q,G,e3)}function s(b,L,M,P,q,G,e3){return o(L&P|M&~P,b,L,q,G,e3)}function l(b,L,M,P,q,G,e3){return o(L^M^P,b,L,q,G,e3)}function h(b,L,M,P,q,G,e3){return o(M^(L|~P),b,L,q,G,e3)}function u(b){var L,M=(b.length+8>>6)+1,P=new Array(M*16);for(L=0;L<M*16;L++)P[L]=0;for(L=0;L<b.length;L++)P[L>>2]|=b.charCodeAt(L)<<L%4*8;return P[L>>2]|=128<<L%4*8,P[M*16-2]=b.length*8,P}var d,m=u(""+n),p=1732584193,g=-271733879,C=-1732584194,f=271733878,N,h3,V3,d5;for(d=0;d<m.length;d+=16)N=p,h3=g,V3=C,d5=f,p=a(p,g,C,f,m[d+0],7,-680876936),f=a(f,p,g,C,m[d+1],12,-389564586),C=a(C,f,p,g,m[d+2],17,606105819),g=a(g,C,f,p,m[d+3],22,-1044525330),p=a(p,g,C,f,m[d+4],7,-176418897),f=a(f,p,g,C,m[d+5],12,1200080426),C=a(C,f,p,g,m[d+6],17,-1473231341),g=a(g,C,f,p,m[d+7],22,-45705983),p=a(p,g,C,f,m[d+8],7,1770035416),f=a(f,p,g,C,m[d+9],12,-1958414417),C=a(C,f,p,g,m[d+10],17,-42063),g=a(g,C,f,p,m[d+11],22,-1990404162),p=a(p,g,C,f,m[d+12],7,1804603682),f=a(f,p,g,C,m[d+13],12,-40341101),C=a(C,f,p,g,m[d+14],17,-1502002290),g=a(g,C,f,p,m[d+15],22,1236535329),p=s(p,g,C,f,m[d+1],5,-165796510),f=s(f,p,g,C,m[d+6],9,-1069501632),C=s(C,f,p,g,m[d+11],14,643717713),g=s(g,C,f,p,m[d+0],20,-373897302),p=s(p,g,C,f,m[d+5],5,-701558691),f=s(f,p,g,C,m[d+10],9,38016083),C=s(C,f,p,g,m[d+15],14,-660478335),g=s(g,C,f,p,m[d+4],20,-405537848),p=s(p,g,C,f,m[d+9],5,568446438),f=s(f,p,g,C,m[d+14],9,-1019803690),C=s(C,f,p,g,m[d+3],14,-187363961),g=s(g,C,f,p,m[d+8],20,1163531501),p=s(p,g,C,f,m[d+13],5,-1444681467),f=s(f,p,g,C,m[d+2],9,-51403784),C=s(C,f,p,g,m[d+7],14,1735328473),g=s(g,C,f,p,m[d+12],20,-1926607734),p=l(p,g,C,f,m[d+5],4,-378558),f=l(f,p,g,C,m[d+8],11,-2022574463),C=l(C,f,p,g,m[d+11],16,1839030562),g=l(g,C,f,p,m[d+14],23,-35309556),p=l(p,g,C,f,m[d+1],4,-1530992060),f=l(f,p,g,C,m[d+4],11,1272893353),C=l(C,f,p,g,m[d+7],16,-155497632),g=l(g,C,f,p,m[d+10],23,-1094730640),p=l(p,g,C,f,m[d+13],4,681279174),f=l(f,p,g,C,m[d+0],11,-358537222),C=l(C,f,p,g,m[d+3],16,-722521979),g=l(g,C,f,p,m[d+6],23,76029189),p=l(p,g,C,f,m[d+9],4,-640364487),f=l(f,p,g,C,m[d+12],11,-421815835),C=l(C,f,p,g,m[d+15],16,530742520),g=l(g,C,f,p,m[d+2],23,-995338651),p=h(p,g,C,f,m[d+0],6,-198630844),f=h(f,p,g,C,m[d+7],10,1126891415),C=h(C,f,p,g,m[d+14],15,-1416354905),g=h(g,C,f,p,m[d+5],21,-57434055),p=h(p,g,C,f,m[d+12],6,1700485571),f=h(f,p,g,C,m[d+3],10,-1894986606),C=h(C,f,p,g,m[d+10],15,-1051523),g=h(g,C,f,p,m[d+1],21,-2054922799),p=h(p,g,C,f,m[d+8],6,1873313359),f=h(f,p,g,C,m[d+15],10,-30611744),C=h(C,f,p,g,m[d+6],15,-1560198380),g=h(g,C,f,p,m[d+13],21,1309151649),p=h(p,g,C,f,m[d+4],6,-145523070),f=h(f,p,g,C,m[d+11],10,-1120210379),C=h(C,f,p,g,m[d+2],15,718787259),g=h(g,C,f,p,m[d+9],21,-343485551),p=i(p,N),g=i(g,h3),C=i(C,V3),f=i(f,d5);return t(p)+t(g)+t(C)+t(f)}function d6(n,e){if(!n.file_path.startsWith("theme/sections/"))return!1;if(n.file_path.endsWith(".liquid")){if(!e.get(n.file_path.replace(/\.liquid$/,".json")))return!0}else if(n.file_path.endsWith(".json"))return!0;return!1}async function E2(n,e){let t=[];for(let i of n.values())if(d6(i,n)){let r=await e(i);r&&t.push({...r,id:String(i.name||"").split(".").pop()??"",...r&&{presets:h6(r)}})}return t}function h6(n){return Array.isArray(n?.presets)?n.presets.map(e=>({label:e.label,settings:{...n.fields?.reduce((t,i)=>(i.id&&i.default!==void 0&&(t[i.id]=i.default),t),{}),...e.settings||void 0},blocks:e.blocks?.map(t=>{let i=n.blocks?.find(r=>r.type===t.type);return i?{...t,settings:{...i.fields.reduce((r,o)=>(o.id&&o.default!==void 0&&(r[o.id]=o.default),r),{}),...t.settings||void 0}}:t})})):[]}async function P2(n,e){let t=Array.from(n.values()),i=t.filter(a=>a.file_path.endsWith(".json")&&!n.has(a.file_path.replace(/\.json$/,".liquid"))),r=async a=>{let s=t.find(h=>{if(!h.file_path.endsWith(`/${a}.json`)&&!h.file_path.endsWith(`/${a}.liquid`))return!1;if(h.file_path.endsWith(".liquid")){if(!n.get(h.file_path.replace(/\.liquid$/,".json")))return!0}else if(h.file_path.endsWith(".json"))return!0;return!1});return s?{...await e(s),id:String(s.name||"").split(".").pop()}:void 0},o=[];for(let a of i){let s;try{s=JSON.parse(a.file_data),s?.name&&(s.label=s.name,delete s.name)}catch{}if(s?.type){let l=await Ve(s,r);o.push({...s,id:String(a.name||"").split(".").pop(),sectionConfigs:l})}}return o}async function Ve(n,e){let t=Array.isArray(n?.order)?n.order:Object.keys(n?.sections||{}),i=[];for(let r of t){let o=n.sections[r];if(!o)continue;let a=await e(o.type)||{id:o.type,label:o.type,tag:"div",class:"",fields:[],blocks:[]},s=n.id?`page__${n.id}__${r}`:a.id,h=(Array.isArray(o.block_order)?o.block_order:Object.keys(o.blocks||{})).map(d=>o.blocks?.[d]).filter(Boolean),u={section:{id:s,...o,blocks:h}};i.push({id:s,section:{id:s,...o},schema:a,settings:u,tag:a.tag||"div",class:a.class})}return i}function ul(n){return String(n)==="[object Array]"}function X(n){let e=typeof n;return n!==null&&(e==="object"||e==="function")}function W2(n){let e=new TextEncoder().encode(n),t="";for(let i=0;i<e.length;i+=3){let r=Array.from(e.slice(i,i+3));t+=btoa(String.fromCharCode(...r))}return t}function b2(n,e="id"){return(0,y4.reduce)(n,(t,i)=>(t[String(i[e])]=i,t),{})}function ml(n){let e=n.toUpperCase().split(/-|_/),t=e.shift(),i=e.pop(),r="";return i&&(r=i),i||(r=b5[t.toLowerCase()]||""),r.toLowerCase()}function J2(n,e){if(!(typeof n!="object"||n===null))for(let[t,i]of Object.entries(n))e(t,n)!==!1&&typeof i=="object"&&i!==null&&J2(i,e)}function pl(n){let e=new Set;return J2(n,(t,i)=>{if(typeof i=="object"&&i!==null){if(e.has(i))return!1;e.add(i)}return!0}),Array.from(e)}function Cl(n){if(!n)return n;let e=new WeakSet;return JSON.parse(JSON.stringify(n,(t,i)=>{if(typeof i=="object"&&i!==null){if(e.has(i))return JSON.parse(JSON.stringify(i));e.add(i)}return i}))}function c6(n){if(!(typeof n!="object"||n===null))for(let[e,t]of Object.entries(n))e==="_swell"&&"_swell"in n?n[e]=void 0:c6(t)}function K2(n){if(n!==void 0)return n instanceof A?"SwellStorefrontCollection":n instanceof T?"SwellStorefrontRecord":n instanceof y?"ShopifyResource":n instanceof E?"StorefrontResource":"promise"}async function V(n,e=!0,t=!1){let i=n,r=e;try{if(R(n)&&(r=!1,i=await n),n instanceof E&&(r=!1,i=await V(n.resolve(),e,t)),Array.isArray(i)){let o=await Promise.all(i.map(a=>V(a,e,t)));if(i=o,!o.some(a=>a!==void 0))return e?[]:void 0}else if(typeof i=="object"&&i!==null&&(!("_swell"in i)||!i._swell)){let o={};for(let[a,s]of Object.entries(i)){if(!e&&(R(s)||s instanceof E||s instanceof y)){o[a]={_type:K2(s),...t?{value:await V(s,r,t)}:void 0};continue}if(s instanceof E&&t){o[a]={_type:K2(s),value:await V(s,r,t)};continue}o[a]=await V(s,r,t)}return!e&&Object.keys(o).length===0?void 0:o}}catch(o){return console.error(o),n}return i}function K(n){return z2.default.stringify({...n,sections:void 0,section_id:void 0},{encodeValuesOnly:!0,arrayFormat:"repeat"})}function v2(n,e){return n=Array.isArray(n)?n.join(" "):n,n.split("}").map(r=>{let[o,a]=r.split("{");return!o||!a?"":`${o.split(",").map(l=>`#${e} ${l.trim()}`).join(", ")} {${a}}`}).join(" ")}function R3(n,e){return Object.entries(n).reduce((t,[i,r])=>(r?.value!==null&&r?.value!==void 0&&(t[i]=r?.value),t),(0,y4.cloneDeep)(e))}var u4="ContentSections";function S3(n){return`SectionGroup_${n}`}var u6="THEME",m6=Object.freeze({ttl:1e3*60*60*24}),Y2="__NULL__",$=class{client;constructor(e){e=e||{},e.stores=e.stores||p6(e.kvStore),this.client=(0,Q2.createCache)({...m6,...e})}async fetch(e,t){return this.client.wrap(e,t)}async fetchSWR(e,t){let i=await this.client.get(e),r=Promise.resolve().then(()=>t()).then(async a=>{let s=a==null,l=await V(a);return await this.client.set(e,s?Y2:l),a});return i!==null?i===Y2?null:i:await r}async get(e){return this.client.get(e)}async set(e,t,i){return this.client.set(e,t,i)}async flush(e){await this.client.del(e)}async flushAll(){await this.client.clear()}};function p6(n){let e=[];return n?e.push(new r5.Keyv({namespace:u6,store:new O3(n)})):e.push(new r5.Keyv),e}var C6=24*60*60*1e3,g6=30*1e3,H3=class extends ${constructor(e){super({ttl:e?.kvStore?C6:g6,...e})}};var X2=S("keyv");var f6=5*1e3,B3=class extends ${constructor(e){super({stores:w6(),ttl:f6,...e})}};function w6(){return[new X2.Keyv({serialize:void 0,deserialize:void 0})]}var y6=90*24*60*60*1e3,P3=class extends ${constructor(e){super({ttl:y6,...e})}};var et="https://api.schema.io",tt=new Map,it=new Map,nt=class n{url;headers;swellHeaders;queryParams;workerEnv;config;shopifyCompatibilityConfig;backend;storefront;storefrontContext;instanceId="";isPreview=!1;isEditor=!1;sentResponse=!1;storefront_url;constructor(e){let{url:t,config:i,shopifyCompatibilityConfig:r,headers:o,swellHeaders:a,serverHeaders:s,queryParams:l,workerEnv:h,...u}=e;if(this.url=t instanceof URL?t:new URL(t||""),this.config=i,this.shopifyCompatibilityConfig=r,this.queryParams=n.formatQueryParams(l||this.url.searchParams),this.workerEnv=h,console.log(`KV cache: ${this.workerEnv?.THEME?"enabled":"disabled"}`),s){let{headers:d,swellHeaders:m}=n.formatHeaders(s);this.headers=d,this.swellHeaders=m,this.backend=new o5({storeId:m["store-id"],accessToken:m["access-token"],apiHost:m["api-host"]}),this.storefront=this.getStorefrontInstance({...e,headers:d,swellHeaders:m}),this.instanceId=["store-id","environment-id","deployment-mode","theme-id","theme-branch-id"].map(p=>m[p]||"0").join(":"),this.isEditor=u.isEditor??m["deployment-mode"]==="editor",this.isPreview=this.isEditor||m["deployment-mode"]==="preview"}else if(o&&a)Object.assign(this,u),this.headers=o,this.swellHeaders=a,this.storefront=this.getStorefrontInstance(e);else throw new Error("Swell client requires `serverHeaders` when initialized on the server-side, or `headers` and `swellHeaders` when initialized on the client-side.");this.storefrontContext=this.initStorefrontContext()}static formatHeaders(e){let t={},i={};e instanceof Headers?e.forEach((r,o)=>{t[o]=r}):e&&(t=e);for(let[r,o]of Object.entries(t))r.startsWith("swell-")&&o&&(i[r.replace("swell-","")]=o);return{headers:t,swellHeaders:i}}static formatQueryParams(e){let t={};return e instanceof URLSearchParams?t=at.default.parse(e.toString()):e&&(t=e),t}async getCachedResource(e,t,i){let r=rt(e,[this.instanceId,t]);return this.getResourceCache().fetch(r,i)}async getAppSettings(){return await this.get("/:storefronts/{id}/configs/settings/values",{id:this.swellHeaders["storefront-id"]})||{}}async getStorefrontSettings(e=!1){try{let{settings:t,menus:i,payments:r,subscriptions:o,session:a}=await this.storefront.request("get","/settings/all",void 0,void 0,{force:e}),s=this.storefront.settings;s.localizedState={},s.set({value:t}),s.set({model:"menus",value:i}),s.set({model:"payments",value:r}),s.set({model:"subscriptions",value:o}),s.set({model:"session",value:a})}catch(t){t instanceof Error&&(t.message=`Swell: unable to load settings (${t.message})`),console.error(t)}return this.storefront.settings.get()}getStorefrontMenus(){let e=this.storefront.settings.getState("/settings/menus","menuState");return!e||R(e)?[]:e}getStorefrontLocalization(){let e=this.storefront.locale.selected(),t=this.storefront.currency.selected();return!e||R(e)?{locale:"en-US",currency:"USD"}:{locale:e,currency:t}}async get(...e){return this.backend?.get(...e)}async put(...e){return this.backend?.put(...e)}async post(...e){return this.backend?.post(...e)}async delete(...e){return this.backend?.delete(...e)}getStorefrontInstance(e){let{swellHeaders:t,getCookie:i,setCookie:r,storefrontSettingStates:o}=e;if(!t)throw new Error("Swell headers are required");let a=t["store-id"],s=t["public-key"];if(!a||!s)throw new Error('Missing required headers: "swell-store-id" and "swell-public-key"');let l=ot.default.create(a,s,{url:t["admin-url"],vaultUrl:t["vault-url"],getCookie:i,setCookie:r&&((h,u,d)=>r(h,u,d,this)),headers:{"Swell-Store-id":a,"Swell-Storefront-Id":t["storefront-id"]}});return o&&Object.assign(l.settings,o),l.request=this.getCacheableStorefrontRequestHandler(l),l}initStorefrontContext(){let e={};if(this.swellHeaders?.["storefront-context"])try{e=JSON.parse(decodeURIComponent(this.swellHeaders["storefront-context"]))}catch{console.error("Failed to parse swell-storefront-context. Ignoring...")}return e}isStorefrontRequestCacheable(e,t,i){if(i?.force)return!1;if(e==="get")switch(t.split("/")[1]){case"products":case"categories":case"content":case"settings":return!0;default:return!1}return!1}getCacheableStorefrontRequestHandler(e){let t=e.request;return(i,r,o,a,s)=>{if(this.isStorefrontRequestCacheable(i,r,s))return this.getRequestCache().fetchSWR(rt("request",[this.instanceId,i,r,o,a,s]),()=>t(i,r,o,a,s));switch(i){case"delete":case"post":case"put":{let l=r.split("/")[1];delete this.storefrontContext[l];break}default:}return t(i,r,o,a,s)}}getResourceCache(){let e=tt.get(this.instanceId);return e||(e=new B3({kvStore:this.workerEnv?.THEME}),tt.set(this.instanceId,e)),e}getRequestCache(){let e=it.get(this.instanceId);return e||(e=new H3({kvStore:this.workerEnv?.THEME}),it.set(this.instanceId,e)),e}};function rt(n,e){let t=n;return Array.isArray(e)&&e.length>0&&(t+=`_${JSON.stringify(e)}`),t.length>512&&(t=`${t.slice(0,480)}${C3(t)}`),t}var o5=class{apiHost=et;apiAuth="";constructor({storeId:e,accessToken:t,apiHost:i}){this.apiHost=i||et,this.apiAuth=W2(`${e}:${t}`)}async makeRequest(e,t,i){let r={method:e,headers:{Authorization:`Basic ${this.apiAuth}`,"User-Agent":"swell-functions/1.0","Content-Type":"application/json"}},o="";if(i)try{e==="GET"?o=`?${this.stringifyQuery(i)}`:(r.body=JSON.stringify(i),r.headers["Content-Length"]=String(r.body.length))}catch{throw new Error(`Error serializing data: ${i}`)}let a=String(t).startsWith("/")?t.substring(1):t,s=`${this.apiHost}/${a}${o}`,l=await fetch(s,r),h=await l.text(),u;try{u=JSON.parse(h)}catch{u=String(h||"").trim()}if(l.status>299)throw new S4(u,{status:l.status,method:e,endpointUrl:a});if(e!=="GET"&&u?.errors)throw new S4(u.errors,{status:400,method:e,endpointUrl:a});return u}stringifyQuery(e,t){let i=[];for(let[r,o]of Object.entries(e)){let a=t?`${t}[${r}]`:r,l=o!==null&&typeof o=="object"?this.stringifyQuery(o,a):`${encodeURIComponent(a)}=${o===null?"":encodeURIComponent(o)}`;i.push(l)}return i.join("&")}async get(e,t){return this.makeRequest("GET",e,t)}async put(e,t){return this.makeRequest("PUT",e,t)}async post(e,t){return this.makeRequest("POST",e,t)}async delete(e,t){return this.makeRequest("DELETE",e,t)}},S4=class extends Error{status=200;constructor(e,t={}){let i;typeof e=="string"?i=e:i=JSON.stringify(e,null,2),t.method&&t.endpointUrl&&(i=`${t.method} /${t.endpointUrl}
|
|
949
949
|
${i}`),super(i),this.name="SwellError",this.status=t.status||500}};function st(n,e){return new A(n,"products",e)}function ql(n,e,t){return new T(n,"products",e,t)}function Gl(n,{search:e,filter:t,sort:i}){return new A(n,"products",{search:e,filter:t,sort:i})}function Kl(n,e){return new A(n,"categories",e)}function S6(n,e,t){return new T(n,"categories",e,t)}async function zl(n,e,t){let i=S6(n,e,t),r=await i.id;return i.products=st(n,{category:r}),i}function Ql(n,e){return n.getCachedResource(`content-model-${e}`,[],()=>n.get("/:content/{name}",{name:e,public:!0,"storefront.enabled":!0}))}async function k6(n,e,t){return new A(n,`content/${e}`,t)}async function lt(n,e,t,i){return new T(n,`content/${e}`,t,i)}async function Xl(n,e,t){return lt(n,"pages",e,t)}async function ed(n,e){return k6(n,"blogs",e)}async function td(n,e,t){return lt(n,"blogs",e,t)}var U=S("lodash-es");async function dt(n,e){let t=[];for(let i of e)if(b6(i,e)){let r=await s5(n,i);r&&t.push({...r,id:String(i.name||"").split(".").pop()})}return t}async function a5(n,e,t=L6){let i=Array.isArray(e.order)?e.order:Object.keys(e.sections||{}),r=[];for(let o of i){let a=e.sections[o],s=await t(n,a.type);if(!s)continue;let l={...s,id:o},h=e.id?`page__${e.id}__${o}`:l.id,d=(Array.isArray(a.block_order)?a.block_order:Object.keys(a.blocks||{})).map(p=>a.blocks?.[p]).filter(Boolean),m={section:{id:h,...a,blocks:d}};r.push({id:h,settings:m,section:{id:h,...a},tag:l.tag||"div",class:l.class,schema:l})}return r}async function ht(n,e){let t=e.filter(o=>A6(o,e)),i=async(o,a)=>{let s=e.find(h=>T6(h,e,a)),l=await s5(o,s);if(l)return{...l,id:String(s?.name||"").split(".").pop()}},r=[];for(let o of t){let a;try{a=JSON.parse(o.file_data),a?.name&&(a.label=a.name,delete a.name)}catch{}if(a?.type){let s=await a5(n,a,i);r.push({...a,id:String(o.name||"").split(".").pop(),sectionConfigs:s})}}return r}async function L6(n,e){let t=await n.getThemeTemplateConfigByType("sections",e);return s5(n,t)}async function s5(n,e){let t;if(e?.file_path?.endsWith(".liquid")){if(n.shopifyCompatibility){n.liquidSwell.lastSchema=void 0,await n.renderTemplate(e);let i=n.liquidSwell.lastSchema;i&&(t=n.shopifyCompatibility.getSectionConfigSchema(i))}}else if(e?.file_data)try{t=JSON.parse(e?.file_data)||void 0}catch{}return t}function b6(n,e){return n.file_path.startsWith("theme/sections/")?ct(n,e):!1}function A6(n,e){if(!n.file_path.startsWith("theme/sections/")||!n.file_path.endsWith(".json"))return!1;let t=n.file_path.replace(/\.json$/,".liquid");return!e.some(i=>i.file_path===t)}function T6(n,e,t){return!n.file_path.endsWith(`/${t}.json`)&&!n.file_path.endsWith(`/${t}.liquid`)?!1:ct(n,e)}function ct(n,e){if(n.file_path.endsWith(".liquid")){let t=n.file_path.replace(/\.liquid$/,".json");if(!e.find(r=>r.file_path===t))return!0}else if(n.file_path.endsWith(".json"))return!0;return!1}function q3(n){let e={description:n.description,defaultValue:n.default,isLabelHidden:!0,layout:"column",params:n},t;switch(n?.type){case"text":case"short_text":t={type:"swell_short_text"};break;case"paragraph":t={type:"swell_paragraph"};break;case"textarea":case"long_text":case"liquid":t={type:"swell_long_text"};break;case"basic_html":case"rich_text":case"rich_html":case"markdown":t={type:"swell_editor"};break;case"number":t={type:"swell_number"};break;case"select":t={type:"swell_select"};break;case"radio":t={type:"swell_radio"};break;case"checkbox":t={type:"swell_boolean"};break;case"color":t={type:"swell_color"};break;case"color_scheme":t={type:"swell_color_scheme"};break;case"color_scheme_group":t={type:"swell_color_scheme_group"};break;case"font":t={type:"swell_font"};break;case"header":t={type:"swell_header"};break;case"icon":t={type:"swell_menu"};break;case"menu":t={type:"swell_menu"};break;case"url":t={type:"swell_url"};break;case"lookup":case"generic_lookup":case"product_lookup":case"category_lookup":case"customer_lookup":t={type:"swell_lookup"};break;case"image":t={type:"swell_image",defaultValue:""};break;case"asset":case"document":case"video":t={type:"swell_file"};break;default:t={type:"swell_short_text"};break}return{...e,...t}}function B(n,e,t){if(t===void 0)return null;switch(n?.find(r=>r.id===e)?.type){default:return t}}function _6(n,e){return e?.reduce((t,i)=>{for(let r of i.fields||[])r?.id&&(t[r.id]=n[r.id]);return t},{})}function M6(n,e){if(e)return{settings:e.fields.reduce((t,i)=>(i?.id&&(t[i.id]=n[i.id]),t),{$locale:n.$locale}),id:e.id,blocks:n.Blocks?.filter(t=>!!t.props.compiled?._component).map(t=>{let i=t.props.compiled.props,r=t.props.compiled._component.split("__")[2],o=e.blocks?.find(a=>a.type===r);return{type:r,settings:o?.fields?.reduce((a,s)=>(s?.id&&(a[s.id]=i[s.id]),a),{$locale:i.$locale})||{}}})}}var k4=!0;async function ad(n,e,t){let i=await E6(n,t),r=await dt(n,e),o=await a5(n,i),a=await ht(n,e);return{pageTemplate:i,allSections:r,pageSections:o,layoutSectionGroups:a}}async function E6(n,e){let t=null;if(t=await n.getThemeTemplateConfigByType("templates",e),t)return t.file_path.endsWith(".liquid")?t.file_data:JSON.parse(t.file_data)}function P6(n,e){return n.reduce((t,i)=>(i.enabled_on?L4(i.enabled_on,"groups",e)&&t.push(String(i.id)):i.disabled_on?L4(i.disabled_on,"groups",e)||t.push(String(i.id)):i.id===e&&t.push(String(i.id)),t),[])}function v6(n,e){return e.map(t=>({prop:S3(t.id),type:"component-collection",label:t.label,required:!0,noInline:k4,accepts:P6(n,t.type)}))}function L4(n,e,t){return!!(n.templates==="*"||n[e]?.includes(t))}function R6(n,e,t){return n.reduce((i,r)=>(r.enabled_on?L4(r.enabled_on,"templates",t)&&i.push(String(r.id)):r.disabled_on?L4(r.disabled_on,"templates",t)||i.push(String(r.id)):e.some(({type:o})=>o===r.id)||i.push(String(r.id)),i),[])}function D6(n){return(n?.configs?.editor?.settings??[]).reduce((e,t)=>{for(let i of t.fields||[])e.push({prop:i.id,label:i.label,optional:!0,group:t.label,...q3(i)});return e},[])}function x6(n){let e=[];for(let t of n){let i=Array.isArray(t.blocks)&&t.blocks.length>0;e.push({id:t.id,label:t.label,schema:[...(t.fields||[]).reduce((r,o)=>(o.id&&o.type&&r.push({prop:o.id,label:o.label,optional:!0,...q3(o)}),r),[]),...i?[{prop:"Blocks",type:"component-collection",required:!0,noInline:k4,accepts:(t.blocks||[]).map(r=>`Block__${t.id}__${r.type}`),defaultValue:t.presets?.reduce((r,o,a)=>o.blocks?o.blocks.reduce((s,l)=>{let h=t.blocks?.find(({type:u})=>u===l.type);return h&&s.push({_id:`Block__${t.id}__${l.type}__preset_${a}`,_component:`Block__${t.id}__${l.type}`,...(0,U.reduce)(h.fields,(u,d)=>(d.id&&(u[d.id]=B(h.fields,d.id,d.default)),u),{})}),s},r):r,[]),placeholderAppearance:{height:50,label:"Add block",aspectRatio:1}}]:[],{prop:"custom_css",type:"swell_css",label:"Custom CSS",description:"Add custom CSS for this section",layout:"column",isLabelHidden:!0,params:{rows:5,placeholder:"Enter custom CSS..."}},{prop:"$locale",type:"swell_locale",isLabelHidden:!0}],styles:()=>({styled:{Root:{}}})}),i&&e.push(...(t.blocks||[]).map(r=>({id:`Block__${t.id}__${r.type}`,label:r.label,schema:(r.fields||[]).reduce((o,a)=>(a.id&&a.type&&o.push({prop:a.id,label:a.label,optional:!0,...q3(a)}),o),[{prop:"$locale",type:"swell_locale",isLabelHidden:!0}]),styles:()=>({styled:{Root:{}}})})))}return e}function j6(n){return n?.configs?.editor?.settings?.reduce((e,t)=>{for(let i of t.fields||[])i?.id&&(e[i.id]=B(t.fields,i.id,n?.configs?.theme?.[i.id]));return e},{})}function Z6(n){return n.reduce((e,t)=>(e[S3(t.id)]=t.sectionConfigs.map(({section:i,settings:r,schema:o})=>({_id:`SectionGroup__${i.type}_${ut()}`,_component:`${i.type}`,...(0,U.reduce)(r?.section.settings,(a,s,l)=>(a[l]=B(o?.fields,l,s),a),{}),custom_css:r?.section.custom_css||"",...r?.section.blocks?{Blocks:r.section.blocks.map(a=>({_id:`Block__${i.type}__${a.type}_${ut()}`,_component:`Block__${i.type}__${a.type}`,...(0,U.reduce)(a.settings,(s,l,h)=>(s[h]=B(o?.blocks?.find(({type:u})=>u===a.type)?.fields,h,l),s),{})}))}:void 0})),e),{})}function F6(n){return(n||"").replaceAll("/","_")}function N6(n){let e=[];for(let t of n)t.presets&&e.push(...t.presets.map((i,r)=>({id:`${t.id}__preset_${r}`,entry:{_id:`${t.id}__preset_${r}`,_component:t.id,custom_css:i.settings?.custom_css||"",...(0,U.reduce)(t.fields,(o,a)=>(a.id&&(o[a.id]=B(t.fields,a.id,i.settings?.[a.id])),o),{}),Blocks:i.blocks?.reduce((o,a)=>{let s=t.blocks?.find(({type:l})=>l===a.type);return s&&o.push({_id:`Block__${t.id}__${a.type}__preset_${r}`,_component:`Block__${t.id}__${a.type}`,...(0,U.reduce)(s.fields,(l,h)=>(h.id&&(l[h.id]=B(s.fields,h.id,a.settings?.[h.id])),l),{})}),o},[])}}))),t.blocks&&e.push(...t.blocks.map(i=>({id:`Block__${t.id}__${i.type}`,entry:{_id:`Block__${t.id}__${i.type}`,_component:`Block__${t.id}__${i.type}`,...(0,U.reduce)(i.fields,(r,o)=>(o.id&&o.default!==void 0&&(r[o.id]=B(i.fields,o.id,o.default)),r),{})}})));return e.filter(t=>Object.keys(t.entry).some(i=>i!=="_id"&&i!=="_component"))}function sd(n,e,t,i,r){let o={id:"swell_global",label:"Theme settings",schema:[{prop:"swell_page",type:"component",required:!0,accepts:["swell_page"],isNonChangable:!0,noInline:k4},{prop:"$locale",type:"swell_locale",isLabelHidden:!0},...D6(n)],groups:(n?.configs?.editor?.settings??[]).map(u=>({key:u.label,label:u.label,collapsable:!0,collapsed:!0})),styles:()=>({styled:{Root:{}}})},a={id:"swell_page",label:"Page settings",schema:[{prop:u4,type:"component-collection",required:!0,noInline:k4,accepts:R6(e,i,r),placeholderAppearance:{height:250,label:"Add section",aspectRatio:1}},...v6(e,i)],allowSave:!0,styles:()=>({styled:{Root:{}}})},s=[o,a,...x6(e)],l=o.schema.find(u=>u.prop==="color_schemes");if(l){let u=l.params,{fields:d=[]}=u;s.push({id:"swell_color_scheme_group",label:"Swell color scheme",schema:d.map(m=>({prop:m.id,label:m.label,optional:!0,...q3({...m,type:m.id==="background_gradient"?"text":m.type})})),styles(){return{styled:{Root:{}}}}})}let h=[{id:"swell_global",entry:{_id:"swell_global",_component:"swell_global",...j6(n),$locale:n?.configs?.theme?.$locale,swell_page:[{_id:"swell_page",_component:"swell_page",ContentSections:t.map(({section:u,settings:d,schema:m})=>({_id:F6(u.id),_component:`${u.type}`,custom_css:d?.section?.custom_css||"",disabled:d?.section?.disabled||!1,$locale:d?.section?.settings?.$locale,...(0,U.reduce)(m?.fields,(p,g)=>(g?.id&&(p[g.id]=B(m?.fields,g.id,d?.section?.settings?.[g.id])),p),{}),...u?.blocks?{Blocks:Object.entries(u.blocks).map(([p,g])=>({_id:`Block__${p}__${g.type}_${Math.random()}`,_component:`Block__${u.type}__${g.type}`,disabled:g.disabled||!1,...(0,U.reduce)(g.settings,(C,f,N)=>(C[N]=B(m?.blocks?.find(({type:h3})=>h3===g.type)?.fields,N,f),C),{})}))}:void 0})),...Z6(i)}]}},{id:"swell_page",entry:{_id:"swell_page",_component:"swell_page"}},...N6(e)];return{easyblocksConfig:{components:s,templates:h,backend:I6(),hideCloseButton:!0,allowSave:!0,readOnly:!1,locales:[{code:"en-US",isDefault:!0}],types:{swell_css:{type:"inline",widget:{id:"SwellCSS"}},swell_locale:{type:"inline",widget:{id:"SwellLocale"}},swell_boolean:{type:"inline",widget:{id:"SwellBoolean"}},swell_color:{type:"inline",widget:{id:"SwellColor"}},swell_color_scheme:{type:"inline",widget:{id:"SwellColorScheme"}},swell_color_scheme_group:{type:"inline",widget:{id:"SwellColorSchemeGroup"}},swell_font:{type:"inline",widget:{id:"SwellFont"}},swell_header:{type:"inline",widget:{id:"SwellHeader"}},swell_icon:{type:"inline",widget:{id:"SwellIcon"}},swell_lookup:{type:"inline",widget:{id:"SwellLookup"}},swell_menu:{type:"inline",widget:{id:"SwellMenu"}},swell_url:{type:"inline",widget:{id:"SwellUrl"}},swell_number:{type:"inline",widget:{id:"SwellNumber"}},swell_select:{type:"inline",widget:{id:"SwellSelect"}},swell_radio:{type:"inline",widget:{id:"SwellRadio"}},swell_short_text:{type:"inline",widget:{id:"SwellText"}},swell_long_text:{type:"inline",widget:{id:"SwellTextarea"}},swell_paragraph:{type:"inline",widget:{id:"SwellParagraph"}},swell_editor:{type:"inline",widget:{id:"SwellEditor"}},swell_file:{type:"inline",widget:{id:"SwellFile"}},swell_image:{type:"inline",widget:{id:"SwellImage"}}},tokens:{colors:[],fonts:[]}}}}function ld(n,e,t){let i=n.reduce((a,s)=>(a[`${s.id}`]=t("pageSection",s),a),{}),r=e.reduce((a,s)=>(a[S3(s.id)]=t("layoutSectionGroup",s),a),{}),o=n.reduce((a,s)=>{if(s.blocks)for(let l of s.blocks){let h=`Block__${s.id}__${l.type}`;a[h]=t("block",{section:s,block:l})}return a},{});return{...i,...r,...o,swell_page:t("root"),swell_global:t("global")}}function I6(){return{documents:{get({id:e}){console.log("Easyblocks backend documents.get()",e);let t={id:e,version:1,entry:{_id:"page",_component:"swell_page"}};return Promise.resolve(t)},create(e){return console.log("Easyblocks backend documents.create()",e),Promise.resolve({})},update(e){return console.log("Easyblocks backend documents.update()",e),Promise.resolve({})}},templates:{get(e){return console.log("Easyblocks backend templates.get()",e),Promise.resolve({})},getAll(){return console.log("Easyblocks backend get templates.getAll()"),Promise.resolve([])},create(e){return console.log("Easyblocks backend get templates.create()",e),Promise.resolve({})},update(e){return console.log("Easyblocks backend get templates.update()",e),Promise.resolve({})},delete(e){return console.log("Easyblocks backend get templates.delete()",e),Promise.resolve()}}}}function ut(){return(Math.random()+1).toString(36).substring(7)}function b4(n,e){let i=n?.storefront?.options?.getCookie;return typeof i=="function"&&i(e)||""}var mt=class extends T{constructor(e,t,i={}){super(e,"",t,i,async function(){let r=await Ct(e,this._resourceName,t,i);return G3(this._resourceName,r,e,"",t,i)})}},pt=class extends n3{constructor(e,t,i={}){super(e,"",async function(){let r=await Ct(e,this._resourceName,t,i);return G3(this._resourceName,r,e,"",t,i)})}};async function Ct(n,e,t,i){let r=new URLSearchParams({...t&&{slug:t},...i&&{query:JSON.stringify(i)}}),o=r.size>0?`?${r}`:"",a=b4(n,"swell-session"),s=b4(n,"swell-data")||{};return(await fetch(`${n.storefront_url}/resources/${e}.json/${o}`,{headers:{"X-Session":a,"Swell-Data":JSON.stringify(s)}})).json()}function G3(n,e,t,i="",r,o){let a={};for(let[s,l]of Object.entries(e)){let h=i+`${i===""?"":"/"}${s}`,u;switch(l?._type){case"SwellStorefrontCollection":u=q6;break;case"SwellStorefrontRecord":u=B6;break;case"createStorefrontResource":u=H6;break;default:break}a[s]=u?u(n,t,h,r,o):l}return a}function H6(n,e,t,i,r){return new E(async function(){let o=await l5(e,n,t,i,r);return G3(n,o,e,t,i,r)})}function B6(n,e,t,i,r){let o=gt(i,r);return new T(e,n,t,o,async function(){let a=await l5(e,n,t,i,r);return G3(n,a,e,t,i,r)})}function q6(n,e,t,i,r){let o=gt(i,r);return new A(e,n,o,async function(){let a=await l5(e,n,t,i,r);return G3(n,a,e,t,i,r)})}async function l5(n,e,t,i,r){let o=new URLSearchParams({path:t,...i&&{slug:i},...r&&{query:JSON.stringify(r)}}),a=o.size>0?`?${o}`:"",s=b4(n,"swell-session"),l=b4(n,"swell-data")||{};return(await fetch(`${n.storefront_url}/resources/${e}.json${a}`,{headers:{"X-Session":s,"Swell-Data":JSON.stringify(l)}})).json()}function gt(n,e){return{...n&&{slug:n},...e}}})();
|
|
950
950
|
//# sourceMappingURL=index.js.map
|