@storyblok/js 2.0.13 → 2.0.14

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,3 +1,3 @@
1
- (function(d,p){typeof exports=="object"&&typeof module<"u"?p(exports):typeof define=="function"&&define.amd?define(["exports"],p):(d=typeof globalThis<"u"?globalThis:d||self,p(d.storyblok={}))})(this,function(d){"use strict";let p=!1;const v=[],T=n=>new Promise((e,t)=>{if(typeof window>"u"||(window.storyblokRegisterEvent=r=>{if(window.location===window.parent.location){console.warn("You are not in Draft Mode or in the Visual Editor.");return}p?r():v.push(r)},document.getElementById("storyblok-javascript-bridge")))return;const s=document.createElement("script");s.async=!0,s.src=n,s.id="storyblok-javascript-bridge",s.onerror=r=>t(r),s.onload=r=>{v.forEach(o=>o()),p=!0,e(r)},document.getElementsByTagName("head")[0].appendChild(s)});var S=Object.defineProperty,x=(n,e,t)=>e in n?S(n,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):n[e]=t,c=(n,e,t)=>(x(n,typeof e!="symbol"?e+"":e,t),t);function w(n){return!(n!==n||n===1/0||n===-1/0)}function P(n,e,t){if(!w(e))throw new TypeError("Expected `limit` to be a finite number");if(!w(t))throw new TypeError("Expected `interval` to be a finite number");const s=[];let r=[],o=0;const i=function(){o++;const l=setTimeout(function(){o--,s.length>0&&i(),r=r.filter(function(u){return u!==l})},t);r.indexOf(l)<0&&r.push(l);const h=s.shift();h.resolve(n.apply(h.self,h.args))},a=function(...l){const h=this;return new Promise(function(u,k){s.push({resolve:u,reject:k,args:l,self:h}),o<e&&i()})};return a.abort=function(){r.forEach(clearTimeout),r=[],s.forEach(function(l){l.reject(function(){Error.call(this,"Throttled function aborted"),this.name="AbortError"})}),s.length=0},a}const O=function(n,e){const t={};for(const s in n){const r=n[s];e.indexOf(s)>-1&&r!==null&&(t[s]=r)}return t},I=n=>n==="email",C=()=>({singleTag:"hr"}),A=()=>({tag:"blockquote"}),M=()=>({tag:"ul"}),N=n=>({tag:["pre",{tag:"code",attrs:n.attrs}]}),L=()=>({singleTag:"br"}),U=n=>({tag:`h${n.attrs.level}`}),B=n=>({singleTag:[{tag:"img",attrs:O(n.attrs,["src","alt","title"])}]}),H=()=>({tag:"li"}),q=()=>({tag:"ol"}),D=()=>({tag:"p"}),J=()=>({tag:"b"}),F=()=>({tag:"strike"}),V=()=>({tag:"u"}),z=()=>({tag:"strong"}),Y=()=>({tag:"code"}),K=()=>({tag:"i"}),Q=n=>{const e={...n.attrs},{linktype:t="url"}=n.attrs;return I(t)&&(e.href=`mailto:${e.href}`),e.anchor&&(e.href=`${e.href}#${e.anchor}`,delete e.anchor),{tag:[{tag:"a",attrs:e}]}},G=n=>({tag:[{tag:"span",attrs:n.attrs}]}),R={nodes:{horizontal_rule:C,blockquote:A,bullet_list:M,code_block:N,hard_break:L,heading:U,image:B,list_item:H,ordered_list:q,paragraph:D},marks:{bold:J,strike:F,underline:V,strong:z,code:Y,italic:K,link:Q,styled:G}},W=function(n){const e={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#39;"},t=/[&<>"']/g,s=RegExp(t.source);return n&&s.test(n)?n.replace(t,r=>e[r]):n};class f{constructor(e){c(this,"marks"),c(this,"nodes"),e||(e=R),this.marks=e.marks||[],this.nodes=e.nodes||[]}addNode(e,t){this.nodes[e]=t}addMark(e,t){this.marks[e]=t}render(e){if(e&&e.content&&Array.isArray(e.content)){let t="";return e.content.forEach(s=>{t+=this.renderNode(s)}),t}return console.warn("The render method must receive an object with a content field, which is an array"),""}renderNode(e){const t=[];e.marks&&e.marks.forEach(r=>{const o=this.getMatchingMark(r);o&&t.push(this.renderOpeningTag(o.tag))});const s=this.getMatchingNode(e);return s&&s.tag&&t.push(this.renderOpeningTag(s.tag)),e.content?e.content.forEach(r=>{t.push(this.renderNode(r))}):e.text?t.push(W(e.text)):s&&s.singleTag?t.push(this.renderTag(s.singleTag," /")):s&&s.html&&t.push(s.html),s&&s.tag&&t.push(this.renderClosingTag(s.tag)),e.marks&&e.marks.slice(0).reverse().forEach(r=>{const o=this.getMatchingMark(r);o&&t.push(this.renderClosingTag(o.tag))}),t.join("")}renderTag(e,t){return e.constructor===String?`<${e}${t}>`:e.map(s=>{if(s.constructor===String)return`<${s}${t}>`;{let r=`<${s.tag}`;if(s.attrs)for(const o in s.attrs){const i=s.attrs[o];i!==null&&(r+=` ${o}="${i}"`)}return`${r}${t}>`}}).join("")}renderOpeningTag(e){return this.renderTag(e,"")}renderClosingTag(e){return e.constructor===String?`</${e}>`:e.slice(0).reverse().map(t=>t.constructor===String?`</${t}>`:`</${t.tag}>`).join("")}getMatchingNode(e){const t=this.nodes[e.type];if(typeof t=="function")return t(e)}getMatchingMark(e){const t=this.marks[e.type];if(typeof t=="function")return t(e)}}class _{constructor(){c(this,"isCDNUrl",(e="")=>e.indexOf("/cdn/")>-1),c(this,"getOptionsPage",(e,t=25,s=1)=>({...e,per_page:t,page:s})),c(this,"delay",e=>new Promise(t=>setTimeout(t,e))),c(this,"arrayFrom",(e=0,t)=>[...Array(e)].map(t)),c(this,"range",(e=0,t=e)=>{const s=Math.abs(t-e)||0,r=e<t?1:-1;return this.arrayFrom(s,(o,i)=>i*r+e)}),c(this,"asyncMap",async(e,t)=>Promise.all(e.map(t))),c(this,"flatMap",(e=[],t)=>e.map(t).reduce((s,r)=>[...s,...r],[]))}stringify(e,t,s){const r=[];for(const o in e){if(!Object.prototype.hasOwnProperty.call(e,o))continue;const i=e[o],a=s?"":encodeURIComponent(o);let l;typeof i=="object"?l=this.stringify(i,t?t+encodeURIComponent("["+a+"]"):a,Array.isArray(i)):l=(t?t+encodeURIComponent("["+a+"]"):a)+"="+encodeURIComponent(i),r.push(l)}return r.join("&")}}class X{constructor(e){c(this,"baseURL"),c(this,"timeout"),c(this,"headers"),c(this,"responseInterceptor"),c(this,"fetch"),c(this,"ejectInterceptor"),c(this,"url"),c(this,"parameters"),this.baseURL=e.baseURL,this.headers=e.headers||[],this.timeout=e!=null&&e.timeout?e.timeout*1e3:0,this.responseInterceptor=e.responseInterceptor,this.fetch=(...t)=>e.fetch?e.fetch(...t):fetch(...t),this.ejectInterceptor=!1,this.url="",this.parameters={}}get(e,t){return this.url=e,this.parameters=t,this._methodHandler("get")}post(e,t){return this.url=e,this.parameters=t,this._methodHandler("post")}put(e,t){return this.url=e,this.parameters=t,this._methodHandler("put")}delete(e,t){return this.url=e,this.parameters=t,this._methodHandler("delete")}async _responseHandler(e){const t=[],s={data:{},headers:{},status:0,statusText:""};e.status!==204&&await e.json().then(r=>{s.data=r});for(const r of e.headers.entries())t[r[0]]=r[1];return s.headers={...t},s.status=e.status,s.statusText=e.statusText,s}async _methodHandler(e){let t=`${this.baseURL}${this.url}`,s=null;if(e==="get"){const l=new _;t=`${this.baseURL}${this.url}?${l.stringify(this.parameters)}`}else s=JSON.stringify(this.parameters);const r=new URL(t),o=new AbortController,{signal:i}=o;let a;this.timeout&&(a=setTimeout(()=>o.abort(),this.timeout));try{const l=await this.fetch(`${r}`,{method:e,headers:this.headers,body:s,signal:i});this.timeout&&clearTimeout(a);const h=await this._responseHandler(l);return this.responseInterceptor&&!this.ejectInterceptor?this._statusHandler(this.responseInterceptor(h)):this._statusHandler(h)}catch(l){return{message:l}}}eject(){this.ejectInterceptor=!0}_statusHandler(e){const t=/20[0-6]/g;return new Promise((s,r)=>{if(t.test(`${e.status}`))return s(e);const o={message:new Error(e.statusText),status:e.status,response:e.data.error||e.data.slug};r(o)})}}let m={};const g={};class Z{constructor(e,t){if(c(this,"client"),c(this,"maxRetries"),c(this,"throttle"),c(this,"accessToken"),c(this,"cache"),c(this,"helpers"),c(this,"relations"),c(this,"links"),c(this,"richTextResolver"),c(this,"resolveNestedRelations"),!t){const o=e.region?`-${e.region}`:"",i=e.https===!1?"http":"https";e.oauthToken?t=`${i}://api${o}.storyblok.com/v1`:t=`${i}://api${o}.storyblok.com/v2`}const s=new Headers;s.set("Content-Type","application/json"),s.set("Accept","application/json"),s.forEach((o,i)=>{e.headers&&e.headers[i]&&s.set(i,e.headers[i])});let r=5;e.oauthToken&&(s.set("Authorization",e.oauthToken),r=3),e.rateLimit&&(r=e.rateLimit),e.richTextSchema?this.richTextResolver=new f(e.richTextSchema):this.richTextResolver=new f,e.componentResolver&&this.setComponentResolver(e.componentResolver),this.maxRetries=e.maxRetries,this.throttle=P(this.throttledRequest,r,1e3),this.accessToken=e.accessToken||"",this.relations={},this.links={},this.cache=e.cache||{clear:"manual"},this.helpers=new _,this.resolveNestedRelations=!1,this.client=new X({baseURL:t,timeout:e.timeout||0,headers:s,responseInterceptor:e.responseInterceptor,fetch:e.fetch})}setComponentResolver(e){this.richTextResolver.addNode("blok",t=>{let s="";return t.attrs.body.forEach(r=>{s+=e(r.component,r)}),{html:s}})}parseParams(e){return e.version||(e.version="published"),e.token||(e.token=this.getToken()),e.cv||(e.cv=g[e.token]),Array.isArray(e.resolve_relations)&&(e.resolve_relations=e.resolve_relations.join(",")),e}factoryParamOptions(e,t){return this.helpers.isCDNUrl(e)?this.parseParams(t):t}makeRequest(e,t,s,r){const o=this.factoryParamOptions(e,this.helpers.getOptionsPage(t,s,r));return this.cacheResponse(e,o)}get(e,t){t||(t={});const s=`/${e}`,r=this.factoryParamOptions(s,t);return this.cacheResponse(s,r)}async getAll(e,t,s){const r=(t==null?void 0:t.per_page)||25,o=`/${e}`,i=o.split("/"),a=s||i[i.length-1],l=1,h=await this.makeRequest(o,t,r,l),u=h.total?Math.ceil(h.total/r):1,k=await this.helpers.asyncMap(this.helpers.range(l,u),b=>this.makeRequest(o,t,r,b+1));return this.helpers.flatMap([h,...k],b=>Object.values(b.data[a]))}post(e,t){const s=`/${e}`;return Promise.resolve(this.throttle("post",s,t))}put(e,t){const s=`/${e}`;return Promise.resolve(this.throttle("put",s,t))}delete(e,t){const s=`/${e}`;return Promise.resolve(this.throttle("delete",s,t))}getStories(e){return this.get("cdn/stories",e)}getStory(e,t){return this.get(`cdn/stories/${e}`,t)}getToken(){return this.accessToken}ejectInterceptor(){this.client.eject()}_cleanCopy(e){return JSON.parse(JSON.stringify(e))}_insertLinks(e,t){const s=e[t];s&&s.fieldtype=="multilink"&&s.linktype=="story"&&typeof s.id=="string"&&this.links[s.id]?s.story=this._cleanCopy(this.links[s.id]):s&&s.linktype==="story"&&typeof s.uuid=="string"&&this.links[s.uuid]&&(s.story=this._cleanCopy(this.links[s.uuid]))}_insertRelations(e,t,s){if(s.indexOf(`${e.component}.${t}`)>-1){if(typeof e[t]=="string")this.relations[e[t]]&&(e[t]=this._cleanCopy(this.relations[e[t]]));else if(e[t]&&e[t].constructor===Array){const r=[];e[t].forEach(o=>{this.relations[o]&&r.push(this._cleanCopy(this.relations[o]))}),e[t]=r}}}iterateTree(e,t){const s=r=>{if(r!=null){if(r.constructor===Array)for(let o=0;o<r.length;o++)s(r[o]);else if(r.constructor===Object){if(r._stopResolving)return;for(const o in r)(r.component&&r._uid||r.type==="link")&&(this._insertRelations(r,o,t),this._insertLinks(r,o)),s(r[o])}}};s(e.content)}async resolveLinks(e,t){let s=[];if(e.link_uuids){const r=e.link_uuids.length,o=[],i=50;for(let a=0;a<r;a+=i){const l=Math.min(r,a+i);o.push(e.link_uuids.slice(a,l))}for(let a=0;a<o.length;a++)(await this.getStories({per_page:i,language:t.language,version:t.version,by_uuids:o[a].join(",")})).data.stories.forEach(l=>{s.push(l)})}else s=e.links;s.forEach(r=>{this.links[r.uuid]={...r,_stopResolving:!0}})}async resolveRelations(e,t){let s=[];if(e.rel_uuids){const r=e.rel_uuids.length,o=[],i=50;for(let a=0;a<r;a+=i){const l=Math.min(r,a+i);o.push(e.rel_uuids.slice(a,l))}for(let a=0;a<o.length;a++)(await this.getStories({per_page:i,language:t.language,version:t.version,by_uuids:o[a].join(",")})).data.stories.forEach(l=>{s.push(l)})}else s=e.rels;s&&s.length>0&&s.forEach(r=>{this.relations[r.uuid]={...r,_stopResolving:!0}})}async resolveStories(e,t){var s,r;let o=[];if(typeof t.resolve_relations<"u"&&t.resolve_relations.length>0&&(typeof t.resolve_relations=="string"&&(o=t.resolve_relations.split(",")),await this.resolveRelations(e,t)),t.resolve_links&&["1","story","url"].indexOf(t.resolve_links)>-1&&((s=e.links)!=null&&s.length||(r=e.link_uuids)!=null&&r.length)&&await this.resolveLinks(e,t),this.resolveNestedRelations)for(const i in this.relations)this.iterateTree(this.relations[i],o);e.story?this.iterateTree(e.story,o):e.stories.forEach(i=>{this.iterateTree(i,o)})}cacheResponse(e,t,s){return new Promise((r,o)=>{const i=this.helpers.stringify({url:e,params:t}),a=this.cacheProvider();if(this.cache.clear==="auto"&&t.version==="draft"&&this.flushCache(),t.version==="published"&&e!="/cdn/spaces/me"){const l=a.get(i);if(l)return r(l)}try{(async()=>{var l;const h=await this.throttle("get",e,t);let u={data:h.data,headers:h.headers};if((l=h.headers)!=null&&l["per-page"]&&(u=Object.assign({},u,{perPage:h.headers["per-page"]?parseInt(h.headers["per-page"]):0,total:h.headers["per-page"]?parseInt(h.headers.total):0})),h.status!=200)return o(h);(u.data.story||u.data.stories)&&await this.resolveStories(u.data,t),t.version==="published"&&e!="/cdn/spaces/me"&&a.set(i,u),u.data.cv&&t.token&&(t.version=="draft"&&g[t.token]!=u.data.cv&&this.flushCache(),g[t.token]=u.data.cv),r(u)})()}catch{}})}throttledRequest(e,t,s){return this.client[e](t,s)}cacheVersions(){return g}cacheVersion(){return g[this.accessToken]}setCacheVersion(e){this.accessToken&&(g[this.accessToken]=e)}cacheProvider(){switch(this.cache.type){case"memory":return{get(e){return m[e]},getAll(){return m},set(e,t){m[e]=t},flush(){m={}}};default:return{get(){},getAll(){},set(){},flush(){}}}}flushCache(){return this.cacheProvider().flush(),this}}const ee=(n={})=>{const{apiOptions:e}=n;if(!e.accessToken){console.error("You need to provide an access token to interact with Storyblok API. Read https://www.storyblok.com/docs/api/content-delivery#topics/authentication");return}return{storyblokApi:new Z(e)}},te=n=>{if(typeof n!="object"||typeof n._editable>"u")return{};const e=JSON.parse(n._editable.replace(/^<!--#storyblok#/,"").replace(/-->$/,""));return{"data-blok-c":JSON.stringify(e),"data-blok-uid":e.id+"-"+e.uid}};let y;const $="https://app.storyblok.com/f/storyblok-v2-latest.js",j=(n,e,t={})=>{if(!(typeof window>"u")){if(typeof window.storyblokRegisterEvent>"u"){console.error("Storyblok Bridge is disabled. Please enable it to use it. Read https://github.com/storyblok/storyblok-js");return}if(!n){console.warn("Story ID is not defined. Please provide a valid ID.");return}window.storyblokRegisterEvent(()=>{new window.StoryblokBridge(t).on(["input","published","change"],r=>{r.action==="input"&&r.story.id===n?e(r.story):(r.action==="change"||r.action==="published")&&r.storyId===n&&window.location.reload()})})}},se=(n={})=>{const{bridge:e,accessToken:t,use:s=[],apiOptions:r={},richText:o={}}=n;r.accessToken=r.accessToken||t;const i={bridge:e,apiOptions:r};let a={};return s.forEach(l=>{a={...a,...l(i)}}),e!==!1&&T($),y=new f(o.schema),o.resolver&&E(y,o.resolver),a},E=(n,e)=>{n.addNode("blok",t=>{let s="";return t.attrs.body.forEach(r=>{s+=e(r.component,r)}),{html:s}})},re=(n,e,t)=>{let s=t||y;if(!s){console.error("Please initialize the Storyblok SDK before calling the renderRichText function");return}return n===""?"":n?(e&&(s=new f(e.schema),e.resolver&&E(s,e.resolver)),s.render(n)):(console.warn(`${n} is not a valid Richtext object. This might be because the value of the richtext field is empty.
1
+ (function(d,p){typeof exports=="object"&&typeof module<"u"?p(exports):typeof define=="function"&&define.amd?define(["exports"],p):(d=typeof globalThis<"u"?globalThis:d||self,p(d.storyblok={}))})(this,function(d){"use strict";let p=!1;const v=[],w=o=>new Promise((t,e)=>{if(typeof window>"u"||(window.storyblokRegisterEvent=r=>{if(window.location===window.parent.location){console.warn("You are not in Draft Mode or in the Visual Editor.");return}p?r():v.push(r)},document.getElementById("storyblok-javascript-bridge")))return;const s=document.createElement("script");s.async=!0,s.src=o,s.id="storyblok-javascript-bridge",s.onerror=r=>e(r),s.onload=r=>{v.forEach(n=>n()),p=!0,t(r)},document.getElementsByTagName("head")[0].appendChild(s)});var E=Object.defineProperty,S=(o,t,e)=>t in o?E(o,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):o[t]=e,c=(o,t,e)=>(S(o,typeof t!="symbol"?t+"":t,e),e);function T(o){return!(o!==o||o===1/0||o===-1/0)}function x(o,t,e){if(!T(t))throw new TypeError("Expected `limit` to be a finite number");if(!T(e))throw new TypeError("Expected `interval` to be a finite number");const s=[];let r=[],n=0;const i=function(){n++;const l=setTimeout(function(){n--,s.length>0&&i(),r=r.filter(function(u){return u!==l})},e);r.indexOf(l)<0&&r.push(l);const h=s.shift();h.resolve(o.apply(h.self,h.args))},a=function(...l){const h=this;return new Promise(function(u,k){s.push({resolve:u,reject:k,args:l,self:h}),n<t&&i()})};return a.abort=function(){r.forEach(clearTimeout),r=[],s.forEach(function(l){l.reject(function(){Error.call(this,"Throttled function aborted"),this.name="AbortError"})}),s.length=0},a}const O=function(o,t){const e={};for(const s in o){const r=o[s];t.indexOf(s)>-1&&r!==null&&(e[s]=r)}return e},I=o=>o==="email",C=()=>({singleTag:"hr"}),A=()=>({tag:"blockquote"}),M=()=>({tag:"ul"}),N=o=>({tag:["pre",{tag:"code",attrs:o.attrs}]}),L=()=>({singleTag:"br"}),U=o=>({tag:`h${o.attrs.level}`}),B=o=>({singleTag:[{tag:"img",attrs:O(o.attrs,["src","alt","title"])}]}),H=()=>({tag:"li"}),q=()=>({tag:"ol"}),D=()=>({tag:"p"}),J=()=>({tag:"b"}),F=()=>({tag:"strike"}),V=()=>({tag:"u"}),z=()=>({tag:"strong"}),Y=()=>({tag:"code"}),K=()=>({tag:"i"}),Q=o=>{const t={...o.attrs},{linktype:e="url"}=o.attrs;return I(e)&&(t.href=`mailto:${t.href}`),t.anchor&&(t.href=`${t.href}#${t.anchor}`,delete t.anchor),{tag:[{tag:"a",attrs:t}]}},G=o=>({tag:[{tag:"span",attrs:o.attrs}]}),R={nodes:{horizontal_rule:C,blockquote:A,bullet_list:M,code_block:N,hard_break:L,heading:U,image:B,list_item:H,ordered_list:q,paragraph:D},marks:{bold:J,strike:F,underline:V,strong:z,code:Y,italic:K,link:Q,styled:G}},W=function(o){const t={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#39;"},e=/[&<>"']/g,s=RegExp(e.source);return o&&s.test(o)?o.replace(e,r=>t[r]):o};class f{constructor(t){c(this,"marks"),c(this,"nodes"),t||(t=R),this.marks=t.marks||[],this.nodes=t.nodes||[]}addNode(t,e){this.nodes[t]=e}addMark(t,e){this.marks[t]=e}render(t){if(t&&t.content&&Array.isArray(t.content)){let e="";return t.content.forEach(s=>{e+=this.renderNode(s)}),e}return console.warn("The render method must receive an object with a content field, which is an array"),""}renderNode(t){const e=[];t.marks&&t.marks.forEach(r=>{const n=this.getMatchingMark(r);n&&e.push(this.renderOpeningTag(n.tag))});const s=this.getMatchingNode(t);return s&&s.tag&&e.push(this.renderOpeningTag(s.tag)),t.content?t.content.forEach(r=>{e.push(this.renderNode(r))}):t.text?e.push(W(t.text)):s&&s.singleTag?e.push(this.renderTag(s.singleTag," /")):s&&s.html&&e.push(s.html),s&&s.tag&&e.push(this.renderClosingTag(s.tag)),t.marks&&t.marks.slice(0).reverse().forEach(r=>{const n=this.getMatchingMark(r);n&&e.push(this.renderClosingTag(n.tag))}),e.join("")}renderTag(t,e){return t.constructor===String?`<${t}${e}>`:t.map(s=>{if(s.constructor===String)return`<${s}${e}>`;{let r=`<${s.tag}`;if(s.attrs)for(const n in s.attrs){const i=s.attrs[n];i!==null&&(r+=` ${n}="${i}"`)}return`${r}${e}>`}}).join("")}renderOpeningTag(t){return this.renderTag(t,"")}renderClosingTag(t){return t.constructor===String?`</${t}>`:t.slice(0).reverse().map(e=>e.constructor===String?`</${e}>`:`</${e.tag}>`).join("")}getMatchingNode(t){const e=this.nodes[t.type];if(typeof e=="function")return e(t)}getMatchingMark(t){const e=this.marks[t.type];if(typeof e=="function")return e(t)}}class _{constructor(){c(this,"isCDNUrl",(t="")=>t.indexOf("/cdn/")>-1),c(this,"getOptionsPage",(t,e=25,s=1)=>({...t,per_page:e,page:s})),c(this,"delay",t=>new Promise(e=>setTimeout(e,t))),c(this,"arrayFrom",(t=0,e)=>[...Array(t)].map(e)),c(this,"range",(t=0,e=t)=>{const s=Math.abs(e-t)||0,r=t<e?1:-1;return this.arrayFrom(s,(n,i)=>i*r+t)}),c(this,"asyncMap",async(t,e)=>Promise.all(t.map(e))),c(this,"flatMap",(t=[],e)=>t.map(e).reduce((s,r)=>[...s,...r],[]))}stringify(t,e,s){const r=[];for(const n in t){if(!Object.prototype.hasOwnProperty.call(t,n))continue;const i=t[n],a=s?"":encodeURIComponent(n);let l;typeof i=="object"?l=this.stringify(i,e?e+encodeURIComponent("["+a+"]"):a,Array.isArray(i)):l=(e?e+encodeURIComponent("["+a+"]"):a)+"="+encodeURIComponent(i),r.push(l)}return r.join("&")}}class X{constructor(t){c(this,"baseURL"),c(this,"timeout"),c(this,"headers"),c(this,"responseInterceptor"),c(this,"fetch"),c(this,"ejectInterceptor"),c(this,"url"),c(this,"parameters"),this.baseURL=t.baseURL,this.headers=t.headers||[],this.timeout=t!=null&&t.timeout?t.timeout*1e3:0,this.responseInterceptor=t.responseInterceptor,this.fetch=(...e)=>t.fetch?t.fetch(...e):fetch(...e),this.ejectInterceptor=!1,this.url="",this.parameters={}}get(t,e){return this.url=t,this.parameters=e,this._methodHandler("get")}post(t,e){return this.url=t,this.parameters=e,this._methodHandler("post")}put(t,e){return this.url=t,this.parameters=e,this._methodHandler("put")}delete(t,e){return this.url=t,this.parameters=e,this._methodHandler("delete")}async _responseHandler(t){const e=[],s={data:{},headers:{},status:0,statusText:""};t.status!==204&&await t.json().then(r=>{s.data=r});for(const r of t.headers.entries())e[r[0]]=r[1];return s.headers={...e},s.status=t.status,s.statusText=t.statusText,s}async _methodHandler(t){let e=`${this.baseURL}${this.url}`,s=null;if(t==="get"){const l=new _;e=`${this.baseURL}${this.url}?${l.stringify(this.parameters)}`}else s=JSON.stringify(this.parameters);const r=new URL(e),n=new AbortController,{signal:i}=n;let a;this.timeout&&(a=setTimeout(()=>n.abort(),this.timeout));try{const l=await this.fetch(`${r}`,{method:t,headers:this.headers,body:s,signal:i});this.timeout&&clearTimeout(a);const h=await this._responseHandler(l);return this.responseInterceptor&&!this.ejectInterceptor?this._statusHandler(this.responseInterceptor(h)):this._statusHandler(h)}catch(l){return{message:l}}}eject(){this.ejectInterceptor=!0}_statusHandler(t){const e=/20[0-6]/g;return new Promise((s,r)=>{if(e.test(`${t.status}`))return s(t);const n={message:new Error(t.statusText),status:t.status,response:t.data.error||t.data.slug};r(n)})}}let m={};const g={};class Z{constructor(t,e){if(c(this,"client"),c(this,"maxRetries"),c(this,"throttle"),c(this,"accessToken"),c(this,"cache"),c(this,"helpers"),c(this,"relations"),c(this,"links"),c(this,"richTextResolver"),c(this,"resolveNestedRelations"),!e){const n=t.region?`-${t.region}`:"",i=t.https===!1?"http":"https";t.oauthToken?e=`${i}://api${n}.storyblok.com/v1`:e=`${i}://api${n}.storyblok.com/v2`}const s=new Headers;s.set("Content-Type","application/json"),s.set("Accept","application/json"),s.forEach((n,i)=>{t.headers&&t.headers[i]&&s.set(i,t.headers[i])});let r=5;t.oauthToken&&(s.set("Authorization",t.oauthToken),r=3),t.rateLimit&&(r=t.rateLimit),t.richTextSchema?this.richTextResolver=new f(t.richTextSchema):this.richTextResolver=new f,t.componentResolver&&this.setComponentResolver(t.componentResolver),this.maxRetries=t.maxRetries,this.throttle=x(this.throttledRequest,r,1e3),this.accessToken=t.accessToken||"",this.relations={},this.links={},this.cache=t.cache||{clear:"manual"},this.helpers=new _,this.resolveNestedRelations=!1,this.client=new X({baseURL:e,timeout:t.timeout||0,headers:s,responseInterceptor:t.responseInterceptor,fetch:t.fetch})}setComponentResolver(t){this.richTextResolver.addNode("blok",e=>{let s="";return e.attrs.body.forEach(r=>{s+=t(r.component,r)}),{html:s}})}parseParams(t){return t.version||(t.version="published"),t.token||(t.token=this.getToken()),t.cv||(t.cv=g[t.token]),Array.isArray(t.resolve_relations)&&(t.resolve_relations=t.resolve_relations.join(",")),t}factoryParamOptions(t,e){return this.helpers.isCDNUrl(t)?this.parseParams(e):e}makeRequest(t,e,s,r){const n=this.factoryParamOptions(t,this.helpers.getOptionsPage(e,s,r));return this.cacheResponse(t,n)}get(t,e){e||(e={});const s=`/${t}`,r=this.factoryParamOptions(s,e);return this.cacheResponse(s,r)}async getAll(t,e,s){const r=(e==null?void 0:e.per_page)||25,n=`/${t}`,i=n.split("/"),a=s||i[i.length-1],l=1,h=await this.makeRequest(n,e,r,l),u=h.total?Math.ceil(h.total/r):1,k=await this.helpers.asyncMap(this.helpers.range(l,u),b=>this.makeRequest(n,e,r,b+1));return this.helpers.flatMap([h,...k],b=>Object.values(b.data[a]))}post(t,e){const s=`/${t}`;return Promise.resolve(this.throttle("post",s,e))}put(t,e){const s=`/${t}`;return Promise.resolve(this.throttle("put",s,e))}delete(t,e){const s=`/${t}`;return Promise.resolve(this.throttle("delete",s,e))}getStories(t){return this.get("cdn/stories",t)}getStory(t,e){return this.get(`cdn/stories/${t}`,e)}getToken(){return this.accessToken}ejectInterceptor(){this.client.eject()}_cleanCopy(t){return JSON.parse(JSON.stringify(t))}_insertLinks(t,e){const s=t[e];s&&s.fieldtype=="multilink"&&s.linktype=="story"&&typeof s.id=="string"&&this.links[s.id]?s.story=this._cleanCopy(this.links[s.id]):s&&s.linktype==="story"&&typeof s.uuid=="string"&&this.links[s.uuid]&&(s.story=this._cleanCopy(this.links[s.uuid]))}_insertRelations(t,e,s){if(s.indexOf(`${t.component}.${e}`)>-1){if(typeof t[e]=="string")this.relations[t[e]]&&(t[e]=this._cleanCopy(this.relations[t[e]]));else if(t[e]&&t[e].constructor===Array){const r=[];t[e].forEach(n=>{this.relations[n]&&r.push(this._cleanCopy(this.relations[n]))}),t[e]=r}}}iterateTree(t,e){const s=r=>{if(r!=null){if(r.constructor===Array)for(let n=0;n<r.length;n++)s(r[n]);else if(r.constructor===Object){if(r._stopResolving)return;for(const n in r)(r.component&&r._uid||r.type==="link")&&(this._insertRelations(r,n,e),this._insertLinks(r,n)),s(r[n])}}};s(t.content)}async resolveLinks(t,e){let s=[];if(t.link_uuids){const r=t.link_uuids.length,n=[],i=50;for(let a=0;a<r;a+=i){const l=Math.min(r,a+i);n.push(t.link_uuids.slice(a,l))}for(let a=0;a<n.length;a++)(await this.getStories({per_page:i,language:e.language,version:e.version,by_uuids:n[a].join(",")})).data.stories.forEach(l=>{s.push(l)})}else s=t.links;s.forEach(r=>{this.links[r.uuid]={...r,_stopResolving:!0}})}async resolveRelations(t,e){let s=[];if(t.rel_uuids){const r=t.rel_uuids.length,n=[],i=50;for(let a=0;a<r;a+=i){const l=Math.min(r,a+i);n.push(t.rel_uuids.slice(a,l))}for(let a=0;a<n.length;a++)(await this.getStories({per_page:i,language:e.language,version:e.version,by_uuids:n[a].join(",")})).data.stories.forEach(l=>{s.push(l)})}else s=t.rels;s&&s.length>0&&s.forEach(r=>{this.relations[r.uuid]={...r,_stopResolving:!0}})}async resolveStories(t,e){var s,r;let n=[];if(typeof e.resolve_relations<"u"&&e.resolve_relations.length>0&&(typeof e.resolve_relations=="string"&&(n=e.resolve_relations.split(",")),await this.resolveRelations(t,e)),e.resolve_links&&["1","story","url"].indexOf(e.resolve_links)>-1&&((s=t.links)!=null&&s.length||(r=t.link_uuids)!=null&&r.length)&&await this.resolveLinks(t,e),this.resolveNestedRelations)for(const i in this.relations)this.iterateTree(this.relations[i],n);t.story?this.iterateTree(t.story,n):t.stories.forEach(i=>{this.iterateTree(i,n)})}async cacheResponse(t,e,s){const r=this.helpers.stringify({url:t,params:e}),n=this.cacheProvider();if(this.cache.clear==="auto"&&e.version==="draft"&&await this.flushCache(),e.version==="published"&&t!="/cdn/spaces/me"){const i=await n.get(r);if(i)return Promise.resolve(i)}return new Promise((i,a)=>{try{(async()=>{var l;const h=await this.throttle("get",t,e);let u={data:h.data,headers:h.headers};if((l=h.headers)!=null&&l["per-page"]&&(u=Object.assign({},u,{perPage:h.headers["per-page"]?parseInt(h.headers["per-page"]):0,total:h.headers["per-page"]?parseInt(h.headers.total):0})),h.status!=200)return a(h);(u.data.story||u.data.stories)&&await this.resolveStories(u.data,e),e.version==="published"&&t!="/cdn/spaces/me"&&await n.set(r,u),u.data.cv&&e.token&&(e.version=="draft"&&g[e.token]!=u.data.cv&&await this.flushCache(),g[e.token]=u.data.cv),i(u)})()}catch{}})}throttledRequest(t,e,s){return this.client[t](e,s)}cacheVersions(){return g}cacheVersion(){return g[this.accessToken]}setCacheVersion(t){this.accessToken&&(g[this.accessToken]=t)}cacheProvider(){switch(this.cache.type){case"memory":return{get(t){return Promise.resolve(m[t])},getAll(){return Promise.resolve(m)},set(t,e){return m[t]=e,Promise.resolve(void 0)},flush(){return m={},Promise.resolve(void 0)}};case"custom":if(this.cache.custom)return this.cache.custom;default:return{get(){return Promise.resolve(void 0)},getAll(){return Promise.resolve(void 0)},set(){return Promise.resolve(void 0)},flush(){return Promise.resolve(void 0)}}}}async flushCache(){return await this.cacheProvider().flush(),this}}const tt=(o={})=>{const{apiOptions:t}=o;if(!t.accessToken){console.error("You need to provide an access token to interact with Storyblok API. Read https://www.storyblok.com/docs/api/content-delivery#topics/authentication");return}return{storyblokApi:new Z(t)}},et=o=>{if(typeof o!="object"||typeof o._editable>"u")return{};const t=JSON.parse(o._editable.replace(/^<!--#storyblok#/,"").replace(/-->$/,""));return{"data-blok-c":JSON.stringify(t),"data-blok-uid":t.id+"-"+t.uid}};let y;const $="https://app.storyblok.com/f/storyblok-v2-latest.js",P=(o,t,e={})=>{if(!(typeof window>"u")){if(typeof window.storyblokRegisterEvent>"u"){console.error("Storyblok Bridge is disabled. Please enable it to use it. Read https://github.com/storyblok/storyblok-js");return}if(!o){console.warn("Story ID is not defined. Please provide a valid ID.");return}window.storyblokRegisterEvent(()=>{new window.StoryblokBridge(e).on(["input","published","change"],r=>{r.action==="input"&&r.story.id===o?t(r.story):(r.action==="change"||r.action==="published")&&r.storyId===o&&window.location.reload()})})}},st=(o={})=>{const{bridge:t,accessToken:e,use:s=[],apiOptions:r={},richText:n={}}=o;r.accessToken=r.accessToken||e;const i={bridge:t,apiOptions:r};let a={};return s.forEach(l=>{a={...a,...l(i)}}),t!==!1&&w($),y=new f(n.schema),n.resolver&&j(y,n.resolver),a},j=(o,t)=>{o.addNode("blok",e=>{let s="";return e.attrs.body.forEach(r=>{s+=t(r.component,r)}),{html:s}})},rt=(o,t,e)=>{let s=e||y;if(!s){console.error("Please initialize the Storyblok SDK before calling the renderRichText function");return}return o===""?"":o?(t&&(s=new f(t.schema),t.resolver&&j(s,t.resolver)),s.render(o)):(console.warn(`${o} is not a valid Richtext object. This might be because the value of the richtext field is empty.
2
2
 
3
- For more info about the richtext object check https://github.com/storyblok/storyblok-js#rendering-rich-text`),"")},oe=()=>T($);d.RichTextResolver=f,d.RichTextSchema=R,d.apiPlugin=ee,d.loadStoryblokBridge=oe,d.registerStoryblokBridge=j,d.renderRichText=re,d.storyblokEditable=te,d.storyblokInit=se,d.useStoryblokBridge=j,Object.defineProperty(d,Symbol.toStringTag,{value:"Module"})});
3
+ For more info about the richtext object check https://github.com/storyblok/storyblok-js#rendering-rich-text`),"")},nt=()=>w($);d.RichTextResolver=f,d.RichTextSchema=R,d.apiPlugin=tt,d.loadStoryblokBridge=nt,d.registerStoryblokBridge=P,d.renderRichText=rt,d.storyblokEditable=et,d.storyblokInit=st,d.useStoryblokBridge=P,Object.defineProperty(d,Symbol.toStringTag,{value:"Module"})});
@@ -1,26 +1,26 @@
1
1
  let k = !1;
2
- const b = [], w = (n) => new Promise((e, t) => {
2
+ const v = [], w = (n) => new Promise((t, e) => {
3
3
  if (typeof window > "u" || (window.storyblokRegisterEvent = (r) => {
4
4
  if (window.location === window.parent.location) {
5
5
  console.warn("You are not in Draft Mode or in the Visual Editor.");
6
6
  return;
7
7
  }
8
- k ? r() : b.push(r);
8
+ k ? r() : v.push(r);
9
9
  }, document.getElementById("storyblok-javascript-bridge")))
10
10
  return;
11
11
  const s = document.createElement("script");
12
- s.async = !0, s.src = n, s.id = "storyblok-javascript-bridge", s.onerror = (r) => t(r), s.onload = (r) => {
13
- b.forEach((o) => o()), k = !0, e(r);
12
+ s.async = !0, s.src = n, s.id = "storyblok-javascript-bridge", s.onerror = (r) => e(r), s.onload = (r) => {
13
+ v.forEach((o) => o()), k = !0, t(r);
14
14
  }, document.getElementsByTagName("head")[0].appendChild(s);
15
15
  });
16
- var $ = Object.defineProperty, j = (n, e, t) => e in n ? $(n, e, { enumerable: !0, configurable: !0, writable: !0, value: t }) : n[e] = t, c = (n, e, t) => (j(n, typeof e != "symbol" ? e + "" : e, t), t);
17
- function v(n) {
16
+ var $ = Object.defineProperty, P = (n, t, e) => t in n ? $(n, t, { enumerable: !0, configurable: !0, writable: !0, value: e }) : n[t] = e, c = (n, t, e) => (P(n, typeof t != "symbol" ? t + "" : t, e), e);
17
+ function b(n) {
18
18
  return !(n !== n || n === 1 / 0 || n === -1 / 0);
19
19
  }
20
- function x(n, e, t) {
21
- if (!v(e))
20
+ function j(n, t, e) {
21
+ if (!b(t))
22
22
  throw new TypeError("Expected `limit` to be a finite number");
23
- if (!v(t))
23
+ if (!b(e))
24
24
  throw new TypeError("Expected `interval` to be a finite number");
25
25
  const s = [];
26
26
  let r = [], o = 0;
@@ -30,7 +30,7 @@ function x(n, e, t) {
30
30
  o--, s.length > 0 && i(), r = r.filter(function(u) {
31
31
  return u !== l;
32
32
  });
33
- }, t);
33
+ }, e);
34
34
  r.indexOf(l) < 0 && r.push(l);
35
35
  const h = s.shift();
36
36
  h.resolve(n.apply(h.self, h.args));
@@ -42,7 +42,7 @@ function x(n, e, t) {
42
42
  reject: f,
43
43
  args: l,
44
44
  self: h
45
- }), o < e && i();
45
+ }), o < t && i();
46
46
  });
47
47
  };
48
48
  return a.abort = function() {
@@ -53,14 +53,14 @@ function x(n, e, t) {
53
53
  }), s.length = 0;
54
54
  }, a;
55
55
  }
56
- const E = function(n, e) {
57
- const t = {};
56
+ const x = function(n, t) {
57
+ const e = {};
58
58
  for (const s in n) {
59
59
  const r = n[s];
60
- e.indexOf(s) > -1 && r !== null && (t[s] = r);
60
+ t.indexOf(s) > -1 && r !== null && (e[s] = r);
61
61
  }
62
- return t;
63
- }, P = (n) => n === "email", S = () => ({
62
+ return e;
63
+ }, E = (n) => n === "email", S = () => ({
64
64
  singleTag: "hr"
65
65
  }), O = () => ({
66
66
  tag: "blockquote"
@@ -82,7 +82,7 @@ const E = function(n, e) {
82
82
  singleTag: [
83
83
  {
84
84
  tag: "img",
85
- attrs: E(n.attrs, ["src", "alt", "title"])
85
+ attrs: x(n.attrs, ["src", "alt", "title"])
86
86
  }
87
87
  ]
88
88
  }), L = () => ({
@@ -104,12 +104,12 @@ const E = function(n, e) {
104
104
  }), V = () => ({
105
105
  tag: "i"
106
106
  }), z = (n) => {
107
- const e = { ...n.attrs }, { linktype: t = "url" } = n.attrs;
108
- return P(t) && (e.href = `mailto:${e.href}`), e.anchor && (e.href = `${e.href}#${e.anchor}`, delete e.anchor), {
107
+ const t = { ...n.attrs }, { linktype: e = "url" } = n.attrs;
108
+ return E(e) && (t.href = `mailto:${t.href}`), t.anchor && (t.href = `${t.href}#${t.anchor}`, delete t.anchor), {
109
109
  tag: [
110
110
  {
111
111
  tag: "a",
112
- attrs: e
112
+ attrs: t
113
113
  }
114
114
  ]
115
115
  };
@@ -144,54 +144,54 @@ const E = function(n, e) {
144
144
  styled: Y
145
145
  }
146
146
  }, Q = function(n) {
147
- const e = {
147
+ const t = {
148
148
  "&": "&amp;",
149
149
  "<": "&lt;",
150
150
  ">": "&gt;",
151
151
  '"': "&quot;",
152
152
  "'": "&#39;"
153
- }, t = /[&<>"']/g, s = RegExp(t.source);
154
- return n && s.test(n) ? n.replace(t, (r) => e[r]) : n;
153
+ }, e = /[&<>"']/g, s = RegExp(e.source);
154
+ return n && s.test(n) ? n.replace(e, (r) => t[r]) : n;
155
155
  };
156
156
  class g {
157
- constructor(e) {
158
- c(this, "marks"), c(this, "nodes"), e || (e = K), this.marks = e.marks || [], this.nodes = e.nodes || [];
157
+ constructor(t) {
158
+ c(this, "marks"), c(this, "nodes"), t || (t = K), this.marks = t.marks || [], this.nodes = t.nodes || [];
159
159
  }
160
- addNode(e, t) {
161
- this.nodes[e] = t;
160
+ addNode(t, e) {
161
+ this.nodes[t] = e;
162
162
  }
163
- addMark(e, t) {
164
- this.marks[e] = t;
163
+ addMark(t, e) {
164
+ this.marks[t] = e;
165
165
  }
166
- render(e) {
167
- if (e && e.content && Array.isArray(e.content)) {
168
- let t = "";
169
- return e.content.forEach((s) => {
170
- t += this.renderNode(s);
171
- }), t;
166
+ render(t) {
167
+ if (t && t.content && Array.isArray(t.content)) {
168
+ let e = "";
169
+ return t.content.forEach((s) => {
170
+ e += this.renderNode(s);
171
+ }), e;
172
172
  }
173
173
  return console.warn(
174
174
  "The render method must receive an object with a content field, which is an array"
175
175
  ), "";
176
176
  }
177
- renderNode(e) {
178
- const t = [];
179
- e.marks && e.marks.forEach((r) => {
177
+ renderNode(t) {
178
+ const e = [];
179
+ t.marks && t.marks.forEach((r) => {
180
180
  const o = this.getMatchingMark(r);
181
- o && t.push(this.renderOpeningTag(o.tag));
181
+ o && e.push(this.renderOpeningTag(o.tag));
182
182
  });
183
- const s = this.getMatchingNode(e);
184
- return s && s.tag && t.push(this.renderOpeningTag(s.tag)), e.content ? e.content.forEach((r) => {
185
- t.push(this.renderNode(r));
186
- }) : e.text ? t.push(Q(e.text)) : s && s.singleTag ? t.push(this.renderTag(s.singleTag, " /")) : s && s.html && t.push(s.html), s && s.tag && t.push(this.renderClosingTag(s.tag)), e.marks && e.marks.slice(0).reverse().forEach((r) => {
183
+ const s = this.getMatchingNode(t);
184
+ return s && s.tag && e.push(this.renderOpeningTag(s.tag)), t.content ? t.content.forEach((r) => {
185
+ e.push(this.renderNode(r));
186
+ }) : t.text ? e.push(Q(t.text)) : s && s.singleTag ? e.push(this.renderTag(s.singleTag, " /")) : s && s.html && e.push(s.html), s && s.tag && e.push(this.renderClosingTag(s.tag)), t.marks && t.marks.slice(0).reverse().forEach((r) => {
187
187
  const o = this.getMatchingMark(r);
188
- o && t.push(this.renderClosingTag(o.tag));
189
- }), t.join("");
188
+ o && e.push(this.renderClosingTag(o.tag));
189
+ }), e.join("");
190
190
  }
191
- renderTag(e, t) {
192
- return e.constructor === String ? `<${e}${t}>` : e.map((s) => {
191
+ renderTag(t, e) {
192
+ return t.constructor === String ? `<${t}${e}>` : t.map((s) => {
193
193
  if (s.constructor === String)
194
- return `<${s}${t}>`;
194
+ return `<${s}${e}>`;
195
195
  {
196
196
  let r = `<${s.tag}`;
197
197
  if (s.attrs)
@@ -199,99 +199,99 @@ class g {
199
199
  const i = s.attrs[o];
200
200
  i !== null && (r += ` ${o}="${i}"`);
201
201
  }
202
- return `${r}${t}>`;
202
+ return `${r}${e}>`;
203
203
  }
204
204
  }).join("");
205
205
  }
206
- renderOpeningTag(e) {
207
- return this.renderTag(e, "");
206
+ renderOpeningTag(t) {
207
+ return this.renderTag(t, "");
208
208
  }
209
- renderClosingTag(e) {
210
- return e.constructor === String ? `</${e}>` : e.slice(0).reverse().map((t) => t.constructor === String ? `</${t}>` : `</${t.tag}>`).join("");
209
+ renderClosingTag(t) {
210
+ return t.constructor === String ? `</${t}>` : t.slice(0).reverse().map((e) => e.constructor === String ? `</${e}>` : `</${e.tag}>`).join("");
211
211
  }
212
- getMatchingNode(e) {
213
- const t = this.nodes[e.type];
214
- if (typeof t == "function")
215
- return t(e);
212
+ getMatchingNode(t) {
213
+ const e = this.nodes[t.type];
214
+ if (typeof e == "function")
215
+ return e(t);
216
216
  }
217
- getMatchingMark(e) {
218
- const t = this.marks[e.type];
219
- if (typeof t == "function")
220
- return t(e);
217
+ getMatchingMark(t) {
218
+ const e = this.marks[t.type];
219
+ if (typeof e == "function")
220
+ return e(t);
221
221
  }
222
222
  }
223
223
  class T {
224
224
  constructor() {
225
- c(this, "isCDNUrl", (e = "") => e.indexOf("/cdn/") > -1), c(this, "getOptionsPage", (e, t = 25, s = 1) => ({
226
- ...e,
227
- per_page: t,
225
+ c(this, "isCDNUrl", (t = "") => t.indexOf("/cdn/") > -1), c(this, "getOptionsPage", (t, e = 25, s = 1) => ({
226
+ ...t,
227
+ per_page: e,
228
228
  page: s
229
- })), c(this, "delay", (e) => new Promise((t) => setTimeout(t, e))), c(this, "arrayFrom", (e = 0, t) => [...Array(e)].map(t)), c(this, "range", (e = 0, t = e) => {
230
- const s = Math.abs(t - e) || 0, r = e < t ? 1 : -1;
231
- return this.arrayFrom(s, (o, i) => i * r + e);
232
- }), c(this, "asyncMap", async (e, t) => Promise.all(e.map(t))), c(this, "flatMap", (e = [], t) => e.map(t).reduce((s, r) => [...s, ...r], []));
229
+ })), c(this, "delay", (t) => new Promise((e) => setTimeout(e, t))), c(this, "arrayFrom", (t = 0, e) => [...Array(t)].map(e)), c(this, "range", (t = 0, e = t) => {
230
+ const s = Math.abs(e - t) || 0, r = t < e ? 1 : -1;
231
+ return this.arrayFrom(s, (o, i) => i * r + t);
232
+ }), c(this, "asyncMap", async (t, e) => Promise.all(t.map(e))), c(this, "flatMap", (t = [], e) => t.map(e).reduce((s, r) => [...s, ...r], []));
233
233
  }
234
- stringify(e, t, s) {
234
+ stringify(t, e, s) {
235
235
  const r = [];
236
- for (const o in e) {
237
- if (!Object.prototype.hasOwnProperty.call(e, o))
236
+ for (const o in t) {
237
+ if (!Object.prototype.hasOwnProperty.call(t, o))
238
238
  continue;
239
- const i = e[o], a = s ? "" : encodeURIComponent(o);
239
+ const i = t[o], a = s ? "" : encodeURIComponent(o);
240
240
  let l;
241
241
  typeof i == "object" ? l = this.stringify(
242
242
  i,
243
- t ? t + encodeURIComponent("[" + a + "]") : a,
243
+ e ? e + encodeURIComponent("[" + a + "]") : a,
244
244
  Array.isArray(i)
245
- ) : l = (t ? t + encodeURIComponent("[" + a + "]") : a) + "=" + encodeURIComponent(i), r.push(l);
245
+ ) : l = (e ? e + encodeURIComponent("[" + a + "]") : a) + "=" + encodeURIComponent(i), r.push(l);
246
246
  }
247
247
  return r.join("&");
248
248
  }
249
249
  }
250
250
  class G {
251
- constructor(e) {
252
- c(this, "baseURL"), c(this, "timeout"), c(this, "headers"), c(this, "responseInterceptor"), c(this, "fetch"), c(this, "ejectInterceptor"), c(this, "url"), c(this, "parameters"), this.baseURL = e.baseURL, this.headers = e.headers || [], this.timeout = e != null && e.timeout ? e.timeout * 1e3 : 0, this.responseInterceptor = e.responseInterceptor, this.fetch = (...t) => e.fetch ? e.fetch(...t) : fetch(...t), this.ejectInterceptor = !1, this.url = "", this.parameters = {};
251
+ constructor(t) {
252
+ c(this, "baseURL"), c(this, "timeout"), c(this, "headers"), c(this, "responseInterceptor"), c(this, "fetch"), c(this, "ejectInterceptor"), c(this, "url"), c(this, "parameters"), this.baseURL = t.baseURL, this.headers = t.headers || [], this.timeout = t != null && t.timeout ? t.timeout * 1e3 : 0, this.responseInterceptor = t.responseInterceptor, this.fetch = (...e) => t.fetch ? t.fetch(...e) : fetch(...e), this.ejectInterceptor = !1, this.url = "", this.parameters = {};
253
253
  }
254
- get(e, t) {
255
- return this.url = e, this.parameters = t, this._methodHandler("get");
254
+ get(t, e) {
255
+ return this.url = t, this.parameters = e, this._methodHandler("get");
256
256
  }
257
- post(e, t) {
258
- return this.url = e, this.parameters = t, this._methodHandler("post");
257
+ post(t, e) {
258
+ return this.url = t, this.parameters = e, this._methodHandler("post");
259
259
  }
260
- put(e, t) {
261
- return this.url = e, this.parameters = t, this._methodHandler("put");
260
+ put(t, e) {
261
+ return this.url = t, this.parameters = e, this._methodHandler("put");
262
262
  }
263
- delete(e, t) {
264
- return this.url = e, this.parameters = t, this._methodHandler("delete");
263
+ delete(t, e) {
264
+ return this.url = t, this.parameters = e, this._methodHandler("delete");
265
265
  }
266
- async _responseHandler(e) {
267
- const t = [], s = {
266
+ async _responseHandler(t) {
267
+ const e = [], s = {
268
268
  data: {},
269
269
  headers: {},
270
270
  status: 0,
271
271
  statusText: ""
272
272
  };
273
- e.status !== 204 && await e.json().then((r) => {
273
+ t.status !== 204 && await t.json().then((r) => {
274
274
  s.data = r;
275
275
  });
276
- for (const r of e.headers.entries())
277
- t[r[0]] = r[1];
278
- return s.headers = { ...t }, s.status = e.status, s.statusText = e.statusText, s;
276
+ for (const r of t.headers.entries())
277
+ e[r[0]] = r[1];
278
+ return s.headers = { ...e }, s.status = t.status, s.statusText = t.statusText, s;
279
279
  }
280
- async _methodHandler(e) {
281
- let t = `${this.baseURL}${this.url}`, s = null;
282
- if (e === "get") {
280
+ async _methodHandler(t) {
281
+ let e = `${this.baseURL}${this.url}`, s = null;
282
+ if (t === "get") {
283
283
  const l = new T();
284
- t = `${this.baseURL}${this.url}?${l.stringify(
284
+ e = `${this.baseURL}${this.url}?${l.stringify(
285
285
  this.parameters
286
286
  )}`;
287
287
  } else
288
288
  s = JSON.stringify(this.parameters);
289
- const r = new URL(t), o = new AbortController(), { signal: i } = o;
289
+ const r = new URL(e), o = new AbortController(), { signal: i } = o;
290
290
  let a;
291
291
  this.timeout && (a = setTimeout(() => o.abort(), this.timeout));
292
292
  try {
293
293
  const l = await this.fetch(`${r}`, {
294
- method: e,
294
+ method: t,
295
295
  headers: this.headers,
296
296
  body: s,
297
297
  signal: i
@@ -308,15 +308,15 @@ class G {
308
308
  eject() {
309
309
  this.ejectInterceptor = !0;
310
310
  }
311
- _statusHandler(e) {
312
- const t = /20[0-6]/g;
311
+ _statusHandler(t) {
312
+ const e = /20[0-6]/g;
313
313
  return new Promise((s, r) => {
314
- if (t.test(`${e.status}`))
315
- return s(e);
314
+ if (e.test(`${t.status}`))
315
+ return s(t);
316
316
  const o = {
317
- message: new Error(e.statusText),
318
- status: e.status,
319
- response: e.data.error || e.data.slug
317
+ message: new Error(t.statusText),
318
+ status: t.status,
319
+ response: t.data.error || t.data.slug
320
320
  };
321
321
  r(o);
322
322
  });
@@ -325,79 +325,79 @@ class G {
325
325
  let p = {};
326
326
  const d = {};
327
327
  class W {
328
- constructor(e, t) {
329
- if (c(this, "client"), c(this, "maxRetries"), c(this, "throttle"), c(this, "accessToken"), c(this, "cache"), c(this, "helpers"), c(this, "relations"), c(this, "links"), c(this, "richTextResolver"), c(this, "resolveNestedRelations"), !t) {
330
- const o = e.region ? `-${e.region}` : "", i = e.https === !1 ? "http" : "https";
331
- e.oauthToken ? t = `${i}://api${o}.storyblok.com/v1` : t = `${i}://api${o}.storyblok.com/v2`;
328
+ constructor(t, e) {
329
+ if (c(this, "client"), c(this, "maxRetries"), c(this, "throttle"), c(this, "accessToken"), c(this, "cache"), c(this, "helpers"), c(this, "relations"), c(this, "links"), c(this, "richTextResolver"), c(this, "resolveNestedRelations"), !e) {
330
+ const o = t.region ? `-${t.region}` : "", i = t.https === !1 ? "http" : "https";
331
+ t.oauthToken ? e = `${i}://api${o}.storyblok.com/v1` : e = `${i}://api${o}.storyblok.com/v2`;
332
332
  }
333
333
  const s = new Headers();
334
334
  s.set("Content-Type", "application/json"), s.set("Accept", "application/json"), s.forEach((o, i) => {
335
- e.headers && e.headers[i] && s.set(i, e.headers[i]);
335
+ t.headers && t.headers[i] && s.set(i, t.headers[i]);
336
336
  });
337
337
  let r = 5;
338
- e.oauthToken && (s.set("Authorization", e.oauthToken), r = 3), e.rateLimit && (r = e.rateLimit), e.richTextSchema ? this.richTextResolver = new g(e.richTextSchema) : this.richTextResolver = new g(), e.componentResolver && this.setComponentResolver(e.componentResolver), this.maxRetries = e.maxRetries, this.throttle = x(this.throttledRequest, r, 1e3), this.accessToken = e.accessToken || "", this.relations = {}, this.links = {}, this.cache = e.cache || { clear: "manual" }, this.helpers = new T(), this.resolveNestedRelations = !1, this.client = new G({
339
- baseURL: t,
340
- timeout: e.timeout || 0,
338
+ t.oauthToken && (s.set("Authorization", t.oauthToken), r = 3), t.rateLimit && (r = t.rateLimit), t.richTextSchema ? this.richTextResolver = new g(t.richTextSchema) : this.richTextResolver = new g(), t.componentResolver && this.setComponentResolver(t.componentResolver), this.maxRetries = t.maxRetries, this.throttle = j(this.throttledRequest, r, 1e3), this.accessToken = t.accessToken || "", this.relations = {}, this.links = {}, this.cache = t.cache || { clear: "manual" }, this.helpers = new T(), this.resolveNestedRelations = !1, this.client = new G({
339
+ baseURL: e,
340
+ timeout: t.timeout || 0,
341
341
  headers: s,
342
- responseInterceptor: e.responseInterceptor,
343
- fetch: e.fetch
342
+ responseInterceptor: t.responseInterceptor,
343
+ fetch: t.fetch
344
344
  });
345
345
  }
346
- setComponentResolver(e) {
347
- this.richTextResolver.addNode("blok", (t) => {
346
+ setComponentResolver(t) {
347
+ this.richTextResolver.addNode("blok", (e) => {
348
348
  let s = "";
349
- return t.attrs.body.forEach((r) => {
350
- s += e(r.component, r);
349
+ return e.attrs.body.forEach((r) => {
350
+ s += t(r.component, r);
351
351
  }), {
352
352
  html: s
353
353
  };
354
354
  });
355
355
  }
356
- parseParams(e) {
357
- return e.version || (e.version = "published"), e.token || (e.token = this.getToken()), e.cv || (e.cv = d[e.token]), Array.isArray(e.resolve_relations) && (e.resolve_relations = e.resolve_relations.join(",")), e;
356
+ parseParams(t) {
357
+ return t.version || (t.version = "published"), t.token || (t.token = this.getToken()), t.cv || (t.cv = d[t.token]), Array.isArray(t.resolve_relations) && (t.resolve_relations = t.resolve_relations.join(",")), t;
358
358
  }
359
- factoryParamOptions(e, t) {
360
- return this.helpers.isCDNUrl(e) ? this.parseParams(t) : t;
359
+ factoryParamOptions(t, e) {
360
+ return this.helpers.isCDNUrl(t) ? this.parseParams(e) : e;
361
361
  }
362
- makeRequest(e, t, s, r) {
362
+ makeRequest(t, e, s, r) {
363
363
  const o = this.factoryParamOptions(
364
- e,
365
- this.helpers.getOptionsPage(t, s, r)
364
+ t,
365
+ this.helpers.getOptionsPage(e, s, r)
366
366
  );
367
- return this.cacheResponse(e, o);
367
+ return this.cacheResponse(t, o);
368
368
  }
369
- get(e, t) {
370
- t || (t = {});
371
- const s = `/${e}`, r = this.factoryParamOptions(s, t);
369
+ get(t, e) {
370
+ e || (e = {});
371
+ const s = `/${t}`, r = this.factoryParamOptions(s, e);
372
372
  return this.cacheResponse(s, r);
373
373
  }
374
- async getAll(e, t, s) {
375
- const r = (t == null ? void 0 : t.per_page) || 25, o = `/${e}`, i = o.split("/"), a = s || i[i.length - 1], l = 1, h = await this.makeRequest(o, t, r, l), u = h.total ? Math.ceil(h.total / r) : 1, f = await this.helpers.asyncMap(
374
+ async getAll(t, e, s) {
375
+ const r = (e == null ? void 0 : e.per_page) || 25, o = `/${t}`, i = o.split("/"), a = s || i[i.length - 1], l = 1, h = await this.makeRequest(o, e, r, l), u = h.total ? Math.ceil(h.total / r) : 1, f = await this.helpers.asyncMap(
376
376
  this.helpers.range(l, u),
377
- (m) => this.makeRequest(o, t, r, m + 1)
377
+ (m) => this.makeRequest(o, e, r, m + 1)
378
378
  );
379
379
  return this.helpers.flatMap(
380
380
  [h, ...f],
381
381
  (m) => Object.values(m.data[a])
382
382
  );
383
383
  }
384
- post(e, t) {
385
- const s = `/${e}`;
386
- return Promise.resolve(this.throttle("post", s, t));
384
+ post(t, e) {
385
+ const s = `/${t}`;
386
+ return Promise.resolve(this.throttle("post", s, e));
387
387
  }
388
- put(e, t) {
389
- const s = `/${e}`;
390
- return Promise.resolve(this.throttle("put", s, t));
388
+ put(t, e) {
389
+ const s = `/${t}`;
390
+ return Promise.resolve(this.throttle("put", s, e));
391
391
  }
392
- delete(e, t) {
393
- const s = `/${e}`;
394
- return Promise.resolve(this.throttle("delete", s, t));
392
+ delete(t, e) {
393
+ const s = `/${t}`;
394
+ return Promise.resolve(this.throttle("delete", s, e));
395
395
  }
396
- getStories(e) {
397
- return this.get("cdn/stories", e);
396
+ getStories(t) {
397
+ return this.get("cdn/stories", t);
398
398
  }
399
- getStory(e, t) {
400
- return this.get(`cdn/stories/${e}`, t);
399
+ getStory(t, e) {
400
+ return this.get(`cdn/stories/${t}`, e);
401
401
  }
402
402
  getToken() {
403
403
  return this.accessToken;
@@ -405,26 +405,26 @@ class W {
405
405
  ejectInterceptor() {
406
406
  this.client.eject();
407
407
  }
408
- _cleanCopy(e) {
409
- return JSON.parse(JSON.stringify(e));
408
+ _cleanCopy(t) {
409
+ return JSON.parse(JSON.stringify(t));
410
410
  }
411
- _insertLinks(e, t) {
412
- const s = e[t];
411
+ _insertLinks(t, e) {
412
+ const s = t[e];
413
413
  s && s.fieldtype == "multilink" && s.linktype == "story" && typeof s.id == "string" && this.links[s.id] ? s.story = this._cleanCopy(this.links[s.id]) : s && s.linktype === "story" && typeof s.uuid == "string" && this.links[s.uuid] && (s.story = this._cleanCopy(this.links[s.uuid]));
414
414
  }
415
- _insertRelations(e, t, s) {
416
- if (s.indexOf(`${e.component}.${t}`) > -1) {
417
- if (typeof e[t] == "string")
418
- this.relations[e[t]] && (e[t] = this._cleanCopy(this.relations[e[t]]));
419
- else if (e[t] && e[t].constructor === Array) {
415
+ _insertRelations(t, e, s) {
416
+ if (s.indexOf(`${t.component}.${e}`) > -1) {
417
+ if (typeof t[e] == "string")
418
+ this.relations[t[e]] && (t[e] = this._cleanCopy(this.relations[t[e]]));
419
+ else if (t[e] && t[e].constructor === Array) {
420
420
  const r = [];
421
- e[t].forEach((o) => {
421
+ t[e].forEach((o) => {
422
422
  this.relations[o] && r.push(this._cleanCopy(this.relations[o]));
423
- }), e[t] = r;
423
+ }), t[e] = r;
424
424
  }
425
425
  }
426
426
  }
427
- iterateTree(e, t) {
427
+ iterateTree(t, e) {
428
428
  const s = (r) => {
429
429
  if (r != null) {
430
430
  if (r.constructor === Array)
@@ -437,26 +437,26 @@ class W {
437
437
  (r.component && r._uid || r.type === "link") && (this._insertRelations(
438
438
  r,
439
439
  o,
440
- t
440
+ e
441
441
  ), this._insertLinks(r, o)), s(r[o]);
442
442
  }
443
443
  }
444
444
  };
445
- s(e.content);
445
+ s(t.content);
446
446
  }
447
- async resolveLinks(e, t) {
447
+ async resolveLinks(t, e) {
448
448
  let s = [];
449
- if (e.link_uuids) {
450
- const r = e.link_uuids.length, o = [], i = 50;
449
+ if (t.link_uuids) {
450
+ const r = t.link_uuids.length, o = [], i = 50;
451
451
  for (let a = 0; a < r; a += i) {
452
452
  const l = Math.min(r, a + i);
453
- o.push(e.link_uuids.slice(a, l));
453
+ o.push(t.link_uuids.slice(a, l));
454
454
  }
455
455
  for (let a = 0; a < o.length; a++)
456
456
  (await this.getStories({
457
457
  per_page: i,
458
- language: t.language,
459
- version: t.version,
458
+ language: e.language,
459
+ version: e.version,
460
460
  by_uuids: o[a].join(",")
461
461
  })).data.stories.forEach(
462
462
  (l) => {
@@ -464,70 +464,70 @@ class W {
464
464
  }
465
465
  );
466
466
  } else
467
- s = e.links;
467
+ s = t.links;
468
468
  s.forEach((r) => {
469
469
  this.links[r.uuid] = { ...r, _stopResolving: !0 };
470
470
  });
471
471
  }
472
- async resolveRelations(e, t) {
472
+ async resolveRelations(t, e) {
473
473
  let s = [];
474
- if (e.rel_uuids) {
475
- const r = e.rel_uuids.length, o = [], i = 50;
474
+ if (t.rel_uuids) {
475
+ const r = t.rel_uuids.length, o = [], i = 50;
476
476
  for (let a = 0; a < r; a += i) {
477
477
  const l = Math.min(r, a + i);
478
- o.push(e.rel_uuids.slice(a, l));
478
+ o.push(t.rel_uuids.slice(a, l));
479
479
  }
480
480
  for (let a = 0; a < o.length; a++)
481
481
  (await this.getStories({
482
482
  per_page: i,
483
- language: t.language,
484
- version: t.version,
483
+ language: e.language,
484
+ version: e.version,
485
485
  by_uuids: o[a].join(",")
486
486
  })).data.stories.forEach((l) => {
487
487
  s.push(l);
488
488
  });
489
489
  } else
490
- s = e.rels;
490
+ s = t.rels;
491
491
  s && s.length > 0 && s.forEach((r) => {
492
492
  this.relations[r.uuid] = { ...r, _stopResolving: !0 };
493
493
  });
494
494
  }
495
- async resolveStories(e, t) {
495
+ async resolveStories(t, e) {
496
496
  var s, r;
497
497
  let o = [];
498
- if (typeof t.resolve_relations < "u" && t.resolve_relations.length > 0 && (typeof t.resolve_relations == "string" && (o = t.resolve_relations.split(",")), await this.resolveRelations(e, t)), t.resolve_links && ["1", "story", "url"].indexOf(t.resolve_links) > -1 && ((s = e.links) != null && s.length || (r = e.link_uuids) != null && r.length) && await this.resolveLinks(e, t), this.resolveNestedRelations)
498
+ if (typeof e.resolve_relations < "u" && e.resolve_relations.length > 0 && (typeof e.resolve_relations == "string" && (o = e.resolve_relations.split(",")), await this.resolveRelations(t, e)), e.resolve_links && ["1", "story", "url"].indexOf(e.resolve_links) > -1 && ((s = t.links) != null && s.length || (r = t.link_uuids) != null && r.length) && await this.resolveLinks(t, e), this.resolveNestedRelations)
499
499
  for (const i in this.relations)
500
500
  this.iterateTree(this.relations[i], o);
501
- e.story ? this.iterateTree(e.story, o) : e.stories.forEach((i) => {
501
+ t.story ? this.iterateTree(t.story, o) : t.stories.forEach((i) => {
502
502
  this.iterateTree(i, o);
503
503
  });
504
504
  }
505
- cacheResponse(e, t, s) {
506
- return new Promise((r, o) => {
507
- const i = this.helpers.stringify({ url: e, params: t }), a = this.cacheProvider();
508
- if (this.cache.clear === "auto" && t.version === "draft" && this.flushCache(), t.version === "published" && e != "/cdn/spaces/me") {
509
- const l = a.get(i);
510
- if (l)
511
- return r(l);
512
- }
505
+ async cacheResponse(t, e, s) {
506
+ const r = this.helpers.stringify({ url: t, params: e }), o = this.cacheProvider();
507
+ if (this.cache.clear === "auto" && e.version === "draft" && await this.flushCache(), e.version === "published" && t != "/cdn/spaces/me") {
508
+ const i = await o.get(r);
509
+ if (i)
510
+ return Promise.resolve(i);
511
+ }
512
+ return new Promise((i, a) => {
513
513
  try {
514
514
  (async () => {
515
515
  var l;
516
- const h = await this.throttle("get", e, t);
516
+ const h = await this.throttle("get", t, e);
517
517
  let u = { data: h.data, headers: h.headers };
518
518
  if ((l = h.headers) != null && l["per-page"] && (u = Object.assign({}, u, {
519
519
  perPage: h.headers["per-page"] ? parseInt(h.headers["per-page"]) : 0,
520
520
  total: h.headers["per-page"] ? parseInt(h.headers.total) : 0
521
521
  })), h.status != 200)
522
- return o(h);
523
- (u.data.story || u.data.stories) && await this.resolveStories(u.data, t), t.version === "published" && e != "/cdn/spaces/me" && a.set(i, u), u.data.cv && t.token && (t.version == "draft" && d[t.token] != u.data.cv && this.flushCache(), d[t.token] = u.data.cv), r(u);
522
+ return a(h);
523
+ (u.data.story || u.data.stories) && await this.resolveStories(u.data, e), e.version === "published" && t != "/cdn/spaces/me" && await o.set(r, u), u.data.cv && e.token && (e.version == "draft" && d[e.token] != u.data.cv && await this.flushCache(), d[e.token] = u.data.cv), i(u);
524
524
  })();
525
525
  } catch {
526
526
  }
527
527
  });
528
528
  }
529
- throttledRequest(e, t, s) {
530
- return this.client[e](t, s);
529
+ throttledRequest(t, e, s) {
530
+ return this.client[t](e, s);
531
531
  }
532
532
  cacheVersions() {
533
533
  return d;
@@ -535,65 +535,72 @@ class W {
535
535
  cacheVersion() {
536
536
  return d[this.accessToken];
537
537
  }
538
- setCacheVersion(e) {
539
- this.accessToken && (d[this.accessToken] = e);
538
+ setCacheVersion(t) {
539
+ this.accessToken && (d[this.accessToken] = t);
540
540
  }
541
541
  cacheProvider() {
542
542
  switch (this.cache.type) {
543
543
  case "memory":
544
544
  return {
545
- get(e) {
546
- return p[e];
545
+ get(t) {
546
+ return Promise.resolve(p[t]);
547
547
  },
548
548
  getAll() {
549
- return p;
549
+ return Promise.resolve(p);
550
550
  },
551
- set(e, t) {
552
- p[e] = t;
551
+ set(t, e) {
552
+ return p[t] = e, Promise.resolve(void 0);
553
553
  },
554
554
  flush() {
555
- p = {};
555
+ return p = {}, Promise.resolve(void 0);
556
556
  }
557
557
  };
558
+ case "custom":
559
+ if (this.cache.custom)
560
+ return this.cache.custom;
558
561
  default:
559
562
  return {
560
563
  get() {
564
+ return Promise.resolve(void 0);
561
565
  },
562
566
  getAll() {
567
+ return Promise.resolve(void 0);
563
568
  },
564
569
  set() {
570
+ return Promise.resolve(void 0);
565
571
  },
566
572
  flush() {
573
+ return Promise.resolve(void 0);
567
574
  }
568
575
  };
569
576
  }
570
577
  }
571
- flushCache() {
572
- return this.cacheProvider().flush(), this;
578
+ async flushCache() {
579
+ return await this.cacheProvider().flush(), this;
573
580
  }
574
581
  }
575
582
  const X = (n = {}) => {
576
- const { apiOptions: e } = n;
577
- if (!e.accessToken) {
583
+ const { apiOptions: t } = n;
584
+ if (!t.accessToken) {
578
585
  console.error(
579
586
  "You need to provide an access token to interact with Storyblok API. Read https://www.storyblok.com/docs/api/content-delivery#topics/authentication"
580
587
  );
581
588
  return;
582
589
  }
583
- return { storyblokApi: new W(e) };
590
+ return { storyblokApi: new W(t) };
584
591
  }, Z = (n) => {
585
592
  if (typeof n != "object" || typeof n._editable > "u")
586
593
  return {};
587
- const e = JSON.parse(
594
+ const t = JSON.parse(
588
595
  n._editable.replace(/^<!--#storyblok#/, "").replace(/-->$/, "")
589
596
  );
590
597
  return {
591
- "data-blok-c": JSON.stringify(e),
592
- "data-blok-uid": e.id + "-" + e.uid
598
+ "data-blok-c": JSON.stringify(t),
599
+ "data-blok-uid": t.id + "-" + t.uid
593
600
  };
594
601
  };
595
602
  let y;
596
- const R = "https://app.storyblok.com/f/storyblok-v2-latest.js", ee = (n, e, t = {}) => {
603
+ const R = "https://app.storyblok.com/f/storyblok-v2-latest.js", tt = (n, t, e = {}) => {
597
604
  if (!(typeof window > "u")) {
598
605
  if (typeof window.storyblokRegisterEvent > "u") {
599
606
  console.error(
@@ -606,54 +613,54 @@ const R = "https://app.storyblok.com/f/storyblok-v2-latest.js", ee = (n, e, t =
606
613
  return;
607
614
  }
608
615
  window.storyblokRegisterEvent(() => {
609
- new window.StoryblokBridge(t).on(["input", "published", "change"], (r) => {
610
- r.action === "input" && r.story.id === n ? e(r.story) : (r.action === "change" || r.action === "published") && r.storyId === n && window.location.reload();
616
+ new window.StoryblokBridge(e).on(["input", "published", "change"], (r) => {
617
+ r.action === "input" && r.story.id === n ? t(r.story) : (r.action === "change" || r.action === "published") && r.storyId === n && window.location.reload();
611
618
  });
612
619
  });
613
620
  }
614
- }, te = (n = {}) => {
621
+ }, et = (n = {}) => {
615
622
  const {
616
- bridge: e,
617
- accessToken: t,
623
+ bridge: t,
624
+ accessToken: e,
618
625
  use: s = [],
619
626
  apiOptions: r = {},
620
627
  richText: o = {}
621
628
  } = n;
622
- r.accessToken = r.accessToken || t;
623
- const i = { bridge: e, apiOptions: r };
629
+ r.accessToken = r.accessToken || e;
630
+ const i = { bridge: t, apiOptions: r };
624
631
  let a = {};
625
632
  return s.forEach((l) => {
626
633
  a = { ...a, ...l(i) };
627
- }), e !== !1 && w(R), y = new g(o.schema), o.resolver && _(y, o.resolver), a;
628
- }, _ = (n, e) => {
629
- n.addNode("blok", (t) => {
634
+ }), t !== !1 && w(R), y = new g(o.schema), o.resolver && _(y, o.resolver), a;
635
+ }, _ = (n, t) => {
636
+ n.addNode("blok", (e) => {
630
637
  let s = "";
631
- return t.attrs.body.forEach((r) => {
632
- s += e(r.component, r);
638
+ return e.attrs.body.forEach((r) => {
639
+ s += t(r.component, r);
633
640
  }), {
634
641
  html: s
635
642
  };
636
643
  });
637
- }, se = (n, e, t) => {
638
- let s = t || y;
644
+ }, st = (n, t, e) => {
645
+ let s = e || y;
639
646
  if (!s) {
640
647
  console.error(
641
648
  "Please initialize the Storyblok SDK before calling the renderRichText function"
642
649
  );
643
650
  return;
644
651
  }
645
- return n === "" ? "" : n ? (e && (s = new g(e.schema), e.resolver && _(s, e.resolver)), s.render(n)) : (console.warn(`${n} is not a valid Richtext object. This might be because the value of the richtext field is empty.
652
+ return n === "" ? "" : n ? (t && (s = new g(t.schema), t.resolver && _(s, t.resolver)), s.render(n)) : (console.warn(`${n} is not a valid Richtext object. This might be because the value of the richtext field is empty.
646
653
 
647
654
  For more info about the richtext object check https://github.com/storyblok/storyblok-js#rendering-rich-text`), "");
648
- }, re = () => w(R);
655
+ }, rt = () => w(R);
649
656
  export {
650
657
  g as RichTextResolver,
651
658
  K as RichTextSchema,
652
659
  X as apiPlugin,
653
- re as loadStoryblokBridge,
654
- ee as registerStoryblokBridge,
655
- se as renderRichText,
660
+ rt as loadStoryblokBridge,
661
+ tt as registerStoryblokBridge,
662
+ st as renderRichText,
656
663
  Z as storyblokEditable,
657
- te as storyblokInit,
658
- ee as useStoryblokBridge
664
+ et as storyblokInit,
665
+ tt as useStoryblokBridge
659
666
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@storyblok/js",
3
- "version": "2.0.13",
3
+ "version": "2.0.14",
4
4
  "description": "SDK to integrate Storyblok into your project using JavaScript.",
5
5
  "main": "./dist/storyblok-js.js",
6
6
  "module": "./dist/storyblok-js.mjs",
@@ -27,7 +27,7 @@
27
27
  "prepublishOnly": "npm run build && cp ../README.md ./"
28
28
  },
29
29
  "dependencies": {
30
- "storyblok-js-client": "^5.3.8"
30
+ "storyblok-js-client": "^5.4.0"
31
31
  },
32
32
  "devDependencies": {
33
33
  "@tsconfig/recommended": "^1.0.1",